SRL Archive - Archive

wister1 - SRL Member Application


wister1

2012-03-30 20:04:28

How Long have You Played Runescape?
8 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
C, Assembly, MatLab, Pascal, Java, C+, C++


Are you a member of any other communities?
Sythe


Tell us about yourself…
From: wister1
Im taking a degree in eletronic and telecomunication engineering, i like programming, in the present i dont like playing so much as before but im more interested in doing scripts for autoing.

Besides programming i like soccer and basketball.



Please show us one (or multiple) of your scripts.
program KeldagrimMiner;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| |}
{| Keldagrim Adamantite/Runite/Gold Miner |}
{| By Wister V1.0 |}
{| |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| |}
{| Requirements: |}
{| |}
{| =>70 Mining |}
{| =>(Recomended) Pickaxe in your hand; |}
{| Or in your 1st inventory slot. |}
{| |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| |}
{| Set-Up Instructions: |}
{| |}
{| =>I recomend you to run the script with your |}
{| Character placed in the Keldagrim Mine. Anyway, |}
{| you can run it in the Keldagrim Bank or close from |}
{| it in the path to the mine. |}
{| =>If you want to mine Adamantite, Runite and Gold, go |}
{| to the script's 43 line and just leave: RocksToMine := 0; |}
{| If you want to mine only Adamantite and Runite, replace |}
{| the 0 by 1, at line 43. |}
{| If you only want to mine Adamantite, replace the 0 by 2. |}
{| |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}

{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$I srl/srl/misc/debug.simba}

Var //Global variables
AddyCounter,RuneCounter,GoldCounter,DepositNumber,StartTime,RocksToMine,KFlag:integer;

Procedure DeclarePlayers;
begin

RocksToMine := 0; //If you want to mine Adamantite, Runite and Gold, leave 0.
//If you want to mine only Adamantite and Runite, replace the 0 by 1.
//If you only want to mine Adamantite, replace the 0 by 2.

KFlag := 0;
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //Runescape Username
Players[0].Pass := ''; //Runescape Password
Players[0].Nick := ''; //3 or 4 lowercase letters from your runescape username.
Players[0].Active := True;
Players[0].Pin := ''; //Leave Blank if no PIN.

end;

procedure Login;
begin

ClearDebug;
Smart_Server := 0; //Zero for Random World
Smart_Members := True; //True => Member
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL();
DeclarePlayers;
LoginPlayer;

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| You'll be able to see the report every time you make a deposit. |}
{| It can be found at the Debug box. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure Report;
Var

TotalXp,Sec,XP_H,MiningRate,MiningRate1,MiningRate2,DepositRate:Integer;

begin

TotalXp := (105*AddyCounter) + (138*RuneCounter) + (65*GoldCounter);

Sec := (1+((GetSystemTime-StartTime)/1000));
XP_H := (TotalXp*3600)/Sec;
MiningRate := (AddyCounter*3600)/Sec;
MiningRate1 := (RuneCounter*3600)/Sec;
MiningRate2 := (GoldCounter*3600)/Sec;
DepositRate := (DepositNumber*3600)/Sec;

writeLn('||-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-||');
writeLn('||-:_:-:_:-:_:-:_:-: Keldagrim Miner :-:_:-:_:-:_:-:_:-||');
writeLn('||Time Running: ' + Padr(TimeRunning,38) + ' ||');
writeLn('||Adamantite Mined: ' + Padr(IntToStr(AddyCounter),34) + ' ||');
if((RocksToMine = 0) or (RocksToMine = 1)) then
writeLn('||Runite Mined: ' + Padr(IntToStr(RuneCounter),38) + ' ||');
if(RocksToMine = 0) then
writeLn('||Gold Mined: ' + Padr(IntToStr(GoldCounter),40) + ' ||');
writeLn('||Exp Earned: ' + Padr(IntToStr(TotalXp),40) + ' ||');
writeln('||Adamantite Mined Per Hour: ' + Padr(IntToStr(MiningRate),25) + ' ||');
if((RocksToMine = 0) or (RocksToMine = 1)) then
writeln('||Runite Mined Per Hour: ' + Padr(IntToStr(MiningRate1),29) + ' ||');
if(RocksToMine = 0) then
writeln('||Gold Mined Per Hour: ' + Padr(IntToStr(MiningRate2),31) + ' ||');
writeLn('||Exp Per Hour: ' + Padr(IntToStr(XP_H),38) + ' ||');
writeLn('||Deposit Per Hour: ' + Padr(IntToStr(DepositRate),34) + ' ||');
writeLn('||-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-||');

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| My AntiBan procedure is composed by 11 diferent moves and they can be |}
{| executed with a probability of 1%, to ensure that the Script isn't |}
{| much repetitive, and to obtain a best mining performance. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure AntiBan;
begin

if(not LoggedIn)then
Exit;

case random(1100) of
0:
PickUpMouse;
21:
HoverSkill('random', False);
71:
begin
RandomAngle(True);
SetAngle(SRL_ANGLE_HIGH);
end;
98:
HoverSkill('Mining', False);
111:
begin
MakeCompass(random(90));
ClickNorth(SRL_ANGLE_HIGH);
end;
123:
begin
MakeCompass('E');
ClickNorth(SRL_ANGLE_HIGH);
end;
137:
RandomRClick;
160:
begin
RandomRClick;
HoverSkill('Mining', False);
end;
179:
RandomMovement;
193:
SleepAndMoveMouse(200 + Random(100));
210:
ExamineInv;
end;

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| The way that i have chosen to walk was the DTM walking, in order to |}
{| obtain the best performance, while going to the mine or bank. This |}
{| procedure uses as arguments a DTM path and, at the same time, another |}
{| DTM path which is paralel to the original Path, to ensure that the |}
{| script will not fail any point. The 3th argument is a Flag that is |}
{| activated only if the original path fails at all, in order to start |}
{| from the begining, find where you are and then try to go to the |}
{| destination again. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure WalkingDTM(DTMs:TIntegerArray;SafeDTMs:TIntegerArray;SafeFlag:Integer);
Var

i,x,y,WalkCounter,SafeLogout,ApplySafePath:integer;
Position,Position1:boolean;

begin

if(not LoggedIn) then
Exit;

if((SafeFlag = 1) and InvFull) then
begin
FreeDTMs(DTMs);
FreeDTMs(SafeDTMs);
DTMs := [DTMFromString('mggAAAHicY2NgYChjYmCoAOJ6IO4H4tlAPBOIM4FynlDsA8SJQFwIxPrammBsZWbMUFtZxNDVUsdQA6QFgXLYMCMODAEAzT0LzA=='),
DTMFromString('mggAAAHicY2NgYMhjYmCoA+JKIO4H4mlAPAOIC4ByhkBsBMSmQOwKxJFArK+tCcf11cUMzfXlDM115QyCQDlsmBEHhgAAlrgLLg=='),
DTMFromString('mggAAAHicY2NgYEhjYmCoAeJaIG4G4h4gngjE9UC5UCAWB2IxBgi/GYiLszIY9LU14bgwK4YhwMuBQRAohw0z4sAQAABzGApg'),
DTMFromString('mggAAAHicY2NgYEhiYmAoAOI5QDwXiCuBuAGI44BywUAcBsSRQJwJxNpAXJyVAcaFWTEMAV4OYLa+tiaDIFAOG2bEgSEAAOEyC9o='),
DTMFromString('mggAAAHicY2NgYEhmYmDoAeI1QLwOiJuhOAYolwTEfkAcBKVLgdjNyY6hOCuDoTArhiHAywHMjtVnYxAEymHDjDgwBAAA7yQL4g=='),
DTMFromString('mggAAAHicY2NgYChiYmAoAeLJQLwQiKcD8RIgzgHKBQCxJxDHAnEuEKsAcXFWBgqO1Wdj0NfWZBAEymHDjDgwBAAA+RkL8A=='),
DTMFromString('mggAAAHicY2NgYChkYmAoAuISIF4ExFOBeCYQZwLl/IHYBog9gdgQiKOBODMxjqE4KwMFx+qzMQgC5bBhRhwYAgD5www9'),
DTMFromString('mggAAAHicY2NgYIhkYmAoBOJiIC4D4sVAPBOIY4FyEUDsCMS6QGwJxN5AXJSewZCTlASmYThGh41BECiHDTPiwBAAANE5C9c='),
DTMFromString('mggAAAHicY2NgYMhlYmAoA+JeIO4H4m1APAmIs4ByQUAcAMTmQOwKxKpAnBEXx1CUnsGQk5QEpmN02MC0IFAOG2bEgSEAAPJYDBg='),
DTMFromString('mggAAAHicY2NgYEhjYmCoBOKJQDwViGcA8QYgTgLKOQBxCRDbALEKECcAcVF6BhiXRBgy5CWngNnRgjwMgkA5bJgRB4YAAPccDA8='),
DTMFromString('mggAAAHicY2NgYIhgYmDIB+J5QNwGxAuBOA2I04FyAUCcBMR6QKwNxPZA7GBhyZCVkMCQ5qvNUJSewZCXnMJgpqvHIAiUw4YZcWAIAACPkQri')];
SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjDyMAgycTAoADE0kDMCMQcQPwYKHcTiI8A8UYgXgTEK4DYxc6Ooa6qnKGjuYGhrbGOwdXBhUFPU5tBBCiHDTPiwBAAACDMDO4='),
DTMFromString('mggAAAHicY2NgYPjIyMDAycTAIAjEkkDMAMTfgWK3gMyzQLwDiKcDcTMQ1wCxvaUlQ1RIMENNRSlDa30Ng56mNoOrgwuDCFAOG2bEgSEAABBrDIU='),
DTMFromString('mggAAAHicY2NgYLjDyMDAx8TAIAbEEkD8FsgXBtIHgXLHgfgoEJ8C4ltAPBuIvZ1dGQI8nRkKM+PBdHFmNkN5YT6DCFAOG2bEgSEAAFsgDZU='),
DTMFromString('mggAAAHicY2NgYHjKyMDwF4iZmRgYNIBYnwnCPgyU2wHEF4F4JxDvA+IHQFycmQ3HhZnxDAGezgzZSckMIkA5bJgRB4YAALhJDos='),
DTMFromString('mggAAAHicY2NgYHjIyMDwD4hFmRgYLIDYCoi5gHgHUG47EB8F4rVAvAGIbwJxflo6Q3FmNhgXZsYzBHg6M8TocjCIAOWwYUYcGAIAkxcN2Q=='),
DTMFromString('mggAAAHicY2NgYPjKyMDAyMTAIALEmkCsBcTyQHwWKLcZig8B8TUgXgXExZnZWLEIUA4bZsSBIQAAbV0OKw=='),
DTMFromString('mggAAAHicY2NgYPjJyMDwF4j/AbEwEwODLhDrAPERoNwGIJ4OxFOBeDEQ7wDi3JRUhuykZIbizGwULAKUw4YZcWAIAAAYIg9r'),
DTMFromString('mggAAAHicY2NgYHjAyMDwD4gZmIAIiA2AWB+IdwCFNgHxHCDuAOKpQLwKiIszsxlyU1LBNDIWAcphw4w4MAQAAIl5DjQ='),
DTMFromString('mggAAAHicY2NgYPjOyMDwC4hFmRgYJKH4NZB/GSi3AYrnAnErlF2cmQ3GmQmJDNlJyXC+CFAOG2bEgSEAAPbRDyw='),
DTMFromString('mggAAAHicY2NgYHjOyMDwDYh/ALEwEwODGBC/ALJ3AuX2AfEMIJ4CxE1APA2I8zKz4TgrLR3OFgHKYcOMODAEAAA4pg+v'),
DTMFromString('mggAAAHicY2NgYHjMyMDwBYg5mRgYVID4LZCtDKRPAeW2A/EUIO4D4mVAfBSIbaxsGDJSUhnyMrMZstLSGfR19RkKokwYRIBy2DAjDgwBAItJDZU=')];
end;

if((SafeFlag = 1) and (not InvFull)) then
begin
FreeDTMs(DTMs);
FreeDTMs(SafeDTMs);
DTMs := [DTMFromString('mggAAAHicY2NgYHjGyMBwAYhvAPE3IOZjYmD4AqQ3A+VOAPF8IO4H4oNAvAGIs3NzGUwsLRn0TUzA7PhgAzAtCJTDhhlxYAgAAC3ZDwg='),
DTMFromString('mggAAAHicY2NgYLjJyMBwHIj3AvEXIL4DxJtBGCi3E4hXAPFpIJ4CxBeAOCY+niE7N5dB38SEITXCGMy2tLNjEATKYcOMODAEAABjJg98'),
DTMFromString('mggAAAHicY2NgYLjEyMBwGoh3A/EyIH4BxGuBeC5Q7jAU3wTii0C8CYizc3Ph2MTSkiHCV5dB38SEQRAohw0z4sAQAABcWA9p'),
DTMFromString('mggAAAHicY2NgYHjOyMBwFIgPAvFmIF4KxA+BeDtQbg8QP4TiC0D8EYhT09MZsnNz4VjfxIQhNcKYQRAohw0z4sAQAAC3ORCe'),
DTMFromString('mggAAAHicY2NgYDjHyMBwDIjXAfFsKLsbiBcB5fYC8X4gfgrEX4H4ChBn5+YyJKelgmkQjg82YNA3MWEQBMphw4w4MAQAAG9/D+k='),
DTMFromString('mggAAAHicY2NgYLjIyMBwCoiPAvEqIP4MxH9BbKDcISC+BcT3gPgcEG8F4uzcXDBOz8wE02HGPGBaECiHDTPiwBAAANQPEPw='),
DTMFromString('mggAAAHicY2NgYHjEyMBwDIiPAvEhIH4HxD+AeCdQbh8QXwTi10B8H4iPA3FqejpDemYmQ3ZuLpgOM+YBswWBctgwIw4MAQDphxEr'),
DTMFromString('mggAAAHicY2NgYHjJyMBwAog3AvEGIL4BxI+AeC1Q7iAQHwLiq0D8GIjPALGjqytDdm4uHIcZ84BpQaAcNsyIA0MAAKNhEG0='),
DTMFromString('mggAAAHicY2NgYLjEyMDwAohfA/FRIF4FxNOAeB5Q7igQnwTiW0B8HogvArGGvj5DZm4ig4evK0N2bi4cCwLlsGFGHBgCAIcHEC8='),
DTMFromString('mggAAAHicY2NgYDjOyMDwBIoPAPFSID4JxEuAck+A+DkQ/wLit0B8C4h1NbQY8tJiGHzdHBgK0jLA2M3egUEQKIcNM+LAEAAAmQAQKQ==')];
SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjCyMDAxsTA8BJIswNpeSaI2EGg3BYg3gDEc4D4AhDPBOLczCwwNtA3ANPpIfpgWgQohw0z4sAQAACrdg4u'),
DTMFromString('mggAAAHicY2NgYPjGyMDwEIivADEfEwPDJyj/IFDuPBDvBuL7QLwKiJcBcW5mFhgb6Bsw5EcZw/kiQDlsmBEHhgAAgMcQHQ=='),
DTMFromString('mggAAAHicY2NgYLjDyMBwBoiPA/EDIP4BxHuAeCNQbj0QXwfi00D8AoiPAnFuZhYcZ6alMeRHGTMY6Bsw4AKMODAEAAC1oxBF'),
DTMFromString('mggAAAHicY2NgYPjDyMDwAIhvA/FpIN4HxN+B+BhQ7hwQPwfiD0B8D4gZgeLpKSkMuZlZDMkJCWDaQN+AIT/KmEEEKI8NM+LAEAAAvF8Qag=='),
DTMFromString('mggAAAHicY2NgYHjAyMBwD4gPAvEaIF4ExLeAeDNQ7iQQnwfiL0B8H4iZgeK5mVkMmWlpYBqEDfQNGNJD9BlEgPLYMCMODAEAcaoPwg=='),
DTMFromString('mggAAAHicY2NgYHjEyMBwG4hvAvEeIP4CxMxMDAw7gXK3gPglEL8HYnaQGiCdm5kFxukpKWDaQ4CHIUyXnUEEKIcNM+LAEAAAOfkO/g=='),
DTMFromString('mggAAAHicY2NgYPjGyMBwHYhvAPFVIP4LxLuBeB9Q7gwQ3wHir0D8Eoj/A3FuZhZDekoKmAbhMF12MC0ClMOGGXFgCAAAHxsRuQ=='),
DTMFromString('mggAAAHicY2NgYPjKyMBwA4j3A/EeKH4IxHuBcueA+BoQvwTiv0D8GYh9fbwZMtPSGHIzs8AYxA7TZWfABRhxYAgAAMqiEIo='),
DTMFromString('mggAAAHicY2NgYLjDyMBwEIiXAPExIL4AxB+BeBFQ7goQPwZiRiD/HZC+BcSh4eEMuZlZYBymyw6mvTydGESActgwIw4MAQBe2A+Y'),
DTMFromString('mggAAAHicY2NgYLjMyMCwF4jPAfFXIP4FxLeBeAFQ7hsQ8wLZP4D0HyA+BMQOjg4MuZlZYJydGcfg5enEYO/gzCAClMOGGXFgCAAAlAsQFw==')];
end;

MarkTime(SafeLogout);
for i:=0 to High(DTMs) do
begin

if(not LoggedIn) then
break;

if((SafeFlag=1) and (not IsMoving) and (TimeFromMark(SafeLogout)>120000)) then
begin
ClearDebug;
writeln('Could Not Go To The Bank.');
Report;
Logout;
Exit;
end;

MarkTime(WalkCounter);
repeat
Position := FindDTM(DTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
Position1 := FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
until((Position=True) or (TimeFromMark(WalkCounter)>3000));

wait(500);
if(FindDTM(DTMs[i],x,y,MMX1,MMY1,MMX2,MMY2) or (Position=True)) then
begin
Mouse(x,y,0,0,True);

if(RunEnergy(30)) then
SetRun(True);

MarkTime(WalkCounter);
if(i<High(DTMs)) then
begin
wait(200);
repeat
wait(50);
until(FindDTM(DTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2) or (TimeFromMark(WalkCounter)>3000));

if(IsMoving or FindDTM(DTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2) or FindDTM(SafeDTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2)) then
MarkTime(ApplySafePath);
end;
end
else
begin
MarkTime(WalkCounter);
repeat
Position := FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
until(Position1 or FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2) or (TimeFromMark(WalkCounter)>3000));
if(Position) then
begin
Mouse(x,y,0,0,True);
writeln('Walking Safe DTM Point Applied.');
end
else
begin
if((SafeFlag=0) and (not IsMoving)) then
begin
writeln('Walking Safe Path Applied. Please Wait...');
WalkingDTM(DTMs,SafeDTMs,1);
i := High(DTMs);
end;
end;
end;

end;

FreeSRLBitmaps;

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| GoToMine is the procedure that sends the original Mine's path and a |}
{| paralel path to the WalkingDTM procedure. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure GoToMine;
Var

DTMs,SafeDTMs:TIntegerArray;

begin

if(not LoggedIn) then
Exit;

ClickNorth(SRL_ANGLE_HIGH);
DTMs := [DTMFromString('mggAAAHicY2NgYHjHyMBwH4gfAPEfIP4PxK+BeANQ7jAQzwbiZUDcAcRtQFyUmc5gqq8LxunxsWA+CIsA5bBhRhwYAgCN3w/r'),
DTMFromString('mggAAAHicY2NgYPjIyMDwEIgvA/FnIH4MxFeB+DRQ7jwQ7wbiFUC8DIjvAXFuZhYYG+gboLBFgHLYMCMODAEAwtcQeg=='),
DTMFromString('mggAAAHicY2NgYLjLyMCwB4hPAPF+ID4DxA+BeCNQ7ggQXwfiV0C8HojPA3FuZhaDgb4BCp2ckMAgApTDhhlxYAgAAIiaEA0='),
DTMFromString('mggAAAHicY2NgYPjNyMDwCIgfAPFJIN4LxOeB+ChQ7iQQvwDiD0B8F8rPzcwC4/SUFDBtoG8ApkWActgwIw4MAQACCxFn'),
DTMFromString('mggAAAHicY2NgYHjAyMBwAIj3AfFaIF4MxL+BeCtQ7hwQvwTir0B8D4g/AXFuZhYYJyckgGk9XT0Gf0FeBhGgHDbMiANDAACnIhA+'),
DTMFromString('mggAAAHicY2NgYHjCyMBwB4hvAvE+IP4KxLuAeCdQ7ioQvwTiN0DMDhT7D6RzM7PAOD0lBUx7CPCAaRGgHDbMiANDAAC5jBCO'),
DTMFromString('mggAAAHicY2NgYPjJyMBwA4ivA/FVIN4JxGxMDAz7gXLngPghEH8DqQPia0Ccm5nFkJmWhkKDsAhQDhtmxIEhAADeXhFl'),
DTMFromString('mggAAAHicY2NgYPjAyMBwGYgPAPFeIH4NxDuB+AhQ7goQXwfiV0D8CIgZgOLOjk4MmWlpDLmZWXAM4osApbFhRhwYAgCtihCb'),
DTMFromString('mggAAAHicY2NgYLjNyMDwDog/APF5IN4HxEuBeCVQ7joQ3wHit0B8A4gfAbGDowNDdmYcg5enE0NuZhYciwDlsGFGHBgCANPlEQE='),
DTMFromString('mggAAAHicY2NgYDjCyMBwEogfAfErIN4CxPuAeBpQbgMQPwfiN0D8BIj/ArGlpRGDs5MVQ0FuNIO/rz1DUW46GIsA5bBhRhwYAgCW5hBS')];
SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjCyMDAxsTA8BJIswNpeSaI2EGg3BYg3gDEc4D4AhDPBOLczCwwNtA3ANPpIfpgWgQohw0z4sAQAACrdg4u'),
DTMFromString('mggAAAHicY2NgYPjGyMDwEIivADEfEwPDJyj/IFDuPBDvBuL7QLwKiJcBcW5mFhgb6Bsw5EcZw/kiQDlsmBEHhgAAgMcQHQ=='),
DTMFromString('mggAAAHicY2NgYLjDyMBwBoiPA/EDIP4BxHuAeCNQbj0QXwfi00D8AoiPAnFuZhYcZ6alMeRHGTMY6Bsw4AKMODAEAAC1oxBF'),
DTMFromString('mggAAAHicY2NgYPjDyMDwAIhvA/FpIN4HxN+B+BhQ7hwQPwfiD0B8D4gZgeLpKSkMuZlZDMkJCWDaQN+AIT/KmEEEKI8NM+LAEAAAvF8Qag=='),
DTMFromString('mggAAAHicY2NgYHjAyMBwD4gPAvEaIF4ExLeAeDNQ7iQQnwfiL0B8H4iZgeK5mVkMmWlpYBqEDfQNGNJD9BlEgPLYMCMODAEAcaoPwg=='),
DTMFromString('mggAAAHicY2NgYHjEyMBwG4hvAvEeIP4CxMxMDAw7gXK3gPglEL8HYnaQGiCdm5kFxukpKWDaQ4CHIUyXnUEEKIcNM+LAEAAAOfkO/g=='),
DTMFromString('mggAAAHicY2NgYPjGyMBwHYhvAPFVIP4LxLuBeB9Q7gwQ3wHir0D8Eoj/A3FuZhZDekoKmAbhMF12MC0ClMOGGXFgCAAAHxsRuQ=='),
DTMFromString('mggAAAHicY2NgYPjKyMBwA4j3A/EeKH4IxHuBcueA+BoQvwTiv0D8GYh9fbwZMtPSGHIzs8AYxA7TZWfABRhxYAgAAMqiEIo='),
DTMFromString('mggAAAHicY2NgYLjDyMBwEIiXAPExIL4AxB+BeBFQ7goQPwZiRiD/HZC+BcSh4eEMuZlZYBymyw6mvTydGESActgwIw4MAQBe2A+Y'),
DTMFromString('mggAAAHicY2NgYLjMyMCwF4jPAfFXIP4FxLeBeAFQ7hsQ8wLZP4D0HyA+BMQOjg4MuZlZYJydGcfg5enEYO/gzCAClMOGGXFgCAAAlAsQFw==')];
WalkingDTM(DTMs,SafeDTMs,0);
FreeDTMs(DTMs);
FreeDTMs(SafeDTMs);

repeat
AntiBan;
wait(RandomRange(250,300));
until(not IsMoving);

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| GoToBank is the procedure that sends the original Bank's path and a |}
{| paralel path to the WalkingDTM procedure. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure GoToBank;
Var

DTMs,SafeDTMs:TIntegerArray;

begin

if(not LoggedIn) then
Exit;

ClickNorth(SRL_ANGLE_HIGH);
DTMs := [DTMFromString('mggAAAHicY2NgYKhnYmCYDMSzgHgaEDcDcQMQVwPlKoE4BYj9gNgdiO2BWE9Tm6GsKJ+hoaaCobW+hiEhOpIhJjyUQQQohw0z4sAQAAAwygzr'),
DTMFromString('mggAAAHicY2NgYPjOyMDAycTAIAjEUkDMCMR/gWJXgXKXgHgHEC8G4hYgrgXiAC8vhlB/P4aailKGtsY6Bj1NbYbwoEAGEaAcNsyIA0MAADLJDPs='),
DTMFromString('mggAAAHicY2NgYHjOyMAgwgTBb4FsDiAtBsRHGCD4BBDfAuJNQDwJiIszsxkKM+MZAjydwezslGSGsqJ8BhGgHDbMiANDAACRGg5D'),
DTMFromString('mggAAAHicY2NgYHjGyMCgwwTBTED8F8j/AcSHgHK7gHgvEJ8H4u1A/BSIizOzGQoz4xkCPJ3BbBCO0eVgEAHKYcOMODAEAADt3w7i'),
DTMFromString('mggAAAHicY2NgYHjEyMDwA4hFmRgYLKCYDYi3A+V2AvERIF4LxBuAeDUQF2dmw3FhZjxDgKczmC0ClMOGGXFgCAAAqwIOYQ=='),
DTMFromString('mggAAAHicY2NgYPjOyMDwB4h5mRgYtIBYHohlgfgsUG4zFB8A4itAvBaIizOzUXCMLgeYFgHKYcOMODAEAACxrA5d'),
DTMFromString('mggAAAHicY2NgYPjJyMDwB4j/AbEwEwODMhDrAfERoNx6IJ4GxFOBeBsQLwTi3JRUhuLMbDiO0eUA0yJAOWyYEQeGAADt4g69'),
DTMFromString('mggAAAHicY2NgYHjIyMDwD4j/ArEaEwMDExAbAPEOoNxGIJ4HxEuBuB2IJwNxcWY2Q25KKpiO0eUA0yAsApTDhhlxYAgAAMteDms='),
DTMFromString('mggAAAHicY2NgYPjKyMDwF4jFmBgYxIFYEoj1gfgcUG4jEK8H4tlA3ArEF4A4NSaWoTgzmyEzIRFMg3CoIB+DCFAOG2bEgSEAAHu+DaU='),
DTMFromString('mggAAAHicY2NgYHjKyMDwFYh/ALEoEwODGBDrA/EuoNweIJ4OxJOBuAmItwFxXmY2HGekpILpAEE+BhGgHDbMiANDAADEvA46'),
DTMFromString('mggAAAHicY2NgYLjLyMDwGYhZmBgYOIFYCYhtgPgkUG4rEO8E4qlAPAGINwOxjZUNQ1pSMkNeZjYYZ6WlM4QL8zOIAOWwYUYcGAIAO1EM6g==')];
SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjDyMAgycTAoADE0kDMCMQcQPwYKHcTiI8A8UYgXgTEK4DYxc6Ooa6qnKGjuYGhrbGOwdXBhUFPU5tBBCiHDTPiwBAAACDMDO4='),
DTMFromString('mggAAAHicY2NgYPjIyMDAycTAIAjEkkDMAMTfgWK3gMyzQLwDiKcDcTMQ1wCxvaUlQ1RIMENNRSlDa30Ng56mNoOrgwuDCFAOG2bEgSEAABBrDIU='),
DTMFromString('mggAAAHicY2NgYLjDyMDAx8TAIAbEEkD8FsgXBtIHgXLHgfgoEJ8C4ltAPBuIvZ1dGQI8nRkKM+PBdHFmNkN5YT6DCFAOG2bEgSEAAFsgDZU='),
DTMFromString('mggAAAHicY2NgYHjKyMDwF4iZmRgYNIBYnwnCPgyU2wHEF4F4JxDvA+IHQFycmQ3HhZnxDAGezgzZSckMIkA5bJgRB4YAALhJDos='),
DTMFromString('mggAAAHicY2NgYHjIyMDwD4hFmRgYLIDYCoi5gHgHUG47EB8F4rVAvAGIbwJxflo6Q3FmNhgXZsYzBHg6M8TocjCIAOWwYUYcGAIAkxcN2Q=='),
DTMFromString('mggAAAHicY2NgYPjKyMDAyMTAIALEmkCsBcTyQHwWKLcZig8B8TUgXgXExZnZWLEIUA4bZsSBIQAAbV0OKw=='),
DTMFromString('mggAAAHicY2NgYPjJyMDwF4j/AbEwEwODLhDrAPERoNwGIJ4OxFOBeDEQ7wDi3JRUhuykZIbizGwULAKUw4YZcWAIAAAYIg9r'),
DTMFromString('mggAAAHicY2NgYHjAyMDwD4gZmIAIiA2AWB+IdwCFNgHxHCDuAOKpQLwKiIszsxlyU1LBNDIWAcphw4w4MAQAAIl5DjQ='),
DTMFromString('mggAAAHicY2NgYPjOyMDwC4hFmRgYJKH4NZB/GSi3AYrnAnErlF2cmQ3GmQmJDNlJyXC+CFAOG2bEgSEAAPbRDyw='),
DTMFromString('mggAAAHicY2NgYHjOyMDwDYh/ALEwEwODGBC/ALJ3AuX2AfEMIJ4CxE1APA2I8zKz4TgrLR3OFgHKYcOMODAEAAA4pg+v'),
DTMFromString('mggAAAHicY2NgYHjMyMDwBYg5mRgYVID4LZCtDKRPAeW2A/EUIO4D4mVAfBSIbaxsGDJSUhnyMrMZstLSGfR19RkKokwYRIBy2DAjDgwBAItJDZU=')];
WalkingDTM(DTMs,SafeDTMs,0);
FreeDTMs(DTMs);
FreeDTMs(SafeDTMs);

repeat
AntiBan;
wait(RandomRange(250,300));
until(not IsMoving);

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| The name tells you everything, ItemDeposit procedure checks if you |}
{| have the pickaxe in your 1st inventory slot; if you haven't, it will |}
{| deposit everything that you have in the inventory, if you have the |}
{| pickaxe at the 1st inventory slot it just deposit from the 2nd slot |}
{| until the end. If something goes wrong, a safe case will guarantee |}
{| that you don't get caught, doing logout. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure ItemDeposit;
Var

DepositCounter,x,y,i,BankDTM,BankDTM1:Integer;
SafePointDTMs:TIntegerArray;
Bank, Bank1:boolean;

begin

if (not LoggedIn) then
Exit;

SetAngle(SRL_ANGLE_HIGH);

BankDTM := DTMFromString('mggAAAHicY2NgYGBmZGD4AqQFGCEYxL4PxOeB+CYUn4Ti00DclWfDUJuTwZCXEs8wffJkhoriQgZOdgYGfgbsmBEHhgAA9e4PEQ==');
BankDTM1 := DTMFromString('mggAAAHicY2NgYNgMxJeA+CgQzwPipUB8EIjPAfFZID4A5d+E4o5cawZ9NRGG2hQzhugAV4b89BSGvJR4Bn6gHDbMiANDAABSXw+O');
SafePointDTMs := [DTMFromString('mggAAAHicY2NgYIhkYmBIB+IiIJ4LxC1QOhso5wKSB+JUIDYGYn0gdrCwZDDT1WMoSs9gyAnSBdN5ySkM/EA5bJgRB4YAAJWpCxY='),
DTMFromString('mggAAAHicY2NgYEhnYmBIBeJSIJ4LxLuAuAmIc4FyrkAcCcSpQOwHxKZAbKytw2Cmq8dQlJ7BkBOky+DPzw1m8wPlsGFGHBgCAHjgCnE='),
DTMFromString('mggAAAHicY2NgYAhkYmBIA+IyIJ4HxPOBuBKIM4ByLkAcAcT6QJwCxPZAbKarB8ZF6RkMeckpDGm+2gy+bq4MgkA5bJgRB4YAAHAuCoY='),
DTMFromString('mggAAAHicY2NgYEhmYmBIAeJ8IJ4DxC1APA+Ic4ByLkAcBsQpQGwMxPpAbGFgyGCmq8eQlZDAkOarzVCUnsGQl5zCIAiUw4YZcWAIAACIAwrn')];
repeat
AntiBan;
wait(100);
Bank := FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2);
Bank1 := FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2);
until(not IsMoving);

