Postado Abril 4, 2022 3 anos Spoiler 1° Para receber o que tem dentro do baú, o player precisa ter certa quantidade do Item "X" na bag. 2° Se o player tiver a quantidade certinha, ele receberá do baú uma bag com 5 itens dentro dela. 3° 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 Abril 4, 2022 3 anos por raphadoidera (veja o histórico de edições)
Postado Abril 4, 2022 3 anos 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: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Abril 4, 2022 3 anos 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
Postado Abril 4, 2022 3 anos @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: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Abril 5, 2022 3 anos 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.