//you need lastest srl, get it at http://www.villavu.com/forums /////////////////////////////////////////////////////////// // // // PhantomBMX's FeatherBuyer Deluxe // // // // /////////////////////////////////////////////////////////// //------------------Version-History----------------------// // Version 1.0 - Initial release // // Version 1.1 - Fixed a few bugs // // Version 2.0 - More accurate average per hour. // // Added a failsafe to avoid getting // // stuck with a cancel screen. // // Offscreen movement for antiban. // // Version 2.1 - Gerrant finding(almost flawless). // // Auto-login if not logged in. // // Randomly Close Window for antiban. // /////////////////////////////////////////////////////////// //---------------------INSTRUCTIONS----------------------// // Low Detail-V Bright // // Make Sure All Characters Is Somewhere In Fishing Shop // // Have Plenty Of GP In 1st Inv. Slot // // Setup Lines 30-34 // /////////////////////////////////////////////////////////// program FeatherBuyer; {.include SRL\SRL.scar} const /////////////////////////////////////////////////////////// // SETUP // /////////////////////////////////////////////////////////// FeathersToBuy = 50000; LampSkill = 'strength'; //Skill if lamp is found TimePerPlayer = 2; //Time per player in minutes PlayersYouGot = 4; //How many players you will use StartPlayer = 3; //Which player starts first? /////////////////////////////////////////////////////////// // DO NOT TOUCH BELOW // /////////////////////////////////////////////////////////// var x2 , y2, x3, y3, x4, y4, x5, y5 :Integer; FeatherCount, GerrantCount, PlayerTime :Integer; Buy10, Cancel, Shop :Integer; Found :Boolean; procedure LoadBmps; //Just bitmaps begin Buy10 := BitmapFromString(20, 2, 'z78DA33300001373030753135' + '313177430260490388382ED2CDCDD2C0C40093C4AFDE00C95E643' + '679F662025C2A0160C23517'); Cancel := BitmapFromString(20, 2, 'z78DA33753135313177C3014' + 'CC1B2C8A41B5E80A99E185D0648009769B87411A31ED97C002786' + '3AF9'); Shop := BitmapFromString(20, 2, 'z78DA7373B3B43074334002269' + '62606C6266E60716412BF1A64596471884AFCEA495583CB85987A' + '315502005CE0342D'); end; procedure UnloadBmps; begin FreeBitmap(Buy10) FreeBitmap(Cancel) FreeBitmap(Shop) end; procedure Buy; begin; Mouse(364+random(23),70+random(23),0,0,false); Wait(300+random(500)); If(FindBitmapToleranceIn(Buy10,x2,y2,217,7,567,378,5)=True)Then begin; Mouse(x2+3,y2+3,8,2,true); FeatherCount:= FeatherCount + 10 end; If(FindBitmapToleranceIn(Cancel,x5,y5,12,12,505,330,5)=True)Then begin MMouse(x5-20,y5-20,-20,-20) end; Wait(1000) end; procedure FindGerrant; var a,b,e,f:integer; begin Found:=False if(FindBitmapToleranceIn(Shop,e,f,170,31,239,50,2))then begin Found:=True Exit; end; a:=246 b:=163 if(FindColorSpiralTolerance(a,b,6785945,10,10,500,330,2)) or(FindColorSpiralTolerance(a,b,7708590,10,10,500,330,2)) or(FindColorSpiralTolerance(a,b,6130331,10,10,500,330,2)) or(FindColorSpiralTolerance(a,b,4284524,10,10,500,330,2)) or(FindColorSpiralTolerance(a,b,5009534,10,10,500,330,2)) or(FindColorSpiralTolerance(a,b,7444904,10,10,500,330,2))then begin MMouse(a,b,0,0) Wait(10+random(50)) if(IsUpText('alk'))then begin Mouse(a,b,0,0,false) Wait(100+random(20)) ChooseOption(a,b,'rade') Flag; Wait(1000+Random(1000)) end; if(FindBitmapToleranceIn(Shop,e,f,170,31,239,50,2))then begin Found:=True GerrantCount:=GerrantCount+1 Exit; end; end; if(FindColorTolerance(e,f,10718977,563,5,728,165,2))then begin Mouse(e,f,5,5,true) Flag; end; end; procedure Not1000; begin SleepAndMoveMouse(1000+random(1000)) end; procedure ProgressReport; var ProgCounter, Hours, Minutes, Seconds, TSeconds, RoundedRate :Integer; Rate :Extended; Time :String; begin if(ProgCounter = 20)then begin ClearDebug; ProgCounter:= 0 end; Hours:= ScriptTime(1) Minutes:= ScriptTime(2) Seconds:= ScriptTime(3) if(Hours>0)then begin TSeconds:=TSeconds + (Hours*3600) end; if(Minutes>0)then begin TSeconds:=TSeconds + (Minutes*60) end; if(Seconds>0)then begin TSeconds:=TSeconds + Seconds end; Time:= inttostr(Hours)+ ' Hours, ' +inttostr(Minutes)+ ' Minutes, and ' +inttostr(Seconds)+ ' Seconds.' if(FeatherCount>0)then begin Rate:= (FeatherCount/TSeconds)*3600 RoundedRate:=Round(Rate) end; WriteLn('') WriteLn('<<----------------Progress-Report---------------->>') WriteLn('Script Ran For ' +Time) WriteLn('Bought ' +inttostr(FeatherCount)+ ' Feathers So Far.') WriteLn('Averaging About ' +inttostr(RoundedRate)+ ' Feathers Per Hour.') if(GerrantCount>=1)then begin WriteLn('Found Gerrant '+inttostr(GerrantCount)+' Time[s].') end; WriteLn('<<----------------------------------------------->>') ProgCounter:= ProgCounter + 1 end; procedure FeatherAnti; begin LeaveScreenEvery(1+Random(2)); end; procedure Setup; begin SetupSRL; LoadUs; HowManyPlayers:=PlayersYouGot NumberOfPlayers(HowManyPlayers); CurrentPlayer:=StartPlayer; DisguiseScar('Calculator'); LoadBmps; BenMouse:=False; ActivateClient; end; /////////////////////////////////////////////////////////// // MAIN LOOP // /////////////////////////////////////////////////////////// begin Setup; Wait(1000) PlayerTime:=GetSystemTime; if(not(LoggedIn))then begin LoginPlayer; end; FindNormalRandoms; Wait(1000+random(2000)) SendArrowSilentWait(0,1000+random(2000)) repeat FindGerrant; until(Found) while(FeatherCount<=FeathersToBuy)do begin MouseSpeed:=10+random(15); if(GetSystemTime-PlayerTime >= 60000*TimePerPlayer)then begin WriteLn('Switching Player because of Time Per Player') CloseWindow; Logout; NextPlayer(True) PlayerTime:=GetSystemTime; LoginPlayer; FindNormalRandoms; Wait(1000+random(2000)) SendArrowSilentWait(0,2000) end; if(FindColor(x3,y3,65535,558,209,605,224))then begin if(FindColor(x4,y4,65535,385,73,385,73))then begin Buy; ProgressReport; end; repeat FindGerrant; until(Found); FeatherAnti; Not1000; end; end; UnloadBmps; end.