Bank := FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2);
Bank1 := FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2);
i := 0;
MarkTime(DepositCounter);
repeat
if(not LoggedIn) then
break;

if((TimeFromMark(DepositCounter)>60000) and (TimeFromMark(DepositCounter)<240000)) then
begin
writeln('Could Not Find The Bank. Aplying The Safe Path. Please wait...');
GoToBank;
end;

if (TimeFromMark(DepositCounter)>300000) then
begin
ClearDebug;
writeln('Could Not Find The Bank.');
Report;
Logout;
Exit;
end;

if(Bank or Bank1 or FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2) or FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2)) then
Mouse(x,y,0,0,True)
else
OpenBankNPC;
Wait(RandomRange(3000,3500));

if (PinScreen) then
begin
repeat
InPin(Players[0].Pin);
until (BankScreen or (not LoggedIn));
wait(RandomRange(500,1000));
end;

if(((TimeFromMark(DepositCounter)>15000) and (TimeFromMark(DepositCounter)<45000)) or ((TimeFromMark(DepositCounter)>240000) and (TimeFromMark(DepositCounter)<285000))) then
begin
ClearDebug;
writeln('Could Not Find The Bank. Going To The Safe Point.');
FindDTM(SafePointDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
Mouse(x,y,0,0,True);
repeat
wait(100);
until(not IsMoving);
i := i + 1;
if(i>3) then
i := 0;
end;
until(BankScreen or PinScreen);

ClearDebug;
writeln('The Bank Has Been Found.');

MMouse(573,228,2,2);
wait(250);
if(IsUpText('pic')) then
Deposit(2,28,True)
else
DepositAll;
CloseBank;
FreeDTM(BankDTM);
FreeDTM(BankDTM1);

if (RunEnergy(30)) then
SetRun(True);

IncEx(DepositNumber,1);

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| If you have chosen "RocksToMine := 0;" at line 42, this procedure will |}
{| make you mine Gold during 1 minute, only when you don't |}
{| find Adamantite during 25 secounds. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure MineGold(X1:TIntegerArray;Y1:TIntegerArray);
Var

x,y,i,j,FindRock,MineCounter,FinishGold,GCounter,AdamantiteCounter,ToGoldDTM:Integer;

begin

if(not LoggedIn) then
Exit;

ToGoldDTM := DTMFromString('mggAAAHicY2NgYMhkYmAoAeIaIO4D4qlAnAPE3UC5QCAOBeIYIM4F4kQgtrdyYNDXMQLjhpo6hub6JjBbACiHDTPiwBAAAKV4Cxo=');

FindDTM(ToGoldDTM,x,y,MMX1,MMY1,MMX2,MMY2);
Mouse(x,y,0,0,True);
wait(500);
repeat
FindNormalRandoms;
AntiBan;
wait(50);
until(not IsMoving);

MarkTime(FinishGold);
GCounter := 0;
AdamantiteCounter := 0;
if(FindObjCustom(x,y,['old'],[5033981,4967930,4239061,4371419,4835057],3)) then
begin
repeat
Mouse(x,y,0,0,True);
i := InvCount + 1;
GCounter := GCounter + 1;
if(not LoggedIn) then
break;
wait(500);
repeat
FindNormalRandoms;
AntiBan;
wait(50);
until(not IsMoving);

MarkTime(FindRock);
MarkTime(MineCounter);
j := 0;
repeat

MMouse(X1[j],Y1[j],2,2);
j := j + 1;
if(j > 3) then
j := 0;
wait(1000);
if(IsUpText('old')) then
MineCounter := GetSystemTime;

until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>20000) or InvFull);

