• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

If item in bp, player got x stats / health regen problem

vexler222

Active Member
Joined
Apr 22, 2012
Messages
714
Solutions
15
Reaction score
46
Hi, i tried make item, what give to players who have it in backpack a health and mlvl and it work in 99.5%, cuz i don't understand why healthgain, healing only when globalevent checking script (every 60s), not every 10 ticks like is in script? Or maybe im understand wrong a "healthticks"


Code:
function onThink(interval)
    for _, targetPlayer in ipairs(Game.getPlayers()) do
        if targetPlayer:getItemCount(11260) >= 1 then
            local charm_m = Condition(CONDITION_ATTRIBUTES)
            charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
            charm_m:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 10)
            charm_m:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

            local charm_m2 = Condition(CONDITION_REGENERATION)
            charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
            charm_m2:setParameter(CONDITION_PARAM_HEALTHGAIN, 1500)
            charm_m2:setParameter(CONDITION_PARAM_HEALTHTICKS, 10)
            charm_m2:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
            targetPlayer:addCondition(charm_m)
            targetPlayer:addCondition(charm_m2)
        end
    end
    return true
end
 
Solution
Generally conditions should be outside of function scopes.

Try this.
Lua:
local charm_m = Condition(CONDITION_ATTRIBUTES)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 10)
charm_m:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local charm_m2 = Condition(CONDITION_REGENERATION)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m2:setParameter(CONDITION_PARAM_HEALTHGAIN, 1500)
charm_m2:setParameter(CONDITION_PARAM_HEALTHTICKS, 10) -- this is milliseconds 1000 = once per second
charm_m2:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

function onThink(interval)
    for _, targetPlayer in ipairs(Game.getPlayers()) do
        if targetPlayer:getItemCount(11260) >= 1 then...
Ref



Btw, i can;t edit post so in second charm i has in script charm_m2 dont worry, but it still dont work ;p
 
Generally conditions should be outside of function scopes.

Try this.
Lua:
local charm_m = Condition(CONDITION_ATTRIBUTES)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 10)
charm_m:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local charm_m2 = Condition(CONDITION_REGENERATION)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m2:setParameter(CONDITION_PARAM_HEALTHGAIN, 1500)
charm_m2:setParameter(CONDITION_PARAM_HEALTHTICKS, 10) -- this is milliseconds 1000 = once per second
charm_m2:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

function onThink(interval)
    for _, targetPlayer in ipairs(Game.getPlayers()) do
        if targetPlayer:getItemCount(11260) >= 1 then
            targetPlayer:addCondition(charm_m)
            targetPlayer:addCondition(charm_m2)
        end
    end
    return true
end
 
Solution
Generally conditions should be outside of function scopes.

Try this.
Lua:
local charm_m = Condition(CONDITION_ATTRIBUTES)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 10)
charm_m:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local charm_m2 = Condition(CONDITION_REGENERATION)
charm_m:setParameter(CONDITION_PARAM_TICKS, 60000)
charm_m2:setParameter(CONDITION_PARAM_HEALTHGAIN, 1500)
charm_m2:setParameter(CONDITION_PARAM_HEALTHTICKS, 10) -- this is milliseconds 1000 = once per second
charm_m2:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

function onThink(interval)
    for _, targetPlayer in ipairs(Game.getPlayers()) do
        if targetPlayer:getItemCount(11260) >= 1 then
            targetPlayer:addCondition(charm_m)
            targetPlayer:addCondition(charm_m2)
        end
    end
    return true
end

Thanks! Now it work perfect!
 
Back
Top