Okay Given up…
Banking works Teleporting works Ring Detection works but Walking in the desert just can't work SPS doesn't work Radial walking is a bitch and with fagex constantly changing the colours its impossible for me anyway.
program new;
{$DEFINE SMART}
{$i srl/srl.scar}
{$i sps/sps.simba}
Var
X,Y:Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // Number of Players to use
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // Player to start with, first one is 0
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True; // True if you are using this player
Players[0].Pin := ''; // Bank Pin. Leave it if you don't have one.
Players[0].Integers[1] := 10000; // Number of loads
end;
Function WalkingToBank:Boolean;
Var
ToBank:TPoint;
Begin
SPS_Setup(RUNESCAPE_SURFACE,['4_10','3_10','4_11']);
ToBank := Point(1622, 4336);
SPS_WalkToPos(ToBank);
Wait(700+Random(200));
End;
Function DepositRunes:Boolean;
Var
Fire:Integer;
Begin
Fire := BitmapFromString(10, 4, 'meJwTV5wnDkM1NU3iSNzm5k5kblV' +
'1AzKXQgQAiy4jbQ==');
If FindBitMapTolerancein(Fire,X,Y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(100+Random(100));
ChooseOption('Deposit-All');
End;
FreeBitMap(Fire);
End;
Function DepositEss:Boolean;
Var
Ess:integer;
Begin
Ess := BitmapFromString(9, 5, 'meJwzNTU3NTU3t7ACIisrWxtbewiy' +
't3cyMjKBI2Q1QKSlpQNEurr6+gZGQARRAFGjoqIKROrqmhAFEDVAB' +
'UwMDLiQsbExABKMFcg=');
If FindBitMapTolerancein(Ess,X,Y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(300+Random(150));
ChooseOption('Deposit-All');
End;
FreeBitMap(Ess);
End;
Function RingChecker:Boolean;
Var
DuelRing:Integer;
Begin
DuelRing := BitmapFromString(8, 4, 'meJxjYmCQWy8FQaJVQhDEF8rDBBOX' +
'XSspNVscgiDiQCRc0CSQWMAbGCfRLwpE4t0iEr2LJaesEW+fK1rdL' +
'5RbJxCfFxgYKlonBAAKbhfV');
If FindBlackChatMessage('crumbles to dust') then
Begin
Writeln('Withdrawing Ring');
If FindBitMapTolerancein(DuelRing,x,y,MSX1,MSY1,MSX2,MSY2,45) then
Begin
DepositEss;
MMouse(X,Y,6,6);
ClickMouse2(True);
Wait(1100+Random(150));
If FindBitMapTolerancein(DuelRing,x,y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(400+Random(50));
ChooseOption('Wear');
End;
End else
Writeln('Cant Find ring');
End else
Begin
Writeln('No Need to Take another Ring Yet');
End;
FreeBitMap(DuelRing);
End;
Function WithdrawEss:Boolean;
Var
Ess:integer;
Begin
Ess := BitmapFromString(9, 5, 'meJwzNTU3NTU3t7ACIisrWxtbewiy' +
't3cyMjKBI2Q1QKSlpQNEurr6+gZGQARRAFGjoqIKROrqmhAFEDVAB' +
'UwMDLiQsbExABKMFcg=');
If FindBitMapTolerancein(Ess,X,Y,MSX1,MSY1,MSX2,MSY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(300+Random(150));
ChooseOption('Withdraw-All');
End else
Begin
Logout;
TerminateScript;
End;
FreeBitMap(Ess);
End;
Function ChestFinding:Boolean;
Var
X, Y:Integer;
Begin
If (FindObjEx(X, Y, ['ank','chest','k chest','Bank chest'], [5789788, 6122360, 12698314, 3424846], 5, 10, 280, 100, 330, 220))then
Begin
MMouse(X,Y,6,6);
Wait(100+Random(200));
ClickMouse2(True);
End;
End;
Function TelePortingDuel:Boolean;
Var
DuelRing:Integer;
Begin
GameTab(Tab_Equip);
DuelRing := BitmapFromString(8, 4, 'meJxjYmCQWy8FQaJVQhDEF8rDBBOX' +
'XSspNVscgiDiQCRc0CSQWMAbGCfRLwpE4t0iEr2LJaesEW+fK1rdL' +
'5RbJxCfFxgYKlonBAAKbhfV');
If FindBitMapTolerancein(DuelRing,x,y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(400+Random(50));
ChooseOption('Duel');
GameTab(Tab_Inv);
Wait(3200+Random(230));
End else
Begin
ChestFinding;
If PinScreen then
Wait(1400+Random(300));
InPin(Players[CurrentPlayer].Pin);
Wait(1400+Random(300));
If BankScreen then
Begin
DepositEss;
If FindBitMapTolerancein(DuelRing,x,y,MSX1,MSY1,MSX2,MSY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(True);
Wait(1100+Random(150));
If FindBitMapTolerancein(DuelRing,x,y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(400+Random(50));
ChooseOption('Wear');
End;
End;
WithdrawEss;
CloseBank;
TeleportingDuel;
End;
End;
FreeBitMap(DuelRing);
End;
Function TelePortingCastle:Boolean;
Var
DuelRing:Integer;
Begin
GameTab(Tab_Equip);
DuelRing := BitmapFromString(8, 4, 'meJxjYmCQWy8FQaJVQhDEF8rDBBOX' +
'XSspNVscgiDiQCRc0CSQWMAbGCfRLwpE4t0iEr2LJaesEW+fK1rdL' +
'5RbJxCfFxgYKlonBAAKbhfV');
If FindBitMapTolerancein(DuelRing,x,y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(400+Random(50));
ChooseOption('Castle');
GameTab(Tab_Inv);
Wait(3200+Random(230));
End;
FreeBitMap(DuelRing);
End;
Function WalkingToRuins:Boolean;
Var
ColorsGate:TIntegerArray;
I:Integer;
Begin
ColorsGate := [328682, 1528, 2034, 197104, 133098, 133102, 65779, 460523, 198631, 262638];
For i := 0 to 8 do
RadialWalkTolerance(ColorsGate[i], -125, -45, 20, -1, 0, 55);
Wait(600+Random(300));
RadialWalkTolerance(3632975,-65 ,-45 ,55 , -1, 0, 25);
Wait(600+Random(300));
RadialWalkTolerance(6257807, 35, 50, 50, -1, 0, 25);
Wait(1400+Random(300));
End;
Function WalkingToAltar:Boolean;
Begin
RadialWalkTolerance(3952729, 120, 135,40, -1, 0, 25);
Wait(1500+Random(300));
End;
Function EnteringAltar:Boolean;
Var
X, Y:Integer;
Begin
If (FindObjEx(X, Y, ['Enter','Mysterious ruins'], [2763820, 5210621, 7567480, 5593433], 5, 5, 100, MSY1, MSX2, 200)) then
Begin
MMouse(X,y,3,3);
ClickMouse2(True);
End else
Begin
If (FindObjEx(X, Y, ['Enter','Mysterious ruins'], [2763820, 5210621, 7567480, 5593433], 5, 5, MSX1, MSY1, MSX2, MSY2)) then
Begin
MMouse(X,y,6,6);
ClickMouse2(True);
End else
Begin
Logout;
TerminateScript;
End;
End;
End;
Function FindingAltar:Boolean;
Var
X, Y:Integer;
Begin
If (FindObjEx(X, Y, ['Al','tar','Altar'], [6446689, 5461847, 6975086, 6317156], 5, 10, MSX1, 200, MSX2, MSY2))then
Begin
MMouse(X,y,6,6);
ClickMouse2(True);
End else
Begin
Logout;
TerminateScript;
End;
End;
Function Bank:Boolean;
Begin
WalkingToBank;
ChestFinding;
Wait(1300+Random(300));
If PinScreen then
InPin(Players[CurrentPlayer].Pin);
Wait(800+Random(200));
If BankScreen then
Begin
RingChecker;
Wait(200+Random(100));
DepositRunes;
Wait(200+Random(100));
WithdrawEss;
Wait(200+Random(100));
CloseBank;
End else
Begin
Bank;
End;
End;
Function StartRingFind:Boolean;
Var
DuelRing:Integer;
Begin
DuelRing := BitmapFromString(8, 4, 'meJxjYmCQWy8FQaJVQhDEF8rDBBOX' +
'XSspNVscgiDiQCRc0CSQWMAbGCfRLwpE4t0iEr2LJaesEW+fK1rdL' +
'5RbJxCfFxgYKlonBAAKbhfV');
GameTab(tab_Equip);
Wait(300+Random(200));
If FindBitMapTolerancein(DuelRing,X,Y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
Wait(500+Random(300));
GameTab(Tab_Inv);
End else
Begin
GameTab(Tab_Inv);
ChestFinding;
If PinScreen then
Wait(1400+Random(300));
InPin(Players[CurrentPlayer].Pin);
Wait(1400+Random(300));
If BankScreen then
Begin
DepositEss;
If FindBitMapTolerancein(DuelRing,x,y,MSX1,MSY1,MSX2,MSY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(True);
Wait(1100+Random(150));
If FindBitMapTolerancein(DuelRing,x,y,MIX1,MIY1,MIX2,MIY2,45) then
Begin
MMouse(X,Y,6,6);
ClickMouse2(False);
Wait(400+Random(50));
ChooseOption('Wear');
End;
End;
End;
End;
FreeBitMap(DuelRing);
End;
begin
MouseSpeed := RandomRange(14,16);
smart_server := 16;
smart_members := false;
smart_signed := true;
smart_superDetail := false;
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
StartRingFind;
Repeat
Wait(500+Random(200));
Bank;
Wait(300+Random(100));
TelePortingDuel;
Wait(500+Random(200));
WalkingToRuins;
Wait(1000+Random(200));
EnteringAltar;
Wait(4300+Random(200));
Writeln('Wait over trying to walk to altar!');
WalkingToAltar;
Wait(100+Random(200));
FindingAltar;
Wait(500+Random(200));
TelePortingCastle;
Until(Not Loggedin);
end.
Heres the code if anyone wants to have a go at it.
Mat