program New; { Maple Cutter 1.3 by CanadaRules! Features: -> Script Pausing! Turn Public Chat to Hide to activate, Public Chat to Off to deactivate! -> Anti-get Lost! Get lost, logs you out! Very useful if teleported to the maze or mime, where every second counts! -> Full Built In Antirandoms! -> Auto-login! Logs you in automatically if after you stop the script, RuneScape logs you out! -> Progress Reports! Every time you bank! Contents: -> OSi.txt (Version 4.011, made by Odie) -> BoxBreaker2.txt Setup Notes: -> Map Facing North -> Highest Angle -> V-Bright -> Low Detail -> Silent mouse will be turned OFF -> Start in Seers Bank -> Axe WIELDED 428 lines long. Special Thanks To: GenoDemoN for allowing me to enter UEA HatlessCow and Benleegt for help Odie5533 for his OSi Killerbz for his BoxSolver PT Games for his nice-ness Version History: 1.0 - First Release 1.1 - Fixed minor bugs 1.2 - Fixed more minor bugs 1.3 - Fixed antirandoms ENJOY! } {.include OSi.txt} {.include BoxBreaker2.txt} var axehead,randomcount,phcolor,cut,ents,lamps,talkw,talky,ilamp,attachedheads,doing:integer; keepgoing:boolean; const mtreecolor=90625; // minimap rare tree color (green) mbankcolor=3060683; // minimap bank logo color (yellow) mitemcolor=395004; // minimap color of item (red) maplecolor=2502776; // game screen color of maple tree username=''; // username of user password=''; // password of user function FindTheDamnObj(objtext:string; objcolor,tol:integer):boolean; //<- HatlessCow's var zx,zy,zzx,zzy:integer; begin zx:=150; zy:=150; zzx:=365; zzy:=165; repeat if(result=false)and(FindColorSpiral(x,y,objcolor,zx,zy,zzx,zzy))then begin MMouse(x,y,0,0); wait(250); if(IsTextAt2(9,9,objtext,100))then result:=true; end; wait(100); zx:=zx-10; zy:=zy-10; zzx:=zzx+10; zzy:=zzy+10; until((result=true) or (zy=0)); end; procedure PrintProgressReport; begin WriteLn(' '); WriteLn('Progress Report for MapleCutting at Seers'); WriteLn(' '); WriteLn('Cut ' + inttostr(cut) + ' maple logs.'); WriteLn('Talked to ' + inttostr(randomcount) + ' randoms.'); WriteLn('Ran from ' + inttostr(ents) + ' ents.'); WriteLn('Rubbed ' + inttostr(lamps) + ' lamps.'); WriteLn('Attached ' + inttostr(attachedheads) + ' axe heads.'); end; Procedure MouseFlagCr(zzzx,zzzy,zzx,zzy:integer); var flagimage:integer; begin flagimage := BitmapFromString(2, 2,'FF00005D3311C656045D3311'); Mouse(zzzx,zzzy,zzx,zzy,true); repeat wait(250); until(not findbitmapin( flagimage, x, y, 570, 5, 725, 162)); freebitmap(flagimage); end; procedure MMouseItem(invin:integer); var rx,ry:integer; begin OpenBag; if(invin>0)and(invin<29)then begin ry:=218; repeat if(invin>4)then begin invin:=invin-4; ry:=ry+36; end; until(invin<5); rx:=532+(invin*42); MMouse(rx,ry,20,20); wait(400+random(200)); end; end; procedure Pause; begin if (GetColor(48,490)=16776960)then begin Status('Paused'); SendKeysSilentSmooth('Pause',50); repeat wait(50); until(GetColor(61,490)=255); ChatFixer; end; end; procedure LoginIfOut(username,password:string); //A stupid3ooo procedure based of many others var counter:integer; begin if(length(username) > 0)and(length(password) > 0)then begin if(IsTextAt2(293,251,'Username',0))and(NotLogedIn)then Mouse(460,322,10,2,true); if(IsTextAt2(309,241,'Welcome to RuneScape',0))and(NotLogedIn)then begin Mouse(400,280,125,20,true); if(IsTextAt2(271,214,'Enter your username',50))then begin Mouse(400,256,20,5,true); SendKeysSilentsmooth(username,50); Mouse(400,270,20,5,true); SendKeysSilentsmooth(password,50); Mouse(300,322,20,5,true); repeat counter:=counter+1; wait(100); until(FindColor(x,y,8421504,0,0,515,338))or(counter=60) end; end; if(FindColor(x,y,8421504,400,0,515,338))then begin Mouse(x+5,y+1,15,5,true); sendarrowsilentwait(0,900+random(200)) wait(200+random(100)); end; end; end; procedure FindText; var counter,c:integer; Talked2Rand:boolean; begin if(FindColor(x,y,65535,5,5,514,337))then wait(200) if(FindColor(x,y,65535,5,5,514,337))and(LogedIn)then begin RandomCount:=RandomCount+1; repeat counter:=counter+2+random(1); if((x+counter) < 515)and((y+18) < 338)then MoveMouseSmoothEx(x+counter,y+15+random(3),1,6,15,20,20); wait(5); if(IsTextAt2(9,9,'Ta',100))then begin GetMousePos(x,y); Mouse(x,y,0,0,false); Wait(200+random(100)); if(FindBitmap(TalkW,x,y))or(FindBitmap(TalkY,x,y))then begin Mouse(x,y,40,5,true); MapFlag; wait(1000+random(1000)); while((FindColor(x,y,16711680,5,345,510,465))or //Replaces TalkToRand (FindColor(x,y,16777215,5,345,510,465)))and (not(GetColor(20,434)=0))and(c<=10)do begin GetScreenShot('Talked',RandomCount); Mouse(x,y,50,2,true); wait(2000+random(1000)); c:=c+1; end; Talked2Rand:=true; end; end; until(counter>=250)or(Talked2Rand); end; end; Procedure FindLamp; begin while(FindBitmapSpiralTolerance(iLamp,x,y,550,200,745,470,100)) do begin Lamps:=Lamps+1; Mouse(x,y,10,10,true); wait(3000+random(1000)); Mouse(157,220,12,12,true) wait(3000+random(1000)); Mouse(248,255,10,2,true); wait(3000+random(1000)); Mouse(226,442,10,3,true); wait(3000+random(1000)); end; end; procedure FindMiscRandoms; var ax,ay:integer; begin if(FindColor(ax,ay,786423,10,350,150,433))then begin GetScreenshot('Mod',1); LogOut('UHOH, A MOD!!!'); end; if(GetColor(30,418)=0)and(GetColor(72,429)=0)then begin GetScreenshot('Dead',1); LogOut('You are dead!'); end; if(FindColor(ax,ay,11503238,10,350,479,433))then begin GetScreenshot('Mime',1); LogOut('Mime Found'); end; end; Procedure FindDamage; begin if((FindColorSpiral(x,y,192,225,125,300,175)) or (FindColorSpiral(x,y,16728128,225,125,300,175)))then begin if(Doing=0 or 4) then begin doing:=1; FindColorSpiral(x,y,mtreecolor,600,45,675,100); MouseFlagCr(x,y,10,10); end else begin doing:=3; FindColorSpiral(x,y,mbankcolor,615,100,675,125); MouseFlagCr(x,y,5,5); end; end; end; procedure FindPickHead; var tempinvin:integer; begin if(not(Getcolor(591,221)=phcolor))then begin if(FindColorSpiral(x,y,241,625,50,675,100))then begin MouseFlagCr(x,y,0,0); MMouse(250,190,3,3); if(IsTextAt2(9,9,'Take',100))then begin tempinvin:=invincount; Mouse(250,190,3,3,true); UseItem(tempinvin+1); Mouse(585,225,5,5,true); end; end; end; end; Procedure FindRandoms; begin Pause; LoginIfOut(username,password); FindText; FindStrangeBox; FindMiscRandoms; FindDamage; FindPickHead; end; procedure GoToTree; begin FindRandoms; if(KeepGoing)then begin doing:=1; FindColorSpiral(x,y,mtreecolor,600,20,700,100); MouseFlag(x,y,10,10); end; KeepGoing:=true; wait(5000); end; procedure CutLogs; var zx,zy:integer; begin OpenBag; FindRandoms; if(KeepGoing)then begin doing:=2; repeat if(FindColorSpiral(x,y,2896024,0,0,525,325))then begin Mouse(x,y,4,4,true); wait(2500); FindTheDamnObj('Chop',maplecolor,100); FindRandoms; repeat wait(1000); FindRandoms; if(random(16)=1)then Mouse(zx,zy,1,1,true); until(not(IsTextAt2(9,9,'Chop',100))); end; wait(500); until(InvinFull); wait(500); end; KeepGoing:=true; end; procedure GoToBank; begin FindRandoms; if(KeepGoing)then begin doing:=3; FindColorSpiral(x,y,mbankcolor,555,0,725,150); MouseFlagCr(x,y,4,4); end; KeepGoing:=true; end; procedure DoBanking; begin FindRandoms; if(KeepGoing)then begin doing:=0; OpenBank; Deposit(0,0,0); CloseBank; cut:=cut+27; end; KeepGoing:=true; end; begin SetupOSi; BoxOpenerSetup; ChatFixer; randomcount:=0; lamps:=0; cut:=0; doing:=0; phcolor:=GetColor(591,221); attachedheads:=0; keepgoing:=true; TalkW := BitmapFromString(17, 10, 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000' + '000000000000000000000000000000000000FFFFFFFFFFFF000000' + '000000FFFFFFFFFFFF000000000000000000000000000000000000' + '000000000000000000000000000000FFFFFFFFFFFF000000000000' + 'FFFFFFFFFFFF000000000000000000000000000000000000000000' + '000000000000000000000000FFFFFFFFFFFF000000000000FFFFFF' + 'FFFFFF000000000000000000000000000000000000000000000000' + '000000000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF' + '000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF000000' + '000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000' + '000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000' + '000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000' + '000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000' + 'FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000000000' + 'FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000FFFFFF' + 'FFFFFF000000000000FFFFFFFFFFFF000000000000000000FFFFFF' + 'FFFFFF000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF' + '000000000000FFFFFFFFFFFF000000000000000000000000FFFFFF' + 'FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFF'); TalkY := BitmapFromString(17, 10, 'FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000' + '000000000000000000000000000000000000FFFF00FFFF00000000' + '000000FFFF00FFFF00000000000000000000000000000000000000' + '000000000000000000000000000000FFFF00FFFF00000000000000' + 'FFFF00FFFF00000000000000000000000000000000000000000000' + '000000000000000000000000FFFF00FFFF00000000000000FFFF00' + 'FFFF00000000000000000000000000000000000000000000000000' + '000000000000000000FFFF00FFFF00000000000000FFFF00FFFF00' + '000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000' + '000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000' + '000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000' + '000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000' + '000000000000FFFF00FFFF00FFFF00FFFF00FFFF00000000000000' + 'FFFF00FFFF00000000000000FFFF00FFFF00000000000000000000' + 'FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00' + 'FFFF00000000000000FFFF00FFFF00000000000000000000FFFF00' + 'FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00' + '000000000000FFFF00FFFF00000000000000000000000000FFFF00' + 'FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00'); iLamp := BitmapFromString(17, 6, '000001000001000001000001BAB815B2B015AEAD15ABAA159C9A12' + '9291128C8A1275740E000001000001000001000001000001D0CE18' + 'CBC918C8C618C5C418C5C418C0BE18BAB815B5B315ABAA15A3A112' + '99971292911284820E79780E6968095C5A09A6A415CECC18C5C418' + 'C2C118C0BE18BDBB18BAB815B8B615B5B315B2B015A8A715A3A112' + '9C9A129594128E8D1281800E999712AEAD15CECC18CBC918C0BE18' + 'BDBB18BAB815B5B315B2B015AEAD15A8A715A3A1129F9E12999712' + '88860E84820E8C8A129291129C9A12000001CBC918CBC918BAB815' + 'B8B615B5B315B2B015AEAD15A8A715A3A1129C9A1295941281800E' + '79780E84820E000001000001000001CBC918CBC918C0BE18B8B615' + 'B2B015AEAD15ABAA15A6A4159F9E129997128C8A1279780E75740E' + '000001000001C2C118'); axehead:=GetColor(593,221); repeat if(doing=0)then GoToTree; if(doing=1)then CutLogs; if(doing=2)then GoToBank; if(doing=3)then DoBanking; until(false); end.