Postado Dezembro 22, 2015 9 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 9 anos por biel.stocco (veja o histórico de edições)
Postado Dezembro 23, 2015 9 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 9 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.