[D]ude
2012-05-08 16:07:01
How Long have You Played Runescape?
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
A sig in someone's post on RiD forums
What is your general programming knowledge?
Just this one. Pascals
Are you a member of any other communities?
Formerly a member of RiD, but other than that no. Oh and the RS forums on the homepage
Tell us about yourself…
Please show us one (or multiple) of your scripts.
AIO Fighter
And the alcher
here is my varrock guard killer with banking support
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
A sig in someone's post on RiD forums
What is your general programming knowledge?
Just this one. Pascals
Are you a member of any other communities?
Formerly a member of RiD, but other than that no. Oh and the RS forums on the homepage
Tell us about yourself…
From: dude1994
My name is Steve. I'm in a 4-H club, and take various projects to the fair. I've taken model rockets for the past 4 years. They are pretty sweet. I am 17 and a senior in High school. I play a lot of Tennis for recreation. I am a camp counselor at a couple camps and help plan and organize them. I love sports if you didn't get that from tennis. I'm relatively active and jog around a mile a day. I have 5 siblings, mostl younger than me, who sometimes can annoy me but at other times are fun to be with. I enjoy building stuff. I built a corn hole set and am currently refinishing an antique chest of drawers. I have a 4.5 foot tall caution barrel in my room which I think is pretty sweet. I love nature, and love to go hiking. I play rs as a pass time, and like botting well because hehe, who really wants to be a low level forever??? I am an active learner. I am also read for fun. I play the saxophone and the drums. I am trying to form a band with a couple of friends right now actually.
Please show us one (or multiple) of your scripts.
Well I have an AIO fighter, a body essence hound siphoner for those f2pers who want to bot runespan. My first script was an alcher, it has DTMs in it, so I will attach it, because DTMs weren't necessary for the other scripts. The runespan bot has multi player support, which I plan on adding to the Fighter. Right now I am working on an Ice giants killer/banker.
Here are the links to my scripts. For some reason it says I have insufficient priveleges to attach files
Body Hounds
[SIMBA]program DudeBodyHounds;
{$DEFINE SRL5}
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{start next to what you are fighting with invy of whatever food you like
////////DUDES_AIO_FIGHTER\\\\\\\\
TIME RAN: 2 Hours, 34 Minutes and 6 Seconds
XP GAIN: 54813
XP/H: 21339.8225845017}
const
//Smart
SmartWorld = 7;
Members = False; //log into a member world=true f2p=false
SignedClient = True;
HighDetail = False;
NumbOfPlayers = 1; //how many players are you using?
StartPlayer = 0;
SRLStats_User = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
Color1 = 1234567;
Color2 = 1234567; //these are the colors the fighter will try to attack
Color3 = 1234567; //use the color picker tool to find unique colors.
Color4 = 1234567; //be sure to fill in 4 colors even if you have to reuse the same color
eat = 50; //percent to heal at
pin = ''; //put your pin in the apostraphes' not needed in this script
tol = 10; //color tolerance raise if not attacking quick enough
var startXP: integer;
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True; //remove the '{}' to add more players
end; //and change the Number of players above in constants
{with Players[1] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
end;}
{with Players[2] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
end;}
end;
Procedure SetupPlayer;
begin
Smart_Server := SmartWorld;
Smart_Members := Members;
Smart_Signed := SignedClient;
Smart_SuperDetail := HighDetail;
setupSRL();
ClickNorth(SRL_ANGLE_HIGH); //will only do this once!
ToggleXPBar(true);
Retaliate(true);
gametab(tab_inv);
end;
procedure WalkingSpec(TheWalk:Integer); //tribute to NKN's tutorial on radial walk
begin
if not LoggedIn then Exit;
case TheWalk of
1: RadialWalkTolerance(195066, 0, 359, 30,74,74, 7);
2: RadialWalkTolerance(195066,180,90,30,5,5,15);
//different places
end;
end;
procedure WalkToNextCPU; //learned radial walk from NKN's tutorial on it
var
i:Integer;
begin
if not loggedin then exit;
for i := 1 to 3 do//Uses 1-3 of my RadialWalks, which walks to the first rock
begin
Writeln('Walking to a cpu' + IntToStr(i));
WalkingSpec(i);
end;
end;
procedure ProgressReport(var startXP: integer);
var gain: integer;
begin
if not LoggedIn then Exit;
gain := GetXPBarTotal- startXP;
{$IFDEF DEBUG}
{$ENDIF}
writeln('////////DUDES_BODY_ESSHOUNDS_FIGHTER\\\\\\\\');
writeln('TIME RAN: ' + TimeRunning);
writeln('XP GAIN: ' + IntToStr(gain));
writeln('XP/H: ' + floatToStr(3600000 * 1.0 / GetTimeRunning * gain));
end;
Function Crafting: boolean; //credit to Flight's guide on using pixelshift
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Result := (AveragePixelShift(PBox, 250, 500) > 450);
end;
procedure Login;
var t: integer;
begin
MarkTime(t);
while (not LoggedIn) do
begin
if LogInPlayer then
break;
wait(10000+random(500));
if (TimeFromMark(t) > 180000) then
begin
writeln('Failed to login after 180s... Terminating');
TerminateScript;
end;
end;
end;
procedure Antiban();
begin
if not LoggedIn then Exit;
if FindNormalRandoms then
begin
writeln('in random');
logout;
end else;
case random(200) of
//0: MakeCompass(RandomRange(0,359)); //different SRL antiban procedures
1: PickUpMouse;
//2: RandomAngle(True);
3: begin HoverSkill(skill_runecrafting,false); wait(1000+random(1000)); gametab(tab_inv); end;
4: ExamineInv;
//5: BoredHuman;
//6: RandomMovement;
7: wait(1000+random(1000));
//8: missmouse(264, 177);
end;
end;
Function GotEssence:boolean;
var
i:integer;
begin
result:=false;
for i:= 1 to 28 do
if ExistsItem(i) then
begin
MMouseItem(i);
if waituptext('essence', 500) then
begin
result:= true;
end else;
end else;
end;
Function WalkToAnotherPlace:boolean;
var
i:Integer;
begin
If not loggedIn then exit;
case random(2) of
1:
begin
for i := 1 to 1 do//Uses 1-3 of my RadialWalks, which walks to the first rock
begin
result:= false;
Writeln('Walking to other place' + IntToStr(i));
WalkingSpec(i);
result:= true;
end;
end;
2:
begin
for i := 2 to 2 do
begin
result := false;
writeln('walking to other place' + IntToStr(i));
walkingspec(i);
result:=true;
end;
end;
end;
end;
Function BodyEssHoundThere:boolean;
var
x,y: integer;
begin
result := false;
if findobjcustom(x, y, ['Body e'], [16626344], tol) then
begin
result:= true;
end else;
end;
Procedure AttackBodyHound;
var
x,y: integer;
begin
if (not findobjcustom(x, y, ['Body e'], [16626344], tol)) then
begin
writeln('no hounds found');
exit;
end else;
if findobjcustom(x, y, ['Body e'], [8792359], 10) then
begin
Mouse(x, y, 2, 2, mouse_left);
end else;
end;
Procedure DebugShiftCount;
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Writeln(IntToStr(AveragePixelShift(PBox, 250, 500)));
end;
Procedure Siphon;
begin
if not LoggedIn then Exit;
if BodyEssHoundThere then
begin
repeat
AttackBodyHound;
until (didredclick);
end else;
if (not BodyEssHoundThere) then
begin
WalkToAnotherPlace;
end else;
wait(100+random(100));
while crafting do
antiban;
progressreport(startXP);
end;
begin //main script
SetupPlayer; //does the various procedures
DeclarePlayers; //and functions listed
if not (LoggedIn) then
Login;
startXP:=getXPBarTotal;
ProgressReport(startXP);
repeat
Siphon;
antiban;
progressreport(startXP);
until(not loggedin);
NextPlayer(true);
end. AIO Fighter
program DudeAIOFight;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{start next to what you are fighting with invy of whatever food you like}
const
//Smart
SmartWorld = 7;
Members = False; //log into a member world=true f2p=false
SignedClient = True;
HighDetail = False;
NumbOfPlayers = 1;
StartPlayer = 0;
SRLStats_User = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
Color1 = 1234567;
Color2 = 1234567; //these are the colors the fighter will try to attack
Color3 = 1234567; //use the color picker tool to find unique colors.
Color4 = 1234567; //be sure to fill in 4 colors even if you have to reuse the same color
eat = 50; //percent to heal at
pin = ''; //put your pin in the apostraphes' not needed in this script
tol = 11; //color tolerance raise if not attacking quick enough
var startXP: integer;
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
end;
end;
Procedure SetupPlayer;
begin
Smart_Server := SmartWorld;
Smart_Members := Members;
Smart_Signed := SignedClient;
Smart_SuperDetail := HighDetail;
setupSRL();
ClickNorth(SRL_ANGLE_HIGH); //will only do this once!
ToggleXPBar(true);
Retaliate(true);
gametab(tab_inv);
end;
procedure WalkingSpec(TheWalk:Integer); //tribute to NKN's tutorial on radial walk
begin
if not LoggedIn then Exit;
case TheWalk of
1: RadialWalkTolerance(129270, 0, 359, 25, 20, 20, 7);
2: RadialWalkTolerance(12345,136,153,74,5,5,15);
3: RadialWalkTolerance(12345,140,220,74,5,5,10);
//All Above is Walking to the giants
4: RadialWalkTolerance(12345,340,327,74,5,5,25);
5: RadialWalkTolerance(12345,330,357,74,5,5,25);
6: RadialWalkTolerance(12345,316,267,74,5,5,25);
//All Above is Walking to Bank
7: RadialWalkTolerance(12345,329,320,74,5,5,25);
8: RadialWalkTolerance(12345, 288,262,74,5,5,25);
9: RadialWalkTolerance(12345,340,250,60,5,5,25);
//To second rock from rock one.
10: RadialWalkTolerance(12345,78,94,74,5,5,25);
11: RadialWalkTolerance(12345,358,351,74,5,5,25);
//To bank, second path.
end;
end;
procedure WalkToNextCPU; //learned radial walk from NKN's tutorial on it
var
i:Integer;
begin
for i := 1 to 3 do//Uses 1-3 of my RadialWalks, which walks to the first rock
begin
Writeln('Walking to a cpu' + IntToStr(i));
WalkingSpec(i);
end;
end;
procedure ProgressReport(var startXP: integer);
var gain: integer;
begin
gain := GetXPBarTotal- startXP;
{$IFDEF DEBUG}
{$ENDIF}
writeln('////////DUDES_AIO_FIGHTER\\\\\\\\');
writeln('TIME RAN: ' + TimeRunning);
writeln('XP GAIN: ' + IntToStr(gain));
writeln('XP/H: ' + floatToStr(3600000 * 1.0 / GetTimeRunning * gain));
end;
{['9_9','9_10','];myPath := [Point(3867, 3794), Point(3855, 3802), Point(3854, 3815), Point(3854, 3825), Point(3854, 3839), Point(3853, 3850), Point(3854, 3865), Point(3854, 3879), Point(3855, 3895), Point(3859, 3916), Point(3859, 3931), Point(3862, 3949), Point(3862, 3963), Point(3862, 3982), Point(3865, 3995), Point(3867, 4012), Point(3870, 4027), Point(3874, 4041), Point(3876, 4058)];}
Function Fighting: boolean; //credit to Flight's guide on using pixelshift
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Result := (AveragePixelShift(PBox, 250, 500) > 450);
end;
procedure Login;
var t: integer;
begin
MarkTime(t);
while (not LoggedIn) do
begin
if LogInPlayer then
break;
wait(10000+random(500));
if (TimeFromMark(t) > 180000) then
begin
writeln('Failed to login after 180s... Terminating');
TerminateScript;
end;
end;
end;
procedure Antiban();
begin
if FindNormalRandoms then
begin
writeln('in random');
end else;
case random(200) of
//0: MakeCompass(RandomRange(0,359)); //different SRL antiban procedures
1: PickUpMouse;
//2: RandomAngle(True);
3: begin HoverSkill(skill_strength,false); wait(1000+random(1000)); gametab(tab_inv); end;
4: ExamineInv;
//5: BoredHuman;
//6: RandomMovement;
7: wait(1000+random(1000));
//8: missmouse(264, 177);
end;
end;
Function ImHungry: boolean;
begin
result := false;
if (HPPercent < eat) then
begin
result := true;
end else;
end;
Procedure GetFat; //used Narcle's fast fighter healing method to help develope my own
var
I:integer;
begin
for I := 1 to 28 do
if existsitem(I) then
begin
MMouseItem(I);
if waituptextmulti(['Eat', 'drink'], 500) then
begin
clickmouse2(mouse_left);
exit;
end else;
end else;
for I := 1 to 28 do
if not GotMilk then
begin
wait(3000+random(2000));
writeln('Ate all my Burgers');
logout;
TerminateScript;
end else;
end;
Function NextCPU:boolean;
var
i:Integer;
begin
for i := 1 to 1 do//Uses 1-3 of my RadialWalks, which walks to the first rock
begin
result:= false;
Writeln('Walking to Iceys' + IntToStr(i));
WalkingSpec(i);
result:= true;
end;
end;
Procedure DebugShiftCount;
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Writeln(IntToStr(AveragePixelShift(PBox, 250, 500)));
end;
Procedure ImAngry;
var
hx, hy: integer;
begin
if not FindObjCustom(hx, hy, ['Attack'], [color1, color2, color3, color4], tol) then
begin
NextCPU;
end else;
if FindObjCustom(hx, hy, ['Attack'], [color1, color2, color3, color4], tol) then
begin
writeln('Im lookin for a crawler ta kill');
Mouse(hx, hy, 0, 0, mouse_left);
end else;
while Fighting do
begin
//debugshiftcount;
antiban;
progressreport(startXP);
if (ImHungry) then
begin
GetFat;
end else;
end;
repeat
wait(10);
until (not Fighting);
end;
begin //main script
SetupPlayer; //does the various procedures
DeclarePlayers; //and functions listed
if not (LoggedIn) then
Login;
startXP:=getXPBarTotal;
ProgressReport(startXP);
repeat
ImAngry;
antiban;
if ImHungry then
begin
GetFat;
end else;
while Fighting do
begin
antiban;
progressreport(startXP);
if (ImHungry) then
begin
GetFat;
end else;
end;
ProgressReport(startXP);
until(not loggedin);
end. And the alcher
program DudesMagicAlcher;
{$DEFINE SMART}
{$i srl/srl.simba}
const
//Smart
SmartWorld = 7;
Members = False;
SignedClient = True;
HighDetail = False;
NumbOfPlayers = 1;
StartPlayer = 0;
AlchStyle = 0; //0 for high lvled alch 1 for low
SRLStats_User = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
var startXP: integer;
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
end;
end;
procedure ProgressReport(var startXP: integer);
var gain: integer;
begin
gain := GetXPBarTotal- startXP;
{$IFDEF DEBUG}
{$ENDIF}
writeln('////////DUDES_MAGIC_ALCHER\\\\\\\\');
writeln('TIME RAN: ' + TimeRunning);
writeln('XP GAIN: ' + IntToStr(gain));
writeln('XP/H: ' + floatToStr(3600000 * 1.0 / GetTimeRunning * gain));
end;
procedure Login;
var t: integer;
begin
MarkTime(t);
while (not LoggedIn) do
begin
if LogInPlayer then
break;
wait(10000+random(500));
if (TimeFromMark(t) > 180000) then
begin
writeln('Failed to login after 180s... Terminating');
TerminateScript;
end;
end;
end;
procedure antiban();
begin
Writeln('Performing anti-ban');
case random(200) of
0: MakeCompass(RandomRange(100,180));
1: wait(1000+random(2000));
2: RandomAngle(True);
3: begin HoverSkill(skill_Magic,false); wait(1500+random(1500)); GameTab(tab_Magic); wait(100+random(50)); MMouse(652, 230, 3, 3); end;
4: wait(1000+random(1000));
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20: wait(10);
21: PickUpMouse;
end;
end;
Procedure Alch ;
var DTM,seX,seY :integer;
begin
case AlchStyle of
0: begin
DTM := DTMFromString('mAAEAAHiclcy9CsAgDEbRKFg66KCWtqL2/R+zd8gg2fzgkB9Ioog8uHDjxUDTOSPhRMCh+4qIojcdn9H193RevDGXavvduE1rfhAuAvA=');
writeln('Casting High Levelled Alchemy');
if(FindDTM(DTM, seX,seY, MIX1, MIY1, MIX2, MIY2))then
begin
Mouse(seX,seY, 5, 5, mouse_Left);
Mouse(662, 228, 10, 10, mouse_Left);
case Random(10) of
0: Wait(500 + Random(700));
1: Wait(600 + Random(600));
2: Wait(700 + Random(500));
3: Wait(800 + Random(400));
4: Wait(900 + Random(300));
5: Wait(1000 + Random(200));
6: Wait(1100 + Random(100));
end;
end;
FreeDTM(DTM);
end;
end;
case AlchStyle of
1: begin
writeln('Casting Low Levelled Alchemy');
DTM := DTMFromString('mbQAAAHicY2VgYBAAYiEgFoViHiDmg7JB4vxQ9u/fvxmYGJlQMDbAiAWDAQD/bAPB');
if(FindDTM(DTM, seX,seY, MIX1, MIY1, MIX2, MIY2))then
begin
Mouse(seX,seY, 5, 5, mouse_Left);
Mouse(579, 228, 10, 10, mouse_Left);
case Random(10) of
0: Wait(500 + Random(700));
1: Wait(600 + Random(600));
2: Wait(700 + Random(500));
3: Wait(800 + Random(400));
4: Wait(900 + Random(300));
5: Wait(1000 + Random(200));
6: Wait(1100 + Random(100));
end;
end;
FreeDTM(DTM);
end;
end;
end;
begin
Smart_Server := SmartWorld;
Smart_Members := Members;
Smart_Signed := SignedClient;
Smart_SuperDetail := HighDetail;
setupSRL();
DeclarePlayers;
if not (LoggedIn) then
Login;
ClickNorth(SRL_ANGLE_HIGH); //will only do this once!
ToggleXPBar(true);
startXP:=getXPBarTotal;
ProgressReport(startXP);
wait(800+random(700));
GameTab(tab_Magic);
wait(500+random(600));
MMouse(652, 230, 3, 3);
repeat
ProgressReport(startXP);
Alch;
Antiban;
until(false);
end. here is my varrock guard killer with banking support
program DudesVarrockGuards;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{Open your bank and put your swordfish in colum 2 row 2,
make sure the swordfish is in the tab already opened, then walk to varrock guards
and hit play}
const
//Smart
SmartWorld = 7;
Members = False; //log into a member world=true f2p=false
SignedClient = True;
HighDetail = False;
NumbOfPlayers = 1;
StartPlayer = 0;
SRLStats_User = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
Color1 = 7043964;
Color2 = 13818843; //these are the colors the fighter will try to attack
Color3 = 2918031; //change if not working well
Color4 = 2918031;
eat = 50; //percent to heal at
pin = '1375'; //put your pin in the apostraphes'
var startXP: integer;
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
end;
end;
Procedure SetupPlayer;
begin
Smart_Server := SmartWorld;
Smart_Members := Members;
Smart_Signed := SignedClient;
Smart_SuperDetail := HighDetail;
setupSRL();
ClickNorth(SRL_ANGLE_HIGH); //will only do this once!
ToggleXPBar(true);
Retaliate(true);
gametab(tab_inv);
end;
procedure ProgressReport(var startXP: integer);
var gain: integer;
begin
gain := GetXPBarTotal- startXP;
{$IFDEF DEBUG}
{$ENDIF}
writeln('////////DUDES_HILL_GIANTS\\\\\\\\');
writeln('TIME RAN: ' + TimeRunning);
writeln('XP GAIN: ' + IntToStr(gain));
writeln('XP/H: ' + floatToStr(3600000 * 1.0 / GetTimeRunning * gain));
end;
procedure Login;
var t: integer;
begin
MarkTime(t);
while (not LoggedIn) do
begin
if LogInPlayer then
break;
wait(10000+random(500));
if (TimeFromMark(t) > 180000) then
begin
writeln('Failed to login after 180s... Terminating');
TerminateScript;
end;
end;
end;
procedure Antiban();
begin
if FindNormalRandoms then
begin
writeln('in random');
logout;
terminatescript;
end else;
case random(200) of
0: MakeCompass(RandomRange(100,180)); //different SRL antiban procedures
1: PickUpMouse;
//2: RandomAngle(True);
//3: begin HoverSkill(skill_strength,false); wait(1000+random(1000)); gametab(tab_inv); end;
4: ExamineInv;
//5: BoredHuman;
//6: RandomMovement;
7: wait(1000+random(1000));
//8: missmouse(264, 177);
end;
end;
Function WalkBack: boolean;
var
mypath:tpointarray;
begin
result:=false;
SPS_Setup(runescape_surface, ['11_6','11_7','12_7']);
myPath := [Point(4577, 2897), Point(4577, 2913), Point(4581, 2930), Point(4596, 2930), Point(4611, 2932), Point(4628, 2933), Point(4644, 2936), Point(4664, 2931), Point(4674, 2919), Point(4682, 2905), Point(4686, 2888), Point(4687, 2880), Point(4687, 2859), Point(4685, 2848), Point(4686, 2827), Point(4686, 2807), Point(4686, 2794)];
SPS_WalkPath(MyPath);
wait(2000+random(2000));
Retaliate(True);
gametab(tab_inv);
wait(2000+random(2000));
result:=true;
end;
Function BankFood:boolean;
var
dtm, seX, seY:integer;
begin
Result:=false;
if OpenBank('vwb', False, True) then
begin
if pinscreen then
begin
InPin(pin);
end else;
if bankscreen then
begin
Withdraw(1, 1, 28);
CloseBank;
end else
end else;
gametab(tab_inv);
DTM := DTMFromString('mbQAAAHicY2VgYBABYmkgFgViXiDmAmI+IOaEYhBbGIibYjqBJBMaxgSMWDAYAACUmAIW');
if(not FindDTM(DTM, seX,seY, MIX1, MIY1, MIX2, MIY2))then
begin
if OpenBank('vwb', False, True) then
begin
if pinscreen then
begin
InPin(pin);
end else;
if bankscreen then
begin
Withdraw(1, 1, 28);
CloseBank;
end else
end else;
end else;
freedtm(dtm);
Result:=true;
WalkBack;
end;
Function GetFood: boolean;
var
mypath:tpointarray;
begin
Result:=false;
Retaliate(False);
SPS_Setup(runescape_surface, ['11_6','11_7','12_7']);
myPath := [Point(4707, 2792), Point(4696, 2792), Point(4682, 2794), Point(4688, 2828), Point(4687, 2840), Point(4688, 2860), Point(4686, 2881), Point(4687, 2901), Point(4684, 2917), Point(4667, 2935), Point(4652, 2935), Point(4641, 2935), Point(4625, 2932), Point(4601, 2931), Point(4583, 2932), Point(4579, 2910), Point(4580, 2902), Point(4579, 2893)];
SPS_WalkPath(MyPath);
wait(2000+random(2000));
BankFood;
Result:=true;
end;
Function Fighting: boolean; //credit to Flight's guide on using pixelshift
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Result := (AveragePixelShift(PBox, 250, 500) > 450);
end;
Function ImHungry: boolean;
begin
result := false;
if (HPPercent < eat) then
begin
result := true;
end else;
end;
Function GotMilk:boolean;
var
i:integer;
begin
result :=false;
for I := 1 to 28 do
if existsitem(I) then
begin
MMouseItem(I);
if waituptextmulti(['Eat', 'drink'], 500) then
begin
Result := true;
end else;
end else;
end;
Procedure GetFat; //used Narcle's fast fighter healing method to help develope my own
var
I:integer;
begin
for I := 1 to 28 do
if existsitem(I) then
begin
MMouseItem(I);
if waituptextmulti(['Eat', 'drink'], 500) then
begin
clickmouse2(mouse_left);
exit;
end else;
end else;
for I := 1 to 28 do
if not GotMilk then
begin
getfood;
end else;;
end;
procedure WalkingSpec(spot:Integer); //tribute to NKN's tutorial on radial walk
begin
if not LoggedIn then Exit;
case spot of
1: RadialWalkTolerance(129270, 0, 359, 25, 20, 20, 7);
end;
end;
Function FindGuard:boolean;
var
hi:Integer;
begin
for hi := 1 to 3 do//Uses 1-3 of my RadialWalks, which walks to the first rock
begin
Writeln('Walking to a cpu' + IntToStr(hi));
WalkingSpec(hi);
end;
end;
Procedure ImAngry;
var
hx, hy: integer;
begin
wait(1000 + random(1000));
if not FindObjCustom(hx, hy, ['Attack'], [color1, color2, color3, color4], 5) then
begin
FindGuard;
end else;
if FindObjCustom(hx, hy, ['Attack'], [color1, color2, color3, color4], 5) then
begin
writeln('Im lookin for a guard ta kill');
Mouse(hx, hy, 0, 0, mouse_left);
while Fighting do
begin
antiban;
progressreport(startXP);
if (ImHungry) then
begin
GetFat;
end else;
end;
repeat
wait(10);
until (not Fighting);
end else;
end;
begin //main script
SetupPlayer; //does the various procedures
DeclarePlayers; //and functions listed
if not (LoggedIn) then
Login;
startXP:=getXPBarTotal;
ProgressReport(startXP);
repeat
ImAngry;
antiban;
if ImHungry then
begin
GetFat;
end else;
{Gametab(tab_inv);
wait(500+random(200));
if (existsitem(28)) then
begin
writeln('getting more food');
GetFood;
Bankfood;
Walkback;
end else;}
ProgressReport(startXP);
until(not LoggedIn);
end.