Ir para conteúdo

Featured Replies

Postado

Alguém sabe como criar uma Quest com tempo?

 

Exemplo: 4 player entra numa sala e 1 clica em uma alavanca.. Um tempo começa a contar e ao terminar o tempo irá aparecer algo no meio da sala..

 

E como fazer para verificar o tempo de uma storage ao chegar ao fim.. os.time().

Resolvido por xWhiteWolf

Ir para solução
Postado

Também to precisando de ajudar, mas ninguém está online pra me ajudar, vê se você acha no google

Postado
  • Autor

Cara o fórum é para isso, não estou com pressa.. Uma hora alguém fala, só esperar.. Faça o mesmo amigo! Até mais..

Postado
  • Solução

os.time é pra contar o tempo em segundos desde 1 de janeiro de 1970. Quando vc usa a função os.time ele retorna o valor de tempo que se passou desde 1 de janeiro de 1970. O ideal é utilizar os.date que tem um critério um pouco mais legal dependendo da variável indicadora que vc utilizar. Mas não tem nada a ver com oque vc pediu aí. Pra fazer algo com tempo vc usa o addEvent e ele funciona mais ou menos assim:
Observe um script que utiliza addEvent que jajá eu explico
 

function onUse(cid, item, frompos, item2, topos)
local tempo = 8000
local wall1 = {x=612, y=345, z=7, stackpos=1}
local pos1 = getThingfromPos(wall1) 
local wall2 = {x=653, y=345, z=7, stackpos=1}
local pos2 = getThingfromPos(wall2) 
local monster1 = {x=615, y=345, z=7, stackpos=1}
local posmonster1 = getThingfromPos(monster1) 
local monster3 = {x=654, y=345, z=7, stackpos=1}
local idparede = 9788
local alavanca = {x=610, y=344, z=7, stackpos=1}
local alavancapos = getThingfromPos(alavanca) 


function wait1(wall1) 
doCreateItem(idparede,1,wall1)
end


function wait2(wall2) 
doCreateItem(idparede,1,wall2)
end


function wait3(alavanca)
doTransformItem(item.uid,1946) 
end






if item.uid == 7777 and item.itemid == 1945 then
if pos1.itemid ~= 0 and pos2.itemid ~= 0 then 
doRemoveItem(pos1.uid,5)
doSendMagicEffect(pos1,12) 
doRemoveItem(pos2.uid,5)
doSendMagicEffect(pos2,12) 
doCreateMonster("Juggernaut",monster1)
doSendMagicEffect(monster1,13) 
doPlayerSendTextMessage(cid,25, "You have ".. tempo/1000 .." seconds to finish the quest")
addEvent(wait1,tempo,wall1)
addEvent(wait2,tempo,wall2)
addEvent(wait3,tempo,alavanca)
else
doPlayerSendCancel(cid,"You can't start the quest twice.")
end
elseif item.uid == 7777 and item.itemid == 1946 then
doTransformItem(item.uid,item.itemid-1) 
for x = monster1.x, monster3.x do
for y = monster1.y, monster3.y do
for z = monster1.z, monster3.z do
local mob = getTopCreature({x=x, y=y, z=z}).uid
if mob ~= 0 and isMonster(mob) then
doRemoveCreature(mob) 
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
end
end

return true
end
end


return true 
end
addEvent(wait1,tempo,wall1)

ele faz o evento chamado wait1 dali a um tempo igual a tempo (no começo do script eu falei que tempo era 8 segundos) e na posição wall1. 

function wait1(wall1)
doCreateItem(idparede,1,wall1)
end

a função wait1 cria um item de idparede na posição wall1. Então essa quest nada mais faz doque criar uma parede que impede a passagem dali a 8 segundos.
Seguindo essa lógica da pra fazer a quest que você quer. Só criar uma função que pega o valor de tempo = 0 e adiciona 1 até o valor de  tempo final, dai você coloca addEvent (função X, tempo*1000

executar determinada função em tempo*1000 mas se o tempo muda então ele vai ficar executando a função de X em X segundos de acordo com o valor de tempo. Para tempo = 1 será 1 segundo, para tempo = 2 será dali a 2 segundos e assim por diante.

 

AGORA SOBRE A OUTRA DÚVIDA

Para colocar tempo nos storages vc só tem que fazer isso daqui

local daysvalue = 7 * 24 * 60 * 60
time = os.time() + daysvalue
setPlayerStorageValue(cid, 13340, time)

perceba que ele usa os.time, então o script é basicamente isso daqui:
tempo que storage vai ficar: 7 dias (7*24*60*60)
tempo = segundos desde 1 de janeiro de 1970 até agora + 7 dias
dar storage pro player 13340 durante tempo.

 

 

Espero ter ajudado, qualquer dúvida dá uma pesquisada ou me manda PM

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