program New; {.include SRL\SRL.scar} var Chars,dx,dy,timesmined,reporttime,H:integer; food,minedirection:string; procedure setup; begin {----------------------------------------------------------------------- Set Settings -----------------------------------------------------------------------} food:= 'Meal' //set food to eat minedirection:= 'Mine' // mine direction eg Mine upwards {-----------------------------------------------------------------------+ Loads Wurm Character Set into Memory +-----------------------------------------------------------------------} wait(50); FindWindowTitlePart('Wurm Online ', false); wait(50); H:= GetClientWindowHandle; Chars:= LoadCharsFromFont2('Arial', 8, False, False, False, False); {-----------------------------------------------------------------------+ Sets basic Settings + Returns Client Dimensions +-----------------------------------------------------------------------} if not(GetSCARVersion = 301)then TerminateScript; GetClientDimensions(dx, dy); timesmined:=0 reporttime:=0 ClearReport; ClearDebug; clickmouse(dx/2,dy/2,true); end; procedure check_break; begin if(IsTextInAreaEx(408, 520, 780, 580, x, y, 'You are', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin SendArrowWait(0, 2000); end else; if(IsTextInAreaEx(408, 520, 780, 580, x, y, 'The wall breaks!', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin SendArrowWait(0, 2000); end else; end; procedure check_pickaxe; begin wait(500); if(IsTextInAreaEx(408, 482, 780, 574, x, y, 'It is stuck.', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin if(IsTextInAreaEx(408, 482, 780, 574, x, y, 'You manage to free', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin end; writeln('pickaxe stuck!'); SendArrowWait(2, 1000); KeyDown(GetKeyCode('a')); Wait(2000) KeyUp(GetKeyCode('a')); KeyDown(GetKeyCode('d')); Wait(2000); KeyUp(GetKeyCode('d')); SendArrowWait(0, 1000); writeln('pickaxe should be free'); end; end; procedure check_statima; begin if not(FindColorTolerance(x, y, 6793315, 159, 50, 170, 58, 50)) then begin wait(1000); check_statima; end else; end; procedure check_water; begin if not (getcolor(411, 603) = 13408665) then begin if not(FindColorTolerance(x, y, 9659474,13, 61, 44, 64, 50)) then begin writeln('we need to drink'); wait(1000); if(IsTextInAreaEx(479, 32, 750, 458, x, y, 'water', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin Mouse(x,y,0,0,false); wait(1000); if(IsTextInAreaEx(4, 65, 800, 470, x, y, 'Drink', 0, Chars, False, False, 0, 1, $FFFFFF)) then Mouse(x,y,0,0,true); end else; end else; end else; end; procedure check_food; begin if not (getcolor(411, 603) = 13408665) then begin if not(FindColorTolerance(x, y, 4944003,121, 60, 170, 64, 50)) then begin writeln('we need to eat'); wait(1000); if(IsTextInAreaEx(479, 32, 750, 458, x, y, food, 0, Chars, False, False, 0, 1, $FFFFFF)) then begin Mouse(x,y,0,0,false); wait(1000); if(IsTextInAreaEx(4, 65, 800, 470, x, y, 'Eat', 0, Chars, False, False, 0, 1, $FFFFFF)) then Mouse(x,y,0,0,true); end else; end else; end else; end; procedure mine; begin if not (getcolor(411, 603) = 13408665) then begin check_water; //check_food; check_statima; MMouse(388, 223,0,0); wait(300); clickmouse(388, 223,false); while not(IsTextInAreaEx(4, 65, 800, 470, x, y, 'this?', 0, Chars, False, False, 0, 1, $FFFFFF)) do begin wait(500); end; if(IsTextInAreaEx(4, 65, 800, 470, x, y, 'Mining', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin MMouse(x,y,0,0); wait(500); if(IsTextInAreaEx(4, 65, 800, 470, x, y, 'Mine', 0, Chars, False, False, 0, 1, $FFFFFF)) then begin Mouse(x, y, 0, 0, true); check_break; check_pickaxe; wait(500); if(getcolor(411, 603) = 13408665) then begin timesmined:=timesmined+1 reporttime:=reporttime+1 end else; end else; end else; end else; end; procedure report; begin if(reporttime>10) then begin reporttime:=0 AddToReport('Number of times mined ' + IntToStr(timesmined)) end else; end; begin setup; ActivateClient; repeat mine; check_pickaxe; wait(500); report; until(false) end.