Ir para conteúdo
  • Cadastre-se

Derivado erro ao passar com o pokemon em cima do piso premium


Posts Recomendados

pessoal estou com um script bom, funciona 100% mais quando o pokemon passa em cima do piso aparece esse erro:

 

Citar

[02/08/2016 22:36:46] [Error - MoveEvents Interface] 
[02/08/2016 22:36:46] data/movements/scripts//pisopremium/pisopremium3.lua:onStepIn
[02/08/2016 22:36:46] Description: 
[02/08/2016 22:36:46] data/movements/scripts//pisopremium/pisopremium3.lua:3: attempt to compare number with boolean
[02/08/2016 22:36:46] stack traceback:
[02/08/2016 22:36:46]     data/movements/scripts//pisopremium/pisopremium3.lua:3: in function <data/movements/scripts//pisopremium/pisopremium3.lua:1>


o script que tenho é esse:

Citar


function onStepIn(cid, item, position, fromPosition)
    
        if getPlayerPremiumDays(cid) >= 1 then
        doSendMagicEffect(getThingPos(cid), 12)
        doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !")
     
     else
        
        doTeleportThing(cid, fromPosition, true)
        doSendMagicEffect(getThingPos(cid), 2)
        doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.")
    
    end
        
            return true
        
    end

 

 

Link para o post
Compartilhar em outros sites
function onStepIn(cid, item, position, fromPosition)
if not isPlayer(cid) then return true end    
        if getPlayerPremiumDays(cid) >= 1 then
        doSendMagicEffect(getThingPos(cid), 12)
        doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !")
     else
        doTeleportThing(cid, fromPosition, true)
        doSendMagicEffect(getThingPos(cid), 2)
        doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.")
    end      
return true  
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
Em 03/08/2016 ás 17:04, Vodkart disse:

function onStepIn(cid, item, position, fromPosition)
if not isPlayer(cid) then return true end    
        if getPlayerPremiumDays(cid) >= 1 then
        doSendMagicEffect(getThingPos(cid), 12)
        doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !")
     else
        doTeleportThing(cid, fromPosition, true)
        doSendMagicEffect(getThingPos(cid), 2)
        doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.")
    end      
return true  
end

 

 

Vodkart , tem como me dar uma explicação? Sou iniciante em lua e esses return true e return false ainda me confundem um pouco...

 

Vi que a solução foi fazer uma checagem se o que for passar pelo piso é um Player ou não, até ai ok, só não entendo como funciona o uso de return true ou false:

 

  se  NÃO for um Player  faça  return true  fim 

 

 o que esse return true faz e como exatamente ele faz/funciona? O que aconteceria se trocasse por return false? Assim: 

if not isPlayer(cid) then return false end

 

 

 

 

 

 

 

 

Link para o post
Compartilhar em outros sites
4 hours ago, samlecter said:

 

Vodkart , tem como me dar uma explicação? Sou iniciante em lua e esses return true e return false ainda me confundem um pouco...

 

Vi que a solução foi fazer uma checagem se o que for passar pelo piso é um Player ou não, até ai ok, só não entendo como funciona o uso de return true ou false:

 

  se  NÃO for um Player  faça  return true  fim 

 

 o que esse return true faz e como exatamente ele faz/funciona? O que aconteceria se trocasse por return false? Assim: 


if not isPlayer(cid) then return false end

 

Então brother, não sou ele mas acho que posso te ajudar, apesar de ser iniciante ;p
Toda função exerce uma série de comandos qnd é chamada. Junto com isso, ela retorna um valor. Em C++ nós dizemos se o retorno vai ser um número inteiro, um quebrado, um quebrado com vários números após virgula, uma string, e uma variável (desse último não tenho ctz). Isso tmb vale pro que as variáveis vão alocar em C++. Já em lua nós n precisamos declarar o tipo da função antes de chamá-las, ent tu pode por o que quiser dps do return sem nenhum problema, apesar do mais comum ser um booleano. Na maioria das funções não vai mudar muito o  return, mas em algumas como onKill (creatureevent). se tu por return false, o target não vai morrer, só vai zerar a vida e vai poder recuperar com qlqr magia de regeneração. Se for uma onLogout com return false o player não vai conseguir deslogar, mas se for uma onLogin não muda nd heauehau.
Pra saber o que cada booleano faz em cada retorno tu vai ter que estudar as funções nas sources ou lib

Editado por Gabriel Netto (veja o histórico de edições)

De onde eu venho se dizia, que o chorar não é do homem, e o homem o que sente guarda bem no coração...
 

Link para o post
Compartilhar em outros sites
20 horas atrás, Gabriel Netto disse:

Então brother, não sou ele mas acho que posso te ajudar, apesar de ser iniciante ;p
Toda função exerce uma série de comandos qnd é chamada. Junto com isso, ela retorna um valor. Em C++ nós dizemos se o retorno vai ser um número inteiro, um quebrado, um quebrado com vários números após virgula, uma string, e uma variável (desse último não tenho ctz). Isso tmb vale pro que as variáveis vão alocar em C++. Já em lua nós n precisamos declarar o tipo da função antes de chamá-las, ent tu pode por o que quiser dps do return sem nenhum problema, apesar do mais comum ser um booleano. Na maioria das funções não vai mudar muito o  return, mas em algumas como onKill (creatureevent). se tu por return false, o target não vai morrer, só vai zerar a vida e vai poder recuperar com qlqr magia de regeneração. Se for uma onLogout com return false o player não vai conseguir deslogar, mas se for uma onLogin não muda nd heauehau.
Pra saber o que cada booleano faz em cada retorno tu vai ter que estudar as funções nas sources ou lib

Você fez uma explica +- ashahs

 

Tipo, quando é creatureevent o return true/false fazem bastante diferença, por exemplo, se por return false ele cancela o evento e ele não ocorre, caso for em uma function por exempl

function ehSummon(cid)
    if isMonster(cid) and not getCreatureMaster(cid) then
        return true
    end
    return false
end

Essa função é para verificar se é um summon, se for summon, retorna verdadeiro se não retorna false

Então, se eu por assim:

print(tostring(ehSummon(cid))) ele vai printar true ou false, dependendo do cid

Ou se eu por assim:

if ehSummon(cid) then
    executeBlock(...)
end

Ele vai retornar verdadeira e executar o bloco dentro dele

 

 

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites
8 hours ago, Drazyn1291 said:

Você fez uma explica +- ashahs

 

Tipo, quando é creatureevent o return true/false fazem bastante diferença, por exemplo, se por return false ele cancela o evento e ele não ocorre, caso for em uma function por exempl

function ehSummon(cid)
    if isMonster(cid) and not getCreatureMaster(cid) then
        return true
    end
    return false
end

Essa função é para verificar se é um summon, se for summon, retorna verdadeiro se não retorna false

Então, se eu por assim:

print(tostring(ehSummon(cid))) ele vai printar true ou false, dependendo do cid

Ou se eu por assim:

if ehSummon(cid) then
    executeBlock(...)
end

Ele vai retornar verdadeira e executar o bloco dentro dele

 

 

Pode crer, tava com sono, falei merdinha no "não importar muito". É bom se lembrar também que dá para por funções em retornos tmb, como um playerSendCancel(cid, string) em checagens.
Mas, na minha opinião, retorno em scripts de otserv fica meio ambíguo, já que muitas vezes tu não tem que pôr "manualmente", digamos assim.

Editado por Gabriel Netto (veja o histórico de edições)

De onde eu venho se dizia, que o chorar não é do homem, e o homem o que sente guarda bem no coração...
 

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 LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo