1.: Put two new options into your profile:
Code: Select all
<option name="HP_REST" value="15" />
<option name="MP_REST" value="15" />
2.: Download the attached file 'modif_rest_function.lua' and save it in your classes folder. That file includes the following function
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
if( player.Mana >= hf_mana_rest and player.HP >= hf_hp_rest ) 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 full mana and full HP\n", hf_count); -- 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 == player.MaxMana and -- some chars have MaxMana = 0
player.HP == player.MaxHP ) 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
3.: Add the following line at the end of your player.lua file
Code: Select all
include("modif_rest_function.lua");
Code: Select all
if( player:haveTarget() ) then -- <<< NEW LINE
player:rest(); -- rest befor next fight <<< NEW LINE
end; -- <<< NEW LINE
if( player:haveTarget() ) then