Code: Select all
129 if( self.Alive ==nil or self.HP == nil or self.MaxHP == nil or self.MP == nil or self.MaxMP == nil or
130 self.MP2 == nil or self.MaxMP2 == nil or self.Name == nil or
131 self.Level == nil or self.Level2 == nil or self.TargetPtr == nil or
132 self.X == nil or self.Y == nil or self.Z == nil or self.Attackable == nil ) then
133
134 error("Error reading memory in CPawn:update()");
135 end
Bot mods:
modif_rest_function.lua is exercuted when mob is dead
Code: Select all
function CPlayer:rest()
-- rest to restore mana and healthpoint if under a certain level
if( self.Battling == true) then return; end; -- if aggro, go back
--if( settings.profile.options.MP_REST == nil ) then settings.profile.options.MP_REST = 15; end;
if( settings.profile.options.HP_REST == nil ) then settings.profile.options.HP_REST = 15; end;
-- some classes dont have mana, in that cases Player.mana = 0
hf_mana_rest = (player.MaxMana * settings.profile.options.MP_REST / 100); -- rest if mana is lower then
hf_hp_rest = (player.MaxHP * settings.profile.options.HP_REST / 100); -- rest if HP is lower then
hf_mp_continue = (player.MaxMana * settings.profile.options.MP_CONTINUE / 100); -- rest if mana is lower then
hf_hp_continue = (player.MaxHP * settings.profile.options.HP_CONTINUE / 100); -- rest if HP is lower then
if( player.Mana >= hf_mp_continue and player.HP >= hf_hp_continue ) then -- nothing to do
return; -- go back
end;
self:clearTarget(); -- get rid of mob, so we dont cast while resting
hf_count = 30 + math.random( 69 ); -- set rest time, up to 99 sec pause
cprintf(cli.green, "resting %s sec for %s mana and %s HP\n", hf_count, hf_mp_continue, hf_hp_continue); -- resting x sec for Mana and HP
while hf_count > 0 do
yrest(1000);
hf_count = hf_count - 1;
self:update();
if( self.Battling ) then -- we get aggro,
self:clearTarget(); -- get rid of mob to be able to target attackers
printf("get aggro at sec %s\n", hf_count ); -- get aggro at sec x
hf_count = 0; -- stop countdown
end;
if( player.Mana >= hf_mp_continue and -- some chars have MaxMana = 0
player.HP >= hf_hp_continue ) then -- Mana and HP are full
printf("full at sec %s\n", hf_count ); -- full at sec x
hf_count = 0; -- stop countdown
end;
self:checkPotions();
self:checkSkills(); -- check if we need to cast buffs/heals.
end; -- end of while
end