if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>20000)) then
GCounter := GCounter - 1;

repeat
if(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) then
begin
Mouse(x,y,0,0,True);
AdamantiteCounter := AdamantiteCounter + 1;
i := InvCount + 1;
wait(500);
repeat
wait(50);
until(not IsMoving);

repeat
ClearDebug;
AntiBan;
FindNormalRandoms;

MarkTime(FindRock);
MarkTime(MineCounter);
j := 0;
repeat

MMouse(X1[j],Y1[j],2,2);
j := j + 1;
if(j > 3) then
j := 0;
wait(1000);
if(IsUpText('ite')) then
MineCounter := GetSystemTime;

until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000));

if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000)) then
AdamantiteCounter := AdamantiteCounter - 1;

until((TimeFromMark(MineCounter)>1000) or (i = InvCount) or (TimeFromMark(FindRock) > 60000));
end;
until((not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) or InvFull)
until((not FindObjCustom(x,y,['old'],[5033981,4967930,4239061,4371419,4835057],3)) or (TimeFromMark(FinishGold)>60000) or InvFull);
end;

IncEx(GoldCounter,GCounter);
IncEx(AddyCounter,AdamantiteCounter);
FreeDTM(ToGoldDTM);

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| Every time that don't find Adamantite, you will moving in 3 |}
{| diferent points. If you have chosen "RocksToMine := 0;", when you |}
{| don't find Adamantite you will move every 5 secounds to a different |}
{| point. If you have chosen "RocksToMine := 1;", you will move every |}
{| 15 secounds. Finally, if you have chosen "RocksToMine := 2;", you will |}
{| move every 20 secounds. If in 4 minutes you can't find any Adamantite, |}
{| a safe case will guarantee that you make logout. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Function FindRocks(AddyFlag:Integer;X1:TIntegerArray;Y1:TIntegerArray):Integer;
Var

SafeLogout,ChangeGold,RuniteCounter,x,y,k,k1,ChangePoint,r,MineCounter,FindRock,j:Integer;
FindAddyDTMs,FindAddyDTMs1:TIntegerArray;

begin

if(not LoggedIn) then
Exit;

case RocksToMine of
0:
begin
k := 5000;
k1 := 25000;
end;
1:
k := 15000;
2:
k := 20000;
end;

FindNormalRandoms;
MarkTime(SafeLogout);
MarkTime(ChangeGold);
RuniteCounter := 0;
repeat

if(not LoggedIn) then
break;

FindAddyDTMs := [DTMFromString('mggAAAHicY2NgYChkYmCoBuIWIJ4OxHlA3AfENkA5TSDWA2IrII4HYl0gdnS0YXB0cmTQ09dmKCvPZ3C0t2HIyk5m4AfKYcOMODAEAABRFAop'),
DTMFromString('mggAAAHicY2NgYMhjYmAoBOJaIO4A4slAPBuII4FylkCsAcQ6QGwOxE4gMQsTBkcnRzCOjQtnKCvPZ6ioLGTgB8phw4w4MAQAAH9jCuE='),
DTMFromString('mggAAAHicY2NgYKhnYmAoAOJJQDwDiPOBeBYQ6wLlLIHYGIhtgdgNiD2BOCTUn8HRyZGhpDSXoaKykCE8MpShtDyfgR8ohw0z4sAQAADGUAvO')];
FindAddyDTMs1 := [DTMFromString('mggAAAHicY2NgYKhkYmCoB+IOIJ4GxAVAPAeIrYByGkCsA8QWQFwIxM5A7ObuyBAY7MMQGxfOkJefzuDo5MhQVV3MwA+Uw4YZcWAIAACmhQtP'),
DTMFromString('mggAAAHicY2NgYMhnYmAoBeJ6IM4B4m4gngzEmUA5UyC2AmIvIPYE4iAgdnGxYYiODWNISo4Es6trChmaWioY+IFy2DAjDgwBALy7C7c='),
DTMFromString('mggAAAHicY2NgYGhmYmAoBOJ8IJ4GxDOAeC4QawHlrIE4AYjNgNgJiH2BODwylMHR0YbB2cmeoaQ0l6G8spChuraEgR8ohw0z4sAQAADJsAvV')];
if(InvFull) then
break;

case AddyFlag of
0:
begin
if(KFlag = 0) then
FindDTM(FindAddyDTMs[0],x,y,MMX1,MMY1,MMX2,MMY2)
else
FindDTM(FindAddyDTMs1[0],x,y,MMX1,MMY1,MMX2,MMY2);

KFlag := not KFlag;
Mouse(x,y,0,0,True);
MarkTime(ChangePoint);
FreeDTMs(FindAddyDTMs);
FreeDTMs(FindAddyDTMs1);
end;
1:
begin
if(KFlag = 0) then
FindDTM(FindAddyDTMs[1],x,y,MMX1,MMY1,MMX2,MMY2)
else
FindDTM(FindAddyDTMs1[1],x,y,MMX1,MMY1,MMX2,MMY2);

KFlag := not KFlag;
Mouse(x,y,0,0,True);
MarkTime(ChangePoint);
FreeDTMs(FindAddyDTMs);
FreeDTMs(FindAddyDTMs1);
end;
2:
begin
if(not (RocksToMine = 2)) then
begin
if(KFlag = 0) then
FindDTM(FindAddyDTMs[2],x,y,MMX1,MMY1,MMX2,MMY2)
else
FindDTM(FindAddyDTMs1[2],x,y,MMX1,MMY1,MMX2,MMY2);

KFlag := not KFlag;
Mouse(x,y,0,0,True);
MarkTime(ChangePoint);
FreeDTMs(FindAddyDTMs);
FreeDTMs(FindAddyDTMs1);

ClearDebug;
writeln('Searching For Runite Ore Rocks.');

wait(500);
repeat
FindNormalRandoms;
wait(50);
until(not IsMoving);

if(FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10) and (not InvFull)) then
begin
repeat
Mouse(x,y,0,0,True);
RuniteCounter := RuniteCounter + 1;
r := InvCount + 1;

wait(500);
repeat
FindNormalRandoms;
wait(50);
until(not IsMoving);

MarkTime(MineCounter);
MarkTime(FindRock);
j := 1;
repeat
AntiBan;
MMouse(X1[j],Y1[j],2,2);
j := j + 1;
if(j > 3) then
j := 1;
wait(1000);
if(IsUpText('ite')) then
MineCounter := GetSystemTime;
until((r = InvCount) or (TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000));

if((TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000)) then
RuniteCounter := RuniteCounter - 1;

until((not FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10)) or InvFull);
IncEx(RuneCounter,RuniteCounter);
end;
end;
end;
end;

AddyFlag := AddyFlag + 1;
if(AddyFlag > 2) then
AddyFlag := 0;

repeat
ClearDebug;
writeln('Waiting For Adamantite Ores.');
FindNormalRandoms;
wait(50);
until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3) or FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],7) or (TimeFromMark(ChangePoint)>k));

