Ir para conteúdo
  • 0

[Erro Na Magia]


angelanascimento

Pergunta

Quando o player solta a magia ela funciona tudo,

mais quando ele desloga aparese isu no distro

 

 

[05/08/2012 11:32:52] Lua Script Error: [spell Interface]

[05/08/2012 11:32:52] in a timer event called from:

[05/08/2012 11:32:52] data/spells/scripts/vip/hyakka ryouran.lua:onCastSpell

 

[05/08/2012 11:32:52] luaSetPlayerStorageValue(). Player not found

 

[05/08/2012 11:32:54] Lua Script Error: [spell Interface]

[05/08/2012 11:32:54] in a timer event called from:

[05/08/2012 11:32:54] data/spells/scripts/vip/hyakka ryouran.lua:onCastSpell

 

[05/08/2012 11:32:55] luaSetPlayerStorageValue(). Player not found

 

[05/08/2012 11:32:58] Lua Script Error: [spell Interface]

[05/08/2012 11:32:58] in a timer event called from:

[05/08/2012 11:32:58] data/spells/scripts/vip/hyakka ryouran.lua:onCastSpell

Link para o comentário
Compartilhar em outros sites

  • Respostas 34
  • Created
  • Última resposta

Top Posters For This Question

Top Posters For This Question

Posts Recomendados

  • 0

end

local function onCastSpell2(parameters)

doCombat(parameters.cid, combat2, parameters.var)

end

local function onCastSpell3(parameters)

doCombat(parameters.cid, combat3, parameters.var)

end

local function onCastSpell4(parameters)

doCombat(parameters.cid, combat4, parameters.var)

end

local function onCastSpell5(parameters)

doCombat(parameters.cid, combat5, parameters.var)

end

local function onCastSpell6(parameters)

doCombat(parameters.cid, combat6, parameters.var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 500, parameters)

addEvent(onCastSpell2, 1000, parameters)

addEvent(onCastSpell3, 1500, parameters)

addEvent(onCastSpell4, 2000, parameters)

addEvent(onCastSpell5, 2500, parameters)

addEvent(onCastSpell6, 3000, parameters)

 

Sua spell possui isso?

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

Sim posui olha o script

 

 

 

local config =

{

seconds = 10,

storage = 47112120,

msg = "Voc\ê preci\ça aguardar alguns segundos para acumular o esp\írito.",

mana = 600,

semMana = "Voc\ê n\ão t\êm mana suficiente."

}

 

local function useAgain(cid)

setPlayerStorageValue(cid, config.storage, 2)

return TRUE

end

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 54)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.3, -50, -2.3, -50)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 54)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.3, -50, -2.3, -50)

 

local condition2 = createConditionObject(CONDITION_POISON)

setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(condition2, 5, 2000, -500)

setCombatCondition(combat2, condition2)

 

local condition2 = createConditionObject(CONDITION_PARALYZE)

setConditionParam(condition2, CONDITION_PARAM_TICKS, 20000)

--setConditionParam(condition2, CONDITION_PARAM_SPEED, -500)

setConditionFormula(condition2, -0.8, 0, -0.8, 0)

setCombatCondition(combat2, condition2)

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

arr2 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

 

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, parameters.combat2, parameters.var)

end

 

function onCastSpell(cid, var)

if getPlayerStorageValue(cid, config.storage) == 1 then

doPlayerSendCancel(cid, config.msg)

return TRUE

end

if getPlayerStorageValue(cid, config.storage) ~= 1 then

if getPlayerMana(cid) >= config.mana then

doPlayerAddMana(cid, -config.mana)

setPlayerStorageValue(cid, config.storage, 1)

addEvent(useAgain, config.seconds*1000, cid)

local parameters = { cid = cid, var = var, combat2 = combat2 }

addEvent(onCastSpell2, 300, parameters)

return doCombat(cid, combat1, var)

else

doPlayerSendCancel(cid, config.semMana)

end

end

return TRUE

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Vai em creaturescript/script abre login.lua e antes do ultimo end coloca:

 

setPlayerstorageValue(cid, 47112120, 2)

 

 

-------------------Editado

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

Pdc vamos ver se funfa kk

Ficaria asim

 

 

function onLogin(cid)

setPlayerStorageValue(cid, 47112120, 2)

local voc = getPlayerVocation(cid)

if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then

sendGemEffect(cid, gems.storage[voc], gems.interval[voc])

end

return TRUE

setPlayerstorageValue(cid, 47112120, 2)

end

Editado por angelanascimento
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta dos 3 jeitos, um deve funcionar.

 

function onLogin(cid)

setPlayerStorageValue(cid, 47112120, 2)

local voc = getPlayerVocation(cid)

if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then

sendGemEffect(cid, gems.storage[voc], gems.interval[voc])

end

return TRUE

setPlayerstorageValue(cid, 47112120, 2)

end

 

function onLogin(cid)

setPlayerStorageValue(cid, 47112120, 2)

