Ir para conteúdo
  • 0

Magia com dois efeitos saindo no mesmo lugar em tempos diferentes


Pergunta

TFS 1.3

 

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. (Imagens no final do tópico)

 

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>

 

(Imagem 1) - Primeiro efeito sendo lançado imediatamente quando o monstro ataca

1152933606_1efeito.thumb.png.da7442737e583c5391ddbc6ed8903542.png

(Imagem 2) - O monstro andou e o segundo efeito saiu em outra posição.

2093252544_2efeito.thumb.png.9774518d40da238befcaf618886874de.png

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...