if((RocksToMine = 0) and (TimeFromMark(ChangeGold)>k1)) then
begin
MineGold(X1,Y1);
ChangeGold := GetSystemTime;
end;

until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3) or FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],7) or (TimeFromMark(SafeLogout)>245000));

Result := AddyFlag;

end;

{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
{| MineRocks is the procedure that makes you mine Adamantite/Runite/Gold. |}
{| Every time that the script clicks in a rock, the pointer will move |}
{| around your char to ensure that if someone mines your rock first than |}
{| you, you don't waste time waiting for an ore inventory count or for a |}
{| flag time. With this method, the mining performance can be much better |}
{| when a player comes to mine the same rock than you, and surely it makes|}
{| you look more human while mining the rocks. |}
{|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
Procedure MineRocks;
Var

x,y,FindAddyDTM,MineCounter,FindRock,SafeLogout,RuniteCounter,AdamantiteCounter,i,j,r,AddyFlag:integer;
X1,Y1:TIntegerArray;

begin

if(not LoggedIn) then
Exit;

FindAddyDTM := DTMFromString('mggAAAHicY2NgYMhjYmCoAeJWIC4B4llAvACIU4Fy5kBsDcQeQOwExFFAbGFqyqCtpQXH9bUVDI31VQz8QDlsmBEHhgAAY0AKWA==');

wait(500);
repeat
FindNormalRandoms;
AntiBan;
wait(50);
until(not IsMoving);

ClickNorth(SRL_ANGLE_HIGH);

if(InvFull) then
begin
writeln('The Inventory Is Full. Going To The Bank.');
GoToBank;
ItemDeposit;
GoToMine;
end;

if((not InvFull) and (not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) and (not FindDTM(FindAddyDTM,x,y,MMX1,MMY1,MMX2,MMY2))) then
begin
FindNormalRandoms;
GoToMine;
FreeDTM(FindAddyDTM);
end;

X1 := [260,221,255,300];
Y1 := [208,166,137,177];
AddyFlag := 0;
if((not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) and LoggedIn) then
begin
MarkTime(MineCounter);
repeat
if(not LoggedIn) then
break;

FindNormalRandoms;
ClearDebug;
writeln('Addy Mine Not Found. Going To The Mine Safe Point.');
AddyFlag := FindRocks(AddyFlag,X1,Y1);

repeat
wait(50);
until(not IsMoving);

if((TimeFromMark(MineCounter)>240000) and (TimeFromMark(MineCounter)<300000)) then
begin
writeln('Could Not Go To The Mine. Aplying The Safe Path.');
GoToMine;
end;
if(TimeFromMark(MineCounter)>300000) then
begin
ClearDebug;
Writeln('Could Not Find The Addy Mine.');
Report;
Logout;
Exit;
end;
until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3));
end;

if(not LoggedIn) then
Exit;

ClearDebug;
writeln('The Addy Mine Has Been Found!');

i := InvCount;
RuniteCounter := 0;
AdamantiteCounter := 0;
repeat

if(not LoggedIn) then
break;

FindNormalRandoms;
if (RunEnergy(10)) then
SetRun(True);

ClearDebug;
writeln('Searching For Addy Rocks.');

wait(500);
repeat
wait(50);
until(not IsMoving);

if(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) then
begin
Mouse(x,y,0,0,True);
AdamantiteCounter := AdamantiteCounter + 1;
i := InvCount + 1;

wait(500);
repeat
AntiBan;
wait(50);
until(not IsMoving);

repeat
ClearDebug;
AntiBan;
FindNormalRandoms;
MarkTime(FindRock);
MarkTime(MineCounter);
j := 0;
repeat
MMouse(X1[j],Y1[j],2,2);
j := j + 1;

if(j > 3) then
j := 0;

wait(1000);
if(IsUpText('ite')) then
MineCounter := GetSystemTime;
until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000));

