{=========================================================================] [ Ultimate Power MIner ] [ ] [ by: Rams89 ] [ ] [ ] [ DESCRIPTION AND NOTES : It power mines any rock. ] [ v1.6 ] [ *Next version will include player array. ] [ *Better anti ban and random event handling(DONE) ] [ *Tested with SRL 3.4 ] [ ***NOT RESPONSIBLE FOR BANNED ACCOUNTS*** ] [ ***Updated on Oct 28th 2006 ] [ ] [ ] [ ] [=========================================================================] [ Instructions. ] [=========================================================================] [ 1. USE Runescape with Low Detail, Very Bright. ] [ 2. Set Colours(Lines 40-48) and Specifications(Lines 52-59) ] [ 3. Press Play and enjoy. ] [=========================================================================] [ Features ] [=========================================================================] [-Antiban. ] [-Handle's Trades(Will trade ore to any player). ] [-Fully Updated Randoms. ] [=========================================================================] program Powerminer; {.include SRL\SRL.scar} {.include SRL\SRL\Skill\Mining.scar} {.include SRL\SRL\extended\xmapwalk.scar} {.Include SRL/SRL/Misc/Trade.Scar} const {================== Setup Colours Here (Optional) =======================} Adamant = 6322272; Clay = 4885165; Coal = 1383709; Copper = 3824769; Gold = 3775149; Iron = 1976644; Mithril = 7359564; Silver = 10856117; Tin = 8684172; {=========================================================================} {Set The Following} rockwait = 4500; {Time between each click in (ms) 1000ms= 1sec } rockcolor = iron; {What type of ore would you like to mine ?} Antiban2 = true; {Do you want to use Antiban function?(suggested)} Rdirection = 'N'; {If attacked, in what direction do you want to run?} LoadsD = 500; {How many loads do you want to do?} Pickaxew = true; {Is your pickaxe weild?} Autotalk = true; {Autotalk?} Nickname = 'aseb'; {Type 3-4 letters of your runescape username} {========= Do not touch below unless you know what you are doing!=========} var loads: Integer; ores: Integer; Pr: TPoint; i: Integer; TraderName: String; OreMask: Integer; RunDirection: String; EvilChicken, EvilChickens: Integer; LostPick: Boolean; Ox, Oy: Integer; {==================Updated AntiRandoms to SRL 3.4=========================} Procedure RunAway; Begin Case (Random(9+1)) of 0 : Begin TypeSend('ahh'); end 1 : Begin TypeSend('=S'); end 2 : Begin TypeSend('hah'); end 3 : Begin TypeSend('stupid randoms'); end 4 : Begin TypeSend('-.-'); end 5 : Begin TypeSend('ahh not again!'); end 6 : Begin TypeSend('0o0o'); end 7 : Begin TypeSend('Ahh!'); end 8 : Begin TypeSend('!!!!'); end 9 : Begin TypeSend('whoa'); end 10 : Begin TypeSend('=/'); end End RunAwayDirection(RunDirection); Wait(8000+Random(2000)); RunBack; End; Procedure ExitWindow; Var Close: Integer; Begin Close := BitmapFromString(10, 11, 'z78DA3330000243033069E66' + '4EA62628C9F3440528F4912AF0BBF38015913537313430889DF3D' + '505D48EA3149F274E13201971A533753236367641297BD982A89D' + '185DF04FC6A70C96211B7347131B6C42409B807872E5C260000D9' + '5685F1'); If(FindBitmapToleranceIn(Close, x, y, MSX1, MSY1, MSX2, MSY2, 10))then Begin MMouse(x, y, 3, 3); GetMousePos(x, y); Mouse(x, y, 0, 0, True); End; FreeBitmap(Close); End; {=============FindEvilChicken taken from SRL created by Dankness=========} Function FindEvilChicken: Boolean; Var CX, CY: Integer; Begin If(EvilChicken= 0)then EvilChicken:= CreateBitmapMaskFromText('egone,', UpChars); If(FindName)then If(FindBitmapMaskTolerance(EvilChicken, CX, CY, 3, 3, 515, 336, 0, 40))then Begin Result:= True; EvilChickens:= EvilChickens + 1; WriteLn('******** FOUND EVIL CHICKEN RANDOM ********'); WriteFileString(TheFile, '******** FOUND EVIL CHICKEN RANDOM ********' +Chr(13)); End; End; {===================Function FindPickHead taken from SRL==================} Function FindPickHead: Boolean; Var C, XH, YH: Integer; ReEquipPick: Boolean; Begin GameTab(4); Result:= True; If(FindBitmapToleranceIn(PickHandle, x, y, MIX1, MIY1, MIX2, MIY2, 30))or (GetColor(472, 380)= 0) and (GetColor(482, 383)= 0)then Begin GameTab(5); Wait(750+Random(250)); If(GetColor(604, 300)= 65536) and (GetColor(601, 298)= 65536)then Begin WriteLn('Broken Pickaxe..'); NoPick:= True; LostPick:= True; GameTab(4); Result:= False; Exit; End; GameTab(4); Wait(2000+Random(100)); If(FindBitmapMaskTolerance(OreMask, x, y, 559, 210, 735, 460, 10, 5))then Begin MMouse(x, y, 5, 5); Mouse(x, y, 0, 0, False); ChooseOption(x, y, 'rop'); End Repeat If(not(LoggedIn))then Exit; C:= C + 1; x:= Random(510)+5; y:= Random(330)+5; If(FindColorSpiral(x, y, hc1, MSX1, MSY1, MSX2, MSY2))or (FindColorSpiral(x, y, hc2, MSX1, MSY1, MSX2, MSY2))or (FindColorSpiral(x, y, hc3, MSX1, MSY1, MSX2, MSY2))or (FindColorSpiral(x, y, hc4, MSX1, MSY1, MSX2, MSY2))or (FindColorSpiral(x, y, hc5, MSX1, MSY1, MSX2, MSY2))then Begin MMouse(x, y, 0, 0); If(IsUpText('ake'))then Begin GetMousePos(x, y); Mouse(x, y, 1, 1, True); End Flag; Wait(750+Random(250)); End else If(PickUpItems)then ItemGrab; Until((FindBitmapToleranceIn(PickHead, x, y, MIX1, MIY1, MIX2, MIY2, 50)) or (C>=10)); If(not(FindBitmapToleranceIn(PickHead, x, y, MIX1, MIY1, MIX2, MIY2, 50)))then Begin NoPick:= True; Result:= False; LostPick:= True; Exit; End; WriteLn('Found Head!'); LostPick:= False; GameTab(5); Wait(250+Random(100)); If(FindBitmapToleranceIn(PickHandle, XH, YH, 560, 280, 615, 322, 50))then Begin WriteLn('UnEquiping Handle..'); Mouse(XH, YH, 0, 0, True); ReEquipPick:= True; End; Wait(250+Random(100)); GameTab(4); Wait(250+Random(100)); If(FindItemBmpTol(PickHead, 50)) and (FindItemBmpTol(PickHandle, 50))then Begin ClickItemBmpTol(PickHead, 50, True); Wait(750+Random(250)); ClickItemBmpTol(PickHandle, 50, True); PickAxeAttached:= PickAxeAttached + 1; WriteLn('Attached Head & Handle!'); NoPick:= False; Result:= True; If((EquipPick) or (ReEquipPick))then Begin Wait(2000+Random(1000)); ClickItemColor(hc1, True); End; End; End; End; {==================Function HandleTrade taken from SRL====================} Function HandleTrade: Boolean; Var TradeMark: LongInt; Begin If(AcceptTrade) or (TradeScreen)then Begin Result:= True; Wait(1000+Random(500)); TraderName:= GetTraderName; ClickAllItemsBmpMaskTolWait('ffer', OreMask, 20, 25, 30+Random(30)); Wait(1000+Random(500)); Accept; MarkTime(TradeMark) While(not PlayerAccepted) and (TimeFromMark(TradeMark) < 15000) do Wait(1000+Random(500)); If(TimeFromMark(TradeMark) > 15000)then Decline; Accept; MarkTime(TradeMark) While (TradeScreen2) and (TimeFromMark(TradeMark) < 15000) do Wait(1000+Random(501)); If(TimeFromMark(TradeMark) > 15000)then Decline; If(TimeFromMark(TradeMark) > 15000)then TypeSend('Thanks '+TraderName) Else TypeSend('What do u want '+TraderName) Trades:= Trades + 1; ExitWindow; End; End; {=======================Up to date Random Events==========================} Procedure FindRandoms; Begin HandleTrade; DwarfItem; FindPickHead; FindNormalRandoms; If(FindFight) or (FindEvilChicken)then Begin RunAway; End End; {============================Autotalk=====================================} procedure randomtalk; begin if Autotalk = true then case random(10) of 0: typesend('mining lvls'+chr(13)); 1: typesend('so boooring'+chr(13)); 2: typesend('man this stinks'+chr(13)); 3: typesend('yay almost next lvl'+chr(13)); 4: typesend('hi'+chr(13)); 5: typesend('grr'+chr(13)); 6: typesend('omg'+chr(13)); 7: typesend('so slow'+chr(13)); 8: typesend('la dee da'+chr(13)); 9: typesend('da dee dum'+chr(13)); 10:typesend('u like this?'+chr(13)); end; end; procedure AntiBan1; begin RandomChatEvery(10 + Random(5)); RotateEvery(20 + Random(10)); LeaveScreenEvery(5 + Random(5)); HoverEvery(15 + Random(5), 'random'); PickUpMouseEvery(5 + Random(10)) RandomRClickEvery(15 + random(5)) if (KillScriptTime > 0) then KillScript(KillScriptTime); end; procedure ProgressReport; begin WriteLn(''); WriteLn('<============== Rams PowerMiner Report ===============>'); WriteLn(' Time working : ' + TimeRunning); WriteLn(' Loads dropped : ' + inttostr(loads) + ' loads.'); WriteLn(' Ores dropped : ' + inttostr(ores) + ' ores.'); SRLRandomsReport; end; Procedure dropore; begin WriteLn('Load complete. Ore dropping...'); if (Pickaxew = true) then for i := 1 to 28 do begin Pr := ItemCoords(i); MouseSpeed := 8+random(2); Wait(100+random(200)); mmouse(Pr.x, Pr.y, 3, 3); wait(100+random(100)); Mouse(Pr.x, Pr.y, 3, 3, False); Wait(100+random(200)); ClickOption('Drop', 2) end; if (Pickaxew = false) then for i := 2 to 28 do begin Pr := ItemCoords(i); MouseSpeed := 8+random(2); Wait(100+random(200)); mmouse(Pr.x, Pr.y, 3, 3); wait(100+random(100)); Mouse(Pr.x, Pr.y, 3, 3, False); Wait(100+random(200)); ClickOption('Drop', 2) FindRandoms; end; WriteLn('Finished another load'); loads := loads + 1 if (Pickaxew = true) then ores := ores + 28 if (Pickaxew = false) then ores := ores + 27 wait(200+random(800)) end; Procedure WeAtMine; Var WX, WY : Integer; Begin If (Not(FindSymbol(Wx, WY, 'mining site'))) Then Begin RunWhere('N', false) If (Not(FindSymbol(Wx, WY, 'mining site'))) Then Begin RunBack; Flag; RunWhere('E', False) If (Not(FindSymbol(Wx, WY, 'mining site'))) Then Begin RunBack; Flag; RunWhere('S', False) If (Not(FindSymbol(Wx, WY, 'mining site'))) Then Begin RunBack; Flag; Runwhere('W', False) If (Not(FindSymbol(Wx, WY, 'mining site'))) Then WriteLn('We are defantly lost termInating script') TerminateScript; End; End; End; End; End; procedure mineore; begin repeat MouseSpeed := 10+random(2); FindRandoms; if (FindObjOre(Ox,Oy,'ine',rockcolor,10,3)) then begin ClickToContinue; mmouse(Ox,Oy,3,3); if (not(Findgas(Ox,Oy))) then begin wait(100+random(100)); mouse(Ox,Oy,2,2,true); if (FindGas(Ox,Oy)) then begin wait(100+random(100)); RunAwayDirection(Rdirection); Wait(1000+random(1000)); RunBack; end; FindTalk; end else begin wait(100+random(100)); RunAwayDirection(Rdirection); Wait(1000+random(1000)); RunBack; end; wait(rockwait+random(500)); FindPick; Antiban1; FindRandoms; RandomTalk; ProgressReport; end; until (InvFull); end; begin SetupSRL; SetupSRLMining; MouseSpeed := 8+random(2); ActivateClient; DisguiseScar('Notepad'); LoadGhostSpeakWords('Mining'); NickNameBmp:=CreateBitmapMaskFromText(Nickname,UpChars); if not FindPickHeadColor then begin Exit; end; repeat WeAtMine; mineore; randomtalk; dropore; until (LoadsD = Loads) Logout; ProgressReport; SRLRandomsReport; WriteLn('All loads requested are now done') WriteLn('Thank you for using Rams Ultimate Power Miner'); Exit; end.