Simba Code:
program SummoningTraverly;
var WTB1, WTB2, WTB3, WTB4, WTB5, WTO1, WTO2, WTO3, WTO4, WTO5, WTB6, x, y, SecRow, SecCol :integer;
aFound: Extended;
{$I SRL/SRL/Misc/Smart.simba}
{$I SRL/SRL.simba}
procedure DeclarePlayers;
begin
//Secondary item place on bank
SecRow:=1; //Row
SecCol:=10;//Collum
HowManyPlayers := 4; //How many players in the script. (No Need To Touch. For Those Players What You Don't Wan't To Use Put Active := False;)
CurrentPlayer := 0; //Current player in the Players array.
NumberOfPlayers(HowManyPlayers); //Don't change.
SecRow:=SecRow-1;
SecCol:=SecCol-1;
with Players[0] do
begin
Name := ''; {Player Username}
Pass := ''; {Player Password}
Pin := ''; {Player Bank Pin}
Active := True; {Use This Player?}
end;
end;
procedure WalkToBankDTM;
begin
WTB1 := DTMFromString('mbQAAAHicY2VgYMhkYWBIBeJuIN4IxOuB+C5QfDMQn2OAsGuBOCQgGI77O7vBmB8ojo4ZsWAwAACMMw0G');
WTB2 := DTMFromString('mWAAAAHicY2FgYChmZmAwBuIDQNwJxIKMDAxHgOKXGCD0FyZ2hq7+BQwTu3sYwoJCGESAYvxQDGIzomEQAAAmyQoQ');
//WTB3 := DTMFromString('mWAAAAHicY2FgYKhiYWDoA+KbQJwJxDOBYhuBuB+Ii4A4LCiEoat/ARyLAMX4kTAjGgYBAGB7CxY=');
//WTB4 := DTMFromString('mbQAAAHicY2VgYIhlYWBIBeKFQLwbiPuAeDZQfAsQHwPiyUCcCsSBoX4MbZNmoWAuoDg6ZsSCwQAAqhYNxg==');
WTB3 := DTMFromString('mbQAAAHicY2VgYAhhYWDoBuJtQOwDxO1AvBwo3gvF+UC8AYhDQ4MZPrOyM3ROXADHkkBxLiDmR8KMWDAYAABlvQzh');
WTB4 := DTMFromString('mbQAAAHicY2VgYPBiYWBIAeKlQFwJxHuAuBcovhCIO4A4HIhLgTg0NJihc+ICOP7Mys4gAhTnR8JcQMyIBYMBAFwmDJ4=');
WTB5 := DTMFromString('mbQAAAHicY2VgYAhlYWDIBOJNQLwHiLOBeDJQ/BAQrwXiWCCeCsRhoeoMbZNmgXFlaw9DSIAFw3+gOBcS5gdiRiwYDACODw1y');
//WTB6 := DTMFromString('mbQAAAHicY2VgYEhlYWCIB2I7II4E4iVAPB8oPheIFwDxCSDeD8TuHioML94yMDT1z4Hj/0BxfjTMiAWDAQCjRg5L');
end;
procedure FreeWTBDTM;
begin
FreeDTM(WTB1);
FreeDTM(WTB2);
FreeDTM(WTB3);
FreeDTM(WTB4);
FreeDTM(WTB5);
FreeDTM(WTB6);
end;
procedure WalkToObDTM;
begin
WTO1 := DTMFromString('mbQAAAHicY2VgYJBkZWDgBOLDLAwME4F4AxAvBYrvB+ITQDwNiOuAODTQh6GzdyYcdwfrM4gAxfnRMCMWDAYAZrsM4w==');
WTO2 := DTMFromString('mbQAAAHicY2VgYPjLwsDwFIhfA3EbED8H4nVA8YNAPAmIbwDxGiC2d7RhaOqZDsfhLlIMIkBxfjTMiAWDAQAmaw6O');
WTO3 := DTMFromString('mbQAAAHicY2VgYNjOwsBwFIjzgbgYiNcBcQ1QvAskB8R9QDwHiAMCfRg+MDMxtPTOhGMRoDg/GmbEgsEAAJbGDUI=');
WTO4 := DTMFromString('mWAAAAHicY2FgYFjJwsBwFIhjgLgTiOuBYtuAuAOITwNxcFggQ8fkuXDMDxTjQsKMaBgEAG3rC0M=');
WTO5 := DTMFromString('mbQAAAHicY2VgYNBkZmA4zsTAoAGkA4BYF4i9geL5QLwLiGuBOA+IP37+xtA5YQEYT+jtZggNCWb4DxTnR8OMWDAYAACRTw44');
end;
procedure FreeWTODTM;
begin
FreeDTM(WTO1);
FreeDTM(WTO2);
FreeDTM(WTO3);
FreeDTM(WTO4);
FreeDTM(WTO5);
end;
procedure StartUp;
begin
Smart_Server := 6;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
ClickNorth(SRL_ANGLE_HIGH);
Wait(1000);
end;
Function WalkToBank:Boolean;
var x, y :integer;
begin
If FindDTMRotated(WTB1, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTB2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTB2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y-3, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTB3, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTB3, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTB4, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTB4, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTB5, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTB5, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y+3, 3, 3, True);
FFlag(1);
Wait(RandomRange(900, 1100));
end;
end;
procedure WalkToObelisk;
var x, y :integer;
begin
If FindDTMRotated(WTO1, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x+5, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTO2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTO2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x-3, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTO3, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTO3, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(10);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTO4, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTO4, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until (FindDTMRotated(WTO5, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
end;
if FindDTMRotated(WTO5, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
Mouse(x, y, 3, 3, True);
FFlag(1);
Wait(RandomRange(900,1100));
end;
Function WaitBank :Boolean;
begin
if PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
Result:= True;
end;
if BankScreen then
Result:=True
end;
Function WaitObelisk:Boolean;
var x, y:integer;
begin
x:=261;
y:=38;
If WaitFindColor(x, y, 2070783, 255, 37, 436, 48, 10, 4000) then
Result:= True;
end;
Function FindObeliskDTM:Boolean;
var x, y, ObeliskDTM :integer;
begin
ObeliskDTM := DTMFromString('mWAAAAHicY2FgYFjKzMBwEYgXAPFuIPZkZGBQA+JcIJYE4kmTehj+RvoxTJvWz+D5LpFBBKiHH4hFoJgRDYMAAFMzCtE=');
WriteLn('Alternative search of Obelisk');
If FindDTMRotated(ObeliskDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
MMouse(x, y, 3, 3);
Wait(RandomRange(100, 150));
If IsUpText('lisk') then
begin
ClickMouse2(True);
Result:= True;
end
else TerminateScript;
end;
FreeDTM(ObeliskDTM);
end;
function FindObelisk:Boolean;
var
CTS, I, x, y: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.8, 0.8);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 9409941, MSX1, MSY1, MSX2, MSY2, 15);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
Wait(RandomRange(100,200));
If(IsUpText('belisk')) then
begin
Writeln('Found Obelisk');
ClickMouse2(1);
Result := True;
Break;
end;
end;
end;
Function FindBooth:Boolean;
var
CTS, I, x, y: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.8, 0.8);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 15727354, MSX1, MSY1, MSX2, MSY2, 15);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
Wait(RandomRange(100,200));
If(IsUpText('ounter')) then
begin
Writeln('Found bank booth');
ClickMouse2(1);
If WaitFunc(@WaitBank, 100, 4000) then
begin
Result := True;
Break;
end;
end;
end;
end;
Function FindBoothDTM:boolean;
var BankerDTM, x, y :integer;
begin
BankerDTM := DTMFromString('mWAAAAHicY2FgYLBhhGBrKC0NxGxA/Bsopw6kf/16zxDrbwemly2bzyAJFOcHYhjNiIZBAAAnuAst');
If FindDTMRotated(BankerDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
MMouse(x, y, 3, 3);
Wait(RandomRange(100, 150));
If IsUpText('ounter') then
begin
ClickMouse2(True);
Result:=True;
end
else TerminateScript;
FreeDTM(BankerDTM);
end;
Procedure WithdrawBank;
begin
WaitFunc(@WaitBank, 100, 4000);
Deposit(5, 5, True);
Withdraw(0, 0, 25);
end;
Procedure ObeliskDialog;
begin
MouseBox(46, 68, 86, 110, 0);
WaitOption('Infuse-All', 600)
Wait(RandomRange(1800, 2100));
CloseBank;
end;
Procedure Resting;
begin
If Not RunEnergy(30) then
RestUntil(95);
end;
begin
StartUp;
Repeat
If FindBooth then
WithdrawBank
else begin
If FindBoothDTM then
WithdrawBank
else TerminateScript;
end;
WalkToObDTM;
WalkToObelisk;
Wait(800);
If FindObelisk then
begin
If WaitObelisk then
ObeliskDialog
else begin
If FindObeliskDTM then
begin
If WaitObelisk then
ObeliskDialog
end
else TerminateScript;
end;
end;
WalkToBankDTM;
WalkToBank;
Resting;
until(false);
FreeWTBDTM;
FreeWTODTM;
end.