if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000)) then
AdamantiteCounter := AdamantiteCounter - 1;
until((TimeFromMark(MineCounter)>1000) or (i = InvCount) or (TimeFromMark(FindRock) > 60000));
end
else
begin
FindNormalRandoms;
MarkTime(SafeLogout);
AddyFlag := FindRocks(AddyFlag,X1,Y1);

if(TimeFromMark(SafeLogout)>240000) then
begin
ClearDebug;
writeln('Could Not Find Any Addy Rock.');
Report;
Logout;
Exit;
end;
end;

if(not (RocksToMine = 2)) then
begin
repeat
if(not LoggedIn) then
break;

if(FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10) and (not InvFull)) then
begin
if(IsUpTextMultiCustom(['Run','ore'])) then
begin
Mouse(x,y,0,0,True);
RuniteCounter := RuniteCounter + 1;
r := InvCount + 1;

wait(500);
repeat
wait(50);
until(not IsMoving);

MarkTime(MineCounter);
MarkTime(FindRock);
j := 1;
repeat
AntiBan;
MMouse(X1[j],Y1[j],2,2);
j := j + 1;

if(j > 3) then
j := 1;

wait(1000);
if(IsUpText('ite')) then
MineCounter := GetSystemTime;
until((r = InvCount) or (TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000) or InvFull);

