One sec.. :p
you need: srl-osr include, al_functions, reflection include:
http://villavu.com/forum/showthread.php?t=107479before you start the script you need to enable melee protection!
edit:
program NMZAfker;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.simba}
{$I SRL-OSR/SRL/misc/SmartGraphics.simba}
{$I SRL-OSR/SRL/misc/Al_functions.simba}
{$i SRL-OSR/SRL/Reflection/Reflection.simba}
var
DrinkPray, DrinkOvl1, DrinkOvl2, x, y, IP, IO, Drink1, Drink2: integer;
StartXPAttack, StartXPStrength, StartXPDefence, StartXPHitpoints: Integer;
Pray1, Pray2, Pray3, Pray4: integer;
Ovl1, Ovl2, Ovl3, Ovl4: integer;
Pray, Ovl: TIntegerarray;
const
ANTIBANTRAININGMODE = Skill_Defence;
LOGOUTSET = false; {true if you want to logout if you are out of pots (takes ~40 seconds to be sure you are not in combat)}
procedure OnEnd;
begin
FreeDTM(Pray1);
FreeDTM(Pray2);
FreeDTM(Pray3);
FreeDTM(Pray4);
FreeDTM(Ovl1);
FreeDTM(Ovl2);
FreeDTM(Ovl3);
FreeDTM(Ovl4);
end;
procedure ArraySetup;
begin
Pray1 := DTMFromString('mWAAAAHicY2FgYLjLxMDwFIivAfF9INZgZGBQg2IDEN7eBVTFCMdsDKiAEQ2DAACFtgWq'); {1 dose}
Pray2 := DTMFromString('mWAAAAHicY2FgYGBjYmDgAmJ+IGYAYg1GBgYTINaCYvnKGKAEIxxzMaACRjQMAgBrxQHl');
Pray3 := DTMFromString('mWAAAAHicY2FgYGhlYmBoB+JGIO4DYg1GBgYzRgitB8QWl+YDVTHCMTsDKmBEwyAAACq5BJc=');
Pray4 := DTMFromString('mWAAAAHicY2FgYIhmYmCIAuIUIA4FYjVGBgYzINYFYi0gTr26BqiKEY65GFABIxoGAQACtAQp'); {4 dose}
Ovl1 := DTMFromString('mggAAAHicY2NgYNjHxMCwH4iPAfEBIN4FxNuA+A1Q7iUQPwPiz0D8lAEiJiIoyFBWVg5kMaJgfiAJwuiAEQeGAACEaQvG');
Ovl2 := DTMFromString('mggAAAHicY2NgYHBkYmBwAWJ7IPYEYhsgtgJibkYIFgdiXiDmBGJRIBYRFGQIj4gB6mREwfxAEoTRASMODAEAPiQDXQ==');
Ovl3 := DTMFromString('mlwAAAHicY2dgYMhmYmDIA+IMIC5jgvBTgTgFiDkZGRjYgZgDiIWAWByIuYFYFIgF+fgYfP2CGXJz84GmMKJgfiAJw+iAEQ+GAgCWawYF');
Ovl4 := DTMFromString('mbQAAAHicY2VgYJjKxMAwDYj7gHg+EM8GYnZGBgZxIOYBYgEgFgNiQT4+oGpGFMzPgAkYsWAwAABMWwOd');
Pray := [Pray1, Pray2, Pray3, Pray4];
Ovl := [Ovl1, Ovl2, Ovl3, Ovl4];
AddOnTerminate('OnEnd');
end;
procedure RandomPot;
begin
Drink1 := R_GetMaxSkillLevel(Skill_Prayer) / 3;
Drink2 := R_GetMaxSkillLevel(Skill_Prayer) / 2;
DrinkPray := Randomrange(Drink1, Drink2);
Writeln('Generated drink pot at: ' + IntToStr(DrinkPray));
end;
procedure AntiBan;
begin
case random(900) of
0..1:
begin
Al_HoverSkill(ANTIBANTRAININGMODE, False);
Sleep(800 + Random(500));
end;
2..3:
begin
Al_HoverSkill(Skill_Hitpoints, False);
Sleep(800 + Random(500));
end;
4..10:
begin
makecompass(randomrange(0, 360));
sleep(800 + random(500));
end;
11..26:
begin
AL_HumanRandomMouse;
sleep(800 + random(500));
end;
18:
begin
adjustmousespeed(2, 10, 20);
sleep(800 + random(500));
end;
19:
begin
randomRClick;
sleep(800 + random(500))
end;
20:
begin
hovermovingobject;
sleep(800 + random(500))
end;
21:
begin
MMouseOffClient('top');
sleep(800 + random(500))
end;
22:
begin
MMouseOffClient('left');
sleep(800 + random(500))
end;
23:
begin
MMouseOffClient('right');
sleep(800 + random(500))
end;
24:
begin
MMouseOffClient('bottom');
sleep(800 + random(500))
end;
25..26:
begin
if IsRunOn(false) then
begin
SetRun(true);
end
end;
29..31:
begin
randomtab(false);
sleep(1000 + random(500));
al_GameTab(tab_inv);
end;
end;
Exit;
end;
procedure OvlProcedure;
begin
DrinkOvl1 := R_GetMaxSkillLevel(Skill_Attack);
DrinkOvl2 := R_GetSkillLevel(Skill_Attack);
if (DrinkOvl2 <= DrinkOvl1) then
begin
for IO := 0 to High(Ovl) do
begin
if (FindDTM(Ovl[IO], x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Al_MissMouse(point(x, y), randomrange(-5, 5), randomrange(-5, 5));
Sleep(150 + random(50));
Al_FastClick(Mouse_Left);
Exit;
end
else
begin
Writeln('out of Ovl pots');
end;
end;
end
else
AntiBan;
end;
procedure PrayerProcedure;
begin
if (R_GetSkillLevel(Skill_Prayer) < DrinkPray) then
begin
for IP := 0 to High(Pray) do
begin
if (FindDTM(Pray[IP], x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Al_MissMouse(point(x, y), randomrange(-5, 5), randomrange(-5, 5));
Sleep(150 + random(50));
Al_FastClick(Mouse_Left);
RandomPot;
Exit;
end
else
begin
Writeln('out of pray pots');
if (LOGOUTSET) then
begin
repeat
if (R_NearTile(Point(2608, 3115), 15)) then
repeat
LogOut;
Sleep(2000 + random(100));
if (Not LoggedIn) then
TerminateScript;
until (not LoggedIn);
until (not LoggedIn);
LogOut;
TerminateScript;
end;
end;
end;
end
else
OvlProcedure;
end;
procedure SetXP;
begin
StartXPAttack := Round(R_GetSkillExp(Skill_Attack));
StartXPStrength := Round(R_GetSkillExp(Skill_Strength));
StartXPDefence := Round(R_GetSkillExp(Skill_Defence));
StartXPHitpoints := Round(R_GetSkillExp(Skill_Hitpoints));
end;
procedure TheStatus(Status, StatusDebug: string);
var
GainedXPAttack, GainedXPHitpoints, GainedXPStrength, GainedXPDefence: integer;
GainedXPHitpointsHour, GainedXPStrengthHour, GainedXPAttackHour, GainedXPDefenceHour: integer;
begin
GainedXPAttack := Round(R_GetSkillExp(Skill_Attack) - StartXPAttack);
GainedXPAttackHour := Round((GainedXPAttack) / (gettimerunning / 3600000.0));
GainedXPHitpoints := Round(R_GetSkillExp(Skill_Hitpoints) - StartXPHitpoints);
GainedXPHitpointsHour := Round((GainedXPHitpoints) / (gettimerunning / 3600000.0));
GainedXPStrength := Round(R_GetSkillExp(Skill_Strength) - StartXPStrength);
GainedXPStrengthHour := Round((GainedXPStrength) / (gettimerunning / 3600000.0));
GainedXPDefence := Round(R_GetSkillExp(Skill_Defence) - StartXPDefence);
GainedXPDefenceHour := Round((GainedXPDefence) / (gettimerunning / 3600000.0));
ClearDebug;
Writeln('XP information');
Writeln('Hp xp: ' + IntToStr(GainedXPHitpoints));
Writeln('Hp xp/hour: ' + IntToStr(GainedXPHitpointsHour));
Writeln('Attack xp: ' + IntToStr(GainedXPAttack));
Writeln('Attack xp/hour: ' + IntToStr(GainedXPAttackHour));
Writeln('Strength xp: ' + IntToStr(GainedXPStrength));
Writeln('Strength xp/hour: ' + IntToStr(GainedXPStrengthHour));
Writeln('Defence xp: ' + IntToStr(GainedXPDefence));
Writeln('Defence xp/hour: ' + IntToStr(GainedXpDefenceHour));
end;
begin
Smart_World := 1;
SetupSRL();
SetupReflection;
ArraySetup;
RandomPot;
SetXp;
repeat
PrayerProcedure;
Sleep(3000 + Random(1000));
TheStatus('', '');
until (false)
end.