{=========================================================================] [ Stupid3ooo's StupidChopperBanker ] [ version: 1.01 ] [=========================================================================] | Description: | | A macro that starts in the Draynor or Edgeville bank and walks to the | | trees, either Yew or Willow, south of the bank. It chops a full load of| | logs from the Yew or Willow trees then returns to the bank and repeats | | the process. | | Instructions: | | 1.Set the Runescape brightness to V-bright, and your computer's | | resolution to 32bit resolution. | | 2.Need SCAR version 2.0.3. | | 3.Start the script in the Draynor or Edgeville bank so that the trees | | are visible in the minimap. | | 4.Click and drag the cross heir onto the Runescape client and press | | the green arrow at the top to run the script. | | 5.You may set your own colors lines 37-39 (optional). | [=========================================================================] [ *Be sure to open SSI2.txt for more options. ] [ *For general SCAR help go to: ] | http://www.kaitnieks.com/files/SCARGUIDE/SCARGUIDE.htm ] [ Thanks to, RS Cheating community ] [ *PLEASE POST ANY BUGS/HELP IN THE FORUMS OR E-MAIL ] [ RSTradeMonkey@hotmail.com, or Stupid3ooo@gmail.com ] [ If you like pwease donate to me :) at: ] [ http://www.stupidscripts.com ] [=========================================================================} program StupidChopperBanker; {.include SSI2.txt} {.include BoxBreaker.txt} const //=//===============Colors(Leave as 0 to let script find)==============\=\\ MMBankColor= 3460064;//Color of the trees in the minimap.(SS:3060683) MMTreeColor= 96769;//Color of the trees in the minimap.(SS:15891) MSTreeColor= 606264;//Color of the trees in the mainscreen. (SS:1849400) //=\\=================================================================//=\\ //=\\ Under the varibles you may disable the forms and setup options. //=\\ //=\\=================================================================//=\\ var TreeMapColor,TreeColor,Report,Report2,Banks,MaxWait,TinderBox,LogBmp, BankColor,Location,Mark:integer; UseForm,NoAxe,EquipAxe,StartScript:boolean; frmDesign,frmMore:TForm; labPassword,labUsername,labMaxWait,labMaxWait2,labLocation:TLabel; edtUsername,edtPassword,edtMaxWait:TEdit; bMoreOptions,bStart,bSave,bDonate:TButton; cbLogsOut,cbChats,cbEquipAxe,cbRotates,cbScarScape:TCheckBox; cboxLocation:TComboBox; procedure Setup; begin //=\\============================Setup================================//=\\ UseForm:= true;//If you wish to use the form. Username:= Username;//Username. Password:= Password;//Password. ScarScape:= false;//Set to true if you are using ScarScape. LogsOut:= true;//If you want to log out every so often for antiban. Chats:= true;//If you want to randomly chat for anti-ban. Rotates:= true;//If you want to randomly rotate the screen for anti-ban. MaxWait:= 300;//Maximum time in seconds to wait while chopping a tree. Location:= 1;//1= Draynor(Willow), 2= Edgeville(Yew) EquipAxe:= false;//If you can/want to equip your axe. //=\\=================================================================//=\\ end; //DO NO TOUCH BELOW //==============================Misc Procedures===============================\\ procedure ProgressReport; var RHours,Minutes,Seconds,RMinutes,RSeconds,avtime:LongInt; Time:String; begin if(GetSystemTime-report2 > report*60000)then begin Seconds:=(GetSystemTime-ST) div 1000; Minutes:=Seconds div 60; RHours:=Minutes div 60; Time:=inttostr(Seconds)+' Seconds'; if(banks>0)then avtime:=Seconds/banks; if Minutes<>0 then begin RSeconds:=Seconds Mod (Minutes*60); Time:=inttostr(Minutes)+' Minutes and '+inttostr(RSeconds)+' Seconds'; end; if RHours<>0 then begin RMinutes:=Minutes Mod (RHours*60); RSeconds:=Seconds Mod (Minutes*60); Time:=inttostr(RHours)+' Hours, '+inttostr(RMinutes)+' Minutes and ' +inttostr(RSeconds)+' Seconds'; end; begin writeln(' '); writeln('<=================Progress Report================>'); WriteLn('Worked for '+Time); WriteLn('Banked '+IntToStr(banks)+' loads[s].'); WriteLn('Banked '+IntToStr(banks*27)+' logs[s].'); if(Location=1)then WriteLn('Gained '+floattostr(30*(banks*27))+'xp.'); if(Location=2)then WriteLn('Gained '+floattostr(60*(banks*27))+'xp.'); if(Location=1)then WriteLn('Currently Averaging about '+IntToStr(3600/avtime*27)+ ' logs and '+floattostr(3600/avtime*30*27)+' xp an hour.'); if(Location=2)then WriteLn('Currently Averaging about '+IntToStr(3600/avtime*27)+ ' logs and '+floattostr(3600/avtime*60*27)+' xp an hour.'); WriteLn('Random Event Report:'); if(fights>0)then WriteLn(' Fought '+IntToStr(fights)+' time[s].'); if(talks>0)then WriteLn(' Talked to '+IntToStr(talks)+' Random event[s].'); if(lamps>0)then WriteLn(' Used lamps '+IntToStr(lamps)+' time[s].'); if(boxes>0)then WriteLn(' Solved '+IntToStr(boxes)+' box[es].'); if(logs>0)then WriteLn(' Logged in '+IntToStr(logs)+' time[s].'); if(foresters>0)then WriteLn(' Solved '+IntToStr(foresters)+' forester[s].'); if(frogs>0)then WriteLn(' Solved '+IntToStr(foresters)+' frog[s].'); if(doctors>0)then WriteLn(' Solved '+IntToStr(doctors)+' doctor[s].'); if(certers>0)then Writeln(' Solved '+IntToStr(certers)+' certer[s].'); writeln('<================================================>'); Report2:=GetSystemTime; end; end; end; procedure FindRandoms; begin FindBox; FindNormalRandoms; AntiBan; FindDoctor; if(not(FindAxe))then NoAxe:=true; if(FindFight)then begin if(Location=1)then RunAwayDirection('S'); if(Location=2)then RunAwayDirection('N'); Wait(5000+random(1000)); RunBack; end; end; procedure SetColors; begin TreeMapColor:=MMTreeColor; TreeColor:=MSTreeColor; BankColor:=MMBankColor; end; //=========================Color Finding Procedures===========================\\ procedure FindTreeColor; var c:integer; begin repeat c:=c+1; if(FindObj('Chop',1849400,10))then begin if(FindColorTolerance(x,y,1849400,x-30,y-30,x+30,y+30,10))then begin TreeColor:=GetColor(x,y); break; end; end; until(c>10)or(TreeColor>0) if(TreeColor>0)then begin writeln('TreeColor: '+inttostr(TreeColor)); end else begin WriteLn('Could not find tree color, please stand next to a tree and '+ 'make sure the tree spot symbol is visible in the minimap, then'+ ' run the script again'); TerminateScript; end; end; procedure FindMapTreeColor; var MMTreeBmp,c:integer; acc,angle:Extended; begin if(Location=1)then begin MMTreeBmp := BitmapFromString(8, 8, 'z78DAA5CF310AC0300C43D12BC591B1' + 'BD266DEE7FA586AA83C150285DDEA2BF28D41D2D92DD0CB2AA310' + '3E86C64E99441B922ECE8C8B2CF25AD65F67FAF4D4D90AD7DB88F' + 'FDE516032A4EF7BB8593D6F2BD7FFCD85F763D5379'); FindDeformedBitmapToleranceRotationIn(MMTreeBmp,x,y,582,37,700,117,70,0,acc,PI/10,0,2*PI,angle); repeat c:=c+5; if(FindColorTolerance(x,y,2321464,x-10,y-10,x+10,y+10,c))then TreeMapColor:=GetColor(x,y); until(TreeMapColor>0)or(c>70); end; if(Location=2)then FindSymbolColorIfNeeded('rare trees',true,TreeMapColor); if(TreeMapColor>0)then begin WriteLn('TreeMapColor: '+inttostr(TreeMapColor)); end else begin WriteLn('Could not find tree color, please stand next to a tree and '+ 'make sure the tree spot symbol is visible in the minimap, then'+ ' run the script again'); TerminateScript; end; end; //========================Map Walking procedures==============================\\ procedure ToTrees; begin RoadWalk(TreeMapColor,'S'); FlagAtColor(TreeMapColor); end; procedure ToBank; begin if(not(FindMMColor(BankColor)))then begin RoadWalk(TreeMapColor,'N'); Flag; end; if(Location=1)then ToBankers(BankColor,5,0); if(Location=2)then ToBankers(BankColor,-5,0); FlagAtColor(BankColor); end; //========================Main Screen Procedures==============================\\ procedure Bank; begin if(FindColor(x,y,BankColor,608,43,688,123))then begin FindBox; if(NoAxe=true)and(EquipAxe=true)then begin GameTab(5); Mouse(593,303,r,r,true); Wait(1000+random(100)); GameTab(4); end; OpenBank; if(BankScreen)then begin if(NoAxe=true)then begin ClickAllItemsColorWait('All',65536,1000+Random(100)); Withdraw(1,1,1); end else begin if(EquipAxe=false)then Deposit(2,28,2); if(EquipAxe=true)then ClickAllItemsColorWait('All',65536,1000+Random(100)); end; if(NoAxe=true)and(EquipAxe=true)then begin FindAxeHeadColor; ClickItemColor(AxeHeadColor,true); end; Banks:=Banks+1; NoAxe:=false; ProgressReport; end; CloseWindow; end; end; procedure ChopTree; var SysTime:integer; begin if(FindObj('Chop',TreeColor,0))then begin Mouse(x,y,r,r,false); if(not(FindColor(x,y,65535,x,y,x+100,y+50)))then begin ChooseOption('Chop'); Flag; Wait(1000+random(100)); MarkTime(SysTime); FindEnt(TreeColor); repeat FindRandoms; if(not(Option('Chop')))then Break; FindEnt(TreeColor); Wait(1000+random(100)); until(TimeFromMark(SysTime)>MaxWait*1000)or(InventoryFull) end else begin ChooseOption('Cancel'); FindEnt(TreeColor); end; end; end; procedure LoadBmps; begin TinderBox := BitmapFromString(30, 8, 'z78DABD946B8E83300C84' + 'AF94871D7B7E1A02F73FD2BA71B44AB5546DD5DD65A41102E47C3' + '8E33091D58DC31B752AE976659C20D770CB6868775E21900B6700' + '3ABD6183CDFBF1B615AA09AF3858CDD595B46A93DDD58584828D1' + '7E67872B1EEEA8A8E7D3A70A03FF1F1E51BB4A2BB6E7A2ABB540E' + 'E99A455DD2CE764CE6A5B77395CD12CEE9BB65D707FE06ADEAA11' + 'DF906E8D445F3ECF026554A4B6C6CC119BE2523A3BFF0D7930043' + 'D21345E11ACC9187C67C70F79BEADF2ECCFFD3C987B43BB22B321' + 'CA98026392315DC595882B3A6922214DFA978E09F503DA1ED28AE' + '48457438E6AE8A89458757DA704F33559DE43159317DE37C98356' + '3D746E55FA38D9A713AADCC63EEDADEA8D14FDA98BEBB193CACB8' + '62DF97A9BFF88BD8CD37FF62A59DD5A2CE382BE6F48D545CD02EE' + '7DB171D6738D8'); LogBmp := BitmapFromString(23, 6, 'z78DA9D914B0EC3200C44AFE43F781' + '928B9FF918A7017AE12AAA82C6681C6330F03300F1A89A1DB9081' + 'BD9022F6AA56785432E15E4E236EA51B4CADFA622FAA8DCB97C67' + 'D78B2E6D99460A71A8B142624580CA1D6A4616FECA27A9C0E4A37' + '24579E6B7B762EBD4958E44162AEC8904982A1A1A3F217C96E339' + '7DEF06C35E7C4ECE289760602821DC974329EB59A0BE49C6DCB13' + '5D6941123BF993E467FE739EFC47F95F76241F1ED732790EEB829' + 'FC6ACCFB7914962272A83061B19F87C74477B03BE82B29E'); end; //===========================================Form=============================\\ procedure ShowFormModal; begin frmDesign.ShowModal; end; procedure ShowMoreModal; begin frmMore.ShowModal; end; procedure SafeShowForm; var v: TVariantArray; begin setarraylength(V, 0); ThreadSafeCall('InitForm', v); setarraylength(V, 0); ThreadSafeCall('ShowFormModal', v); end; procedure SafeMore; var v: TVariantArray; begin setarraylength(V, 0); ThreadSafeCall('InitMore', v); end; procedure Start(sender: TObject); begin frmDesign.Caption:= frmDesign.Caption + '.'; frmDesign.ModalResult:= mrOk; StartScript:=true; end; procedure More(sender: TObject); var v: TVariantArray; begin SafeMore; setarraylength(V, 0); ThreadSafeCall('ShowMoreModal', v); end; procedure SaveOptions; begin LogsOut:=cbLogsOut.State; Chats:=cbChats.State; ScarScape:=cbScarScape.State; Username:= edtUsername.Text; Password:= edtPassword.Text; if(Username='')or(Password='')then begin Username:='No Username'; Password:='No Password'; end; case cboxLocation.Text of 'Draynor (Willow)': Location:=1; 'Edgeville (Yew)': Location:=2; end; end; procedure Save(sender: TObject); begin frmMore.Caption:= frmMore.Caption + '.'; frmMore.ModalResult:= mrOk; SaveOptions; end; procedure Donate(sender: TObject); begin OpenWebPage('http://www.stupidscripts.com'); end; procedure InitForm; begin frmDesign := CreateForm; frmDesign.Left := 359; frmDesign.Top := 225; frmDesign.Width := 258; frmDesign.Height := 204; frmDesign.Caption := 'StupidChopperBanker'; frmDesign.Color := clWhite; frmDesign.Font.Color := clWindowText; frmDesign.Font.Height := -11; frmDesign.Font.Name := 'MS Sans Serif'; frmDesign.Font.Style := []; frmDesign.Visible := False; frmDesign.PixelsPerInch := 96; labPassword := TLabel.Create(frmDesign); labPassword.Parent := frmDesign; labPassword.Left := 96; labPassword.Top := 44; labPassword.Width := 46; labPassword.Height := 13; labPassword.Caption := 'Password'; labUsername := TLabel.Create(frmDesign); labUsername.Parent := frmDesign; labUsername.Left := 96; labUsername.Top := 6; labUsername.Width := 48; labUsername.Height := 13; labUsername.Caption := 'Username'; labLocation := TLabel.Create(frmDesign); labLocation.Parent := frmDesign; labLocation.Left := 96; labLocation.Top := 80; labLocation.Width := 44; labLocation.Height := 13; labLocation.Caption := 'Location'; cbScarScape := TCheckBox.Create(frmMore); cbScarScape.Parent := frmDesign; cbScarScape.Left := 88; cbScarScape.Top := 151; cbScarScape.Width := 80; cbScarScape.Height := 17; cbScarScape.Hint := 'Check if you are using ScarScape.'; cbScarScape.ShowHint := True; cbScarScape.Caption := 'ScarScape?'; if(ScarScape)then begin cbScarScape.Checked := True; cbScarScape.State := cbChecked; end; edtUsername := TEdit.Create(frmDesign); edtUsername.Parent := frmDesign; edtUsername.Left := 64; edtUsername.Top := 20; edtUsername.Width := 121; edtUsername.Height := 21; edtUsername.TabOrder := 1; edtUsername.Text := Username; edtPassword := TEdit.Create(frmDesign); edtPassword.Parent := frmDesign; edtPassword.Left := 64; edtPassword.Top := 58; edtPassword.Width := 121; edtPassword.Height := 21; edtPassword.PasswordChar := '*'; edtPassword.Text := Password; bMoreOptions := TButton.Create(frmDesign); bMoreOptions.Parent := frmDesign; bMoreOptions.Left := 178; bMoreOptions.Top := 151; bMoreOptions.Width := 70; bMoreOptions.Height := 17; bMoreOptions.Caption := 'More Options'; bMoreOptions.OnClick:= @More; cboxLocation := TComboBox.Create(frmDesign); cboxLocation.Parent := frmDesign; cboxLocation.Left := 64; cboxLocation.Top := 94; cboxLocation.Width := 121; cboxLocation.Height := 21; cboxLocation.ItemHeight := 13; cboxLocation.Text := 'Draynor (Willow)'; cboxLocation.Items.Add('Draynor (Willow)'); cboxLocation.Items.Add('Edgeville (Yew)'); bStart := TButton.Create(frmDesign); bStart.Parent := frmDesign; bStart.Left := 87; bStart.Top := 121; bStart.Width := 75; bStart.Height := 25; bStart.Caption := 'Start'; bStart.TabOrder := 5; bStart.OnClick:= @Start; bDonate := TButton.Create(frmDesign); bDonate.Parent := frmDesign; bDonate.Left := 1; bDonate.Top := 144; bDonate.Width := 75; bDonate.Height := 25; bDonate.Caption := 'Donate Plz'; bDonate.TabOrder := 13; bDonate.OnClick:= @Donate; end; procedure InitMore; begin frmMore := CreateForm; frmMore.Left := 288; frmMore.Top := 161; frmMore.Width := 294; frmMore.Height := 108; frmMore.Caption := 'More Options'; frmMore.Color := clWhite; frmMore.Font.Color := clWindowText; frmMore.Font.Height := -11; frmMore.Font.Name := 'MS Sans Serif'; frmMore.Font.Style := []; frmMore.Visible := False; frmMore.PixelsPerInch := 96; labMaxWait := TLabel.Create(frmMore); labMaxWait.Parent := frmMore; labMaxWait.Left := 5; labMaxWait.Top := 7; labMaxWait.Width := 196; labMaxWait.Height := 13; labMaxWait.Caption := 'Maximum time to wait while cuting a tree:'; labMaxWait2 := TLabel.Create(frmMore); labMaxWait2.Parent := frmMore; labMaxWait2.Left := 243; labMaxWait2.Top := 10; labMaxWait2.Width := 40; labMaxWait2.Height := 13; labMaxWait2.Caption := 'seconds'; edtMaxWait := TEdit.Create(frmMore); edtMaxWait.Parent := frmMore; edtMaxWait.Left := 204; edtMaxWait.Top := 5; edtMaxWait.Width := 38; edtMaxWait.Height := 21; edtMaxWait.MaxLength := 3; edtMaxWait.TabOrder := 9; edtMaxWait.Text := inttostr(MaxWait); cbLogsOut := TCheckBox.Create(frmMore); cbLogsOut.Parent := frmMore; cbLogsOut.Left := 5; cbLogsOut.Top := 22; cbLogsOut.Width := 66; cbLogsOut.Height := 17; cbLogsOut.Hint := 'If you want to log out about every 3 hours for anti-ban.'; cbLogsOut.Caption := 'Logs out?'; cbLogsOut.ParentShowHint := False; cbLogsOut.ShowHint := True; cbLogsOut.TabOrder := 10; if(LogsOut)then begin cbLogsOut.Checked := True; cbLogsOut.State := cbChecked; end; cbChats := TCheckBox.Create(frmMore); cbChats.Parent := frmMore; cbChats.Left := 5; cbChats.Top := 38; cbChats.Width := 54; cbChats.Height := 17; cbChats.Hint := 'If you want to chat random prashes every so often for anti-ban.'; cbChats.Caption := 'Chats?'; cbChats.ParentShowHint := False; cbChats.ShowHint := True; cbChats.TabOrder := 11; if(Chats)then begin cbChats.Checked := True; cbChats.State := cbChecked; end; cbRotates := TCheckBox.Create(frmMore); cbRotates.Parent := frmMore; cbRotates.Left := 78; cbRotates.Top := 22; cbRotates.Width := 97; cbRotates.Height := 17; cbRotates.Hint := 'If you want to randomly rotate the camera every so often for ant' + 'i-ban.'; cbRotates.ShowHint := True; cbRotates.Caption := 'Rotates?'; cbRotates.TabOrder := 15; if(Rotates)then begin cbRotates.Checked := True; cbRotates.State := cbChecked; end; cbEquipAxe := TCheckBox.Create(frmMore); cbEquipAxe.Parent := frmMore; cbEquipAxe.Left := 5; cbEquipAxe.Top := 54; cbEquipAxe.Width := 97; cbEquipAxe.Height := 17; cbEquipAxe.Caption := 'Equip axe?'; cbEquipAxe.Hint :='Check if you are able and want to equip your pick.'; cbEquipAxe.ShowHint := True; cbEquipAxe.TabOrder := 14; if(EquipAxe)then begin cbEquipAxe.Checked := True; cbEquipAxe.State := cbChecked; end; bSave := TButton.Create(frmMore); bSave.Parent := frmMore; bSave.Left := 227; bSave.Top := 57; bSave.Width := 57; bSave.Height := 15; bSave.Caption := 'Save'; bSave.TabOrder := 12; bSave.OnClick:= @Save; end; procedure StartForm; begin if(UseForm)then begin SafeMore; SafeShowForm; if(StartScript=false)then TerminateScript; SaveOptions; ActivateClient; Wait(1000+random(500)); end; end; //======================================Main Line=============================\\ begin SetupSSI; Setup; StartForm; SetColors; LoadBmps; FindSymbolColorIfNeeded('Bank',true,BankColor); if(FindAxeHeadColor)then begin FindMapTreeColor; RoadWalk(TreeMapColor,'S'); FindTreeColor; repeat SetRun(true); MarkTime(Mark); repeat FindRandoms; ChopTree; until(InventoryFull)or(NoAxe=true)or(TimeFromMark(Mark)>1800000) SetRun(false); ToBank; Bank; ToTrees; until(false) end; end.