////////////////////////////////////////////////////////////////////////////// // Runescape Scripting Community Include // // RSCi.txt & Si.scar // ////////////////////////////////////////////////////////////////////////////// // .:Instructions:. // // >Copy and Paste into Includes Folder // // >Setup Lines 20 - 50 // // >Must Have New Version and Must Completely Setup for it to work Properly // ////////////////////////////////////////////////////////////////////////////// // .:Features:. // // >Most Complete Anti-Random's Around // // >Edited Fully Working BoxBreaker // // >The ONLY Chat On Talking Anti-Randoms // // >The ONLY Dungeon Runner Around // // >Complete Anti-Ban Scheduler For 3 Meals and Sleeping // // >GhostSpeak Random Phrase Ability // // >Constant UpKeep and New Functions / Procedures // ////////////////////////////////////////////////////////////////////////////// // .:Special Thanks:. // // >Kaitnieks, Ghost, RSN, Gussy, Chriz, Taminoo, jdumber2k, Serial_KillaZ // // >Helix, Kanel, Renagade, Lorax, Pop, Benleegt, Stealth955, Tabarrow // // >The list Continues on of Course but most of thanks go to RuneSC // ////////////////////////////////////////////////////////////////////////////// const Username1='Master Zidd'; //Account Number 1 //\\CASE SENSITIVE type it like a random would say it//\\ Password1=''; //Account Number 1 Username2=''; //Account Number 2 //\\CASE SENSITIVE type it like a random would say it//\\ Password2=''; //Account Number 2 Username3=''; //Account Number 3 //\\CASE SENSITIVE type it like a random would say it//\\ Password3=''; //Account Number 3 Username4=''; //Account Number 4 //\\CASE SENSITIVE type it like a random would say it//\\ Password4=''; //Account Number 4 Username5=''; //Account Number 5 //\\CASE SENSITIVE type it like a random would say it//\\ Password5=''; //Account Number 5 Us = 1; //The account number of the username and password {---Anti-Randoms / Anti-Ban---} DwarfDrop = True; //Auto-drop/eat beer and kebab left by dwarf? LampSkill = 'Hitpoints'; //lampskill to use RunDirection = 'N'; //direction to run RunFar = False; //Run far or Not RunType = 'Regular'; //'Regular' for Above Ground 'Dungeon' for in dungeons GroundColLow = 0; //The Lower Bound Range of the Ground (Example GroundColLow=100 GroundColHigh=300) GroundColHigh = 0; //The Higher Bound Range of the Ground (Example GroundColLow=100 GroundColHigh=300) UseScheduler = False; // Use scheduler or not Setup = False; //Set to True after setting up Everything (needs to be set to run scripts) //Breakfest Setup its setup for AM Always BreakHour = 8; //Hour to Logout and "Eat Breakfest" BreakfestLength = 30; //Length to stay logged out (in minutes) //Lunch Setup After 12 Pm Only LunchHour = 12; //Hour to to Logout and "Eat Lunch" LunchLength = 60; //Length to stay logged out (in minutes) //Dinner Setup PM Only DinnerHour = 5; //Hour to to Logout and "Eat Dinner" DinnerLength = 40; //Length to stay logged out (in minutes) //Sleep Setup PM To AM Only SleepHour = 10; //Hour to Log Out and "Go to Sleep" SlbackHour = 7; //Hour to "Log back in" in the morning // VERSION.. Dont Touch \\ Version='0.8'; var Head,AntiUse,LunchMin,SSlBackHour, mskBar,mskGem,Lamp,dtmLamp,x,y,SlBackMin,FreakyF, UpChars,CharsChat,Fontsmall,Font2,talkers, BrBackMin,dtmFrogSpot, BrBackHour,bmpFrog,PMeat, SleepMin,LArea, DiBackMin, breakmin,BrAdd,LuAdd,DiAdd,SlAdd, RandomBox,dtmPlant,LuBackHour,LuBackMin,DinnerMin,DiBackHour:Integer; BoxFound: Boolean; Say :array[1..30] of string; RPM,PM:string; St:LongInt; FinalMiniCanvas: TCanvas; RHour,RMin,RSec,BrHourVar,BrMinVar,LuHourVar,LuMinVar,DiHourVar,DiMinVar, SlHourVar,SlMinVar:Integer; type Coord = record x, y : Integer; end; //////////////////////////////////////////////////// // > Returns Distance between Points //////////////////////////////////////////////////// function Distance(x1,y1,x2,y2:Integer):Integer; begin result:=Trunc(Sqrt(Sqr(x1-x2)+ Sqr(y1-y2))+0.999999); end; //////////////////////////////////////////////////// // > Waits while Flag is on MM //////////////////////////////////////////////////// procedure Flag; var bmpFlag:Integer; begin bmpFlag := BitmapFromString(2, 2,'FF00005D3311C656045D3311'); if(FindBitmapIn(bmpFlag, x, y, 570, 5, 725, 162))then begin repeat wait(250); until(not FindBitmapIn(bmpFlag, x, y, 570, 5, 725, 162)); Wait(250+random(250)); end; FreeBitmap(bmpFlag); end; //////////////////////////////////////////////////// // > Returns True if Flag is on MM //////////////////////////////////////////////////// function IsFlag:boolean; var bmpFlag:Integer; begin bmpFlag := BitmapFromString(2, 2,'FF00005D3311C656045D3311'); Result:= FindBitmapIn(bmpFlag, x, y, 570, 5, 725, 162) FreeBitmap(bmpFlag); end; //////////////////////////////////////////////////// // > Returns Distance From Flag //////////////////////////////////////////////////// function FlagDistance: Integer; var bmpFlag:Integer; begin bmpFlag := BitmapFromString(2, 2,'FF00005D3311C656045D3311'); if(FindBitmapIn(bmpFlag, x, y, 570, 5, 725, 162))then Result:= Distance(x + 2, y + 2, 648, 84) end; //////////////////////////////////////////////////// // > Moves Mouse to specified location //////////////////////////////////////////////////// procedure MMouse(dx,dy,rx,ry:Integer); var xx, yy, math: Integer; Step:Extended; begin step:=4; xx:=random(rx);yy:=random(ry); math:=Random(4)+1; case math of 1: begin dx:=dx+xx; dy:=dy+yy; end; 2: begin dx:=dx-xx; dy:=dy+yy; end; 3: begin dx:=dx+xx; dy:=dy-yy; end; 4: begin dx:=dx-xx; dy:=dy-yy; end; end; GetMousePos(x,y); repeat if(Distance(x,y,dx,dy)<100)then if(not(Distance(x,y,dx,dy)=0))then step:=step-(10/Distance(x,y,dx,dy)); if(step<1)then step:=1; x:=x+Round((dx-x)/step); y:=y+Round((dy-y)/step); MoveMouse(x,y); Wait(10); until(Distance(x,y,dx,dy)=0); end; //////////////////////////////////////////////////// // > Clicks Mouse on Specified Location //////////////////////////////////////////////////// procedure Mouse(x,y,rx,ry:Integer; left:Boolean); var a:Integer; begin MMouse(x,y,rx,ry); Wait(10); GetMousePos(x,y); Wait(50+random(25)); HoldMouse(x,y,left); repeat Wait(10+Random(1)); a:=a+1; until(a>4); GetMousePos(x,y); ReleaseMouse(x,y,left); Wait(100+random(50)); end; //////////////////////////////////////////////////// // > Sends text humanlike //////////////////////////////////////////////////// procedure TypeSend(text:string); var i: Integer; begin for i := 1 to Length(Text) do begin SendKeys(Text[i]); Wait(100+random(100)); end; end; //////////////////////////////////////////////////// // > Tries to Get Flag to Appear //////////////////////////////////////////////////// procedure MouseFindFlag(ax,ay,xmod,ymod:Integer); var xx,yy:Integer; begin if(not(IsFlag))then begin xx:=ax; yy:=ay; repeat xx:=xx+xmod; yy:=yy+ymod; Mouse(xx,yy,3,3,true); until(IsFlag)or(xx<570)or(xx>725)or(yy<5)or(yy>160) end; end; //////////////////////////////////////////////////// // > Opens specified GameTab //////////////////////////////////////////////////// procedure GameTab(tabnumber:Integer); var bool: Boolean; begin case tabnumber of 1:if(GetColor(559,179)=5531511)then begin Mouse(559,186,5,5,true) bool := true end; 2:if(GetColor(591,176)=5531511)then begin Mouse(585,186,5,5,true) bool := true end; 3:if(GetColor(618,176)=5531511)then begin Mouse(614,186,5,5,true) bool := true end; 4:if(GetColor(645,180)<>5531511)then if(GetColor(636,174)=5531511)then begin Mouse(650,186,5,5,true) bool := true end; 5:if(GetColor(682,174)=5531511)then begin Mouse(683,186,5,5,true) bool := true end; 6:if(GetColor(683,175)=5531511)then begin Mouse(711,186,5,5,true) bool := true end; 7:if(GetColor(734,177)=5531511)then begin Mouse(738,186,5,5,true) bool := true end; 8:if(GetColor(705,495)=5531511)then begin Mouse(710,480,5,5,true) bool := true end; end; if(bool)then Wait(450); end; //////////////////////////////////////////////////// // > Returns coords of specified Item //////////////////////////////////////////////////// function ItemCoords(i: Integer): TPoint; var row, col: Integer; begin row := i div 4; col := i - (row*4) - 1; if(col<0)then begin col := 3; row := row-1; end; result.x := 536 + ((col+1) * 42) + random(7); result.y := 184 + ((row+1) * 36) + random(7); end; //////////////////////////////////////////////////// // > Clicks Item //////////////////////////////////////////////////// procedure MouseItem(i: Integer; left: Boolean); var Point: TPoint; begin Point := ItemCoords(i); GameTab(4); Mouse(Point.X, Point.Y, 0, 0, left); end; //////////////////////////////////////////////////// // > Left clicks an Item //////////////////////////////////////////////////// procedure UseItem(invin: Integer); begin MouseItem(invin, true); end; //////////////////////////////////////////////////// // > Returns Equipment Coords //////////////////////////////////////////////////// function EquipmentCoords(i: Integer): TPoint; begin case i of 1: begin Result.x := 650; Result.y := 215; end; 2: begin Result.x := 610; Result.y := 280; end; 3: begin Result.x := 655; Result.y := 265; end; 4: begin Result.x := 695; Result.y := 260; end; 5: begin Result.x := 600; Result.y := 315; end; 6: begin Result.x := 655; Result.y := 305; end; 7: begin Result.x := 705; Result.y := 305; end; 8: begin Result.x := 650; Result.y := 340; end; 9: begin Result.x := 600; Result.y := 380; end; 10:begin Result.x := 645; Result.y := 375; end; 11:begin Result.x := 700; Result.y := 380; end; end; end; //////////////////////////////////////////////////// // > Returns True if Wearing Item //////////////////////////////////////////////////// function WearingItem(i: Integer): Boolean; var T: TPoint; begin GameTab(5); T := EquipmentCoords(i); Result := (GetColor(T.x, T.y)<>2304814); end; //////////////////////////////////////////////////// // > Takes Off Item //////////////////////////////////////////////////// procedure TakeOff(i: Integer); var T: TPoint; begin GameTab(5); T := EquipmentCoords(i); if(WearingItem(i))then Mouse(T.x, T.y, 5, 5, true); end; //////////////////////////////////////////////////// // > Finds DTM on MiniMap //////////////////////////////////////////////////// function FindDtmMini(var cx,cy: Integer; dtmname: Integer): Boolean; var dx, dy: Integer; begin if(FindDTM(dtmname,dx,dy,570,5,725,155))then begin Result := true; cx := dx; cy := dy; end; end; //////////////////////////////////////////////////// // > Finds DTM on Main Screen //////////////////////////////////////////////////// function FindDtmMain(var cx,cy: Integer; dtmname: Integer): Boolean; var x, y: Integer; begin if(FindDTM(dtmname,x,y,1,1,514,336))then begin Result := true; cx := x; cy := y; end; end; //////////////////////////////////////////////////// // > Takes Screenshot //////////////////////////////////////////////////// procedure TakeScreen(reason: string; event: Integer); begin SaveScreenshot(ScriptPath + reason + inttostr(event) + '.bmp'); Writeln('Screenshot of: ' + reason + ' #' + inttostr(event)); end; //////////////////////////////////////////////////// // > Returns true item exists //////////////////////////////////////////////////// function ExistsItem(i: Integer): Boolean; var xx, yy, f, row, col: Integer; Points: TPointArray; begin row := i div 4; col := i - (row*4) - 1; if(col<0)then begin col := 3; row := row-1; end; FindColorsTolerance(Points, 3885652, 569 + col * 42, 228 + row * 36, 569 + col * 42 + 20, 228 + row * 36 + 15, 70) Result := False; xx := 0; yy := 0; for f := 0 to getarraylength(Points) - 1 do begin if(569 + col * 42 + xx <> Points[f].X)or(228 + row * 36 + yy <> Points[f].Y)then begin Result := True; Exit; end; yy := yy + 1; if(yy = 16)then begin xx := xx + 1; yy := 0; end; end; end; //////////////////////////////////////////////////// // > Returns Inventory Count //////////////////////////////////////////////////// function InvCount: Integer; var i: Integer; begin GameTab(4); for i:= 1 to 28 do if(ExistsItem(i))then Result := Result + 1 end; //////////////////////////////////////////////////// // > Returns Coords on Empty Item //////////////////////////////////////////////////// procedure GetEmptyItemPosition(var x, y: Integer); var Pr: TPoint; i: Integer; begin for i:=1 to 28 do if(not ExistsItem(i))then begin Pr:= ItemCoords(i); x:= Pr.x; y:= Pr.y; Break; end; end; //////////////////////////////////////////////////// // > Clicks an Option (1 Main, 2 Inv, 3 Chatbox) //////////////////////////////////////////////////// function ClickOption(s: string; i: Integer): Boolean; var x, y, tmpMask: Integer; begin tmpMask := CreateBitmapMaskFromText(s, UpChars); case i of 1: begin if(FindBitmapMaskTolerance(tmpMask, x, y, 0, 0, 520, 340, 10, 50))then begin Mouse(x + (Length(s) * 6 div 2), y + 5, 3, 3, true) Result:= True; Wait(250) end; end; 2: begin if(FindBitmapMaskTolerance(tmpMask, x, y, 550, 200, 750, 470, 10, 50))then begin Mouse(x + (Length(s) * 6 div 2), y + 5, 3, 3, true) Result:= True; Wait(250) end; end; 3: begin if(FindBitmapMaskTolerance(tmpMask, x, y, 0, 340, 500, 460, 10, 50))then begin Mouse(x + (Length(s) * 6 div 2), y + 5, 3, 3, true) Result:= True; Wait(250) end; end; end; FreeBitmap(tmpMask); end; //////////////////////////////////////////////////// // > Checks Upper Text //////////////////////////////////////////////////// function IsUpText(s: string):Boolean; begin Result:= IsTextAtEx(7, 7, s, 100, UpChars, True, False, 0, 1, -1); end; //////////////////////////////////////////////////// // > Checks if BankOpen //////////////////////////////////////////////////// function BankScreen:Boolean; begin result:=IsTextAtEx(185,34,'The Bank of',30,UpChars,True,False,0,0,-1) end; //////////////////////////////////////////////////// // > Searches for Text with Tolerance //////////////////////////////////////////////////// function SearchForTextTol(sx,sy,ex,ey:Integer; text:string; ChatChars,tol:Integer):boolean; var Image: Integer; begin Image :=CreateBitmapMaskFromText(Text, ChatChars) Result := FindBitmapMaskTolerance(Image,x,y,sx,sy,ex,ey,tol,85) FreeBitmap(Image); Wait(10); end; //////////////////////////////////////////////////// // > Searches for Text //////////////////////////////////////////////////// function SearchForText(sx,sy,ex,ey:Integer; text:string; ChatChars:Integer):boolean; var Image: Integer; begin Image:= CreateBitmapMaskFromText(Text,ChatChars) Result:= FindBitmapMaskTolerance(Image,x,y,sx,sy,ex,ey,10,85); FreeBitmap(Image); Wait(10); end; //////////////////////////////////////////////////// // > Clicks Text on Specified Box //////////////////////////////////////////////////// function ClickText(x1,y1,x2,y2:Integer; text:string; font:Integer):boolean; //Edit By Mutant Squirrle begin Result:= SearchForText(x1,y1,x2,y2,Text,Font) if(Result)then Mouse(x + ((Length(Text) * 6) div 2), y + 3 + Random(3), 2 , 0, True); end; //////////////////////////////////////////////////// // > Click's Text looking through whole screen //////////////////////////////////////////////////// function ClickTxt(s:string):boolean; begin Wait(300); Result:=ClickText(4,4,755,488,s,Font2) end; //////////////////////////////////////////////////// // > Closes window //////////////////////////////////////////////////// function CloseWindow: Boolean; var dtmClose: Integer; x, y: Integer; begin dtmClose:= DTMFromstring('78DA635CC5C8C010C780021A1A1AC0342394C' + 'FB89108357B80AC58026ACE00598904D4DC03B26208A8794CD81C' + '00EADB0FEE'); if(FindDTM(dtmClose, x, y, 290, 1, 515, 170))then begin Mouse(x+5, y+2, 1,1, true); Wait(800); Result := true; end; FreeDTM(dtmClose); end; //////////////////////////////////////////////////// // > Redoing //////////////////////////////////////////////////// procedure Login(Us:Integer); var Loop:Integer; Username,Password: string; begin if(GetColor(312,249)=65535)and(GetColor(419,291)=16777215)then begin if(us=1)then begin Username:=Username1; Password:=Password1; end; if(us=2)then begin Username:=Username2; Password:=Password2; end; if(us=3)then begin Username:=Username3; Password:=Password3; end; if(us=4)then begin Username:=Username4; Password:=Password4; end; if(us=5)then begin Username:=Username5; Password:=Password5; end; if(GetColor(312,249)=65535)and(GetColor(419,291)=16777215)then begin Mouse(464,322,0,0,true); end; Mouse(419,291,0,0,true); wait(50) Mouse(343,261,0,0,True) TypeSend(username); wait(50) Mouse(335,273,0,0,True) TypeSend(password); wait(50) Mouse(302,324,0,0,True) loop:=0; repeat wait(1000); until((Loop>39)or(CloseWindow)or((SearchForText(265,200,500,220,'already logged',Font2)))); if(SearchForText(265,200,500,220,'Your account is already logged in.',Font2))then begin Writeln('Your account is in use... We will stay logged out for anti-detection.'); TerminateScript; end; if(SearchForText(265,200,500,220,'updated',Font2))then begin Writeln('Runescape has been updated... We will stay logged out for anti-detection.'); TerminateScript; end; CloseWindow end; end; //////////////////////////////////////////////////// // > Logs you out //////////////////////////////////////////////////// procedure Logout; begin if(GetColor(630,495)=5531511)then begin Mouse(645, 485, 4, 4, true) Wait(450); end; ClickOption('here', 2); end; //////////////////////////////////////////////////// // > Sets Run to Specified //////////////////////////////////////////////////// procedure Run(which:boolean); begin GameTab(8); case which of True: if(GetColor(640,275)=5334129)then Mouse(620,265,5,5,true); False:if(GetColor(581,250)=5334129)then Mouse(580,265,5,5,true); end; end; //////////////////////////////////////////////////// // > Sets Chat to Specified State //////////////////////////////////////////////////// procedure SetChat(state: string; chat: Integer); var x, y, setx, sety, c: Integer; begin repeat c:= c+1; setx := 55 + ((chat - 1)*135); sety := 490; if(not (LowerCase(state)='on'))then while(FindColor(x,y,65280,setx-10,sety-10,setx+10,sety+10))do Mouse(x,y,5,5,true) if(not (LowerCase(state)='friends'))then while(FindColor(x,y,65535,setx-10,sety-10,setx+10,sety+10))do Mouse(x,y,5,5,true) if(not (LowerCase(state)='off'))then while(FindColor(x,y,255,setx-10,sety-10,setx+10,sety+10))do Mouse(x,y,5,5,true) if(not (LowerCase(state)='hide'))then while(FindColor(x,y,16776960,setx-10,sety-10,setx+10,sety+10))do Mouse(x,y,5,5,true) until(c=2); end; //////////////////////////////////////////////////// // > Sets Chats Off //////////////////////////////////////////////////// procedure ChatsOff; begin SetChat('off', 1); SetChat('off', 1); SetChat('off', 1); end; //////////////////////////////////////////////////// // > Sets Fight Mode //////////////////////////////////////////////////// procedure SetFightMode(i: Integer); var TP:TPointArray; pc, ti, xp, yp: Integer; begin GameTab(1); Wait(450); FindColorsTolerance(TP, 5334130, 555, 260, 670, 435, 0) pc:= GetArrayLength(TP) if(pc < 580) and (pc > 480)then ti:= 1; if(pc < 460) and (pc > 350)then ti:= 2; if(pc < 480) and (pc > 380)then ti:= 3; case ti of 1:begin xp:= 597; case i of 1: yp:= 282; 2: yp:= 325; 3: yp:= 364; 4: yp:= 406; end; end; 2:begin xp:= 594; case i of 1: yp:= 287; 2: yp:= 333; 3: yp:= 379; 4: Exit; end; end; 3:begin xp:= 597; case i of 1: yp:= 279; 2: yp:= 325; 3: yp:= 370; 4: yp:= 437; end; end; end; if(not(FindColorTolerance(pc, ti, 1974408, xp - 10, yp - 10, xp + 10, yp - 10, 20)))then Mouse(xp, yp, 5, 5, true); end; //////////////////////////////////////////////////// // > ???? //////////////////////////////////////////////////// function GetChatFul(s:string):boolean; var Image: Integer; begin Image:=CreateBitmapMaskFromText(S,CharsChat) Result := FindBitmapMaskTolerance(Image,x,y,15,410,480,435,0,30) FreeBitmap(Image); end; //////////////////////////////////////////////////// // > Sets Scar Title to specified //////////////////////////////////////////////////// procedure DisguiseScar(disguise:string); begin if(Disguise<>'')then begin GetApplication.Title:= disguise; GetSelf.Caption:= disguise; end; end; //////////////////////////////////////////////////// // > Swaps Integers //////////////////////////////////////////////////// procedure Swap(var a, b: Integer); var c: Integer; begin c:= a; a:= b; b:= c; end; //////////////////////////////////////////////////// // > Swaps TPoints //////////////////////////////////////////////////// procedure swapPoint(var a, b: TPoint); var c: TPoint; begin c:= a; a:= b; b:= c; end; //////////////////////////////////////////////////// // > Swaps Point for highes Integer to be first //////////////////////////////////////////////////// procedure Bubble(var a : TPointArray; var d:TIntegerArray; N : Integer); var i, j : Integer; begin for i := N downto 0 do for j := 1 to i do if d[j-1] > d[j] then begin swapPoint(a[j-1], a[j]); swap(d[j-1],d[j]); end; end; //////////////////////////////////////////////////// // > Finds Object from Screen Center //////////////////////////////////////////////////// function FindObjCenter(ObjText:string; ObjCol,ObjTol:Integer):Boolean; var Pointss:TPointArray; AL,Nums,Numss:Integer; DistAr:TIntegerArray; begin Nums:=1; Numss:=1; FindColorsTolerance(Pointss, ObjCol, 3, 3, 515, 336, ObjTol) AL:=GetArrayLength(Pointss); if(not(AL=0))then begin setarraylength(DistAr,AL); while (not(Nums=AL)) Do begin wait(10) DistAr[Nums] := Distance(256, 168, Pointss[Nums].x, Pointss[Nums].y); Nums:=Nums+1; end; Bubble(Pointss,DistAr,AL-1); repeat MMouse(Pointss[Numss].x,Pointss[Numss].y,0,0) wait(700) if(IsUpText(ObjText))then begin Result:=True; GetMousePos(x,y); end; if(not(IsUpText(ObjText)))then Numss:=Numss+1; until(Numss=AL)or(Result) end; end; //////////////////////////////////////////////////// // > Finds Object on the screen //////////////////////////////////////////////////// function FindObj(var x, y : Integer; ObjText : string; ObjCol, ObjTol, MinY, MinX : Integer) : Boolean; var Pointss : TPointArray; Numss : Integer; LastPoint : Coord; begin Numss:= 1; FindColorsTolerance(Pointss, ObjCol, 3, 3, 515, 336, ObjTol); if(GetArrayLength(Pointss) <> 0)then begin repeat if(Pointss[Numss].x < LastPoint.x + MinX)and (Pointss[Numss].x > LastPoint.x - MinX)or (Pointss[Numss].y < LastPoint.y + MinY)and (Pointss[Numss].y > LastPoint.y - MinY)then begin Numss:= Numss + 1; end else begin MMouse(Pointss[Numss].x + 3, Pointss[Numss].y + 3,0,0) wait(450); if(IsUpText(ObjText))then begin Result:=True; x:= Pointss[Numss].x + 3; y:= Pointss[Numss].y + 3; end; if(not(IsUpText(ObjText)))then begin LastPoint.x := Pointss[Numss].x; LastPoint.y := Pointss[Numss].y; Numss := Numss + 1; end; end; until(Numss=GetArrayLength(Pointss))or(Result); end; end; //////////////////////////////////////////////////// // > Finds Items with color and up text //////////////////////////////////////////////////// function FindItems(color, tol: Integer; text: string; num: Integer): TPointArray; var xi,yi,tx,ty,Used: Integer; x, y: Integer; begin GameTab(4); SetArrayLength(Result, 0); if(num = 0)then num := -1; ty := 190; tx := 548; repeat yi := yi+1; ty := ty+37; xi := 0; repeat xi := xi+1; tx := tx+41; if(FindColorTolerance(x,y,color,tx-13,ty-13,tx+13,ty+13,tol))then begin MMouse(tx,ty,2,2); Wait(250); if(IsUpText(text))then begin Used := Used+1; setarraylength(result, Used); GetMousePos(Result[Used-1].x, Result[Used-1].y) Wait(150); end; end; until((xi=4) or (Used=num)); tx := 544; until((yi=7) or (Used=num)); end; //////////////////////////////////////////////////// // > Deposit specified Item //////////////////////////////////////////////////// procedure Deposit(i, amount: Integer); begin if(BankScreen) and (ExistsItem(i)) then begin if(amount=0)then begin MouseItem(i, false); Wait(800); ClickOption('All', 2); end else if(amount=10)then begin MouseItem(i, false); Wait(800); ClickOption('10', 2); end else if(amount=5)then begin MouseItem(i, false); Wait(800); ClickOption('5', 2); end else if(amount=1)then begin MouseItem(i, false); Wait(800); end else begin MouseItem(i, false); Wait(800); if ClickOption('X', 2) then repeat Wait(150); until(GetColor(255,410)=8388608); TypeSend(inttostr(amount)); Wait(random(300)); TypeSend(chr(13)); Wait(800); end; ClickOption('Cancel', 2); end; end; //////////////////////////////////////////////////// // > Deposits all Items in specified area //////////////////////////////////////////////////// procedure DepositArea(sx,sy,ex,ey: Integer); var x, y: Integer; begin if(BankScreen)then begin while(FindColor(x,y,65536,sx,sy,ex,ey))do begin Mouse(x+4,y+4,3,3,false); Wait(800); ClickOption('All', 2); end; end; end; //////////////////////////////////////////////////// // > Deposits All Items //////////////////////////////////////////////////// procedure DepositAll; var i: Integer; begin if(BankScreen)then begin for i:= 1 to 28 do if(ExistsItem(i))then begin Deposit(i, 0); Wait(850); end; end; end; //////////////////////////////////////////////////// // > Clicks Mouse on Specified Bank Slot //////////////////////////////////////////////////// procedure BankMouse(i: Integer; left: Boolean); var row, col, x, y: Integer; begin row := i div 8; col := i - (row*8) - 1; if(col<0)then begin col := 7; row := row-1; end; x:= 87 + (47 * col) + random(7); y:= 72 + (38 * row) + random(7); Mouse(x, y, 3, 3, left); end; //////////////////////////////////////////////////// // > Withdraws amount of item //////////////////////////////////////////////////// procedure Withdraw(i, amount: Integer); begin if(BankScreen)then begin if(amount=0)then begin BankMouse(i, false); Wait(800); ClickOption('All', 1); end else if(amount=10)then begin BankMouse(i, false); Wait(800); ClickOption('10', 1); end else if(amount=5)then begin BankMouse(i, false); Wait(800); ClickOption('5', 1); end else if(amount=1)then begin BankMouse(i, true); Wait(800); end else begin BankMouse(i, false); Wait(450); if(ClickOption('X', 1))then begin repeat Wait(150); until(GetColor(255,410)=8388608); TypeSend(inttostr(amount)); Wait(random(300)); TypeSend(chr(13)); Wait(800); end; end; end; end; //////////////////////////////////////////////////// // > Opens BankScreen //////////////////////////////////////////////////// function OpenBank:boolean; begin FindObjCenter('Use Bank booth',2842230,9) Mouse(x,y,0,0,False) wait(500+Random(500)) ClickText(3,3,515,336,'quickly',font2) wait(1000+Random(200)) result:=BankScreen; end; //////////////////////////////////////////////////// // > Drops All Items Specified //////////////////////////////////////////////////// procedure DropItems(Color, Tol, Num: Integer; Text: string); var TP: TPointArray; i: Integer; begin TP := FindItems(Color, Tol, Text, Num); for i:=0 to GetArrayLength(TP)-1 do begin Mouse(TP[i].x, TP[i].y, 2, 2, false); ClickTxt('Drop'); end; end; //////////////////////////////////////////////////// // > Picks up specified Object //////////////////////////////////////////////////// function PickUpObject(color, tol: Integer; name: string): Boolean; var x, y: Integer; begin if(FindObj(x, y, 'Take '+name, color, tol, 7, 10))then begin if(ClickOption(name, 1))then Result := true; end; end; //////////////////////////////////////////////////// // > Loads words for GhostSpeak //////////////////////////////////////////////////// procedure LoadWords(ActionType:String); begin if(ActionType='Fighting')then begin Say[1]:='str lvls'; //Fighting Say[2]:='def lvls'; Say[3]:='att lvls'; Say[4]:='take that'; Say[5]:='crazy'; Say[6]:='cant handle this'; Say[7]:='super'; Say[8]:='pretty fly'; Say[9]:='ooog'; Say[10]:='arg'; Say[11]:='doh'; Say[12]:='doof'; Say[13]:='ai karumba'; Say[14]:='ugg'; Say[15]:='man this is insane'; Say[16]:='booya'; Say[17]:='owning these beasts'; Say[18]:='owned'; Say[19]:='watch and learn'; Say[20]:='oh yeah'; Say[21]:='uh huh'; Say[22]:='victory dance'; Say[23]:='we are the champions'; Say[24]:='no time to sleep'; Say[25]:='perfect'; Say[26]:='captain insano'; Say[27]:='excellent'; Say[28]:='yay almost lvled up'; Say[29]:='keep it up'; Say[30]:='bring it on'; end; if(ActionType='Mining')then begin Say[1]:='Mining lvls'; //Mining Say[2]:='smithing lvls'; Say[3]:='stop stealin my ores'; Say[4]:='i love this pick'; Say[5]:='mining is boring'; Say[6]:='haha'; Say[7]:='lol'; Say[8]:='oh yeah'; Say[9]:='u like to mine'; Say[10]:='go away'; Say[11]:='let me mine in peace'; Say[12]:='bahaha'; Say[13]:='freakin rocks'; Say[14]:='how many ores u got in bank'; Say[15]:='ive got ores'; Say[16]:='my mining owns yours'; Say[17]:='ill give you my pick, not'; Say[18]:='noob'; Say[19]:='minin lvl'; Say[20]:='mining level'; Say[21]:='give me a rune pick'; Say[22]:='are rune picks the best'; Say[23]:='be quiet'; Say[24]:='your annoying'; Say[25]:='buzz off'; Say[26]:='go take a dump'; Say[27]:='mining takes too long'; Say[28]:='yay almost lvl up'; Say[29]:='my mining is about to lvl up'; Say[30]:='w00t'; end; if(ActionType='Woodcutting')then begin Say[1]:='Cutting lvls'; //Woodcutting Say[2]:='wood level'; Say[3]:='woodcutting levels'; Say[4]:='Taste my axe'; Say[5]:='poison ivy oh no'; Say[6]:='chop away'; Say[7]:='the bark is worse than the bite'; Say[8]:='whats the best tree'; Say[9]:='these trees grow fast'; Say[10]:='look at all these logs'; Say[11]:='haha'; Say[12]:='lol'; Say[13]:='owned'; Say[14]:='like my axe'; Say[15]:='my wc is about to lvl'; Say[16]:='yay woodcutting is almost lvled'; Say[17]:='bout to lvl up'; Say[18]:='w00t'; Say[19]:='are rune axes the best'; Say[20]:='i found an owl'; Say[21]:='noob'; Say[22]:='my woodcutting is better than yours'; Say[23]:='axes are cool'; Say[24]:='wow'; Say[25]:='crazy'; Say[26]:='insane'; Say[27]:='cant handle this'; Say[28]:='stupid tree'; Say[29]:='why are leaves green'; Say[30]:='whats your wc lvl'; end; if(ActionType='Cooking')then begin Say[1]:='Cooking lvls'; //Cooking Say[2]:='cooking level'; Say[3]:='cooking levels'; Say[4]:='Taste my pie'; Say[5]:='rofl'; Say[6]:='cook away'; Say[7]:='mmm biscuits'; Say[8]:='whats the best food'; Say[9]:='wanna see my cherry pie'; Say[10]:='look at all these cakes'; Say[11]:='haha'; Say[12]:='lol'; Say[13]:='owned'; Say[14]:='like my spatula'; Say[15]:='my cooking is about to lvl'; Say[16]:='yay cooking is almost lvled'; Say[17]:='bout to lvl up'; Say[18]:='w00t'; Say[19]:='im a chef'; Say[20]:='i found a cookie'; Say[21]:='noob'; Say[22]:='my cooking is better than yours'; Say[23]:='pies are cool'; Say[24]:='wow'; Say[25]:='crazy'; Say[26]:='insane'; Say[27]:='cant handle this'; Say[28]:='stupid oven'; Say[29]:='too much wine'; Say[30]:='whats your cooking lvl'; end; if(ActionType='Fletching')then begin Say[1]:='Fletching lvls'; //Fletching Say[2]:='Fletching level'; Say[3]:='fletchin levels'; Say[4]:='Taste my arrow'; Say[5]:='rofl'; Say[6]:='shoot away'; Say[7]:='my arrow has cool feathers'; Say[8]:='whats the best arrow'; Say[9]:='these arrows are crooked'; Say[10]:='look at all these arrows'; Say[11]:='haha'; Say[12]:='lol'; Say[13]:='owned'; Say[14]:='like my arrow'; Say[15]:='my fletching is about to lvl'; Say[16]:='yay fletching is almost lvled'; Say[17]:='bout to lvl up'; Say[18]:='w00t'; Say[19]:='are rune arrows the best'; Say[20]:='i dont have the skills'; Say[21]:='noob'; Say[22]:='my fletching is better than yours'; Say[23]:='arrows are cool'; Say[24]:='wow'; Say[25]:='crazy'; Say[26]:='insane'; Say[27]:='cant handle this'; Say[28]:='stupid arrow'; Say[29]:='freakin idiot'; Say[30]:='whats your fletching lvl'; end; if(ActionType='Smelting')then begin Say[1]:='smelting lvls'; //Smelting Say[2]:='Smelting level'; Say[3]:='smelting levels'; Say[4]:='Taste my iron bar'; Say[5]:='rofl'; Say[6]:='smelt away'; Say[7]:='how about steel'; Say[8]:='whats the best bar'; Say[9]:='these bars smelt fast'; Say[10]:='this iron keeps melting'; Say[11]:='haha'; Say[12]:='lol'; Say[13]:='owned'; Say[14]:='like my skillz'; Say[15]:='my smelting is about to lvl'; Say[16]:='yay smelting is almost lvled'; Say[17]:='bout to lvl up'; Say[18]:='w00t'; Say[19]:='are rune bars the best'; Say[20]:='i found a rune bar'; Say[21]:='noob'; Say[22]:='my smelting is better than yours'; Say[23]:='bars are cool'; Say[24]:='wow'; Say[25]:='crazy'; Say[26]:='insane'; Say[27]:='cant handle this'; Say[28]:='stupid iron'; Say[29]:='im gonna sell this and get rich'; Say[30]:='whats your smelting lvl'; end; end; //////////////////////////////////////////////////// // > GhostSpeak :D //////////////////////////////////////////////////// procedure GhostSpeak(Action:string); var rn:Integer; begin LoadWords(Action) if(random(25)=1)then begin rn:=random(30)+1; typesend(Say[rn]) Wait(100+random(100)); end; end; //////////////////////////////////////////////////// // > Redoing //////////////////////////////////////////////////// function Flagdist:Integer; var flagpic,fx,fy,value:Integer; var value2,value3,value4:extended; begin result := 0; if(IsFlag)then; begin flagpic := BitmapFromString(2, 2,'FF00005D3311C656045D3311'); FindBitmap(flagpic,fx,fy); fx := fx+2; fy := fy+2; value2:=((648-fx)*(648-fx))+((83-fy)*(83-fy)); value3:=(abs(value2)); value4:=(Sqrt(value3)); value:=trunc(value4); end; if(value=651)then value:=0; result:=value; end; //////////////////////////////////////////////////// // > Waits until FlagDis is reached //////////////////////////////////////////////////// procedure HumanFlag(flagdis:Integer); begin repeat wait(150); until(FlagDist<=flagdis) end; //////////////////////////////////////////////////// // > Gets Stat //////////////////////////////////////////////////// function GetStatFor(stat:string; bottom:Integer):Integer; var ox, oy, ox2, oy2, col, row:Integer; s0, s1, s2, s3, s4: Integer; s5, s6, s7, s8, s9: Integer; begin s0 := CreateBitmapMaskFromText('0',Fontsmall) s1 := CreateBitmapMaskFromText('1',Fontsmall) s2 := CreateBitmapMaskFromText('2',Fontsmall) s3 := CreateBitmapMaskFromText('3',Fontsmall) s4 := CreateBitmapMaskFromText('4',Fontsmall) s5 := CreateBitmapMaskFromText('5',Fontsmall) s6 := CreateBitmapMaskFromText('6',Fontsmall) s7 := CreateBitmapMaskFromText('7',Fontsmall) s8 := CreateBitmapMaskFromText('8',Fontsmall) s9 := CreateBitmapMaskFromText('9',Fontsmall) GameTab(2); case LowerCase(stat) of 'attack', 'strength','defence','ranged','prayer', 'magic', 'rc': col:=1 'hp','agility','herb','thieve','craft','fletch': col:=2 'mine','smith','fish','cook','fire','wc': col:=3 'attack','hp','mine': row:=1 'strength','agility','smith': row:=2 'defense','herb','fish': row:=3 'range','thieve','cook': row:=4 'prayer','craft','fire': row:=5 'magic','fletch','wc': row:=6 'rc': row:=7; end; if(bottom=0)then begin ox:=520+(col*64); oy:=179+(row*31); end; if(bottom=1)then begin ox:=532+(col*64); oy:=191+(row*31); end; ox2:=ox+9 oy2:=oy+9 if(FindBitmapMaskTolerance(s1,x,y,ox,oy,ox2,oy2,10,240))then Result:=10 if(FindBitmapMaskTolerance(s2,x,y,ox,oy,ox2,oy2,10,240))then Result:=20 if(FindBitmapMaskTolerance(s3,x,y,ox,oy,ox2,oy2,10,240))then Result:=30 if(FindBitmapMaskTolerance(s4,x,y,ox,oy,ox2,oy2,10,240))then Result:=40 if(FindBitmapMaskTolerance(s5,x,y,ox,oy,ox2,oy2,10,240))then Result:=50 if(FindBitmapMaskTolerance(s6,x,y,ox,oy,ox2,oy2,10,240))then Result:=60 if(FindBitmapMaskTolerance(s7,x,y,ox,oy,ox2,oy2,10,240))then Result:=70 if(FindBitmapMaskTolerance(s8,x,y,ox,oy,ox2,oy2,10,240))then Result:=80 if(FindBitmapMaskTolerance(s9,x,y,ox,oy,ox2,oy2,10,240))then Result:=90 ox:=ox+6 ox2:=ox+9 if(FindBitmapMaskTolerance(s0,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+0 if(FindBitmapMaskTolerance(s1,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+1 if(FindBitmapMaskTolerance(s2,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+2 if(FindBitmapMaskTolerance(s3,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+3 if(FindBitmapMaskTolerance(s4,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+4 if(FindBitmapMaskTolerance(s5,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+5 if(FindBitmapMaskTolerance(s6,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+6 if(FindBitmapMaskTolerance(s7,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+7 if(FindBitmapMaskTolerance(s8,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+8 if(FindBitmapMaskTolerance(s9,x,y,ox,oy,ox2,oy2,10,240))then Result:=Result+9 end; //////////////////////////////////////////////////// // > Gets HP Percentage //////////////////////////////////////////////////// function GetHp:Integer; var Hp1,Hp2:Integer; begin Hp1:=(GetStatFor('hp',0)) Hp2:=(GetStatFor('hp',1)) if(Hp1>0)and(Hp2>0)then Result:=Round((Hp1/Hp2)*100); end; //////////////////////////////////////////////////// // > Looks DTM on specified inv (redoing) //////////////////////////////////////////////////// function InventorySlotDTM(i, DTM:Integer):Boolean; var row, col: Integer; begin row := i div 4; col := i - (row*4) - 1; if(col<0)then begin col := 3; row := row-1; end; Result:= FindDtm(DTM, x, y, (col*45)+525, (col*45)+560, (row*30)+180, (row*30)+210); end; //////////////////////////////////////////////////// // > Drops DTM In Inventory //////////////////////////////////////////////////// procedure DropInvenDTM(DTM:Integer); var i: Integer; begin for i:= 1 to 28 do if(InventorySlotDTM(i, DTM))then begin Mouse(x,y,0,0,False); wait(300); if(not ClickOption('Drop', 2))then ClickOption('Cancel', 2); end; end; //////////////////////////////////////////////////// // > RANDOMS //////////////////////////////////////////////////// // > RANDOMS //////////////////////////////////////////////////// // > RANDOMS //////////////////////////////////////////////////// //////////////////////////////////////////////////// // > Waits while flag exists. //////////////////////////////////////////////////// procedure SetAntiName(Us:Integer); begin case us of 1:AntiUse:=CreateBitmapMaskFromText(UserName1,Font2) 2:AntiUse:=CreateBitmapMaskFromText(UserName2,Font2) 3:AntiUse:=CreateBitmapMaskFromText(UserName3,Font2) 4:AntiUse:=CreateBitmapMaskFromText(UserName4,Font2) 5:AntiUse:=CreateBitmapMaskFromText(UserName5,Font2) end; end; //////////////////////////////////////////////////// // > Looks For Mysterious Box //////////////////////////////////////////////////// procedure LookForBox(clickit:boolean); begin if(FindBitmapSpiralTolerance(RandomBox,x,y,565,205,730,460,30))then begin BoxFound:=true; if(clickit)then begin Mouse(x,y,10,10,true); wait(3000+random(1000)); end; end; end; //////////////////////////////////////////////////// // > BoxBreaker (soon to be improved) //////////////////////////////////////////////////// //BoxBreaker Vars var bluecircle,redcircle,yellowcircle,bluecircle2,redcircle2,yellowcircle2,bluecircle3,redcircle3,yellowcircle3, bluehalfmoon,redhalfmoon,yellowhalfmoon,bluetriangle,redtriangle,yellowtriangle, bluesquare,redsquare,yellowsquare,bluesquare2,redsquare2,yellowsquare2,bluestar, redstar,yellowstar,bluestar2,redstar2,yellowstar2,boxes,i: Integer; text,answer,question: string; done,LoadedBoxBmp: Boolean; procedure getquestion; begin status('Finding Question') done:=false; for i:=0 to 8 do begin case i of 0:text:='B'; //Blue 1:text:='R'; //Red 2:text:='Y'; //Yellow 3:text:='C'; //Circle 4:text:='H'; //Halfmoon 5:text:='T'; //Triangle 6:text:='Sq';//Square 7:text:='St';//Star end; y:=260; for x:=285 to 315 do if(Istextat2(x,y,text,100))then begin done:=true; answer:=text; break; end; if(done)then break; end; end; //////////////////////////////////////////////////// // > Waits while flag exists. //////////////////////////////////////////////////// procedure getanswer; var c:Integer; begin status('Solving Box...') answer:=''; case i of 0:question:='Blue Shape'; 1:question:='Red Shape'; 2:question:='Yellow Shape'; 3:question:='Color of the Circle'; 4:question:='Color of the Halfmoon'; 5:question:='Color of the Triangle'; 6:question:='Color of the Square'; 7:question:='Color of the Star'; end; writeln('Searching for the '+question+'...') case i of 0:begin repeat wait(10); if(findbitmaptolerancein(bluecircle,x,y,245,129,271,143,30))then answer:='Circle'; if(findbitmaptolerancein(bluecircle2,x,y,250,131,284,146,30))then answer:='Circle'; if(findbitmaptolerancein(bluecircle3,x,y,233,118,267,132,30))then answer:='Circle'; if(findbitmaptolerancein(bluehalfmoon,x,y,238,117,265,135,30))then answer:='Halfmoon'; if(findbitmaptolerancein(bluetriangle,x,y,244,103,273,150,30))then answer:='Triangle'; if(findbitmaptolerancein(bluesquare,x,y,239,133,265,153,30))then answer:='Square'; if(findbitmaptolerancein(bluesquare2,x,y,249,117,272,138,30))then answer:='Square'; if(findbitmaptolerancein(bluestar,x,y,263,119,290,139,30))then answer:='Star'; if(findbitmaptolerancein(bluestar2,x,y,237,129,262,148,30))then answer:='Star'; c:=c+1; until(answer<>'')or(c>=500); end; 1:begin repeat wait(10); if(findbitmaptolerancein(redcircle,x,y,245,129,277,145,30))then answer:='Circle'; if(findbitmaptolerancein(redcircle2,x,y,247,118,280,132,30))then answer:='Circle'; if(findbitmaptolerancein(redcircle3,x,y,247,132,284,148,30))then answer:='Circle'; if(findbitmaptolerancein(redhalfmoon,x,y,238,117,265,135,30))then answer:='Halfmoon'; if(findbitmaptolerancein(redtriangle,x,y,246,103,271,119,30))then answer:='Triangle'; if(findbitmaptolerancein(redsquare,x,y,255,134,279,153,30))then answer:='Square'; if(findbitmaptolerancein(redsquare2,x,y,237,118,260,138,30))then answer:='Square'; if(findbitmaptolerancein(redstar,x,y,249,121,276,140,30))then answer:='Star'; if(findbitmaptolerancein(redstar2,x,y,238,132,261,149,30))then answer:='Star'; c:=c+1; until(answer<>'')or(c>=500); end; 2:begin repeat wait(20); if(findbitmaptolerancein(yellowcircle,x,y,246,128,278,144,30))then answer:='Circle'; if(findbitmaptolerancein(yellowcircle2,x,y,233,117,267,132,30))then answer:='Circle'; if(findbitmaptolerancein(yellowcircle3,x,y,250,131,284,146,30))then answer:='Circle'; if(findbitmaptolerancein(yellowhalfmoon,x,y,238,117,265,135,30))then answer:='Halfmoon'; if(findbitmaptolerancein(yellowtriangle,x,y,245,104,272,119,30))then answer:='Triangle'; if(findbitmaptolerancein(yellowsquare,x,y,255,134,280,153,30))then answer:='Square'; if(findbitmaptolerancein(yellowsquare2,x,y,236,119,260,138,30))then answer:='Square'; if(findbitmaptolerancein(yellowstar,x,y,240,137,260,150,30))then answer:='Star'; if(findbitmaptolerancein(yellowstar2,x,y,264,121,290,139,30))then answer:='Star'; c:=c+1; until(answer<>'')or(c>=500); end; 3:begin repeat wait(20); if(findbitmaptolerancein(bluecircle,x,y,245,129,271,143,30))then answer:='Blue'; if(findbitmaptolerancein(bluecircle2,x,y,250,131,284,146,30))then answer:='Blue'; if(findbitmaptolerancein(bluecircle3,x,y,233,118,267,132,30))then answer:='Blue'; if(findbitmaptolerancein(redcircle,x,y,245,129,277,145,30))then answer:='Red'; if(findbitmaptolerancein(redcircle2,x,y,247,118,280,132,30))then answer:='Red'; if(findbitmaptolerancein(redcircle3,x,y,247,132,284,148,30))then answer:='Red'; if(findbitmaptolerancein(yellowcircle,x,y,246,128,278,144,30))then answer:='Yellow'; if(findbitmaptolerancein(yellowcircle2,x,y,233,117,267,132,30))then answer:='Yellow'; if(findbitmaptolerancein(yellowcircle3,x,y,250,131,284,146,30))then answer:='Yellow'; c:=c+1; until(answer<>'')or(c>=500); end; 4:begin repeat wait(20); if(findbitmaptolerancein(bluehalfmoon,x,y,238,117,265,135,30))then answer:='Blue'; if(findbitmaptolerancein(redhalfmoon,x,y,238,117,265,135,30))then answer:='Red'; if(findbitmaptolerancein(yellowhalfmoon,x,y,238,117,265,135,30))then answer:='Yellow'; c:=c+1; until(answer<>'')or(c>=500); end; 5:begin repeat wait(20); if(findbitmaptolerancein(bluetriangle,x,y,244,103,273,120,30))then answer:='Blue'; if(findbitmaptolerancein(redtriangle,x,y,246,103,271,119,30))then answer:='Red'; if(findbitmaptolerancein(yellowtriangle,x,y,45,104,272,119,30))then answer:='Yellow'; c:=c+1; until(answer<>'')or(c>=500); end; 6:begin repeat wait(20); if(findbitmaptolerancein(bluesquare,x,y,239,133,265,153,30))then answer:='Blue'; if(findbitmaptolerancein(bluesquare2,x,y,249,117,272,138,30))then answer:='Blue'; if(findbitmaptolerancein(redsquare,x,y,255,134,279,153,30))then answer:='Red'; if(findbitmaptolerancein(redsquare2,x,y,237,118,260,138,30))then answer:='Red'; if(findbitmaptolerancein(yellowsquare,x,y,255,134,280,153,30))then answer:='Yellow'; if(findbitmaptolerancein(yellowsquare2,x,y,236,119,260,138,30))then answer:='Yellow'; c:=c+1; until(answer<>'')or(c>=500); end; 7:begin repeat wait(20); if(findbitmaptolerancein(yellowstar,x,y,240,137,260,150,30))then answer:='Yellow'; if(findbitmaptolerancein(yellowstar2,x,y,264,121,290,139,30))then answer:='Yellow'; if(findbitmaptolerancein(bluestar,x,y,263,119,290,139,30))then answer:='Blue'; if(findbitmaptolerancein(bluestar2,x,y,237,129,262,148,30))then answer:='Blue'; if(findbitmaptolerancein(redstar,x,y,249,121,276,140,30))then answer:='Red'; if(findbitmaptolerancein(redstar2,x,y,238,132,261,149,30))then answer:='Red'; c:=c+1; until(answer<>'')or(c>=500); end; end; end; procedure AnswerQuestion; begin writeln('Clicking The Answer '+answer); ClickOption(answer, 1); writeln('Clicked...'); wait(100+random(50)); if(answer<>'')and(y>275)then BoxFound:=false; end; procedure loadboxbmps; begin bluecircle := BitmapFromString(25, 13, 'z78DADDD3CB0A80201085E157' + 'B29C333AEB2EEFFF48056D06441D292D22F897F1A1476608662EF' + '6FC7C5C47960DAAF1C256D518E77D5517A70789EB61BB1A269E20' + 'ADBD54BAEF7AB4EA0B12DDF4CFB4D11E45D7B2C6A73CA98A16DA2' + '2A7AD2C130802DDF2422CCD9E58AB9000F196DDDA55395BEBCDF6' + '50A5B6CA4B71707129ABFED4032A2F99F6'); bluecircle2 := BitmapFromString(33, 14, 'z78DAD5954B0A80300C05AFE4' + '27AF9AADA8F73F92C57651E887404D319B4114CA0CD8042B88279' + '8E236BB199CD2BA7FACB8B0D0E19C7F5A2CFA0706FF9C56FCDB15' + '23BB249ED57FE93D415ED1CF1EDBF68DB6E85F984B04F01AA9D0F' + '581A164C6A6152FC7FB7FB02F041585D3FCBBFD4C29F7D79809ED' + '8AFC6B645651235D74EF1CA8B167259316C0C628B07672B348E38' + 'EF7EC0EEDF933B2E53FCE0F2EA13D2F'); bluecircle3 := BitmapFromString(33, 13, 'z78DAD5944B0E80200C44AF44' + '6C476069FCDCFF489AC8A20988154571F3D8D179810E0C2D64210' + '9588F0419F0D41A7B03E619B1C591516B16033B9A03F3166FBE91' + 'BC5326D4506F51C6AB79CA58DBE21D970EE4A6C03FBAECBF515A7' + 'C6B54B6D747167296E6CEFB2E77DA29B688A73CD53F79977A4DDB' + '427EC55E58EA19E3CE072CB6D39B04ABF580CC7FE2F22DD5C9FF6' + '2944FBB02A4F426F5'); bluehalfmoon := BitmapFromString(26, 17, 'z78DAEDD1D10A80200C05D05F' + '0ADC1D3E07F9FF9F54580FC272ACD494F0E5FA3276CF109EE056C' + '4A480C50F94385EF2694EE19F84D23685BA644CA1DEDB57A8F7E6' + '6CDF382D5DBD84F62E39C30E4C41666B9B2ECCA9EA3ADFFD97DD5' + '6A2E50D01ACDBE4CE129B5D7BDAA4D0B2A7AEF02613DB950F2F1D' + 'CDD65C18253BFF4750FD'); bluesquare := BitmapFromString(25, 19, 'z78DACDD4B10E84300C03D05F' + '62C0A1AC77C7FFFF120296A2922A175B158BC7E8B54D6D1FFC007' + '3120BCA5A986C672E30C3D64FEBAA185BCE7325264CE5ABB5519E' + '6BCEA952D9729E8769958AB1C93CD5B49CCD4BC6D39E91B7F11EE' + 'F0FE66C2A4FBF19E236AD27D257ADAD161E5BBFDE32DE007C8B3E' + '681B8FD6A6928CB7B95B31C4E609231B1B4995F0DFDF345292B37' + '1EF65B3CD2A9B6E8B0E559D23EF3CAE7A836D07827F71BB'); bluesquare2 := BitmapFromString(22, 20, 'z78DAC5D3411283200C05D02B' + '61936F61D9517AFF2375465CC0449C40C06EFE4EFE23448E14893' + '84B7CD8533CF305F2FBEC6461B890CCF31C27D70C1327236EA731' + '0C93C8D9361A3A3D955E79C21489A63DA583F39B4552DD61C5DDF' + '3DE5C326C328AF6DA3E4C9174FD1776893C67EC7FA16FD7BCD180' + '3B1EBB6479A9E65E02075764DA6783648DF8C2ABBE62205C65972' + '1CF646890DCCEA14F921BF49E62DB85A1555233A824E6099C0620' + '62BF97E85FCA64F893E4BDAC0B426178D093DA53FE00734549CD'); bluestar := BitmapFromString(26, 19, 'z78DAE5D3310E80200C05D02B' + '61A488A3C6DEFF4A1A71D09412282D8BCB1F14FD2FA1F5082EEEE' + '0608A8745861982C7864440084FBE9E8FB765CE33360B61BDEDA3' + 'BA93FB83A190B4976DD642DADB6FD312CA6C9EECA985B06CE3DEB' + '6EEF878DB756A59B79416422D5B95904C8BF59D56098BF36C3D6F' + '1921F7AD92B0791752A3AA50C1461B9584425B4D63B7B0D9264A9' + '9708C4D261C69FB739E0BDD90BC'); bluestar2 := BitmapFromString(24, 18, 'z78DACDD44B0E80200C04D033' + '09147009F1FE6772A18B1A421DCA276CBA1ADB97D14886DC69499' + 'C21F9E80F0292C8F49112193E3F998B0E97910DD3253B7B44D5CF' + '0695A79A5CE2419A09C65BCADC235F5CE9411AD07970C933CB7CE' + 'D29DD5B933773C97A8FDC8CEC2937B47A78FEFD3644C91A0F2E41' + '3C3A1597ECE029AF2012DCC3AFB77A70C90C4F4F333A15FE3FD14' + '97A54A3EEF6DBC6F6C0E70DB805229A'); bluetriangle := BitmapFromString(28, 16, 'z78DAEDD53D0E80200C80D12B' + '096D4D1D25C1FB1F49A32E447E2D44892EDFC0D21712282E34B0C' + '1BF1F2B318EE0B41767410901E6E26E9391E3ADEC94CB33CCA7DC' + 'A2E529DE379845CE81345B4F35C1A49C5E543973EF55E4BCDC730' + '7CEE35729351830A09CE66B9F75C6E5FB49422B70865E629633DA' + '8430E02C6D35674858492B777AE475774733670BED0A5AFC4FF5'); redcircle := BitmapFromString(31, 15, 'z78DAEDD34D0A80201080D12B' + 'A5F323B334A9FB1FA9C01613522A514DD0E65B09BDB19199843C9' + 'F367A9C215A2B37C86D4ED12BB733CB75F9BBB3DCE1CF0D8E1DC9' + '1DDDFC4803A45CFB662DFF8A56B7FCBA244C20BA2DDBF5A4B9944' + 'BC471D516ADBC94480093EEEE9FAA3DBCDEA69BEF9D2290DF9B9F' + '911FF97BB7E82D79E93F3F29334E35F9DFBF16BA00860F55B7'); redcircle2 := BitmapFromString(33, 14, 'z78DAD5D44B0A80300C04D02B' + '994FFD2C2BD4FB1F49312E0A92925A0D76331B05E7953A9C28114' + '5E48D628F1952405EF954E4D941F3C83325E9AF29FE29BA9A2B59' + '56788ACA3DDF5248D28000A3E5CD96565F2B6AD347B16CC7D7A26' + '48F22B98DB9C247A49D61396B15CFFEEB5A8BBDBFC56239FFB756' + 'A85DA1593C37D6AEC01909417B7A5FE60946088BA4A7A27D07F2E' + '6F7FC7AA9DA97ADDCFFFF22ADE70E427E7341'); redcircle3 := BitmapFromString(36, 15, 'z78DAD5D6C10E83200C06E057' + '9A94623832E6DEFF9146C403A6A9296B17BBCB7FD1847E427EC40' + 'D437CE29025E203AA2A437C43314E66AD75490B669A485C3D536A' + 'CF820BD7A4887375114D3FAE6B117571A269A9DA22999CCB63861' + '5036CB322ABD4CCCF8A06D798FF2892B84EB9BFE341246F0F91CB' + '7407F50AB9EE68804997A42BE422831BF3B22739E349C47D0171D' + '7E51A2BE49EB62E898EEDF682D01434BFEAFC5FB48724FD74DDBD' + '3A473363FBD778E98DEEF6627769743ECFD80766BCB3E7'); redhalfmoon := BitmapFromString(26, 17, 'z78DAEDD14D0A80201086E12B' + '05F383DB8CBCFF91026B514C0E536A4AB87957E2F788E490C053E' + 'C3CE102AE9F92C780970EE19F84D23684BAA44FA1BEDB56A8EFA6' + '6CDF382D5BAD84F62D79868118836C6D9B2E4CA9CA3ADFFD97DD9' + '6A3E59502B16E9377E6D8ECDADD2685967BCA0A6F7AB21D7DF8D2' + 'DE6CD58551B201AAD14AD9'); redsquare := BitmapFromString(23, 18, 'z78DAC5D4C10EC0100C06E057' + '62B4E228C2FB3FD2929D2C1D69D7DA2EFF45D4972A8890E140922' + '5820B559A6385E4D143E6274E24520FDDCB37940447686B09C7A3' + '37D0947A7618F89E595AF541E3D11BE8C44A3D5686D9DBE1786C0' + 'DEB57BCAE906BACE196D2DF43FA9FD03E508395C7CAA0F7B00C3D' + 'B6501EF293FED0D5A987E1D44F91C6B3E374A9E7E58D2474D0AD3' + 'CAAD9B8241A8F558E927F552787461049'); redsquare2 := BitmapFromString(22, 19, 'z78DABDD44112C2300805D02B' + '390289DB98B1F73F928EB8C0699342806EFEAEF96F0829DD60834' + 'AF36CF88057AB748F4B3EF3971A83C8E0F625C39AE4A0D76DD04B' + '4EDADD869144D52BB27542D8FC12B9BD86769637826B250773E37' + '96648761ECDDBCC90E4BD4D6BFBC91D594FE659890CD899A5DE60' + 'C9BCFDBB1B7F3992E0E78B9E72A78A0948C39AA44241EA2EC9E82' + 'F6D34C8B41A3C73DEB7CF25B129BBCAB360C16B24A31636644BE6' + '337F038380235F'); redstar := BitmapFromString(26, 18, 'z78DAEDD3310E80200C05D02B' + 'A9D8E2AA51EF7F244D70A8F9961404E2E0F20742E94B0166F2D43' + '3E4ECA9734B8D7CE8B5D2E03699BEE39EA6791CF7B34A646D6138' + '3974BF0C9A4DD636114A15DA6EEBE6F97FCD5643986763E55F94F' + 'D299A0DD7B5EE0B11BB3D6459619E4D7A30D1667F159A4DBB4D6D' + '6E71219E902AB44CCC7EA76585EF6D724F59E11B9BB6D36E8B0BE' + '35568B3EF4767AA30B5575EE609DBD8D06911B6B7D9857FD6CE03' + '1BA2544D'); redstar2 := BitmapFromString(22, 16, 'z78DAC5D1310E80200C85E12B' + '295870C578FF3339B034C1368F96EAD209FB7F20DDB41F57ABB4E' + '597594E6A94FA94CE2053DF43C106BE4137E895680372539B01A9' + 'D754322D73CE1A7AFD4B83F4029261FC6AD6C0CFF78A548F36207' + '5DD6093F0FA5F8671BF5E470CBC386B40EA6B0DB617C00DC89FB2' + 'D53D124FCBEFF1DFD723896B3D986FCA56'); redtriangle := BitmapFromString(24, 13, 'z78DACDD4310AC0200C40D12B' + 'B526011DD5E2FD8F547112A2369AD23AF817037938E80F8C60FD3' + '6258B046137CF44090DB8E9064C68C75DF4E88543958B18A0D1BF' + '6CB31E6FF002D72861CAB755F9F6DE2E79551EF66E1B794A251BF' + '30970CA55DF7878F9CC834AE1A9677A9E71C7929E475295A723D1' + 'A8D63CBC2FFCABA53765999C1D'); yellowcircle := BitmapFromString(31, 15, 'z78DAEDD4CB0A80201085E157' + 'CA18A7CE72BAF8FE8F94E04611CDA8688A36FF52BE0383CC16B6E' + '7AC2210729ACB05B97E7F5DAE7945BB5CDB9633F267B75C2B8F3B' + '183616F755662CB60B7D8B39F45DDA925C7A10CD49078CFEAEA26' + 'A30C77238189AF2E6F2A42B9CDF1BB57487E7DB722D8757145EBE' + '5BDE72ED2D57F4943CF7EFFC4804A6B52EFFFBBD6E501566D1'); yellowcircle2 := BitmapFromString(33, 14, 'z78DAD5D43D0E80200C86E12B' + '1169F91909C2FD8F64220E1094148862977732E67B86824246A9F' + '1AC0B36E2C6B19829385A944080502BB888D08191E16A53B14A54' + '2CA494AC186CEF9EB1BEADF8C4E2B4351053395A9CB73B8A5CB15' + '63476354F8AE2A2D337CDCE5B666EBF56DCBC4B04C5BCB44391FF' + '9370DD7FD84FB90B2D15A04F5DA5987907F2FD6DCBE292977311B' + '5D71E40596F36'); yellowcircle3 := BitmapFromString(33, 14, 'z78DAD595410E80200C04BFA4' + '04303D56D4FF3F49633D9000B5A460F0B2F1843340170CB0B909F' + '58980F66896ECBF96D9CF0EE21C8E9FB548F929DDEE8C5DBDBFBE' + 'CCC8A750E2A724FE34C7B1E0F9798B0A2F35B984B394C420B7D0A' + '786969FE83FF23F16F199EE705CB785B283977E9F5F3A36B5B8F3' + '7BFEDA56CCAC20B0904CA89C1F1BBDB3728B06BD64C0DA4099B9C' + 'F8DFAEDA55D13C778826AED7ACCB8E6EDE8DD3F5FBA8CC37C026F' + '8865DD'); yellowhalfmoon := BitmapFromString(26, 17, 'z78DACDD3DD0AC0200806D087' + '9A4A5DAEB1DEFF9106D120703A37FAF1E6BB0A3DA56100DC1296D' + 'C31121C8B33C4702726C810DAF4637324642A17425525D926090D' + 'B6C542A6AD7DBD0999C18550DF7F836DB8D3605B26D4A76610D28' + '6049967AF7FFAF21AC27949D5D7699A1713DA6D1FB4BCCB891949' + 'B7D59A9D6C266D63E342B1CE30E14336B69A969BCE11FEB20D171' + '6C90538E2555E'); yellowsquare := BitmapFromString(24, 18, 'z78DACDD44B0A80300C45D12D' + 'A934910CC5CFFE97A46807851848CC539CDC89D81EDB2033090DA' + 'C3ACDB250176DBBC2D8734FE2AF5E21A3D2EF46251E8F478592D4' + 'AEB21D3B9E8DAAC012E5F1A8ACE625D7D3FAED09154AD27A9EA9B' + '012EDF1ABDE90581E4B75B5EE32482973DBE8DF26EAB1CE444BB0' + '2A9404A572498A70596FFAE159DD4CA6A5726851D39551BD6788A' + 'A52773472471B4A059899D3935161DB7AFE60DB01EDE229C6'); yellowsquare2 := BitmapFromString(24, 19, 'z78DABDD5410E84200C05D02B' + 'C994565982A3F73FD24C844513140B1462F27796272D880B9CB0A' + '23CBDDDE0F0873BF1A395B166CA5A0F4B6549B7A74D75636019C0' + '03DA39AAB2844FC23895C490F72B186F10B4547CF2E599FCACC27' + 'CD5CD7E661586A8325BED791FA19A73DE6B252F7DD4FDDEFE19AB' + '7C37F591A5AE6A05B2B88B24D72CF17CBCFD76F7C5A54D153D129' + '56467B8A74DC53D729544D2A6CA3D65DBCB1FAAE374C415299025' + '5BABD24DBE56F4F09CA37A5A851C99FF335155EEC50FF41F58BB'); yellowstar := BitmapFromString(19, 12, 'z78DAC5CF4B0E80300804D02B' + '992A6897D8F4FE5732B11B0C8108F8D9CC82D07905372028D46A5' + 'B3A4F3CE723A9D70ED39DB45FAD0567D82F3B0991EF8F6669BD21' + 'DA9614632EB7BE1165A736D744EE7A45DBCA8BDEEB6C51FD49E23' + 'AAFE86DCEB8B15B62EE53CDFFE6019DC02E60'); yellowstar2 := BitmapFromString(25, 17, 'z78DAE5D3310EC3200C05D043' + '15BBC9E826F4FE478A543250192CC3C75DBAFC8104F3447EF8419' + 'CDEFC4979EE5B3A56255793758AEC92CE929C29137FA57E3FCE56' + '9D6BABEEF5305BE31E00D52A1BA28AB3D9AADE53BB93B86D4EF52' + '2214A25236CB8CA652B337B92AA0FF6B99E2FE8B2E9C90E1BDEAB' + '86ADB76B916DA0EDBA6FB00D52D9FF02601B563912B745A8B470D' + '416AD9AB3FD46F59F790181F2460D'); yellowtriangle := BitmapFromString(24, 14, 'z78DAEDD4310E80200C85E133' + '695F0D8CADC6FB1FC9C1B109F21494C1E59F18BEB4A4A679C16A7' + 'FC96A828A9F1DD94654314BA6EBD891CA6D607BAE259D9F4DB5A9' + 'CD2C3BB69A4649EF3F49D8C23C07B591D7002E2ED359E2DABC6E8' + 'B8D2F5961BD2D6EBF6CBB90DFB2D5B7B78D151EEFFEC33F'); end; procedure FreeBoxBmps; begin FreeBitmap(bluecircle); FreeBitmap(bluecircle2); FreeBitmap(bluecircle3); FreeBitmap(bluehalfmoon); FreeBitmap(bluetriangle); FreeBitmap(bluesquare); FreeBitmap(bluesquare2); FreeBitmap(bluestar); FreeBitmap(bluestar2); FreeBitmap(redcircle); FreeBitmap(redcircle2); FreeBitmap(redcircle3); FreeBitmap(redhalfmoon); FreeBitmap(redtriangle); FreeBitmap(redsquare); FreeBitmap(redsquare2); FreeBitmap(redstar); FreeBitmap(redstar2); FreeBitmap(yellowcircle); FreeBitmap(yellowcircle2); FreeBitmap(yellowcircle3); FreeBitmap(yellowhalfmoon); FreeBitmap(yellowtriangle); FreeBitmap(yellowsquare); FreeBitmap(yellowsquare2); FreeBitmap(yellowstar); FreeBitmap(yellowstar2); end; procedure FindBox; begin if(not LoadedBoxBmp)then begin RandomBox := BitmapFromString(16, 5, 'z78DAB370B53001420CD2D4CCD' + '4C2C90953DCC4D9C4CCC4CCCCD50C04904888AC9393A98BA91932' + '89690E44845AE6639A495DF371998CCB2EEA9A4FB9FB0132CE6BE' + 'A'); LoadedBoxBmp:=true; end; LookForBox(false); if(BoxFound)then begin LoadBoxBmps; repeat Boxes:=Boxes+1; LookForBox(true); getquestion; getanswer; writeln('Found the '+question+': '+answer); ClickOption(answer, 1); wait(1500+random(500)); until(not(FindBitmapSpiralTolerance(RandomBox,x,y,570,200,745,465,100))); FreeBoxBmps; end; end; //////////////////////////////////////////////////// // > END OF BOXBREAKER //////////////////////////////////////////////////// //////////////////////////////////////////////////// // > Clicks Specified Lamp Skill //////////////////////////////////////////////////// procedure ClickSkill(usage:string; var lampsx, lampsy: Integer); begin case LowerCase(usage) of 'attack': Mouse(165,155,3,3,true); 'strength': Mouse(196,155,3,3,true); 'ranged', 'range': Mouse(227,155,3,3,true); 'magic', 'mage': Mouse(260,155,3,3,true); 'defense', 'defence': Mouse(295,155,3,3,true); 'hitpoints', 'hp': Mouse(322,155,3,3,true); 'prayer': Mouse(356,155,3,3,true); 'agility': Mouse(165,193,3,3,true); 'herblore', 'herb': Mouse(196,193,3,3,true); 'thieving': Mouse(227,193,3,3,true); 'crafting': Mouse(260,193,3,3,true); 'runecrafting','rc': Mouse(295,193,3,3,true); 'slayer': Mouse(322,193,3,3,true); 'farming': Mouse(356,193,3,3,true); 'mining': Mouse(165,228,3,3,true); 'smithing': Mouse(195,228,3,3,true); 'fishing': Mouse(226,228,3,3,true); 'cooking': Mouse(260,228,3,3,true); 'firemaking': Mouse(295,228,3,3,true); 'woodcutting': Mouse(322,228,3,3,true); 'fletching': Mouse(356,228,3,3,true); end; GetMousePos(lampsx,lampsy); end; //////////////////////////////////////////////////// // > Uses Lamp //////////////////////////////////////////////////// function UseLamp(usage:string):boolean; var lampsx, lampsy, c: Integer; begin while(FindDtm(dtmLamp,x,y,563,211,734,460))do begin WriteLn('Found a Lamp') result:=true; Mouse(x,y,2,2,true); wait(350+random(200)); ClickSkill(usage,lampsx,lampsy); Mouse(258,258,4,1,true); wait(350+random(200)); Mouse(258,258,4,1,true); repeat wait(100); until(not(FindDtm(dtmLamp,x,y,563,211,734,460))); wait(350); Mouse(258,258,4,1,true); while((FindColor(x,y,16711680,5,345,510,465))or (FindColor(x,y,16777215,5,345,510,465)))and (not(GetColor(20,434)=0))and(c<=10)do begin Mouse(x,y,50,2,true); wait(2000+random(1000)); c:=c+1; end; wait(1000); Lamp:=Lamp+1; end; end; //////////////////////////////////////////////////// // > Mouse and Flag in 1 procedure //////////////////////////////////////////////////// procedure MouseFlag(cx,cy,rx,ry:Integer); begin Mouse(cx,cy,rx,ry,true); Flag; Wait(Random(250)+250); end; //////////////////////////////////////////////////// // > Runs Away //////////////////////////////////////////////////// procedure RunTo(dir:string; runfar:boolean); begin Run(true); if(runfar)then case UpperCase(dir) of 'N': MouseFlag(648,83-63,0,0) 'S': MouseFlag(648,83+63,0,0) 'E': MouseFlag(648+63,83,0,0) 'W': MouseFlag(648-63,83,0,0) end; if(not runfar)then case UpperCase(dir) of 'N': MouseFlag(648,83-30,0,0) 'S': MouseFlag(648,83+30,0,0) 'E': MouseFlag(648+30,83,0,0) 'W': MouseFlag(648-30,83,0,0) end; wait(6500) if(runfar)then case UpperCase(dir) of 'N': MouseFlag(648,83+63,0,0) 'S': MouseFlag(648,83-63,0,0) 'E': MouseFlag(648-63,83,0,0) 'W': MouseFlag(648+63,83,0,0) end; if(not runfar)then case UpperCase(dir) of 'N': MouseFlag(648,83+30,0,0) 'S': MouseFlag(648,83-30,0,0) 'E': MouseFlag(648-30,83,0,0) 'W': MouseFlag(648+30,83,0,0) end; Run(False) GameTab(4); end; //////////////////////////////////////////////////// // > Sets Minimaps Stuff //////////////////////////////////////////////////// procedure ColorMiniMap(YourCol,Low,Up,GrLow,GrUp,ClickCol,MakeWant,UnWant: Integer); var gg, gy, ColLoc: Integer; MiniCanvas: TCanvas; Don: boolean; begin MiniCanvas:=GetClientCanvas; CopyCanvas(MiniCanvas,FinalMiniCanvas,570,3,726,162,0,0,156,159); repeat gg:= 0; repeat Don:=False; ColLoc := FinalMiniCanvas.Pixels[gg , gy]; if(ColLoc >= Low) and (ColLoc <= Up) then begin FinalMiniCanvas.Pixels[gg , gy] := MakeWant; gg:= gg + 1; Don:=True; end; if(ColLoc >= Grlow) and (ColLoc <= GrUp) then begin FinalMiniCanvas.Pixels[gg , gy] := ClickCol; gg:= gg + 1; Don:=True; end; if(ColLoc >= 16777215) then begin FinalMiniCanvas.Pixels[gg , gy] := YourCol; gg:= gg + 1; Don:=True; end; if(not(Don))then begin FinalMiniCanvas.Pixels[gg , gy] := UnWant; gg:= gg + 1; end; until(gg>=156) gy:= gy + 1 until(gy>=159) end; //////////////////////////////////////////////////// // > Fixes Run Canvas //////////////////////////////////////////////////// procedure RunCanvas(dir:string; sx,sy:Integer; Going: Boolean); var jj:Integer; begin if(FinalMiniCanvas.Pixels[sx , sy] = 532892)then MouseFlag(570+sx,sy+3,0,0) if(Going)then begin if(Dir='N')then begin jj:=sx; repeat repeat sx:=sx+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx>156) if(sx>156)then begin sx:=jj; repeat sx:=sx-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='S')then begin jj:=sx; repeat repeat sx:=sx+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx>156) if(sx>156)then begin sx:=jj; repeat sx:=sx-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='E')then begin jj:=sy; repeat repeat sy:=sy+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy>159) if(sx>159)then begin sy:=jj; repeat sy:=sy-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='W')then begin jj:=sy; repeat repeat sy:=sy+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy>159) if(sx>159)then begin sy:=jj; repeat sy:=sy-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; end; if(not(Going))then begin if(Dir='N')then begin jj:=sx; repeat repeat sx:=sx+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx>156) if(sx>156)then begin sx:=jj; repeat sx:=sx-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='S')then begin jj:=sx; repeat repeat sx:=sx+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx>156) if(sx>156)then begin sx:=jj; repeat sx:=sx-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sx<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='E')then begin jj:=sy; repeat repeat sy:=sy+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy>159) if(sx>159)then begin sy:=jj; repeat sy:=sy-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; if(Dir='W')then begin jj:=sy; repeat repeat sy:=sy+1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy>159) if(sx>159)then begin sy:=jj; repeat sy:=sy-1 until(FinalMiniCanvas.Pixels[sx , sy] = 532892)or(sy<0) end; until(FinalMiniCanvas.Pixels[sx , sy] = 532892) end; end; if(FinalMiniCanvas.Pixels[sx , sy] = 532892)then MouseFlag(570+sx,sy+3,0,0) end; //////////////////////////////////////////////////// // > Runs in Dungeon //////////////////////////////////////////////////// procedure DungeonRunning(dir:string; runfar:boolean; GroundColLow, GroundColHigh:Integer); begin ColorMiniMap(4910980,200,270,GroundColLow,GroundColHigh,532892,16711423,0); Run(true); if(runfar)then case UpperCase(dir) of 'N': RunCanvas(dir,78,17, True) 'S': RunCanvas(dir,78,143, True) 'E': RunCanvas(dir,141,80, True) 'W': RunCanvas(dir,15,80, True) end; if(not runfar)then case UpperCase(dir) of 'N': RunCanvas(dir,78,50, True) 'S': RunCanvas(dir,78,110, True) 'E': RunCanvas(dir,108,80, True) 'W': RunCanvas(dir,48,80, True) end; wait(6500) if(runfar)then case UpperCase(dir) of 'N': RunCanvas(dir,78,143, False) 'S': RunCanvas(dir,78,17, False) 'E': RunCanvas(dir,15,80, False) 'W': RunCanvas(dir,141,80, False) end; if(not runfar)then case UpperCase(dir) of 'N': RunCanvas(dir,78,110, False) 'S': RunCanvas(dir,78,50, False) 'E': RunCanvas(dir,48,80, False) 'W': RunCanvas(dir,108,80, False) end; Run(False) GameTab(4); end; //////////////////////////////////////////////////// // > Waits while flag exists. //////////////////////////////////////////////////// procedure RunWhere; begin Lowercase(RunType) if(RunType='dungeon')then DungeonRunning(RunDirection,RunFar,GroundColLow,GroundColHigh); if(RunType='regular')then RunTo(RunDirection,RunFar); end; //////////////////////////////////////////////////// // > Drops items left by Randoms //////////////////////////////////////////////////// procedure DwarfItem; var tp: TPointArray; i: Integer; begin GameTab(4); tp := FindItems(1876180, 10, 'Drink Be', 0); for i := 0 to (GetArrayLength(tp) - 1) do begin Mouse(tp[i].x, tp[i].y, 1, 1, false); ClickOption('Drop', 2); end; tp := FindItems(1677842, 10, 'Eat Ke', 0); for i := 0 to (GetArrayLength(tp) - 1) do begin Mouse(tp[i].x, tp[i].y, 1, 1, false); ClickOption('Drop', 2); end; tp := FindItems(5470833, 10, 'Eat Sp', 0); for i := 0 to (GetArrayLength(tp) - 1) do begin Mouse(tp[i].x, tp[i].y, 1, 1, false); ClickOption('Drop', 2); end; end; //////////////////////////////////////////////////// // > Checks Items left By Random //////////////////////////////////////////////////// procedure RandomItemHandler; begin WriteLn('Checking for Items left by Random'); wait(600+random(600)); GameTab(4) wait(600+random(600)); if(DwarfDrop)then DwarfItem; UseLamp(LampSkill); FindBox; wait(200+random(200)); end; //////////////////////////////////////////////////// // > Handles Random //////////////////////////////////////////////////// procedure TalkToRand; var c, gx, counter:Integer; Talked2Rand:boolean; begin gx:=115; repeat counter:=counter+2; if((gx+counter) < 515)and((y+18) < 338)then MoveMouseSmoothEx(gx+counter,y+18+random(3),1,6,15,1,1); wait(15); if(IsUpText('Tal'))then begin WriteLn('Found Talking Random') GetMousePos(x,y); Mouse(x,y,0,0,false); Wait(200+random(100)); if(SearchForText(3,3,515,336,'Talk',Font2))then begin WriteLn('Talking To Random') ClickOption('Talk', 1); Flag; wait(1000+random(1000)); while((FindColor(x,y,16711680,5,345,510,465))or (FindColor(x,y,16777215,5,345,510,465)))and (not(GetColor(20,434)=0))and(c<=10)do begin Mouse(x,y,50,2,true); wait(2000+random(1000)); c:=c+1; end; Talked2Rand:=true; end; end; until(counter>=400)or(Talked2Rand); wait(600+random(450)); gx:=1; counter:=1; talkers:=talkers+1; Talked2Rand:=false; end; //////////////////////////////////////////////////// // > Finds your name on screen //////////////////////////////////////////////////// procedure FindText; var tmpx, tmpy: Integer; begin if(FindColor(tmpx, tmpy,65535,10,25,511,334))then begin if(FindBitmapMaskTolerance(AntiUse,x,y,3,3,515,336,0,40))then begin Writeln('Your Name has been spotted on the screen'); TalkToRand; RandomItemHandler; end; end; wait(50); end; //////////////////////////////////////////////////// // > Check for Gas (Made by Piv) //////////////////////////////////////////////////// function GasCheck(gx,gy:Integer): Boolean; var clientcanvas,gascanvas1,gascanvas2:tcanvas; x,y,count:Integer; begin if(findcolorspiraltolerance(x,y,8296866,gx-20,gy-20,gx+20,gy+20,20))then begin gascanvas1:=getbitmapcanvas(bitmapfromstring(40,40,'')); gascanvas2:=getbitmapcanvas(bitmapfromstring(40,40,'')); clientcanvas:=getclientcanvas; copycanvas(clientcanvas,gascanvas1,gx-20,gy-20,gx+20,gy+20,0,0,40,40); wait(100); copycanvas(clientcanvas,gascanvas2,gx-20,gy-20,gx+20,gy+20,0,0,40,40); count:=0; for y:=1 to 40 do for x:=1 to 40 do if((gascanvas1.pixels[x,y])<>(gascanvas2.pixels[x,y]))then count:=count+1; writeln(inttostr(trunc(((count)/1024)*100))+'% change.'); if(count>300)then //if more than 15% change result:=true; end; end; //////////////////////////////////////////////////// // > Logs Out and Ends Script //////////////////////////////////////////////////// procedure SetLoop; begin Logout; WriteLn('Ended Script') TerminateScript; end; //////////////////////////////////////////////////// // > Handles Leveling //////////////////////////////////////////////////// function CheckLeveled: Boolean; var x, y: Integer; begin if(FindColor(x,y,16711680,114,358,494,454))or (FindColor(x,y,16777215,114,358,494,454))then begin Result := true; Mouse(x,y,0,0,true); Wait(500); if(FindColor(x,y,16711680,114,358,494,454))or (FindColor(x,y,16777215,114,358,494,454))then begin Mouse(x,y,0,0,true); Wait(300); end; end; end; //////////////////////////////////////////////////// // > Finds Miscelanous Randoms //////////////////////////////////////////////////// procedure FindMiscRandoms; var tmpx, tmpy: Integer; begin if(getcolor(413,279)=65535) then begin WriteLn('Found a Maze, logging out') SetLoop; end; if(FindColortolerance(tmpx, tmpy,786423,10,350,150,433,4))then begin WriteLn('Found a Mod, logging out') SetLoop; end; if(SearchForText(17,355,300,434,'mime',1)) then begin WriteLn('Found a Mime, logging out') SetLoop; end; if(SearchForText(17,355,300,434,'Answer',1)) then begin; WriteLn('Found a Quiz, logging out') SetLoop; end; if(SearchForText(17,355,300,434,'dead',1)) then begin; WriteLn('You are Dead, logging out') SetLoop; end; end; //////////////////////////////////////////////////// // > Handles Fight //////////////////////////////////////////////////// function FindFight:Boolean; begin if(FindColor(x,y,65280,218,143,292,189))then wait(250+random(500)); if(FindColor(x,y,65280,218,143,292,189))then begin Status('Random Event Found'); Result:=True; end; end; //////////////////////////////////////////////////// // > Looks for Plant //////////////////////////////////////////////////// function FindPlant:Boolean; begin if(FindColorTolerance(x,y,11034756,200,90,315,200,25))or (FindColorTolerance(x,y,617041,200,90,315,200,25))then begin if(FindDTM(dtmPlant, x, y, 200, 90, 315, 200))then begin MMouse(x,y,0,0) if(IsUpText('Pick'))then begin Mouse(x,y,0,0,true); result:=true; end; end; end; end; //////////////////////////////////////////////////// // > Solves Eye Test (Made by KnightStreak) //////////////////////////////////////////////////// procedure EyeTest; var q, i, bgColor : Integer; Finger: array [1..4] of Boolean; begin if(not(GetColor(650, 185) = 4902398))then begin bgColor:=GetColor(10,10); repeat wait(10); q:= q + 1; until(not(GetColor(143, 94) = bgColor)or (q >= 1000)); if(q < 1000)then Finger[1] := true; q:= 0; repeat wait(10); q:= q + 1; until(not(GetColor(302,41) = bgColor)or (q >= 1000)); if(q < 1000)then Finger[2] := true; q:=0 repeat wait(10); q:= q + 1; until(not(GetColor(409,75) = bgColor)or(q >= 1000)); if(q < 1000)then Finger[3] := true; q := 0; repeat wait(10); q := q + 1; until(not(GetColor(415,101) = bgColor)or(q >= 1000)); if(q < 1000)then Finger[4]:=true; q := 0; if(Finger[1] = true)and(Finger[2] = false)and(Finger[3] = false)and(Finger[4] = false)then Mouse(99, 299,3,3,true); if(Finger[1]=true) and (Finger[2]=true) and (Finger[3]=false) and (Finger[4]=false)then Mouse(153,300,3,3,true); if(Finger[1]=true) and (Finger[2]=false) and (Finger[3]=false) and (Finger[4]=true)then Mouse(211, 304,3,3,true); if(Finger[1]=false) and (Finger[2]=true) and (Finger[3]=true) and (Finger[4]=false)then Mouse(265, 300,3,3,true); if(Finger[1]=false) and (Finger[2]=false) and (Finger[3]=false) and (Finger[4]=true)then Mouse(320, 306,3,3,true); if(Finger[1]=true) and (Finger[2]=true) and (Finger[3]=true) and (Finger[4]=false)then Mouse(374, 298,3,3,true); if(Finger[1]=true) and (Finger[2]=true) and (Finger[3]=true) and (Finger[4]=true)then Mouse(431,299,3,3,true); for i := 0 to 5 do if(GetColor(241,445) = 16711680) or (GetColor(241,445) = 16777215)then begin Mouse(241,445,3,3,true); wait(1500 + random(500)); end; end; end; //////////////////////////////////////////////////// // > Handles Frog Random //////////////////////////////////////////////////// function FindFrog:boolean; var tx,ty,a,c,cc,CrownColor,i,x1,y1,x2,y2:Integer; begin if(FindBitmap(bmpFrog,x,y))or(FindDtm(dtmFrogSpot,x,y,573,8,723,158))then begin if(FindDtm(dtmFrogSpot,x,y,573,8,723,158))then MouseFlag(x,y,3,3); x1:=245; y1:=165; x2:=277; y2:=185; repeat a:=a+1; if(a=1)then c:=c+1; if(a=3)then c:=c+1; for i:=1 to c do begin if(a=1)then begin x1:=x1+30; x2:=x2+30; end; if(a=2)then begin y1:=y1-20; y2:=y2-20; end; if(a=3)then begin x1:=x1-30; x2:=x2-30; end; if(a=4)then begin y1:=y1+20; y2:=y2+20; end; if(x1=485)and(x2=517)then x2:=x2-2; if(y1=325)and(y2=345)then y2:=y2-7; if(x1>515)then Break; if(FindColorTolerance(x,y,1077773,x1,y1,x2,y2,20))then begin MMouse(x,y,3,3); if(IsUpText('Talk'))then begin for cc:=1 to 20 do begin if(FindColorTolerance(tx,ty,3460859,x-20,y-20,x+20,y+20,cc))then begin CrownColor:=GetColor(tx,ty); Break; end; end; if(FindColor(tx,ty,CrownColor,x-20,y-20,x+20,y+20))and (not(FindColoredAreaTolerance(tx,tx,2965499,x-25,y-25,x+25,y+25,4,20)))then begin Mouse(x,y,3,3,false); ClickOption('Talk', 1); Flag; Wait(2000+random(1000)); TalkToRand; Mouse(256,401,3,3,true); Wait(5000+random(1000)); TalkToRand; Result:=true; Break; end; end; end; end; if(a=4)then a:=0; until(x2>515)or(Result=true) end; end; //////////////////////////////////////////////////// // > Handles Forester Random //////////////////////////////////////////////////// function FindForester:boolean; var c:Integer; begin if(FindBitmap(FreakyF,x,y))then begin repeat if(FindObj(x,y,'Attack',4344603,20,5,5))then begin Mouse(x,y,3,3,false); ClickOption('Attack', 1); Flag; Wait(5000+random(1000)); end; if(not(FindBitmapSpiralTolerance(PMeat,x,y,554,205,743,465,30)))then begin if(FindObj(x,y,'Take',3763101,25,5,5))then begin Mouse(x,y,3,3,false); ClickOption('Attack', 1); Flag; Wait(2000+random(500)); end; end; if(FindBitmapSpiralTolerance(PMeat,x,y,554,205,743,465,30))then begin Mouse(x,y,3,3,true); if(FindObj(x,y,'Use Raw pheasant with Freaky',14869221,20,5,5))then begin Mouse(x,y,3,3,true); Flag; Wait(1000+random(500)); if(FindBitmap(LArea,x,y))then begin MouseFindFlag(690,83,-1,1); Flag; for c:=1 to 10 do begin Wait(100+random(10)); if(FindObj(x,y,'Enter',12514550,20,5,5))then begin Mouse(x,y,3,3,false); ClickOption('Enter', 1); Wait(10000+random(1000)); if(FindBitmap(FreakyF,x,y))then begin writeln('Chose the wrong pheasant :('); TerminateScript; end else Result:=true; Break; end; end; end; end; end; until(Result=true) end; end; /// ///Skill Based Randoms /// //////////////////////////////////////////////////// // > Returns True if Ent is found //////////////////////////////////////////////////// function CheckEnt: Boolean; var x, y: Integer; begin if(IsUpText('Chop down'))and ((FindColorTolerance(x, y, 57311, 80, 5, 160, 25, 10))or (FindColorTolerance(x, y, 118478, 80, 5, 160, 25, 10))or (FindColorTolerance(x, y, 53199, 80, 5, 160, 25, 10)))then Result := true; end; //////////////////////////////////////////////////// // > Returns True if Pick is Broken //////////////////////////////////////////////////// function BrokenPick(wielding: Boolean): Boolean; begin case wielding of true: begin GameTab(5); Result := (GetColor(581,295)=5067346); end; false: begin GameTab(4); Result := (GetColor(591,220)=4345174); end; end; end; //////////////////////////////////////////////////// // > Returns True if Axe is Broken //////////////////////////////////////////////////// function BrokenAxe(wielding: Boolean): Boolean; begin case wielding of true: begin GameTab(5); Result := (GetColor(602,295)=2105392); end; false: begin GameTab(4); Result := (GetColor(593,220)=2105392); end; end; end; //////////////////////////////////////////////////// // > Gets Colors for Pick //////////////////////////////////////////////////// procedure GetPickColors(wielding: Boolean); begin case wielding of true: begin GameTab(5); Head := GetColor(595,295); end; false: begin GameTab(4); Head := GetColor(590,220); end; end; end; //////////////////////////////////////////////////// // > Gets Colors for Axe //////////////////////////////////////////////////// procedure GetAxeColors(wielding: Boolean); begin case wielding of true: begin GameTab(5); Head := GetColor(595,295); end; false: begin GameTab(4); Head := GetColor(590,220); end; end; end; //////////////////////////////////////////////////// // > Results True if Pick Head is gone //////////////////////////////////////////////////// function PickHeadGone(wielding: Boolean): Boolean; var tmpx, tmpy: Integer; begin case wielding of true: begin GameTab(5); Result := not(FindColor(tmpx, tmpy, Head, 575, 290, 605, 320)); end; false: begin GameTab(4); Result := not(FindColor(tmpx, tmpy, Head, 565, 210, 600, 245)); end; end; end; //////////////////////////////////////////////////// // > Returns True if Axe Head is gone //////////////////////////////////////////////////// function AxeHeadGone(wielding: Boolean): Boolean; var tmpx, tmpy: Integer; begin case wielding of true: begin GameTab(5); Result := not(FindColor(tmpx, tmpy, Head, 575, 290, 605, 320)); end; false: begin GameTab(4); Result := not(FindColor(tmpx, tmpy, Head, 565, 210, 600, 245)); end; end; end; //////////////////////////////////////////////////// // > Picks Up Head //////////////////////////////////////////////////// function GetHead(Axe: Boolean): Boolean; var x, y, color: Integer; ps: string; begin case Axe of True: begin ps := 'Axe' color := Head end; False: begin ps := 'Pick' color := Head end; end; if not(FindObj(x, y, 'Take '+ps, color, 10,5,5))then begin x := 648; y := 83; FindColorSpiralTolerance(x, y, 241, 570, 5, 725, 155, 20); MouseFlag(x+5, y+5, 2, 2); end else if(ClickOption(ps, 1))then Result := True; Flag; if(FindObj(x, y, 'Take '+ps, Color, 10,5,5))and(not(Result=true))then begin if(ClickOption(ps, 1))then Result := True; Flag; end; if(Result)then repeat Wait(100); until(FindColor(x, y, Color, 570, 215, 730, 455)); end; //////////////////////////////////////////////////// // > Picks Up Head and Attaches them together //////////////////////////////////////////////////// function FixPick(wielding: Boolean): Boolean; var nx, ny, hx, hy: Integer; begin case wielding of true:if(PickHeadGone(wielding))then begin GetEmptyItemPosition(nx, ny); TakeOff(5); Wait(450); GameTab(4); GetEmptyItemPosition(hx, hy); if(GetHead(false))then begin Mouse(nx+7, ny, 1, 1, true); Wait(450+random(300)); Mouse(hx+7, hy, 1, 1, true); Wait(450+random(300)); Mouse(nx+7, ny, 1, 1, true); end; end; false:if(PickHeadGone(wielding))then begin GetEmptyItemPosition(nx, ny); if(GetHead(false))then begin UseItem(1); Mouse(nx+7, ny, 1, 1, true); Wait(450+random(300)); end; end; end; if(not PickHeadGone(wielding))then Result := true; end; //////////////////////////////////////////////////// // > Picks Up Head and Attaches them together //////////////////////////////////////////////////// function FixAxe(wielding: Boolean): Boolean; var nx, ny, hx, hy: Integer; begin case wielding of true:if(AxeHeadGone(wielding))then begin GetEmptyItemPosition(nx, ny); TakeOff(5); Wait(450); GameTab(4); GetEmptyItemPosition(hx, hy); if(GetHead(true))then begin Mouse(nx+7, ny, 1, 1, true); Wait(450+random(300)); Mouse(hx+7, hy, 1, 1, true); Wait(450+random(300)); Mouse(nx+7, ny, 1, 1, true); end; end; false:if(AxeHeadGone(wielding))then begin GetEmptyItemPosition(nx, ny); if(GetHead(true))then begin UseItem(1); Mouse(nx+7, ny, 1, 1, true); Wait(450+random(300)); end; end; end; if(not AxeHeadGone(wielding))then Result := true; end; //////////////////////////////////////////////////// // > Loads Images for RSCi Use //////////////////////////////////////////////////// procedure LoadImages; begin LArea := BitmapFromString(89, 2, 'z78DA3330000127474' + '7270B4708690011717274B534422631C5514490F5229946919944' + '881343E2D74B65B7417C8DC926DA765C61881C92C4A8C1296EE96' + '86A610821718910E3779CA18AE46B5CA6511EF294A4075AA70A02' + 'E9019324C29DE4C5387E35C4EB820000EEBEF642'); FreakyF := BitmapFromString(106, 2, 'z78DAA552410AC0' + '3008FBD23618B8A3C2FEFFA531BA4346D406DA8394D8468DB1ED3' + 'DE11EE67A34F885F7B8FCB47DC4817F59C07B36442A3C41C2EFEB' + 'E0F8CBB63C2BB1EF61D215E3BADAF437C9221BEC455295AA24B57' + '846A57FE2A9365EB1252FD163E4C0C48DC456EAAC7812676FA75B' + 'F21E5499F00B0E54F6B8C2D96BD8EBD0D7D555AD781E9D382154'); PMeat := BitmapFromString(14, 7, 'z78DA7D915B8EC6200' + '885B7A4DC79ACD5EE7F497FA7C74968E6A2093127F0014799221C' + '2A72F090E7DDBE4EB7C3C428C4A71F88D0B9D17D11A1B8DA65678' + 'CD0E8502A67D34484C45399469C7A31B96AA3519935DFD9A68DEC' + '91E12FCE3DCA9B13A98BDB5F34E83624C9BDD9B074F76E4B4F5ED' + '4EC9271EBA72ACD4D331DFFD04826E5EEDED468A17BB0262DE454' + '0EF49FB4CAC40C9B862A102AB3D090593D79F9838D3021AA2EEB2' + 'CBFCCF970B0FB76E3F1163F654D3AD166C2BDE25292F137B3EEF5' + '01384D7A16'); mskBar := BitmapFromString(30, 24, 'z78DAED97C10D002008035772' + '0AF71FC90D0812906BA47F434BA494B57EC736C1647BAB88CCB6E' + '26D6FC537FDAFEE4FAE8AAE7F18ABAB353504A7F273E0F8AADF4B' + '55FC7FD80E5BDD59537433C57DA1B891BBF26D757ECB55D195996' + '32A68EE64AB60DE83CCBB8F8303E6184A26'); mskGem := BitmapFromString(23, 24, 'z78DA3330183EC00D0C686732F' + '10097AEC1E33BFC2EA77F08936AD7A84B465D428C8DA32E197509' + '31F68EBA6434B50C45978CCC929F785B68ED1E52CDA76E9B90BA7' + 'E74A3180CFE3E0200FDE18F27'); dtmPlant:=DTMFromString('78DA6354636060306100031E08C5D092B0824' + '103483302F17F2060D404323450D5046671C2D58000A31690B046' + '5533ABE0305C0D18EB00092DDCE630013100D4CB0B1F'); dtmLamp := DTMFromString('78DA639CCBC4C010C4C80002AC0C10B076950' + '00317900689FE0702C64940357EA86AB66E42A80101C625403581' + 'A86A5A9A3850D40000CC500AE9'); dtmFrogSpot := DTMFromString('78DA63AC606260B06100030E2006F2184AF36' + '2C07C4620FE0F048CDD405167881A56A8B8555D3A033F940D565B' + '0254A349404D12508D037E35000D030BB3'); bmpFrog := BitmapFromString(30, 2, 'z78DA73727274B534B23000012' + '74747270B47E249645DB84C808A836D4126C91447321317498C9B' + '5154426CC160633119C355982EC4A51E00B445523B'); end; //////////////////////////////////////////////////// // > Sets Scheduler Time //////////////////////////////////////////////////// procedure GetSched; var Hour, Min, Sec, Msec: Word; begin DecodeTime(Now, Hour, Min, Sec, MSec); PM:='AM'; if(hour>12)then begin hour:=hour-12; PM:='PM'; end; RHour:=Hour; RMin:=Min; RSec:=Sec; RPM:=Pm; end; //////////////////////////////////////////////////// // > Setups Scheduler Time //////////////////////////////////////////////////// procedure SetupClock; begin BreakMin:=Random(50); BrMinVar:=BreakMin+20; BrHourVar:=BreakHour; if(BrMinVar>=60)then begin BrHourVar:=BreakHour+1; BrMinVar:=BrMinVar-60; end; BrAdd:=BreakMin+BreakfestLength; BrBackHour:=BreakHour; BrBackMin:=BrAdd; if(BrAdd>=60)then begin BrBackHour:=BreakHour+1; BrBackMin:=BrAdd-60; end; LunchMin:=Random(50); LuMinVar:=LunchMin+20 LuHourVar:=LunchHour; if(LuMinVar>=60)then begin LuHourVar:=LunchHour+1; LuMinVar:=LuMinVar-60; if(LuHourVar>=13)then LuHourVar:=LuHourVar-12; end; LuAdd:=LunchMin+LunchLength; LuBackHour:=LunchHour; LuBackMin:=LuAdd; if(LuAdd>=60)then begin LuBackHour:=LunchHour+1; LuBackMin:=LuAdd-60; end; DinnerMin:=Random(50); writeln(inttostr(DinnerMin)); DiMinVar:=DinnerMin+20 DiHourVar:=DinnerHour; if(DiMinVar>=60)then begin DiHourVar:=DinnerHour+1; DiMinVar:=DiMinVar-60; end; DiAdd:=DinnerMin+DinnerLength; DiBackHour:=DinnerHour; DiBackMin:=DiAdd; if(DiAdd>=60)then begin DiBackHour:=DinnerHour+1; DiBackMin:=DiAdd-60; end; SleepMin:=Random(50); SlMinVar:=SleepMin+20 if(SlMinVar>=60)then begin SlHourVar:=SleepHour+1; SlMinVar:=SlMinVar-60; end; SlAdd:=SleepMin; SSlBackHour:=SlBackHour; SlBackMin:=SlAdd; if(SlAdd>=60)then begin SSlBackHour:=SlBackHour+1; SlBackMin:=SlAdd-60; end; end; //////////////////////////////////////////////////// // > Begins Scheduler //////////////////////////////////////////////////// procedure Schedule; begin if(UseScheduler=True)then begin GetSched; if(RHour=BreakHour)and(RMin=BreakMin)and(RPM='AM')or(RHour>BreakHour)and(RMin>BreakMin)and(RHour<=BrHourVar)and(RMin<=BrMinVar)and(RPM='AM')then begin Logout; WriteLn('It`s Breakfest Time') repeat wait(1000) GetSched; until((RHour=BrBackHour)and(RMin=BrBackMin)and(RPM='AM')) writeln('Finished Breakfest') Login(Us) end; if(RHour=LunchHour)and(RMin=LunchMin)and(RPM='PM')or(RHour>LunchHour)and(RMin>LunchMin)and(RHour<=LuHourVar)and(RMin<=LuMinVar)and(RPM='PM')then begin logout; WriteLn('It`s Lunch Time') repeat wait(1000) GetSched until((RHour=LuBackHour)and(RMin=LuBackMin)and(RPM='PM')) writeln('Finished Lunch') Login(Us) end; if(RHour=dinnerHour)and(RMin=dinnerMin)and(RPM='PM')or(RHour>=dinnerHour)and(RMin>=DinnerMin)and(RHour<=DiHourVar)and(RMin<=DiMinVar)and(RPM='PM')then begin WriteLn('It`s Dinner Time') Logout; repeat wait(1000) GetSched until((RHour=DiBackHour)and(RMin=DiBackMin)and(RPM='PM')) writeln('Finished Dinner') Login(Us) end; if(RHour=sleepHour)and(RMin=sleepMin)and(RPM='PM')or(RHour>sleepHour)and(RMin>sleepMin)and(RHour<=slHourVar)and(RMin<=slMinVar)and(RPM='PM')then begin Logout; WriteLn('It`s Sleepy Time') repeat Wait(1000) GetSched until((RHour=sslBackHour)and(RMin=slBackMin)and(RPM='AM')) Writeln('Finished Sleeping') Login(Us) end; end; end; //////////////////////////////////////////////////// // > Talks with a Random //////////////////////////////////////////////////// procedure DoTalking; var x, y: Integer; begin repeat if(FindColor(x,y,16711680,189,364,430,457))or (FindColor(x,y,16777215,189,364,430,457))then begin Mouse(x+10,y+3,1,1,true); Wait(1000); end; until(not FindColor(x,y,16711680,189,364,430,457))or(not FindColor(x,y,16777215,189,364,430,457)); end; //////////////////////////////////////////////////// // > Loads RSCi //////////////////////////////////////////////////// procedure LoadLibrary(name:string); var ver: string; begin if(Setup)then begin DisguiseScar(Name); LoadImages; UpChars:= LoadChars2(AppPath + 'Charsrs22\'); CharsChat:= LoadChars2(AppPath + 'CharsChat2\'); Fontsmall:=LoadChars2(AppPath + 'CharsChat2\fontsmall\'); Font2:=LoadChars2(AppPath + 'CharsChat2\font2\'); LoadChars(''); St:=GetSystemTime; SetAntiName(Us); if(UseScheduler)then begin SetupClock; end; ver:=GetPage('http://www.runesc.net/ver.txt') if(not(ver=Version))then begin writeln('RSCI.txt version '+ver+' is now out.') writeln('Please Visit www.runesc.net/RSCI.txt') terminatescript end; end; if(not(Setup))then Writeln('Please setup RSCI before running any scripts'); end;