if((TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000)) then
RuniteCounter := RuniteCounter - 1;

end;
end;
until((not FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10)) or InvFull);
end;

until(InvFull);

IncEx(AddyCounter,AdamantiteCounter);
IncEx(RuneCounter,RuniteCounter);
FreeSRLBitmaps;

end;

begin

ClearDebug;
DeclarePlayers;
Login;
ActivateClient;

StartTime := GetSystemTime;
repeat

if(not LoggedIn) then
LoginPlayer;

MouseSpeed:=18;
AntiBan;
MineRocks;
GoToBank;
ItemDeposit;
Report;
GoToMine;

until(AllPlayersInactive);

end.

Er1k

2012-03-30 20:09:15

You left login and pass in the script.

wister1

2012-03-30 20:11:43

thanks man this was so nubish :p

'Toxin

2012-03-30 20:14:58

Everything the script is based off of DTM's, there's no reliance on anything else other than a DTM, and a functions such as FindObjCustom… I'm sorry but it's a no from me but the effort is there…

I'd recommend looking into methods such as TPA's, though I haven't tested your script myself yet I'm hoping your DTM walking is pretty well done.

wister1

2012-03-30 20:24:48

I believe its unffair voting no without testing first.

In first place i only use FindObj to find the rocks and i didnt failed once and ive tested it alot.

