Postado Outubro 5, 2022 2 anos .Qual servidor ou website você utiliza como base? NTO Hard Qual o motivo deste tópico? Bom, ainda estou na saga de arrumar o erro das spells do servidor (já arrumei MUUUUITAS com base no que vocês vão me ensinando, por exemplo, graças ao @Wakon consegui arrumar todos os erros do luaDoPlayerSendChannelMessage do meu servidor, agora estou enfrentando outros) O erro dessa vez é algo que realmente não sei o que a distro espera que eu altere, vou deixar aqui o erro que está aparecendo e o script da spell. Eu acredito que o da Sakura está envolvido a "O player está usando a spell porém não está targetando ninguém", não sei se é isso, porém, mesmo se for não sei como eu poderia resolver O do nidaime eu não faço a menor ideia do que pode ser Citar [Error - Spell Interface] In a timer event called from: data/spells/scripts/personagem/sakura/2.lua:onCastSpell Description: (LuaInterface::luaGetThingPosition) Thing not found [Error - Spell Interface] In a timer event called from: data/spells/scripts/personagem/sakura/2.lua:onCastSpell Description: data/spells/scripts/personagem/sakura/2.lua:19: attempt to index a boolean value stack traceback: data/spells/scripts/personagem/sakura/2.lua:19: in function <data/spells/scripts/personagem/sakura/2.lua:17> ------------------------------------------------------ [Error - Spell Interface] data/spells/scripts/personagem/nidaime/8suiton teppodama8.lua:onCastSpell Description: (LuaInterface::luaAddEvent) Callback parameter should be a function Você tem o código disponível? Se tiver publique-o aqui: Sakura 2.lua Spoiler local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 15) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.0, -400, -2.0, -600) arr1 = { {3} } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local function onCastSpell1(cid, var) local pos = getCreaturePosition(cid) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 501) return doCombat(cid, combat1, var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, cid, var) addEvent(onCastSpell1, 300, cid, var) addEvent(onCastSpell1, 500, cid, var) return TRUE end Nidaime 8.lua Spoiler local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -12.0, -1600, -12.0, -1800) arr1 = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end function onCastSpell(cid, var) local waittime = 3 -- Tempo de exhaustion local storage = 8233 if exhaustion.check(cid, storage) then doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. exhaustion.get(cid, storage) .. " segundos para usar o jutsu novamente.", TALKTYPE_CHANNEL_O, CHANNEL_SPELL) return false end local position1 = {x=getCreaturePosition(cid).x+2, y=getCreaturePosition(cid).y+2, z=getCreaturePosition(cid).z} local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 300, parameters) addEvent(onCastSpell2, 200, parameters) doSendMagicEffect(position1, 579) exhaustion.set(cid, storage, waittime) return TRUE end Obrigado pela atenção
Postado Outubro 6, 2022 2 anos Solução @katumblo, o da sakura provavelmente está dando erro quando o alvo morre antes de terminar os hits, testa assim: Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 15) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.0, -400, -2.0, -600) arr1 = { {3} } local area1 = createCombatArea(arr1) setCombatArea(combat, area1) local function onCastSpell1(cid, var) if (not isCreature(variantToNumber(var))) then return true end local targetPosition = getCreaturePosition(variantToNumber(var)) local position = {x = targetPosition.x, y = targetPosition.y, z = targetPosition.z} doSendMagicEffect(position, 501) return doCombat(cid, combat, var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, cid, var) addEvent(onCastSpell1, 300, cid, var) addEvent(onCastSpell1, 500, cid, var) return true end O segundo erro acho que é nessa parte aqui: addEvent(onCastSpell2, 200, parameters) Está iniciando um evento chamando uma função que não existe(onCastSpell2), tenta remover ou trocar para onCastSpell1 para ver qual fica do jeito que você quer. ➥ Regras | Seções OTServ | Seções BOT
Postado Outubro 6, 2022 2 anos Autor 14 horas atrás, Wakon disse: @katumblo, o da sakura provavelmente está dando erro quando o alvo morre antes de terminar os hits, testa assim: Mostrar conteúdo oculto local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 15) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.0, -400, -2.0, -600) arr1 = { {3} } local area1 = createCombatArea(arr1) setCombatArea(combat, area1) local function onCastSpell1(cid, var) if (not isCreature(variantToNumber(var))) then return true end local targetPosition = getCreaturePosition(variantToNumber(var)) local position = {x = targetPosition.x, y = targetPosition.y, z = targetPosition.z} doSendMagicEffect(position, 501) return doCombat(cid, combat, var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, cid, var) addEvent(onCastSpell1, 300, cid, var) addEvent(onCastSpell1, 500, cid, var) return true end O segundo erro acho que é nessa parte aqui: addEvent(onCastSpell2, 200, parameters) Está iniciando um evento chamando uma função que não existe(onCastSpell2), tenta remover ou trocar para onCastSpell1 para ver qual fica do jeito que você quer. Perfeito po! Funcionou tudo certinho, muuuuuuitissimo obrigado
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.