DemiseScythe
2011-12-28 22:51:14
How Long have You Played Runescape?
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
bro433 a.k.a. inf3cti0us
What is your general programming knowledge?
I know some ibot type Java and now I know Simba/Pascal. Used to code with Rubikon for GBA hacks if that counts.
Are you a member of any other communities?
Wicked Fury, RSCA
Tell us about yourself…
Please show us one (or multiple) of your scripts.
RS Racer or Demise Racer
DemiseZMI[see note on bottom]
DemiseNatures [This script works but it is still beta, needs revision in walking and pouch management.]
DemiseZMI was tuned up with a different flag developed by Home.
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
bro433 a.k.a. inf3cti0us
What is your general programming knowledge?
I know some ibot type Java and now I know Simba/Pascal. Used to code with Rubikon for GBA hacks if that counts.
Are you a member of any other communities?
Wicked Fury, RSCA
Tell us about yourself…
From: DemiseScythe
My name is Alicia but I go by my middle name Synthia but my friends in RS related communities call me Demise which comes from my original RSN. I am now 18 years old, been playing since I was 11 years old. I love RS and I enjoy scripting. I am currently going into 3rd semester in College as a Chemistry Major. I enjoy music and I listen to music almost all the time. I enjoy playing the guitar, pencil drawing and scripting.
Please show us one (or multiple) of your scripts.
RS Racer or Demise Racer
program DemiseRacer;
{$i srl/srl/misc/smart.scar}
{$i srl/srl.scar}
{<<<<<<<<<<<<<<<<<<Demise Racer>>>>>>>>>>>>>>>>>>}
{ How to Set up: Version 1.0
Just fill in the information in DeclarePlayers,
replace Smart_Server value with desired World. =D
Enjoy my first script!!! }
var
P: Array [0..21] of Integer;
Home, Door, Dance, Think, Laps, Errors, x, y: Integer;
aFound: Extended;
procedure DefDTM;
begin
P[0] := DTMFromString('0');
P[1] := DTMFromString('mrAAAAHic42BgYOhlYmDogOJ5UDwHiOcC8SwgDgCqsQfiJCD2A2JHII4D4nIgVgDiID8/ht72NjAGsZ0c1BjsrQwYKjIDwHx+oBp8mJEAhgEAJRoQOg==');
P[2] := DTMFromString('mlwAAAHicY2dgYJjNzMAwB4gnAnEXEG8G4iNAvA6IJwDl64C4A4j7gXgGEE8E4jVAHBLkwzCruxhMu7mpMwT5KzN09M8E8/mB8rgwIx4MBQB04RCT');
P[3] := DTMFromString('mrAAAAHic42BgYKhjZmDIA+IuIO4D4tlA3AzEtUC8AIinANUsBakD4jYGCH8+EK8H4i1AHBLkw7BwYiWY9vbWZAgMUwOz3dzUGVbPamDgB6rBhxkJYBgAAPr3Ejg=');
P[4] := DTMFromString('mwQAAAHic42RgYOhmZmCYDMQzkPBUIO4B4gIgXgnErUB1tQwQugeIpwHxQiBeDGWD5EKCfBjsrNQZwnzNGZydVcF8GD2rKwUszg9URwgzEoHhAAB40BLc');
P[5] := DTMFromString('mrAAAAHic42BgYJjOzMAwAYirgHgmEC8D4pVAvB2IG4C4HqimA4i7gbgHiJuBeAEQTwbieUAc4O/FYG4my+DsIQ9m21irM0xozmVwcVZlcPdVZOAHqsGHGQlgGAAAaLcQWA==');
P[6] := DTMFromString('mwQAAAHic42RgYAhnZmBIBuIkIA4C4mggrgLiWUAcC8QBQLwZqG41EO8A4l1AvBiIlwPxTiA+CcTHgDjA34vB0VIZTJuayTLYmCgw2Fvqg/nuvooMnv5KDPxAdYQwIxEYDgCWlxEn');
P[7] := DTMFromString('m6wAAAHic42ZgYKhjZmAoAuIWIO4F4lRmiFgFEKcB8UQgzgLidSA1QPWdQNwNpfuBeCYQbwHinUC8AYivAvFxIA7w92KwsVBnMDdUZrAykmdwtFYGi4HFrdXBYjX5gWA+P1A9sZiRBIwEAEN3FaM=');
P[8] := DTMFromString('mAAEAAHic42FgYChhZmDIBOI4IK4C4nogbgfiOUC8BoinA3ElEEcDcTIQTwDqmQbFs4B4EhC3A3EnEE8G4vVAvA6IFwLxMiD2C/UGYytHDQYnTzUw295bnsE9VJnBL04azHf3UgDTTi5qDPxAPaRgRhIxMgAAsiYXdw==');
P[9] := DTMFromString('mggAAAHicY2NgYIhlYmCIBOJEII4A4lQgTgJiW6CcMRQ7ArENEHsAsa+fL8MLRmYwtnVQBWOQGD9QDhtmxIEhAADnvgj9');
P[10] := DTMFromString('m1gAAAHic42JgYJjCzMBQBcQ9QDwPiBcAcQEQVwPxHiCeC8RlQNwAVNsMxJOBeCaUPRWIlwLxOiA+A8T7gTjI14/B2VkJTIOwh5syQ0SMIkNQmDxDWIQ2RBzI5geqJQYzEokRAACtzhTJ');
P[11] := DTMFromString('m1gAAAHic42JgYJjHzMCwD4hbgHgWM4S/FoinAPFCIO4A4l1AXAdU2wLE9UDcAcQ9QDwdiGcA8Rwg7oKK1VVWMDRlWTOkJBswRIaEMtSUlzPkxBgxhAVqMAT5+jG0dc0GY36gWmIwI5EYAQBhzBiA');
P[12] := DTMFromString('mrAAAAHic42BgYNjGzMCwHYjXAnEvELcB8RwgXg3ER4F4AVDNSiCeBMSzgHgjEO+C4kNAnBHryeDnrcbQHmjM4GkmDaZBYqFBmgxV5RUM/EA1+DAjAQwDAI1qEvo=');
P[13] := DTMFromString('m6wAAAHic42ZgYJjFzMCwCIiXAvE6IF4IxH1A3ATEB4F4NRDPhIpXMUBwAxT3A3ENEE8B4g1AvB2IzwDxUyDOTTVmyI73YqjODQXjtgAjhpgoHYbgCG2G9GgPOLbTE2fgB6onFjOSgJEAAJwpGWI=');
P[14] := DTMFromString('mwQAAAHic42RgYChhZmBoBOJ5QDwDiCcCcSYQVwPxZCBeAcTdQHVNQNwKxD1AvAyIZwDxUiDeAcWBQeoMyZHODGaGqgzW5hoMifG6DBGxOgxRiUoMeWnGDLO60hn4geoIYUYiMBwAAIi9Ey0=');
P[15] := DTMFromString('m6wAAAHic42ZgYKhmYmDoBeJ6IE4H4igg9gTibCCeDMQrgbgbiL2AWAOoXhuIBYBYAYiNgFgJiG2B2AOI9YFYBogjgNjBXoUhK9aaobO9GY51deQYrBxkwHJpsS5gMXdHfQZ+oHpiMSMJGAkAADdpEz0=');
P[16] := DTMFromString('mAAEAAHic42FgYJjJzMAwGYiXAPEmID4AxNuAeAYQd0JxO5ReDMR1QD0VQFwDxHOBeAYQrwTiZUDcDcSTgLgBiBcB8TYgzknwZOjtbGOwMFVn6O/uAGM7SxUGBzsdCNsGwq4qK2EoSHRg4AfqIQUzkoiRAQDRpxxe');
P[17] := DTMFromString('m6wAAAHic42ZgYOhnZmDYBsQtQFwKxB1A3AbE84F4BRCvgYo1AnE9UP0EIJ4CxEuheCMQbwfiJUC8E4iPAnEDEGcnOIOxn4sGQ193E4OVmRKYhombGyky2NupMfgEKTLwA9UTixlJwEgAADSgGMI=');
P[18] := DTMFromString('m6wAAAHic42ZgYGhmZmCoAOJ+IO5mhvCnAHEJEPcAcRYQFwPxciBuBapvh+I6IJ4MxZOAeB0QrwbiXUB8EYizE5wZAsKUGXyCFBnmzOxHwSA5kHhwtBSYzQ9UTyxmJAEjAQC1ZBqD');
P[19] := DTMFromString('mFQEAAHic42VgYJjFzMAwA4hnA3E3EK8C4vVA3ALE9UC8FYh3A3ENVM1MIK4G6isH4nYgbgLiZiCeDMQTgHghEM8D4n1AvB+IlwDxBSDOSHRnmDlrMpgOiJFj8AxXB/NhYiDsFqzK4A2Ug6nlB+ojFTOSgVEAAMdcICY=');
P[20] := DTMFromString('mPwEAAHic42dgYChhQuBiKI4G4l4g7oOyI4C4H4gXALEXEFsB8Vog9gXqjwFiUyBWAWIRINYDYl0gDoBiOyC2h2JHIHYAYmcgnj59MkNqnBuY9o2QBdMBXhYo2D1EDS4HUw/C/ED95GJGCjAaAAC6ohzn');
P[21] := DTMFromString('mKgEAAHic42NgYKhhYmAoAeIMIA4H4gggdgLiYiAuBeJCKD0ViCcAsS8QBwNxJFBvPBAnQLEHELsBsT4QFwGxEhA3AnEiELsCcTkQGwCxiZESQ1CwH4O3jxZDb08bGGdkJgP57mDs4acDxg31lQxVVSVwNfxAveRgRjIxKgAAAzkbig==');
Home := DTMFromString('mwQAAAHic42RgYOBEwkIMEMAOxNxQzI4mB1PLA8VsULzvyCeGtjk3UPDKvU/B+O/fv2DMBFRHCDMSgeEAAH3bFac=');
Door := DTMFromString('m6wAAAHic42ZgYJBjZGDgAOKvQLYMkHaB4h8MECwNZDsDsTEQlwH5eUCcBsWpQFwOxc1IuAaIna2NGezM9RnsTDQZfByNGSK8rBi8nCzBYroaygwWRtoMDpaGDGYGmgz8QPXEYkYSMBIAAH76EUc=');
Dance := DTMFromString('mFQEAAHic42VgYLBjZmCwAWJLZgTbAYidoHwrILaAihlCaRkmBgYpIBYBYiEg5gdiPiAWB2IFIJYDYhUgVgNiAyA2AeJbS/gZKr0uMTxcb8iwtimd4eNGXjA/2GAqw6HpPGA2iC7y3gJmg9TzA91HKmYkA6MAANdLGXI=');
Think := DTMFromString('mFQEAAHic42VgYLBkgmBTILaB0rZAbASlnYHYDojNgNgAqlaBkYFBFYjVgFgDiHWBWB+ITaFYEYjFgFgSiIWAWACICwpKGKIiIxmys7LAdFBwCENSYiKDgpQYQ7iLEcPhicUMDE2rGZh6t4HxydmVDPxA95GKGcnAKAAALGoU9A==');
end;
procedure FrDTM;
begin
FreeDTM(P[0]);
FreeDTM(P[1]);
FreeDTM(P[2]);
FreeDTM(P[3]);
FreeDTM(P[4]);
FreeDTM(P[5]);
FreeDTM(P[6]);
FreeDTM(P[7]);
FreeDTM(P[8]);
FreeDTM(P[9]);
FreeDTM(P[10]);
FreeDTM(P[11]);
FreeDTM(P[12]);
FreeDTM(P[13]);
FreeDTM(P[14]);
FreeDTM(P[15]);
FreeDTM(P[16]);
FreeDTM(P[17]);
FreeDTM(P[18]);
FreeDTM(P[19]);
FreeDTM(P[20]);
FreeDTM(P[21]);
FreeDTM(Home);
FreeDTM(Door);
FreeDTM(Dance);
FreeDTM(Think);
end;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;
procedure SmartSet;
begin
Smart_Server := 80;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
end;
procedure SettingUp;
begin
Laps := 0;
Errors := 0;
DefDTM;
Wait(1000 + Random(500));
end;
procedure HomeTel;
begin
if FindDTM(Home, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 4, 4, True);
Writeln('Teleporting to starting point!');
end else
begin
Writeln('We should head to our starting point!');
Mouse(747, 186, 4, 4, True);
FindDTM(Home, x, y, MIX1, MIY1, MIX2, MIY2);
Mouse(x, y, 4, 4, True);
Writeln('Teleporting to starting point!');
end;
Wait(12000 + Random(1000));
SetAngle(True);
MakeCompass('n');
end;
procedure Reload;
begin
FrDTM;
DefDTM;
SetAngle(True);
MakeCompass('n');
end;
procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'cooking';
LevelUp;
end;
procedure RecoverRun;
begin
Writeln('We are Resting for Energy!');
SetRest;
while not RunEnergy(99) do
begin
Antirandoms;
SetRest;
Wait(250 + Random(250));
end;
//if RunEnergy(99) then
SetRun(True);
end;
procedure Complete;
begin
SetAngle(False);
Writeln('We have reach our goal: The Grand Exchange in Varrock!!!');
Mouse(686, 486, 4, 4, True);
if FindDTM(Dance, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 4, 4, True);
Writeln('One more time!');
Writeln('I gonna celebrate!');
Writeln('Oh yeah, all right!');
Writeln('Dont stop the dancing!!!');
Wait(6000 + Random(1000));
end else
Writeln('We have no time to dance!');
Laps := Laps + 1
Writeln('Laps Increased!');
Writeln('Laps: ' + IntToStr(Laps) + ' Laps!');
Writeln('Yes, we finished one lap, starting next lap!');
end;
procedure Incomplete;
begin
SetAngle(False);
Writeln('We have not reach our goal, we got completely lost!!!');
Mouse(686, 486, 4, 4, True);
if FindDTM(Think, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 4, 4, True);
Writeln('We have failed!');
Writeln('We should not give up!');
Writeln('Lets try one more time!');
Writeln('We can do this!!!');
Wait(4000 + Random(1000));
end else
Writeln('We have no time to think!');
Errors := Errors + 1
Writeln('Errors Increased!');
Writeln('Errors: ' + IntToStr(Errors) + ' Errors!');
Writeln('Starting lap over!');
end;
Procedure Refresh;
begin
ExitToLobby;
LogInPlayer;
SetAngle(True);
MakeCompass('n');
end;
procedure Ending;
begin
Writeln('We have exited the loop!');
Writeln('We are logging out!');
Logout;
Writeln('We are freeing stored DTMs!');
FrDTM;
Writeln('We are terminating the script!');
Terminatescript;
end;
procedure FDTMR(PX, P, F: Integer);
begin
if FindDTMRotated(PX, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Writeln('We have found the Point ' + IntToStr(P) + '!');
Mouse(x, y, 4, 4, True);
AntiRandoms;
FFlag(F);
if not RunEnergy(5) then
RecoverRun;
end;
end;
procedure FDTMRMF(PX, P, F, xx, yy, FF: Integer);
begin
if FindDTMRotated(PX, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Writeln('We have found the Point ' + IntToStr(P) + '!');
Mouse(x, y, 4, 4, True);
AntiRandoms;
FFlag(F);
if not RunEnergy(4) then
RecoverRun;
Mouse(xx, yy, 4, 4, True);
FFlag(FF);
end;
end;
procedure Gate;
begin
if FindDTMRotated(P[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Writeln('We have found the Point 9!');
Mouse((x+4), y, 3, 3, True);
FFlag(8);
Writeln('There is a door ahead of us, but is it open?');
SetAngle(True);
MakeCompass('n');
Wait(500 + Random(500));
if FindColorTolerance(x, y, 4017757, 243, 62, 269, 171, 15) then
begin
Mouse(x, (y+5), 3, 3, True);
Writeln('We find this interesting!');
end;
Wait(500 + Random(200));
Writeln('The door is opened, we should move on!');
Mouse(620, 38, 4, 4, True);
FFlag(12);
end;
end;
Procedure OnPath;
begin
Writeln('We are still on path!');
Writeln('Attempting to correct course!')
end;
begin
SmartSet;
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
SettingUp;
if FindDTMRotated(P[21], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Writeln('We are at our start point!');
Writeln('We are preparing to start a new lap!');
end else
begin
Writeln('We are not at our start point!');
HomeTel;
end;
repeat
Reload;
FDTMRMF(P[1], 1, 12, 635, 40, 12);
FDTMRMF(P[2], 2, 12, 608, 66, 12);
FDTMR(P[3], 3, 12);
FDTMRMF(P[4], 4, 12, 627, 60, 8);
FDTMR(P[5], 5, 12);
FDTMRMF(P[6], 6, 12, 591, 66, 12);
FDTMRMF(P[7], 7, 12, 628, 50, 12);
FDTMRMF(P[8], 8, 12, 616, 79, 12);
Gate;
FDTMRMF(P[10], 10, 12, 632, 30, 12);
FDTMRMF(P[11], 11, 12, 634, 54, 12);
FDTMR(P[12], 12, 12);
FDTMRMF(P[13], 13, 12, 591, 50, 12);
FDTMRMF(P[14], 14, 12, 615, 25, 12);
FDTMR(P[15], 15, 12);
FDTMRMF(P[16], 16, 12, 638, 46, 12);
FDTMRMF(P[17], 17, 12, 607, 63, 12);
FDTMR(P[18], 18, 12);
FDTMR(P[19], 19, 12);
if FindDTMRotated(P[20], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Complete;
HomeTel;
Continue;
end else
begin
if FindDTMRotated(P[19], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[18], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[17], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[16], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[15], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[14], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[13], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[12], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[10], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[5], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[4], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[3], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
if FindDTMRotated(P[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
OnPath;
Continue;
end;
end;
Incomplete;
if FindDTMRotated(P[21], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/2, Pi/2, Pi/30, aFound) then
begin
Writeln('We are at our start point!');
Writeln('We are preparing to start a new lap!');
end else
begin
Writeln('We are not at our start point!');
HomeTel;
end;
Refresh;
until (Laps >= 10) or (Errors >= 20) or (not(LoggedIn))
if (Laps >= 10) then
Writeln('We have sucessfully completed 10 Laps!');
if (Errors >= 20) then
Writeln('We have found 20 Errors, ending script!');
Ending;
end.DemiseZMI[see note on bottom]
program DemiseZMI;
{$i srl/srl/misc/smart.scar}
{$i srl/srl.scar}
{$i SRL/SRL/misc/paintsmart.scar}
{<<<<<<<<<<<<<<<Demise Runecrafter>>>>>>>>>>>>>>>}
{<<<<<<<<<<<<<<<<<<ZMI Version>>>>>>>>>>>>>>>>>>>}
{<<<<<<<<<<<<<<<<<<<<<V 1.0>>>>>>>>>>>>>>>>>>>>>>}
var
ZMITel, Depo, BankGuy, Guy, Mind, Air, Cosmic, Hole, TimeRan: Integer;
NPC, Dwn, Dark, Green, Rpr, Zaltar, Lava1, Lava2, PrayA, TimeBegan: Integer;
BGPouch, GPouch, LPouch, MPouch, SPouch, Monk, M, x, y, XpHr, A, B, Exp: Integer;
P: Array [0..6] of Integer;
aFound: Extended;
{If you have problems with the walking, it is most likely due to the FindFlag.}
{Dev. has defended his flag and I accept his decision; that being said if the
script doesn't work for you, I am terribly sorry for it and apologize for the
inconvinience. I got a different flag, it works great in my computer, anything
else is out of my control, best wishes if you choose to run my script.}
{DemiseScythe}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;
procedure SmartSet;
begin
Smart_Server := 60;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
end;
Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,131072);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure SetDTM;
begin
GPouch := DTMFromString('mlwAAAHicY2dgYHBiYmCwAGIHIHYFYl8gdgdiayB+BZR/CsT3oRjEfwfFoX6ODOEBzgxpqUkMXp5uDHGxUQxezpYMcWEeDPxAeVyYEQ+GAgDCDw9S');
BGPouch := DTMFromString('m1gAAAHic42JgYHBigmAbILYCYhcg9gJiX6i4PRC7AfFLoNr7QPwMiN8B8Xso/QqIb0D5T4HY2tyYITzch8HBxpzByc6SwcLUkMFAV5MhMNCNQUqSAyxurK/DwA9USwxmJBIjAAB8pRL9');
LPouch := DTMFromString('mwQAAAHic42RgYMhmYmDIAuJCJgg7BYhTgTgXiBOAuByIXwHVPQDi10D8DopfAPFtIH4JxG+AONDLjiErM43Bz9ebwc/dhiEhwoshLsyDQV1eECjLBMb8QJIQZiQCwwEAokoStQ==');
MPouch := DTMFromString('m1gAAAHic42JgYJjGxMAwBYhnAPEsIJ4KxBOZIOK9QDwfyn4JVHsfiB8yQNi3oPQ7IH4DZX8E4kAvO4a83CwGB3tbhoT4GAZ1eUGGpChvBj93G6AsExzzA0liMCORGAEA2D0VzA==');
SPouch := DTMFromString('mlwAAAHicY2dgYNjPBMFHoPQ2ID4JxAeB+AVQ/iEQvwLi21AahN8DsZ+7DUNSYhxDVEQYg5aSEFCECY75gSQuzIgHQwEAp9wPdg==');
ZMITel := DTMFromString('mbQAAAHicY2VgYAhnYmAIAeJIII4B4kAgZmRkYPgLlGMH0v+BNAuQtra2AhJ9DBcPeTIkJSUxLNnuxcAPlEPHjFgwGAAAoR4KPA==');
Depo := DTMFromString('mbQAAAHicY2VgYJjAyMDQBMT9QDwVig2A2BqIrYDYDIj1QGp85RgcbrsyZFmLM1gocDEkmwoz8AP1o2NGLBgMAFuMCEo=');
BankGuy := DTMFromString('mQwAAAHicY2ZgYOhgQuAQID8AiCOA+P0FRYav3yaDaX4gH4YZkTAQAABpGQkM');
Guy := DTMFromString('mQwAAAHicY2ZgYGgF4m4grgNiSyA2AmJTIG4s92BIivVmCA10ZOAH8mGYEQkDAQDsyAWT');
Mind := DTMFromString('mggAAAHicY2NgYDgNxCeA+BwQnwLiPUB8C4ijgDgIit2BOBSIw4C4obqawc6WA4w/9yjBMT9QDhtmxIEhAADTdw53');
Cosmic := DTMFromString('mggAAAHicY2NgYMhgZGDIg+JcIE6F4plAuYlAPAWIZwPxVCCeB8S5GRkMVy/LoeCYiAgGfqAcNsyIA0MAAPWoD9U=');
NPC := DTMFromString('mlwAAAHicY2dgYJjMxMDQBcS9QDwDiKcC8RQg7gPiJ0D5R0D8HIifAfF9IH4FpV+/fsVw8OkvrJgfKI8LM+LBUAAAeDkdOg==');
Dwn := DTMFromString('mbQAAAHicY2VgYDjLyMBwDogvAfFJRgjfEIh1oTQImwGxjLgIAz8fD4ORjjIDJycnmOYH6kfHjFgwGAAANZoG5g==');
Dark := DTMFromString('mwQAAAHic42RgYFjIyMCwCIinAPFKIJ4PxH1A3AbEDVDMA8RfgWoZGCH4JQME/2aAyCkC8fr+UobtU6sYFFS1GOSU1Rl4eXkxMD9QPSHMSASGAwAGuA7p');
Green := DTMFromString('mWAAAAHicY2FgYGBmZGBgB2JGKL4MxeeB+AYQz50zh2Hu3DkM58+dY1i2dCkDP1APMmZEwyAAAELUC6w=');
Rpr := DTMFromString('mbQAAAHicY2VgYGBjZGBIA9JZQBwIZAcB8RIgXgTEK6D0SiAWkpJjOHHiBArmB+pBx4xYMBgAAKH9Dro=');
Zaltar := DTMFromString('mbQAAAHicY2VgYPgNxDKMDAx/GSD4BhCHA3EiEGcDsR8QRwFxaVUVQ15BFkNqfBSYXZCTxcAPFEfHjFgwGAAAfZoMiQ==');
Lava1 := DTMFromString('mwQAAAHic42RgYKhlYmCoBuJEIK4CYh8gjgTiHiCeBMQZQDwZqK4FiBuBOAOIK4G4BojbgTgNiEuAuDTVkeHbWl8U3FPlx2CpLQjn8wPVEcKMRGA4AADviBeE');
Lava2 := DTMFromString('mlwAAAHicY2dgYHAAYgkgdgZiTiAWA2I1IDYBYkUgVmGAAB4gFgZiESDmB+LMCAuGnnJvhu+rveE0DPND1WDDjHgwFAAASZINXA==');
PrayA := DTMFromString('mbQAAAHicY2VgYNBgZGCQB2JFINYBYm0gvgQUvwDEh4D4CBDvBuLUxESGPYukGCotTRna7a0Ztq9fz8APFEfHjFgwGAAA8cQLmQ==');
Hole := DTMFromString('mrAAAAHic42BgYNBgZGBQBmIdJFoPiBWB2ACIrwPV3IHiS0B8EYgrgDgXivn4+DBwt7MdQ42NBcPJAwcY+IFq8GFGAhgGADJqDHE=');
Monk := DTMFromString('mbQAAAHicY2VgYJjMyMDQC8QzgHghEE8F4plA8flAPA2I50Kxn4sNw+TiQgYrfXUGeytzBk97CwZ+oDg6ZsSCwQAAB+kKlg==');
P[0] := DTMFromString('mlwAAAHicY2dgYOhjYmDwAeJOIJ4JxGuAuAuIC4E4AigfCsQeQGwJxJ5ArAPExkDcmmnDwMrEjILPrFMAY36gPC7MiAdDAQAj2AqF');
P[1] := DTMFromString('mrAAAAHic42BgYFjMxMCwEoiXAXEhEDcBcREQ9wNxDxBHA9V4ArEpEOsAsRwQewCxPRDnA3FjmhUDKxMzw5l1CnAM4sMwP1ANPsxIAMMAABO6DTs=');
P[2] := DTMFromString('mFQEAAHic42VgYFjLBMGzgbgSiIuBuAqIs4E4H4h7gXgCVC4KiFOA2A+ozxKIDYDYHojVgVgKiJWBWBKIFYA4B4hzoTgYiEtjjRmAWuH4xGoZMP50XgmMQWxk+cY0CwZ+IE0qZiQDowAAPe8VUA==');
P[3] := DTMFromString('mwQAAAHic42RgYFjFxMCwCIhnAnEzELdC6TIgLgDiOCDWBapTB2I9IJYBYmEgtgRiUyA2AGIFIJ5e6sHAzsgOxufWqoAxjA8T4weqI4QZicBwAAC9iA1L');
P[4] := DTMFromString('mwQAAAHic42RgYMhhYmAoA+IaIHYFYn8odgfiPCBOB2JhoDpRIBYEYk0gNgJiGyA2AGJTIDYE4hQvVYbTa1Qw8JcLWgwsDOxgzA9URwgzEoHhAACZ+BBN');
P[5] := DTMFromString('mwQAAAHic42RgYKhjYmDoB+IoIPYDYl8gTgXiZCDuBeJWIFYFqjMCYn0gtgViUyjbCoiDgTgaiFvSHRhOr1FBwSwM7GAM4/MD1RHCjERgOAAAN6UReg==');
P[6] := DTMFromString('m1gAAAHic42JgYMhkYmBIA+IUIG4G4m4gbgPiDiAOB+JkII4EYmugWkMgVgBiDyAOB+IgII4H4gggDgHiACDOijFmSArVZ4j21mFgYWVl+HJVg+H0RiUwDcIgMRDmB6olBjMSiREAALqEEkU=');
end;
procedure FrDTM;
begin
FreeDTM(GPouch);
FreeDTM(BGPouch);
FreeDTM(LPouch);
FreeDTM(MPouch);
FreeDTM(SPouch);
FreeDTM(ZMITel);
FreeDTM(Depo);
FreeDTM(BankGuy);
FreeDTM(Guy);
FreeDTM(Mind);
FreeDTM(Cosmic);
FreeDTM(NPC);
FreeDTM(Dwn);
FreeDTM(Dark);
FreeDTM(Green);
FreeDTM(Rpr);
FreeDTM(Zaltar);
FreeDTM(Lava1);
FreeDTM(Lava2);
FreeDTM(PrayA);
FreeDTM(Hole);
FreeDTM(Monk);
FreeDTM(P[0]);
FreeDTM(P[1]);
FreeDTM(P[2]);
FreeDTM(P[3]);
FreeDTM(P[4]);
FreeDTM(P[5]);
FreeDTM(P[6]);
end;
procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'runecrafting';
LevelUp;
end;
procedure WalkTo(PX, P: Integer);
begin
if FindDTMRotated(PX, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Writeln('We have found the Point ' + IntToStr(P) + '!');
Mouse(x, y, 3, 3, True);
FFlag(6);
end;
end;
procedure ClickOn(PX:Integer; Click: Boolean);
begin
if FindDTMRotated(PX, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, Click);
end;
end;
procedure Witdraw;
begin
Writeln('Withdrawing Pure Essence!');
Mouse(448, 106, 3, 3, False);
ChooseOption('ll');
end;
procedure FillA;
begin
if FindDTM(GPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
Wait(150 + Random(50));
if FindDTM(BGPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
Wait(150 + Random(50));
if FindDTM(SPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Small Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
end;
procedure FillB;
begin
if FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Large Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
if FindDTM(MPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Medium Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
end;
procedure EmptyA;
begin
if FindDTM(GPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
if FindDTM(BGPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
end;
procedure EmptyB;
begin
if FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Large Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(300 + Random(100));
end;
end;
Procedure EmptyC;
begin
if FindDTM(SPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Small Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
if FindDTM(MPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Medium Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(300 + Random(100));
end;
end;
procedure IsBroken;
begin
if not FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Pouches are broken!');
if FindDTM(Depo, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Writeln('Depositing Runes!');
Mouse(x, y, 3, 3, True);
end;
Wait(250 + Random(50));
if FindDTM(Cosmic, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 3, 3, True);
Wait(250 + Random(50));
Mouse(405, 107, 3, 3, True);
Wait(150 + Random(50));
Mouse(405, 107, 3, 3, True);
Wait(150 + Random(50));
end;
repeat
CloseWindow;
Wait(50 + Random(50));
until not BankScreen;
Gametab(tab_Magic);
Wait(250 + Random(50));
if FindDTM(NPC, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 3, 3, True);
Wait(750 + Random(500));
if FindDTM(Dwn, x, y, 443, 292, 479, 318) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(50 + Random(50));
until FindDTM(Dark, x, y, MSX1, MSY1, MSX2, MSY2);
end;
if FindDTM(Dark, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
repeat
Wait(50 + Random(50));
until FindDTM(Green, x, y, 208, 451, 310, 477);
if FindDTM(Green, x, y, 208, 451, 310, 477) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(500 + Random(50));
until FindDTM(Rpr, x, y, 78, 410, 439, 433);
end;
if FindDTM(Rpr, x, y, 78, 410, 439, 433) then
Mouse(x, y, 3, 3, True);
Wait(650 + Random(50));
if FindDTM(Green, x, y, 208, 451, 310, 477) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(500 + Random(50));
until not FindDTM(Green, x, y, 208, 451, 310, 477);
end;
end else
begin
Writeln('Pouches arent broken!');
end;
end;
procedure Tele;
begin
Writeln('Teleporting!');
GameTab(tab_Magic);
Wait(200 + Random(50));
if FindDTM(ZMITel, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 3, 3, True);
Wait(1900 + Random(25));
end;
procedure Banking;
begin
if BankScreen then
begin
if FindDTM(Depo, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Writeln('Depositing Runes!');
Mouse(x, y, 3, 3, True);
end;
if FindColorTolerance(x, y, 255, 724, 27, 745, 44, 5) then
begin
if FindDTM(Monk, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Writeln('Beginning Health Recovering');
Mouse(x, y, 3, 3, True);
Wait(75 + Random(25));
Mouse(x, y, 3, 3, True);
Wait(75 + Random(25));
Mouse(x, y, 3, 3, True);
Wait(75 + Random(25));
Mouse(x, y, 3, 3, True);
Wait(75 + Random(25));
end;
repeat
if FindDTM(Monk, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('at');
Wait(100 + Random(50));
end;
until not FindDTM(Monk, x, y, MIX1, MIY1, MIX2, MIY2);
end;
if FindDTM(Depo, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Writeln('Depositing Runes!');
Mouse(x, y, 3, 3, True);
end;
Witdraw;
FillA;
Witdraw;
FillB;
Witdraw;
Mouse(652, 76, 3, 3, True);
FFlag(13);
end else
begin
M := 1;
CloseWindow;
end;
end;
procedure Cave;
begin
WalkTo(P[0], 1);
if FindDTMRotated(P[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
Mouse(723, 69, 4, 4, True);
WalkTo(P[1], 2);
WalkTo(P[2], 3);
WalkTo(P[3], 4);
Wait(50 + Random(50));
WalkTo(P[4], 5);
WalkTo(P[5], 6);
WalkTo(P[6], 7);
if not FindDTMRotated(Zaltar, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
repeat
WalkTo(P[4], 5);
Wait(100 + Random(50));
WalkTo(P[5], 6);
Wait(100 + Random(50));
WalkTo(P[6], 7);
until FindDTMRotated(Zaltar, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
end;
if FindDTMRotated(Zaltar, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
Mouse(723, 69, 4, 4, True);
Wait(200 + Random(50));
end;
procedure Altar;
begin
A := Round(GetXPBarTotal);
GameTab(tab_Inv);
Writeln('Crafting Runes!');
Wait(200 + Random(25));
ClickOn(Zaltar, True);
Wait(1300 + Random(25));
EmptyA;
ClickOn(Zaltar, True);
Wait(900 + Random(25));
EmptyB;
ClickOn(Zaltar, True);
Wait(900 + Random(25));
EmptyC;
ClickOn(Zaltar, True);
Wait(250 + Random(25));
B := Round(GetXPBarTotal);
IncEx(Exp, (B-A));
end;
procedure ZBank;
begin
MakeCompass('e');
SetAngle(True);
Wait(250 + Random(50));
if FindDTMRotated(BankGuy, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) then
begin
if not BankScreen then
begin
Writeln('Opening Bank!');
if FindDTMRotated(Guy, x, y, MSX1, MSY2, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
repeat
if FindDTMRotated(Guy, x, y, MSX1, MSY2, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('ank');
Wait(750 + Random(25));
end;
until FindDTM(Mind, x, y, MSX1, MSY1, MSX2, MSY2);
repeat
if FindDTM(Mind, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(250 + Random(25));
until BankScreen;
end else
begin
Mouse(647, 91, 3, 3, True);
FFlag(4);
repeat
if FindDTMRotated(Guy, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('ank');
Wait(750 + Random(25));
end;
until FindDTM(Mind, x, y, MSX1, MSY1, MSX2, MSY2);
repeat
if FindDTM(Mind, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(250 + Random(25));
until BankScreen;
end;
end;
end;
end;
procedure Report;
begin
TimeRan := (1+((Getsystemtime - TimeBegan) / 1000));
XpHr := Round((3600 * Exp) / (TimeRan));
Writeln('Time: ' + TimeRunning);
Writeln('Experience Gained: ' + IntToStr(Exp) + ' Xp');
Writeln('Experience per Hour: ' + IntToStr(XpHr) + ' Xp/Hr');
PrintOnSmart(['Demise ZMI V1.0', ' ', 'by DemiseScythe', ' ', 'Time: ' + TimeRunning, ' ', 'Experience Gained: ' + IntToStr(Exp) + ' Xp', ' ', 'Experience per Hour: ' + IntToStr(XpHr) + ' Xp/Hr'], Point(10, 30), 255);
end;
Procedure TBank;
begin
Report;
WalkTo(Lava1, 8);
if FindDTMRotated(Lava2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Writeln('We have found the Point 9!');
Mouse((x+25), y, 3, 3, True);
FFlag(4);
end;
if FindDTMRotated(Lava2, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Writeln('We have found the Point 9!');
Mouse((x+25), y, 3, 3, True);
FFlag(4);
end;
AntiRandoms;
Wait(600 + Random(25));
if FindColorTolerance(x, y, 255, 737, 64, 761, 82, 5) then
begin
ClickOn(PrayA, True);
Wait(200 + Random(25));
end;
ClickOn(Hole, True);
Wait(450 + Random(25));
ClickOn(Hole, True);
Wait(450 + Random(25));
ClickOn(Hole, True);
Wait(450 + Random(25));
end;
procedure SettingUp;
begin
MouseSpeed := 18;
Exp := 0;
M := 0;
SetDTM;
MakeCompass('e');
SetAngle(True);
AntiRandoms;
ToggleXPBar(True);
ZBank;
IsBroken;
ZBank;
Banking;
Cave;
Altar;
TimeBegan := GetSystemTime;
end;
procedure Ending;
begin
Writeln('We have exited the loop!');
Writeln('We are logging out!');
Logout;
Writeln('We are terminating the script!');
Terminatescript;
end;
begin
SmartSet;
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
SettingUp;
repeat
Tele;
AntiRandoms;
TBank;
AntiRandoms;
ZBank;
IsBroken;
AntiRandoms;
ZBank;
Banking;
if (M = 1) then
begin
M := 0;
Writeln('Attempting to fix!');
Continue;
end;
AntiRandoms;
Cave;
AntiRandoms;
Altar;
AntiRandoms;
until (not(LoggedIn));
FrDTM;
Ending;
end.DemiseNatures [This script works but it is still beta, needs revision in walking and pouch management.]
program DemiseNatures;
{$i srl/srl/misc/smart.scar}
{$i srl/srl.scar}
{<<<<<<<<<<<<<<<Demise Runecrafter>>>>>>>>>>>>>>>}
{<<<<<<<<<<<<<<<<<Nature Version>>>>>>>>>>>>>>>>>}
var
P: Array [0..7] of Integer;
PureEss, EssLeft, Crafted, Ess, Chest, Fam, Interact, M, x, y: Integer;
GPouch, LPouch, MPouch, SPouch, Confirm, Telep, Pouch, Nature: Integer;
Obby, Entrance, Naltar, Duel, Home, Lubank, Booth, Cwar: Integer;
Xp, pHr, RpHr, XpHr, TimeRan, TimeBegan, Cosmic, Astral, NPC: Integer;
Dwn, Dark, Green, Rpr, SPot, BGPouch, R, Portal: Integer;
aFound: Extended;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;
procedure SmartSet;
begin
Smart_Server := 64;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
end;
procedure SetDTM;
begin
Ess := DTMFromString('mvQEAAHictcxLD8FAFAXgU+IRCWXhRzUhupAGsVK0jVa0XumikUhY1QIbm+78S4Qz7SwtmeTLnXvuzG0C8HIZi6Y0pw3ZtCSTAtmvaCaztZyLfwtyyZd9SQHe3F1krVJDyTJIZZm/2OZZVapRRb4V2YOzJxV4r5Pn2IiPB1jmCF1dx8AwsI8i7MIQ11OMYb8HZzJO34hczNuahm0QpH9818U9SXC7nNOs02pB5f5fU/7g6/kAkY8qjA==');
GPouch := DTMFromString('mlwAAAHicY2dgYHBiYmCwAGIHIHYFYl8gdgdiayB+BZR/CsT3oRjEfwfFoX6ODOEBzgxpqUkMXp5uDHGxUQxezpYMcWEeDPxAeVyYEQ+GAgDCDw9S');
BGPouch := DTMFromString('m1gAAAHic42JgYHBigmAbILYCYhcg9gJiX6i4PRC7AfFLoNr7QPwMiN8B8Xso/QqIb0D5T4HY2tyYITzch8HBxpzByc6SwcLUkMFAV5MhMNCNQUqSAyxurK/DwA9USwxmJBIjAAB8pRL9');
LPouch := DTMFromString('mwQAAAHic42RgYMhmYmDIAuJCJgg7BYhTgTgXiBOAuByIXwHVPQDi10D8DopfAPFtIH4JxG+AONDLjiErM43Bz9ebwc/dhiEhwoshLsyDQV1eECjLBMb8QJIQZiQCwwEAokoStQ==');
MPouch := DTMFromString('m1gAAAHic42JgYJjGxMAwBYhnAPEsIJ4KxBOZIOK9QDwfyn4JVHsfiB8yQNi3oPQ7IH4DZX8E4kAvO4a83CwGB3tbhoT4GAZ1eUGGpChvBj93G6AsExzzA0liMCORGAEA2D0VzA==');
SPouch := DTMFromString('mlwAAAHicY2dgYNjPBMFHoPQ2ID4JxAeB+AVQ/iEQvwLi21AahN8DsZ+7DUNSYhxDVEQYg5aSEFCECY75gSQuzIgHQwEAp9wPdg==');
Fam := DTMFromString('mbQAAAHicY2VgYDjExMBwDIj3AfEeID4CxBOB4l1A3AfEU6C4ecY8hptv7zIkZmcwHDh9DMznB4qjY0YsGAwAcyIQkQ==');
Telep := DTMFromString('mbQAAAHicY2VgYGBmZGA4DaStgPRLIC0FpDcC8QYoXgPEm4H4xIkTDIfcRMEYxAZhfqB6dMyIBYMBAOEMDxs=');
Pouch := DTMFromString('mWAAAAHicY2FgYDjMyMBwHIgPAvF+IM4HimUBcQYQFwPx8SJbhhs1zgxNeeEMJ4vtGPiBYsiYEQ2DAABokQrV');
Nature := DTMFromString('mwQAAAHic42RgYMhlYmDIgeIsIM4D4lQgLoGKVQIxOyMDAxMQ/wOq52GEYA4g5gRiMSDmAmLBahGGptpaMA3DqYkJDPWVlQyOdnYMS+bOZeAH6ieEGYnAcAAAEoQPDQ==');
P[0] := DTMFromString('m1gAAAHic42JgYOhmYmCoZ4LQM4F4IRAvA+I1QBwAxP5AnAHE1kC1ikCsAsRaQGwMxOZAbAXESkAcAMSBQFyercLQ2D2ZoaVvGphunTADjsOjQhk6WtIZ2prSGPiBaonBjERiBAAA0IYW0g==');
P[1] := DTMFromString('mlwAAAHicY2dgYJjOxMCwDIi7gLgNiDOAOBeIlwNxMFA+AIh9gFgLiF2A2A+IjYB4Qq0RQ1vPfDiub9JnqMjTBrP5gfK4MCMeDAUADpcQcA==');
P[2] := DTMFromString('mggAAAHicY2NgYFjNxMCwAYjnA/E8IO4E4lQgDgfKFQFxHhAHALE/lJ462ZBBNVIEjDsnzgXjqlxNBn6gHDbMiANDAABKjA0a');
P[3] := DTMFromString('mbQAAAHicY2VgYFjBxMCwAYgbgLgdiMuB2BsongnEvkBsC8RmQFzYp82wfMEsBtNkEQbXZCmGzkkzGfiB4uiYEQsGAwDyqQrX');
P[4] := DTMFromString('mggAAAHicY2NgYFjOxMBQDcSdQOwKxIVAXATENkC5fCA2AGJLILaH0g192gzLF8xi8MvWZeicNJPBNVkKjPmBctgwIw4MAQDhMgwK');
P[5] := DTMFromString('mggAAAHicY2NgYJjNxMDQA8QdQLwMiGcA8WogNgfKBQCxGxA7AbEXFJdWezIohYiAsVOcHIN/lioY8wPlsGFGHBgCAJDQCnU=');
P[6] := DTMFromString('mggAAAHicY2NgYJjPBMELgHg1EC8G4pVAnAqUiwHiPCBOB+IQIPYF4sxyVQb7eCkG+VABhoYOLYa2XjuGnCo1Bn6gHDbMiANDAAAjlgxP');
P[7] := DTMFromString('mrAAAAHic42BgYJjNxMAwH4gXAPEMIK4H4logLgHiAiDOBKoJB2JfIPYE4kQgTgfiBCD2AeLyYjWG8lw1hv4uXYbyKjWG1FIVBsVIQTjmB6rBhxkJYBgAAKhGDss=');
Obby := DTMFromString('mbQAAAHicY2VgYNBmZGDQA2JVRgjbEIhPA8WPAvEpID4PxGeB+OKBEoYrh8oYHl+oZ7h1ooph2/JUBn6gODpmxILBAADN4w9M');
Entrance := DTMFromString('mWAAAAHicY2FgYIhgZGDIAGJrII4H4h1AsTVAvBeIjwLx3NsJDMHB/gwpKQkMWVmpDMpAMX4kzIiGQQAAFq4Jyw==');
Naltar := DTMFromString('m1gAAAHic42JgYIhiZGCIBGJfIE6DssOAWBGIJwCxCBDPA+LTQLUHgPgUFF8F4m1AvASIVwKxKFRtQUE2Q3JCCgaOybFhiM+yZghJMmdIBLL5gXqIwYxEYgQAAGYtFVs=');
Duel := DTMFromString('mbQAAAHicY2VgYNjLxMCwH4h3APEmIN4OxJWMDAwlQFwNxM1A3AbEwl3iDNwBvAzL+sUZLm+TY9i7WJqBH6gfHTNiwWAAAFo5C/0=');
Home := DTMFromString('mwQAAAHic42RgYOBEwkIMEMAOxNxQzI4mB1PLA8VsULzvyCeGtjk3UPDKvU/B+O/fv2DMBFRHCDMSgeEAAH3bFac=');
Lubank := DTMFromString('mbQAAAHicY2VgYGhnYmDoBuJlQFwCxDVAbMIAwW5AbAfE7kD88T8PGPt7W4FxV7UPAz9QHB0zYsFgAAAAfAss');
Booth := DTMFromString('mrAAAAHic42BgYGBmZGBgAuKfQDYPkP4GpPmA9BcgLQikW4F0OhBnQ3ElFIPE24C4Ii+WQUdLiyEjwpohJdSSoSQvnaGpuhAsDsL8QDX4MCMBDAMAz9kQTQ==');
Cwar := DTMFromString('m1gAAAHic42JgYChmYmBoBOIZQNwCxCVAnATE8UDcCmWvB+JQoNpoIK4C4gogzgHiDCCOBGIbILYFYj8g/v//P4O/nx9Dc89sMDbTFGHwt5FhiHCWY/AuVAPTIPn/QLX8RGBGIjECAACd1hW1');
Chest := DTMFromString('mggAAAHicY2NgYFBjZGBQAGI9IDYAYhUgNgPiBUC5mUC8AYjXAPF6IN4GxEVpEQy3L11kCPWwYFi1eDHD/u3bGZ7cusXAD5TDhhlxYAgAANbqEJ0=');
Interact := DTMFromString('mFQEAAHic42VgYIhjYmAoAuJiIPYH4iAgTgLiTCCOAOJIIM5HkgsF4jmMDAwzgHgeEE+H0jAME5/FCFEHomcD8f8Z8iRjVqD7SMWMZGAUAACVsiNq');
Confirm := DTMFromString('m6wAAAHiclcc7CoAwAIPh1NLJU+jQxc1N6O6rvvDa3qn+oINjDXwkKSV5K1X26QMdAhq0WDChxlDwsWHHifHdEStm9EhXPqd85odPbr79GdM=');
Cosmic := DTMFromString('mggAAAHicY2NgYMhgZGDIg+JcIE6F4plAuYlAPAWIZwPxVCCeB8S5GRkMVy/LoeCYiAgGfqAcNsyIA0MAAPWoD9U=');
Astral := DTMFromString('mQwAAAHicY2ZgYJjKyMAwF4inA/FUIH8aEM8H4rMbzzC01NUxpCclMfAD+TDMiISBAABwQAi/');
NPC := DTMFromString('mlwAAAHicY2dgYJjMxMDQBcS9QDwDiKcC8RQg7gPiJ0D5R0D8HIifAfF9IH4FpV+/fsVw8OkvrJgfKI8LM+LBUAAAeDkdOg==');
Dwn := DTMFromString('mbQAAAHicY2VgYDjLyMBwDogvAfFJRgjfEIh1oTQImwGxjLgIAz8fD4ORjjIDJycnmOYH6kfHjFgwGAAANZoG5g==');
Dark := DTMFromString('mwQAAAHic42RgYFjIyMCwCIinAPFKIJ4PxH1A3AbEDVDMA8RfgWoZGCH4JQME/2aAyCkC8fr+UobtU6sYFFS1GOSU1Rl4eXkxMD9QPSHMSASGAwAGuA7p');
Green := DTMFromString('mWAAAAHicY2FgYGBmZGBgB2JGKL4MxeeB+AYQz50zh2Hu3DkM58+dY1i2dCkDP1APMmZEwyAAAELUC6w=');
Rpr := DTMFromString('mbQAAAHicY2VgYGBjZGBIA9JZQBwIZAcB8RIgXgTEK6D0SiAWkpJjOHHiBArmB+pBx4xYMBgAAKH9Dro=');
SPot := DTMFromString('mbQAAAHicY2VgYLBlhGBzILYBYmcgXgAUn8oAoZdAablLNxkKCkoZ5K/dZZC7cptBfPEKBn6gODpmxILBAAA2aAzD');
Portal := DTMFromString('mggAAAHicY2NgYGBnZGBQA+KXQPZtIDYGsv8BaR4gFgZiISC2B2JHIGYCyjU0VINxU1MNQ25uBkNxcR5Der4tAz9QHhtmxIEhAADcEAxf');
end;
procedure FrDTM;
begin
FreeDTM(Ess);
FreeDTM(GPouch);
FreeDTM(BGPouch);
FreeDTM(LPouch);
FreeDTM(MPouch);
FreeDTM(SPouch);
FreeDTM(Fam);
FreeDTM(Telep);
FreeDTM(Pouch);
FreeDTM(Nature);
FreeDTM(P[0]);
FreeDTM(P[1]);
FreeDTM(P[2]);
FreeDTM(P[3]);
FreeDTM(P[4]);
FreeDTM(P[5]);
FreeDTM(P[6]);
FreeDTM(P[7]);
FreeDTM(Obby);
FreeDTM(Entrance);
FreeDTM(Naltar);
FreeDTM(Duel);
FreeDTM(Home);
FreeDTM(Lubank);
FreeDTM(Booth);
FreeDTM(Cwar);
FreeDTM(Chest);
FreeDTM(Interact);
FreeDTM(Confirm);
FreeDTM(Cosmic);
FreeDTM(Astral);
FreeDTM(NPC);
FreeDTM(Dwn);
FreeDTM(Dark);
FreeDTM(Green);
FreeDTM(Rpr);
FreeDTM(SPot);
FreeDTM(Portal);
end;
procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'runecrafting';
LevelUp;
end;
procedure WalkTo(PX, P: Integer);
begin
if FindDTMRotated(PX, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Writeln('We have found the Point ' + IntToStr(P) + '!');
Mouse(x, y, 3, 3, True);
FFlag(13);
end;
end;
procedure WalkToE(PX, P: Integer);
begin
if FindDTMRotated(PX, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Writeln('We have found the Point ' + IntToStr(P) + '!');
Mouse((x+4), y, 3, 3, True);
FFlag(13);
end;
end;
procedure ClickOn(PX:Integer; Click: Boolean);
begin
if FindDTMRotated(PX, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, Click);
end;
end;
procedure Witdraw;
begin
if FindDTM(Ess, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Writeln('Withdrawing Pure Essence!');
Mouse(x, y, 3, 3, False);
ChooseOption('ll');
end;
end;
procedure FillA;
begin
if FindDTM(GPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
Wait(150 + Random(50));
if FindDTM(BGPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
Wait(150 + Random(50));
if FindDTM(SPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Small Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
end;
procedure FillB;
begin
if FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Large Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
if FindDTM(MPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Filling Medium Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('ill');
end;
end;
procedure EmptyA;
begin
if FindDTM(GPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
if FindDTM(BGPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Giant Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
if FindDTM(SPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Small Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(500 + Random(100));
end;
end;
procedure EmptyB;
begin
if FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Large Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(300 + Random(100));
end;
if FindDTM(MPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Emptying Medium Pouch!');
Mouse(x, y, 3, 3, False);
ChooseOption('mpty');
Wait(300 + Random(100));
end;
end;
procedure IsPoints;
begin
if IsChatBoxTextAnyLine('required', 0) then
begin
Writeln('Renewing Summoning!');
if FindColorTolerance(x, y, 8560478, 617, 262, 627, 272, 5) then
begin
Mouse(622, 267, 3, 3, False);
ChooseOption('ll');
end;
if FindDTM(SPot, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(150 + Random(50));
CloseWindow;
Wait(250 + Random(50));
Gametab(tab_Inv);
Wait(250 + Random(50));
if FindDTM(Pouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('rink');
R := 1;
end;
end;
end;
procedure IsSummoned;
begin
if IsChatBoxTextAnyLine('vanishes', 127) then
begin
Writeln('Renewing Familiar!');
if FindColorTolerance(x, y, 8560478, 617, 262, 627, 272, 5) then
begin
Mouse(622, 267, 3, 3, False);
ChooseOption('ll');
end;
if FindDTM(Pouch, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(150 + Random(50));
CloseWindow;
Wait(250 + Random(50));
Gametab(tab_Inv);
Wait(250 + Random(50));
if FindDTM(Pouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('ummon');
end;
R := 0;
end;
end;
procedure IsBroken;
begin
if not FindDTM(LPouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Pouches are broken!');
Mouse(622, 267, 3, 3, False);
ChooseOption('ll');
if FindDTM(Cosmic, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(200 + Random(50));
if FindDTM(Astral, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(100 + Random(100));
repeat
CloseWindow;
Wait(50 + Random(50));
until not BankScreen;
Gametab(tab_Magic);
Wait(50 + Random(50));
if FindDTM(NPC, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(x, y, 3, 3, True);
Wait(850 + Random(50));
if FindDTM(Dwn, x, y, 443, 292, 479, 318) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(50 + Random(50));
until FindDTM(Dark, x, y, MSX1, MSY1, MSX2, MSY2);
end;
if FindDTM(Dark, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
repeat
Wait(50 + Random(50));
until FindDTM(Green, x, y, 208, 451, 310, 477);
if FindDTM(Green, x, y, 208, 451, 310, 477) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(500 + Random(50));
until FindDTM(Rpr, x, y, 78, 410, 439, 433);
end;
if FindDTM(Rpr, x, y, 78, 410, 439, 433) then
Mouse(x, y, 3, 3, True);
Wait(650 + Random(50));
if FindDTM(Green, x, y, 208, 451, 310, 477) then
begin
repeat
Mouse(x, y, 3, 3, True);
Wait(500 + Random(50));
until not FindDTM(Green, x, y, 208, 451, 310, 477);
end;
end else
begin
Writeln('Pouches arent broken!');
end;
end;
procedure Tele;
begin
Writeln('Teleporting!');
repeat
if FindDTM(Fam, x, y, 696, 131, 718, 154) then
Mouse(x, y, 3, 3, True);
Wait(100 + Random(100));
IsSummoned;
until FindColorTolerance(x, y, 2169874, 181, 417, 327, 446, 5);
if FindDTM(Telep, x, y, 183, 422, 330, 443) then
Mouse(x, y, 3, 3, True);
Wait(850 + Random(50));
end;
procedure LBanking;
begin
if IsChatBoxTextAnyLine('crumbles', 0) then
begin
if FindColorTolerance(x, y, 8560478, 617, 262, 627, 272, 5) then
begin
Mouse(622, 267, 3, 3, False);
ChooseOption('ll');
end;
Writeln('Equiping Ring!');
if FindDTM(Duel, x, y, MSX1, MSY1, MSX2, MSY2) then
Mouse(x, y, 3, 3, True);
Wait(600 + Random(100));
if FindDTM(Duel, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
Wait(200 + Random(100));
ChooseOption('ear');
end;
end;
end;
procedure Banking;
begin
Wait(100 + Random(50));
LBanking;
if FindDTM(Nature, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Depositing Natures!');
Crafted := Crafted + GetAmount(x, y);
Mouse(x, y, 3, 3, False);
ChooseOption('ll');
end;
if FindDTM(Pouch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('eposit');
end;
if FindDTM(Duel, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('eposit');
end;
if FindDTM(SPot, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('eposit');
end;
EssLeft := PureEss - Crafted;
if (EssLeft >= 100) then
begin
Witdraw;
FillA;
Witdraw;
FillB;
Witdraw;
Tele;
end else
begin
//Ge;
end;
end;
procedure Jungle;
begin
MakeCompass('n');
SetAngle(True);
Mouse(667, 59, 3, 3, True);
FFlag(13);
Wait(350 + Random(50));
WalkTo(P[1], 2);
Wait(350 + Random(50));
WalkTo(P[2], 3);
Wait(250 + Random(50));
WalkTo(P[3], 4);
Wait(350 + Random(50));
WalkTo(P[4], 5);
Mouse(x, (y-5), 3, 3, True);
FFlag(13);
Wait(350 + Random(50));
WalkTo(P[5], 6);
Wait(250 + Random(50));
WalkTo(P[6], 7);
Wait(250 + Random(50));
WalkToE(P[7], 8);
Wait(450 + Random(50));
if FindDTMRotated(Entrance, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Wait(950 + Random(50));
repeat
ClickOn(Entrance, True);
Wait(950 + Random(50));
until FindDTMRotated(Portal, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
end else
begin
repeat
if not FindDTMRotated(Entrance, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
AntiRandoms;
Wait(350 + Random(50));
WalkTo(P[1], 2);
Wait(350 + Random(50));
WalkTo(P[2], 3);
Wait(250 + Random(50));
WalkTo(P[3], 4);
Wait(350 + Random(50));
WalkTo(P[4], 5);
Mouse(x, (y-5), 3, 3, True);
FFlag(13);
Wait(350 + Random(50));
WalkTo(P[5], 6);
Wait(250 + Random(50));
WalkTo(P[6], 7);
Wait(250 + Random(50));
WalkToE(P[7], 8);
Wait(450 + Random(50));
end;
until FindDTMRotated(Entrance, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
Wait(300 + Random(100));
if FindDTMRotated(Entrance, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Wait(950 + Random(50));
repeat
ClickOn(Entrance, True);
Wait(950 + Random(50));
until FindDTMRotated(Portal, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
end;
end;
end;
procedure Altar;
begin
GameTab(tab_Inv);
Writeln('Crafting Runes!');
MakeCompass('n');
SetAngle(True);
if FindDTMRotated(Portal, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
ClickOn(Portal, True);
Wait(350 + Random(100));
end else
begin
Mouse(263, 18, 3, 3, True);
FFlag(8);
Wait(350 + Random(100));
end;
repeat
ClickOn(Naltar, True);
Wait(550 + Random(50));
until not FindColorTolerance(x, y, 6908270, 641, 246, 680, 279, 5);
Wait(400 + Random(100));
GameTab(tab_Inv);
Wait(100 + Random(100));
EmptyA;
ClickOn(Naltar, True);
repeat
Wait(750 + Random(50));
ClickOn(Naltar, True);
until not FindColorTolerance(x, y, 6908270, 641, 246, 680, 279, 5);
Wait(400 + Random(100));
GameTab(tab_Inv);
Wait(100 + Random(100));
EmptyB;
ClickOn(Naltar, True);
repeat
Wait(750 + Random(50));
ClickOn(Naltar, True);
until not FindColorTolerance(x, y, 6908270, 641, 246, 680, 279, 5);
end;
procedure LBank;
begin
MakeCompass('n');
SetAngle(True);
if not FindDTMRotated(Lubank, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) then
begin
GameTab(tab_Magic);
if FindDTM(Home, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 4, 4, True);
Writeln('Teleporting to Lunar Island!');
Wait(12000 + Random(1000));
end;
end;
if not BankScreen then
begin
if FindDTMRotated(Booth, x, y, 226, 32, 282, 161, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, False);
Wait(300 + Random(200));
ChooseOption('quick');
Writeln('Opening Booth!');
Wait(1100 + Random(200));
end;
end;
if not BankScreen then
repeat
MakeCompass('n');
SetAngle(True);
if FindDTMRotated(Lubank, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) then
begin
Writeln('Walking to Booth!');
Mouse((x+4), (y+10), 3, 3, True);
FFlag(13);
end;
MakeCompass('n');
SetAngle(True);
if FindDTMRotated(Booth, x, y, 226, 32, 282, 161, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, False);
Wait(300 + Random(200));
ChooseOption('quick');
Writeln('Opening Booth!');
Wait(1100 + Random(200));
end;
Wait(800 + Random(200));
until BankScreen or (not(LoggedIn));
end;
procedure Cwars;
begin
MakeCompass('n');
SetAngle(True);
if not BankScreen then
begin
if FindDTMRotated(Chest, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, True);
Writeln('Opening Chest!');
Wait(1300 + Random(150));
end;
end;
if not BankScreen then
begin
if FindDTMRotated(Cwar, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse((x+7), (y+5), 2, 2, True);
FFlag(13);
Writeln('Walking to Chest!');
MakeCompass('n');
SetAngle(True);
if FindDTMRotated(Chest, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, True);
Writeln('Opening Chest!');
Wait(1300 + Random(150));
end;
end else
begin
GameTab(tab_Equip);
Wait(250 + Random(50));
if FindDTM(Duel, x, y, 680, 367, 714, 401) then
begin
M := 1;
Writeln('Teleporting to Castle Wars!');
Mouse(x, y, 3, 3, False);
ChooseOption('astle');
Wait(2500 + Random(50));
if not BankScreen then
repeat
if FindDTMRotated(Cwar, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse((x+7), (y+5), 2, 2, True);
FFlag(13);
Writeln('Walking to Chest!');
MakeCompass('n');
SetAngle(True);
if FindDTMRotated(Chest, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
Mouse(x, y, 3, 3, True);
Writeln('Opening Chest!');
Wait(1300 + Random(150));
end;
end;
until BankScreen or (not(LoggedIn));
end else
begin
M := 0;
LBank;
end;
end;
end;
end;
procedure InteractFam;
begin
CloseWindow;
Writeln('Setting up Familiar Options!');
if FindDTM(Fam, x, y, 696, 131, 718, 154) then
begin
Mouse(x, y, 3, 3, False);
ChooseOption('elect');
Wait(1500 + Random(200));
end;
if FindDTM(Interact, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(570, y, 3, 3, True);
if FindDTM(Confirm, x, y, MIX1, MIY1, MIX2, MIY2) then
Mouse(642, y, 3, 3, True);
end;
procedure Report;
begin
TimeRan := (1+((Getsystemtime - TimeBegan) / 1000));
Xp := Crafted * 9 Div 2;
XpHr := (3600 * Xp) / (TimeRan);
RpHr := (3600 * (Crafted)) / (TimeRan);
Writeln('Time: ' + TimeRunning);
Writeln('Experience Gained: ' + IntToStr(Xp) + ' Xp');
Writeln('Experience per Hour: ' + IntToStr(XpHr) + ' Xp/Hr');
Writeln('Natures Crafted: ' + IntToStr(Crafted) + ' Nature Runes');
Writeln('Runes Crafted per Hour: ' + IntToStr(RpHr) + ' Nature Runes/Hr');
end;
procedure SettingUp;
begin
R := 0;
M := 1;
Crafted := 0;
PureEss := 200000;
EssLeft := PureEss - Crafted;
{InteractFam;}
Cwars;
TimeBegan := GetSystemTime;
end;
procedure Ending;
begin
Writeln('We have exited the loop!');
Writeln('We are logging out!');
Logout;
Writeln('We are terminating the script!');
Terminatescript;
end;
begin
SmartSet;
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
MouseSpeed := 18;
SetDTM;
AntiRandoms;
SettingUp;
repeat
IsSummoned;
if (M = 1) then
Cwars;
if (M = 0) then
begin
LBank;
end;
IsPoints;
if (M = 1) then
Cwars;
if (M = 0) then
begin
LBank;
end;
if (R = 1) then
begin
IsSummoned;
if (M = 1) then
Cwars;
if (M = 0) then
begin
LBank;
end;
end;
IsBroken;
if (M = 1) then
Cwars;
if (M = 0) then
begin
LBank;
end;
Banking;
Report;
Jungle;
Altar;
AntiRandoms;
Cwars;
AntiRandoms;
until (not(LoggedIn))
FrDTM;
Ending;
end.DemiseZMI was tuned up with a different flag developed by Home.
{*******************************************************************************
function FindFlag(var X, Y: Integer): Boolean;
By: Home
Description: Returns true if the flag is found.
*******************************************************************************}
function FindFlag(var X, Y: Integer): Boolean;
var
KMTarget, ITarget, I, Hi, Map, W, H: Integer;
TPA: TPointArray;
begin
Result := False;
Map := BitmapFromString(MMX2 - MMX1, MMY2 - MMY1, '');
CopyClientToBitmap(Map, MMX1, MMY1, MMX2, MMY2);
KMTarget := GetKeyMouseTarget;
ITarget := GetImageTarget;
SetTargetBitmap(Map);
GetBitmapSize(Map, W, H);
FindColors(TPA, 65536, 0, 0, W - 1, H -1);
FilterPointsDist(TPA, 0, 75.5, W / 2, H / 2);
Hi := Length(TPA);
for I := 0 to Hi - 1 do
if ((FastGetPixel(Map, TPA[I].X - 1, TPA[I].Y - 1) - FastGetPixel(Map, TPA[I].X, TPA[I].Y - 1)) = 6381921) then
begin
Result := True;
X := TPA[I].X + MMX1;
Y := TPA[I].Y + MMY1;
Break;
end;
FreeTarget(GetImageTarget);
FreeBitmap(Map);
SetKeyMouseTarget(KMTarget);
SetImageTarget(ITarget);
end; This flag should make my ZMI work near flawlessly, not just because a flag is faster is it more accurate. If ZMI is put to test, would appreciate it if you used this flag before saying it walks akwardly and misses points. I got nothing against the current flag, but just don't think it is the most appropiate for my script.