Simba Code:
program AdvancedGnomeAgility;
//////////////////////////WRITTEN BY RYGUY//////////////////////////////
////////////////////////////VERSION 0.80////////////////////////////////
{$DEFINE SMART}
{$DEFINE SRL5}
{$i SRL/srl.simba}
var
Log, Branch1, Branch2, Post, Hurdle, TimeBegan, StartingXP: integer;
aFound: extended;
///////////////////////////PLAYER SETUP//////////////////////////////////
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active:=True;
end;
////////////////////DO NOT TOUCH BELOW THIS LINE/////////////////////////
procedure SetDTMs;
begin
Log := DTMFromString('mlwAAAHicY2dgYFBjZGDgB2JpINYEYkUgVgViHSDeDJQ/BsSbgHgVEM8A4lNAvA2IixwFGHLiFRkKHPgZ0qz4GLwtxRnCnaQYcuz4GdiA8rgwIx4MBQAxWws7');
Branch1 := DTMFromString('mbQAAAHicY2VgYNBjZGBQAmILIPYC4kQgngMUnwnEM5BwfqgSQ02KOUNxjDFDfqQhmOYHinOhYUYsGAwAfOwJcQ==');
Branch2 := DTMFromString('mKgEAAHic42NgYOACYm4g9gRiOyA2YYAAViDmAWIZIBYBYkGoOnaoHBsQS0BpmBl8UD0wdSA5RgYEAOlL91dg8LaWYkjykWdI8JID4yhXGYYYd1mGOA85huwgJYbMAEWGwnBlhvxQCAbp4QDqJQczkolRAQDIyg2R');
Hurdle := DTMFromString('mQwAAAHicY2ZgYJBlZGBQBmJtIK4A8quAuBKI/95dwfDr9jKG7zeWMHAB+TDMiISBAABdxglu');
Post := DTMFromString('mQwAAAHicY2aAAA4g5oRiaajYxj4/hu6uVoaSknwGNiAfhhmRMBAAAKdUBMw=');
end;
procedure FreeDTMs;
begin
FreeDTM(Log);
FreeDTM(Branch1);
FreeDTM(Branch2);
FreeDTM(Hurdle);
FreeDTM(Post);
end;
procedure Report;
var
Exp, ExpHr, TimeRan: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
Exp := (GetXPBarTotal - StartingXP);
ExpHr := Round((Exp * 3600) / (TimeRan));
WriteLn('Time: ' + TimeRunning);
WriteLn('We have gained ' + IntToStr(Exp) + ' Agility Experience!');
WriteLn('We are gaining ' + IntToStr(ExpHr) + ' Agility Experience per Hour!');
end;
procedure AntiBan;
begin
if not(LoggedIn)then
Exit;
FindNormalRandoms;
LevelUpEx(True, True);
case Random(300)of
0: HoverSkill('Agility', false);
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
end;
end;
Function IsMoving_F: Boolean;
begin
Result := PixelShift(IntToBox(MMCX-30, MMCY-30, MMCX+30, MMCY+30), 200) > 200;
end;
procedure LogBalance;
var
x, y: integer;
begin
repeat
if FindDTMRotated(Log, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Log');
Mouse(x, y, 5, 5, True);
MMouse(410, 165, 15, 15);
Wait(500+random(50));
end;
until(IsMoving_F);
while(IsMoving_F) do
WaitNone;
AntiBan;
end;
procedure ObstacleNet;
var
x, y: integer;
begin
x := MSCX;
y := MSCY;
if FindObjTPA(x, y, 466484, 5, 1, 50, 150, 200, ['over'])then
begin
ClickMouse2(True);
MMouse(300, 155, 15, 15);
WriteLn('Found Net');
AntiBan;
Wait(3800+random(100));
end;
end;
procedure TreeBranch1;
var
x, y: integer;
begin
x := MSCX;
y := MSCY;
FindDTMRotated(Branch1, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)
Mouse(x, y, 4, 4, True);
if DidRedClick then
begin
WriteLn('Found Branch 1');
AntiBan;
SetAngle(SRL_ANGLE_LOW);
end;
end;
procedure TreeBranch2;
var
x, y: integer;
begin
if FindDTM(Branch2, x, y, MSX1, MSY1, MSX2, MSY2)then
Mouse(x, y, 4, 4, True);
MMouse(345, 50, 15, 15);
WriteLn('Found Branch 2');
AntiBan;
Wait(3000+random(50));
end;
procedure Signpost;
var
x, y: integer;
begin
if FindDTMRotated(Post, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
Mouse(x, y, 4, 4, True);
MMouse(540, 24, 6, 6);
WriteLn('Found Signpost');
AntiBan;
Wait(3100+random(300));
end;
procedure Pole;
var
x, y: integer;
begin
ClickMouse2(True);
Wait(100+random(50));
if FindObjTPAMulti(x, y, [4541520, 2566185], 4, 1, 220, 7, 200, ['Swing'])then
ClickMouse2(True);
MMouse(270, 120, 15, 15);
WriteLn('Found Pole');
AntiBan;
Wait(12000+random(100));
end;
procedure Barrier;
var
x, y, T: integer;
begin
if FindDTM(Hurdle, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
MMouse(x, y, 3, 4);
ClickMouse2(True);
if DidRedClick then
begin
WriteLn('Found Barrier');
FFlag(0);
While IsMoving_F do
Wait(1);
AntiBan;
MMouse(583, 83, 4, 4);
Wait(RandomRange(2135, 2890));
MarkTime(T);
repeat
FindNormalRandoms;
if (TimeFromMark(T) > 6000) then
Exit;
if FindColoredAreaTolerance(x, y, 10129284, MMX1, MMY1, MMX2, MMY2, 100, 10) then
break;
until(false)
end;
end;
end;
procedure BackToLog;
begin
repeat
FindNormalRandoms;
ClickMouse2(True);
Wait(RandomRange(750, 1125));
until (IsMoving_F);
Report;
MakeCompass('E');
SetAngle(SRL_ANGLE_HIGH);
While IsMoving_F do
Wait(1);
end;
procedure WhereAreWe;
var
x, y: integer;
begin
if FindDTMRotated(Log, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Trying Balence');
LogBalance;
end;
if FindBlackChatMessage('other')then
begin
WriteLn('Trying Net');
ObstacleNet;
end;
if FindBlackChatMessage('netting')then
begin
WriteLn('Trying First Branch');
TreeBranch1;
end;
if FindBlackChatMessage('above')then
begin
WriteLn('Trying Second Branch');
TreeBranch2;
end;
if FindDTMRotated(Post, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Trying Signpost');
Signpost;
end;
if FindColoredAreaTolerance(x, y, 6270424, MSX1, MSY1, MSX2, MSY2, 600, 5)then
begin
WriteLn('Trying Pole');
Pole;
end;
if FindDTM(Hurdle, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
WriteLn('Trying Barrier');
Barrier;
end;
if FindColoredAreaTolerance(x, y, 10129284, MMX1, MMY1, MMX2, MMY2, 100, 10)then
begin
WriteLn('Trying Walk Back To Log')
BackToLog;
end;
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
TimeBegan := GetSystemTime;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
WriteLn('We are starting with ' + IntToStr(StartingXP) + ' xp');
ClickNorth(SRL_ANGLE_HIGH);
MakeCompass('E');
repeat
SetDTMs;
WhereAreWe;
FreeDTMs;
until(false);
end.