Ir para conteúdo
  • Cadastre-se

(Resolvido)ERROS: luaGetThingPosition E luaAddEvent


Ir para solução Resolvido por Wakon,

Posts Recomendados

.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

Link para o post
Compartilhar em outros sites
  • 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.

Link para o post
Compartilhar em outros sites
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

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96840
    Tópicos
    519577
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo