Postado Setembro 3, 2020 4 anos Autor Em 03/09/2020 em 22:52, Thony D. Serv disse: Spell~~ Testa Bem Paralizar O Monstro Eu Ja Não Sei Como Porem Eu Consegui Deixar A Magia Paralizando O Player Até Soltar A Outra Magia De Fogo Mostrar conteúdo oculto Mostrar conteúdo oculto -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (0)*-1,(0)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (10)*-1,(20)*-1 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- =============== 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 = Creature(cid):getDirection() local startDir = Creature(cid):getDirection() RunPart(combat0_Brush,cid.uid,var) addEvent(RunPart,900,combat9_Brush_2,cid.uid,var) return true end Paralizou o alvo e o erro que estava dando na distro foi resolvido. Será que não da pra por para paralyzar o monstro que estar mandando spell com alguma função? O exura por exemplo, tem essa função: Mostrar conteúdo oculto function onCastSpell(cid, var) local parameters = { cid = cid, var = var} Se acrescentar essa função no script pra paralizar o monstro que está usando a magia não da certo?
Postado Setembro 3, 2020 4 anos Mostrar conteúdo oculto -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (0)*-1,(0)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (10)*-1,(20)*-1 -- ALTERAR DANO AQUI NO MOMENTO ESTA VARIANDO DE 10 A 20 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- =============== 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 doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doCreatureSetNoMove(cid,true) 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 = Creature(cid):getDirection() local startDir = Creature(cid):getDirection() RunPart(combat0_Brush,cid.uid,var) addEvent(doCreatureSetNoMove, tempo*1000, cid.uid,false) addEvent(RunPart,900,combat9_Brush_2,cid.uid,var) return true end Editado Setembro 3, 2020 4 anos por Thony D. Serv (veja o histórico de edições)
Postado Setembro 3, 2020 4 anos Autor Em 03/09/2020 em 23:14, Thony D. Serv disse: -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (0)*-1,(0)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (10)*-1,(20)*-1 -- ALTERAR DANO AQUI NO MOMENTO ESTA VARIANDO DE 10 A 20 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- =============== 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 doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doCreatureSetNoMove(cid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doCreatureSetNoMove(cid,true) 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 = Creature(cid):getDirection() local startDir = Creature(cid):getDirection() RunPart(combat0_Brush,cid.uid,var) addEvent(doCreatureSetNoMove, tempo*1000, cid.uid,false) addEvent(RunPart,900,combat9_Brush_2,cid.uid,var) return true end Só saiu o primeiro efeito e deu esse erro na distro: Mostrar conteúdo oculto Lua Script Error: [Spell Interface] data/spells/scripts/monster/dragon_breath.lua:onCastSpell data/spells/scripts/monster/dragon_breath.lua:63: attempt to perform arithmetic on global 'tempo' (a nil value) stack traceback: [C]: in function '__mul' data/spells/scripts/monster/dragon_breath.lua:63: in function <data/spells/scripts/monster/dragon_breath.lua:59> Ai eu mudei tempo para time e continou o mesmo erro
Postado Setembro 3, 2020 4 anos Mostrar conteúdo oculto -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (0)*-1,(0)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (10)*-1,(20)*-1 -- ALTERAR DANO AQUI NO MOMENTO ESTA VARIANDO DE 10 A 20 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- =============== 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 doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doCreatureSetNoMove(cid.uid,true) 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 = Creature(cid):getDirection() local startDir = Creature(cid):getDirection() RunPart(combat0_Brush,cid.uid,var) addEvent(doCreatureSetNoMove(cid.uid,false) addEvent(RunPart,900,combat9_Brush_2,cid.uid,var) return true end Editado Setembro 3, 2020 4 anos por Thony D. Serv (veja o histórico de edições)
Postado Setembro 3, 2020 4 anos Autor Em 03/09/2020 em 23:24, Thony D. Serv disse: -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (0)*-1,(0)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (10)*-1,(20)*-1 -- ALTERAR DANO AQUI NO MOMENTO ESTA VARIANDO DE 10 A 20 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- =============== 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 doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doCreatureSetNoMove(cid.uid,true) doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doCreatureSetNoMove(cid.uid,true) 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 = Creature(cid):getDirection() local startDir = Creature(cid):getDirection() RunPart(combat0_Brush,cid.uid,var) addEvent(doCreatureSetNoMove(cid.uid,false) addEvent(RunPart,900,combat9_Brush_2,cid.uid,var) return true end Deu esse erro: Mostrar conteúdo oculto Lua Script Error: [Spell Interface] data/spells/scripts/monster/dragon_breath.lua:onCastSpell data/spells/scripts/monster/dragon_breath.lua:63: attempt to call global 'doCreatureSetNoMove' (a nil value) stack traceback: [C]: in function 'doCreatureSetNoMove' data/spells/scripts/monster/dragon_breath.lua:63: in function <data/spells/scripts/monster/dragon_breath.lua:59> O monstro spit Nettle fica imóvel. e a tag que deixa ele imóvel no xml é speed="0">. Será que tem como fazer o addevent mudar a velocidade do monstro que usar a magia para 0?
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.