{=========================================================================] [ SRL Willow Buyer+Banker ] [ ] [ NAME : SRL Template. ] [ WRITER : Cheesehunk ] [ CATEGORY : Buying/Collecting ] [ DESCRIPTION : Walks from Draynor to lumby, and buys Willow's. ] [ USAGE : Start at Draynor bank, with money in bank. ] [ AUTOCOLOR : Yes ] [ NOTES : My first SRL/Real Runescape script. ] [ CREDS+THANKS: phantombmx(Used his FindGerrant+Hourly Rate) ] [ Fakawi(Banker DTM's)+Wizzup (RadialRoadWalk=P) ] [ SRL Dev's+contributors(Awesome include) ] [ CONTACT : cheesehunk@hotmail.com ] [ ] [ ] [=========================================================================] [ This script will walk from Draynor Bank, to the General ] [ store in Lumbridge, buy 27 Willow logs, then ] [ return to the bank. ] [=========================================================================] [ ] [ Version History ] [=========================================================================] [ Version 0.75 - Initial release. ] [ Version 0.76 - Fixed some time bugs, made it more humanlike. ] [ Version 0.80 - Added Per hour rate (Mostly copied from Phantom's ] [ FeatherBuyer.) Added A LOT of AntiBan procedures, and ] [ made it so that you can choose if you want to use ] [ AntiBan or not. ] [ ] [=========================================================================] [ Instructions. ] [=========================================================================] [ 1. USE Runescape with Low Detail, Very Bright. ] [ 2. Set your Screen to 32 bit TRUE color. ] [ 3. Set Playernames and Passwords in DeclarePlayers. ] [ 4. SET HOWMANYPLAYERS inside DeclarePlayers. ] [ 5. Place money in first bank slot. ] [ 6. Be sure to have your inventroy empty. ] [ 7. ALIGN MINIMAP to PERFECT NORTH. ] [ http://img86.imageshack.us/img86/6839/setupwillow7to.png ] [ 8. Start script with player beside the most southern bank booth. ] [=========================================================================} program WillowBanker; {.include SRL/SRL.scar} {.include SRL/SRL/misc/DraynorColorFinder.scar} {.include SRL/SRL/misc/amount.scar} var FX, FY, RandomAntiBanMark, PeeBreakMark, RunMark, CashLeft, WillowsLeft, Willows, Doors, WillowCol, House2Color, DB1, DB2, DB3, Buy10, NewDoor, Trade : integer; //******************** Set These Constants if Needed ********************// Const StartPlayer = 2; // Determines who will play first Loads = 2; // Number of loads before switching Players(2-4 is best.) CHEESEDebug = True; // Set to false, if you don't want to know whats going on=P UseBenMouse = True; // Set to false if you do not wish to you Bens Mouse. MouseSpeeed = 23; // The speed of the mouse. UseAntiBan = True; // True, or False, do you want to use Antiban procedures? //*********************** Declare your players ***************************// Procedure DeclarePlayers; begin HowManyPlayers := 5; CurrentPlayer:=StartPlayer; NumberOfPlayers(HowManyPlayers); // set arraylength Players[0].Name :=''; Players[0].Pass :=''; Players[0].Nick :=''; Players[0].Loc :='Bank'; Players[0].Active:=True; end; { Do not touch below here, unless asked, or you know what you are doing. You may use parts of the script all you want, just be sure to credit me! } //************************************************************************// Const VersionNumber = '0.80'; // Compliant with Rev 728+ //*********************** Progress Reports *******************************// procedure PlayerStats; var Active: string; var PWillows,i: Integer; begin PWillows:=Players[CurrentPlayer].Banked*27; writeln('[]++----------------------------------++[]'); writeln('Name : '+ Players[CurrentPlayer].Name+', Number : '+ inttostr(CurrentPlayer)); writeln('Worked for : '+ inttostr(Players[CurrentPlayer].Worked)+' minutes, Banked : '+ inttostr(Players[CurrentPlayer].Banked) + ' Load[s]'); writeln('Willows : '+ inttostr(PWillows)); if Players[CurrentPlayer].Active=True then Active:='True' else Active:='False'; writeln('Active : '+ Active+', Loc : '+ Players[CurrentPlayer].loc); writeln('[]++----------------------------------++[]'); for i := 0 to HowManyPlayers-1 do begin if Players[i].Active=True then Active:='True' else Active:='False'; writeln( (inttostr(i))+' : '+Players[i].name+ ' = '+Active) writeln('. - B :'+inttostr(Players[i].Banked)+' Times.'+ ' - : '+IntToStr(Players[i].Worked)+' mins.'+' - Loc: '+Players[i].loc); end writeln('[]++----------------------------------++[]'); end; //************************************************************************// procedure ProgressReport; var SSeconds, RoundedRate, Hours, Minutes, Seconds: integer; Rate: Extended; begin Hours:= ScriptTime(1); Minutes:= ScriptTime(2); Seconds:= ScriptTime(3); if(Hours>0) then begin SSeconds:=SSeconds+(Hours*3600); end; if(Minutes>0) then begin SSeconds:=SSeconds+(Minutes*60); end; if(Seconds>0) then begin SSeconds:=SSeconds+Seconds; end; if(Willows>0) then begin Rate:= (Willows/SSeconds)*3600; RoundedRate:= Round(Rate); end; begin WriteLn(' '); WriteLn('<============== -'+VersionNumber+'- Progress Report ===============>'); Writeln('Worked for '+ TimeRunning); WriteLn('Banked '+IntToStr(banks)+' Loads[s].'); WriteLn('About '+IntToStr(Willows)+' Willows.'); if (Willows>0) then WriteLn('Averaging about '+IntToStr(RoundedRate)+' Willows per hour.'); Writeln('Opened '+IntToStr(Doors)+' Door[s].'); SRLRandomsReport; Writeln(' '); end; PlayerStats; end; //*********************Fakawi's OpenBankQuiet Edited***************************// Function OpenDraynorQuiet(X1, Y1, X2, Y2: integer):Boolean; var DraynorCounter, Dx, Dy, tol, Mark2, Mark3:integer; var acc, accthres:extended; begin DraynorCounter := BitmapFromString(34, 1, 'z78DA658E4B0' + 'E80300844AF34FCB45DAA70FF2B89B40B12339997F0C980BA5C98' + '06837A7AE828CE74551F77FF51CBCD1FC5D901369614282816E59' + '683EF94207AF2BA55C9948672BFB2FB7D5A1F6E8A10D0C9274552' + '39FD022AE92A73'); SendArrowSilentWait(0,1000+Random(500)); MarkTime(Mark3); Tol:=1; accthres:=0.6; repeat FindDeformedBitmapToleranceIn(DraynorCounter, Dx, Dy, X1, Y1, X2, Y2, tol, 4, True, acc); if (acc >= accthres) then begin MMouse(Dx, Dy, 0, 0); if IsUpTextMulti('e Bank','Booth','ooth') then begin GetMousePos(Dx, Dy); Mouse(Dx, Dy, 0, 0, False); if ChooseOption(Dx, Dy, 'uickly') then begin MarkTime(Mark2); repeat Wait(10); if TimeFromMark(Mark2) > 20000 then begin writeln('couldnt find the bank. Exiting'); Exit; end; until BankScreen; end; Result := True; Exit; end; end; wait(100); FindNormalRandoms; tol := tol + 4; if tol >= 20 then begin tol := 1; accthres := accthres - 0.1; if accthres < 0.2 then begin writeln('couldnt find the bank. Exiting'); Exit; end; end; until TimeFromMark(Mark3) > 60000; FreeBitMap(DraynorCounter); end; //****************************************************************************// function FindDraynorHouse2Color: Integer; var C,TX,TY,DraynorHouse2:integer; begin DraynorHouse2 := BitmapFromString(5, 5, 'z78DA333135B030343' + '319642400FD271E79'); while (C<65) do begin C:=C+5; if FindBitMapToleranceIn(DraynorHouse2,TX,TY,626,28,658,46,C) then begin House2Color:=GetColor(Tx,TY); Result:=House2Color; break; end end FreeBitMap(DraynorHouse2); if Result = 0 then writeln('ERROR:= Red House Color NOT Found'); end; //****************************************************************************// function FindDraynorRockColor2: Boolean; var BMPRock,C,TX,TY: Integer; var Found: Boolean; begin BMPRock := BitmapFromString(5, 5, 'z78DA33B2303632723531327' + '1363145268D7088134FE23701228BAC0659040062C61FD7') while (C<100) do begin C:=C+5; If FindBitMapToleranceIn(BMPRock,TX,TY,630,105,675,131,C) then begin RockColor:=GetColor(TX,TY); Found:=True; Result:=True; break; end end if Found=False then writeln('Rock NOT Found'); FreeBitMap(BMPRock); end; //************************************************************************// Procedure FindDraynorBankColor; var C: integer; begin C:=0; repeat C:=C+1; wait(100); BankColor := GetSymbolColor(x,y,'bank'); until (C>100) or (BankColor<>0); if CheeseDebug then Writeln('BankColor :='+IntToStr(BankColor)); if (C>100) then begin Writeln('ERROR: Bank color could not be found, please restart script.') TerminateScript; end; end; //****************************************************************************// Procedure GetWillowColor; var BMPWillow,C,FX,FY:integer; begin C:=0; BMPWillow := BitmapFromString(8, 9, 'z78DA8DD04B0A80500885E' + '12D651ECFAD61DDC7FE975460816141937FF48962211B50941BC4' + '6B9BC97C976832624BF26C84F6AFA95F3E34FBAB138B0EEB86538' + '6BEF80FE9458349CD530F19AF9AB148F5460968953537FAF30343' + '27D2BAEEBE37377BBFEDFA52FAFF01834A5D0C'); repeat C:=C+5; wait(500+random(500)); until(FindBitmapToleranceIn(BMPWillow,FX,FY,70,109,462,300,C)); begin WillowCol:=GetColor(FX,FY); if CheeseDebug then Writeln('WillowColor = '+IntToStr(WillowCol)); end; FreeBitmap(BMPWillow); end; //****************************************************************************// Procedure GetDraynorColors; begin SymbolAccuracy:=0.4; FindDraynorRoadColor(584,48,616,64); if CheeseDebug then Writeln('RoadColor :='+IntToStr(RoadColor)) FindDraynorRockColor2; if(RockColor=0) then TerminateScript; if CheeseDebug then Writeln('RockColor :='+IntToStr(RockColor)) FindDraynorWaterColor; if(WaterColor=0) then TerminateScript; if CheeseDebug then Writeln('WaterColor:='+IntToStr(WaterColor)); FindDraynorHouseColor; if(HouseColor=0) then TerminateScript; if CheeseDebug then Writeln('HouseColor:='+IntToStr(HouseColor)); FindDraynorHouse2Color; if(House2Color=0) then TerminateScript; if CheeseDebug then Writeln('House2Color:='+IntToStr(HouseColor)); FindDraynorBankColor; SymbolAccuracy:=0.8; end; //****************************************************************************// Procedure LoadStuff; begin Buy10 := BitmapFromString(26, 2, 'z78DA33753135313177430206' + '6000619BE2908588E322DDDC2C0D4C0C2024CC3484082E35C8262' + '08BE0721B329B5A6EC32582A91700559645C4'); Trade := BitmapFromString(25, 3, 'z78DA737303010324E08' + '60470896302038A01C4140449BAABA8653B3E115242805A21861E' + '32A8B200C0216355'); NewDoor := BitmapFromString(4, 4, 'z78DA333733B530703147224' + 'D5D4DCC0C2CCC31C52D4D8CF0883B9A3A0145304800F200150F'); DB1 := DTMFromString('78DA636C67626008664001FFFFFF67F80FA41' + '921ECFF8CB54035DEA86AFEFC61621081AA0101C63A4C73B0AA09' + 'C7AF06000153117B'); DB2 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' + '921ECFF8C3540353EA86AFEFC61621081AA0101C63AA09A1022D4' + '44E057030001B5117D'); DB3 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' + '921ECFF8CF540359EA86AFEFC61621081AA0101C63AA09A40026A' + '6A816A42F1AB010000781176'); end; //************************************************************************// Procedure SetUp; begin SetupSRL; MarkTime(RandomAntiBanMark); MarkTime(PeeBreakMark); LoadStuff; DeclarePlayers; if (UseBenMouse) then BenMouse:=True else BenMouse:=False; MouseSpeed:=MouseSpeeed+random(2); begin ActivateClient; LoginPlayer; wait(500+random(500)); GetDraynorColors; Willows:=0; end; end; //************************************************************************// Procedure RunAway; begin SetRun(true); MouseFindFlag(648,35,1,-1); FFlag(10); BoredHuman; wait(random(1000)); MouseFindFlag(648,135,1,1); FFlag(10); case (Random(6)+1) of 1: TypeSend('ughh'); 2: TypeSend('=P'); 3: TypeSend('lol'); 4: TypeSend('****'); 5: TypeSend('stupid randoms'); 6: Wait(10); end; end; //****************************************************************************// Procedure RClickExamine; begin MMouse(Random(MSX2), Random(MSY2), 0, 0); If IsUpText('opti') then begin GetMousePos(x,y); Mouse(x, y, 0, 0, False); case Random(3) of 0: ChooseOption(x, y, 'Examine'); 1: ChooseOption(x, y, 'Cancel'); 2: MMouse(Random(MSX2), Random(MSY2), 0, 0); end; Wait(Random(50) + Random(50)); end; end; //****************************************************************************// procedure PeeBreakEvery(mins : Integer); var PeeMark: Integer; begin if ((TimeFromMark(PeeBreakMark) / 1000) / 60 >= mins) then begin MarkTime(PeeBreakMark); MarkTime(PeeMark); repeat Wait(1); FindNormalRandoms; until ((TimeFromMark(PeeMark) >= 15000+Random(60000)) or (not(LoggedIn))) end; end; //****************************************************************************// procedure SetRunEvery(mins : integer; Run : Boolean); begin if ((TimeFromMark(RunMark) /1000) / 60 >= mins) then begin MarkTime(RunMark); SetRun(Run); end; end; //****************************************************************************// procedure RandomAntiBanEvery(mins : Integer); var PantiBan: integer; UnRounded: Extended; begin if ((TimeFromMark(RandomAntiBanMark) /1000) / 60 >= mins) then begin MarkTime(RandomAntiBanMark); UnRounded:=Random(30)+11 / 10; PantiBan:=Round(UnRounded); case Pantiban of 1: begin GameTab(12) RandomEmote; end; 2: GameTab(1+Random(12)); 3: RClickExamine; 4: WWait(5000+Random(3000)); end; end; end; //****************************************************************************// Procedure CheeseBan; begin RandomChatEvery(8+random(10)); BoredEvery(10+random(10)); PickUpMouseEvery(5+random(10)); LeaveScreenEvery(5+random(5)); HoverEvery(25+random(20),'random'); RandomRClickEvery(15+random(5)); PeeBreakEvery(45+random(45)); SetRunEvery(20+random(10),True); RandomAntiBanEvery(10+random(15)); end; //****************************************************************************// procedure FindRandoms; begin FindNormalRandoms; if (FindFight) then RunAway; if(InBlack)then begin Players[CurrentPlayer].loc := 'InBlack'; Logout; Exit; end; if UseAntiBan then CheeseBan; end; //****************************************************************************// procedure BoredWhileFlagExistsDist(distance : integer); begin repeat if (not(HumanCircleFlag(distance))) then begin MMouse((Random(MSX1+MSX2))+2/2,Random(MSY1+MSY2)+2/2,0,0); Case Random(6) of 0: SendArrowSilentWait( ((Random(2) * 2) + 1), 1000 + Random(200) ); 1: SendArrowSilentWait( ((Random(2) * 2)), 1000 + Random(200) ); 2: SendArrowSilentWait( ((Random(2) * 2) + 1), 200 + Random(200) ); 3: SendArrowSilentWait( ((Random(2) * 2)), 200 + Random(200) ); 4: SendArrowSilentWait( ((Random(2) * 2) + 1), 20 + Random(20) ); 5: SendArrowSilentWait( ((Random(2) * 2)), 20 + Random(20) ); end; end; until(HumanCircleFlag(distance)); end; //****************************************************************************// Function WhereAreWe: String; begin SymbolAccuracy:=0.4; if FindSymbol(x,y,'store') or FindSymbol(x,y,'furnace') then begin Players[CurrentPlayer].Loc:='Store'; Result:='Store'; end; if FindMMColor(x,y,BankColor) or FindColor(x,y,House2Color,MMX1,MMY1,MMX2,MMY2) then begin Players[CurrentPlayer].Loc:='Bank'; Result:='Bank'; end; if (InBlack) then begin Players[CurrentPlayer].Loc:='In Black'; Result:='In Black'; Players[CurrentPlayer].Active:=False; end if Result='' then begin Result:='Lost'; Players[CurrentPlayer].Loc:='Lost'; Players[CurrentPlayer].Active:=False; end; if (CheeseDebug) then Writeln('Location := '+(Result)); SymbolAccuracy:=0.8; end; //****************************************************************************// Procedure OpenDoor; var XD,XY: Integer; begin if FindBitMapToleranceIn(NewDoor,XD,XY,150,85,510,333,20) then begin MMouse(XD,XY,0,0); if IsUpTextMulti('Ope','pen','Open') then begin if CheeseDebug then writeln('Opening Shop Door..'); Doors:= Doors+1; Mouse(XD,XY,0,0,true); end; end; end; //****************************************************************************// Function CashInInv: Boolean; var MoneyInventory : integer; begin if (FindItemColorTol(1347761,15)) then begin CountInvSlot(MoneyInventory,1,1); if (CheeseDebug) then Writeln('Cash in inventory:= '+IntToStr(MoneyInventory)) end; if (MoneyInventory<324) then begin Result:=False; end else Result:=True; end; //****************************************************************************// Procedure WalkToStore; var SX,SY: integer; begin if not LoggedIn then Exit; MarkTime(Mark); Players[CurrentPlayer].Loc:='To Store'; if CheeseDebug then writeln('Walking to store...'); RadialRoadWalk(RoadColor,20,90,45,0,1); LinearRoadWalk(RoadColor,90,35,0,0); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>120000) then begin Logout; Exit; end RadialRoadWalk(RoadColor,410,335,45,0,0); FindRandoms; until FindColor(x,y,RockColor,625,20,720,80); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>360000) then begin Logout; Exit; end; RadialRoadWalk(RoadColor,120,45,47,0,-1); FindRandoms; until FindColor(x,y,WaterColor,660,10,720,80); RadialRoadWalk(RoadColor,45,100,45,0,0); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>420000) then begin Logout; Exit; end; RadialRoadWalk(RoadColor,190,115,40,0,0); FindRandoms; until(FindColor(x,y,HouseColor,590,100,700,155)); if FindColor(SX,SY,HouseColor,590,100,700,155) then begin case (Random(2)+1) of 1: begin wait(250+random(250)) Mouse(SX,SY,10,10,true) end 2: begin wait(250+random(250)) ClickMMColor(HouseColor) end end; WWait(4000+random(2000)); FFlag(2+random(2)); OpenDoor; end; Players[CurrentPlayer].Loc:='Store'; if CheeseDebug then writeln('We are now at the store'); end; //*************************************************************************// Procedure WalkToDraynorBank; var BX,BY:integer; begin if not LoggedIn then Exit; MarkTime(Mark); if CheeseDebug then writeln('Walking to bank...'); Players[CurrentPlayer].Loc:='To Bank'; OpenDoor; RadialRoadWalk(RoadColor,0,45,45,-1,1); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>120000) then begin Logout; Exit; end RadialRoadWalk(RoadColor,390,320,40,-1,1); FindRandoms; until(FindColor(x,y,HouseColor,633,4,715,41)); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>240000) then begin Logout; Exit; end RadialRoadWalk(RoadColor,250,330,45,0,0); until(FindColor(x,y,RockColor,596,2,689,45)); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>240000) then begin Logout; Exit; end RadialRoadWalk(RoadColor,240,320,45,0,0); until(FindColor(x,y,RoadColor,594,113,689,162)); RadialRoadWalk(RoadColor,190,250,50,0,0); repeat if (not (Loggedin)) then break; if(TimeFromMark(Mark)>240000) then begin Logout; Exit; end RadialRoadWalk(RoadColor,160,240,40,1,1); until (FindColor(BX,BY,BankColor,MMX1,MMY1,MMX2,MMY2) or FindColor(BX,BY,House2Color,576,22,608,90)) Mouse(BX+random(5),BY+random(2),3,3,true); BoredWhileFlagExistsDist(5+random(2)); PerfectNorth; Flag; DTM3Flag(DB1,DB2,DB3,true); PerfectNorth; end; //************************************************************************// Procedure WithdrawCash; var CashNeeded, MoneyInInv : integer; begin FixBank; wait(50); CashLeft:= amountcolor('bank',1347761,10); if CheeseDebug then WriteLn('Cash Left:= '+IntToStr(CashLeft)+' gp'); if (CashLeft<324) then begin Writeln('Not enough cash, Logging out.'); Players[CurrentPlayer].Loc:='Not enough cash'; Players[CurrentPlayer].Active:=False; repeat Wait(1000); FindRandoms; Logout; until(not(LoggedIn)); end; if (CashLeft>324) then begin MoneyInInv:=amountcolor('inv',1347761,20); CashNeeded:=324-MoneyInInv if CheeseDebug then writeln('Whipping out cash.'); Withdraw(1,1,CashNeeded); end; end; //*****************Based off Phantom's FindGerrant****************************// function FindSalesman:Boolean; var a,b,C,d,e:integer; begin if(GetColor(334, 40)=2070783)then begin Result:=True; Exit; end; a:=246; b:=163; if(FindColorSpiralTolerance(a,b,5465723,10,10,500,330,3))or (FindColorSpiralTolerance(a,b,5926277,10,10,500,330,3))or (FindColorSpiralTolerance(a,b,5663104,10,10,500,330,3))then begin MMouse(a,b,0,0); Wait(100+random(50)); C:=0; if IsUpTextMulti('hop','Shop','Sho') then begin Mouse(a,b,0,0,false); Wait(100+random(20)); if(FindBitMapToleranceIn(Trade,d,e,MSX1,MSY1,MSX2,MSY2,C)) then begin Mouse(d,e,10,2,true); Flag; SleepAndMoveMouse(1000+random(1000)); end; end; if(GetColor(334, 40)=2070783)then begin Result:=True; Exit; end; end; SendArrowSilentWait(1,100+random(300)); end; //************************************************************************// Function WillowsInStore : Boolean; begin while (WillowCol=0) do begin GetWillowColor; wait(1); end; if(FindColor(FX,FY,WillowCol,70,109,462,300)) then begin MarkTime(Mark); FX:=FX+Random(4); FY:=FY+Random(4); repeat MMouse(FX,FY,0,0); Wait(500+(500)); until(IsUpTextMulti('ill','ogs','llow') or (TimeFromMark(Mark)>60000)) if IsUpTextMulti('ill','ogs','llow') then Result:=True; end; WillowsLeft:=amountcolor('shop',WillowCol,0); if CheeseDebug then Writeln('Willows in store = '+IntToStr(WillowsLeft)); end; //************************************************************************// Procedure BuyTheWillows; var RX,RY,WX,WY,X1,Y1:integer; begin MarkTime(Mark); repeat if(FindColor(WX,WY,WillowCol,70,109,462,300)) then begin RX:=FX; RY:=FY; MMouse(RX,RY,0,0); if IsUpTextMulti('ill','ogs','llow') then begin if CheeseDebug then writeln('Buying the logs=P'); repeat Mouse(RX,RY,0,0,False); Wait(250+random(250)); if(FindBitmapToleranceIn(Buy10,X1,Y1,19,178,989,528,5))then Mouse(X1,Y1,10,1,true); Wait(500+random(500)); RX:=RX+Random(4); RY:=RY+Random(4); until ExistsItem(27) or (TimeFromMark(Mark)>120000); end; end; until ExistsItem(27) or (TimeFromMark(Mark)>160000); repeat CloseWindow; wait(100+random(100)); until (not (ShopScreen)); end; //************************************************************************// procedure Bank; begin if not LoggedIn then Exit; FindRandoms; MarkTime(Mark); repeat if (not(Loggedin)) then break; if (not OpenDraynorQuiet(140,101,320,215)) then OpenBankQuiet('db'); until((BankScreen) or (TimeFromMark(Mark)>60000)); if(BankScreen)then if CheeseDebug then writeln('Banking Items'); Wait(250+random(250)); FixBank; DepositAll; Wait(200+random(200)); WithdrawCash; CloseWindow; Banks:=Banks+1; Willows:=Willows+27; Players[CurrentPlayer].Banked:=Players[CurrentPlayer].Banked+1; Players[CurrentPlayer].loc:='Bank'; end; //*************************************************************************// // // Main EventLoop // //*************************************************************************// begin Setup; repeat OpenDraynorQuiet(205,90,250,200); wait(50+random(50)); until (BankScreen); WithdrawCash; repeat CloseWindow; wait(500+random(500)); until (not(BankScreen)); repeat ActivateClient; SetChat('off',3); WhereAreWe; if Players[CurrentPlayer].loc='Bank' then begin MakeCompass('N'); if not(CashInInv) then begin MarkTime(Mark); repeat if (not(Loggedin)) then break; if (not OpenDraynorQuiet(205,90,250,200)) then OpenBankQuiet('db'); until((BankScreen) or (TimeFromMark(Mark)>60000)); WithDrawCash; repeat CloseWindow Wait(250+random(250)); until(not(BankScreen)); end; FindDraynorRoadColor(549,5,676,95); WalkToStore; end; if Players[CurrentPlayer].Loc='Store' then begin MarkTime(Mark); repeat OpenDoor; if not Loggedin or (TimeFromMark(Mark)>60000) then break; wait(50+random(50)); until(FindSalesman) if(WillowsInStore) then BuyTheWillows; PerfectNorth; FindDraynorRoadColor(644,30,710,115); WalkToDraynorBank; Bank; FindRandoms; ProgressReport; end; if ((LoggedIn) and (Players[CurrentPlayer].Banked mod Loads = 0)) then begin SetChat('off',3); repeat Wait(1000); FindNormalRandoms; until(not(LoggedIn)); NextPlayer(True); end; if (not(Loggedin)) then NextPlayer(False); until(False); end. //Long Live SCAR. We miss you Kaitnieks.