I also believe DTM´s were the best scerario to this case. The DTM´s i used were heavly tested and barely failed at all, i managed to get some 6hrs proggies which i can comprove by posting an image.

Remember, the essence of a program is its efficiency, you should test first and then vote.

ps1:i forgot 1 thing, the walkingDTM function, which i built by myself, works like a charm and i also use it in another script without failing at all, altough you have already voted i recommend at least testing it :)

BobboHobbo

2012-03-30 20:46:46

It might sound funny to you, but I never vote on applications based on how the script runs, I and many others base our votes on:
  • Advanced functions (things that require learning and skill to create *TPA's, DDTM's etc* or something you create that make us say "Wow".)
  • Standards
  • Efficient use of functions
  • Clean tidy code
  • Attitude
  • Longevity

We look down upon FindObj due to it taking literally 10 seconds to make an object finding method, this shows that you dont understand the fundamentals of how object finding works in the first place, therefore we like TPA's, but I dislike when ACA is used then they fail to implement the use of the FindObject…() correctly.

Your walking method is not the most efficient way either, your loading alot of information into the computer, If using DTM's why not use DDTM's with conjunction with Radial walk (these old school methods create a big Yes in my mind, when used with Advance failsafes.). But I do like how you went out of your way to design your own walking feature.

Im voting No this time.

