Ir para conteúdo

Featured Replies

Postado

Queria saber de vocês como que eu resolvo este problema, se eu usar a spell sem target ela funciona perfeitamente, mas se eu tiver com target ela buga, verifiquem as fotos:

 

Sem Target: a magia sai na minha frente na direção que estou olhando.

5a7991c6ef528_semtarget.thumb.png.f2c6ff6792948c6de57d9e51f39d2584.png

Com Target: o effect da magia sai do monstro

target.thumb.png.9f0a7c7c4024b75e2c4edc459f4f7e20.png

 

Spell:

 

XML:

Spoiler

<instant name="Air Suffocation" words="Air Suffocation" lvl="42" maglv="1" mana="45" exhaustion="3000" prem="0" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="Air/air suffocation.lua">
        <vocation id="5"/>
        <vocation id="6"/>
    </instant>

 

 

Script:

Spoiler

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 300ms
local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat3_Brush,createCombatArea({{1},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat3_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{1},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 100ms
local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat1_Brush,createCombatArea({{1},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                if (startDir == 0) then -- N
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 2) then -- S
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 1) then -- E
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
                else -- W / Something weird happened
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
                end
                i = i + 2
            end        
        end
    end
end

function onCastSpell(cid, var)
    local startPos = getCreaturePosition(cid)
    local startDir = getCreatureLookDirection(cid)
    addEvent(RunPart,400,combat4_Brush,cid,var)
    addEvent(RunPart,300,combat3_Brush,cid,var)
    addEvent(RunPart,200,combat2_Brush,cid,var)
    addEvent(RunPart,100,combat1_Brush,cid,var)
    RunPart(combat0_Brush,cid,var)
    return true
end

 

 

Postado
Spoiler

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 300ms
local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat3_Brush,createCombatArea({{1},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat3_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{1},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 100ms
local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat1_Brush,createCombatArea({{1},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                if (startDir == 0) then -- N
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 2) then -- S
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList,y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 1) then -- E
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList,z=dirEmitPos.z},dirList[1])
                else -- W / Something weird happened
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList,z=dirEmitPos.z},dirList[1])
                end
                i = i + 2
            end        
        end
    end
end

function onCastSpell(cid, var)

pos = getCreaturePosition(cid)

function effectFollow(uid,jump,pos)
    if jump <= 0 then
            return true
        end
                posx = getPosByDir(pos,getDirectionTo(pos,getCreaturePosition(getCreatureTarget(cid))))

                doAreaCombatHealth(cid, 1, posx, 0, -7000, -8400, 79)
            addEvent(effectFollow, 500, uid, jump-1, pos)
    end
    effectFollow(getCreatureTarget(cid),15,pos)
end

    
    
    local startPos = getCreaturePosition(cid)
    local startDir = getCreatureLookDirection(cid)
    addEvent(RunPart,400,combat4_Brush,cid,var)
    addEvent(RunPart,300,combat3_Brush,cid,var)
    addEvent(RunPart,200,combat2_Brush,cid,var)
    addEvent(RunPart,100,combat1_Brush,cid,var)
    RunPart(combat0_Brush,cid,var)
    return true
end

 

Postado
  • Autor
2 minutos atrás, Luan Zero disse:
  Ocultar conteúdo

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 300ms
local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat3_Brush,createCombatArea({{1},
{0},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat3_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{1},
{0},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 100ms
local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat1_Brush,createCombatArea({{1},
{2}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))
function getDmg_Brush(cid, level, maglevel)
    return (220)*-1,(300)*-1 
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                if (startDir == 0) then -- N
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 2) then -- S
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList,y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
                elseif (startDir == 1) then -- E
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList,z=dirEmitPos.z},dirList[1])
                else -- W / Something weird happened
                    doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList,z=dirEmitPos.z},dirList[1])
                end
                i = i + 2
            end        
        end
    end
end

function onCastSpell(cid, var)

pos = getCreaturePosition(cid)

function effectFollow(uid,jump,pos)
    if jump <= 0 then
            return true
        end
                posx = getPosByDir(pos,getDirectionTo(pos,getCreaturePosition(getCreatureTarget(cid))))

                doAreaCombatHealth(cid, 1, posx, 0, -7000, -8400, 79)
            addEvent(effectFollow, 500, uid, jump-1, pos)
    end
    effectFollow(getCreatureTarget(cid),15,pos)
end

    
    
    local startPos = getCreaturePosition(cid)
    local startDir = getCreatureLookDirection(cid)
    addEvent(RunPart,400,combat4_Brush,cid,var)
    addEvent(RunPart,300,combat3_Brush,cid,var)
    addEvent(RunPart,200,combat2_Brush,cid,var)
    addEvent(RunPart,100,combat1_Brush,cid,var)
    RunPart(combat0_Brush,cid,var)
    return true
end

 

console.thumb.png.caf8de228ed840d1e037ad4d4df815fe.png

 

Postado
<instant name="Air Suffocation" words="Air Suffocation" lvl="42" maglv="1" mana="45" exhaustion="3000" prem="0" needlearn="0" direction="1" blockwalls="0" aggressive="1" event="script" value="Air/air suffocation.lua">
    <vocation id="5"/>
    <vocation id="6"/>
</instant>

Você estava usando a opção casterTargetOrDirection no spells.xml ou seja - Conjurar no Target ou na direção, agora que coloquei só direction vai corrigir o problema.

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Postado
  • Autor
18 horas atrás, DboExplorer disse:

<instant name="Air Suffocation" words="Air Suffocation" lvl="42" maglv="1" mana="45" exhaustion="3000" prem="0" needlearn="0" direction="1" blockwalls="0" aggressive="1" event="script" value="Air/air suffocation.lua">
    <vocation id="5"/>
    <vocation id="6"/>
</instant>

Você estava usando a opção casterTargetOrDirection no spells.xml ou seja - Conjurar no Target ou na direção, agora que coloquei só direction vai corrigir o problema.

muito obrigado! +REP

18 horas atrás, DboExplorer disse:

<instant name="Air Suffocation" words="Air Suffocation" lvl="42" maglv="1" mana="45" exhaustion="3000" prem="0" needlearn="0" direction="1" blockwalls="0" aggressive="1" event="script" value="Air/air suffocation.lua">
    <vocation id="5"/>
    <vocation id="6"/>
</instant>

Você estava usando a opção casterTargetOrDirection no spells.xml ou seja - Conjurar no Target ou na direção, agora que coloquei só direction vai corrigir o problema.

Desculpe, ainda ficou com um problema quando eu uso a spell e começo a andar o efect vai pra outra direção

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo