This bot did not work at all for me. (only tested at Draynor)
This bot did not work at all for me. (only tested at Draynor)
Changed line 230 to
There doesn't have to be food in the inventory if the HP is higher than the lower limit. Without it, it'll stop working, with it, it can run even on no food at all (since you don't even need food in many cases).else if (not food.Find(FOODTYPE) and MyPlayer.GetHealth<EATAT) then
Edit: Forgot to say, thx for the script, good shit right here =)
Edit v2: Your mark picker is broken. After some time and a bit of headache, I replaced it with my own item picker, had to include my whole library tho, so it's not a really viable fix for anybody else here (unless I publish it).
That being said, if anybody else is running this script, know that you WONT pick up any marks at the moment.
Edit v3: Final and huge edit.
I fixed some parts of this script, and added Canifis. Currently works perfectly, only 1 spot in Canifis where you can get stuck cause of lag. Also, I only post here what doesn't require to include my library, which I'm not currently going to share, so the Mark looting is still broken.
Bellow are instructions to any of you who want to include my Canifis script and the few fixes manually.
//PUT WHERE - after constant declarations
cSTOP_AFTER = 60;//Stop after (minutes)
cSTOP_AFTER_RAND = 10;//Random ammount +/- to add to StopAfter
//PUT WHERE - global var declarations
x, y, lapCount, markCount, cH, cW, stopAfter: Integer;
// PUT WHERE - procedure loadVars first line
stopAfter := (cSTOP_AFTER+RandomRange(-cSTOP_AFTER_RAND,cSTOP_AFTER_RAND))*60*1000+random (60)*1000;
// PUT WHERE - procedure Draw - after all other steps, included Varrok for orientation
else if (Course = 'Varrock') then
begin
xpGained := (238 * lapCount);
cName := 'Varrock';
end
else if (Course = 'Canifis') then
begin
xpGained := (240 * lapCount);
cName := 'Canifis';
end
xpHour := Round((xpGained) / (GetTimeRunning / 3600000.0));
markHour := Round((markCount) / (GetTimeRunning / 3600000.0));
OS_Smart.__Graphics.Clear;
OS_Smart.__Graphics.DrawClippedText('vAgility: ' + cName, 'upchars07', point(300, 353), 16711680);
OS_Smart.__Graphics.DrawClippedText('Exp gained: ' + toStr(xpGained) + ' (' + (toStr(xpHour)) + ' p/hr)', 'upchars07', point(300, 370), 16711680);
OS_Smart.__Graphics.DrawClippedText('Marks of Grace: ' + toStr(markCount) + ' (' + (toStr(markHour)) + ' p/hr)', 'upchars07', point(300, 385), 16711680);
OS_Smart.__Graphics.DrawClippedText('Total Runtime ' + MsToTime(GetTimeRunning, 3), 'upchars07', point(300, 400), 16711680);
OS_Smart.__Graphics.DrawClippedText('Time Remaing: ' + MsToTime(stopAfter-GetTimeRunning,3), 'upchars07', point(300, 415), 16711680);
OS_Smart.__Graphics.DrawClippedText('Status: ' + text, 'upchars07', point(300, 430), 16711680);
//PUT WHERE - eatFood, script termination condition, so it'll continue if you don't have food but have the hp
else if (not food.Find(FOODTYPE) and MyPlayer.GetHealth<EATAT) then
TerminateScript;
//PUT WHERE - function lootMark - replace first part (you would be better off replacing the whole function, it doesn't work)
if (Course = 'Draynor') then
begin
radius:=10;
gItems.GetAll(radius);
end
else if (Course = 'Falador') then
begin
radius:=4;
gItems.GetAll(radius);
end
else if (Course = 'Seers') then
begin
radius:=15;
gItems.GetAll(radius);
end
else if (Course = 'Varrock') then
begin
radius:=15;
gItems.GetAll(radius);
end
else if (Course = 'Canifis') then
begin
radius:=10;
gItems.GetAll(radius);
end
//PUT WHERE bellow varrok steps
{////////////////////////////////////////////////////////////////////////////////
CANIFIS
}////////////////////////////////////////////////////////////////////////////////
procedure theTreeC;
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
//lootMark();
dismissAllRandoms();
if obst.Find(objGame, 24349, 10) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Climb', 'Tall tree'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Climbing tree');
T.start;
Reflect.Compass.MakePitch(RandomRange(3,4));
repeat
wait(150);
until atBox(3505, 3492, 3507, 3497) or (T.timeElapsed > 5000);
end
end
else if not (waitUptextMulti(['Climb', 'Tall tree'], 250)) then
begin
MX_InteractColorArea(80, 0, 360 ,170 , 4680289, 2, 20,['Climb'], false); //Implement alternative function to find and click the tree
wait(2500);
while myPlayer.IsAnimating or myPlayer.IsMoving do
wait(randomRange(400,500));
end
end
else begin
MX_InteractColorArea(80, 0, 360 ,170 , 4680289, 2, 20,['Climb'], false); //Implement alternative function to find and click the tree
wait(2500);
while myPlayer.IsAnimating or myPlayer.IsMoving do
wait(randomRange(400,500));
end;
end;
procedure Gap1C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10820, 15) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 1');
T.start;
setCompass(inttostr(randomrange(250, 270)));
Reflect.Compass.MakePitch(RandomRange(1,2));
repeat
wait(150);
until atBox(3497, 3504, 3503, 3506) or (T.timeElapsed > 5000);
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
setCompass(inttostr(randomrange(-10, 10)));
Reflect.Compass.MakePitch(RandomRange(3,4));
end
end
end;
procedure Gap2C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10821, 15) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 2');
T.start;
repeat
wait(150);
until atBox(3487, 3499, 3492, 3504) or (T.timeElapsed > 5000);
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
setCompass(inttostr(randomrange(250, 270)));
Reflect.Compass.MakePitch(RandomRange(1,2));
end
end
end;
procedure Gap3C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10828, 15) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 3');
T.start;
setCompass(inttostr(randomrange(170, 190)));
repeat
wait(150);
until atBox(3475, 3493, 3479, 3499) or (T.timeElapsed > 5000);
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
setCompass(inttostr(randomrange(250, 270)));
Reflect.Compass.MakePitch(RandomRange(1,2));
end
end
end;
procedure Gap4C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10822, 15) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 4');
T.start;
setCompass(inttostr(randomrange(170, 190)));
repeat
wait(150);
until atBox(3478, 3482, 3483, 3487) or (T.timeElapsed > 5000);
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
setCompass(inttostr(randomrange(170, 190)));
end
end
end;
procedure PoleC();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10831, 10) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Vault', 'Pole-vault'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Vaulting Pole');
T.start;
setCompass(inttostr(randomrange(80, 100)));
repeat
wait(150);
until atBox(3489, 3469, 3503, 3478) or (T.timeElapsed > 8000);
if T.timeElapsed > 8000 then
MMouseClick(Point(randomRange(230,280),randomRange (100,130)),mouse_left,0);
end
end
else if not (waitUptextMulti(['Vault', 'Pole-vault'], 250)) then
begin
setCompass(inttostr(randomrange(170, 190)));
Reflect.Compass.MakePitch(RandomRange(1,2));
end
end
end;
procedure Gap5C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
Reflect.Compass.MakePitch(RandomRange(1,2));
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10823, 30) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 5');
T.start;
setCompass(inttostr(randomrange(-10, 10)));
repeat
wait(150);
until atBox(3509, 3475, 3515, 3482) or (T.timeElapsed > 10000);
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
myPlayer.WalkPathMM([Point(3503,3475)]);
setCompass(inttostr(randomrange(80, 100)));
Reflect.Compass.MakePitch(RandomRange(1,2));
end
end
else begin
MMouseClick(Point(randomRange(230,280),randomRange (100,130)),mouse_left,0);
end;
end;
procedure Gap6C();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
lootMark();
dismissAllRandoms();
if obst.Find(objGame, 10832, 15) then
begin
pnt := obst.GetMSPoint;
if (pnt.x > 0) and (pnt.y > 0) and (pnt.x < cW) and (pnt.y < cH) then
Reflect.Mouse.Move(obst.GetMSPoint, 3, 3);
if (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
fastClick(Mouse_left);
if DidRedClick then
begin
draw('Jumping Gap 6');
inc(lapcount);
T.start;
repeat
wait(150);
until (reflect.Tiles.getplane = 0) or (T.timeElapsed > 5000);
Reflect.Compass.MakePitch(RandomRange(8,10));
end
end
else if not (waitUptextMulti(['Jump', 'Gap'], 250)) then
begin
setCompass(inttostr(randomrange(-10, 10)));
Reflect.Compass.MakePitch(RandomRange(1,2));
end
end
end;
procedure walkToTreeC();
var
obst: TReflectObject;
T: Timer;
pnt: tpoint;
begin
draw('Walking to Wall');
if getCurrentHealth < EATAT then
eatFood;
myPlayer.walkPathMM([Point(3500,3497),Point(3492,3494),Point(3494,3488) ,Point(3501,3483),Point(3507,3488)]);
setCompass(inttostr(randomrange(-10, 10)));
Reflect.Compass.MakePitch(RandomRange(8,10));
end;
// PUT WHERE getState and executeState go
function getStateC(): Integer;
begin
if not isLoggedIn() then
exit(1);
if lootMark() then
exit(2);
if atBox(3505, 3489, 3505, 3489) then
exit(13);//Point(3505,3489) - bug fix
if atBox(3503, 3485, 3510, 3489) then
exit(3);
if atBox(3505, 3492, 3507, 3497) then
exit(4);
if atBox(3497, 3504, 3503, 3506) then
exit(5);
if atBox(3487, 3499, 3492, 3504) then
exit(6);
if atBox(3475, 3493, 3479, 3499) then
exit(7);
if atBox(3478, 3482, 3483, 3487) then
exit(8);
if atBox(3487, 3476, 3487, 3476) then
exit(12);//Point(3487,3476) - bug fix
if atBox(3489, 3469, 3503, 3478) then
exit(9);
if atBox(3509, 3475, 3515, 3482) then
exit(10);
if reflect.Tiles.getplane = 0 then
exit(11);
end;
procedure executeStateC(State: Integer);
begin
case (State) of
1: HandleLogin();
2: lootMark();
3: theTreeC();
4: Gap1C();
5: Gap2C();
6: Gap3C();
7: Gap4C();
8: PoleC();
9: Gap5C();
10: Gap6C();
11: walkToTreeC();
12: begin //fix buggy jump
MMouseClick(Point(randomRange(230,280),randomRange (100,130)),mouse_left,0);
end;
13: begin //fix buggy tree climb
MMouseClick(Point(randomRange(100,400),randomRange (20,150)),mouse_left,0);
end;
end;
wait(randomrange(75, 175));
end;
First time using Simba for osrs and not RS3... Getting compile errors.
"Error: Plugin(AND_TPA32) has not been found"
Any tips or tricks?
Tried using this, but when the I start the script, the SMART client loads but does not login and if I start it whilst logged in it does not do anything. Theres no errors in the debug either. Any ideas?
Thanks for the Canifis section! I added some parts that used your library (I think) and it worked very well until I could use Seers. The mark looting did work for me
The script worked very well, and I left it running overnight at Seers several times. However, I did have to add a couple things to avoid the few hangups it kept encountering. I can post my changes if there's interest
You need to have the AND_TPA plugin for this to work.
1. Go here: https://villavu.com/forum/showthread.php?t=83795
2. Download AND_TPA.rar
3. Extract to AND_TPA.dll
4. Put in C:/Simba/Plugins
Just ran the draynor village rooftop one overnight, worked perfectly
thanks
Had an issue with Varrock where it would attempt to eat food after finishing a lap, and if there wasn't any food in the inv, the bot would just stand there. Wasn't really taking much damage anyways so fixed it by deleting
if getCurrentHealth () <EATAT then
eat Food;
I'm having an error:
Error: Unknown declaration "GetTickCount64" at line 156
Compiling failed.
Opens up the login function and highlights that line above ^
Does anyone have any ideas?
I personally used this link: https://villavu.com/forum/showthread.php?t=108953
Although its primarily to get aerolib working, he includes all the steps to setup Simba in general.
I used the following link for plugins: https://sabercathost.com/4Xlb/Plugins.zip
I used the following link for Simba download: https://villavu.com/forum/showthread.php?t=116951
No worries.
Hello. So ive recently gotten back to OSRS and I want to use Simba again.
It was a long time ago since I used Simba/smart (the last time was when you could grind your combat stats in the fight caves, free XP and free Tokkuls)
Ive reinstalled everything that I need (I hope) but i seem to have a problem. When I start the agility script I get this error message;
[Error] C:\Simba\Scripts\Aerolib\core\Constants.simba(61:1 8): Semicolon (';') expected at line 62
Compiling failed.
I remember that people used to add some form of "anti-leeching" in their script, which is all good and I don't mind trying to crack it however I need to now if I have everything installed and setup correctly, so I know where I can put my energy and focus to solve this. Any ideas?
this working?
http://www.youtube.com/user/YoHoJoSRL
Good scripting guides on youtube
Formerly known as (djcheater)
Going to give it a try, thanks for the script!
broke with zoom update
There are currently 1 users browsing this thread. (0 members and 1 guests)