wister1

2012-03-30 20:56:52

I understand well the fundmentals of FindObject but honestly i tested them and i think its unnecessary to use TPA´s for mining, anyway i agree on your idea about how a program should be but i also believe its well written but of course i respect your opinion.

They encourage us to use our own way of walking and when we do we are criticized by doing so and not using the others that were created by someone else

Sin

2012-03-30 21:17:27

Mate I don't see any TPAs or DDTMs :s
They are one of the main things that Members such as myself look for, and I agree, I was like you.
I thought FindObjCustom was god incarnated, it worked so well.
But TPAs are 10x better than FindObj in terms of reliability, a FindObj that I made a two weeks back lost itself but a TPA I made is still going strong.

wister1

2012-03-30 21:23:30

Ok. It's not that dificult to understand the TPA'a and the DDTM's, i'm shure i could learn how to use it easly but honestly i think it's a waste of time to implement it on this script. Thanks for the feedback after voting ;)

cause

2012-03-31 01:16:30

Well it's not a waste if you want to get SRL members…
I'd suggest listening to the suggestions bobbohobbo laid out and also taking your attitude down a notch.

I did like your commenting though, good job on that. (often gets overlooked)

rice

2012-03-31 04:18:32

You should read some Tutorials on DTM and TPAs instead of using findObj. Its a no for me. The more techniques you know the better your chances next time around

wister1

2012-03-31 07:12:39

it may not seem like it but i will look into the methods told, i really put some work into this one thinking it would be great since there were no miners for keldagrim, i spent some weeks of my free time doing this one and a more rudimentary iron miner, i used DTM´s because to me its the best way for walking, never failed to me, besides i will look into DDTM´s since they are alike DTM´s

ps: the people who voted no should say why to help improve like some others did, voting no and not justifying why is not correct

ps: im already working on changing the script to reapply after the month, ive already changed to use TPA´s in some parts, no more FindObj in the script and it will not only depend in DTM´s but also DDTM´s, will be ready next time! :)

Sir Ducksworthy

2012-04-09 06:26:15

You sound like me when I first applied in the way I thought Hey the script run's more efficiently than this one.. ra ra ra :)

Your not listening to what others are saying you are questioning it, stating what is correct and not correct but that isn't really the thing that's bothering me it's the way that you've responded and what not, your attitude and such.

It's been stated by multiple persons why they voted no and is most likely why the majority of others who have not commented voted no.

Your script may be very efficient, I like your commenting btw It looks kool but we are looking at a multitude of thing's besides efficiency like stated above XD

wister1

2012-04-09 19:05:02

not gonna question but by curiosity did you read my last comment? i said i dont mind, i want to know whats wrong to fix it for the next apply, at first i was reacting by impulse but i got my mind straight and im working on it again to meet what the people said it should have

what i said is that i wanted for the people who voted no to say me why, thats the only way for me to know whats wrong isnt it?

[XoL]

2012-04-09 19:21:52

Take it down a notch Wister. Many of the people who voted no didn't reply because they saw what they wanted to say already posted.

E: I see above post.
—

Try to follow this guide to become a SRL member:
http://villavu.com/forum/showthread.php?t=74195

Also try to work on posting in the help section, remember we are a community rank first and I can see with your knowledge of DTM's you would be a great help to new comers!

Regardless I believe you will make it next time, just work on what was said above by the other members :).

Awkwardsaw

2012-04-09 19:27:32

From: wister1
not gonna question but by curiosity did you read my last comment? i said i dont mind, i want to know whats wrong to fix it for the next apply, at first i was reacting by impulse but i got my mind straight and im working on it again to meet what the people said it should have

what i said is that i wanted for the people who voted no to say me why, thats the only way for me to know whats wrong isnt it?


They did tell you whats wrong. To many DTMs, and you don't have your own TPA finding. Show us more advanced stuff, and show some better attitude :)

Sin

2012-04-09 20:09:30

Come on guys, cut him some slack.
Surely you'd be feeling the same way if everyone of the rank you hope to join was against you :S

Awkwardsaw

2012-04-09 21:04:55

From: Sin
Come on guys, cut him some slack.
Surely you'd be feeling the same way if everyone of the rank you hope to join was against you :S


My first(and only) application was 100% worse than this, and I didn't feel like anyone was against me. This is a decent script, but it's not really worthy :p

wister1

2012-04-10 13:58:10

i will get it right at the second try

Killerdou

2012-04-10 14:17:45

Please don't misunderstand the people who are giving comments about your script. It looks very good and I don't doubt that it works really well. However this might not be a good script for an application because a script for your application should be more of a portfolio, showing which skills you master and what kind of creativity you posess. No one here is doubting your ability to become a member, this script just doesn't show it. The comments might sound a bit harsh especially since you worked hard on your script but they're just being direct and write down what they think. It's just that the good parts are left out.

wister1

2012-04-10 15:22:10

nah at the beginning i was pissed (to say the truth), but not anymore, i understand what is now asked for a script, when i did this one i could only think in making it work perfectly.

its my first apply, i will get it right at my second (hopefully)

Markus

2012-04-15 07:13:34

Closed. You may reapply in 4 weeks, good luck!