Sorry, but both of your suggestions are terrible. OP is better of using a condition (where ticks is set to -1, and disappears when the player logs out) that is added each time a player logins.
Code:local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) regenCondition:setTicks(-1) regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, 2) regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000) regenCondition:setParameter(CONDITION_PARAM_MANAGAIN, 2) regenCondition:setParameter(CONDITION_PARAM_MANATICKS, 2000) function onLogin(player) player:addCondition(regenCondition) return true end
Is there a way that I could change this from 2 hp/mp per tick to 2% of the players max health and max mana? Thanks guys
function onThink(cid, interval)
local p = Player(cid)
local php = p:getMaxHealth()
local pmp = p:getMaxMana()
local h = p:getHealth()
local m = p:getMana()
function hp ()
p:addHealth(php / 100 * 2 )
end
function mp ()
p:addMana(pmp / 100 * 2 )
end
if last_interval == nil then
last_interval = os.clock()
end
if (os.clock() - last_interval) > 0 then
if h < php or m < pmp then
addEvent(hp,1000)
addEvent(mp,1000)
return true
end
last_interval= os.clock()
end
return true
end
local regenCondition1 = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
regenCondition1:setTicks(-1)
regenCondition1:setParameter(CONDITION_PARAM_HEALTHGAIN, 2)
regenCondition1:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
regenCondition1:setParameter(CONDITION_PARAM_MANAGAIN, 2)
regenCondition1:setParameter(CONDITION_PARAM_MANATICKS, 2000)
local regenCondition2 = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
regenCondition2:setTicks(-1)
regenCondition2:setParameter(CONDITION_PARAM_HEALTHGAIN, 4)
regenCondition2:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
regenCondition2:setParameter(CONDITION_PARAM_MANAGAIN, 4)
regenCondition2:setParameter(CONDITION_PARAM_MANATICKS, 2000)
local regenCondition3 = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
regenCondition3:setTicks(-1)
regenCondition3:setParameter(CONDITION_PARAM_HEALTHGAIN, 6)
regenCondition3:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
regenCondition3:setParameter(CONDITION_PARAM_MANAGAIN, 6)
regenCondition3:setParameter(CONDITION_PARAM_MANATICKS, 2000)
function onLogin(player)
local level = player:getLevel()
if level < 20 then
player:addCondition(regenCondition1)
elseif level < 100 then
player:addCondition(regenCondition2)
else
player:addCondition(regenCondition3)
end
return true
end
local hps = {}
local mps = {}
for i=1,x do
local regenCondition1 = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
regenCondition1:setTicks(-1)
regenCondition1:setParameter(CONDITION_PARAM_MANAGAIN, i)
regenCondition1:setParameter(CONDITION_PARAM_MANATICKS, 2000)
local regenCondition2 = Condition(CONDITION_REGENERATION, 2)
regenCondition2:setTicks(-1)
regenCondition2:setParameter(CONDITION_PARAM_MANAGAIN, i)
regenCondition2:setParameter(CONDITION_PARAM_MANATICKS, 2000)
hps[i] = regenCondition1
mps[i] = regenCondition2
end
Is there a way that I could change this from 2 hp/mp per tick to 2% of the players max health and max mana? Thanks guys
local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
regenCondition:setTicks(-1)
regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
regenCondition:setParameter(CONDITION_PARAM_MANATICKS, 2000)
function onLogin(player)
regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, math.ceil(player:getMaxHealth() * 0.02))
regenCondition:setParameter(CONDITION_PARAM_MANAGAIN, math.ceil(player:getMaxMana() * 0.02))
player:addCondition(regenCondition)
return true
end
Promoted vocations are numbers 5,6,7 and 8. it means thatif you dont want promotions to have same reg as normal vocs
local t = {
[1] = {nr = 5, hp = 1, mp = 2}, -- MS
[2] = {nr = 6, hp = 5, mp = 4}, -- ED
[3] = {nr = 7, hp = 2, mp = 5}, -- RP
[4] = {nr = 8, hp = 3, mp = 6}, -- EK
}
This effs me up.Code:local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) regenCondition:setTicks(-1) regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000) regenCondition:setParameter(CONDITION_PARAM_MANATICKS, 2000) function onLogin(player) regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, math.ceil(player:getMaxHealth() * 0.02)) regenCondition:setParameter(CONDITION_PARAM_MANAGAIN, math.ceil(player:getMaxMana() * 0.02)) player:addCondition(regenCondition) return true end
I haven't really got you. Parameters are global.This effs me up.
How does regenCondition know to find the rest of it's parameter's inside the login function? Dx
This works just fine. The rest of you are confusing the hell out of me lol. But thanks for the help everybodyCode:local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) regenCondition:setTicks(-1) regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000) regenCondition:setParameter(CONDITION_PARAM_MANATICKS, 2000) function onLogin(player) regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, math.ceil(player:getMaxHealth() * 0.02)) regenCondition:setParameter(CONDITION_PARAM_MANAGAIN, math.ceil(player:getMaxMana() * 0.02)) player:addCondition(regenCondition) return true endg