Okay, I've written a script for PTD based at http://www.newgrounds.com/portal/view/566150.
It just repeats route 8 (takes a while to reach but has pretty fast levelling potential), levels pokemon and should catch any shine pokemon to appear.
Unfortunately it seems to crash every time the shiny procedure gets called. I've looked through the script and can't see any problem that would scar to crash completly.
A few other side notes, I use ubuntu and so have to run it through WINE, this has also meant that I've had to set the window myself, hence the TLx and TLy constants that you need to set yourself.
Anyway, any suggestions, and any idea why it crashes, also does it crash for anyone else who doesn't run it in linux?
If you want me to edit the code a bit to make it clearer just ask (I'll indent it and add a few more notes and stuff...)
It just repeats route 8 (takes a while to reach but has pretty fast levelling potential), levels pokemon and should catch any shine pokemon to appear.
Unfortunately it seems to crash every time the shiny procedure gets called. I've looked through the script and can't see any problem that would scar to crash completly.
A few other side notes, I use ubuntu and so have to run it through WINE, this has also meant that I've had to set the window myself, hence the TLx and TLy constants that you need to set yourself.
Anyway, any suggestions, and any idea why it crashes, also does it crash for anyone else who doesn't run it in linux?
If you want me to edit the code a bit to make it clearer just ask (I'll indent it and add a few more notes and stuff...)
Code:
program PTDroute8;
var
x,y, fin,a,d,c, lvl,levels, finishes, caught : Integer ;
one,two,three,four,five,six : Integer;
const
TLx = 113; // choose the very top left corner, it must be the exact pixel.
TLy = 113;
///////////////////////////////////////////////////////////////////////////////
procedure start ;
begin
Movemousesmooth ((TLx + 548), (TLy + 129));
wait (100)
clickmouse((TLx + 548), (TLy + 129),true) //select route 8
wait(500)
Movemousesmooth (TLx + 626, TLy + 21);
wait (100)
clickmouse(TLx + 626, TLy + 21,true) //select start
wait(500)
Movemousesmooth (TLx + 126, TLy + 18);
wait (100)
clickmouse(TLx + 126, TLy + 18,true) //select skip
wait (3000)
end;
//////// GO!!!!!!
///////////////////////////////////////////////////////////////////////////////
procedure chooserandpoke;
begin
repeat
d:= random (6)
if (d=0) and (one <> 1) then begin // choose 1
x:= (TLx + 167)
y:= (TLy + 291)
one :=1
c:=1
end;
if (d=1) and (two <> 1) then begin //choose 2
x:= (TLx + 247)
y:= (TLy + 291)
two :=1
c:=1
end;
if (d=2) and (three <> 1) then begin //choose 3
x:= (TLx + 329)
y:= (TLy + 297)
three :=1
c:=1
end;
if (d=3) and (four <> 1) then begin //choose 4
x:= (TLx + 413)
y:= (TLy + 298)
four :=1
c:=1
end;
if (d=4) and (five <> 1) then begin //choose 5
x:= (TLx + 501)
y:= (TLy + 298)
five :=1
c:=1
end;
if (d=5) and (six <> 1) then begin //choose 6
x:= (TLx + 583)
y:= (TLy + 298)
six :=1
c:=1
end;
until (c = 1)
c:=0
end;
procedure placepokemon ;
begin
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 1
wait (300)
movemousesmooth (TLx + 340, TLy + 316)
wait(100)
releasemouse (TLx + 340, TLy + 316,true)
wait (500)
///////////////////
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 2
wait (300)
movemousesmooth (TLx + 663,TLy + 290)
wait(100)
releasemouse (TLx + 663,TLy + 290,true)
wait (500)
///////////////////
movemousesmooth (TLx + 623,TLy + 298)
wait(100)
holdmouse (TLx + 623,TLy + 298,true) //Move screen right
wait (300)
movemousesmooth (TLx + 127,TLy + 288)
wait(100)
releasemouse (TLx + 127,TLy + 288,true)
wait (500)
///////////////////
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 3
wait (300)
movemousesmooth (TLx + 445,TLy + 289)
wait(100)
releasemouse (TLx + 445,TLy + 289,true)
wait (500)
///////////////////
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 4
wait (300)
movemousesmooth (TLx + 677,TLy + 338)
wait(100)
releasemouse (TLx + 677,TLy + 338,true)
wait (500)
///////////////////
movemousesmooth (TLx + 639,TLy + 393)
wait(100)
holdmouse (TLx + 639,TLy + 393,true) //Move Down
wait (300)
movemousesmooth (TLx + 637,TLy + 11)
wait(100)
releasemouse (TLx + 637,TLy + 11,true)
wait (500)
///////////////////
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 5
wait (300)
movemousesmooth (TLx + 501,TLy + 80)
wait(100)
releasemouse (TLx + 501,TLy + 80,true)
wait (500)
///////////////////
chooserandpoke;
movemousesmooth (x, y)
wait(100)
holdmouse (x, y,true) //Pokemon 6
wait (300)
movemousesmooth (TLx + 664,TLy + 235)
wait(100)
releasemouse (TLx + 664,TLy + 235,true)
wait (500)
end;
///////////////////////////////////////////////////////////////////////////////
procedure movetoBL;
begin
a :=1; //drag screen down
repeat
wait (200)
movemousesmooth (TLx + 460,TLy + 208)
wait(100)
holdmouse (TLx + 460,TLy + 208,true)
wait (300)
movemousesmooth (TLx + 24,TLy + 16)
wait(100)
releasemouse (TLx + 24,TLy + 16,true)
a:= a + 1;
until (a=5)
a:=1
end;
///////////////////////////////////////////////////////////////////////////////
procedure speedup;
begin
movemousesmooth (TLx + 124,TLy + 380) //speed up
wait (200)
clickmouse(TLx + 124,TLy + 380,true)
wait(100)
clickmouse(TLx + 124,TLy + 380,true)
wait(100)
clickmouse(TLx + 124,TLy + 380,true)
wait(100)
end;
///////////////////////////////////////////////////////////////////////////////
procedure finish;
begin
finishes := finishes + 1
movemousesmooth (x,y); //click skip at end
clickmouse (x,y,true);
writeln ('completed ' + (inttostr(finishes)) + ' rounds!')
one:=0
two:=0
three:=0
four:=0
five:=0
six:=0
end;
///////////////////////////////////////////////////////////////////////////////
procedure shiny;
begin
movemousesmooth (TLx + 677, TLy + 340) //click pokeball
clickmouse (TLx + 677, TLy + 340,true);
wait (100)
holdmouse (TLx + 677, TLy + 340,true) //drag pokeball
wait (300)
movemousesmooth (TLx + 604, TLy + 222)
wait(1000)
releasemouse (TLx + 604, TLy + 222,true) //catch pokemon
if findcolor (x,y,0,TLx + 540, TLy + 231,TLx + 395, TLy + 412) then caught:= caught+1; //check if anything got caught
writeln ('caught ' + (Inttostr(caught)) + ' pokemon')
clickmouse (x,y,true) //click off shiny
speedup;
end;
///////////////////////////////////////////////////////////////////////////////
procedure levelup;
begin
levels := levels + 1;
writeln ('levelling up!')
writeln ('Gained ' + (inttostr (levels)) + ' levels!')
movemousesmooth (x,y) //click pokemon
clickmouse (x,y,true)
wait (300)
movemousesmooth (TLx + 621,TLy + 204)
wait (300)
clickmouse (TLx + 621,TLy + 204,true) //click level up
wait(700)
if(FindColor(x,y,0,TLx + 477,TLy + 249,TLx + 490,TLy + 259)) = true then
begin
movemousesmooth (x,y)
wait (300) //click don't learn move
clickmouse (x,y,true)
wait(300)
end;
movemousesmooth (TLx + 477,TLy + 249) //mouse back to center screen
wait (300)
clickmouse (TLx + 477,TLy + 249,true)
wait(300)
movetoBL;
end;
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
begin
Levels := 0;
finishes :=0
repeat
fin :=0;
start;
placepokemon;
speedup;
movetoBL;
repeat
repeat
if (FindColor(x,y,251,TLx + 128,TLy + 270,TLx + 621,TLy + 290)) = true then levelup;
if findcolor (x,y,16777215,TLx + 395,TLy + 154, TLx + 396, TLy + 171) then shiny;
lvl := lvl +1;
wait (100)
until (lvl = 20)
lvl:=1;
if (FindColor(x,y,238, TLx + 77,TLy + 10,TLx + 138,TLy + 40)) = true then fin:=1;
if (FindColor(x,y,238, TLx + 77,TLy + 10,TLx + 138,TLy + 40)) = true then finish;
wait (1000)
until (fin = 1)
until (false);
writeln ('caught ' + (inttostr (caught)) + ' pokemon')
writeln ('gained ' + (inttostr (levels)) + ' levels')
end.



