Ir para conteúdo

Magia com dois efeitos saindo no mesmo lugar em tempos diferentes

Featured Replies

Postado

Bom dia a todos, eu criei uma spell para monstro que no momento que o spell é ativado, solta um efeito em área que não causa dano e 2 segundos depois, solta outro efeito e este efeito causa dano. Porém estou com um problema, se o monstro usa o spell (aparece o primeiro efeito) e o monstro anda, o segundo efeito sai em outro lugar. Gostaria de fazer o segundo efeito, sair no mesmo lugar do primeiro efeito independentemente do monstro andar ou não. (GIF no final do tópico)

 

TFS 1.3

 

Segue spell:

Spoiler

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, 5)
setCombatArea(combat0_Brush,createCombatArea({{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1}}))


-- Areas/Combat for 2000ms
local combat20_Brush_2 = createCombatObject()
setCombatParam(combat20_Brush_2, COMBAT_PARAM_EFFECT, 26)
setCombatParam(combat20_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat20_Brush_2,createCombatArea({{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1}}))
function getDmg_Brush_2(cid, level, maglevel)
    return (50)*-1,(150)*-1 
end
setCombatCallback(combat20_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                i = i + 2
            end        
        end
    end
end

function onCastSpell(cid, var)
    local startPos = getCreaturePosition(cid)
    RunPart(combat0_Brush,cid,var)
    addEvent(RunPart,2000,combat20_Brush_2,cid,var)
    return true
end

 

Outro problema que estou tendo com a magia é o erro que aparece na distro:

 

Spoiler

Lua Script Error: [Spell Interface]
data/spells/scripts/monster/dragon_breath.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). Argument #4 is unsafe
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/monster/dragon_breath.lua:53: in function <data/spells/scripts/monster/dragon_breath.lua:50>

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo