Ir para conteúdo

Featured Replies

Postado

Olá, eu gostária de tirar uma dúvida, ultimamente ando mechendo com scripts, gostaria de saber para que serve a função 

return 1, return 0, return false, return true, etc..

Procurei alguns tutoriais mas eles não explicam o porque.

Des de já, grato.

Deixei um script da obsidian knife para quem puder me explicar baseado nele

function onUse(cid, item, frompos, item2, topos)

if item2.itemid == 0 then
return 0
end


random = math.random(1,15)

if getPlayerLevel(cid) >= 8 then

if item2.itemid == 2881 and random == 1 then
doTransformItem(cid,item2.uid,2660)
doPlayerAddItem(cid,5948,1)

elseif item2.itemid == 2881 and random == 2 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 3 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 4 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 5 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 6 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 7 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 8 then
doTransformItem(item2.uid,2882)
doPlayerAddItem(cid,5948,1)

elseif item2.itemid == 2881 and random == 9 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 10 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 11 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 12 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 13 then
doTransformItem(item2.uid,2882)
doPlayerAddItem(cid,5948,1)

elseif item2.itemid == 2881 and random == 14 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)

elseif item2.itemid == 2881 and random == 15 then
doTransformItem(item2.uid,2882)
doSendMagicEffect(topos,3)



end
end
return 1
end

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

  • Respostas 9
  • Visualizações 566
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • em lua que você usa no open tibia não faz muito sentido usar return (com excessão de algumas funções que precisam retornar algo ou nos callbacks) mas em java, por exemplo, tem de maneira bem definida

  • Return é um comando (uma função "disfarçada"). Ele é usado para retornar valores de uma função ou trecho, sempre sendo escrito no fim de um bloco. Em Lua, se você retornar 0, 1 ou qualquer valor, irá

  • Se for retornar boolean é true ou false, não existe return 1 ou TRUE.. é exatamente oque o suicide disse, mas não é uma função disfarçada e sim um comando da própria função.

Postado

Return é um comando (uma função "disfarçada"). Ele é usado para retornar valores de uma função ou trecho, sempre sendo escrito no fim de um bloco. Em Lua, se você retornar 0, 1 ou qualquer valor, irá retornar 0, 1 ou esse valor.
Para determinar o resultado de um callback, de modo que o mesmo possa ou não ser executado, o correto é fazer uso dos valores booleanos true / false (a menos que a função em questão seja para retornar um valor específico, como uma string/algarismo/tabela/variável/função/qualquer coisa).

The corrupt fear us.

The honest support us.

The heroic join us.

Postado

O @Suicide está correto. Mas se ainda sim você não entendeu, vou tentar simplificar.

 

Eu tenho uma função:

function minhaFuncao()
    return "TK"
end

O return atribui um valor á ela.

 

Ou seja:

a = minhaFuncao()
b = "TK"

a tem o mesmo valor de b.

 

O return pode atribuir qualquer tipo de dado válido á uma função, até mesmo nil, que é "nada".

 

Quanto ao uso do true, false, 1, 0. Geralmente é usado para saber se foi feito o esperado.

1 = true

0 = false

 

false = Falso

true = Verdadeiro.

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

Att. Featzen.

Postado
O return pode atribuir qualquer tipo de dado válido á uma função, até mesmo nil, que é "nada".

 

Quanto ao uso do true, false, 1, 0. Geralmente é usado para saber se foi feito o esperado.

1 = true

0 = false

 

false = Falso

true = Verdadeiro.

Calma.

nil significa nulo, é um valor nulo.

Em outras linguagens de programação, 0 e 1 representam false e true (respectivamente), como você disse. Porém, em Lua, o correto é fazer uso dos valores booleanos true e false. O que acontece, é que provavelmente, alguns (ou a maioria) dos servidores de open tibia devem ter algo declarando que true = 1 e false = 0.

Na linguagem Lua (em si), se você retornar 1, irá simplesmente resultar no número 1 (sem alterações provenientes disso).

The corrupt fear us.

The honest support us.

The heroic join us.

Postado

Calma.

nil significa nulo, é um valor nulo.

Em outras linguagens de programação, 0 e 1 representam false e true (respectivamente), como você disse. Porém, em Lua, o correto é fazer uso dos valores booleanos true e false. O que acontece, é que provavelmente, alguns (ou a maioria) dos servidores de open tibia devem ter algo declarando que true = 1 e false = 0.

Na linguagem Lua (em si), se você retornar 1, irá simplesmente retornar o número 1 (sem alterações provenientes disso).

 

Sim, mas no caso citado, é apenas o costume de quem programou.

1 - Inteiro.

False - Booleano.

Att. Featzen.

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.7k

Informação Importante

Confirmação de Termo