Ir para conteúdo

Featured Replies

Postado
Spoiler

Para receber o que tem dentro do baú, o player precisa ter certa quantidade do Item "X" na bag.
Se o player tiver a quantidade certinha, ele receberá do baú uma bag com 5 itens dentro dela.

 Depois de receber a premiação do baú, o player só poderá receber essa recompensa novamente 30 dias depois.

[CONFIGURÁVEL]

 

 

 Agradeço desde já, quem tentar ajudar!

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

Resolvido por Vodkart

Ir para solução
  • Respostas 10
  • Visualizações 931
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local items = {{2173,1},{2494,1},{2148,15}} local itemRequired, amountRequired = 2160, 30 -- ID do item necessário para pegar o baú e a quantidade. local storage, days = 897458, 30 function onUse(cid,

Posted Images

Postado

Testa ai:

function onUse(cid, item, fromPosition, itemEx, toPosition)
  local itemRequired, amountRequired = 2160, 30 -- ID do item necessário para pegar o baú e a quantidade.
  local itemReward, amountReward = 2153, 100 -- ID do item e a quantidade que o player vai ganhar.
  local backdays = 30 -- Quando tempo o player vai poder pegar o baú novamente (Em dias).
  local storage = 15932 -- Storage que vai armazenar o tempo. NÃO MEXA.

  if getPlayerItemCount(cid, itemRequired, amountRequired) <= 0 then
    doPlayerSendCancel(cid, "Você não possui "..amountRequired.."x "..getItemInfo(itemRequired).name.." volte mais tarde.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)
  end

  if getPlayerStorageValue(cid storage) <= 0 then
    doPlayerAddItem(cid, itemReward, amountReward)
    doPlayerRemoveItem(cid, itemRequired, amountRequired)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabou de ganhar "..amountReward.."x "..getItemInfo(itemReward).name..". Parabéns!")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN)
    setPlayerStorageValue(cid, storage, backdays*60*60+os.time())
  else
    doPlayerSendCancel(cid, "Você já coletou seu item hoje, volte daqui a "..backdays.." dia(s).")
  end
  return true
end

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Postado
  • Autor
4 horas atrás, Belmont disse:

Testa ai:


function onUse(cid, item, fromPosition, itemEx, toPosition)
  local itemRequired, amountRequired = 2160, 30 -- ID do item necessário para pegar o baú e a quantidade.
  local itemReward, amountReward = 2153, 100 -- ID do item e a quantidade que o player vai ganhar.
  local backdays = 30 -- Quando tempo o player vai poder pegar o baú novamente (Em dias).
  local storage = 15932 -- Storage que vai armazenar o tempo. NÃO MEXA.

  if getPlayerItemCount(cid, itemRequired, amountRequired) <= 0 then
    doPlayerSendCancel(cid, "Você não possui "..amountRequired.."x "..getItemInfo(itemRequired).name.." volte mais tarde.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)
  end

  if getPlayerStorageValue(cid storage) <= 0 then
    doPlayerAddItem(cid, itemReward, amountReward)
    doPlayerRemoveItem(cid, itemRequired, amountRequired)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabou de ganhar "..amountReward.."x "..getItemInfo(itemReward).name..". Parabéns!")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN)
    setPlayerStorageValue(cid, storage, backdays*60*60+os.time())
  else
    doPlayerSendCancel(cid, "Você já coletou seu item hoje, volte daqui a "..backdays.." dia(s).")
  end
  return true
end

 

 

Spoiler

Mano em relação aos itens que o baú vai dar, o que eu quis dizer é que ele dará 5 itens diferentes tlg? 

E deu esse erro na distro

 

image.png

Postado

@raphadoidera
 

local items = { -- ID do item e a quantidade que o player vai ganhar.
  [1] = {itemReward = 2160, amountReward = 50},
  [2] = {itemReward = 2160, amountReward = 50},
  [3] = {itemReward = 2160, amountReward = 50},
  [4] = {itemReward = 2160, amountReward = 50},
  [5] = {itemReward = 2160, amountReward = 50}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
  local itemRequired, amountRequired = 2160, 30 -- ID do item necessário para pegar o baú e a quantidade.
  local backdays = 30 -- Quando tempo o player vai poder pegar o baú novamente (Em dias).
  local storage = 15932 -- Storage que vai armazenar o tempo. NÃO MEXA.

  if getPlayerItemCount(cid, itemRequired, amountRequired) <= 0 then
    doPlayerSendCancel(cid, "Você não possui "..amountRequired.."x "..getItemInfo(itemRequired).name.." volte mais tarde.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)
  end

  if getPlayerStorageValue(cid, storage) <= 0 then
  	local str = ""
  	for i = 1, #items do
  		doPlayerAddItem(cid, items[i].itemReward, items[i].amountReward)
  		str = str..items[i].amountReward.." "..getItemNameById(items[i].itemReward)
  	end
  	doPlayerRemoveItem(cid, itemRequired, amountRequired)
  	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabou de ganhar "..str..". Parabéns!")
  	doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN)
  	setPlayerStorageValue(cid, storage, backdays*60*60+os.time())
  else
  	doPlayerSendCancel(cid, "Você já coletou seu item hoje, volte daqui a "..backdays.." dia(s).")
  end
  return true
end

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Postado
  • Autor
47 minutos atrás, Belmont disse:

@raphadoidera
 


local items = { -- ID do item e a quantidade que o player vai ganhar.
  [1] = {itemReward = 2160, amountReward = 50},
  [2] = {itemReward = 2160, amountReward = 50},
  [3] = {itemReward = 2160, amountReward = 50},
  [4] = {itemReward = 2160, amountReward = 50},
  [5] = {itemReward = 2160, amountReward = 50}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
  local itemRequired, amountRequired = 2160, 30 -- ID do item necessário para pegar o baú e a quantidade.
  local backdays = 30 -- Quando tempo o player vai poder pegar o baú novamente (Em dias).
  local storage = 15932 -- Storage que vai armazenar o tempo. NÃO MEXA.

  if getPlayerItemCount(cid, itemRequired, amountRequired) <= 0 then
    doPlayerSendCancel(cid, "Você não possui "..amountRequired.."x "..getItemInfo(itemRequired).name.." volte mais tarde.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)
  end

  if getPlayerStorageValue(cid, storage) <= 0 then
  	local str = ""
  	for i = 1, #items do
  		doPlayerAddItem(cid, items[i].itemReward, items[i].amountReward)
  		str = str..items[i].amountReward.." "..getItemNameById(items[i].itemReward)
  	end
  	doPlayerRemoveItem(cid, itemRequired, amountRequired)
  	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabou de ganhar "..str..". Parabéns!")
  	doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN)
  	setPlayerStorageValue(cid, storage, backdays*60*60+os.time())
  else
  	doPlayerSendCancel(cid, "Você já coletou seu item hoje, volte daqui a "..backdays.." dia(s).")
  end
  return true
end

 

Spoiler

Irmão deu certo.

O unico problema que ta dando agora, é que mesmo se o jogador não tiver os itens necessários ele consegue receber a premiação do baú.

 

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