zealkctro
2012-05-09 10:48:03
How Long have You Played Runescape?
9 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
What is your general programming knowledge?
C++, simba
Are you a member of any other communities?
no
Tell us about yourself…
Please show us one (or multiple) of your scripts.
9 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
What is your general programming knowledge?
C++, simba
Are you a member of any other communities?
no
Tell us about yourself…
From: emuleuser12345
I started learning c++ in 2011 and simba a few months ago. My interest is to script everything possible in runescape :)
Please show us one (or multiple) of your scripts.
program AbyssCrafter;
{$DEFINE SMART}
{$i SRL\SRL.simba}
{$i SPS/sps.simba}
{$i srl/srl/misc/debug.simba}
var
TimeswithoutMouse, x, y, loads : integer;
TPA : Tpointarray;
ATPA: T2dpointarray;
location, tmpstr: string;
firstpt : TPoint;
Small, Medium, Large, Giant, Repair : integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].WorldInfo := [True, 9, False];
Players[0].Strings[0] := 'nature';
end;
const
BankerColor = 3349795;
Procedure SetUpDTMs;
begin
Small := DTMFromString('m6wAAAHic42ZgYHjOxMDwCIifAfFbKP4AxO+A+DVU7j4Q3wNif0YGBncgdgBiVyD2YoSIhQJxOBCHQdl+QOztagU0nYkozM9AGmAkEiMBAASZDm4=');
Medium := DTMFromString('mVAEAAHicpc7NCkBgFITh+diQ/xTlZkgpYSFR3P+NeBdnIUumnqZOZzG5pMKXElOifmhMhRQRAhMixuakES069BgwYcWBE5f1bvfF/ra5ZYX3Wab/cT+8cwP42QdB');
Large := DTMFromString('mkwEAAHicrc5JCoRADIXhlB6gF30QBZEGB7TEEcFeiDjc/yD+hVm6rMDHCySBfEUkC0UileCHVLOERYUGLXrNGrnuubsYfyOymidnjOhg0Wg/6WzBhgMnLuX63c2Hgu8CLz7it4wnL3UDHqwLow==');
Giant := DTMFromString('mEQIAAHicvc/LCoJgEIbh+fMCXHsvoUGhJGqEoXlAF9IBRETq/vGNZuGmpX3wwHwMsxhHRO6WSKauqNGiWcw3PDGgVyNeeKtJ9w90el8iR2xEUpwQ4Qgfe+zgwlOffkCA0Hxvz7igQIlaVdpzJMGWbzarsuU/MSv7mRl5IhL8');
end;
Procedure OnelineReport;
begin
writeln('********Abyss Crafter One Line Report *********');
writeln(['Time running:', TimeRunning, 'Loads done:', inttostr(loads)]);
writeln('**************************************************');
end;
Procedure Mycout(s : string);
var
newFile: integer;
begin
writeln(s);
//WriteFileString(newFile, TheDate(Date_Day) + ' '+ myTheTime + ' ' + s + #13 + #10);
end;
Function Inedgeville : boolean; //use symbols
var
x, y : integer;
begin
colortolerancespeed(1);
symbolaccuracy := 0.7;
if((findsymbol(x, y, 'lodestone')) or (findsymbol(x, y, 'archery shop')) or (findsymbol(x, y, 'cook')) or ((findsymbol(x, y, 'water')) and (findsymbol(x, y, 'store')))) then
result := true
else
result := false;
end;
Procedure EmergencyTele;
begin
FTab(28);
wait(500+random(50));
Mouse(equipmentCoords(3).x, equipmentCoords(3).y, 0, 0, false);
waitOptionMulti(['Edgev', 'dgevi', 'ville', 'gevil', 'evill'], 1000);
wait(4000+random(500));
end;
Procedure CheckRun;
var
tmpstr : string;
x, y, time: integer;
begin
Mycout('checking run energy...');
if (getMMlevels('run', tmpstr) < 50) then
begin
Mycout('run energy is lower than 30, rest now!');
restuntil(85);
Mycout('finish resting, continue! gogogo!');
end;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.13, 0.95);
if (countcolortolerance(2612210, 714, 102, 730, 115,12 )> 20) then
Mycout('run is on.')
else
begin
Mycout('run is off');
Mouse(715, 95, 10, 10, mouse_left);
end;
end;
function HisLodestoneTeleport(Where: String): Boolean; //Full Credits to Home, this is not my function.
var
TPA: TPointArray;
TSA: TStringArray;
Box: TBox;
CTS, I: Integer;
begin
If not LoggedIn then Exit;
If not LodestoneScreen then Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
TSA := ['Lunar Isle', 'Yanille', 'Ardougne', 'Seers Village', 'Catherby', 'Taverley',
'Burthorpe', 'Edgeville', 'Falador', 'Port Sarim', 'Draynor Village', 'Lumbridge',
'Varrock', 'Al Kharid', 'Bandit Camp'];
TPA := [Point(45, 78), Point(160, 262), Point(167, 211), Point(192, 158), Point(223, 181),
Point(253, 180), Point(251, 145), Point(293, 160), Point(278, 206), Point(276, 249), Point(308, 211),
Point(327, 243), Point(345, 182), Point(362, 229), Point(326, 297)];
for I := 0 to 14 do
if Capitalize(Where) = TSA[I] then
begin
Repeat
writeln('clicking to teleport...');
Mouse(TPA[I].X, TPA[I].Y, 2, 2, true);
wait(3000);
Until(not lodestonescreen);
end;
ColorToleranceSpeed(CTS);
end;
Procedure MyLodeStoneTeleport(Where : string) ;
begin
Ftab(28);
wait(400+random(80));
MMouse(574, 228, 3, 3);
if (WaitUpTextMulti(['ast H', 'st Ho', 'ome T', 'elepo'], 350)) then
begin
ClickMouse2(True);
wait(1500+random(300)); //wait for screen to load
if (Lodestonescreen) then
begin
Repeat
HisLodestoneteleport(where)
until(not lodestonescreen);
Repeat
wait(100);
until(inEdgeville)
end else
writeln('cannot find lodestone screen');
end;
end;
Procedure MouseWalkToEB;
var
x, y: integer;
begin
mycout('We are in MouseWalkToEB procedure!');
wait(5000);
mycout('checking lodestone symbol and setting angle...');
symbolaccuracy:= 0.6;
colortolerancespeed(1);
clicknorth(SRL_ANGLE_HIGH);
if(findsymbol(x, y, 'lodestone')) then
mycout('lodestone symbol found!')
else
mycout('lodestone symbol not found.');
mycout('MouseWalk: Walking to the first position...');
Mouse(692, 100, 0, 0, true);
fflag(0);
// wait(2000);
mycout('MouseWalk: Walking to the next position...');
Mouse(670, 121, 0, 0, true);
wait(2000);
if(findsymbol(x, y, 'bank'))then
begin
mycout('banksymbol found!');
Mouse(x, y, 0, 0, true);
end else
mycout('bank symbol not found.');
fflag(0);
// wait(2000);
mycout('MouseWalkToEB procedure finished.');
symbolaccuracy := 0.8;
end;
Procedure MouseWalkEBtoBorder;
begin
mycout('We are in MouseWalktoBorder procedure!');
mycout('setting angle...');
mycout('MouseWalk: Walking to the first position...');
Mouse(665, 49, 2, 2, true);
clicknorth(SRL_ANGLE_low);
fflag(0);
// wait(2000);
mycout('MouseWalk: Walking to the next position...');
Mouse(631, 23, 0, 2, true);
fflag(0);
// wait(2000);
mycout('MouseWalk: Walking to the last position...');
Mouse(628, 60, 0, 2, true);
// fflag(0);
// wait(2000);
mycout('MouseWalk EB to Border procedure finished.');
end;
//Credits to PremiumSimba, added an option for not doing spiral.
function FindCustomObject(upText: TStringArray; color, tolerance, pixelDistance, ignorePixelCount, spiral, x1, y1, x2, y2 : Integer; mouse, doClick, checkText: Boolean; hmod, smod: Extended; options: TStringArray): Boolean;
var
x, y, i, j, CTS: Integer;
TPA: TPointArray;
MTPA: T2DPointArray;
begin
Inc(TimesWithoutMouse);
if(IsUpTextMultiCustom(upText) AND (TimesWithoutMouse < 6)) then
begin
if(NOT doClick) then
begin
Result := True;
exit;
end;
if(mouse = true) then
begin
ClickMouse2(true);
Result := True;
exit;
end else
begin
ClickMouse2(false);
if(ChooseOptionMulti(options)) then
begin
Result := True;
exit;
end;
end;
end;
// else
CTS := GetColorToleranceSpeed;
Result := False;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(hmod, smod);
if ((Spiral=1) and (x1=0) and (y1=0) and (x2=0) and (y2=0)) then
FindColorsSpiralTolerance(MSCX, MSCY, TPA, color, MSX1, MSY1, MSX2, MSY2, tolerance)
else
FindColorsTolerance(TPA, color, x1, y1, x2, y2, tolerance);
ColorToleranceSpeed(CTS);
Result := False;
if(Length(TPA) = 0) then
Exit;
MTPA := SplitTPA(TPA, pixelDistance);
//DebugTPA(TPA,'asdf');
j := High(MTPA);
for i := 0 to j do
begin
if(GetArrayLength(MTPA[i]) > ignorePixelCount) then
begin
MiddleTPAEx(MTPA[i], x, y);
MMouse(x, y, 2, 2);
wait(100 + random(50));
if(IsUpTextMultiCustom(upText)) then
begin
TimesWithoutMouse := 0;
if(NOT doClick) then
begin
Result := True;
break;
end;
if(mouse = true) then
begin
ClickMouse2(true);
Result := True;
break;
end else
begin
ClickMouse2(false);
if(ChooseOptionMulti(options)) then
begin
Result := True;
break;
end;
end;
end;
end;
end;
end;
//Credits to PremiumSimba.
procedure OpenBankCustom;
var
trys, x, y: Integer;
begin
writeln('We are in openBankCustom Procedure!');
if(BankScreen) then Exit;
trys := 0;
SymbolAccuracy := 0.6;
repeat
Inc(trys);
FindCustomObject(['alk-', 'lk-to', 'to', 'k-to', 'anker'], BankerColor, 4, 5, 2, 1, 0, 0, 0, 0, false, true, true, 0.36, 0.54, ['ank B', 'ank']);
FFLag(0);
// wait(900 + random(200));
if(trys > 8) then
begin
if(FindSymbol(x, y, 'bank')) then
Mouse(x, y, 0, 0, true);
trys := 0;
end else if(trys > 10) then
begin
SPS_WalkToPos(Point(4198, 2651));
trys := 0;
end;
// wait(1500 + random(1000));
until(BankScreen OR PinScreen);
SymbolAccuracy := 0.8;
end;
Procedure WithdrawOrRefill;
var
ate: integer;
tmpstr : string;
begin
if (BankScreen) then
writeln('BankScreen found.')
else
begin
writeln('No BankScreen found. Terminatin script...');
TerminateScript;
end;
Mouse(itemcoords(5).x, itemcoords(5).y, 0, 0, false);
ChooseOptionMulti(['it-All', 'll', 'll Nat', 'l Natu', 'All', 't-All']);
if (GetMMLevels('hp', tmpstr)< 770) then
begin
writeln('HP is Low! Getting food now...');
Repeat
Withdraw(0, 0, 1);
wait(500+random(200));
Mouse(itemcoords(5).x, itemcoords(5).y, 0, 0, false);
ChooseOptionMulti(['Eat']);
Inc(ate);
wait(1000);
Until((GetMMLevels('hp', tmpstr )> 800) or (ate = 4));
end else
writeln('No need to eat food. Withdrawing essences...');
Withdraw(1, 0, 0);
if(FindDTM(Small, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOptionMulti(['ill', 'Fill', 'ill S', 'll Sm', 'l Sma']);
end else
writeln('Small Pouch not found.');
if(FindDTM(Medium, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOptionMulti(['ill', 'Fill', 'ill M', 'll Med', 'l Medi']);
end else
writeln('Medium Pouch not found.');
if(FindDTM(Large, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOptionMulti(['ill', 'Fill', 'ill L', 'll La', 'l Larg']);
end else
writeln('Large Pouch not found.');
Withdraw(1, 0, 0);
if(FindDTM(Giant, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
Mouse(x, y, 0, 0, false);
ChooseOptionMulti(['ill', 'Fill', 'ill G', 'll Gi', 'l Gian']);
Withdraw(1, 0, 0);
end else
writeln('Giant Pouch not found.');
if(IsChatBoxTextbetween('our pouch has decayed', clBlack, 7, 8) or findcustomobject(['pouch', 'mpty'], 2632494, 8, 4, 4, 0,MIx1, MIy1, MIx2, MIy2, true, false, true, 0.15, 0.17, [''])) then
begin
writeln('Pouch has decayed. Going to repair from mage!');
Repair := 1;
end;
CloseBank; //add pouch features here, also repiar pouch too
end;
Procedure WildernessWalk;
var
trys, x, y : integer;
begin
Mycout('seems like we have arrived the border... CROSS NOW!');
Repeat
if (findcustomObject(['ross', 'ilderness', 'ilderness Wall'], 3358018, 8, 4 ,1, 0, 177, MSy1, MSx2, MSCy, false, true, true, 0.18, 0.11, ['ross', 'ilderness', 'ilderness Wall'])) then
begin
mycout('clicked border!');
if (didclick(true, 200)) then
break;
end else
begin
Mycout('failed to find border. Attempts:' + inttostr(trys));
inc(trys);
wait(1000);
end;
Until (trys = 50);
if (trys = 50) then
begin
mycout(' find border failed for 50 times. Terminating script.');
SmartgetFieldObject(1488,'crash');
end;
Mycout('waiting to cross the border...');
wait(randomrange(5000, 5500));
{ CloseWildyWindow;
Mycout('Entered wilderness!');
wait(4000+random(500)); }
Mouse(626, 19, 0, 0, true);
fflag(0);
Mouse(635, 19, 0, 0, true);
Mycout('walked to Zamarok Mage. Enetering Abyss...');
clicknorth(SRL_ANGLE_LOW);
Trys := 0;
Repeat
if (FindCustomObject(['age', 'age of', 'amaro', 'marok'], 1451109, 10, 4, 4, 1, 0, 0, 0, 0, false, true, true, 0.20, 1.24, ['elepo', 'eport'])) then
begin
Mycout('clicked mage!');
wait(3000+random(400));
exit;
end;
Mycout('find mage failed. attemt:' + inttostr(trys));
inc(trys);
wait(1000);
if(trys = 10) then makecompass('45');
if(trys = 40) then makecompass('70');
if(trys = 70) then makecompass('180');
if(trys = 90) then makecompass('55');
until(trys=120);
if (trys = 120) then
begin
mycout(' Find Mage failed for 120 times. Terminating script.');
SmartgetFieldObject(1488,'crash');
end;
end;
Function FindNearestObject : tPoint;
var
Points : TPointArray;
DistanceArr : TIntegerArray;
I, result1 : Integer;
tmppt : TPoint;
begin
Points := ([Point(171, 2199), Point(167, 2203), Point(159, 2239), Point(163, 2283), Point(199, 2331), Point(259, 2339), Point(291, 2331), Point(331, 2287), Point(343, 2225), Point(335, 2211), Point(247, 2151), Point(203, 2167)]);
tmppt := SPS_getmypos;
DistanceArr := [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
For I := 0 to Length(Points)-1 do
begin
if (firstpt.x = Points[I].x) then
begin
writeln('same firstpoint! ignoring...');
DistanceArr[I] := 10000;
continue;
end else
begin
DistanceArr[I] := Distance(tmppt.x, tmppt.y, Points[I].x, Points[I].y);
Writeln('Distance from Point ' + tostr(I) + ' is : ' + tostr(DistanceArr[I]));
end;
end;
result1 := min(min(min(min(min(min(min(min(min(min(min(DistanceArr[0], DistanceArr[1]), DistanceArr[2]), DistanceArr[3]), DistanceArr[4]), DistanceArr[5]), DistanceArr[6]), DistanceArr[7]), DistanceArr[8]), DistanceARr[9]), DistanceArr[10]), DistanceArr[11]);
writeln('Result :' + tostr(result1));
For I := 0 to Length(DistanceArr) -1 do
begin
if (result1 = DistanceArr[I]) then
begin
writeln('Nearest Point is Point(' + tostr(Points[I].x) + ', ' + tostr(Points[I].y) + ')');
result.x := Points[I].x;
result.y := Points[I].y;
end;
end;
end;
Function ClickAbyssObject : Boolean;
begin
if((findcustomobject(['urn', 'down', 'oil'], 2897259, 3, 4, 4, 1, 0, 0, 0, 0, True, True, True, 0.08, 0.25, [''])) or
(findcustomobject(['ine', 'ock'], 5862033, 7, 4, 4, 1, 0, 0, 0, 0, True, True, True, 0.03, 0.68, [''])) or
(findcustomobject(['hop', 'endri', 'drils'], 6449814, 5, 4, 4, 1, 0, 0, 0, 0, True, True, True, 0.05, 1.57, [''])) or
(findcustomobject(['istract', 'stract', 'yes'], 1213573, 7, 4, 4, 1, 0, 0, 0, 0, True, True, True, 0.03, 0.14, [''])) or
(findcustomobject(['queez', 'ueeze', 'throu', 'rough'], 2370385, 6, 4, 4, 1, 0, 0, 0, 0, True, True, True, 0.05, 0.15, ['']))) then
begin
if(didclick(true, 200)) then
Result := True
else
Result := False;
end;
end;
Procedure AbyssRing; //nature : 171 , 2199 //death : 331, 2207
var
x, y, trys, attempt : integer;
tmpstr: string;
tmppt : tPoint;
begin
Mycout('Abyss Entered! Fuck Those Bitches!');
clicknorth(srl_angle_high);
firstpt := FindNearestObject
SPS_blindWalk(firstpt);
Repeat
writeln('finding object...');
if(clickabyssobject = true) then
begin
trys:=0;
writeln('clicked object!');
setangle(srl_angle_high);
Repeat
clickabyssobject;
Until (IsChatBoxTextbetween('sneak', clBlack, 7, 8) or (IsChatBoxTextbetween('manag', clBlack, 7, 8))or (IsChatBoxTextBetween('anage', clBlack, 7, 8)) );
end else
begin
inc(trys);
writeln('find object failed. Attempts :' + tostr(trys));
if(trys=2) then
begin
writeln('Trys =2: Finding other position...');
SPS_blindWalk(FindNearestObject);
clicknorth(srl_angle_high);
end;
end;
Until (IsChatBoxTextbetween('sneak', clBlack, 7, 8) or (IsChatBoxTextbetween('manag', clBlack, 7, 8))or (IsChatBoxTextBetween('anage', clBlack, 7, 8)) or (trys=15));
//if(trys=15) then
end;
Procedure InnerRing;
var
trys, compassangle : integer;
TPA : TpointArray;
ATPA : T2dPointArray;
N : Byte;
begin
wait(700+random(100)); //nature rift:231, 2199
writeln('We are in inner ring! Yay!'); //295, 2223
if(Repair = 1) then
begin
writeln('OK so we are going to repair pouches.');
Repeat
SPS_blindwalk(Point(247, 2235));
Until (FindCustomObject(['to', 'ark', 'mage'], 855567, 1, 4, 4, 1, 0, 0, 0, 0, false, true, True, 8.34, 7.15, ['epair', 'pair-', 'pouch', 'ouche', 'uches']))
writeln('we found and talking to dark mage!');
wait(3000);
ClickContinue(true, true);
writeln('Repaired pouches!');
Repair := 0;
end;
if(Players[0].Strings[0] = 'nature') then
begin
SPS_blindWalk(Point(231, 2199));
setangle(SRL_ANGLE_LOW);
Makecompass('150');
fflag(0);
Repeat
writeln('finding the rift...');
if( FindcustomObject(['ature', 'ure r', 're ri', 'e rif'], 1123859, 6, 4, 4, 1, 0, 0, 0, 0, false, True, True, 0.43, 4.36, ['Exit', 'xit', 'throu', 'rough']) ) then
begin
writeln('we clicked the rift!');
break;
end else
inc(trys);
If(trys>5) then
begin
writeln('Trys > 5 : walking to nature rift again...');
SPS_blindwalk(POint(231, 2199));
setangle(srl_angle_low);
Makecompass('150');
trys := 0;
end;
wait(1000);
until(trys =15);
end;
if(Players[0].Strings[0] = 'death') then
begin
SPS_blindWalk(POint(295, 2223));
setangle(srl_angle_low);
makecompass('290');
fflag(0);
Repeat
writeln('finding the rift...');
FindcustomObject(['eath', 'ath r', 'th ri', 'h rif'], 3882046, 14, 4, 4, 1, 0, 0, 0, 0, false, True, True, 0.50, 0.11, ['Exit', 'xit', 'throu', 'rough'])
if(didclick(true, 200)) then
begin
writeln('we clicked the rift!');
break;
end else
inc(trys);
If(trys>5) then
begin
writeln('Trys > 5 : walking to death rift again...');
SPS_blindwalk(POint(295, 2223));
makecompass('290');
trys := 0;
end;
wait(1000);
until(trys =15);
end;
if(Players[0].Strings[0] = 'cosmic') then
begin
SPS_blindWalk(POint(199, 2223));
setangle(srl_angle_low);
makecompass('50');
fflag(0);
Repeat
writeln('finding the rift...');
FindcustomObject(['osmic', 'mic r', 'ic ri', 'c rif', 'Cosmi'], 1462126, 12, 4, 4, 1, 0, 0, 0, 0, false, True, True, 0.49, 0.84, ['Exit', 'xit', 'throu', 'rough'])
if(didclick(true, 200)) then
begin
writeln('we clicked the rift!');
break;
end else
inc(trys);
If(trys>5) then
begin
writeln('Trys > 5 : walking to cosmic rift again...');
SPS_blindwalk(POint(199, 2223));
makecompass('50');
Trys:= 0;
end;
wait(1000);
until(trys =15);
end;
end;
Procedure CraftRunes;
begin
writeln('we are in craft runes procedure!');
wait(1000);
clicknorth(srl_angle_high);
{ MMouse(258, 274, 0, 0);
If(isUpTextMultiCustom(['raft', 'rune', 'ltar']))then
Mouse(258, 274, 0, 0, true)
else }
Repeat
FindCustomObject(['raft', 'rune', 'ltar'],6512225, 4, 4, 4, 1, 0, 0, 0, 0, true, true, true, 0.63, 0.18, [''])
Until(didclick(true, 200));
Ftab(25);
if(FindDTM(small, x, y, MIx1, MIy1, MIx2, MIy2)) then begin wait(2600); Mouse(x, y, 0, 0, true); end else writeln('Small Pouch not found.');
if(FindDTM(medium, x, y, MIx1, MIy1, MIx2, MIy2)) then Mouse(x, y, 0, 0, true) else writeln('Medium Pouch not found.');
if(FindDTM(large, x, y, MIx1, MIy1, MIx2, MIy2)) then Mouse(x, y, 0, 0, true) else writeln('Large Pouch not found.');
Repeat
FindCustomObject(['raft', 'rune', 'ltar'],6512225, 4, 4, 4, 1, 0, 0, 0, 0, true, true, true, 0.63, 0.18, [''])
Until(didclick(true, 200));
if(FindDTM(giant, x, y, MIx1, MIy1, MIx2, MIy2)) then
begin
wait(2000+random(200));
Mouse(x, y, 0, 0, true);
Repeat
FindCustomObject(['raft', 'rune', 'ltar'],6512225, 4, 4, 4, 1, 0, 0, 0, 0, true, true, true, 0.84, 0.18, [''])
Until(didclick(true, 200));
end else writeln('Giant Pouch not found.');
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
SPS_setup(RUNESCAPE_SURFACE, [ '0_5']);
SPS_DEBUG := True;
DeclarePlayers;
LoginPlayer;
setupDTMS;
MouseSpeed := 22;
writeln('Finding Randoms...');
if (FindNormalRandoms) then
writeln('Randoms Found!')
else
writeln('No Randoms Found.');
Repeat
OpenBankCustom;
WithdrawOrRefill;
checkrun;
MouseWalkEBtoBorder;
WildernessWalk;
AbyssRing;
InnerRing;
CraftRunes;
MyLodeStoneTeleport('Edgeville');
MouseWalktoEB;
Inc(Loads);
OneLineReport;
until(false);
end.