SRL Archive - Archive

getdropped69 - SRL Member Application


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…
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.

Sin

2012-07-25 16:56:30

Your standards are all over the place =S
Also, I might be mistaken but most of your TPA functions are from ACA.

Getdropped

2012-07-25 17:19:35

From: Shay
Your standards are everywhere =S
Also, I might be mistaken but most of your TPA functions are from ACA.


I used ACA as a base in my Hill Giant script. That is why I also posted my agility script with more unique TPA's to show i knew what they were doing ;) thanks for letting me clear that up Shay keep the comments comming :p

Jakkle

2012-07-25 20:10:19

Holding my vote atm.
As Shay said but in my own words, your standards are bad.
I will give it a proper read tomorrow and let you know my vote.

P.S Change your standards and I will more than likely vote yes, I will edit my post with my vote.

Edit: After going through your code, I'm going to vote yes. The only thing I didn't like, apart from your standards, is the static wait times you put in.
It's always best to give it a little randomness ;).
wait(300 + Random(50));

Good luck :)

[XoL]

2012-07-25 22:18:06

Hmm a tough choice, but I see you have the post count, I see the scripts, I see the activity is slipping though.

What I really want is better standards and consistent levels of activity, but the later comes with time and the first comes with a quick read of a standards guide (I am on my phone at the moment, so I won't be linking you.. Search for it)

I say yes, but I will hold my vote till I get home and actually look at some details in the light.

Joe

2012-07-25 22:56:25

I myself know how hard making a hill giant script is.
I was about to vote no based on your standards, but they will improve over time (based on your activity I'm assuming that you've been away for a while).
The script looks good (hill giants) I'm not too sure about the agility one as I'm not sure about the functioning because I'm all f2p.
I also remember you had a chicken killer with a very high DL count.

I voted yes.

Daniel

2012-07-26 04:05:53

His standards are fine.

Yes. ;)

litoris

2012-07-26 04:31:36

Sorry but I'm not quite sure whether you know what you are doing. At some part, you did this:

MMouse(Ax, Ay, 2, 2);
Wait(300);
if IsUpText('limb') Then
begin
x := Ax;
y := Ay;
Mouse(x, y, 0, 0, true);
Which is basically wrong, because you move your mouse to Ax Ay with a randomness of 2 on both axes, and then move it back to Ax Ay, which would make the mouse spazz a bit. Just doing this wouldn't be much of a problem because all you have to do is to understand the logic behind this, but just a few lines below, you do the following:
    MMouse(188, 258, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
Which is correct! The only weirdness with that procedure is that you use static coordinates to find the branches.
Now, it makes no sense that you would do all the weird stuff in the first procedure I posted if you know about ClickMouse2. But you do use the Ax Ay thing again and again in the script.

You also do Failsafe= Failsafe + 1; at some point, while you use Inc(Area) all throughout the script, which again makes no sense, because you would use Inc() all the way through. You also do this kind of thing at the very end to prepare TimesFinished and XPGained.

So you either didn't read through your own script at all, or you don't know what you are doing.

I haven't voted yet and I probably won't, but just pointing this out here.

Edit: You also move to a static mouse coordinate to set the angle to north (Mouse(546, 74, 5, 5, true); ), whereas you use MakeCompass('N'); multiple times through the first script and use it in the ChangeAngle procedure in the second, multiple times.

Getdropped

2012-07-26 13:06:00

From: litoris
Sorry but I'm not quite sure whether you know what you are doing. At some part, you did this:

MMouse(Ax, Ay, 2, 2);
Wait(300);
if IsUpText('limb') Then
begin
x := Ax;
y := Ay;
Mouse(x, y, 0, 0, true);
Which is basically wrong, because you move your mouse to Ax Ay with a randomness of 2 on both axes, and then move it back to Ax Ay, which would make the mouse spazz a bit. Just doing this wouldn't be much of a problem because all you have to do is to understand the logic behind this, but just a few lines below, you do the following:
    MMouse(188, 258, 0, 0);
Wait(RandomRange(500, 1000));
if IsUpText('limb') Then
begin
ClickMouse2(True);
Inc(Area);
Wait(RandomRange(1500, 2000));
end;
Which is correct! The only weirdness with that procedure is that you use static coordinates to find the branches.
Now, it makes no sense that you would do all the weird stuff in the first procedure I posted if you know about ClickMouse2. But you do use the Ax Ay thing again and again in the script.

You also do Failsafe= Failsafe + 1; at some point, while you use Inc(Area) all throughout the script, which again makes no sense, because you would use Inc() all the way through. You also do this kind of thing at the very end to prepare TimesFinished and XPGained.

So you either didn't read through your own script at all, or you don't know what you are doing.

I haven't voted yet and I probably won't, but just pointing this out here.

Edit: You also move to a static mouse coordinate to set the angle to north (Mouse(546, 74, 5, 5, true); ), whereas you use MakeCompass('N'); multiple times through the first script and use it in the ChangeAngle procedure in the second, multiple times.


Now to explain my logic ;) ok so the first part with the random 2 switching to a 0 randomness that was just something that I over looked while i was creating my gnome runner. :redface: I was always taught in school to do int := int + num; and i thought that when i went trough the script i got them all…. went back again and got the rest ;). But as for the question on my hard code for clicking north I could have used clicknorth but i decided to hard code rather than calling a function to do one line of code ;) and makecompass('N'); rotates the angle it is completely less accurate and that is why I used a "clicknorth" function to make the compass face north. The minimap needed to be quite accurate for the things i used it on ie. Finding in the edgeville dungeon house which I found makecompass('N'); wouldnt be good enough. ;)

Thanks for all the ideas/feelings everyone can't wait for more :cool:

Caotom

2012-07-27 14:42:53

One quick tip that will help clean up the viewing of you scripts is this.
You do not need a begin and end for a single line after a do or then…
Simply put this:
    while IsMoving do
begin
Wait(RandomRange(250, 350));
end;

Can be This:
    while IsMoving do
Wait(RandomRange(250, 350));

Provided you only use one line.

I have not voted yet, and probably shouldn't as new members are meant ot wait a while before voting, but I just thought I'd point that out quickly ;)
As a side note… Watch the single spaced standards :S
I'll post anything more I find when I have time to go through you scripts properly.

~Caotom

Getdropped

2012-07-30 14:51:36

From: Caotom
One quick tip that will help clean up the viewing of you scripts is this.
You do not need a begin and end for a single line after a do or then…
Simply put this:
    while IsMoving do
begin
Wait(RandomRange(250, 350));
end;

Can be This:
    while IsMoving do
Wait(RandomRange(250, 350));

Provided you only use one line.

I have not voted yet, and probably shouldn't as new members are meant ot wait a while before voting, but I just thought I'd point that out quickly ;)
As a side note… Watch the single spaced standards :S
I'll post anything more I find when I have time to go through you scripts properly.

~Caotom


Thanks Caotom good point with editing out the begins and ends does clean up the script a bit, ;) not really sure what you mean by single spaced standards…. =/ Thank you anyways :p

ps. Sorry for the late respones I wanted to see if anyone else would post more so I could try and "sum it all up" in one tighty post :p

Caotom

2012-08-01 04:55:21

From: getdropped69
Thanks Caotom good point with editing out the begins and ends does clean up the script a bit, ;) not really sure what you mean by single spaced standards…. =/ Thank you anyways :p

ps. Sorry for the late respones I wanted to see if anyone else would post more so I could try and "sum it all up" in one tighty post :p


What I mean by single standard is doing this
begin
Stuff;
end.

rather than
begin
Stuff;
end.

ie. Using one space bar tap rather then a tab or double space. My apologies tho, either my computer was being buggy as sht when I first looked at your script or I misjudged some parts and their spacing, yours seem to be fine ;)

~Caotom

Kyle Undefined

2012-08-01 10:26:59

Technically, it's a tab, not a space ;)

Getdropped

2012-08-01 12:26:49

