Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Ae galera, anônimo da OTbr mais uma vez aqui. Brinks :B

Bom galera, hoje falarei sobre o RETURN, que todos acham que é um bicho de sete cabeças mas que na verdade não passa de algo simples e bem útil em alguns casos.

Utilização:

Exemplo 1:



function getPlayerSet(cid)

local items = {}

for i = 1,10 do

  local item = getPlayerSlotItem(cid, i)

  if item.uid > 0 then

   table.insert(item, items)

  end

end

return items

end

Como podem ver nessa função, eu criei uma função que cria um loop e verifica todos os items do corpo do player e ela usa o return para retornar essa tabela com os items. Com isso se eu precisar pegar todos os items do player é só usar essa função que ela retornara uma com os items do player. (Função não testada) Exemplo 2:

function isTroll (cid)

if string.lower(getCreatureName(cid)) == "troll" then

  return true

else

  return false

end

end

Essa é uma função que irá verificar se o cid vai ter o nome de "Troll" e se for ela vai retornar true e se não for vai retornar false. Return true e false em callbacks Exemplo 3:

local config = {

daily = "no", -- allow only one enter per day? (like in global Tibia)

level = 100,

storage = 30015

entry =

{

  {x = 247, y = 659, z = 13},

  {x = 247, y = 660, z = 13},

  {x = 247, y = 661, z = 13},

  {x = 247, y = 662, z = 13}

},

destination =

{

  {x = 189, y = 650, z = 13},

  {x = 189, y = 651, z = 13},

  {x = 189, y = 652, z = 13},

  {x = 189, y = 653, z = 13}

}

}

config.daily = getBooleanFromString(config.daily)

function onUse(cid, item, fromPosition, itemEx, toPosition)

if(item.itemid == 1946) then

  if(config.daily) then

   doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)

  else

   doTransformItem(item.uid, item.itemid - 1)

  end

  return true

end

if(item.itemid ~= 1945) then

  return true

end

local players = {}

for _, position in ipairs(config.entry) do

  local pid = getTopCreature(position).uid

  if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then

   doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)

   return true

  end

  table.insert(players, pid)

end

for i, pid in ipairs(players) do

  doSendMagicEffect(config.entry[i], CONST_ME_POFF)

  doTeleportThing(pid, config.destination[i], false)

  doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)

end

doTransformItem(item.uid, item.itemid + 1)

return true

end

Dá para ver claramente que existem umas verificações checam valores e se eles forem verdadeiros então vai dar um return true que vai parar o script ali, assim evitando que ele execute o resto do script.

Curiosidade:

Bom galera eu sempre vejo scripts de alavanca usando verificação para ver o id da alavanca e para transformar a alavanca. Porém se vocês não colocarem essa verificação, a função de transformar o item e colocar um return false no final a alavanca irá se transformar da maneira padrão :]

Creditos :

IuniX

Contato;

6yonKDJ.png god.marinii

TaxNfhb.png

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo