The reflection include IMO really hitting the bricks. Anyway, I'm going to wait for a lape include before I do anywork on scripting.
The reflection include IMO really hitting the bricks. Anyway, I'm going to wait for a lape include before I do anywork on scripting.
Last edited by Kyle; 10-12-2014 at 05:18 AM.
“The long-lived and those who will die soonest lose the same thing. The present is all that they can give up, since that is all you have, and what you do not have, you cannot lose.” - Marcus Aurelius
Well first of all, its in pascalScript, and the latest version of simba discards that. So an update is indeed needed.
I didn't mind the late hook updates. Honestly I just manually added in the updated hooks from rs-hacking myself.
Seeing that pascalScript is being discarded, its very discouraging if any scripting being done in pascalScript will have to be rewritten.
I'm not saying that the include is bad, but saying its becoming outdated.
You may want to take another look at the latest simba, as of course pascal script is supported. I would never consider moving our include over to lape, when there isn't a official SRL include that is compatible with it. Not sure where you got the impression that they stopped supporting it. They wouldn't even think about doing that when there is still a official include that requires it!
“The long-lived and those who will die soonest lose the same thing. The present is all that they can give up, since that is all you have, and what you do not have, you cannot lose.” - Marcus Aurelius
To make it antiban more often, do i set the number higher or lower?
Thanks.
[Error] C:\Users\shawn\Downloads\[SRL-OSR][Reflection][v1.2] ineedbots AIO Woodcutter.simba(49:10): Unknown identifier 'R_GetTileGlobal' at line 50
Compiling failed. :O? anyone can help me out?
For some reason, whenever I try to run the script, it says, Fatal Error: Unable to spawn a SMART client do you know what the problem could be?
Last edited by joester308; 11-04-2014 at 03:19 AM.
seers both magic tree scripts are broken and do not work
I used this one time and got banned![]()
Code:program treeCutter; {$DEFINE SMART} {$I SRL-OSR/SRL.Simba} {$I SRL-OSR/SRL/misc/al_functions.simba} {$I SRL-OSR/SRL/Reflection/Reflection.simba} {$I SRL-OSR/SRL/misc/SmartGraphics.simba} const Version = 1.2; VersionPage = 'http://pastebin.com/raw.php?i=yH94SN3X'; PicturePage = 'http://pastebin.com/raw.php?i=mJtA7u8d'; ScriptPage = 'http://pastebin.com/raw.php?i=F1FAurL5'; ForumPage = 'https://villavu.com/forum/showthread.php?t=100300'; //Feel free to use code, GIVE CREDIT WHERE DUE! -ineedbot type R_TTreeObject = record Tile : TPoint; AliveObjectID, DeadObjectID : integer; Name:string; Index:integer; end; R_TTreeObjectArray = array of R_TTreeObject; function R_MakeTTreeObject(Loc:TPoint;_AliveObjectID,_DeadObjectID:integer;_name:string;_index:integer):R_TTreeObject; begin with Result do begin Tile := Loc; AliveObjectID := _AliveObjectID; DeadObjectID := _DeadObjectID; Name := _name; Index := _index; end; end; function R_MakeNullTTreeObject:R_TTreeObject; begin result := R_MakeTTreeObject(Point(-1, -1), -1, -1, '', -1); end; function R_IsValidTTreeObject(tree:R_TTreeObject):boolean; begin result := false; if (tree.tile <> Point(-1, -1)) then result := true; end; function R_getClosestTTreeObject(_array:R_TTreeObjectArray):R_TTreeObject; var i:integer; loc:TPoint; begin result := R_MakeNullTTreeObject; loc := R_GetTileGlobal; for i:=0 to high(_array) do begin if(R_IsValidTTreeObject(result))then begin if(R_DistanceFromTile(_array[i].tile) < R_DistanceFromTile(result.tile))then begin result := _array[i]; end; end else begin result := _array[i]; end; end; end; function R_getAliveTTreeObjects(_array:R_TTreeObjectArray):R_TTreeObjectArray; var i, j:integer; loc:TPoint; TempObject:TRSObject; begin loc := R_GetTileGlobal; for i:=0 to high(_array) do begin TempObject := R_GetObjectAt(0, _array[i].Tile); if(TempObject.ID = _array[i].AliveObjectID)then begin inc(j); SetLength(result, j); result[high(result)] := _array[i]; end; end; if(high(result) < 0)then result := [R_MakeNullTTreeObject]; end; function R_getClosestAliveTTreeObject(_array:R_TTreeObjectArray):R_TTreeObject; var i:integer; loc:TPoint; TempObject:TRSObject; begin result := R_MakeNullTTreeObject; loc := R_GetTileGlobal; for i:=0 to high(_array) do begin TempObject := R_GetObjectAt(0, _array[i].Tile); if(TempObject.ID = _array[i].AliveObjectID)then begin if(R_IsValidTTreeObject(result))then begin if(R_DistanceFromTile(_array[i].tile) < R_DistanceFromTile(result.tile))then begin result := _array[i]; end; end else begin result := _array[i]; end; end; end; end; function R_getTTreeObjectWithIndex(_index:integer; _array:R_TTreeObjectArray):R_TTreeObject; var i:integer; begin result := R_MakeNullTTreeObject; for i:=0 to high(_array) do begin if(_array[i].Index = _index)then begin result := _array[i]; exit; end; end; end; function R_isAliveTTreeObject(TTree:R_TTreeObject):boolean; var TempObject : TRSObject; begin TempObject:=R_GetObjectAt(0, TTree.Tile); result := false; if(TempObject.ID = TTree.AliveObjectID)then begin result := true; end; end; function R_isDeadTTreeObject(TTree:R_TTreeObject):boolean; var TempObject : TRSObject; begin TempObject:=R_GetObjectAt(0, TTree.Tile); result := false; if(TempObject.ID = TTree.DeadObjectID)then begin result := true; end; end; function R_getNextTTreeObject(_array:R_TTreeObjectArray; PTree:R_TTreeObject):R_TTreeObject; var CurrentTree : R_TTreeObject; begin CurrentTree := R_getClosestTTreeObject(_array); result := CurrentTree; if (high(_array) < 1) or not R_IsValidTTreeObject(PTree) then exit; if(CurrentTree.Index < PTree.Index) or (CurrentTree.Index = high(_array)) then begin result := R_getTTreeObjectWithIndex(CurrentTree.Index-1, _array); end else begin result := R_getTTreeObjectWithIndex(CurrentTree.Index+1, _array); end; end; function R_ConvertTRSObjectToR_TTreeObject(Obj:TRSObject):R_TTreeObject; begin with Result do begin Tile := Obj.Tile; Name := ''; DeadObjectID := 0; AliveObjectID := Obj.ID; Index := 0; end; end; var LocationTreeObjects : R_TTreeObjectArray; PreviousTree : R_TTreeObject; Status, ProggieLocation : string; LogsChopped, LogID, EnergyToTurnOnRun, ShopDTM, AntiBanOften, HowMuchToChop, Nests, StartingFletchXP, MoneyID, TypeOfJob, StartingWoodXP, ShaftsID, StartingWoodLevel, LastXPXPCheck, LastXPCheck, KnifeID, FletchID : integer; AnimationIDs, AxeIDs, NestIDs, customIDs : array of integer; PathToBank, PathToTrees, customLocations, customPath1, customPath2, customPath3 : TPointArray; ForceDisableBank, MouseKeys, CanBank, Updating, customBank, FarTrees, started, UseDAxeSpec, PowerChop, Fletch : boolean; BankLocation, TreesLocation : TPoint; MainForm:TForm; UsernameBox,PasswordBox,PinBox,WorldBox,RunBox,AntibanBox,ChopBox, CurVerBox, LatVerBox: TEdit; BGImage: TImage; PlayButton,SaveButton,LoadButton, InfoButton, UpdateButton: TButton; MouseKeysBox, BankBox, SpecBox: TCheckBox; CurVerLabel, LatVerLabel : TLabel; JobBox, LocationBox: TComboBox; bmps0: TMufasaBitmap; bmp0: TBitmap; procedure doUpdate; //thanks shuttleu var NetworkVersion : extended; NewScript, FileNew : string; ThisFile : integer; begin sleep(5000); try NetworkVersion := strToFloat(GetPage(VersionPage)); except begin writeln('Failed get update version from: '+VersionPage); exit; end; end; writeln('Local Version: '+FloatToStr(Version)+' Network Version: '+FloatToStr(NetworkVersion)); if(Version < NetworkVersion)then begin writeln('Getting script from: '+ScriptPage); try NewScript := GetPage(ScriptPage); except begin writeln('Failed to get script from: '+ScriptPage); exit; end; end; FileNew := ScriptPath + '[SRL-OSR][Reflection][v'+FloatToStr(NetworkVersion)+'] ineedbots AIO Woodcutter.simba'; writeln('Writing script from '+ScriptPage+' to '+FileNew); ThisFile := Rewritefile(FileNew, true); try WriteFileString(ThisFile, NewScript); except begin writeLn('Failed writing to: '+FileNew); CloseFile(ThisFile); exit; end; end; CloseFile(ThisFile); writeLn('Successfully downloaded new script to ' + FileNew + '. Please open this script.'); end else begin if(Version = NetworkVersion)then begin writeln('You are already up to date.'); end else begin writeln('You have a higher version than network?'); end; end; end; procedure OnChange(Sender: TObject); begin JobBox.TEXT := 'Trees'; JobBox.ITEMINDEX := -1; JobBox.ITEMS.Clear; case LocationBox.ITEMINDEX of 0:begin //draynor JobBox.ITEMS.Add('Oaks'); JobBox.ITEMS.Add('Willows'); JobBox.ITEMS.Add('Yews'); end; 1:begin //seers JobBox.ITEMS.Add('Willows'); JobBox.ITEMS.Add('Maples'); JobBox.ITEMS.Add('Yews'); JobBox.ITEMS.Add('Magics'); JobBox.ITEMS.Add('Magics (2)'); end; 2:begin //catherby JobBox.ITEMS.Add('Willows'); JobBox.ITEMS.Add('Yews'); end; 3:begin //varrock JobBox.ITEMS.Add('Oaks (west)'); JobBox.ITEMS.Add('Yews (palace)'); end; 4:begin //Falador JobBox.ITEMS.Add('Oaks'); JobBox.ITEMS.Add('Yews'); end; 5:begin //Rimmington JobBox.ITEMS.Add('Willows (p.s.)'); JobBox.ITEMS.Add('Yews'); end; 6:begin //tree gnome village JobBox.ITEMS.Add('Yews'); JobBox.ITEMS.Add('Magics'); end; 7:begin //lumbridge JobBox.ITEMS.Add('Oaks (sell)'); JobBox.ITEMS.Add('Yews'); JobBox.ITEMS.Add('Willows (sell)'); JobBox.ITEMS.Add('Yews (sell)'); end; 8:begin //edgeville JobBox.ITEMS.Add('Willows'); JobBox.ITEMS.Add('Yews'); end; 9:begin //powerchop JobBox.ITEMS.Add('Normal Trees'); JobBox.ITEMS.Add('Oaks'); JobBox.ITEMS.Add('Willows'); end; end; end; procedure YourClickProcedure(Sender: TObject); begin if(sender = PlayButton)then begin writeln('Starting...'); MainForm.CLOSE; started := true; end; if(sender = LoadButton)then begin if(FileExists(ScriptPath+'ineedbots AIO Woodcutter user details.ini'))then begin writeln('Loading...'); UserNameBox.Text := ReadINI('username', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); PasswordBox.Text := ReadINI('password', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); PinBox.Text := ReadINI('pin', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); ChopBox.Text := ReadINI('chop', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); LocationBox.ITEMINDEX := strToInt(ReadINI('location', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini')); OnChange(LocationBox); JobBox.ITEMINDEX := strToInt(ReadINI('trees', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini')); AntiBanBox.TEXT := ReadINI('antiban', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); runBox.TEXT := ReadINI('run', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); WorldBox.TEXT := ReadINI('world', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini'); BankBox.CHECKED := strToBool(ReadINI('bank', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini')); SpecBox.Checked := strToBool(ReadINI('spec', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini')); MouseKeysBox.CHECKED := strToBool(ReadINI('mouse', '0', ScriptPath+'ineedbots AIO Woodcutter user details.ini')); end else begin writeln(ScriptPath+'ineedbots AIO Woodcutter user details.ini'+' cannot be found...'); end; end; if(sender = SaveButton)then begin writeln('Saving to '+ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('username', '0', UserNameBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('password', '0', passwordBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('pin', '0', PinBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('chop', '0', ChopBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('trees', '0', IntToStr(JobBox.ITEMINDEX), ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('location', '0', IntToStr(LocationBox.ITEMINDEX), ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('antiban', '0', AntibanBox.TEXT, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('run', '0', RunBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('world', '0', WorldBox.Text, ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('spec', '0', boolToStr(SpecBox.CHECKED), ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('bank', '0', boolToStr(BankBox.CHECKED), ScriptPath+'ineedbots AIO Woodcutter user details.ini'); writeINI('mouse', '0', boolToStr(MouseKeysBox.CHECKED), ScriptPath+'ineedbots AIO Woodcutter user details.ini'); end; if(sender = InfoButton)then begin ShowMessage('Script will stop once it banked/sold/dropped more than this value, make it -1 for infinite.'); end; if(sender = UpdateButton)then begin writeln('Attempting to update...'); MainForm.CLOSE; Updating := true; end; end; procedure OnlyPostiveNumbers(Sender: TObject; var Key:Char); begin case toStr(key) of #8, '0'..'9':begin end; else begin Key := #0; end; end; end; procedure OnlyNumbers(Sender: TObject; var Key: Char); begin case toStr(key) of #8, '0'..'9', '-':begin if(toStr(key) = '-')then begin if(ChopBox.SELSTART <> 0)then begin Key := #0; end; end; end; else begin Key := #0; end; end; end; procedure NoKeys(Sender: TObject; var Key: Char); begin Key := #0; end; procedure InitForm; var PictureString, VersionString : string; begin //MainForm\\ MainForm:=TForm.Create(nil); with MainForm do begin Caption:='ineedbots AIO Woodcutter'; Left:=213; Top:=324; Width:=512; Height:=333; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; BORDERSTYLE:=bsSingle; Font.Size:=0; end; //UsernameBox\\ UsernameBox:=TEdit.Create(MainForm); with UsernameBox do begin Parent:=MainForm; Text:='Username or eMail'; Left:=3; Top:=37; Width:=257; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; //UsernameBox.MaxLength:=x; //UsernameBox.PasswordChar:=*; end; //PasswordBox\\ PasswordBox:=TEdit.Create(MainForm); with PasswordBox do begin Parent:=MainForm; Text:='Password'; Left:=270; Top:=37; Width:=234; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; MaxLength:=20; PasswordChar:='*'; end; //PinBox\\ PinBox:=TEdit.Create(MainForm); with PinBox do begin Parent:=MainForm; Text:=''; Left:=47; Top:=82; Width:=80; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@OnlyPostiveNumbers; Font.Size:=0; MaxLength:=4; PasswordChar:='*'; end; //WorldBox\\ WorldBox:=TEdit.Create(MainForm); with WorldBox do begin Parent:=MainForm; Text:=''; Left:=67; Top:=116; Width:=80; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@OnlyPostiveNumbers; Font.Size:=0; MaxLength:=2; //WorldBox.PasswordChar:=*; end; //RunBox\\ RunBox:=TEdit.Create(MainForm); with RunBox do begin Parent:=MainForm; Text:='50'; Left:=118; Top:=152; Width:=80; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@OnlyPostiveNumbers; Font.Size:=0; MaxLength:=3; //RunBox.PasswordChar:=*; end; //SpecBox\\ SpecBox:=TCheckBox.Create(MainForm); with SpecBox do begin Parent:=MainForm; Caption:='Use DAxe Spec?'; Checked:=false; Left:=350; Top:=270; Width:=64; Height:=19; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; end; //AntibanBox\\ AntibanBox:=TEdit.Create(MainForm); with AntibanBox do begin Parent:=MainForm; Text:='7500'; Left:=134; Top:=227; Width:=80; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@OnlyPostiveNumbers; Font.Size:=0; MaxLength:=6; //AntibanBox.PasswordChar:=*; end; //ChopBox\\ ChopBox:=TEdit.Create(MainForm); with ChopBox do begin Parent:=MainForm; Text:='-1'; Left:=167; Top:=188; Width:=80; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@OnlyNumbers; Font.Size:=0; MaxLength:=6; //ChopBox.PasswordChar:=*; end; //BGImage\\ BGImage:=TImage.Create(MainForm); with BGImage do begin Parent:=MainForm; Left:=0; Top:=0; Width:=512; Height:=333; try PictureString := GetPage(PicturePage); except begin writeln('Failed to get picture string from: '+PicturePage); end; end; bmps0:=GetMufasaBitmap(BitmapFromString(512,333,PictureString)); bmp0:=bmps0.ToTBitmap; Picture.Bitmap.handle:=bmp0.handle; end; //PlayButton\\ PlayButton:=TButton.Create(MainForm); with PlayButton do begin Parent:=MainForm; Caption:='Play'; Left:=432; Top:=302; Width:=75; Height:=25; OnClick:=@YourClickProcedure; //Font.Name:=default; Font.Color:=clDefault; Font.Size:=0; end; //InfoButton\\ InfoButton:=TButton.Create(MainForm); with InfoButton do begin Parent:=MainForm; Caption:='?'; Left:=257; Top:=187; Width:=17; Height:=25; OnClick:=@YourClickProcedure; //Font.Name:=default; Font.Color:=clDefault; Font.Size:=0; end; //SaveButton\\ SaveButton:=TButton.Create(MainForm); with SaveButton do begin Parent:=MainForm; Caption:='Save'; Left:=87; Top:=302; Width:=75; Height:=25; OnClick:=@YourClickProcedure; //Font.Name:=default; Font.Color:=clDefault; Font.Size:=0; end; //LoadButton\\ LoadButton:=TButton.Create(MainForm); with LoadButton do begin Parent:=MainForm; Caption:='Load'; Left:=5; Top:=301; Width:=75; Height:=25; OnClick:=@YourClickProcedure; //Font.Name:=default; Font.Color:=clDefault; Font.Size:=0; end; //UpdateButton\\ UpdateButton:=TButton.Create(MainForm); with UpdateButton do begin Parent:=MainForm; Caption:='Update'; Left:=350; Top:=100; Width:=75; Height:=25; OnClick:=@YourClickProcedure; //Font.Name:=default; Font.Color:=clDefault; Font.Size:=0; end; CurVerLabel:=TLabel.Create(MainForm); with CurVerLabel do begin Parent:=MainForm; Caption:='Local Version:'; Left:=194; Top:=85; Width:=42; Height:=16; Font.Name:='Comic Sans MS'; Font.Color:=clAqua; Font.Size:=0; end; //CurVerBox\\ //i CurVerBox:=TEdit.Create(MainForm); with CurVerBox do begin Parent:=MainForm; Text:=toStr(version); Left:=300; Top:=85; Width:=40; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@NoKeys; Font.Size:=0; MaxLength:=6; //ChopBox.PasswordChar:=*; end; LatVerLabel:=TLabel.Create(MainForm); with LatVerLabel do begin Parent:=MainForm; Caption:='Network Version:'; Left:=170; Top:=120; Width:=42; Height:=16; Font.Name:='Comic Sans MS'; Font.Color:=clAqua; Font.Size:=0; end; //LatVerBox\\ LatVerBox:=TEdit.Create(MainForm); with LatVerBox do begin Parent:=MainForm; try VersionString := GetPage(VersionPage); except begin writeln('Failed getting version text from: '+VersionPage); end; end; Text:=VersionString; Left:=300; Top:=120; Width:=40; Height:=23; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; ONKEYPRESS:=@NoKeys; Font.Size:=0; MaxLength:=6; //ChopBox.PasswordChar:=*; end; //MouseKeysBox\\ MouseKeysBox:=TCheckBox.Create(MainForm); with MouseKeysBox do begin Parent:=MainForm; Caption:='Mouse Keys?'; Checked:=false; Left:=210; Top:=270; Width:=99; Height:=19; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; end; //BankBox\\ BankBox:=TCheckBox.Create(MainForm); with BankBox do begin Parent:=MainForm; Caption:='Force Disable Bank?'; Checked:=false; Left:=33; Top:=270; Width:=65; Height:=19; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; end; //JobBox\\ JobBox:=TComboBox.Create(MainForm); with JobBox do begin Parent:=MainForm; Left:=360; Top:=4; Width:=150; Height:=23; Caption:='Trees'; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; ONKEYPRESS:=@NoKeys; end; LocationBox:=TComboBox.Create(MainForm); with LocationBox do begin Parent:=MainForm; Left:=205; Top:=4; Width:=150; Height:=23; Caption:='Location'; //add your items here Items.Add('Draynor'); Items.Add('Seers'); Items.Add('Catherby'); Items.Add('Varrock'); Items.Add('Falador'); Items.Add('Rimmington'); Items.Add('Gnome Tree Village'); Items.Add('Lumbridge'); Items.Add('Edgeville'); Items.Add('Powerchop'); //End items OnChange:=@OnChange; Font.Name:='Comic Sans MS'; Font.Color:=clDefault; Font.Size:=0; ONKEYPRESS:=@NoKeys; end; end; procedure SafeInitForm; var v: TVariantArray; begin writeln('Starting form...'); setarraylength(V, 0); ThreadSafeCall('InitForm', v); started := false; Updating := false; end; procedure ShowFormModal; begin MainForm.ShowModal; end; procedure SafeShowFormModal; var v: TVariantArray; begin SetArrayLength(V, 0); ThreadSafeCall('ShowFormModal', v); FreeBitMap(0); end; procedure DeclarePlayers; var KeepThingsClean : integer; begin HowManyPlayers := 1; NumberOfPlayers(HowManyPlayers); CurrentPlayer := 0; Players[0].Name := UsernameBox.TEXT;//Username Players[0].Pass := PasswordBox.Text;//Password Players[0].Pin := PinBox.TEXT;//Bank Pin (if none,leave blank) Players[0].WorldInfo := [WorldBox.TEXT]; //Enter a desired world or leave blank for random Players[0].Active := true;//used for logging n stuff - ineedbot Players[0].Nick := 'Goau';//Short chunk of IGN//unused anymore... Players[0].Member := True;//Keep true Players[0].LampSkill := SKILL_Woodcutting; if(Players[0].WorldInfo[0] <> '') then begin SMART_World := Players[0].WorldInfo[0]; Players[0].WorldInfo := ['3'+WorldBox.Text]; end; case LocationBox.ITEMINDEX of 0:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=18;//draynor oaks 1:KeepThingsClean:=0;//dranor willows 2:KeepThingsClean:=1;//draynor yews end; end; 1:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=17; //seers willows 1:KeepThingsClean:=2; //seers maples 2:KeepThingsClean:=3; //seers yews 3:KeepThingsClean:=4; //seers magics 4:KeepThingsClean:=5; //seers magics(2) end; end; 2:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=16; //catherby willows 1:KeepThingsClean:=6; //catherby yews end; end; 3:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=12; //varrock west oaks 1:KeepThingsClean:=7; //varrock west yews end; end; 4:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=15; //falador oaks 1:KeepThingsClean:=8; //falador yews end; end; 5:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=14; //rimmington willows (port sarim) 1:KeepThingsClean:=9; //rimmington yews end; end; 6:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=19; //gnome yews 1:KeepThingsClean:=20; //gnome magics end; end; 7:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=21;//lumbridge oaks 1:KeepThingsClean:=24;//lumbridge yews 2:KeepThingsClean:=25;//lumbridge willows no fletch 3:KeepThingsClean:=26;//lumbridge yews sell end; end; 8:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=23;//edgeville willows 1:KeepThingsClean:=22;//edgeville yews end; end; 9:begin case JobBox.ITEMINDEX of 0:KeepThingsClean:=10;//powerchop trees 1:KeepThingsClean:=13; //powerchop oaks 2:KeepThingsClean:=11;//powerchop willows end; end; end; AntiBanOften := strToInt(AntiBanBox.Text); EnergyToTurnOnRun := strToInt(RunBox.Text); TypeOfJob := KeepThingsClean; HowMuchToChop := strToInt(ChopBox.Text); MouseKeys := MouseKeysBox.CHECKED; ForceDisableBank := BankBox.CHECKED; UseDAxeSpec := SpecBox.Checked; end; procedure DeclareVars; var i : integer; begin status := 'Setting up...'; StartingWoodXP := R_GetSkillExp(Skill_Woodcutting); StartingWoodLevel := R_GetMaxSkillLevel(Skill_Woodcutting); LastXPXPCheck := StartingWoodXP; StartingFletchXP := R_GetSkillExp(Skill_Fletching); Marktime(LastXPCheck); LogsChopped := 0; Nests := 0; for i:=0 to 1000 do begin if(not FileExists(ScriptPath+'ineedbots AIO Woodcutter proggy '+toStr(i)+'.png'))then begin ProggieLocation := ScriptPath+'ineedbots AIO Woodcutter proggy '+toStr(i)+'.png'; i:=1000; end; end; ShopDTM := DTMFromString('maQEAAHicE2RgYEgB4lggDgFiXyD2AmJnIHYD4iAgzgfiPCAuA+I6IK4F4iogzgDiJCBOBmJ9RgYGQyA2RsIgMW0gNgNiIyDWBWI9qJweVA7ENgViTSD+P0MejJGBh50xCg1Tg4xBcjDMD1RDKWakAsYAAFUXGnk='); AddOnTerminate('FreeDTMZ'); R_CombatRandoms := false; SRL_CombatRandoms := false; AnimationIDs := [879, 877, 875, 873, 871, 869, 867, 2846]; AxeIDs := [1353, 6739, 1359]; NestIDs := [5070, 5071, 5072, 5073, 5074, 5075, 7413, 11966]; PreviousTree := R_MakeNullTTreeObject; KnifeID := 946; FletchID := 1248; ShaftsID := 53; MoneyID := 996; BankLocation := Point(-1, -1); LocationTreeObjects := [R_MakeTTreeObject(Point(-1, -1), -1, -1, '', 0)]; PathToBank := [Point(-1, -1)]; PathToTrees := [Point(-1, -1)]; TreesLocation := Point(-1, -1); LogID := -1; CanBank := false; customBank := false; FarTrees := false; customIDs := [-1]; customLocations := [Point(-1, -1)]; customPath1 := [Point(-1, -1)]; customPath2 := [Point(-1, -1)]; customPath3 := [Point(-1, -1)]; PowerChop := false; Fletch := false; case TypeOfJob of 0:begin //draynor willows BankLocation := Point(3091, 3245); LocationTreeObjects := [R_MakeTTreeObject(Point(3084, 3237), 11763, 9471, 'Willow', 0), R_MakeTTreeObject(Point(3085, 3236), 11759, 9471, 'Willow', 1), R_MakeTTreeObject(Point(3088, 3235), 11755, 9711, 'Willow', 2), R_MakeTTreeObject(Point(3088, 3232), 11759, 9471, 'Willow', 3), R_MakeTTreeObject(Point(3088, 3228), 11761, 9471, 'Willow', 4)]; PathToBank := [Point(3086, 3237), Point(3087, 3242), Point(3087, 3247), Point(3092, 3247), Point(3093, 3244)]; PathToTrees := [Point(3093, 3244), Point(3089, 3247), Point(3087, 3242), Point(3086, 3237)]; TreesLocation := Point(3086, 3237); LogID := 1520; CanBank := true; end; 1:begin //draynor yews BankLocation := Point(3091, 3245); LocationTreeObjects := [R_MakeTTreeObject(Point(3147, 3255), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(3152, 3231), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(3166, 3220), 11758, 9714, 'Yew', 2), R_MakeTTreeObject(Point(3185, 3227), 11758, 9714, 'Yew', 3)]; PathToBank := [Point(3152, 3229), Point(3147, 3229), Point(3142, 3229), Point(3137, 3229), Point(3132, 3229), Point(3127, 3228), Point(3122, 3228), Point(3117, 3228), Point(3112, 3230), Point(3108, 3234), Point(3104, 3238), Point(3105, 3243), Point(3104, 3248), Point(3099, 3250), Point(3094, 3248), Point(3093, 3243)]; PathToTrees := [Point(3093, 3244), Point(3096, 3249), Point(3101, 3250), Point(3105, 3246), Point(3105, 3241), Point(3105, 3236), Point(3109, 3233), Point(3113, 3230), Point(3118, 3228), Point(3123, 3228), Point(3128, 3228), Point(3133, 3228), Point(3138, 3228), Point(3143, 3228), Point(3148, 3229)]; TreesLocation := Point(3152, 3231); LogID := 1516; CanBank := true; FarTrees := true; end; 2:begin //seers maples BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2721, 3502), 11762, 9712, 'Maple', 0), R_MakeTTreeObject(Point(2727, 3502), 11762, 9712, 'Maple', 1), R_MakeTTreeObject(Point(2730, 3502), 11762, 9712, 'Maple', 2), R_MakeTTreeObject(Point(2732, 3500), 11762, 9712, 'Maple', 3)]; PathToBank := [Point(2725, 3501), Point(2720, 3499), Point(2718, 3494), Point(2720, 3489), Point(2724, 3486), Point(2725, 3491)]; PathToTrees := [Point(2725, 3491), Point(2725, 3486), Point(2720, 3489), Point(2718, 3494), Point(2721, 3499), Point(2726, 3499)]; TreesLocation := Point(2728, 3500); LogID := 1518; CanBank := true; end; 3:begin //seers yews BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2715, 3460), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(2706, 3460), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(2706, 3465), 11758, 9714, 'Yew', 2)]; PathToBank := [Point(2714, 3462), Point(2718, 3465), Point(2719, 3470), Point(2723, 3474), Point(2725, 3479), Point(2724, 3484), Point(2725, 3489), Point(2725, 3491)]; PathToTrees := [Point(2726, 3491), Point(2726, 3486), Point(2727, 3481), Point(2726, 3476), Point(2724, 3471), Point(2723, 3466), Point(2718, 3463), Point(2714, 3462)]; TreesLocation := Point(2710, 3462); LogID := 1516; CanBank := true; end; 4:begin //seers magics BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2692, 3425), 11764, 9713, 'Magic', 0), R_MakeTTreeObject(Point(2691, 3428), 11764, 9713, 'Magic', 1), R_MakeTTreeObject(Point(2696, 3424), 11764, 9713, 'Magic', 2)]; PathToBank := [Point(2695, 3425), Point(2700, 3425), Point(2702, 3430), Point(2702, 3435), Point(2701, 3440), Point(2704, 3444), Point(2708, 3448), Point(2713, 3451), Point(2717, 3454), Point(2719, 3459), Point(2719, 3464), Point(2719, 3469), Point(2722, 3473), Point(2725, 3478), Point(2727, 3483), Point(2726, 3488), Point(2725, 3491)]; PathToTrees := [Point(2726, 3490), Point(2726, 3485), Point(2727, 3480), Point(2727, 3475), Point(2727, 3470), Point(2728, 3465), Point(2727, 3460), Point(2725, 3455), Point(2721, 3452), Point(2721, 3447), Point(2719, 3442), Point(2714, 3440), Point(2713, 3435), Point(2711, 3430), Point(2707, 3426), Point(2702, 3425), Point(2697, 3425), Point(2693, 3424)]; TreesLocation := Point(2693, 3425); LogID := 1513; CanBank := true; end; 5:begin //seers magics 2 BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2705, 3397), 11765, 9713, 'Magic', 0), R_MakeTTreeObject(Point(2705, 3399), 11765, 9713, 'Magic', 1), R_MakeTTreeObject(Point(2699, 3397), 11765, 9713, 'Magic', 2), R_MakeTTreeObject(Point(2699, 3399), 11765, 9713, 'Magic', 3)]; PathToBank := [Point(2701, 3396), Point(2704, 3392), Point(2709, 3392), Point(2714, 3393), Point(2714, 3398), Point(2716, 3403), Point(2715, 3408), Point(2715, 3413), Point(2714, 3418), Point(2714, 3423), Point(2713, 3428), Point(2713, 3433), Point(2713, 3438), Point(2710, 3442), Point(2712, 3447), Point(2717, 3449), Point(2720, 3453), Point(2720, 3458), Point(2720, 3463), Point(2720, 3468), Point(2722, 3473), Point(2725, 3478), Point(2727, 3483), Point(2726, 3488), Point(2726, 3491)]; PathToTrees := [Point(2725, 3491), Point(2726, 3486), Point(2727, 3481), Point(2726, 3476), Point(2724, 3471), Point(2723, 3466), Point(2723, 3461), Point(2719, 3457), Point(2716, 3453), Point(2713, 3448), Point(2710, 3444), Point(2710, 3439), Point(2711, 3434), Point(2713, 3429), Point(2713, 3424), Point(2713, 3419), Point(2715, 3414), Point(2715, 3409), Point(2716, 3404), Point(2716, 3399), Point(2715, 3394), Point(2710, 3393), Point(2705, 3392), Point(2701, 3395), Point(2702, 3397)]; TreesLocation := Point(2700, 3397); LogID := 1513; CanBank := true; end; 6:begin //catherby yews BankLocation := Point(2809, 3442); LocationTreeObjects := [R_MakeTTreeObject(Point(2758, 3434), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(2756, 3431), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(2761, 3432), 11758, 9714, 'Yew', 2), R_MakeTTreeObject(Point(2755, 3434), 11758, 9714, 'Yew', 3), R_MakeTTreeObject(Point(2760, 3428), 11758, 9714, 'Yew', 4), R_MakeTTreeObject(Point(2766, 3428), 11758, 9714, 'Yew', 5)]; PathToBank := [Point(2760, 3430), Point(2765, 3430), Point(2770, 3431), Point(2775, 3433), Point(2780, 3435), Point(2785, 3432), Point(2790, 3432), Point(2795, 3433), Point(2800, 3433), Point(2805, 3433), Point(2808, 3437), Point(2809, 3439)]; PathToTrees := [Point(2809, 3439), Point(2805, 3436), Point(2801, 3433), Point(2796, 3433), Point(2791, 3433), Point(2786, 3432), Point(2781, 3434), Point(2776, 3435), Point(2771, 3433), Point(2766, 3431), Point(2761, 3430), Point(2759, 3430)]; TreesLocation := Point(2758, 3432); LogID := 1516; CanBank := true; end; 7:begin //varrock west yews BankLocation := Point(3186, 3436); LocationTreeObjects := [R_MakeTTreeObject(Point(3205, 3504), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(3209, 3500), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(3222, 3503), 11758, 9714, 'Yew', 2)]; PathToBank := [Point(3201, 3503), Point(3197, 3500), Point(3195, 3495), Point(3195, 3490), Point(3195, 3485), Point(3195, 3480), Point(3194, 3475), Point(3194, 3470), Point(3195, 3465), Point(3197, 3460), Point(3198, 3455), Point(3203, 3454), Point(3205, 3449), Point(3208, 3445), Point(3211, 3441), Point(3212, 3436), Point(3208, 3432), Point(3204, 3428), Point(3199, 3430), Point(3194, 3430), Point(3189, 3430), Point(3184, 3431), Point(3184, 3436)]; PathToTrees := [Point(3184, 3436), Point(3184, 3431), Point(3189, 3430), Point(3194, 3430), Point(3199, 3430), Point(3204, 3428), Point(3208, 3432), Point(3212, 3436), Point(3211, 3441), Point(3208, 3445), Point(3205, 3449), Point(3203, 3454), Point(3198, 3455), Point(3197, 3460), Point(3195, 3465), Point(3194, 3470), Point(3194, 3475), Point(3195, 3480), Point(3195, 3485), Point(3195, 3490), Point(3195, 3495), Point(3197, 3500), Point(3201, 3503)]; TreesLocation := Point(3207, 3502); LogID := 1516; CanBank := true; end; 8:begin //falador yews BankLocation := Point(3012, 3354); LocationTreeObjects := [R_MakeTTreeObject(Point(2997, 3312), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(3020, 3316), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(3042, 3320), 11758, 9714, 'Yew', 2)]; PathToBank := [Point(3006, 3317), Point(3006, 3322), Point(3006, 3327), Point(3006, 3332), Point(3006, 3337), Point(3006, 3342), Point(3006, 3347), Point(3006, 3352), Point(3006, 3357), Point(3011, 3359), Point(3013, 3357)]; PathToTrees := [Point(3012, 3355), Point(3009, 3359), Point(3008, 3354), Point(3008, 3349), Point(3008, 3344), Point(3008, 3339), Point(3008, 3334), Point(3008, 3329), Point(3008, 3324), Point(3007, 3319), Point(3002, 3319), Point(2998, 3315), Point(2997, 3314)]; TreesLocation := Point(2997, 3314); LogID := 1516; CanBank := true; FarTrees := true; end; 9:begin //rimmington yews BankLocation := Point(3045, 3234); //'deposit' LocationTreeObjects := [R_MakeTTreeObject(Point(2936, 3230), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(2941, 3233), 11758, 9714, 'Yew', 1), R_MakeTTreeObject(Point(2934, 3234), 11758, 9714, 'Yew', 2), R_MakeTTreeObject(Point(2935, 3226), 11758, 9714, 'Yew', 3)]; PathToBank := [Point(2935, 3228), Point(2940, 3228), Point(2945, 3229), Point(2950, 3228), Point(2955, 3228), Point(2960, 3227), Point(2965, 3225), Point(2970, 3225), Point(2975, 3225), Point(2980, 3225), Point(2985, 3223), Point(2990, 3223), Point(2995, 3222), Point(3000, 3222), Point(3005, 3219), Point(3009, 3215), Point(3014, 3215), Point(3019, 3217), Point(3024, 3217), Point(3027, 3221), Point(3027, 3226), Point(3027, 3231), Point(3029, 3236), Point(3034, 3236), Point(3039, 3236), Point(3044, 3236), Point(3045, 3235)]; PathToTrees := [Point(3045, 3235), Point(3040, 3236), Point(3035, 3236), Point(3030, 3236), Point(3028, 3231), Point(3028, 3226), Point(3028, 3221), Point(3024, 3218), Point(3019, 3218), Point(3014, 3216), Point(3009, 3215), Point(3004, 3215), Point(2999, 3214), Point(2994, 3214), Point(2989, 3213), Point(2984, 3213), Point(2979, 3211), Point(2975, 3214), Point(2971, 3217), Point(2966, 3217), Point(2961, 3217), Point(2956, 3217), Point(2951, 3219), Point(2946, 3220), Point(2943, 3224), Point(2939, 3228), Point(2938, 3229)]; TreesLocation := Point(2938, 3229); LogID := 1516; CanBank := true; customBank := true; end; 10:begin //power chop tres customIDs := [1278, 1276, 1286, 1282]; LogID := 1512; Fletch := true; PowerChop := true; end; 11:begin //powerchop willows customIDs := [11755, 11763, 11759, 11761]; LogID := 1520; Fletch := true; PowerChop := true; end; 12:begin //varrock west oaks BankLocation := Point(3186, 3436); LocationTreeObjects := [R_MakeTTreeObject(Point(3168, 3421), 11756, 1356, 'Oak', 0), R_MakeTTreeObject(Point(3166, 3412), 11756, 1356, 'Oak', 1), R_MakeTTreeObject(Point(3162, 3417), 11756, 1356, 'Oak', 2)]; PathToBank := [Point(3170, 3422), Point(3174, 3425), Point(3178, 3428), Point(3182, 3432), Point(3184, 3436)]; PathToTrees := [Point(3184, 3436), Point(3181, 3432), Point(3177, 3429), Point(3173, 3426), Point(3170, 3421), Point(3170, 3423)]; TreesLocation := Point(3170, 3422); LogID := 1522; CanBank := true; end; 13:begin //powerchop oaks customIDs := [11756]; LogID := 1522; Fletch := true; PowerChop := true; end; 14:begin //port sarim willows BankLocation := Point(3045, 3234); //'deposit' LocationTreeObjects := [R_MakeTTreeObject(Point(3057, 3255), 11755, 9711, 'Willow', 0), R_MakeTTreeObject(Point(3062, 3255), 11755, 9711, 'Willow', 1), R_MakeTTreeObject(Point(3063, 3253), 11755, 9711, 'Willow', 2), R_MakeTTreeObject(Point(3057, 3252), 11755, 9711, 'Willow', 3)]; PathToBank := [Point(3059, 3252), Point(3054, 3252), Point(3052, 3247), Point(3047, 3246), Point(3042, 3245), Point(3042, 3240), Point(3042, 3235), Point(3045, 3235)]; PathToTrees := [Point(3045, 3235), Point(3042, 3239), Point(3042, 3244), Point(3047, 3246), Point(3052, 3247), Point(3054, 3252), Point(3059, 3253)]; TreesLocation := Point(3059, 3252); LogID := 1520; CanBank := true; customBank := true; end; 15:begin //falador oaks BankLocation := Point(3012, 3354); LocationTreeObjects := [R_MakeTTreeObject(Point(3001, 3367), 11756, 1356, 'Oak', 0)]; TreesLocation := Point(3001, 3365); LogID := 1522; CanBank := true; end; 16:begin //catherby willows BankLocation := Point(2809, 3442); LocationTreeObjects := [R_MakeTTreeObject(Point(2786, 3430), 11755, 9711, 'Willow', 0), R_MakeTTreeObject(Point(2783, 3427), 11755, 9711, 'Willow', 1), R_MakeTTreeObject(Point(2781, 3428), 11755, 9711, 'Willow', 2), R_MakeTTreeObject(Point(2768, 3427), 11755, 9711, 'Willow', 3), R_MakeTTreeObject(Point(2771, 3428), 11755, 9711, 'Willow', 4)]; TreesLocation := Point(2783, 3428); LogID := 1520; CanBank := true; end; 17:begin //seers willows BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2719, 3506), 11755, 9711, 'Willow', 0), R_MakeTTreeObject(Point(2711, 3512), 11755, 9711, 'Willow', 1), R_MakeTTreeObject(Point(2709, 3511), 11755, 9711, 'Willow', 2), R_MakeTTreeObject(Point(2712, 3509), 11755, 9711, 'Willow', 3), R_MakeTTreeObject(Point(2708, 3514), 11755, 9711, 'Willow', 4)]; TreesLocation := Point(2711, 3510); LogID := 1520; CanBank := true; end; 18:begin //draynor oaks BankLocation := Point(3091, 3245); LocationTreeObjects := [R_MakeTTreeObject(Point(3103, 3243), 11756, 1356, 'Oak', 0)]; TreesLocation := Point(3102, 3245); LogID := 1522; CanBank := true; end; 19:begin //gnome yews LocationTreeObjects := [R_MakeTTreeObject(Point(2433, 3426), 11758, 9714, 'Yew', 2), R_MakeTTreeObject(Point(2439, 3436), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(2433, 3441), 11758, 9714, 'Yew', 1)]; customLocations := [Point(2445, 3435){plane 0 stairs}, Point(2445, 3434){plane 1 stairs}]; BankLocation := Point(2447, 3427); TreesLocation := Point(2441, 3435); canBank := true; customBank := true; logID:=1516; end; 20:begin //gnome magics writeln('Gnome Magics are not yet completed.'); end; 21:begin //lumbridge oaks BankLocation := Point(3212, 3246); LocationTreeObjects := [R_MakeTTreeObject(Point(3204, 3247), 11756, 1356, 'Oak', 0), R_MakeTTreeObject(Point(3205, 3240), 11756, 1356, 'Oak', 1)]; TreesLocation := Point(3206, 3242); LogID := 1521; CanBank := true; customBank := true; customIDs := [506, 507 {general store guys}]; customLocations := [Point(3215, 3245){closed door object}]; {TPA of inside general} customPath1 := [Point(3214, 3244), Point(3214, 3245), Point(3214, 3247), Point(3213, 3250), Point(3213, 3249), Point(3213, 3248), Point(3213, 3247), Point(3213, 3246), Point(3213, 3245), Point(3212, 3249), Point(3212, 3248), Point(3212, 3247), Point(3212, 3246), Point(3212, 3245), Point(3212, 3244), Point(3211, 3243), Point(3211, 3244), Point(3211, 3245), Point(3211, 3246), Point(3211, 3247), Point(3211, 3248), Point(3211, 3249), Point(3211, 3250), Point(3210, 3249), Point(3210, 3244), Point(3210, 3243), Point(3209, 3244), Point(3209, 3245), Point(3209, 3246), Point(3209, 3247), Point(3209, 3248), Point(3209, 3249), Point(3209, 3250)]; Fletch := False; end; 22:begin //edgeville yews BankLocation := Point(3095, 3491); LocationTreeObjects := [R_MakeTTreeObject(Point(3086, 3469), 11758, 9714, 'Yew', 0), R_MakeTTreeObject(Point(3086, 3481), 11758, 9714, 'Yew', 1)]; PathToBank := [Point(3094, 3470), Point(3094, 3475), Point(3094, 3480), Point(3093, 3485), Point(3090, 3489), Point(3093, 3491)]; PathToTrees := [Point(3093, 3491), Point(3090, 3487), Point(3093, 3483), Point(3093, 3478), Point(3094, 3473), Point(3093, 3470)]; TreesLocation := Point(3087, 3471); LogID := 1516; CanBank := true; customBank := true; customLocations := [Point(3091, 3470) {closed door object}]; {TPA of inside yew area} customPath1 := [Point(3091, 3473), Point(3091, 3472), Point(3091, 3471), Point(3091, 3470), Point(3091, 3469), Point(3091, 3468), Point(3090, 3468), Point(3090, 3469), Point(3090, 3470), Point(3090, 3471), Point(3090, 3472), Point(3090, 3473), Point(3089, 3468), Point(3089, 3469), Point(3089, 3470), Point(3089, 3471), Point(3089, 3472), Point(3089, 3473), Point(3089, 3474), Point(3089, 3475), Point(3089, 3476), Point(3089, 3479), Point(3089, 3480), Point(3088, 3482), Point(3088, 3481), Point(3088, 3480), Point(3088, 3479), Point(3088, 3478), Point(3088, 3477), Point(3088, 3476), Point(3088, 3475), Point(3088, 3474), Point(3088, 3473), Point(3088, 3472), Point(3088, 3471), Point(3088, 3470), Point(3088, 3469), Point(3088, 3468), Point(3087, 3471), Point(3087, 3472), Point(3087, 3476), Point(3087, 3477), Point(3087, 3478), Point(3087, 3479), Point(3086, 3479), Point(3086, 3478), Point(3086, 3477), Point(3086, 3476), Point(3086, 3472), Point(3086, 3471), Point(3085, 3471), Point(3085, 3472), Point(3085, 3473), Point(3085, 3474), Point(3085, 3475), Point(3085, 3476), Point(3085, 3477), Point(3085, 3478), Point(3085, 3479)]; end; 23:begin //edgeville willows BankLocation := Point(3095, 3491); LocationTreeObjects := [R_MakeTTreeObject(Point(3113, 3495), 11755, 9711, 'Willow', 0)]; TreesLocation := Point(3112, 3495); LogID := 1520; CanBank := true; end; 24:begin //lumb yew BankLocation := Point(3208, 3221); LocationTreeObjects := [R_MakeTTreeObject(Point(3250, 3202), 11758, 9714, 'Yew', 0)]; TreesLocation := Point(3248, 3202); LogID := 1516; CanBank := true; PathToBank := [Point(3248, 3202), Point(3243, 3201), Point(3238, 3201), Point(3236, 3206), Point(3236, 3211), Point(3234, 3216), Point(3229, 3218), Point(3224, 3218), Point(3219, 3218), Point(3215, 3215), Point(3214, 3210), Point(3209, 3210), Point(3206, 3209)]; PathToTrees := [Point(3206, 3210), Point(3211, 3210), Point(3215, 3213), Point(3215, 3218), Point(3220, 3218), Point(3225, 3218), Point(3230, 3218), Point(3232, 3213), Point(3234, 3208), Point(3236, 3203), Point(3241, 3201), Point(3246, 3201), Point(3248, 3201)]; customBank := true; customLocations := [Point(3205, 3208){'Climb-'}]; end; 25:begin //lumbridge willows BankLocation := Point(3212, 3246); LocationTreeObjects := [R_MakeTTreeObject(Point(3234, 3238), 11755, 9711, 'Willow', 0), R_MakeTTreeObject(Point(3233, 3245), 11755, 9711, 'Willow', 1)]; TreesLocation := Point(3234, 3242); LogID := 1519; CanBank := true; customBank := true; customIDs := [506, 507 {general store guys}]; customLocations := [Point(3215, 3245){closed door object}]; {TPA of inside general} customPath1 := [Point(3214, 3244), Point(3214, 3245), Point(3214, 3247), Point(3213, 3250), Point(3213, 3249), Point(3213, 3248), Point(3213, 3247), Point(3213, 3246), Point(3213, 3245), Point(3212, 3249), Point(3212, 3248), Point(3212, 3247), Point(3212, 3246), Point(3212, 3245), Point(3212, 3244), Point(3211, 3243), Point(3211, 3244), Point(3211, 3245), Point(3211, 3246), Point(3211, 3247), Point(3211, 3248), Point(3211, 3249), Point(3211, 3250), Point(3210, 3249), Point(3210, 3244), Point(3210, 3243), Point(3209, 3244), Point(3209, 3245), Point(3209, 3246), Point(3209, 3247), Point(3209, 3248), Point(3209, 3249), Point(3209, 3250)]; end; 26:begin //lumbridge yews BankLocation := Point(3212, 3246); LocationTreeObjects := [R_MakeTTreeObject(Point(3185, 3227), 11758, 9714, 'Yew', 0)]; TreesLocation := Point(3186, 3229); LogID := 1516; CanBank := true; customBank := true; customIDs := [506, 507 {general store guys}]; customLocations := [Point(3215, 3245){closed door object}]; {TPA of inside general} customPath1 := [Point(3214, 3244), Point(3214, 3245), Point(3214, 3247), Point(3213, 3250), Point(3213, 3249), Point(3213, 3248), Point(3213, 3247), Point(3213, 3246), Point(3213, 3245), Point(3212, 3249), Point(3212, 3248), Point(3212, 3247), Point(3212, 3246), Point(3212, 3245), Point(3212, 3244), Point(3211, 3243), Point(3211, 3244), Point(3211, 3245), Point(3211, 3246), Point(3211, 3247), Point(3211, 3248), Point(3211, 3249), Point(3211, 3250), Point(3210, 3249), Point(3210, 3244), Point(3210, 3243), Point(3209, 3244), Point(3209, 3245), Point(3209, 3246), Point(3209, 3247), Point(3209, 3248), Point(3209, 3249), Point(3209, 3250)]; end; end; if ForceDisableBank then CanBank := false; end; procedure FreeDTMZ; begin FreeDTMs([ShopDTM]); writeln('Status: '+status); SMART_ClearCanvas; end; procedure DoOnScreenPaint; var CurrentWoodXP, CurrentWoodLevel, CurrentRunningTime, tempInt, i, CurrentFletchXP : integer; Job, CurrentRunTime, Drop, BuildString : string; _point : TPoint; TempObject : TRSObject; begin CurrentWoodXP := R_GetSkillExp(Skill_Woodcutting); CurrentWoodLevel := R_GetMaxSkillLevel(Skill_Woodcutting); CurrentRunTime := TimeRunning; CurrentRunningTime := GetTimeRunning; CurrentFletchXP := R_GetSkillExp(Skill_Fletching); case TypeOfJob of 0: Job := 'Draynor Willows'; 1: Job := 'Draynor Yews'; 2: Job:= 'Seers Maples'; 3: Job:= 'Seers Yews'; 4: Job:= 'Seers Magics'; 5: Job:= 'Seers Magics(2)'; 6: Job:= 'Catherby Yews'; 7: Job:= 'Varrock Palace Yews'; 8: Job:= 'Falador Yews'; 9: Job:= 'Rimmington Yews'; 10: Job:= 'Normal Trees'; 11: Job:= 'Willow Trees'; 12: Job:= 'Varrock West Oaks'; 13: Job:= 'Oak Trees'; 14: Job:= 'Port Sarim Willows'; 15: Job:= 'Falador Oaks'; 16: Job:= 'Catherby Willows'; 17: Job:= 'Seers Willows'; 18: Job:= 'Draynor Oaks'; 19: Job:= 'Tree Gnome Village Yews'; 20: Job:= 'Tree Gnome Village Magics'; 21: Job:= 'Lumbridge Oaks (sell)'; 22: Job:= 'Edgeville Yews'; 23: Job:= 'Edgeville Willows'; 24: Job:= 'Lumbridge Yews'; 25: Job:= 'Lumbridge Willows (sell)'; 26: Job:= 'Lumbridge Yews (sell)'; end; if canBank then begin Drop:='banked'; end else begin Drop:='dropped'; end; BuildString := 'Tree details: '; SMART_ClearCanvas; tempInt := 5; SMART_DrawText(5, tempInt, 'upchars07', ' ', 65280); tempInt := tempInt + 15; SMART_DrawText(5, tempInt, 'upchars07', 'Current job: ' + Job + ' Banking: '+boolToStr(canBank), 65280); tempInt := tempInt + 15; SMART_DrawText(5, tempInt, 'upchars07', 'Status: ' + status, 65280); tempInt := tempInt + 15; SMART_DrawText(5, tempInt, 'upchars07', 'Woodcutting XP Gained: ' + InttoStr(round(CurrentWoodXP - StartingWoodXP))+', per hour '+InttoStr(round(((CurrentWoodXP - StartingWoodXP))*3600)/(CurrentRunningTime / 1000))+', current level '+intTostr(CurrentWoodLevel)+', gained '+InttoStr(CurrentWoodLevel - StartingWoodLevel), 65280); tempInt := tempInt + 15; SMART_DrawText(5, tempInt, 'upchars07', 'XP Gained / 67: ' + InttoStr(round((CurrentWoodXP - StartingWoodXP) / 67))+' Nests collected: '+intToStr(Nests), 65280); tempInt := tempInt + 15; SMART_DrawText(5, tempInt, 'upchars07', 'Ran for ' + CurrentRunTime + '.' + ' Script version: '+FloatToStr(version), 65280); tempInt := tempInt + 15; if(Fletch)then begin SMART_DrawText(5, tempInt, 'upchars07', 'Fletching XP Gained: ' + InttoStr(round(CurrentFletchXP - StartingFletchXP))+', per hour '+InttoStr(round(((CurrentFletchXP - StartingFletchXP))*3600)/(CurrentRunningTime / 1000)), 65280); tempInt := tempInt + 15; end; for i:=0 to high(LocationTreeObjects) do begin BuildString := BuildString + ' tree' + intToStr(LocationTreeObjects[i].Index) + ':'; TempObject := R_GetObjectAt(0, LocationTreeObjects[i].tile); if(TempObject.ID = LocationTreeObjects[i].AliveObjectID)then begin BuildString := BuildString + 'alive '; _point := R_TileToMS(LocationTreeObjects[i].tile); if(PointInBox(_point, MSBox))then begin SMART_DrawText(_point.x, _point.y, 'upchars07', 'Alive ' + LocationTreeObjects[i].Name, clAqua); end; end else begin if(TempObject.ID = LocationTreeObjects[i].DeadObjectID)then begin BuildString := BuildString + 'dead '; _point := R_TileToMS(LocationTreeObjects[i].tile); if(PointInBox(_point, MSBox))then begin SMART_DrawText(_point.x, _point.y, 'upchars07', 'Dead ' + LocationTreeObjects[i].Name, clAqua); end; end else begin if(TempObject.id = 0)then begin _point := R_TileToMS(LocationTreeObjects[i].tile); if(PointInBox(_point, MSBox))then begin SMART_DrawText(_point.x, _point.y, 'upchars07', 'Unloaded ' + LocationTreeObjects[i].Name, clAqua); end; //useless to paint an unloaded tile?? BuildString := BuildString + 'unloaded '; end else begin _point := R_TileToMS(LocationTreeObjects[i].tile); if(PointInBox(_point, MSBox))then begin SMART_DrawText(_point.x, _point.y, 'upchars07', 'Unknown ' + LocationTreeObjects[i].Name, clAqua); end; BuildString := BuildString + 'unknown '; end; end; end; end; SMART_DrawText(5, tempInt, 'upchars07', BuildString, 65280); end; procedure UpdateScreen(_string:string); begin if (_string <> '') then begin status := _string; end; DoOnScreenPaint; end; procedure doFindAllRandoms; begin //SetScreenName(R_GetPlayerName); if(R_FindNormalRandoms{ or FindNormalRandoms})then begin UpdateScreen('Found random...'); end; end; function R_TryMakeTileOnMS(tile:TPoint;time:integer;reset:boolean):boolean; var FailSafeTime : integer; ResetAngle, ResetHeight : extended; begin if(reset)then begin ResetAngle := R_GetMinimapAngleDeg; ResetHeight := R_GetCameraZ; end; markTime(FailSafeTime); while((TimeFromMark(FailSafeTime) < time) and (not PointInBox(R_TileToMS(tile), MSBox))) do begin R_RotateCameraToTile(tile); if(not PointInBox(R_TileToMS(tile), MSBox)) then begin keyDown(VK_Down); sleep(50+random(20)); keyUp(VK_Down); end; end; if(PointInBox(R_TileToMS(tile), MSBox))then begin Result := true; end else begin Result := false; end; if(reset)then begin MakeCompass('W'); markTime(FailSafeTime); while((TimeFromMark(FailSafeTime) < time) and (abs(R_GetCameraZ - ResetHeight) > 100))do begin keyDown(VK_Up); sleep(50+random(20)); keyUp(VK_Up); end; end; end; function R_OnTileArray(TP:TpointArray):Boolean; //does R_Ontile on an array of tiles var Loc: TPoint; i: integer; begin Loc := R_GetTileGlobal; Result := false; for i:=0 to high(TP) do begin if loc = TP[i] then begin result := true; i := high(TP); end; end; end; function R_ArrayOfItemsInInv(_array:array of integer):boolean;//does R_InventoryContains with an array of item ids var i : integer; begin result := false; for i:=0 to high(_array) do begin if(R_InventoryContains(_array[i]))then result := true; end; end; function R_TileOnMS(tile:TPoint):boolean; begin result := PointInBox(R_TileToMS(tile), MSBox); end; function R_TileOnMSHeight(tile:Tpoint;height:integer):boolean; begin result := PointInBox(R_TileToMSHeight(tile, height), MSBox); end; procedure RandomALMouse(x, y, ranx, rany: integer); var xs, ys: Integer; begin GetMousePos(xs, ys); AL_SetMouseSpeed(RandomRange(15, 25)); case random(5) of 0: AL_MissMouse(Point(x, y), ranx, rany); 1: AL_AccurateMMouse(Point(x, y), ranx, rany); 2: AL_HumanMMouse(Point(x, y), ranx, rany); 3: AL_ShiftWindMouse(xs, ys, x, y, 4 + Random(15), 2 + Random(18), 5, 10, 20, 5); 4: AL_BrakeWindMouse(xs, ys, x, y, 7 + Random(13), 3 + Random(17), 5, 10, 5, True); 5: AL_HumanWindMouse(xs, ys, x, y, 7 + Random(15), 2 + Random(20), 5, 10, 5); end; end; function R_MouseTileHeight(Tile: TPoint; ranx, rany, ClickType, Height: Integer): Boolean; var Tilex, Tiley: Integer; Tile2: TPoint; begin Result:= false; Tile2.x:= 0; Tile2.y:= 0; Tile2:= R_TileToMsHeight(Tile, Height); if (Tile2.x = 0) or (Tile2.y = 0) or (Tile2.x > 40000) or (Tile2.y > 40000) or (Tile2.x < -40000) or (Tile2.y < -40000) then Exit; Tilex:= iAbs(Tile2.x); Tiley:= iAbs(Tile2.y); //MouseBoxEdit(Tilex-ranx, Tiley-rany, Tilex+ranx, Tiley+rany, ClickType); RandomALMouse(Tilex, Tiley, ranx, rany); AL_FastClick(ClickType); Result:= true; end; function R_GetClosestObjectIDs(ObjType:integer;Distance:integer;ObjIDs:array of integer):TRSObject; var Objects, FObjects: TRSObjectArray; I, J: Integer; begin result := RSObject(-1, -1, Point(-1, -1)); Objects := R_GetObjectsDistance(ObjType, Distance); for i:=0 to high(objects) do begin if(inIntArray(ObjIDs, Objects[i].ID))then begin Inc(J); SetLength(FObjects, J); FObjects[high(FObjects)] := Objects[i]; end; end; for i:=0 to high(FObjects) do begin if(result.id = -1)then begin result := FObjects[i]; end else begin if(R_DistanceFromTile(FObjects[i].Tile) < R_DistanceFromTile(Result.Tile))then begin result := FObjects[i]; end; end; end; end; function r_getGItemDistanceIDs(distance:integer;IDs:array of Integer):TGroundItem; var GItems : TGroundItemArray; i : integer; begin GItems := R_GetGroundItemsDistance(distance); result := GroundItem(-1, -1, Point(-1, -1)); for i:=0 to high(GItems) do begin if(inIntArray(IDs, GItems[i].ID))then begin result := GItems[i]; exit; end; end; end; function R_InteractTileWaitHeight(Tile: TPoint; Option: String; Timeout, Height: Integer): Boolean; var i: Integer; deg: Extended; begin Result:= false; deg:= (360-R_GetMinimapAngleDeg); i := GetSystemTime; repeat if (BankScreen) then Exit; R_MouseTileHeight(Tile, 15, 15, Mouse_Move, Height); wait(100 + random(50)); Result:= R_SelectOption(Option); if (((GetSystemTime - i) < Timeout) and not(Result) and (random(100) > 50)) then R_RandomMovement; until (((GetSystemTime - i) > Timeout) or (Result)); R_MakeCompass(deg); end; function R_InteractNPC(_npc:TNPC; action:string):boolean; begin result := false; if(R_IsValidTNPC(_npc))then begin if(not R_TryMakeTileOnMS(_npc.tile, 5000, false))then begin R_BlindWalk(_npc.tile); Flag; Sleep(random(2000)); end; if(R_TryMakeTileOnMS(_npc.tile, 5000, false))then begin RandomALMouse(R_TileToMS(_npc.tile).x, R_TileToMS(_npc.tile).y, 5, 5); if(R_OptionExists(action))then begin result := true; if(R_IsUpTextMulti([action]))then begin Al_FastClick(mouse_left); Flag; doFindAllRandoms; Sleep(random(2000)); end else begin Al_FastClick(mouse_right); R_selectOption(action); Flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; end; end; function R_TryInteractNPCID(NpcID:integer;action:string;tries:integer;var returnNPC:TNPC):boolean; var i:integer; _npcs:TNPCArray; begin result := false; returnNPC := NULL_NPC; for i:=0 to tries do begin _npcs := R_SortNPCs(R_getNPCs(NpcID)); if(high(_npcs) > -1)then begin returnNPC := _npcs[0]; end; if(R_InteractNPC(returnNPC, action))then begin result := true; i:=tries; end; end; end; function ChooseOptionMultiExFast(Texts: TStringArray; TextType: String; Action: fnct_ActionOptions): Boolean; var B: TBox; i, H, x, R: Integer; T: TPoint; Options: array of TOptions; begin Result := False; Options := GetChooseOptions(); if (Length(Options) < 1) then Exit; H := High(Options); for i := 0 To H do begin if ArrInStr(Texts, Options[i].Str) then begin Result := True; B := Options[i].Bounds; GetMousePos(T.x, T.y); R:= Min(((B.X2 - B.X1) shr 1), 5); //Prevents x2 passed to MouseBoxEx being smaller than x1 case Action of ClickLeft: if PointInBox(T, B) then ClickMouse2(true) else ClickMouse(randomRange(B.x1 + R, B.x2 - R),RandomRange(B.Y1, B.Y1 + 5), mouse_left); Move: if not PointInBox(T, B) then MoveMouse(randomRange(B.x1 + R, B.x2 - R),RandomRange(B.Y1, B.Y1 + 5)); Nothing: begin end; else srl_warn('ChooseOptionMultiEx', 'ClickRight not a valid click for RS menus!', warn_AllVersions); end; Exit; end; end; B := Options[0].BigBox;//to mmouse away if Action <> Nothing then begin x := Max(B.X1 - 52, 0); if x = 0 then x := B.X2+10; //n MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1); Wait(200 + Random(100)); end; end; procedure DoRun; begin if((R_GetRunEnergy > EnergyToTurnOnRun) and (not R_IsRunOn)) then begin AL_MouseBoxEx(572, 130, 590, 144, 7, Mouse_left); sleep(2500+ random(500)); end; end; procedure DoLogin; begin if(not LoggedIn)then begin LogInPlayer; MakeCompass('W'); SetAngle(0); end; end; procedure AdjustCamera; begin SetAngle(0); MakeCompass('W'); end; procedure AntiBan; begin case random(AntiBanOften) of 1..5:BoredHuman; 6..10:HoverOnlineFriend; 11..15:SmallRandomMouse; 16..20:PickUpMouse; 21..30:MMouseOffClient('Random'); //31..40:Logout; 41..60:HoverSkill(Skill_Woodcutting, False); 61..70:HoverSkill(random(SKILL_COUNT), False); 71..80:AL_AccurateMMouse(Point(MSCX, MSCY), 100, 100); 81..90:AL_HumanMMouse(Point(MSCX, MSCY), 100, 100); 91..100:AL_MissMouse(Point(MSCX, MSCY), 100, 100); 101..110:ExamineInv; 111..120:RandomFKeys(true); 121..130:HoverMovingObject; 131..140:RandomTab(true); 141..160:RandomAlMouse(RandomRange(-1000, 1000), RandomRange(-1000, 1000), 100, 100); end; end; procedure doProggy; var w, h : integer; bmp : TBitmap; begin getClientDimensions(w, h); bmp := bitmapFromClient(0, 0, w-1, h-1); SetTransparentColor(smart_Canvas.index, 0); fastDrawTransparent(0, 0, smart_Canvas.index, bmp); saveBitmap(bmp, ProggieLocation); writeln('Saving Proggy to '+ProggieLocation); freeBitmap(bmp); end; procedure doCount; begin LogsChopped := LogsChopped + R_InventoryContainsCount([LogID]); doProggy; end; procedure DoDropping; var items : TInventoryItemArray; i : integer; box : TBox; begin doCount; UpdateScreen('Dropping items...'); items := R_GetInventoryItems; while(R_InvFull and not R_UnderAttack)do begin //ee for i:=0 to high(items) do begin if(not InIntArray(AxeIDs, items[i].ID) and R_InventoryContains(items[i].ID) and not R_UnderAttack and (items[i].ID <> ShaftsID) and (items[i].ID <> KnifeID) and (items[i].ID <> 0))then begin if not MouseKeys then begin box := invBox(items[i].Slot); RandomALMouse(randomRange(box.x1, box.x2), randomRange(box.y1, box.y2), 0, 0); sleep(random(100)); Al_FastClick(mouse_right); sleep(random(100)); R_selectOption('Drop'); sleep(random(100)); end else begin box := invBox(items[i].Slot); MoveMouse(randomRange(box.x1, box.x2), randomRange(box.y1, box.y2)); sleep(random(100)); Al_FastClick(mouse_right); sleep(random(100)); ChooseOptionMultiExFast(['Drop'], 'All', ClickLeft); sleep(random(100)); end; end; items := R_GetInventoryItems; end; end; end; procedure doNormalSelling; var items : TInventoryItemArray; i, nullINT, j : integer; box : TBox; begin if(FindDTM(ShopDTM, nullINT, nullINT, MSX1, MSY1, MSX2, MSY2))then begin doCount; UpdateScreen('Selling items...'); items := R_GetInventoryItems; while(FindDTM(ShopDTM, nullINT, nullINT, MSX1, MSY1, MSX2, MSY2) and R_InvFull)do begin for j:=0 to 10 do begin for i:=0 to high(items) do begin if(not InIntArray(AxeIDs, items[i].ID) and not InIntArray(NestIDs, items[i].ID) and R_InventoryContains(items[i].ID) and FindDTM(ShopDTM, nullINT, nullINT, MSX1, MSY1, MSX2, MSY2) and (items[i].ID <> ShaftsID) and (items[i].ID <> MoneyID) and (items[i].ID <> KnifeID) and (items[i].ID <> 0))then begin box := invBox(R_GetItemSlot(items[i].ID)); RandomALMouse(randomRange(box.x1, box.x2), randomRange(box.y1, box.y2), 0, 0); sleep(random(100)); Al_FastClick(mouse_right); sleep(random(100)); R_selectOption('Sell 10'); sleep(750+random(250)); end; items := R_GetInventoryItems; end; end; end; end; end; procedure GoToNormalTreesSpot; begin UpdateScreen('Going to trees spot...'); DoRun; if((canBank) and (PathToTrees[0] <> Point(-1, -1)) and (R_DistanceFromTile(PathToTrees[0]) < 25) and (R_DistanceFromTile(PathToTrees[high(PathToTrees)]) > R_DistanceFromTile(PathToTrees[0])))then begin R_WalkPath(PathToTrees); end else begin if not PowerChop then begin R_BlindWalk(TreesLocation); end else begin end; end; Flag; Sleep(random(2000)); end; procedure doLumbYewCheck(banking:boolean); begin if(R_GetPlane = 2)then begin if banking then begin end else begin if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Going down stairs.'); if(R_InteractTileWait(customLocations[0], 'Climb-down', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end; end else begin if(R_GetPlane = 1)then begin if banking then begin if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Going up stairs.'); if(R_InteractTileWait(customLocations[0], 'Climb-up', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end else begin if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Going down stairs.'); if(R_InteractTileWait(customLocations[0], 'Climb-down', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end; end else begin if banking then begin if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Going up stairs.'); if(R_InteractTileWait(customLocations[0], 'Climb-up', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end else begin end; end; end; if(banking)then begin if(R_GetPlane <> 2)then doLumbYewCheck(true); end else begin if(R_GetPlane <> 0)then doLumbYewCheck(false); end; end; procedure doLumbGenDoorCheck(banking:boolean); var tempObject : TRSObject; begin if ((banking and not R_OnTileArray(customPath1)) or (not banking and R_OnTileArray(customPath1))) then begin tempObject := R_GetObjectAt(3, customLocations[0]); if(tempObject.ID <> 0)then begin UpdateScreen('Door closed!'); if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to door...'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Opening door.'); if(R_OpenDoor(customLocations[0], 'w'))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; end; procedure doEdgeDoorCheck(banking:boolean); var tempObject : TRSObject; begin if ((banking and R_OnTileArray(customPath1)) or (not banking and not R_OnTileArray(customPath1))) then begin tempObject := R_GetObjectAt(3, customLocations[0]); if(tempObject.ID <> 0)then begin UpdateScreen('Door closed!'); if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to door...'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Opening door.'); if(R_OpenDoor(customLocations[0], 'e'))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; end; procedure doGnomeCheck(banking:boolean); begin if(R_GetPlane = 0)then begin if banking then begin if(not R_TileOnMS(customLocations[0]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[0]); flag; Sleep(random(2000)); end; UpdateScreen('Going up stairs.'); if(R_InteractTileWait(customLocations[0], 'Climb-up', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end else begin end; end else begin if banking then begin end else begin if(not R_TileOnMS(customLocations[1]))then begin UpdateScreen('Going to stairs.'); R_BlindWalk(customLocations[1]); flag; Sleep(random(2000)); end; UpdateScreen('Going down stairs.'); if(R_InteractTileWait(customLocations[1], 'Climb-down', 5000))then begin flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; end; procedure GoToTreesSpot; begin if not customBank then begin GoToNormalTreesSpot; end else begin case TypeOfJob of 9, 14:begin //deposit box GoToNormalTreesSpot; end; 21:begin //sell doLumbGenDoorCheck(false); GoToNormalTreesSpot; end; 22:begin //door doEdgeDoorCheck(false); GoToNormalTreesSpot; end; 19, 20:begin //gnome doGnomeCheck(false); GoToNormalTreesSpot; end; 24:begin //lumb yew doLumbYewCheck(false); GoToNormalTreesSpot; end; 25:begin //sell doLumbGenDoorCheck(false); GoToNormalTreesSpot; end; 26:begin //sell doLumbGenDoorCheck(false); GoToNormalTreesSpot; end; end; end; end; procedure doNormalBanking; var items : TInventoryItemArray; i : integer; box : TBox; firstTime : boolean; begin if(PinPending) then begin ConfirmPin; end; if(PinScreen) then begin InPin(Players[0].Pin); end; if(BankScreen) then begin doCount; UpdateScreen('Banking items...'); items := R_GetInventoryItems; firstTime := true; while(BankScreen and (R_InvFull or firstTime))do begin if not R_ArrayOfItemsInInv(AxeIDs) and (not R_InventoryContains(KnifeID) or not Fletch) then begin QuickDeposit('inventory'); end else begin for i:=0 to high(items) do begin if(not InIntArray(AxeIDs, items[i].ID) and R_InventoryContains(items[i].ID) and BankScreen and (items[i].ID <> KnifeID) and (items[i].ID <> 0))then begin box := invBox(items[i].Slot); RandomALMouse(randomRange(box.x1, box.x2), randomRange(box.y1, box.y2), 0, 0); sleep(random(100)); Al_FastClick(mouse_right); sleep(random(100)); R_selectOption('Deposit-All'); sleep(500+random(500)); end; items := R_GetInventoryItems; end; end; firstTime := false; if(random(2) = 1)then closeBank; end; GoToTreesSpot; end; end; procedure doDepositBox; begin if(DepositScreen)then begin doCount; UpdateScreen('Depositing items...'); Deposit(2, 28, true); //no deposit reflection... sleep(1500+random(500)); end; end; procedure doBanking; begin if not customBank then begin doNormalBanking; end else begin case TypeOfJob of 9, 14:begin doDepositBox; end; 21:begin //sell doNormalSelling; end; 22:begin //door doNormalBanking; end; 19, 20:begin //gnome doNormalBanking; end; 24:begin //lumb yew doNormalBanking; end; 25:begin //sell doNormalSelling; end; 26:begin //sell doNormalSelling; end; end; end; end; procedure GoToNormalBank; begin if CanBank then begin UpdateScreen('Going to bank...'); if(not(R_TileOnMS(BankLocation)))then begin DoRun; if(PathToBank[0] <> Point(-1, -1))then begin if(R_DistanceFromTile(PathToBank[0]) > 25) or (R_DistanceFromTile(PathToBank[high(PathToBank)]) > 25)then R_BlindWalk(PathToBank[0]); R_WalkPath(PathToBank); Flag; Sleep(random(2000)); end else begin R_BlindWalk(BankLocation); Flag; Sleep(random(2000)); end; end; end else begin UpdateScreen('Running..'); if not PowerChop then begin R_BlindWalk(Point(TreesLocation.x, TreesLocation.y - 10)); end else begin R_BlindWalk(Point(R_GetTileGlobal.x, R_GetTileGlobal.y - 10)); end; Flag; Sleep(random(2000)); end; end; procedure GoToBank; begin if not customBank then begin GoToNormalBank; end else begin case TypeOfJob of 9, 14:begin GoToNormalBank; //d end; 21:begin //sell doLumbGenDoorCheck(true); GoToNormalBank; end; 22:begin //door doEdgeDoorCheck(true); GoToNormalBank; end; 19, 20:begin //gnome doGnomeCheck(true); GoToNormalBank; end; 24:begin //lumb yew GoToNormalBank; doLumbYewCheck(true); end; 25:begin //sell doLumbGenDoorCheck(true); GoToNormalBank; end; 26:begin //sell doLumbGenDoorCheck(true); GoToNormalBank; end; end; end; end; procedure OpenBankNormalUp; begin if(not BankScreen) and (not PinPending) and (not PinScreen)then begin UpdateScreen('Opening bank...'); if(R_TryMakeTileOnMS(BankLocation, 5000, false))then begin R_InteractTileWait(BankLocation, 'Bank B', 5000); Flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; procedure OpenDepositBoxUp; begin if(not DepositScreen)then begin UpdateScreen('Opening deposit box...'); if(R_TileOnMS(BankLocation))then begin R_InteractTileWait(BankLocation, 'Deposit', 5000); Flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; procedure OpenGeneral; var NullINT:integer; _npc : TNPC; begin if(not(FindDTM(ShopDTM, nullINT, nullINT, MSX1, MSY1, MSX2, MSY2)))then begin UpdateScreen('Opening general store sell interface...'); if(R_TryInteractNPCID(customIDs[0], 'Trade', 15, _npc))then begin Flag; doFindAllRandoms; Sleep(random(2000)); end; end; end; procedure OpenBankUp; begin if not customBank then begin OpenBankNormalUp; end else begin case TypeOfJob of 9, 14:begin OpenDepositBoxUp; end; 21:begin //sell OpenGeneral; end; 22:begin //door OpenBankNormalUp; end; 19, 20:begin //gnome OpenBankNormalUp; end; 24:begin //lumb yew OpenBankNormalUp; end; 25:begin //sell OpenGeneral; end; 26:begin //sell OpenGeneral; end; end; end; end; procedure doSafeChecks; var NestItem : TGroundItem; begin doFindAllRandoms; DoRun; UpdateScreen(''); sleep(50); if(ActivatedItem <> -1)then AL_MouseBoxEx(InvBox(ActivatedItem).x1, InvBox(ActivatedItem).y1, InvBox(ActivatedItem).x2, InvBox(ActivatedItem).y2, 0, Mouse_left); if(bankScreen)then CloseBank; NestItem := r_getGItemDistanceIDs(10, NestIDs); if(inIntArray(NestIDs, NestItem.ID) and not R_InvFull)then begin writeln('Found nest!'); if(R_TileOnMS(NestItem.Tile))then begin if(R_InteractTileWait(NestItem.Tile, 'Take Bird nest', 5000))then begin Inc(Nests); Flag; Sleep(random(2000)); end; end else begin R_BlindWalk(NestItem.Tile); //b Flag; Sleep(random(2000)); end; end; if(R_UnderAttack)then begin UpdateScreen('UNDER ATTACK!!!'); writeln('UNDER ATTACK RUN! TO BANK!'); GoToBank; if(canBank)then begin OpenBankUp; DoBanking; end; sleep(5000);//wait for the hostile to leave us alone end; if(timeFromMark(LastXPCheck) > 360000)then begin //xp check MarkTime(LastXPCheck); SetAngle(0); MakeCompass('W'); if(R_GetSkillExp(Skill_Woodcutting) <= LastXPXPCheck)then begin UpdateScreen('No woodcutting xp gained within 6 mins...'); writeln('Didnt gain exp in 6 minutes... Logging out...'); Logout; TerminateScript; end; LastXPXPCheck := R_GetSkillExp(Skill_Woodcutting); end; end; procedure doFletch; var p : TPoint; begin if(R_InventoryContains(KnifeID) and R_InventoryContains(LogID))then begin UpdateScreen('Going to fletch'); Gametab(tab_Inv); if(ActivatedItem = -1)then begin R_ClickItemBy(KnifeID, 'Use'); sleep(500 + random(500)); end; if(ActivatedItem <> -1)then begin R_ClickItemBy(LogID, 'Use'); sleep(1250 + random(500)); end; if(LogID = 1512)then begin p := Point(76, 410); end else begin if(LogID = 1514)then begin p := Point(377, 410); end else begin p := Point(261, 411); end; end; RandomAlMouse(p.x, p.y, 10, 10); sleep(random(500)); AL_FastClick(mouse_right); if(R_ChooseOption('Make X'))then begin sleep(1000 + random(500)); TypeSend('99'); sleep(1250 + random(500)); end; while(not R_UnderAttack and (R_GetAnimation = FletchID))do begin doSafeChecks; UpdateScreen('Fletching...'); antiBan; end; end; end; procedure doExtraChecks; begin if not customBank then begin end else begin case TypeOfJob of 21:begin//lumb door doLumbGenDoorCheck(false); end; 22:begin//door doEdgeDoorCheck(false); end; 19, 20:begin //gnome doGnomeCheck(false); end; 24:begin //lumb yew doLumbYewCheck(false); end; 25:begin//lumb door doLumbGenDoorCheck(false); end; 26:begin//lumb door doLumbGenDoorCheck(false); end; end; end; end; procedure ChopTree; var TempObject : TRSObject; TreeObject, NextTree : R_TTreeObject; firstTime : boolean; begin doExtraChecks; firstTime := true; UpdateScreen('Looking for tree...'); if not PowerChop then begin TreeObject := R_getClosestAliveTTreeObject(LocationTreeObjects); end else begin TreeObject := R_ConvertTRSObjectToR_TTreeObject(R_GetClosestObjectIDs(0, 25, customIDs)); end; if(not R_isValidTTreeObject(TreeObject))then begin UpdateScreen('No Tree! D:'); if FarTrees then begin NextTree := R_getNextTTreeObject(LocationTreeObjects, PreviousTree); PreviousTree := R_getClosestTTreeObject(LocationTreeObjects); UpdateScreen('Going to next tree...'); if(not R_TileOnMS(NextTree.Tile))then begin R_BlindWalk(NextTree.Tile); Flag; Sleep(random(2000)); end; end else begin GoToNormalTreesSpot; end; end else begin if UseDAxeSpec and (R_GetSpecPercent >= 100)then begin GameTab(tab_Combat); RandomALMouse(645, 432, 5, 5); AL_FastClick(mouse_left); end; UpdateScreen('Found tree! :D'); PreviousTree := R_getClosestTTreeObject(LocationTreeObjects); if(not R_TileOnMSHeight(TreeObject.Tile, 100))then begin UpdateScreen('Going to tree...'); R_BlindWalk(TreeObject.Tile); Flag; Sleep(random(2000)); end; if(R_TileOnMSHeight(TreeObject.Tile, 100))then begin UpdateScreen('Going to chop tree...'); if(R_InteractTileWaitHeight(TreeObject.Tile, 'Chop down '+TreeObject.Name, 5000, 100))then begin Flag; doFindAllRandoms; sleep(1500 + random(500)); TempObject := R_GetObjectAt(0, TreeObject.Tile); while((TempObject.ID = TreeObject.AliveObjectID) and InIntArray(AnimationIDs, R_GetAnimation) and not R_InvFull)do begin TempObject := R_GetObjectAt(0, TreeObject.Tile); UpdateScreen('Chopping tree...'); doSafeChecks; if(FirstTime)then begin firstTime := false; if(random(round(AntiBanOften/5000)) = 1)then MMouseOffClient('Random'); end; AntiBan; end; if(TempObject.ID <> TreeObject.AliveObjectID) and (TempObject.ID <> TreeObject.DeadObjectID) and InIntArray(AnimationIDs, R_GetAnimation) then begin RandomAlMouse(R_TileToMM(R_GetTileGlobal).x, R_TileToMM(R_GetTileGlobal).y, 0, 0); Al_FastClick(mouse_left); UpdateScreen('Ent tree...!'); end; end; end; end; end; begin SafeInitForm; SafeShowFormModal; if(started and (JobBox.ITEMINDEX > -1)) then begin DeclarePlayers; //o ClearDebug; SetupSRL; SetupReflection; ActivateClient; SMART_ClearCanvas; DoLogin; DeclareVars; repeat if((R_GetLoginState > 10) and (R_GetLoginState <= 30))then begin doSafeChecks; if R_InvFull then begin if Fletch then doFletch; if canBank then begin GoToBank; OpenBankUp; doBanking; end else begin DoDropping; end; end else begin ChopTree; end; end else begin DoLogin; end; //t until((HowMuchToChop <> -1) and (HowMuchToChop >= LogsChopped)); LogOut; writeln('Stopping because chopped more than '+toStr(HowMuchToChop)+' logs.'); end; if(Updating)then doUpdate; end.
I added some jobs; 'Lumbridge Willows (sell)', and 'Lumbridge Yews (sell)'. They are great for getting Ultimate Ironman mode to lvl 60 wc without getting banned.
So far so good:
![]()
damn.. this has no teak powerchop on it.. I can't find one :s
Best proggy yet:
![]()
Great Script.
Last edited by jtsnowboy; 12-26-2014 at 03:53 AM.
guys how did you start it? when the download link for it is an updater?
so i copied and pasted the code, now it says starting and succesful execute but it never starts? when i click the play
Last edited by Justin; 12-27-2014 at 10:52 PM.
Ahh.. The link for al_functions is broken for me? Just me or am I missing something?
You need to download al_functions
If I see you autoing with level 3/default clothes/crap name I WILL report you. Auto Correctly.
www.facebook.com/AngeVashes
The link on OP for al_functions leads to a page that supposedly doesn't exist, I can't download it
GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!
<BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols
I'm really uncertain how to fix the ID's for these tree's!!
Code://seers magics 2 BankLocation := Point(2727, 3494); LocationTreeObjects := [R_MakeTTreeObject(Point(2705, 3397), 2123, 9713, 'Magic', 0), R_MakeTTreeObject(Point(2705, 3399), 2123, 9713, 'Magic', 1), R_MakeTTreeObject(Point(2699, 3397), 2123, 9713, 'Magic', 2), R_MakeTTreeObject(Point(2699, 3399), 2123, 9713, 'Magic', 3)]; PathToBank := [Point(2701, 3396), Point(2704, 3392), Point(2709, 3392), Point(2714, 3393), Point(2714, 3398), Point(2716, 3403), Point(2715, 3408), Point(2715, 3413), Point(2714, 3418), Point(2714, 3423), Point(2713, 3428), Point(2713, 3433), Point(2713, 3438), Point(2710, 3442), Point(2712, 3447), Point(2717, 3449), Point(2720, 3453), Point(2720, 3458), Point(2720, 3463), Point(2720, 3468), Point(2722, 3473), Point(2725, 3478), Point(2727, 3483), Point(2726, 3488), Point(2726, 3491)]; PathToTrees := [Point(2725, 3491), Point(2726, 3486), Point(2727, 3481), Point(2726, 3476), Point(2724, 3471), Point(2723, 3466), Point(2723, 3461), Point(2719, 3457), Point(2716, 3453), Point(2713, 3448), Point(2710, 3444), Point(2710, 3439), Point(2711, 3434), Point(2713, 3429), Point(2713, 3424), Point(2713, 3419), Point(2715, 3414), Point(2715, 3409), Point(2716, 3404), Point(2716, 3399), Point(2715, 3394), Point(2710, 3393), Point(2705, 3392), Point(2701, 3395), Point(2702, 3397)]; TreesLocation := Point(2700, 3397); LogID := 1514; CanBank := true;
Edit: al_functions.simba
Last edited by squirrelz; 01-03-2015 at 01:34 AM.
It goes to log in and I get this error
Error: Exception: Invalid variant type cast at line 477
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3]
Any idea?
There are currently 1 users browsing this thread. (0 members and 1 guests)