local voc = getPlayerVocation(cid)

if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then

sendGemEffect(cid, gems.storage[voc], gems.interval[voc])

end

setPlayerstorageValue(cid, 47112120, 2)

return TRUE

end

 

function onLogin(cid)

setPlayerStorageValue(cid, 47112120, 2)

local voc = getPlayerVocation(cid)

if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then

sendGemEffect(cid, gems.storage[voc], gems.interval[voc])

setPlayerstorageValue(cid, 47112120, 2)

end

return TRUE

end

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

@Newtonnotwen

 

Parece que o problema não é no logout, e sim na própria spell. Observe que o evento useAgain coloca uma storage de valor 2 no player e acontece dentro de 10 segundos após a magia ser utilizada, e se o player fizer logout nesse período e a ação ser executada, vai dar o erro, pois não haverá player.

 

No seu script, ao fazer login, a storage de valor 2 é colocada no player, mas ainda assim o evento useAgain vai continuar a ser executado, e vai dar o erro do mesmo jeito se o player fizer logout novamente. E uma falha. É só fazer logout e login com o seu script que o player vai poder usar a magia novamente, sem precisar esperar o tempo necessário. (PS: No seu script, tá adicionando a storage 2 vezes com o mesmo valor por ter 2 setPlayerStorageValue iguais)

 

Pra resolver isso, basta adicionar o seguinte abaixo de if getPlayerMana(cid) >= config.mana then:

 

local cond_pz = createConditionObject(CONDITION_INFIGHT)
setConditionParam(cond_pz, CONDITION_PARAM_TICKS, 10 * 1000)
doAddCondition(cid, cond_pz)

 

Acho que resolve. Não garanto, pois não sei mexer direito com Conditions, então fiz uma gambiarra pra ver se funciona.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

N testei ainda mais vo agora tive que sair niver da minha ermã! kk

 

local config =

{

seconds = 10,

storage = 47112120,

msg = "Voc\ê preci\ça aguardar alguns segundos para acumular o esp\írito.",

mana = 2400,

semMana = "Voc\ê n\ão t\êm mana suficiente."

}

 

local function useAgain(cid)

setPlayerStorageValue(cid, config.storage, 2)

return TRUE

end

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)

 

arr1 = {

{0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

arr2 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

 

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

 

local function spell(parameters)

doCombat(parameters.cid, parameters.combat2, parameters.var)

end

 

function onCastSpell(cid, var)

if getPlayerStorageValue(cid, config.storage) == 1 then

doPlayerSendCancel(cid, config.msg)

return TRUE

end

if getPlayerStorageValue(cid, config.storage) ~= 1 then

if getPlayerMana(cid) >= config.mana then

local cond_pz = createConditionObject(CONDITION_INFIGHT)

setConditionParam(cond_pz, CONDITION_PARAM_TICKS, 10 * 1000)

doAddCondition(cid, cond_pz)

doPlayerAddMana(cid, -config.mana)

setPlayerStorageValue(cid, config.storage, 1)

addEvent(useAgain, config.seconds*1000, cid)

local parameters = { cid = cid, var = var, combat2 = combat2 }

addEvent(spell, 500, parameters)

return doCombat(cid, combat1, var)

else

doPlayerSendCancel(cid, config.semMana)

end

end

return TRUE

end

 

deu erro

 

[06/08/2012 13:54:34] data/spells/scripts/vip/housenka.lua:onCastSpell

 

[06/08/2012 13:54:34] luaCreateConditionObject(). This function can only be used while loading the script.

 

[06/08/2012 13:54:34] Lua Script Error: [spell Interface]

[06/08/2012 13:54:34] data/spells/scripts/vip/housenka.lua:onCastSpell

 

[06/08/2012 13:54:35] luaSetConditionParam(). This function can only be used while loading the script.

 

[06/08/2012 13:54:35] Lua Script Error: [spell Interface]

[06/08/2012 13:54:35] data/spells/scripts/vip/housenka.lua:onCastSpell

 

[06/08/2012 13:54:35] luaDoAddCondition(). Condition not found

[06/08/2012 13:54:45] GOD Slayer has logged out.

 

[06/08/2012 13:54:46] Lua Script Error: [spell Interface]

[06/08/2012 13:54:46] in a timer event called from:

[06/08/2012 13:54:46] data/spells/scripts/vip/housenka.lua:onCastSpell

 

[06/08/2012 13:54:46] luaSetPlayerStorageValue(). Player not found

Editado por angelanascimento
Link para o comentário
Compartilhar em outros sites

  • 0

Por favor ponha o arquivo em spoiler.

 

Obs: Aqui funcionou, vou dar uma olhada no erro.

 

------------------------------------------------------------

 

Não sabe botar em spoiler?

 

É simples, siga o exemplo:

 

[spoiler.]ARQUIVO[/spoiler.]

 

-Vermelho: Retire os pontos.

-Roxo: Seu arquivo.

Editado por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.

×
×
  • Criar Novo...