o0Matthius0o
2014-09-06 00:01:18
Whats up guys! I have been working on this fighter for a while now. I have'nt polished it up quite yet. I mean to add a proggy and some other bells and whistles. Also going through a learning process to add the charm pick ups. I just could'nt wait to get something out there.
Please ignore most of the commented out code. A few things are commented out since tesseract is broken atm. Once that is fixed i will uncomment that and you can redownload.
SCRIPT DETAILS=====================================================
The starting point is really any closed off room with fire giants in it. Best spot is the resource dungeon behind the waterfall in baxtorian falls. Another good location but much more dangerous to get to is the chaos tunnels.
Have your actionbar set up with all the ultimate or high threshold skills to the right starting at 9. All other skills that do not require adrenaline put them to the left. Have your food set to the 'z' slot. Put regenerate in slot '0'.
I have been running this script for 3 days non stop and there hasnt been any failing aside from the logout function. So when its break time it will just open the options menu and sit there til it logs out on its own. It will resume after breaking is finished.
SECOND SCRIPT==================================================
Ok. I made this script quick and dirty. I wouldnt recommend running it for too long. Although i have been running it for 2 hours no problem. This one is a log cutter and banker. It will chop regular trees in varrock and bank them in varrock west bank outside the ge. If you notice i used a mousebox for banking the logs. This is because the built in functions for banking are not working right now. I will update them after the next SRL update.
DETAILS::
Put your hatchet in the first slot or equip it to the toolbelt. Start in varrock west bank outside the ge. Press play and you are good to go!
I will add breaking to this later on. But for now enjoy!
I FORGOT THIS! Here is the SPS map that you will need to be able to run this script lol. Take this photo and save it in "C:\Simba\Includes\SPS\img\runescape_other"
Make sure this is saved as "WoodCut"
[ATTACH=CONFIG]23966[/ATTACH]
EDIT: I have now added breaking in the woodcutter script. I also fixed a bug to where it would sometimes walk to the top of the GE. I have also ran the script for over 6 hours. So its pretty safe. Other than other suspicious players.
Please ignore most of the commented out code. A few things are commented out since tesseract is broken atm. Once that is fixed i will uncomment that and you can redownload.
SCRIPT DETAILS=====================================================
The starting point is really any closed off room with fire giants in it. Best spot is the resource dungeon behind the waterfall in baxtorian falls. Another good location but much more dangerous to get to is the chaos tunnels.
Have your actionbar set up with all the ultimate or high threshold skills to the right starting at 9. All other skills that do not require adrenaline put them to the left. Have your food set to the 'z' slot. Put regenerate in slot '0'.
I have been running this script for 3 days non stop and there hasnt been any failing aside from the logout function. So when its break time it will just open the options menu and sit there til it logs out on its own. It will resume after breaking is finished.
program new;
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I SPS/LIB/SPS-RS3.simba}
const
//-------Login Settings-------//
PLAYER_FILE = 'Godlist';
NICKNAME = 'Main';
LOGIN_WORLD = 0;
//----------------------------//
//-------Break settings-------//
ENABLE_BREAKS = True;
MIN_PLAY_TIME = 45; //45
MAX_PLAY_TIME = 180; //180
MIN_BREAK_TIME = 5;
MAX_BREAK_TIME = 45;
//----------------------------//
var
//-------Global Variables-------//
TotalBreakTime, StatsTime, misClicked, monstDead : TTimeMarker; //Timers Here
BreakTimeTotal, BreakTime, Breaked, XpGained : integer; //Stats Here
//-------------------------------------------------------------------------------------------------------------------------------//
procedure resetBreakTimer();
begin
BreakTime := getSystemTime() + gaussRangeInt(MIN_PLAY_TIME * 60000, MAX_PLAY_TIME * 60000);
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
procedure setup();
begin
smartEnableDrawing := true;
setupSRL();
players.Setup([NICKNAME], PLAYER_FILE);
currentPlayer := 0;
players[currentPlayer].world := LOGIN_WORLD;
exitTreasure();
resetBreakTimer();
TotalBreakTime.start();
TotalBreakTime.pause();
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function heal(): boolean;
var
heartBar, x, y : integer;
begin
heartBar := DTMFromString('mlwAAAHicY2dgYJjACMHTgbgTyu4G4qlAfA2ILwDxJSh9B4hvAPF1IJ6hJMvw6/YFhqOexgyvl9Qx1OsaMbSJCDOUWogz4AOMeDAUAABpNxL5');
if findDTM(heartBar, x, y, actionBar.getBounds()) = True then
begin
writeLn('In the HEAL procedure: Found the Heart');
sendKeys('0', 250, 40);
wait(randomRange(6000, 6500));
result := True;
exit;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
procedure healthEat();
var
heartBar, x, y : integer;
fhb : boolean;
begin
heartBar := DTMFromString('mlwAAAHicY2dgYJjACMHTgbgTyu4G4qlAfA2ILwDxJSh9B4hvAPF1IJ6hJMvw6/YFhqOexgyvl9Qx1OsaMbSJCDOUWogz4AOMeDAUAABpNxL5');
fhb := False;
if actionBar.getHPPercent() < 75 then
begin
if actionBar.getAdrenalinePercent() > 20 then
begin
writeLn('Using Heal');
repeat
heal();
until heal() = True;
writeLn('Healing is done. Hp: ', actionBar.getHPPercent());
exit;
End else
begin
exit;
end;
end;
if actionBar.getHPPercent() <= 50 then
begin
repeat
sendKeys('z', 250, 40);
until actionBar.getHPPercent() > 50;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function antiBan(): boolean;
var
antiBanNum : integer;
begin
antiBanNum := random(1500);
if antiBanNum <= 100 then
begin
writeLn('Antiban Time!');
case antiBanNum of
1..10: boredHuman(false);
11..25: hoverRandomSkill();
26..31: hoverOnlineFriend();
32..52: mouseMovingObject();
53..69: mouseOffClient(4);
70..80: randomCameraAngle(MS_ANGLE_HIGH);
81..90: randomCompass(10, 40, True);
91..100: wait(randomRange(3000, 5000));
end;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function timeUntilBreak() : string;
var
breakFromNow, H, M, S : integer;
begin
if ENABLE_BREAKS then
begin
breakFromNow := BreakTime - getSystemTime();
convertTime(breakFromNow, H, M, S);
result := (toStr(H) + 'h ' + toStr(M) + 'm ' + toStr(S) + 's');
end else
result := ('Breaking disabled');
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
procedure takeBreak();
var
H, M, S, HH, MM, SS, breakFor, timeLeft : integer;
breakStartTimer : TTimeMarker;
begin
if not ENABLE_BREAKS then
exit;
if (getSystemTime() >= BreakTime) then
begin
TotalBreakTime.start();
writeLn('Taking a break');
if random(2) = 0 then
begin
//repeat
players[currentPlayer].logout();
//until not isLoggedIn();
end
else
begin
//repeat
players[currentPlayer].exitToLobby();
//until lobby.isOpen();
end;
breakFor := gaussRangeInt(MIN_BREAK_TIME * 60000, MAX_BREAK_TIME * 60000);
convertTime(breakFor, H, M, S);
writeLn('You are taking a break for: ' + toStr(H) + 'h ' + toStr(M) + 'm ' + toStr(S) + 's');
breakStartTimer.start();
repeat
timeLeft := breakFor - breakStartTimer.getTime();
convertTime(timeLeft, HH, MM, SS);
writeLn('Ending break in: ' + toStr(HH) + 'h ' + toStr(MM) + 'm ' + toStr(SS) + 's');
wait(25000 + random(4000));
until breakFor < breakStartTimer.getTime();
inc(Breaked);
resetBreakTimer();
TotalBreakTime.pause();
players[currentPlayer].login();
wait(gaussRangeInt(1500, 3500));
exitTreasure();
minimap.clickCompass();
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
procedure doAbilities();
var
i : integer;
keyStr : string;
begin
for i := 9 downto 1 do
begin
if (actionBar.getAbilityCooldown(i) = 1) then
begin
case i of
0..9: keyStr := intToStr(i);
10: keyStr := '0';
11: keyStr := '-';
12: keyStr := '=';
end;
SendKeys(keyStr[1], 60 + Random(60), 60 + Random(60));
exit;
end;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function clickEnemy(): boolean;
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
hpDTM, hBarDTM, fightDTM: integer;
isMobDead : boolean;
begin
if isLoggedIn() then
begin
fightDTM := DTMFromString('mbQAAAHicY2VgYLgCxLqMDAxGQKwGxNpAfBgodgiITwPxJSA+A8SXJ0ky3Ll+ieHh3RsM0WYKDBUFsQzYACMWDAYAtIEOEA==');
hBarDTM := DTMFromString('mKgEAAHic42NgYFBhZGDwB+IgIP4J5P8GYkkgW5sRQmsBsQUQOwIxGxC/Bcp7AelzDBB8EYgvAPEZJHwJis8g0YeB+CgQ2wgLM2hzcsJpRTY2MI0L84lIMvCJSjFIgtxFBmYkE6MCAFnIFUE=');
hpDTM := DTMFromString('mbQAAAHicY2VgYFBhZWBQBmI1IFYFYiUg3gwUXw/EG4B4GxTbCAsz/D/NynB3AwuYDtMRZJAEiqNjRiwYDADI8wr3');
isMobDead := false;
repeat
if findDTM(fightDTM, x, y, mainscreen.getBounds()) = True then
begin
writeLn('Top of Procedure: You are in a fight'); //fix this statement. it just exits sometimes and the script gets stuck in a loop. doing nothing.
result := True;
exit;
end;
findColorsSpiralTolerance(x, y, TPA, 2571108, mainScreen.getBounds(), 14, colorSetting(2, 0.20, 0.82));
if length (TPA) < 1 then //If there are no monsters found it will terminate and rerun.
begin
exit;
end;
ATPA := TPA.toATPA(50, 50);
ATPA.sortFromMidPoint(mainscreen.playerPoint); //Chooses the closest monster to you.
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do //Finds and draws all the monsters a debug box.
begin
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['ttack'], 500) then
begin
fastClick(MOUSE_RIGHT);
if chooseOption.optionsExist(['ttack']) then // attacks mob
begin
chooseOption.select(['ttack Fire giant']);
wait(randomRange(4000, 4500));
break;
end;
end;
end;
until findDTM(fightDTM, x, y, mainscreen.getBounds()) = True;
clearDebug();
writeLn('You are in a Fight');
smartImage.clear();
result := True;
exit;
End else
if not isLoggedIn() then
begin
writeLn('You are not logged in');
exit;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function isMonsterDead(): boolean;
var
hpDTM, hBarDTM, x, y : integer;
isMobDead : boolean;
begin
hBarDTM := DTMFromString('mKgEAAHic42NgYFBhZGDwB+IgIP4J5P8GYkkgW5sRQmsBsQUQOwIxGxC/Bcp7AelzDBB8EYgvAPEZJHwJis8g0YeB+CgQ2wgLM2hzcsJpRTY2MI0L84lIMvCJSjFIgtxFBmYkE6MCAFnIFUE=');
hpDTM := DTMFromString('mbQAAAHicY2VgYFBhZWBQBmI1IFYFYiUg3gwUXw/EG4B4GxTbCAsz/D/NynB3AwuYDtMRZJAEiqNjRiwYDADI8wr3');
isMobDead := false;
if findDTM(hpDTM, x, y, mainScreen.getBounds()) then //Will keep fighting the monster til their health reaches 0
begin
writeLn('DTM found, Moster hp 0');
clearDebug();
if findDTM(hBarDTM, x, y, mainScreen.getBounds()) then
begin
writeLn('DTM 2 found, Monster Healthbar empty');
//wait(randomRange(3000, 3500));
isMobDead := True;
result := True;
end;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
function pickUpCharms(): boolean;
var
x, y, i : integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
if IsLoggedIn() then
begin
wait(randomRange(3500, 4000));
writeLn('Searching for Charms');
findColorsSpiralTolerance(x, y, TPA, 13948655, mainScreen.getBounds(), 8, colorSetting(2, 0.16, 4.15));
if length (TPA) < 1 then //If there are no bones found it will terminate and rerun.
begin
exit;
end;
ATPA := TPA.toATPA(40, 40);
ATPA.sortFromMidPoint(mainscreen.playerPoint); //Chooses the closest drop to you.
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
wait(1000);
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['ake'], 500) then
begin
mouse(middleTPA(ATPA[i]), MOUSE_RIGHT); // picks up the bones at the closest point to you.
if chooseOption.optionsExist(['ake Gold charm']) then
begin
chooseOption.select(['ake Gold charm']);
tabBackPack.waitForShift(10000);
smartImage.clear();
result := True;
exit;
end
else if chooseOption.optionsExist(['ake Green charm']) then
begin
chooseOption.select(['ake Green charm']);
tabBackPack.waitForShift(10000);
smartImage.clear();
result := True;
exit;
end
else if chooseOption.optionsExist(['ake Crimson charm']) then
begin
chooseOption.select(['ake Crimson charm']);
tabBackPack.waitForShift(10000);
smartImage.clear();
result := True;
exit;
end
else
begin
smartImage.clear();
result := False;
exit;
end;
smartImage.clear();
break;
end;
end;
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
(*procedure buryBones();
var
slotNum, i : integer;
begin
if isLoggedIn() then
begin
slotNum := 28;
for i := 1 to slotNum do //for every time "i" is not equal to slotNum
begin //keep clicking the bones in the next box over.
tabBackPack.mouseSlot(i, MOUSE_LEFT);
wait(randomRange(1500, 2300)); //wait until the bones are out of the inventory
i + 1;
end;
end;
end;*)
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
procedure checkAngle();
var
angle : extended;
begin
angle := minimap.getAngleRadians();
if angle <> MM_DIRECTION_NORTH and MS_ANGLE_HIGH then // checks to see if the camera is in the correct position. If its not it will put it there.
begin
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
end;
end;
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
(*procedure monsterHealthDTM();
var
hpDTM: integer;
isMobDead : boolean;
begin
hpDTM := DTMFromString('mbQAAAHicY2VgYFBhZWBQBmI1IFYFYiUg3gwUXw/EG4B4GxTbCAsz/D/NynB3AwuYDtMRZJAEiqNjRiwYDADI8wr3');
end; *)
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------------------------------------------------------------------------------------//
begin
setup();
repeat
if not isLoggedIn() then
begin
players[currentPlayer].login();
end;
until isLoggedIn();
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
repeat
repeat
until clickEnemy() = True;
repeat
misClicked.reset();
misClicked.start();
doAbilities();
until isMonsterDead() = True or misClicked.getTime() > 90000;
healthEat();
antiBan();
takeBreak();
wait(randomRange(3000, 3500));
until(false);
end.SECOND SCRIPT==================================================
Ok. I made this script quick and dirty. I wouldnt recommend running it for too long. Although i have been running it for 2 hours no problem. This one is a log cutter and banker. It will chop regular trees in varrock and bank them in varrock west bank outside the ge. If you notice i used a mousebox for banking the logs. This is because the built in functions for banking are not working right now. I will update them after the next SRL update.
DETAILS::
Put your hatchet in the first slot or equip it to the toolbelt. Start in varrock west bank outside the ge. Press play and you are good to go!
I will add breaking to this later on. But for now enjoy!
program new;
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I SPS/LIB/SPS-RS3.simba}
const
//-------Login Settings-------//
PLAYER_FILE = 'Godlist';
NICKNAME = 'Miner2';
LOGIN_WORLD = 0;
//----------------------------//
//-------Break settings-------//
ENABLE_BREAKS = True;
MIN_PLAY_TIME = 45; //45
MAX_PLAY_TIME = 180; //180
MIN_BREAK_TIME = 5;
MAX_BREAK_TIME = 45;
//----------------------------//
var
//-------Global Variables-------//
TotalBreakTime : TTimeMarker; //Timers Here
BreakTimeTotal, BreakTime, Breaked, XpGained : integer; //Stats Here
//-------------------------------------------------------------------------------------------------------------------------------//
procedure resetBreakTimer();
begin
BreakTime := getSystemTime() + gaussRangeInt(MIN_PLAY_TIME * 60000, MAX_PLAY_TIME * 60000);
end;
//-------------------------------------------------------------------------------------------------------------------------------//
procedure takeBreak();
var
H, M, S, HH, MM, SS, breakFor, timeLeft : integer;
breakStartTimer : TTimeMarker;
begin
if not ENABLE_BREAKS then
exit;
if (getSystemTime() >= BreakTime) then
begin
TotalBreakTime.start();
writeLn('Taking a break');
if random(2) = 0 then
begin
//repeat
players[currentPlayer].logout();
//until not isLoggedIn();
end
else
begin
//repeat
players[currentPlayer].exitToLobby();
//until lobby.isOpen();
end;
breakFor := gaussRangeInt(MIN_BREAK_TIME * 60000, MAX_BREAK_TIME * 60000);
convertTime(breakFor, H, M, S);
writeLn('You are taking a break for: ' + toStr(H) + 'h ' + toStr(M) + 'm ' + toStr(S) + 's');
breakStartTimer.start();
repeat
timeLeft := breakFor - breakStartTimer.getTime();
convertTime(timeLeft, HH, MM, SS);
writeLn('Ending break in: ' + toStr(HH) + 'h ' + toStr(MM) + 'm ' + toStr(SS) + 's');
wait(25000 + random(4000));
until breakFor < breakStartTimer.getTime();
inc(Breaked);
resetBreakTimer();
TotalBreakTime.pause();
players[currentPlayer].login();
wait(gaussRangeInt(1500, 3500));
exitTreasure();
minimap.clickCompass();
end;
end;
function antiBan(): boolean;
var
antiBanNum : integer;
begin
antiBanNum := random(1500);
if antiBanNum <= 100 then
begin
writeLn('Antiban Time!');
case antiBanNum of
1..10: boredHuman(false);
11..25: hoverRandomSkill();
26..31: hoverOnlineFriend();
32..52: mouseMovingObject();
53..69: mouseOffClient(4);
70..80: randomCameraAngle(MS_ANGLE_HIGH);
81..90: randomCompass(10, 40, True);
91..100: wait(randomRange(3000, 5000));
end;
end;
end;
procedure findTree();
var
x, y, i: integer;
TPA, TPA2: TPointArray;
ATPA, ATPA2: T2DPointArray;
begin
//findColorsSpiralTolerance(x, y, TPA2, 5865656, mainScreen.getBounds(), 9, colorSetting(2, 0.05, 0.74));
//findColorsSpiralTolerance(x, y, TPA, 2770269, mainScreen.getBounds(), 8, colorSetting(2, 0.13, 0.46));
findColorsSpiralTolerance(x, y, TPA, 1845801, mainScreen.getBounds(), 1, colorSetting(2, 1.20, 2.67));
if length(TPA) < 1 then
exit;
ATPA := TPA.toATPA(60, 60);
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['ree'], 500) then
begin
fastClick(MOUSE_RIGHT);
if chooseOption.optionsExist(['hop down Tree']) then
begin
chooseOption.select(['hop down Tree']);
tabBackPack.waitForShift(10000);
smartImage.Clear();
exit;
end;
end
else if chooseOption.optionsExist(['']) then
begin
break();
end;
end;
end;
procedure setup();
begin
smartEnableDrawing := true;
setupSRL();
players.Setup([NICKNAME], PLAYER_FILE);
currentPlayer := 0;
players[currentPlayer].world := LOGIN_WORLD;
exitTreasure();
resetBreakTimer();
TotalBreakTime.start();
TotalBreakTime.pause();
end;
procedure walkToBank();
var
pathToBank: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToBank :=[Point(207, 232), Point(214, 207), Point(223, 197), Point(216, 174), Point(239, 137), Point(272, 134), Point(288, 127), Point(287, 98)];
if SPS.walkPath(pathToBank) then
begin
minimap.waitPlayerMoving();
end
else
begin
writeLn('Failed walking to the bank');
end;
end;
procedure walkToTree();
var
pathToTree: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToTree := [Point(287, 98), Point(288, 127), Point(272, 134), Point(239, 137), Point(216, 174), Point(223, 197), Point(214, 207), Point(207, 232)];
if SPS.walkPath(pathToTree) then
begin
minimap.waitPlayerMoving();
end
else
begin
writeLn('Failed walking to the tree');
end;
end;
function findCook() : boolean;
var
p : TPoint;
begin
if minimap.findSymbol(p, MM_SYMBOL_COOK, minimap.getBounds())then
begin
writeLn('Found the Cook');
result := True;
end
else
begin
writeLn('Cook Not Found');
result := False;
end;
end;
function findTanner() : boolean;
var
p : TPoint;
begin
if minimap.findSymbol(p, MM_SYMBOL_TANNER, minimap.getBounds())then
begin
writeLn('Found the Tanner');
result := True;
end
else
begin
writeLn('Tanner Not Found');
result := False;
end;
end;
procedure positionPlayer();
begin
if findCook() = False then
begin
walkToTree();
end;
if findTanner() = False then
begin
walkToTree();
end;
end;
procedure depositLogs();
var
x, y, i, count : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
bankbox, closebox : TBox;
begin
bankbox := intToBox(603, 81, 630, 106);
closebox := intToBox(521, 16, 531, 27);
findColorsSpiralTolerance(x, y, TPA, 5385792, mainScreen.getBounds(), 14, colorSetting(2, 0.30, 0.74));
if length(TPA) < 1 then
exit;
ATPA := TPA.toATPA(30, 30);
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
mouse(middleTPA(ATPA[i]), MOUSE_MOVE);
if isMouseOverText(['ank'], 500) then
begin
fastClick(MOUSE_RIGHT);
if chooseOption.optionsExist(['ank Banker']) then
begin
chooseOption.select(['ank Banker']);
wait(randomRange(2000, 3000));
smartImage.clear();
mouseBox(bankbox, MOUSE_RIGHT);
if chooseOption.optionsExist(['eposit-1 Logs']) then
begin
chooseOption.select(['eposit-All Logs']);
wait(randomRange(500, 1000));
end;
mouseBox(closebox, MOUSE_LEFT);
wait(1000);
exit;
end;
end;
end;
end;
begin
clearDebug();
setup();
repeat
if not isLoggedIn() then
begin
players[currentPlayer].login();
end;
until isLoggedIn();
SPS.setup('WoodCut', RUNESCAPE_OTHER);
repeat
mainScreen.setAngle(MS_ANGLE_HIGH);
minimap.setAngle(MM_DIRECTION_NORTH);
repeat
findTree();
positionPlayer();
antiBan();
until tabBackPack.isFull();
walkToBank();
depositLogs();
takeBreak();
until(false);
end.I FORGOT THIS! Here is the SPS map that you will need to be able to run this script lol. Take this photo and save it in "C:\Simba\Includes\SPS\img\runescape_other"
Make sure this is saved as "WoodCut"
[ATTACH=CONFIG]23966[/ATTACH]
EDIT: I have now added breaking in the woodcutter script. I also fixed a bug to where it would sometimes walk to the top of the GE. I have also ran the script for over 6 hours. So its pretty safe. Other than other suspicious players.