From: Caotom
What I mean by single standard is doing this
begin
Stuff;
end.

rather than
begin
Stuff;
end.

ie. Using one space bar tap rather then a tab or double space. My apologies tho, either my computer was being buggy as sht when I first looked at your script or I misjudged some parts and their spacing, yours seem to be fine ;)

~Caotom


ok lol thats what I thought. ;) thanks for taking the time to read through my script i really appreciate it ;)

of and as a side not a tab is 2 spaces it just converts over, however when you backspace and the line is tabbed out you will "untab" the entire line so to speak. I let you guys think about that one for a while XD :p

Jakkle

2012-08-01 13:04:04

From: Kyle Undefined
Technically, it's a tab, not a space ;)


This^
Your mean't to use tab/double spaces not single one's. Format a pascal script and all spaces should be double ;)

Getdropped

2012-08-01 15:30:27

From: Jakkle
This^
Your mean't to use tab/double spaces not single one's. Format a pascal script and all spaces should be double ;)


Which is exactly what i did caotom was just trolling mr by saying i needed to work on my "single space standards" lol :p

J J

2012-08-01 15:46:35

Yes, he is willing to learn and using the replies to gain knowledge. Not only in this topic but also in other topics.

Getdropped

2012-08-01 20:46:12

From: J J
Yes, he is willing to learn and using the replies to gain knowledge. Not only in this topic but also in other topics.


Thank you very much for the complement I'm glad you have noticed and think I am worthy ;)

Bad Boy JH

2012-08-02 20:19:01

I make a quick check after a LONG break, and I see this poll.
You're lucky, I just made it 8-7.

In other news, I may or may not be back.

Getdropped

2012-08-02 23:57:22

From: Bad Boy JH
I make a quick check after a LONG break, and I see this poll.
You're lucky, I just made it 8-7.

In other news, I may or may not be back.


Hey thanks I really appreciate it ;)

oh and btw I was going to say I dont think I have even seen you post before lol but hey thanks :p

weequ

2012-08-04 05:00:47

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.
Aren't all those until(Area > X) loops infinite loops? I see nothing breaking out of them if the script fails. (for example doesn't find correct uptext)

Also I think you should use Length(Array)-1 instead of High(Array) to avoid runtime errors if the Array is empty. With High(EmptyArray) it would be
for i := 0 to 0 //This will go through the loop once
with Length(EmptyArray) it would be
for i := 0 to -1

Getdropped

2012-08-05 03:17:26

From: weequ
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.
Aren't all those until(Area > X) loops infinite loops? I see nothing breaking out of them if the script fails. (for example doesn't find correct uptext)

Also I think you should use Length(Array)-1 instead of High(Array) to avoid runtime errors if the Array is empty. With High(EmptyArray) it would be
for i := 0 to 0 //This will go through the loop once
with Length(EmptyArray) it would be
for i := 0 to -1


Thank you very much for the ideas and knowledge! That is a really good point with the array length because it returns one higher… but in theory wouldn't :
(Length(ATPA) - 1)
return the same value as :
(High(ATPA) - 1)
because in the length should be the same value as the high value of the array…. I may be wrong but just my thoughts :p

I updated my agility script and left the old version aswell so you can compare the changes that I made. Thank you ;)

~Getdropped :cool:

weequ

2012-08-05 07:48:07

From: Getdropped
Thank you very much for the ideas and knowledge! That is a really good point with the array length because it returns one higher… but in theory wouldn't :
(Length(ATPA) - 1)
return the same value as :
(High(ATPA) - 1)
because in the length should be the same value as the high value of the array…. I may be wrong but just my thoughts :p

I updated my agility script and left the old version aswell so you can compare the changes that I made. Thank you ;)

~Getdropped :cool:
Length returns the amount of elements in the array while as High returns the index of the last element in the array.

[5, 2, 995, -552] -> Length = 4, High = 3 (Because the first element in the array always has index of 0)

[] -> Length = 0, High = 0

nielsie95

2012-08-12 05:20:52

Welcome in!