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

Spell Storage Target - Help [TFS 0.4]

secondlife

Member
Joined
Aug 1, 2009
Messages
298
Reaction score
23
Hi people,
I'm trying to create a spell AREA that adds storages in TARGETS per 5 sec, its possible?
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)

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

local target = getCreatureTarget(cid)
        if(getCreatureTarget(cid))~= 0 then
        setPlayerStorageValue(target, 8888, 1)
        addEvent(setPlayerStorageValue, 5 * 1000, target,  8888, 0)
    end

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
Im trying to do this for a long time, but no success.
Anyone can help me?

Thank you guys!
 
Solution
It was because i'm looking at the tfs-old-svn it was //setCombatCallBack(combat, key, function_name) and it register as setCombatCallback.

[1:1:10.619] (luaSetCombatCallBack) 0 is not a valid callback key

That's weird, you can try

Code:
setCombatCallback(combat, 4, "onTargetCombat")

Check your enums.h or combat.cpp to see if you have the callback.
Put it in the function

Lua:
function onCastSpell(cid, var)
    local target = getCreatureTarget(cid)
    setPlayerStorageValue(target, 8888, 1)
    return doCombat(cid, combat, var), addEvent(setPlayerStorageValue, 5 * 1000, target,  8888, 0)
end
 
Hi @psychonaut , thank you for the reply.
Im tried:
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)

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

function onCastSpell(cid, var)
    local target = getCreatureTarget(cid)
    setPlayerStorageValue(target, 8888, 1)
    return doCombat(cid, combat, var), addEvent(setPlayerStorageValue, 5 * 1000, target,  8888, 0)
end

But no success =(

I'm trying to make this spell sets storage in the players in area (AREA_CIRCLE3X3), understand?
The
Code:
local target = getCreatureTarget(cid)
is the correct function for this?

Thank you!
 
Sorry, i misread it, if it's an area spell maybe you can try setCombatCallBack(combat, key, function) ? And set the storage in the specified function
 
Last edited:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onTargetCombat(cid, target)
    setPlayerStorageValue(target, 8888, 1)
    addEvent(setPlayerStorageValue, 5 * 1000, target,  8888, 0)
end

setCombatCallBack(combat, CALLBACKPARAM_TARGETCREATURECALLBACK, "onTargetCombat")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
@psychonaut,
returns a error:
Code:
data/spells/scripts/support/spellnew.lua:14: attempt to call global 'setCombatCallBack' (a nil value)
[0:45:46.501] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/support/spellnew.lua)
 
@psychonaut
now returns:
Code:
[1:1:10.618] Combat::setCallback - Unknown callback type: 0

[1:1:10.619] [Error - Spell Interface]
[1:1:10.619] data/spells/scripts/support/spellnew.lua
[1:1:10.619] Description:
[1:1:10.619] (luaSetCombatCallBack) 0 is not a valid callback key.
 
It was because i'm looking at the tfs-old-svn it was //setCombatCallBack(combat, key, function_name) and it register as setCombatCallback.

[1:1:10.619] (luaSetCombatCallBack) 0 is not a valid callback key

That's weird, you can try

Code:
setCombatCallback(combat, 4, "onTargetCombat")

Check your enums.h or combat.cpp to see if you have the callback.
 
Solution
Back
Top