Ir para conteúdo

luishg

Campones
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre luishg

Informações

  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    Programador

luishg's Achievements

  1. Bom, na distro OTServ 0.6.3 não há a pasta data/lib. Eu já havia tentado colocar na pasta data/spells/lib, que por lógica deveria fazer com que fosse aberta antes dos scripts, mas o erro continua a acontecer. Baixei o TFS, e nele há a pasta data/lib, colocando ali funciona 100%. Embora não tenha achado solução para a distro OTServ 0.6.3, pode fechar o tópico, pois passarei a utilizar o TFS mesmo e nele está funcionando de acordo com o que o Jhon falou. Obg, Luís.
  2. O server tá bom, mas cade as sources? Sem source fica inviavel de utilizar num ot de verdade ;/
  3. Informações Gerais: Server: OTServ 0.6.3 Versão: 8.60 Erro: "attempt to call global 'drainSpell'(a nil value)" Introdução: Bom eu sou programador C++ e C#, iniciei há pouco tempo com LUA, então estou tendo alguns probleminhas. Eu desenvolvi uma Spell que funciona perfeitamente. O Código está abaixo: spellCompleta.lua -- Arquivo spells/scripts/spellCompleta.lua - funcionando - OK. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onCastSpell(cid, var) if getPlayerStorageValue(cid, 11000) == 1 then stopSpell(cid) end addEvent(startSpell, 3000, cid) setPlayerStorageValue(cid, 11000, 1) drainSpell(cid) return doCombat(cid, combat, var) end function startSpell(cid) doSendMagicEffect(getCreaturePosition(cid), 2) doCreatureChangeOutfit(cid, {lookType = 28}) end function stopSpell(cid) setPlayerStorageValue(cid, 11000, 0) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureChangeOutfit(cid, {lookType = 29}) end function drainSpell(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, 11000) == 1 and getPlayerMana(cid) > 0 then doPlayerAddMana(cid, -1) addEvent(drainSpell, 3000, cid) elseif getPlayerMana(cid) == 0 then doSendMagicEffect(getCreaturePosition(cid), 2) stopSpell(cid) doPlayerSendCancel(cid, "Spell has been interrupted. You're out of mana.") end end end Situação: Eu pretendo desenvolver a Spell1, Spell2, Spell3 e assim por diante, e todas elas são no mesmo modelo, pois todas elas precisam ter o mesmo: startSpell, StopSpell e drainSpell. Então por lógica, criei um Script separado para deixar tais funções, ele se chama standardSpell. Neste exemplo eu removo a function "drainSpell" do arquivo "spell1.lua", e coloco ela somente no arquivo standardSpell. spell1.lua -- Arquivo spells/scripts/spell1.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onCastSpell(cid, var) if getPlayerStorageValue(cid, 11000) == 1 then stopSpell(cid) end addEvent(startSpell, 3000, cid) setPlayerStorageValue(cid, 11000, 1) drainSpell(cid) return doCombat(cid, combat, var) end function startSpell(cid) doSendMagicEffect(getCreaturePosition(cid), 2) doCreatureChangeOutfit(cid, {lookType = 28}) end function stopSpell(cid) setPlayerStorageValue(cid, 11000, 0) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureChangeOutfit(cid, {lookType = 29}) end standardSpell.lua -- Arquivo spells/scripts/standardSpell.lua function drainSpell(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, 11000) == 1 and getPlayerMana(cid) > 0 then doPlayerAddMana(cid, -1) addEvent(drainSpell, 3000, cid) elseif getPlayerMana(cid) == 0 then doSendMagicEffect(getCreaturePosition(cid), 2) stopSpell(cid) doPlayerSendCancel(cid, "Spell has been interrupted. You're out of mana.") end end end Ao remover o drainSpell do arquivo "spell1.lua" e adicioná-lo no "standardSpell.lua" eu passo a receber o seguinte erro: "attempt to call global 'drainSpell'(a nil value)". Conclusão: Gostaria de saber o porquê deste erro e como fazer para criar e utilizar funções "genéricas", que serão chamados/utilizadas por diversos scripts. Obs: O código está um pouco menor e simplificado por Spell1, Spell2 para ser mais prático e objetivo. Obs2: Coloquei em anexo o código com a spell normal funcionando, e o código com ela dividida em "spell1.lua" e "standardSpell.lua". Obg e att, Luís.
  4. Parece ser bem interessante, mas poste uma SS do que aparece para o player.
  5. Aqui acontece o seguinte erro; LuaScriptInterface::luaAddOutfitCondition(). This function can only be used while loading the script.
  6. pra quem tinha dúvidas da estabilidade aqui já ficou 36horas de uptiem SEM CAIR. "defeitos" que achei é a /ban que foi removida, não tem /clean (realmente faz falta) e só uasheuas;P mas /ban de acc E char e /clean são comandos mt importantes, queria colocar aqui mas bom trabalho
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...