Postado Setembro 3, 2020 4 anos Bom dia Qual servidor ou website você utiliza como base? TFS 1.3 Qual o motivo deste tópico? Gostaria de uma spell para monstro, onde o monstro usa um efeito em área e não cause dano, após 2 segundos, solta outro efeito na mesma área anterior e este efeito causa dano. Os dois efeitos devem sair no mesmo lugar independentemente do monstro ou o alvo andar. O efeito 1 pode ser o efeito do exori; O efeito 2 pode ser o efeito da GFB; a área pode ser a área do exevo flam hur.
Postado Setembro 3, 2020 4 anos Então Não Entendi Direito Porem Acho Que É Assim (Para Alterar O Dano Eu Deixei Dentro Do Script Uma Explicaçãozinha) Script Spoiler -- 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") -- 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 -- O DANO IRA VARIAR ENTRE 10 A 20 EDITE AQUI CASO QUEIRA ALTERAR 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:getPosition () local startDir = creature:getDirection() RunPart(combat0_Brush,cid,var) addEvent(RunPart,900,combat9_Brush_2,cid,var) return true end Tag No Spells Spoiler <instant name="MAGIA" words="MAGIA" lvl="1" maglv="1" mana="25" exhaustion="1000" prem="0" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="SCRIPT.lua"> Editado Setembro 3, 2020 4 anos por Thony D. Serv (veja o histórico de edições)
Postado Setembro 3, 2020 4 anos Autor 4 minutos atrás, Thony D. Serv disse: Então Não Entendi Direito Porem Acho Que É Assim Script Ocultar conteúdo -- 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") -- Areas/Combat for 800ms local combat8_Brush_2 = createCombatObject() setCombatParam(combat8_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat8_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat8_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 -- O DANO VAI VARIAR ENTRE 10 E 20 TROQUE SE QUISER end setCombatCallback(combat8_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 = getCreaturePosition(cid) local startDir = getCreatureLookDirection(cid) RunPart(combat0_Brush,cid,var) addEvent(RunPart,800,combat8_Brush_2,cid,var) return true end Tag No Spells Ocultar conteúdo <instant name="Default" words="NOME DA MAGIA" lvl="1" maglv="1" mana="25" exhaustion="1000" prem="0" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="NOME DO SCRIPT.lua"> Vou tentar explicar melhor, apesar de que acho que a forma que você fez está de acordo com o que eu queria. Esse spell é para monstro. O monstro ao usar o spell, sai o efeito 1 em area e esse efeito não causa dano no alvo. 2 segundos depois, sai o efeito 2 na mesma área onde o monstro tinha usado o efeito 1, só que desta vez causa dano. Pensa como se o efeito 1 fosse um alerta e o 2 o dano em si. Deu esse erro ai: Spoiler Lua Script Error: [Spell Interface] data/spells/scripts/monster/dragon_breath.lua:onCastSpell data/spells/scripts/monster/dragon_breath.lua:54: attempt to call global 'getCreatureLookDirection' (a nil value) stack traceback: [C]: in function 'getCreatureLookDirection' data/spells/scripts/monster/dragon_breath.lua:54: in function <data/spells/scripts/monster/dragon_breath.lua:52>
Postado Setembro 3, 2020 4 anos Editei A Tag E A Spell Testa Ai Editado Setembro 3, 2020 4 anos por Thony D. Serv (veja o histórico de edições)
Postado Setembro 3, 2020 4 anos Autor 2 minutos atrás, Thony D. Serv disse: Editei A Tag Testa Ai Continuou o mesmo erro: Spoiler Lua Script Error: [Spell Interface] data/spells/scripts/monster/dragon_breath.lua:onCastSpell data/spells/scripts/monster/dragon_breath.lua:54: attempt to call global 'getCreatureLookDirection' (a nil value) stack traceback: [C]: in function 'getCreatureLookDirection' data/spells/scripts/monster/dragon_breath.lua:54: in function <data/spells/scripts/monster/dragon_breath.lua:52>
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.