Zota
2010-12-04 04:10:38
Master Farmer Thiever!
[ADMIN]Reflection is Broken this script will not work.
~BraK[/ADMIN]
Features:
+Banks
- Deposits if inv full, deposits if low hp and need food)
- Withdraws food (Currently only lobsters)
+Progress report (FINALLY!)
+Fairly quick…
Instructions:
1. Make sure lobsters are in the first bank slot.
2. Withdraw 10 Lobsters.
3. Stand in Draynor by all the stalls and the Master Farmer.
4. Start
NSFAQ: (Not so frequently Asked Questions)
I haven't added bank tab swapping yet so if you haven't got a seed tab already… your bank's misc tab is going to get messsssy :P
I will be adding food support for: Salmon, Trout, Tuna, Lobby, Monkfish.
Known Bugs:
If it is too far away from banksymbol it wont bank. This is something to do with the radialwalking not kicking in. It's an awkward little path bit… I know how to fix it though, which I'll do later at some point.
————————————————————————
Things to keep in mind:
I as a botter really do not care for antiban. When I thieve, I dont go dicking about in my skill tab or some crazy ass shit.. I just thieve lol. I WILL try and add some antiban that doesn't waste time. For now… be a man!
Make sure you reply with any feedback/suggestions. I'm still learning so if something is inefficient/wrong, please let me know!
Version Changes:
V1.04 - Added running and energy checks.
[ADMIN]Reflection is Broken this script will not work.
~BraK[/ADMIN]
Features:
+Banks
- Deposits if inv full, deposits if low hp and need food)
- Withdraws food (Currently only lobsters)
+Progress report (FINALLY!)
+Fairly quick…
Instructions:
1. Make sure lobsters are in the first bank slot.
2. Withdraw 10 Lobsters.
3. Stand in Draynor by all the stalls and the Master Farmer.
4. Start
NSFAQ: (Not so frequently Asked Questions)
I haven't added bank tab swapping yet so if you haven't got a seed tab already… your bank's misc tab is going to get messsssy :P
I will be adding food support for: Salmon, Trout, Tuna, Lobby, Monkfish.
Known Bugs:
If it is too far away from banksymbol it wont bank. This is something to do with the radialwalking not kicking in. It's an awkward little path bit… I know how to fix it though, which I'll do later at some point.
————————————————————————
Things to keep in mind:
I as a botter really do not care for antiban. When I thieve, I dont go dicking about in my skill tab or some crazy ass shit.. I just thieve lol. I WILL try and add some antiban that doesn't waste time. For now… be a man!
Make sure you reply with any feedback/suggestions. I'm still learning so if something is inefficient/wrong, please let me know!
program MasterFarmerThiever;
{$i SRL/SRL/Misc/SMART.scar}
{$i SRL/SRL.scar}
{$i Reflection/Reflection.simba}
var
x, y, stop, Startexp, Newexp : Integer;
const
SMARTWORLD = 72;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your username
Players[0].Pass := ''; //Your password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].Active := true;
end;
procedure Antiban;
begin
case Random(100) of
0: HoverSkill('thieving', false);
1: RandomRClick;
2: RandomMovement;
4: PickUpMouse;
end;
end;
Procedure Login;
begin
LoginPlayer;
wait(1000+random(1000));
MakeCompass('N');
SetAngle(true);
GetAllLevels;
FindNormalRandoms;
Startexp := R_GetSkillExperience(17);
end;
Function Health : integer; //VeryBigKitty's ;p
begin
result := (R_GetMMLevels('hp'));
end;
procedure Report;
Var
gained, running, rate, times, fun, h, m, s: integer;
begin
if not(loggedin) then exit;
ClearDebug;
Newexp := R_GetSkillExperience(17);
gained := Newexp - Startexp;
ConvertTime(gettimerunning, h, m, s);
running := round (gettimerunning / 1000);
rate := (gained*3600)/(h*3600+m*60+s);
times := gained / 43;
fun := 13034431 - Newexp;
WriteLn('=================================');
WriteLn('Ran for: ' + TimeRunning + ' ');
WriteLn('Gained ' + inttostr(gained) + ' exp');
WriteLn('Pickpocketed ' + inttostr(times) + ' times');
WriteLn('EXP/Hour: ' + inttostr(rate));
WriteLn('=================================');
end;
procedure Bank;
var
food, inventory : TInvItemArray;
monkfish, lobster : TIntegerArray;
i, energy : Integer;
begin
monkfish := ([7946, 7947]);
lobster := ([379, 380]);
energy := R_GetMMLevels('energy');
if ((InvFull()) and ((not(R_ItemIDExistsEx(lobster, inventory)))) or (Health < 160) and ((not(R_ItemIDExistsEx(lobster, inventory))))) then
begin
writeln('Status: Inventory full. Banking.');
if ((energy >= 8) and ((not(R_IsRunning)))) then
Mouse(725, 109, 5, 5, true);
repeat
MakeCompass('n');
wait(500 + random(250));
RadialWalk(7434099, 80, 150, 20, -1, 0);
R_Flag;
until findsymbol(x, y, 'bank') or FindBank('db');
begin
writeln('Status: Found bank');
Mouse(x,y,2,3,true);
R_Flag;
wait(1000+random(500));
end;
OpenBankFast('db');
if (BankScreen) then
begin
Wait(30+random(65));
DepositAll;
SearchBank('Lobster');
Wait(1500 + random(1220));
Withdraw(0, 0, 10);
CloseBank;
food := GetInventoryItems;
if (food[i].Name = 'Lobster') then
begin
writeln('Status: We have food');
if ((energy >= 8) and ((not(R_IsRunning)))) then
Mouse(725, 109, 5, 5, true);
RadialWalk(7434099, 310, 280, 70, -1, 0);
R_Flag;
end else
Bank;
end;
end;
end;
procedure CheckHealth;
var
x, y, monkfishDTM, lobsterDTM : Integer;
inventory : TInvItemArray;
monkfish, lobster : TIntegerArray;
begin
monkfish := ([7946, 7947]);
lobster := ([379, 380]);
monkfishDTM := DTMFromString('mrAAAAHic42BgYHBggmAvIA4CYm8gdgZiMyA2BeLnQD' +
'X3ofgOED8D4rdA/AKIHwJxoLsdkGTCg/EDRgIYBgAQ1Ao3');
lobsterDTM := DTMFromString('mggAAAHicY2NgYMhjYmDIAeJKIC4F4lwgjgNiDkYGBhY' +
'g/g1UwwukxYGYG4iXBIkDRZiwYOyAEQeGAAD7JgT+');
if ((Health < 160) and (R_ItemIDExistsEx(lobster, inventory))) then
begin
repeat
if FindDTM(lobsterDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
WriteLn('Status: Health is dangerously low - Eating!');
MMouse(x, y, 1, 1);
GetMousePos(x, y);
if (pos('Eat', rs_GetUpText) > 0) then
begin
Mouse(x, y, 1, 1,true);
wait(1500+random(500));
end;
end;
until Health > 160
end else
FreeDTM(monkfishDTM);
FreeDTM(lobsterDTM);
Bank;
end;
{*******************************************************************************
function Stunned: Boolean;
By: NCDS
Description: Return's True if stunned by NPC.
*******************************************************************************}
function Stunned: Boolean;
var
P : TPoint;
Search : TBox;
begin
P.x := MSCx;
P.y := MSCy;
Search.x1 := P.x - 30;
Search.y1 := P.y - 30;
Search.x2 := P.x + 30;
Search.y2 := P.y + 30;
Result := FindColorTolerance(P.x, P.y, 5106941, Search.x1, Search.y1,
Search.x2, Search.y2, 5) and
IsChatBoxTextBetween('stunned', 0, 7, 8);
end;
procedure CheckInv;
var
monkfishDTM, lobsterDTM : Integer;
inventory : TInvItemArray;
monkfish, lobster : TIntegerArray;
begin
monkfish := ([7946, 7947]);
lobster := ([379, 380]);
monkfishDTM := DTMFromString('mrAAAAHic42BgYHBggmAvIA4CYm8gdgZiMyA2BeLnQD' +
'X3ofgOED8D4rdA/AKIHwJxoLsdkGTCg/EDRgIYBgAQ1Ao3');
lobsterDTM := DTMFromString('mggAAAHicY2NgYMhjYmDIAeJKIC4F4lwgjgNiDkYGBhY' +
'g/g1UwwukxYGYG4iXBIkDRZiwYOyAEQeGAAD7JgT+');
if InvFull() and R_ItemIDExistsEx(lobster, inventory) then
begin
if FindDTM(lobsterDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
WriteLn('Status: Inventory full. Eating food to clear space.');
MMouse(x, y, 1, 1);
wait(200+Random(121));
GetMousePos(x, y);
if (pos('Eat', rs_GetUpText) > 0) then
begin
Mouse(x, y, 1, 1,true);
wait(1500+random(500));
end;
end;
end else
FreeDTM(monkfishDTM);
FreeDTM(lobsterDTM);
Bank;
end;
function CheckFight: Boolean;
var
P : TPoint;
Search : TBox;
begin
P.x := MSCx;
P.y := MSCy;
Search.x1 := P.x - 30;
Search.y1 := P.y - 30;
Search.x2 := P.x + 30;
Search.y2 := P.y + 30;
Result := FindColorTolerance(P.x, P.y, 5106941, Search.x1, Search.y1,
Search.x2, Search.y2, 5) and
IsChatBoxTextBetween('during', 0, 7, 8);
end;
function CheckNPC: TTile;
var
Farmer: TNPCArray;
i : Integer;
begin
if not LoggedIn then
Exit;
Farmer := GetNPCsBy('Master Farmer');
if high(Farmer) > -1 then
begin
for i:=0 to high(Farmer) do // Fixed!
begin
if (Farmer[i].Name = 'Master Farmer') then
begin
result := Farmer[i].Tile;
end;
end;
end;
end;
function ThieveFarmer: Boolean;
var
i, energy : Integer;
Farmer : TNPCArray;
FarmerPos : TPoint;
begin
energy := R_GetMMLevels('energy');
if ((energy >= 15) and ((not(R_IsRunning)))) then
Mouse(725, 109, 5, 5, true);
if CheckFight then
begin
writeln('Under attack!');
RunAway('N', true, 1, 4000);
end;
if InvFull() then CheckInv;
begin
if ((Health < 160)) then
CheckHealth;
if Stunned then
begin
writeln('Status: Stunned...');
Wait(RandomRange(2700, 500));
end;
if((not(TileOnMS(CheckNPC, 0)))) then
begin
writeln('Attempting to find farmer.');
CheckNPC;
FarmerPos := TileToMM(CheckNPC);
Mouse(FarmerPos.x, FarmerPos.y, 4, 4, True);
if(R_FlagExists)then
R_Flag;
end;
if(TileOnMS(CheckNPC, 0)) then
begin
CheckNPC;
FarmerPos := TileToMS(CheckNPC, 0);
MMouse(FarmerPos.x, FarmerPos.y, 1, -25);
end;
if(OptionExists('Steal') and (R_IsUpText('stall'))) then
begin
Mouse(FarmerPos.x, FarmerPos.y, 1, -25, false);
wait(500+Random(412));
if(WaitOptionMulti(['ickpocket'], 150)) then
begin
Result := True;
wait(50+random(100));
R_Flag;
end else
end;
if(OptionExists('Pickpocket') and (R_IsUpText('Master Farmer'))) then
begin
Mouse(FarmerPos.x, FarmerPos.y, 1, -25, true);
wait(50+random(100));
R_Flag;
end;
end;
result := true;
end;
begin
Smart_Server := SMARTWORLD;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
Wait(500);
Login;
repeat
if not(loggedin) then login;
FindNormalRandoms;
repeat
Report;
ThieveFarmer;
FindNormalRandoms;
CheckHealth;
Antiban;
until(stop = 1);
stop := 0;
until(false);
end.
Version Changes:
V1.04 - Added running and energy checks.
Progress Reports:
I'm aiming to add a profit p/h at some point aswell… Just need to write up all the damn prices ffuu–
=================================
Ran for: 25 Minutes and 1 Seconds
Gained 10019 exp
Pickpocketed 233 times
EXP/Hour: 24029
=================================
Status: Stunned…
=================================
Ran for: 45 Minutes and 32 Seconds
Gained 16813 exp
Pickpocketed 391 times
EXP/Hour: 22154
=================================
Status: Health is dangerously low!
(Longest progress report so far! No errors as of yet :P)
=================================
Ran for: 1 Hours, 26 Minutes and 39 Seconds
Gained 37953 exp
Pickpocketed 882 times
EXP/Hour: 26280
=================================
Status: Stunned…
=================================
Ran for: 2 Hours, 36 Minutes and 45 Seconds
Gained 64221 exp
Pickpocketed 1493 times
EXP/Hour: 24582
=================================
Status: Inventory full. Banking.

I'm aiming to add a profit p/h at some point aswell… Just need to write up all the damn prices ffuu–
=================================
Ran for: 25 Minutes and 1 Seconds
Gained 10019 exp
Pickpocketed 233 times
EXP/Hour: 24029
=================================
Status: Stunned…
=================================
Ran for: 45 Minutes and 32 Seconds
Gained 16813 exp
Pickpocketed 391 times
EXP/Hour: 22154
=================================
Status: Health is dangerously low!
(Longest progress report so far! No errors as of yet :P)
=================================
Ran for: 1 Hours, 26 Minutes and 39 Seconds
Gained 37953 exp
Pickpocketed 882 times
EXP/Hour: 26280
=================================
Status: Stunned…
=================================
Ran for: 2 Hours, 36 Minutes and 45 Seconds
Gained 64221 exp
Pickpocketed 1493 times
EXP/Hour: 24582
=================================
Status: Inventory full. Banking.

