Ir para conteúdo
  • Cadastre-se

Normal Problema com função getPlayerMagLevel(cid)


Posts Recomendados

Bom dia, estou criando um OT a partir de uma database bem limpa. 

 

Ao começar a usar scripts para a criação de spells, ja tive um problema com essa spell:

 

Spoiler

local cura = getPlayerMagLevel(cid)
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setHealingFormula(combat, COMBAT_FORMULA_DAMAGE, cura, 0, cura, 0)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

 

O erro que aparece na distro é esse: 

 

Citar

[Error - Spell Interface]

data/spells/scripts/healing/light healing.lua

Description:

<luaGetPlayerMagLevel> Player not found

 

Imaginei que a causa do erro fosse a ausencia da função no 050 - functions.lua, entretanto, ao substituir o arquivo pelo mesmo, só q de uma datapack que eu ja tinha usado a função getPlayerMagLevel sem problemas, o erro persistiu.

 

Conto com a ajuda de vocês

 

 

 

Edit: Tentei mudar a função getPlayerMagLevel por getPlayerlevel, e o erro na distro foi:

Citar

[Error - Spell Interface]

data/spells/scripts/healing/light healing.lua

Description:

<internalGetPlayerInfo> Player not found when requested info #3

 

Editado por Hoad (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Vamos ler a descrição do erro e tentar entender oque ela significa:
 

Description:

<luaGetPlayerMagLevel> Player not found


ao usar a função getPlayerMagLevel ele não encontrou o player que vc tá tentando fazer a checagem. Ok, mas por que isso ocorre?
Bom, você colocou lá em cima:

local cura = getPlayerMagLevel(cid)

Mas oque é esse cid aí? De onde ele vem?

Parece que achamos o problema... vc tá tentando puxar o ml de algo que não está definido ainda.
"Mas Lobo, cid é o player que executa a spell, certo?"
SIM, mas só dentro do escopo da spell.


Acompanhe:

 

Spoiler

-- local cura = getPlayerMagLevel(cid) -- isso daqui não existe.
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setHealingFormula(combat, COMBAT_FORMULA_DAMAGE, cura, 0, cura, 0)


--- escopo da spell
function onCastSpell(cid, var) -- a partir daqui vc pode usar o cid pois ele é um dos parametros
    return doCombat(cid, combat, var)
 --- aqui vc não pode mais usar o cid
end

 

Pra você fazer uma spell que recupera dependendo do ml vc precisa fazer um callback nessa spell.. segue esse tutorial aqui

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Obrigado por responder.

Então, depois de ler e pesquisar mais um pouco sobre, refiz a spell e assim ficou:

 

Citar

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

function onGetFormulaValues(cid, level, maglevel)
    min = (level * 1 + maglevel * 1)
    max = (level * 1 + maglevel * 1) + 10
return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, “onGetFormulaValues”)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

 

 

E agora foi certinho <3<3 

Obrigado mais uma vez NW C:

 

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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por 001rafa
      Galera como faz para poder criar um slot a mais no otcliente para poder equipar com itens por exemplo mais um ring e mais um colar?
      sei que tem q modificar no source do cliente e no distro alguem poderia me ajudar com um tutorial?

      grato pela atenção.

      up
    • Por M Cronos
      Boa Noite amigos, eu estava usando o Object builder e o item editor para adicionar uns sprites no meu servidor para usar com um script, este aqui >>> 
       que o @Comedinha postou para ajudar um outro membro.
      Bom a questão é que o script parece estar funcionando,por que não dá nenhum erro, mas o item também não é usado. bom eu fucei bastante e ainda  não consegui resultado então eu pensei que talvez eu tivesse que setar o item como usável no OB ou no IE, pois me lembro de ter visto isso em algum lugar, mas não consigo achar onde eu faço isso. alguém pode me ajudar? se possível. obrigado.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo