Postado Dezembro 22, 2015 10 anos Criei um sistema para que players vasculhem gavetas, guarda-roupas, baús e etc. Com esse sistema, há chances de encontrar diversos itens em diferentes quantidades e também a possibilidade de não encontrar nada. Spoiler function onUse(cid, item, fromPosition, itemEx, toPosition) time = 1 local rand = math.random(1, 1200) if rand <= 350 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- cents addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 ,cid, 2148, math.random(1, 100)) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 380 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- dollar addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 ,cid, 2152, math.random(1, 5)) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 382 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- spray addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 2269, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 385 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- nurse kit addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 2273, math.random(1, 3)) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 400 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- relogio addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 ,cid, 2036, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 402 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") -- caixa de joias addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 8261, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 420 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") --anel addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 2357, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 425 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 2322, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 430 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerAddItem, time*3700 , cid, 6579, 1) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand <= 440 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doPlayerAddItem, time*3700 , cid, 2032, 1) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Encontrou algo..") addEvent(doSendMagicEffect, time*3700, fromPosition, 16) addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") elseif rand >= 440 then doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 3700, cid, false) addEvent(doSendMagicEffect, time*3700, fromPosition, 2) addEvent(doPlayerSendTextMessage, time*3700, cid, MESSAGE_EVENT_ADVANCE, "Está vazio.") addEvent(doPlayerSendTextMessage, time*1, cid, MESSAGE_EVENT_ADVANCE, "Vasculhando..") end return true end O sistema está funcional e sem bugs, porém quero fazer o seguinte: O player vasculhou a gaveta, então depois disso por um tempo aleatório configurável não será possível que ninguém vasculhe a gaveta, e depois desse tempo volta ao normal seguindo o ciclo do sistema. Basicamente preciso de um exaust no item ao invés do player e não sei como fazer isso, então se alguém puder me ajudar agradeço e reputo! ps: fiz do jeito que sei, se alguém quiser otimizar o código com uma tabela ou padronização, agradeço também. Grato desde já! Editado Dezembro 22, 2015 10 anos por biel.stocco (veja o histórico de edições)
Postado Dezembro 23, 2015 10 anos Você só precisa guardar em uma variável ou storage global qual o tempo da ultima vasculhada e comparar com a próxima vasculhada, usando o os.time()
Postado Dezembro 23, 2015 10 anos Autor Pode me mandar um system com isso que vc disse para mim tentar incrementar, ou pode fazer pra mim por favor? não sei fazer isso ;x
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.