• 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!

TFS 0.X dynamic values on setConditionParam

dawnking

Member
Joined
Jun 23, 2016
Messages
176
Reaction score
22
How to set dynamic values on setConditionParam?

Code:
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SPEED, math.ceil(speed_points))


function onLogin(cid)
    if isPlayer(cid) then
        -- citizen
        if canPlayerWearOutfitId(cid, 136, 3) or canPlayerWearOutfitId(cid, 128, 3) then
            speed_points = speed_points + 10
        end

I need to create a script that add points and in the and setConditionParam dynamically like in that example /\
 
Last edited:
Solution
I tried:
Code:
local addon_bonus_condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SUBID, 520)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)

function onLogin(cid)
    if isPlayer(cid) then
        local magic_points = 0
        -- citizen
        if canPlayerWearOutfitId(cid, 1, 3) then
            magic_points = magic_points + 1
        end
        -- hunter
        if canPlayerWearOutfitId(cid, 2, 3) then
            magic_points = magic_points + 1
        end
        -- mage
        if canPlayerWearOutfitId(cid, 3, 3) then
            magic_points =...
can you explain more?

I need to put a variable value in setConditionParam
But that way i tried i recive an error on console:
Code:
[18:44:56.999] [Error - CreatureScript Interface] 
[18:44:56.999] data/creaturescripts/scripts/addon_bonus.lua
[18:44:56.999] Description: 
[18:44:56.999] data/creaturescripts/scripts/addon_bonus.lua:4: bad argument #1 to 'ceil' (number expected, got nil)
[18:44:56.999] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/addon_bonus.lua)
 
Use Math.random or math.ceil on a variable inside a function, so everytime the function triggers, the math.random will trigger too for example:

math.random (5) --> (a number from 1 to 5)
math.random (4, 8) --> (a number from 4 to 8)


Lua:
function onLogin(cid)
    if isPlayer(cid) then
        -- citizen
        if canPlayerWearOutfitId(cid, 136, 3) or canPlayerWearOutfitId(cid, 128, 3) then
            speed_points = math.random(0,100) + 10
        end
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SPEED, speed_points)
 
I tried:
Code:
local addon_bonus_condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SUBID, 520)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)

function onLogin(cid)
    if isPlayer(cid) then
        local magic_points = 0
        -- citizen
        if canPlayerWearOutfitId(cid, 1, 3) then
            magic_points = magic_points + 1
        end
        -- hunter
        if canPlayerWearOutfitId(cid, 2, 3) then
            magic_points = magic_points + 1
        end
        -- mage
        if canPlayerWearOutfitId(cid, 3, 3) then
            magic_points = magic_points + 1
        end
        print("ml_points: " .. magic_points)
        magic_points = magic_points / 2
        -- 
        local magic_skills = math.ceil(magic_points)
        print("ml_skills: " .. magic_skills)
        -- 
        doAddCondition(cid, addon_bonus_condition)
    end
    return true
end

the prints works
but the condition is not added, the condition is not working
 
I tried:
Code:
local addon_bonus_condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SUBID, 520)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)

function onLogin(cid)
    if isPlayer(cid) then
        local magic_points = 0
        -- citizen
        if canPlayerWearOutfitId(cid, 1, 3) then
            magic_points = magic_points + 1
        end
        -- hunter
        if canPlayerWearOutfitId(cid, 2, 3) then
            magic_points = magic_points + 1
        end
        -- mage
        if canPlayerWearOutfitId(cid, 3, 3) then
            magic_points = magic_points + 1
        end
        print("ml_points: " .. magic_points)
        magic_points = magic_points / 2
        --
        local magic_skills = math.ceil(magic_points)
        print("ml_skills: " .. magic_skills)
        --
        doAddCondition(cid, addon_bonus_condition)
    end
    return true
end

the prints works
but the condition is not added, the condition is not working
Lua:
local addon_bonus_condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SUBID, 520)
-- setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)

function onLogin(cid)
    if isPlayer(cid) then
        local magic_points = 0
        -- citizen
        if canPlayerWearOutfitId(cid, 1, 3) then
            magic_points = magic_points + 1
        end
        -- hunter
        if canPlayerWearOutfitId(cid, 2, 3) then
            magic_points = magic_points + 1
        end
        -- mage
        if canPlayerWearOutfitId(cid, 3, 3) then
            magic_points = magic_points + 1
        end
        print("ml_points: " .. magic_points)
        magic_points = magic_points / 2
        -- 
        local magic_skills = math.ceil(magic_points)
        print("ml_skills: " .. magic_skills)
        -- 
        setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)
        doAddCondition(cid, addon_bonus_condition)
    end
    return true
end
 
Solution
Lua:
local addon_bonus_condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(addon_bonus_condition, CONDITION_PARAM_SUBID, 520)
-- setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)

function onLogin(cid)
    if isPlayer(cid) then
        local magic_points = 0
        -- citizen
        if canPlayerWearOutfitId(cid, 1, 3) then
            magic_points = magic_points + 1
        end
        -- hunter
        if canPlayerWearOutfitId(cid, 2, 3) then
            magic_points = magic_points + 1
        end
        -- mage
        if canPlayerWearOutfitId(cid, 3, 3) then
            magic_points = magic_points + 1
        end
        print("ml_points: " .. magic_points)
        magic_points = magic_points / 2
        --
        local magic_skills = math.ceil(magic_points)
        print("ml_skills: " .. magic_skills)
        --
        setConditionParam(addon_bonus_condition, CONDITION_PARAM_STAT_MAGICLEVEL, magic_skills)
        doAddCondition(cid, addon_bonus_condition)
    end
    return true
end

That is it! Thank you!!!!!!!
 
Back
Top