Getdropped
2012-07-25 16:51:33
How Long have You Played Runescape?
8 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
-
What is your general programming knowledge?
Java, C++, Visual basics, and HTML
and now pascal XD
Are you a member of any other communities?
none
Tell us about yourself…
Please show us one (or multiple) of your scripts.
New updated gnome agility script:
Origional gnome agility runner:
8 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
-
What is your general programming knowledge?
Java, C++, Visual basics, and HTML
and now pascal XD
Are you a member of any other communities?
none
Tell us about yourself…
From: getdropped69
Ok so i'm 17 and I have loved video game for as long as I can remember. I Have gotten into coding in school and enjoy it quite a bit. I work during the week at a Market Basket which is my local super market. I have been playing runescape for somewhere around 8 years. I can't really remember when it was that i actually started but it was sometime around then. My holiday items go back to 2005 but I know i started before i got them. I have been writing scripts now for a while. I would say i know how to code ;). IRL I am sort of shy until you get to know me. I have a sister who is 19. I also have a cat which that loves to annoy me while im on the computer ;). In my free time I enjoy going paintballing with my friends. I love watching "Burn Notice" ( a Tv show). I live in New Hampshire (US). I am taking an android app class that my school is offering in the fall. That pretty much my life in a nut shell ;)
Please show us one (or multiple) of your scripts.
//by Getdropped ~Changing the world one script at a time
program HillGiants;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
{.include SRL/SRL/Skill/Fighting.simba}
{$i sps/sps.simba}
{$i ObjectDTM\ObjDTMInclude.simba}
var //Ladder, SpotOne
Area, FoodSlot, cx, cy, LootCount, Fails : Integer;
// PathToDung, PathToBank : TStringArray; //decided not to use paths
const
FoodAmount = 10;
{
Setup: Place your character next to the upper left banker in varrock west bank
have your food in the second bank slot and atleast 2 keys in the first
you can use backup food in your 3, 4, 5 etc bank slots
make sure to sell bones at +5% aswell a roots and enjoy ;)
Now working with simba .99!
}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;//set higher if you plan on using more
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;//what player to start with
with Players[0] do
begin
Name := ''; //Character Name
Pass := ''; //Character Pass
Pin := ''; //Pin for bank
Active := true;
end;
{with Players[1] do
begin
Name := ''; //Character Name
Pass := ''; //Character Pass
Pin := ''; //Pin for bank
Active := true;
end;
with Players[2] do
begin
Name := ''; //Character Name
Pass := ''; //Character Pass
Pin := ''; //Pin for bank
Active := true;
end;
with Players[3] do
begin
Name := ''; //Character Name
Pass := ''; //Character Pass
Pin := ''; //Pin for bank
Active := true;
end; } //honestly if you need more than 4 accounts Ctrl + c and Ctrl + v =P
end;
procedure Bank;
begin
repeat
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N');
OpenBankNPC;
until BankScreen or PinScreen;
if PinScreen then
begin
repeat
InPin(Players[0].Pin);
until BankScreen or not (LoggedIn);
end;
if BankScreen then
begin
Wait(RandomRange(200, 300));
DepositAll;
Wait(RandomRange(200, 300));
Withdraw(1, 0, FoodAmount);
Wait(RandomRange(400, 500));
Withdraw(0, 0, 1);
Wait(RandomRange(200, 300));
CloseBank;
Wait(RandomRange(500, 700));
end;
end;
function IsInHouse: Boolean;
begin
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
Result := ObjDTM_InArea('80:80:12:1:7:49:96:1:7:49:75:1:7:128:108:1:7:132:91:'+
'1:7:132:66:2:7:82:101:2:7:78:113:2:7:103:113:2:7:115:88:2:7:115:80:2:7:65:'+
'101:2:7:61:106:4:68:67:68:85:89:85:89:68', True);
end;
procedure DoWalkToDung;
begin
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
if ObjDTM_Walk('59:59:4:1:7:32:83:1:7:62:37:0:7:83:71:3:7:122:54', 0, 100, 40,
True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(608, 60, 2, 2, true);
end;
if ObjDTM_Walk('29:49:4:1:7:71:17:1:7:62:37:1:7:33:82:1:7:38:83', 0, 100, 40,
True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(582, 80, 2, 2, true);
end;
if (ObjDTM_Walk('17:102:5:1:7:54:83:1:7:29:78:1:7:25:66:1:7:13:74:1:7:17:86',
0, 100, 40, True)) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(569, 105, 2, 2, true);
end;
if ObjDTM_Walk('33:116:5:1:7:82:87:1:7:45:103:1:7:25:107:1:7:17:94:1:7:82:67',
0, 100, 40, True) then
begin
While IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(580, 119, 2, 2, true);
end;
if ObjDTM_Walk('18:67:6:1:7:66:91:1:7:70:63:1:7:50:71:1:7:46:87:1:7:26:58:1:7:'+
'45:107', 0, 100, 40, True) then
begin
While IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(572, 63, 2, 2, true);
end;
if ObjDTM_Walk('44:48:9:1:7:95:51:1:7:90:67:1:7:66:91:2:7:66:72:2:7:78:48:2:'+
'7:79:40:2:7:46:59:2:7:42:71:1:7:115:51', 0, 100, 40, True) then
begin
While IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(584, 66, 2, 2, true);
end;
end;
/////////////////////////////////////////////////////////
///////////ModWalkPath///////////////////////////////////
///credits to SPS_WalkPath - all I changed was the fflag/
/////////////////////////////////////////////////////////
function ModWalkPath(Path: TPointArray): boolean;
var
I, H, T, D: integer;
P, MM: TPoint;
begin
H := High(Path);
T := GetSystemTime + 1000 + Random(5000);
while (not Result) and (GetSystemTime < T) do
begin
RunEnergy(20);
P := SPS_GetMyPos;
for I := H downto 0 do
begin
MM.X := MMCX + Path[I].X - P.X;
MM.Y := MMCY + Path[I].Y - P.Y;
D := Distance(MM.X, MM.Y, MMCX, MMCY);
if (D < 10) then
break
else
if (D < 70) then
begin
if (SPS_MultiMouse) then
MultiMouse(MM.X, MM.Y, 25, 3, false)
else
Mouse(MM.X, MM.Y, 5, 5, mouse_Left);
FFlag(100);
//FFlag(Integer(I <> H) * 15); makes it so it will click the points faster
T := getSystemTime + 1000 + Random(1000);
Break;
end;
end;
Result := (I = H);
end;
end;
procedure WalkInDungeon;
var
i : Integer;
InDungPath :TPointArray;
begin
i := random(3);
case i of 0:
begin
InDungPath := [Point(132, 80), Point(145, 112)];
Writeln('Walking to point one.');
ModWalkPath(InDungPath);
Writeln('At point one.');
end;
1:
begin
InDungPath := [Point(132, 80), Point(145, 112), Point(130, 150)];
Writeln('Walking to point two.');
ModWalkPath(InDungPath);
Writeln('At point two.');
end;
2:
begin
InDungPath := [Point(132, 80), Point(145, 112), Point(130, 150),
Point(98, 169)];
Writeln('Walking to point three.');
ModWalkPath(InDungPath);
Writeln('At point three.');
end;
end;
{ old if statement for ifs +3 use cases ;)
if(i = 0) then
begin
InDungPath := [Point(132, 80), Point(145, 112)];
Writeln('Walking to point one.');
ModWalkPath(InDungPath);
Writeln('At point one.');
end;
if (i = 1)then
begin
InDungPath := [Point(132, 80), Point(145, 112), Point(130, 150)];
Writeln('Walking to point two.');
ModWalkPath(InDungPath);
Writeln('At point two.');
end;
if (i = 2) then
begin
InDungPath := [Point(132, 80), Point(145, 112), Point(130, 150),
Point(98, 169)];
Writeln('Walking to point three.');
ModWalkPath(InDungPath);
Writeln('At point three.');
end; }
end;
procedure DoWalkToBank;
begin
Wait(RandomRange(1500, 2000));
if ObjDTM_Walk('134:118:9:2:7:113:72:2:7:113:80:2:7:101:103:2:7:82:92:2:7:78:'+
'103:2:7:66:92:1:7:129:83:1:7:125:98:1:7:101:122', 0, 100, 40, True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(675, 112, 2, 2, true);
end;
if ObjDTM_Walk('142:83:9:1:7:98:71:1:7:94:87:1:7:94:106:1:7:113:91:1:7:117:63:'+
'1:7:125:75:1:7:121:102:1:7:98:44:1:7:74:59', 0, 100, 40, True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(690, 101, 2, 2, true);
end;
if ObjDTM_Walk('123:42:8:1:7:90:103:1:7:74:87:1:7:66:71:1:7:54:87:1:7:62:99:1:'+
'7:86:67:1:7:58:59:1:7:121:51', 0, 100, 40, True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(678, 54, 2, 2, true);
end;
if ObjDTM_Walk('140:63:8:1:7:78:87:1:7:78:67:1:7:74:55:1:7:86:47:1:7:90:59:1:'+
'7:114:63:1:7:42:103:1:7:82:31', 0, 100, 40, True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(680, 81, 2, 2, true);
end;
if ObjDTM_Walk('138:116:5:1:7:90:115:1:7:58:83:1:7:118:71:1:7:126:51:1:7:98:47',
0, 100, 40, True) then
begin
while IsMoving do
Wait(RandomRange(250, 350));
end
else
begin
Writeln('Could not find the point using backup path');
Mouse(677, 104, 2, 2, true);
end;
end;
{ old walking in dungeon before i created sps map
procedure FindGiants;
var
aFound : extended;
j, x, y :Integer;
begin
if not(InFight) then
begin
j := Random(10);
if (j = 0) then
begin
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(800, 1200));
Writeln('Looking for Giant');
SpotOne := DTMFromString('m6wAAAHic42ZgYJjBxMCwDoi3AvEOIN4OxIug/GVAvAaI'+
'a4C4D4gPAdWvgOK1QLwViBcB8U4gXoyEJwHxxKZEBmZGJoK4sTiMQYSBOMAFxIwkYCQAAD'+
'zoEaY=');
Wait(randomrange(1500, 2000));
if FindDTMRotated(SpotOne, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4,
Pi/60, aFound) then
begin
Writeln('Moving to spot one!');
MMouse(x, y, 3, 3);
Getmousepos(x,y);
Mouse(x, y, 0, 0, true);
Freedtm(SpotOne);
Exit;
end
else
begin
Mouse(631, 158, 1, 1, true);
end;
end;
Freedtm(SpotOne);
end;
end;
}
procedure TakeLoot;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.29, 1.04);
if not(FindColorsTolerance(arP, 12239314, MSX1, MSY1, MSX2, MSY2, 17)) then
begin
//Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 31.83) and (X <= 82.73) and (Y >= 33.40) and (Y <= 85.03) and
(Z >= 34.45) and (Z <= 90.65) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Take')) and not(IsUpText('ake Bones')) then
begin //so it wont click on the normal bones by stop 3
Getmousepos(P.x, P.y);
Mouse(P.x, P.y, 0, 0, false);
if WaitOptionMulti(['ake Lim', 'ake Uncu', 'une', 'talism', 'ake Big'], 200) then
begin
Fails := 0;
Inc(LootCount);
end;
WaitOptionMulti(['ake Lim', 'ake Uncu', 'une', 'talism', 'ake Big'], 200);
Wait(RandomRange(500, 700));
while IsMoving do
Wait(RandomRange(250, 350));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
Exit;
end;
end;
procedure AttackGiant;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
if (not(InFight)) then
begin
Inc(Fails);
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.16, 1.85);
if not(FindColorsTolerance(arP, 6530514, MSX1, MSY1, MSX2, MSY2, 15)) then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 22.29) and (X <= 61.59) and (Y >= 21.29) and (Y <= 60.54) and
(Z >= 11.79) and (Z <= 32.12) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Hill') and not(IsFightAt(P.x, P.y))) then
begin
Getmousepos(P.x, P.y);
Mouse(P.x, P.y, 0, 0, false);
WaitOptionMulti(['ttack', 'ck Hill', 'Hill'], 200);
Wait(RandomRange(1000, 1200));
While ismoving do
Wait(RandomRange(250, 350));
//Mouse(p.x, p.y, 0, 0, true);
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
Exit;
end;
end;
if (InFight)then
begin
Fails := 0;
end;
end;
procedure WalkThroughDoor;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.45, 1.04);
if not(FindColorsTolerance(arP, 2106920, MSX1, MSY1, MSX2, MSY2, 4)) then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 1.11) and (X <= 2.72) and (Y >= 1.20) and (Y <= 2.87) and
(Z >= 0.97) and (Z <= 2.62) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Open')) then
begin
Getmousepos(P.x, P.y);
Mouse(P.x, P.y, 0, 0, false);
if WaitOptionMulti(['Open'], 200) then
Inc(Area);
WaitOptionMulti(['Open'], 200);
Wait(RandomRange(1500, 2000));
while IsMoving do
Wait(RandomRange(250, 350));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
Exit;
end;
end;
procedure ClimbDown;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.57, 4.25);
if not(FindColorsTolerance(arP, 1186348, MSX1, MSY1, MSX2, MSY2, 9)) then
begin
Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 0.30) and (X <= 4.27) and (Y >= 0.30) and (Y <= 4.14) and
(Z >= 0.20) and (Z <= 1.96) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Climb')) then
begin
Getmousepos(P.x, P.y);
Mouse(P.x, P.y, 0, 0, false);
if WaitOptionMulti(['Climb'], 200) then
Inc(Area);
WaitOptionMulti(['Climb'], 200);
Wait(RandomRange(2000, 2500));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
Writeln('FindObject could not find object.');
Exit;
end;
end;
procedure WalkToLadder;
var
//x,y : Integer;
InDungPath :TPointArray;
begin
InDungPath := [Point(96, 161), Point(126, 143), Point(139, 117), Point(132, 82)];
Writeln('Walking to point ladder.');
ModWalkPath(InDungPath);
Writeln('At the ladder.');
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(800, 1200));
{Ladder := DTMFromString('mQwAAAHicY2ZgYOBjZmAQAGJuID4G5J+E4ggDbjjmAvJhmBEJ'+
'AwEAuP0EaA==');
Wait(randomrange(1500, 2000));
if FindDTMRotated(Ladder, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4,Pi/60,
aFound) then
begin
writeln('Found ladder DTM');
MMouse(x, y, 3, 3);
Mouse(x, y, 0, 0, true);
Freedtm(Ladder);
Exit;
end;
Freedtm(Ladder);}
end;
procedure ClimbUp;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.19, 0.14);
if not(FindColorsTolerance(arP, 3425103, MSX1, MSY1, MSX2, MSY2, 7)) then
begin
Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 3.37) and (X <= 9.15) and (Y >= 3.38) and (Y <= 9.44) and (Z >= 2.46) and (Z <= 6.36) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Climb')) then
begin;
Getmousepos(P.x, P.y);
Mouse(P.x, P.y, 0, 0, false);
if WaitOptionMulti(['Climb'], 200) then
Inc(Area);
WaitOptionMulti(['Climb'], 200);
Wait(RandomRange(500, 700));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
//Writeln('FindObject could not find object.');
Exit;
end;
end;
procedure EatFood;
begin
InvMouse(FoodSlot, 3);
Wait(randomrange(500, 1000));
if (IsUpText('Eat')) then
begin
Wait(1000);
ClickMouse2(True);
end
else
FoodSlot := 28;
Wait(randomrange(500, 1000));
Inc(FoodSlot);
end;
procedure AntiBan;
var
x : Integer;
begin
x := Random(500) case x of 0: HoverSkill('Attack', false);
1:
HoverSkill('Strength', false);
2:
HoverSkill('Defence', false);
3:
HoverSkill('hitpoints', false);
12..15:
PickUpMouse;
16..25:
RandomMovement;
26..27:
RandomRClick;
28..32:
BoredHuman;
33:
ExamineInv;
34:
RandomAngle(SRL_ANGLE_HIGH);
35..45:
GameTab(tab_magic);
46..55:
ExamineInv;
56..60:
GameTab(tab_quest);
61..70:
Wait(RandomRange(900, 950));
71..75:
GameTab(tab_friends);
76..80:
GameTab(tab_prayer);
end;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N');
if not(GameTab(tab_inv)) then
GameTab(tab_inv);
end;
//By Dgby714
function DownloadToFile(const URL, Filename: string): boolean;
var
FileI: LongInt;
FileC, FileH: string;
begin
Result := False;
FileI := InitializeHTTPClient(False,False);
try
FileC := GetHTTPPage(FileI, URL);
FileH := GetRawHeaders(FileI);
if ((FileC = '') or (FileH = '')) then
begin
WriteLn('Error downloading "' + URL + '".');
Exit;
end;
FileH := Copy(GetRawHeaders(FileI), 10, Pos(#13, FileH) - 10);
if (FileH <> '200 OK') then
begin
WriteLn('Couldn''t download "' + URL + '", Error Code: ' + FileH + '.');
Exit;
end;
finally
FreeHTTPClient(FileI);
end;
try
if not FileExists(Filename) then
FileI := CreateFile(Filename)
else
FileI := OpenFile(Filename, False);
CloseFile(FileI);
FileI := RewriteFile(Filename, False);
Result := WriteFileString(FileI, FileC);
finally
CloseFile(FileI);
end;
end;
procedure DownloadMap;
begin
if not(FileExists(AppPath + '/Includes/SPS/img/runescape_other/edgedungeon.png')) then
begin
Writeln('Downloading Edge Dungeon map...');
DownloadToFile('http://img163.imageshack.us/img163/4056/edgehillgiants.png',
AppPath + '/Includes/SPS/img/runescape_other/edgedungeon.png');
end
else
Writeln('You already have the map.... moving on.');
end;
procedure Report;
begin
Writeln('//****************************');
Writeln('Thank You for using Jeffrey''s Hill Giant Pro!');
Writeln('You have taken: ' + IntToStr(LootCount) + ' Loots');
Writeln('This has been running for ' + TimeRunning);
Writeln('//****************************');
Exit;
end;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
ObjDTM_Setup;
ObjDTM_Debug := false;
DeclarePlayers;
DownloadMap;
//SPS_Setup(RUNESCAPE_SURFACE, ['11_7','10_7']);
SPS_Setup(RUNESCAPE_OTHER, ['edgedungeon']);
Writeln('Welcome to Jeffrey''s Hill Giant Pro!');
repeat
LoginPlayer;
Wait(800);
SetAngle(SRL_ANGLE_HIGH);
Area := 0;
repeat
FindNormalRandoms;
FoodSlot := 1;
RunEnergy(20);
DoWalkToDung;
RunEnergy(20);
repeat
WalkThroughDoor;
FindNormalRandoms;
if (Area = 1) then
begin
Mouse(257, 122, 5, 5, true);
wait(randomrange(500, 1000));
end;
if IsInHouse then
begin
Area := 1
end
else
begin
Area := 0;
end;
until(Area > 0);
repeat
repeat
ClimbDown;
FindNormalRandoms;
until(Area > 1);
until(not(ObjDTM_Find('80:80:12:1:7:49:96:1:7:49:75:1:7:128:108:1:7:132:'+
'91:1:7:132:66:2:7:82:101:2:7:78:113:2:7:103:113:2:7:115:88:2:7:115:'+
'80:2:7:65:101:2:7:61:106:4:68:67:68:85:89:85:89:68', cx, cy, True)));
//until(not(ObjDTM_Find('80:72:14:1:7:50:67:1:7:50:87:1:7:130:82:1:7:127:98:1:7:103:123:2:7:66:92:2:7:62:97:2:7:78:104:2:7:82:92:2:7:102:104:2:7:114:79:2:7:114:71:3:7:97:54:3:7:63:39', cx, cy, True)))
Area := 2;
Wait(randomrange(1000, 1500));
//Mouse(631, 158, 1, 1, true);old walk south
WalkInDungeon;
Wait(randomrange(1000, 1500));
Fails := 0;
repeat
FindNormalRandoms;
AntiBan;
RunEnergy(20);
AttackGiant;
TakeLoot;
if (HPPercent < 60) then
EatFood;
if (Fails > 10) then
begin
WalkInDungeon;
Fails := 0;
end;
until(invfull or (HPPercent < 40) or (FoodSlot >= 28));
Fails := 0;
repeat
repeat
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N');
FindNormalRandoms;
WalkToLadder;
ClimbUp;
//ClimbUp;
//ClimbUp;
until(Area > 2);
until(ObjDTM_Find('80:80:12:1:7:49:96:1:7:49:75:1:7:128:108:1:7:132:91:1'+
':7:132:66:2:7:82:101:2:7:78:113:2:7:103:113:2:7:115:88:2:7:115:80:2:'+
'7:65:101:2:7:61:106:4:68:67:68:85:89:85:89:68', cx, cy, True));
//until(ObjDTM_Find('80:72:14:1:7:50:67:1:7:50:87:1:7:130:82:1:7:127:98:1:7:103:123:2:7:66:92:2:7:62:97:2:7:78:104:2:7:82:92:2:7:102:104:2:7:114:79:2:7:114:71:3:7:97:54:3:7:63:39', cx, cy, True))
Area := 3;
repeat
WalkThroughDoor;
FindNormalRandoms;
if not(IsInHouse) then
begin
Area := 4;
end
else
begin
Area := 3;
end;
until(Area > 3);
RunEnergy(20);
DoWalkToBank;
Bank;
FindNormalRandoms;
report;
Area := 0;
until(not(loggedin));
NextPlayer(Players[CurrentPlayer].Active = False);//because you ARE logged out
until AllPlayersInactive;//multiplayer check
end.New updated gnome agility script:
//by Getdropped ~ Changing the world one script at a time ;)
Program GnomeNoobAgility;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
var
Area, FailSafe, TimesFinished, EXPGained, NetColor, Failed :Integer;
const
//NetColor = 5269112;//changed to getcolor(x, y)
LogColor = 3487549;
{
setup place your character at the start at the log click run and watch
the exp roll in XD
Hopefully you all will like the standards and the overall function on this
script!
Be sure to post bugs and comments on the forum and enjoy!
Set your screen view to the middle to the bar
}
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;//set higher if you are using more players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //player you want to start with
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
{
with Players[1] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
with Players[2] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
with Players[3] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
with Players[4] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
}
end;
procedure CrossLog;
var
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
if (FailSafe < 20) then
begin
Writeln('Trying to cross the log');
if FindColorsSpiralTolerance(x, y, TPA, LogColor, MSX1, MSY1, MSX2, MSY2, 1) then
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To (Length(ATPA) - 1) Do
begin
if MiddleTPAEX(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
Wait(RandomRange(450, 550));
Inc(FailSafe);
if IsUpText('og') Then
begin
ClickMouse2(True);
Writeln('Crossing Log');
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
FailSafe := 0;
Exit;
end;
end;
end;
end;
end;
If (FailSafe > 19) then
begin
Writeln('Failed to find the log doing failsafe walk.');
Mouse(593, 92, 2, 2, true);//minimap walk
Wait(RandomRange(1000, 1500));
while IsMoving do
Wait(RandomRange(250, 350));
FailSafe := 0;
end;
end;
procedure ChangeAngle;
var
i :Integer;
begin
i := Random(2);
if(i = 0) then
begin
MakeCompass('E');
if (TimesFinished = 0) then
begin
NetColor := GetColor(434, 186);
Writeln(IntToStr(NetColor));
end;
end
else
begin
MakeCompass('W');
if (TimesFinished = 0) then
begin
NetColor := getcolor(92, 137);
Writeln(IntToStr(NetColor));
end;
end;
While IsMoving do
Wait(RandomRange(250, 350));
end;
procedure ClimbNet;
var
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to climb the net.');
if FindColorsSpiralTolerance(x, y, TPA, NetColor, MSX1, MSY1, MSX2, MSY2, 2) then
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To (Length(ATPA) - 1) Do
begin
if MiddleTPAEX(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
Wait(RandomRange(250, 350));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Writeln('Climbing Net.');
Wait(randomrange(500, 1000));
While ismoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(500, 800));
Inc(Area);
Exit;
end;
end;
end;
end;
end;
procedure ClimbBranch;
begin
Writeln('Searching other locations for branch');
MMouse(352, 208, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
if (Area < 3) then
begin
Writeln('Searching other locations for branch');
MMouse(182, 208, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
end;
if (Area < 3) then
begin
MMouse(267, 208, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(800, 1200));
end;
end;
end;
procedure CrossRope;
var
i :Integer;
begin
i := 0;
Wait(RandomRange(2000, 2500));
repeat
MMouse(440, (185-i), 0, 0);
Wait(RandomRange(450, 550));
if IsUpText('alk-on') then
begin
ClickMouse2(True);
Inc(Area);
end;
Inc(i);
until((Area > 3) or (i > 20));
Wait(RandomRange(4500, 5000));
while IsMoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(500, 800));
end;
procedure ClimbDown;
var
i :Integer;
begin
i := 0;
repeat
MMouse((430-i), 172, 0, 0);
Wait(200);
while IsMoving do
Wait(RandomRange(250, 350));
if IsUpText('limb') then
begin
ClickMouse2(True);
Inc(Area);
end;
While IsMoving do
Wait(RandomRange(250, 350));
IncEx(i, 2);
until((Area > 4) or (i > 10));
Wait(RandomRange(2000, 2500));
end;
procedure ClimbNetTwo;
var
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to climb the net.');
if FindColorsSpiralTolerance(x, y, TPA, 5795715, MSX1, MSY1, MSX2, MSY2, 10) then
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To (Length(ATPA) - 1) Do
if MiddleTPAEX(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
Wait(RandomRange(250, 350));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Writeln('Climbing Net.');
Wait(RandomRange(500, 1000));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
Exit;
end;
end;
end;
end;
procedure LookForOtherInPipe;
var
x, y, OtherInPipe : Integer;
aFound : Extended;
begin
OtherInPipe := DTMFromString('m/AEAAHick2BgYHgKxG+B+BsU/wViFkYGBi4gFgFiOSCW'+
'BWI1INYD4jtAeRsgbQfEF4HsU1B8GYiPIWFTRggWYWJgEARiYSAWAGJRKB8kLgbFgmg0SI4X'+
'qgdZLUhMCEkNSI4ccHzLJPI0Egm4SMCMNMa4AAAz1RFi'); //words DTM
if FindDTMRotated(OtherInPipe, x, y, 8, 490, 290, 508, -Pi/4, Pi/4, Pi/60,
aFound) then
begin
Writeln('Found someone else in my pipe!');
repeat
Mouse(261, 128, 3, 3, true);
until(not(FindDTMRotated(OtherInPipe, x, y, 8, 440, 290, 458, -Pi/4, Pi/4,
Pi/60, aFound)));
Wait(randomrange(2500, 3000));
While ismoving do
Wait(RandomRange(250, 350));
end;
Writeln('Passed through the pipe!');
Freedtm(OtherInPipe);
end;
procedure DoPipe;
var
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to Squeeze through pipe.');
if FindColorsSpiralTolerance(x, y, TPA, 1250843, 194, 24, 392, 64, 2) then
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To (Length(ATPA) - 1) Do
if MiddleTPAEX(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
Wait(RandomRange(450, 550));
if IsUpText('ueeze') Then
begin
ClickMouse2(True);
Writeln('Going through Pipe.');
Wait(RandomRange(1000, 1500));
while IsMoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
LookForOtherInPipe;
Exit;
end;
end;
end;
end;
procedure Report;
begin
smart_clearcanvas;
SMART_DrawText(10, 190, UpCharsEx, '' +'Laps: ' + IntToStr(TimesFinished) + '', clGreen);
SMART_DrawText(10, 210, UpCharsEx, '' + 'Exp: ' + IntToStr(EXPGained)+ '', clGreen);
SMART_DrawText(280, 190, UpCharsEx,''+TimeRunning+'', clGreen);
Writeln('//****************************');
Writeln('Thank You for using Jeffrey''s Gnome Agility script!');
Writeln('You have done: ' + IntToStr(TimesFinished) + ' Laps!');
Writeln('You have gained: ' + IntToStr(EXPGained) + ' EXP!');
Writeln('This has been running for ' + TimeRunning);
Writeln('//****************************');
Exit;
end;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
DeclarePlayers;
repeat
LoginPlayer;
TimesFinished := 0;
FailSafe := 0;
Failed := 0;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
Area := 0;
FailSafe := 0;
repeat
CrossLog;
Inc(FailSafe);
until((Area > 0) or not(LoggedIn));
FailSafe := 0;
Area := 1;
ChangeAngle;
repeat
ClimbNet;
Inc(FailSafe);
until((Area > 1) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
FailSafe := 0;
Area := 2;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
ClimbBranch;
Inc(FailSafe);
until((Area > 2) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
Area := 3;
FailSafe := 0;
repeat
CrossRope;
Inc(FailSafe);
until((Area > 3) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
FailSafe := 0;
Area := 4;
{Mouse(546, 74, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);}
repeat
ClimbDown;
Inc(FailSafe);
until((Area > 4) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
FailSafe := 0;
Area := 5;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_LOW);
repeat
ClimbNetTwo;
Inc(FailSafe);
until((Area > 5) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
FailSafe := 0;
Area := 6;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
DoPipe;
Inc(FailSafe);
until((Area > 6) or not(LoggedIn) or (FailSafe > 10));
if (FailSafe > 10) then
Inc(Failed);
if (Failed > 2) then
begin
Writeln('We messed up....');
Report;
Logout;
TerminateScript;
end;
FailSafe := 0;
Area := 7;
{Mouse(546, 74, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH); }
FindNormalRandoms;
FindNonInventoryRandoms;
Mouse(593, 92, 2, 2, true);//minimap walk
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Writeln('Course complete!');
Inc(TimesFinished);
IncEx(EXPGained, 86);
Report;
until(not(LoggedIn));
NextPlayer(Players[CurrentPlayer].Active = False);//because you ARE loggedout
until AllPlayersInactive;//multiplayer check
end.Origional gnome agility runner:
//by Getdropped ~ Changing the world one script at a time ;)
Program GnomeNoobAgility;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
var
Area, FailSafe, TimesFinished, EXPGained, NetColor :Integer;
const
//NetColor = 5269112;//changed to getcolor(x, y)
LogColor = 3553599;
{
setup place your character at the start at the log click run and watch
the exp roll in XD
Hopefully you all will like the standards and the overall function on this
script!
Be sure to post bugs and comments on the forum and enjoy!
}
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
end;
procedure CrossLog;
var
Ax, Ay : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
if (FailSafe < 20) then
begin
Writeln('Trying to cross the log');
FindColorsSpiralTolerance(Ax, Ay, TPA, LogColor, MSX1, MSY1, MSX2, MSY2, 1)
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To High(ATPA) Do
begin
if MiddleTPAEX(ATPA[i], Ax, Ay) then
begin
MMouse(Ax, Ay, 2, 2);
Wait(RandomRange(450, 550));
Inc(FailSafe);
if IsUpText('og') Then
begin
ClickMouse2(True);
Writeln('Crossing Log');
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
FailSafe := 0;
Exit;
end;
end;
end;
end;
end;
If (FailSafe > 19) then
begin
Writeln('Failed to find the log doing failsafe walk.');
Mouse(593, 92, 2, 2, true);//minimap walk
Wait(RandomRange(1000, 1500));
while IsMoving do
Wait(RandomRange(250, 350));
FailSafe := 0;
end;
end;
procedure ChangeAngle;
var
i :Integer;
begin
i := Random(2);
if(i = 0) then
begin
MakeCompass('E');
if (TimesFinished = 0) then
begin
NetColor := GetColor(434, 186);
Writeln(IntToStr(NetColor));
end;
end
else
begin
MakeCompass('W');
if (TimesFinished = 0) then
begin
NetColor := getcolor(92, 137);
Writeln(IntToStr(NetColor));
end;
end;
While IsMoving do
Wait(RandomRange(250, 350));
end;
procedure ClimbNet;
var
Ax, Ay : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to climb the net.');
FindColorsSpiralTolerance(Ax, Ay, TPA, NetColor, MSX1, MSY1, MSX2, MSY2, 2)
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To High(ATPA) Do
begin
if MiddleTPAEX(ATPA[i], Ax, Ay) then
begin
MMouse(Ax, Ay, 2, 2);
Wait(RandomRange(250, 350));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Writeln('Climbing Net.');
Wait(randomrange(500, 1000));
While ismoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(500, 800));
Inc(Area);
Exit;
end;
end;
end;
end;
end;
procedure ClimbBranch;
begin
Writeln('Searching other locations for branch');
MMouse(350, 208, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
if (Area < 3) then
begin
Writeln('Searching other locations for branch');
MMouse(182, 208, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
end;
if (Area < 3) then
begin
MMouse(267, 205, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(800, 1200));
end;
end;
end;
procedure CrossRope;
var
i :Integer;
begin
i := 0;
Wait(RandomRange(2000, 2500));
repeat
MMouse(438, (185-i), 0, 0);
Wait(RandomRange(450, 550));
if IsUpText('alk-on') then
begin
ClickMouse2(True);
Inc(Area);
end;
Inc(i);
until((Area > 3) or (i > 20));
Wait(RandomRange(4500, 5000));
while IsMoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(500, 800));
end;
procedure ClimbDown;
var
i :Integer;
begin
i := 0;
repeat
MMouse((430-i), 172, 0, 0);
Wait(200);
while IsMoving do
Wait(RandomRange(250, 350));
if IsUpText('limb') then
begin
ClickMouse2(True);
Inc(Area);
end;
While IsMoving do
Wait(RandomRange(250, 350));
IncEx(i, 2);
until((Area > 4) or (i > 10));
Wait(RandomRange(2000, 2500));
end;
procedure ClimbNetTwo;
var
Ax, Ay : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to climb the net.');
FindColorsSpiralTolerance(Ax, Ay, TPA, 5598336, MSX1, MSY1, MSX2, MSY2, 10)
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To High(ATPA) Do
if MiddleTPAEX(ATPA[i], Ax, Ay) then
begin
MMouse(Ax, Ay, 2, 2);
Wait(RandomRange(250, 350));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Writeln('Climbing Net.');
Wait(RandomRange(500, 1000));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
Exit;
end;
end;
end;
end;
procedure LookForOtherInPipe;
var
x, y, OtherInPipe : Integer;
aFound : Extended;
begin
OtherInPipe := DTMFromString('m/AEAAHick2BgYHgKxG+B+BsU/wViFkYGBi4gFgFiOSCW'+
'BWI1INYD4jtAeRsgbQfEF4HsU1B8GYiPIWFTRggWYWJgEARiYSAWAGJRKB8kLgbFgmg0SI4X'+
'qgdZLUhMCEkNSI4ccHzLJPI0Egm4SMCMNMa4AAAz1RFi'); //words DTM
if FindDTMRotated(OtherInPipe, x, y, 8, 490, 290, 508, -Pi/4, Pi/4, Pi/60,
aFound) then
begin
Writeln('Found someone else in my pipe!');
repeat
Mouse(261, 128, 3, 3, true);
until(not(FindDTMRotated(OtherInPipe, x, y, 8, 440, 290, 458, -Pi/4, Pi/4,
Pi/60, aFound)));
Wait(randomrange(2500, 3000));
While ismoving do
Wait(RandomRange(250, 350));
end;
Writeln('Passed through the pipe!');
Freedtm(OtherInPipe);
end;
procedure DoPipe;
var
Ax, Ay : Integer;
TPA : Array Of TPoint;
ATPA : T2DPointArray;
i, x, y : Integer;
begin
Writeln('Trying to Squeeze through pipe.');
FindColorsSpiralTolerance(Ax, Ay, TPA, 1250843, 194, 24, 392, 64, 2)
begin
ATPA := SplitTPA(TPA, 10);
for i := 0 To High(ATPA) Do
if MiddleTPAEX(ATPA[i], Ax, Ay) then
begin
MMouse(Ax, Ay, 2, 2);
Wait(RandomRange(450, 550));
if IsUpText('ueeze') Then
begin
ClickMouse2(True);
Writeln('Going through Pipe.');
Wait(RandomRange(1000, 1500));
while IsMoving do
Wait(RandomRange(250, 350));
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Inc(Area);
LookForOtherInPipe;
Exit;
end;
end;
end;
end;
procedure Report;
begin
smart_clearcanvas;
SMART_DrawText(10, 190, UpCharsEx, '' +'Laps: ' + IntToStr(TimesFinished) + '', clGreen);
SMART_DrawText(10, 210, UpCharsEx, '' + 'Exp: ' + IntToStr(EXPGained)+ '', clGreen);
SMART_DrawText(280, 190, UpCharsEx,''+TimeRunning+'', clGreen);
Writeln('//****************************');
Writeln('Thank You for using Jeffrey''s Gnome Agility script!');
Writeln('You have done: ' + IntToStr(TimesFinished) + ' Laps!');
Writeln('You have gained: ' + IntToStr(EXPGained) + ' EXP!');
Writeln('This has been running for ' + TimeRunning);
Writeln('//****************************');
Exit;
end;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
DeclarePlayers;
LoginPlayer;
TimesFinished := 0;
FailSafe := 0;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
Area := 0;
FailSafe := 0;
repeat
CrossLog;
Inc(FailSafe);
until(Area > 0);
Area := 1;
ChangeAngle;
repeat
ClimbNet;
until(Area > 1);
Area := 2;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
ClimbBranch;
until(Area > 2);
Area := 3;
FailSafe := 0;
repeat
CrossRope;
until(Area > 3);
Area := 4;
{Mouse(546, 74, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);}
repeat
ClimbDown;
until(Area > 4);
Area := 5;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_LOW);
repeat
ClimbNetTwo;
until(Area > 5);
Area := 6;
Mouse(546, 24, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH);
repeat
DoPipe;
until(Area > 6);
Area := 7;
{Mouse(546, 74, 5, 5, true); // make compass north
SetAngle(SRL_ANGLE_HIGH); }
FindNormalRandoms;
FindNonInventoryRandoms;
Mouse(593, 92, 2, 2, true);//minimap walk
Wait(RandomRange(1000, 1500));
While IsMoving do
Wait(RandomRange(250, 350));
Writeln('Course complete!');
Inc(TimesFinished);
IncEx(EXPGained, 86);
Report;
until(not(LoggedIn));
end.