• 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 area spell instead of a itself spell

fyalhed

Member
Joined
Nov 18, 2017
Messages
156
Reaction score
20
I'm trying to make this spell works on area instead of work in the player who cast

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3 * 1000) -- 1 * 60 * 1000
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 10)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
doCombat(cid, combat, var)
end


How to?
 
Solution
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 10)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)

function onTileCombat(cid, position)
    pid = getTopCreature(position).uid
    if isPlayer(pid) then
        doAddCondition(pid, condition)
        if pid ~= cid then
            doCreatureSay(pid, "Buffed!"...
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 10)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)

function onTileCombat(cid, position)
    pid = getTopCreature(position).uid
    if isPlayer(pid) then
        doAddCondition(pid, condition)
        if pid ~= cid then
            doCreatureSay(pid, "Buffed!", TALKTYPE_MONSTER, false)
        end
    end
    return true
end

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTileCombat")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
Last edited:
Solution
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 10)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)

function onTileCombat(cid, position)
    pid = getTopCreature(position).uid
    if isPlayer(pid) then
        doAddCondition(pid, buff)
        if pid ~= cid then
            doCreatureSay(pid, "Buffed!", TALKTYPE_MONSTER, false)
        end
    end
    return true
end

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTileCombat")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

The players on area are saying BUFFED

But it is not adding any buff

Like on this local add:
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 3)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
The players on area are saying BUFFED

But it is not adding any buff

Like on this local add:
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 3)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

My mistake, line 15 change buff to condition
 
Back
Top