Ir para conteúdo

Featured Replies

Postado

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

 

 

  • Respostas 7
  • Visualizações 786
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerPremiumDays(cid) >= 1 then doSendMagicEffect(getThingPos(cid), 12)

  • Gabriel Netto
    Gabriel Netto

    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 s

  • 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 e

Postado
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

 

Postado
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

 

 

 

 

 

 

 

 

Postado
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)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo