Sockz
2012-04-27 10:10:11
New script which uses custom object finding and tpas, have a look :D Sorry, shouldv'e psoted it earlier :D
How Long have You Played Runescape?
2 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
I dunno the username sorry, was somebody from sythe a while back.
What is your general programming knowledge?
I've only ever had a bit of a play around in software class with html, javascript and c++ I think it was called.
Are you a member of any other communities?
Runescape :D
Tell us about yourself…
Newly added script below this message :D
Please show us one (or multiple) of your scripts.
How Long have You Played Runescape?
2 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
I dunno the username sorry, was somebody from sythe a while back.
What is your general programming knowledge?
I've only ever had a bit of a play around in software class with html, javascript and c++ I think it was called.
Are you a member of any other communities?
Runescape :D
Tell us about yourself…
From: Sockz
Well I'm from Australia, sydney area if you guys know where that is :P There isn't much to tell about myself, school takes up most of my life. Finishing off my last year now!
I'm into computer, maths, problems solving and stuff like that. I also like to, when I get the chance, keep fit (doesn't always go to plan but :P)
I dunno what else to say :/ Umm I got into stuff like this from doing software devlopment at school. They pretty much teach us how to program without doing any programming. I found this community to be very inviting and it was a good chance to put my theoretical skills to the test. I like a challenge, to solve a problem, or well.. to make a problem and then solve it :p
Thanks for taking a look at my application and any constructive criticism on my scripts will be appreciated, thankyou :D
Take note that the G altar was my first major script that I wrote and the other one has better standards and is more efficient which i fixed up based on some of the feedback of my altar script.
To use the altar script you can have a look at my thread for setup and to sue the other script just start at the west bank in Falador :D
Newly added script below this message :D
program new;
{$DEFINE SRL5}
{$DEFINE SMART}
{$i srl/srl.simba}
Var
BankTol, StairsTol, SpinningWheelTol, FlaxTol, Trips, TripsCompleted: Integer;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Trips:= 10000; //How many trips do you wanna do?
Players[0].Name :=''; //Username
Players[0].Pass :=''; //Password
Players[0].pin:= ''; //Bankpin
Trips := 10000 //How many trips do you wish to completed before logging out?
Players[0].Active:=True;
LoginPlayer;
procedure AntiBan;
begin
case Random(2500) of
1..25: begin
PickUpMouse; SleepAndMoveMouse(200 + Random(3000));
Antibans:= Antibans + 1;
end;
25..50: begin
PickUpMouse;
Antibans:= Antibans + 1;
end;
50..70: begin
BoredHuman;
Antibans:= Antibans + 1;
end;
70..90: begin
RandomMovement;
Antibans:= Antibans + 1;
end;
90..10: begin
RandomRclick
Antibans:= Antibans + 1;
end;
end;
end;
Procedure Proggy;
var
ph, comit: Integer;
begin
ph:= Round((TripsCompleted * 28 * 3600) / (GetTimeRunning / 1000));
Writeln('');
Writeln('');
Writeln('Sockz"z Bowstringer')
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
Writeln('Time running: ' + TimeRunning);
Writeln('Trips done: ' + IntToStr(TripsCompleted));
Writeln('Bowstrings made: ' + IntToStr(TripsCompleted * 28));
Writeln('Dwarven Stouts p/h: ' + IntToStr(ph));
Writeln('Antibans done: ' + IntToStr(Antibans))
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
end; ;
function Find(var x, y: Integer; object: String): Boolean;
var
CTS, I, colour, t, tol, randomization: Integer;
hue, sat: Extended;
upText: String;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
randomization := 2
case object of
'bank': begin
hue := 0.75;
sat := 0.16;
colour := 9080984;
uptext := 'ank';
tol := BankTol;
end;
'flax': begin
hue := 0.03;
sat := 1.04;
colour := 11975870;
uptext := 'lax';
tol := FlaxTol;
randomization := 4
end;
'stairs': begin
hue := 0;
sat := 0;
colour := 11778491;
uptext := 'taircase';
tol := StairsTol;
end;
'deposit': begin
hue := 0.08;
sat := 0.38;
colour := 1854078;
uptext := 'eposit';
tol := 5
randomization := 5
end;
'spinning wheel': begin
hue := 0.16;
sat := 0.33;
colour := 6586005;
uptext := 'pinning';
tol := SpinningWheelTol;
end;
end;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(hue, sat);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, colour, MSX1, MSY1, MSX2, MSY2, tol);
ColorToleranceSpeed(CTS); //note: text finding doesn't work with CTS 2, hence the change back.
ATPA := TPAToATPAEx(TPA, 20, 20);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, randomization, randomization);
MarkTime(t);
Repeat
If(IsUpTextMultiCustom([uptext])) then
begin
Result := True;
GetMousePos(x, y);
Exit;
SetColorSpeed2Modifiers(0.2, 0.2);
end;
Until(TimeFromMark(t) > 200);
Writeln('Unable to find ' + Object);
end;
case object of
//'bank': Inc(BankTol);
'flax': Inc(FlaxTol);
'stairs': Inc(StairsTol);
'spinning wheel': Inc(SPinningWheelTol);
end;
SetColorSpeed2Modifiers(0.2, 0.2);
end;
Procedure Stairs(direction: Boolean);
//false is downwards, true is upwards
var
x, y, i, t: Integer;
begin
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('S');
Repeat
if Find(x, y, 'stairs') and direction = true then
begin
Mouse(x, y, 0, 0, false);
WaitOption('up', 200);
end else
begin
Mouse(x, y, 0, 0, True);
end;
MarkTime(t);
Repeat
if TimeFromMark(t) > 6000 then
Break;
case direction of
true: if FindSymbol(x, y, 'bank') then
Exit;
false: if not FindSymbol(x, y, 'bank') then
Exit;
end;
Until(false);
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
i := i + 1
if i = 5 then
begin
Writeln('Unable to use stairs, Logging Out');
Logout;
TerminateScript;
end;
Until(false)
end;
Procedure InventorySetup;
var
x, y, t, i, j, flax: Integer;
begin
Repeat
Find(x, y, 'deposit');
Mouse(x, y, 0, 0, True);
Find(x, y, 'flax');
Mouse(x, y, 0, 0, False);
WaitOption('All', 200);
MarkTIme(t)
While(not ExistsItem(1)) do
begin
wait(1);
if TimeFromMark(t) > 3000 then
break;
end;
flax := DTMFromString('mbQAAAHicY2VgYDjAxMBwBIiPA/FuKOZmZGDgB2ImIGYBYkEgBvLg2GvpSgY2Aw4GLiAPHTNiwWAAAOoPBho=');
If ExistsItemDTM(flax, x, y) then
begin
FreeDTM(flax);
Exit;
end;
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
i := i + 1
if i = 5 then
begin
FreeDTM(flax);
Writeln('Unable to setup inventory, Logging Out');
Logout;
TerminateScript;
end;
Until(false);
end;
Procedure Bank;
var
x, y, i, t: Integer;
begin
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('S');
RadialWalk(2413294, 315,45,70,1,-1)
While(IsMoving) do
wait(1);
Repeat
Find(x, y, 'bank');
Mouse(x, y, 0, 0, True);
MarkTIme(t);
Repeat
wait(RandomRange(5,10));
if TimeFromMark(t) > 5000 then
Break;
Until(BankScreen);
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
i := i + 1
if i = 5 then
begin
Writeln('Unable to open bank, Logging Out');
Logout;
TerminateScript;
end;
Until(BankScreen);
InventorySetup;
RadialWalk(8554890, 0,45, 200,1,-1)
While(IsMoving) do
wait(1);
end;
Procedure SpinFlax;
var
x, y, i, t, flax: Integer;
begin
Repeat
Find(x, y, 'spinning wheel')
Mouse(x, y, 0, 0, 1);
MouseBox(249, 401, 346, 459, 3);
If WaitUpText('ake', 5000) then
begin
i := 0;
ClickMouse2(1);
Break;
end;
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
i := i + 1
if i = 5 then
begin
Writeln('Unable to open bank, Logging Out');
Logout;
TerminateScript;
end;
i := 0
until(false);
flax := DTMFromString('mbQAAAHicY2VgYDjAxMBwBIiPA/FuKOZmZGDgB2ImIGYBYkEgBvLg2GvpSgY2Aw4GLiAPHTNiwWAAAOoPBho=');
MarkTime(t);
Repeat
Antiban;
Wait(RandomRange(0, 1500));
uf TimeFromMark(t) > 120000 then
break;
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
Until(not ExistsItemDTM(flax, x, y))
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
BankTol := 5;
SpinningWheelTol := 2;
StairsTol := 5;
FlaxTol := 7
ActivateClient;
DeclarePlayers;
LogInPlayer;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('S')
Repeat
Bank;
Stairs(false);
SpinFlax;
Stairs(true);
Inc(TripsCompleted);
Until(TripsCompleted = Trips)
Writeln('Jobs Completed');
end.
program new;
{$DEFINE SRL5}
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
Const
//Please enter SRLStats password and username.
SRLStats_Username = '';
SRLStats_Password = '';
Var
Loads, Antibans, LoadsCompleted: Integer;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Loads:= 10000; //How many trips do you wanna do?
Players[0].Name :=''; //Username
Players[0].Pass :=''; //Password
Players[0].pin:= ''; //Bankpin
Players[0].Active:=True;
LoginPlayer;
Loads := 10000 //How many loads do you wish to do before logging out?
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
procedure AntiBan;
begin
case Random(2800) of
1..25: begin
PickUpMouse; SleepAndMoveMouse(200 + Random(3000));
Antibans:= Antibans + 1;
end;
25..50: begin
PickUpMouse;
Antibans:= Antibans + 1;
end;
50..70: begin
BoredHuman;
Antibans:= Antibans + 1;
end;
70..90: begin
RandomMovement;
Antibans:= Antibans + 1;
end;
90..10: begin
RandomRclick
Antibans:= Antibans + 1;
end;
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure Proggy;
var
ph, comit: Integer;
begin
ph:= Round((LoadsCompleted * 28 * 3600) / (GetTimeRunning / 1000));
Writeln('');
Writeln('');
Writeln('Sockz"z Dwarven Stout Buyer V 0.0')
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
Writeln('Time running: ' + TimeRunning);
Writeln('Loads done: ' + IntToStr(LoadsCompleted));
Writeln('Dwarven Stouts bought: ' + IntToStr(LoadsCompleted * 28));
Writeln('Dwarven Stouts p/h: ' + IntToStr(ph));
Writeln('Antibans done: ' + IntToStr(Antibans))
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
stats_IncVariable('Items (Bought)', 28);
Stats_Commit;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure Walk(place: string);
var
x, y: Integer;
path: TPointArray;
begin
case place of
'bank': path := [Point(3665, 3164), Point(3664, 3161), Point(3663, 3148), Point(3662, 3139), Point(3658, 3130), Point(3645, 3137), Point(3640, 3144), Point(3630, 3152), Point(3619, 3157), Point(3619, 3166), Point(3619, 3173), Point(3619, 3177), Point(3621, 3181)];
'tavern': path := [Point(3617, 3167), Point(3619, 3166), Point(3622, 3154), Point(3632, 3154), Point(3638, 3148), Point(3647, 3140), Point(3656, 3134), Point(3660, 3134), Point(3663, 3141), Point(3664, 3151), Point(3664, 3158), Point(3664, 3160)];
end;
SPS_WalkPath(path);
While(IsMoving) do
wait(Randomrange(5,10));
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//Credits to Nielsie95 and Sumilion for ACA v2, awesome tool!
function Emily(var fx, fy: Integer): Boolean;
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.13, 0.53);
if not(FindColorsTolerance(arP, 3587256, MSX1, MSY1, MSX2, MSY2, 6)) 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 >= 27.39) and (X <= 47.48) and (Y >= 33.48) and (Y <= 56.08) and (Z >= 8.13) and (Z <= 13.22) 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('Emily')) then
begin;
Result := True;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
begin
Exit;
end;
GetMousePos(fx, fy);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function FindEmily: Boolean;
var
x, y, t: Integer;
begin
result:= true;
if Emily(x, y) then
mouse(x, y, 0, 0, 1)
else
result := false;
if result = true then
begin
MarkTime(t);
Repeat
wait(RandomRange(5, 10));
if TimeFromMark(t) > 1000 then
begin
result:= false;
Exit;
end;
While(isMoving) do
wait(RandomRange(5,10));
Until(ClickCOntinue(false, true));
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure BuyaBeer;
var
i, t: Integer;
begin
MouseSpeed := RandomRange(15,17);
While(not FindEmily) do
begin
i:= i + 1
if i > 4 then
wait(RandomRange(500, 1000));
if i = 5 then
Walk('tavern');
if i = 7 then
mousebox(268, 244, 300, 305, 1);
if i = 10 then
Walk('tavern');
if i = 13 then
begin
Writeln('Unable to find Emily, Logging Out');
Logout;
TerminateScript;
end;
end;
Repeat
Until(ClickContinue(false, true) = false);
MouseBox(234, 425, 296, 440, 1);
MarkTime(t);
Repeat
wait(RandomRange(5, 10));
if TimeFromMark(t) > 2000 then
Exit;
Until(ClickCOntinue(false, true));
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure FillInventory;
var
t, i: Integer;
begin
While(not InvFull) do
begin
BuyaBeer;
AntiBan;
if FindNormalRandoms then
if not LoggedIn then
TerminateScript;
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure Bank;
var
i: Integer;
begin
While(InvFull) do
begin
if FindNormalRandoms then
if not LoggedIn then
TerminateScript
Walk('bank');
if OpenBankFast('fwb') then
DepositAll;
i := i + 1
if i = 5 then
begin
Writeln('Unable to bank, Logging Out');
Logout;
TerminateScript;
end;
end;
Walk('tavern');
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sockz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
SPS_Setup(RUNESCAPE_SURFACE, ['9_7','8_7','8_8','9_8']);
SetupSRLStats(1028, SRLStats_Username, SRLStats_Password);
ActivateClient;
DeclarePlayers;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N');
Walk('tavern');
Repeat
FillInventory;
Bank;
LoadsCompleted := LoadsCompleted + 1
Proggy
Until(LoadsCompleted = Loads);
Writeln('~~JOB COMPLETED~~');
LogOut;
TerminaateScript;
end.Please show us one (or multiple) of your scripts.
program New;
{$DEFINE SRL5}
{$DEFINE SMART}
{$i srl/srl.simba}
//{$i sps/sps.simba}
{$i ObjectDTM\ObjDTMInclude.simba}
Const
//Please enter SRLStats password and username.
SRLStats_Username = '';
SRLStats_Password = '';
Var
TabC, Herb1C, Herb2C, BonesC: Boolean;
TripsDone, Trips, InitialXP, CurrentXP, Antibans: Integer;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Trips:= 10000; //How many trips do you wanna do?
Players[0].Name :=''; //Username
Players[0].Pass :=''; //Password
Players[0].pin:= ''; //Bankpin
Players[0].Active:=True;
LoginPlayer;
InitialXp:= GetXPBarTotal;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
procedure AntiBan;
begin
case Random(10000) of
1..20: begin
PickUpMouse; SleepAndMoveMouse(200 + Random(3000));
Antibans:= Antibans + 1;
end;
20..40: begin
HoverSkill('Prayer', false);
GameTab(tab_Inv);
Antibans:= Antibans + 1;
end;
40..60: begin
PickUpMouse;
Antibans:= Antibans + 1;
end;
60..80: begin
BoredHuman;
Antibans:= Antibans + 1;
end;
80..100: begin
RandomMovement;
Antibans:= Antibans + 1;
end;
100..110: begin
RandomRclick
Antibans:= Antibans + 1;
end;
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure Proggy;
var
xpgained, ph, comit: Integer;
begin
CurrentXp:= GetXPBarTotal;
xpgained:= CurrentXp - InitialXp
ph:= Round((xpgained * 3600) / (GetTimeRunning / 1000));
Writeln('');
Writeln('');
Writeln('Sockz"z G Altar V 1.0')
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
Writeln('Time running: ' + TimeRunning);
Writeln('Trips done: ' + IntToStr(TripsDone));
Writeln('EXP gained: ' + IntToStr(xpgained));
Writeln('EXP/H: ' + IntToStr(ph));
Writeln('Antibans done: ' + IntToStr(Antibans))
Writeln('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
comit:= (xpgained - comit);
stats_IncVariable('Prayer EXP (Gained)', comit);
Stats_Commit;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function WalkBank: Boolean;
var
myPath:TPointArray;
x, y: Integer;
begin
if FindSymbol(x, y, 'Water') then
begin
myPath := [Point(4337, 2618), Point(4148, 2573), Point(4089, 2630),
Point(4082, 2792), Point(4348, 2824), Point(4345, 2742),
Point(4181, 2670), Point(4190, 2680), Point(4201, 2683),
Point(4211, 2686)]
//SPS_WalkPath(myPath);
FindNormalRandoms
AntiBan;
Result:= True
end else
begin
Result:= False
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function WalkBank2: Boolean;
var
myPath:TPointArray;
x, y: Integer;
begin
x:= 504;
y:= 342;
if FindObjTPA(x, y, 593476, 7, 1, 10, 10, 50, ['alk here']) then
begin
Mouse(x, y, 4, 4, 1);
wait(1000);
Repeat
wait(1);
Until(not IsMoving);
Result:= True
end else
begin
Result:= False
end;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function HomeScreen: Boolean;
begin
result := findTextTPA(16777215, 20, 239, 270, 279, 289, 'place', upCharsEx, nothing);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function bones: Boolean;
begin
result := IsUpTextMultiCustom(['ffer']);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Function InvCheck: Boolean;
var
tab, herb, check, x, y, i: Integer;
begin
tab:= DTMFromString('mbQAAAHicY2VgYLjGysDwAIpPA/EZIJ7KyMCwCIinQfESIF69ZAlDgI8PGMsonmfISU9nEAHqR8eMWDAYAADxdQ3K');
herb:= DTMFromString('mbQAAAHicY2VgYMhlYmAoBeIcJgg7GYgfM0DwbSB+DsRPgJjbm4eBP00QQmcIMnC5cDNwAcXRMSMWDAYAqc4I/A==');
Herb1C:= False
Herb2C:= False
if FindDTM(tab, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
check:= check + 1;
end else
begin
Writeln('No tabs present, Logging Out');
Logout;
TerminateScript;
end;
if FindDTM(herb, x, y, 601, 216, 644, 247) then
begin
Herb1C:= True
check:= check + 1;
end;
if FindDTM(herb, x, y, 642, 212, 683, 243) then
begin
Herb2C:= True
check:= check + 1;
end;
if InvFull then
check:= check + 1;
If Check = 4 then
Result:= True;
FreeDtm(tab);
FreeDtm(herb);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure TeleBank;
var
x, y, t, i: integer;
begin
Repeat
FindNormalRandoms;
if FindObjTPA(x, y, 7048352, 8, 1, 10, 10, 25, ['mulet']) then
begin
mouse(x, y, 2, 2, 1);
Wait(1400 + RandomRange(200, 300));
Flag;
Antiban;
While(IsMoving) do
begin
wait(1);
end;
FindNPCChatText('dgeville', Clickleft);
end;
MarkTime(t);
Repeat
if WalkBank2 then
Exit;
Until(TimeFromMark(t) > 10000);
Inc(i);
Until(i = 5);
WriteLn('Unable to locate bank, Logging Out');
LogOut;
TerminateScript;
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure OBank;
var
i, t: integer;
begin
Repeat
if (i = 2) then
MouseBox(239, 233, 306, 305, 1);
OpenBankNPC
AntiBan;
FindNormalRandoms;
MarkTime(t);
Repeat
If TimeFromMark(t) > 3500 then
break;
If TimeFromMark(t) > 2500 then
OpenBankNPC ;
Wait(1);
Until(BankScreen);
Inc(i);
if (i = 7) then
begin
WriteLn('Unable to open bank, Logging Out');
Logout;
TerminateScript;
end;
Until(BankScreen);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure CBank;
var
i, t: integer;
begin
Repeat
CloseBank;
AntiBan;
MarkTime(t);
Repeat
If TimeFromMark(t) > 5000 then
break;
Wait(1);
Until(not Bankscreen);
Inc(i);
if (i = 5) then
begin
WriteLn('Unable to close bank, Logging Out');
Logout;
TerminateScript;
end;
Until(not BankScreen);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure Bank;
var
i, t: integer;
begin
Repeat
OBank;
if InvCheck then
Exit;
Wait(RandomRange(500,550));
If Herb1C = False then
begin
If ExistsItem(2) then
begin
InvMouse(2, 1)
Wait(RandomRange(1200,1300));
end;
Withdraw(9, 0, 1);
end;
If Herb2C = False then
begin
If ExistsItem(3) then
begin
InvMouse(3, 1)
Wait(RandomRange(1200,1300));
end ;
Withdraw(9, 0, 1);
end;
Wait(RandomRange(1200,1300));
MouseBankSlot(9, mouse_Right);
WaitOption('All', 200);
CBank;
Wait(RandomRange(750, 1000));
Inc(i);
if (i = 5) then
begin
WriteLn('Unable to withdraw correct items, Logging Out');
Logout;
TerminateScript;
end;
Until(InvCheck);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure TeleHouse;
var
i, t: integer;
begin
Repeat
CBank
InvMouse(1, 1);
MarkTime(t);
FindNormalRandoms;
AntiBan;
Repeat
wait(10);
if TimeFromMark(t) > 7000 then
break;
Until(HomeScreen)
Inc(i);
if (i = 5) then
begin
WriteLn('Unable to find house, Logging Out');
Logout;
TerminateScript;
end;
Until(HomeScreen);
Repeat
wait(10);
Until(not HomeScreen);
Wait(RandomRange(400, 500));
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure ToAltar;
var
x, y, i, door: Integer;
begin
door:= DTMFromString('mbQAAAHicY2VgYGBiZGDgguLfQP4vIPYC4hggtoLiaBAOdmWozghkKE/xZyhN9mMI83di4AeKo2NGLBgMAGenCTc=');
Repeat
FindNormalRandoms;
if FindDTM(door, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 4, 4, true);
Antiban;
Repeat
wait(1)
Until(not FindDTM(door, x, y, MSX1, MSY1, MSX2, MSY2));
Break;
end else
begin
TeleHouse;
Inc(i);
end;
if (i = 5) then
begin
WriteLn('Unable to find door, Logging Out');
Logout;
TerminateScript;
end;
Until(false);
MouseBox(178, 24, 252, 59, 1);
Flag;
wait(RandomRange(400, 500));
Repeat
wait(1);
Until(IsMoving = false);
FreeDTM(door);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure LightBurner1;
var
burner, x, y, i, t: Integer;
begin
burner:= DTMFromString('mbQAAAHicY2VgYGBiZGBgA2J2IP4P5P8D4hogbgDiKiCuhLI/H1Bk8LbQZHA0VAFjXyttBn6gODpmxILBAACEcwky');
Repeat
FindNormalRandoms;
if FindDTM (burner, x, y, 109, 14, 317, 196) then
begin
mouse(x, y, 2, 2, true);
AntiBan;
MarkTime(t);
Repeat
if TimeFromMark(t) > 5000 then
Break;
Wait(1);
Until(not ExistsItem(2));
end;
if ExistsItem(2) then
Inc(i)
else
Break;
if (i = 4) then
begin
TeleHouse;
ToAltar;
end;
if (i = 7) then
begin
WriteLn('Unable to light burnner 1, Logging Out');
Logout;
TerminateScript;
end;
Until(false);
Wait(RandomRange(600, 700));
Repeat
wait(1);
Until(not IsMoving);
FreeDTM(burner);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure LightBurner2;
var
burner, x, y, i, t, a, b, c, d: Integer;
begin
FindNormalRandoms;
burner:= DTMFromString('mbQAAAHicY2VgYOgB4g4g7gfiPii7CogroLgOiBuAeFWHJIOLiRqDk5Eqg6eFJkOArS4DP1AcHTNiwWAAAK6wCV0=');
a:= 313;
b:= 33;
c:= 513;
d:= 223;
Repeat
if FindDTM (burner, x, y, a, b, c, d) then
begin
mouse(x, y, 2, 2, true);
AntiBan;
MarkTime(t);
Repeat
if TimeFromMark(t) > 5000 then
break;
wait(1)
Until(not ExistsItem(3));
end;
if ExistsItem(3) then
Inc(i)
else
Break;
if (i = 4) then
begin
a:= 126
b:= 52
c:= 432
d:= 294
end;
if (i = 7) then
begin
WriteLn('Unable to light burnner 2, Logging Out');
Logout;
TerminateScript;
end;
wait(RandomRange(1000, 1500));
Until(false);
Repeat
wait(1);
Until(not IsMoving);
FreeDTM(burner);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Procedure UseBones;
var
altar, x, y, i, t: Integer;
begin
altar:= DTMFromString('mWAAAAHicY2FgYOhhZmCYB8QLgbgfiKczMjBMBeKFUDxz5gKGmzevMVy7epHh8qXTDCJAPciYEQ2DAAD7XQ53');
Repeat
FindNormalRandoms;
if i > 0 then
wait(RandomRange(6000, 7000));
InvMouse(5, 0);
WaitOption('se', 500);
if FindDTM(altar, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 4, 4, 1)
MouseBox(223, 402, 295, 455, 3);
end else
begin
Inc(i);
end;
MarkTime(t);
Repeat
if TimeFromMark(t) > 5000 then
Break;
wait(1);
Until(bones);
if bones then
ClickMouse2(1);
if (i = 5) then
begin
WriteLn('Unable to use bones, Logging Out');
Logout;
TerminateScript;
end;
wait(RandomRange(3000, 4000));
Until(not ExistsItem(4));
Repeat
wait(RandomRange(500, 1250));
AntiBan;
FindNormalRandoms;
Until(not ExistsItem(28));
wait(RandomRange(750, 2000));
FreeDTM(altar);
end;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%umad?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
//SPS_Setup(RUNESCAPE_SURFACE,['10_6','10_7']);
ActivateClient;
DeclarePlayers;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N')
SetupSRLStats(996, SRLStats_Username, SRLStats_Password);
Repeat
Bank;
TeleHouse;
ToAltar;
LightBurner1;
LightBurner2;
UseBones;
TeleBank;
TripsDone:= TripsDone + 1
Proggy;
Until(TripsDone = Trips);
LogOut;
Writeln('All trips completed');
end.