Postado Março 20, 2017 8 anos @pablobion você falou algo que está certo, seu pensamento foi de um verdadeiro programador, pensou nos erros que poderiam dar. Mas em fim: se você tem o onTime() que está iniciando o evento na hora desejada, então blz, você só precisa do onThink que vai checkar a cada 1 min a área para ver se tem só 1x dentre os outros checks. Teve algum problema na distro ? Ou funcionou ?
Postado Março 20, 2017 8 anos Autor 16 horas atrás, KotZletY disse: @pablobion você falou algo que está certo, seu pensamento foi de um verdadeiro programador, pensou nos erros que poderiam dar. Mas em fim: se você tem o onTime() que está iniciando o evento na hora desejada, então blz, você só precisa do onThink que vai checkar a cada 1 min a área para ver se tem só 1x dentre os outros checks. Teve algum problema na distro ? Ou funcionou ? Desculpa meu mano, eu tive que vir pra faculdade e não pude testar.. mas logo de noite eu testo e vejo o que consigo fazer... qualquer coisa te mando mention XD mas valeuu @KotZletY EDIT : eu consegui arrumar o que eu queria, continuei usando onTime(porque é a unica forma que sei usar por enquanto ate tirar minhas duvidas de onthink) enfim, para resolver meu problema eu separei o script em dois... um para um determinado horario e a outra parte usei onthink por interval para ficar verificando a area etc... mas se você quiser me ajuda fixando o problema com %X %A do onthink fico agradecido já que entendi a forma porem ta bugado fican spamando a mensagem depois do tempo determinado... não testei o onthink no evento em si mas usei assim... primeiramente pensei q fosse a parte "if os.date("%X") >= dh[os.date("%A")].now then" tentei mudar para == mas não resolveu... alias nem a mensagem aparecia mais. Spoiler local dh = { ["Monday"] = {now = "11:20:00"}, ["Tuesday"] = {now = "07:59:00"}, ["Saturday"] = {now = "11:52:00"}, ["Sunday"] = {now = "11:54:00"} } function onThink(interval) if dh[os.date("%A")] then if os.date("%X") >= dh[os.date("%A")].now then doBroadcastMessage("Reloading addddddddddddddctions") end end return true end e com o interval de 60000 mas depois do horario determinado ele fica enviando a mensagem a cada um min... Editado Março 21, 2017 8 anos por pablobion (veja o histórico de edições) Scriptszinhos: Spoiler [CREATURESCRIPT] Auto TP depois de matar boss [ACTION] Clean Area [TALKACTION] !FelizAnoNovo [ACTION + MOVEMENT] Cartas ao GOD [CREATURESCRIPT] Always Emblem System [ACTION] Anihi simples [TALKACTIONS] Urinar / fazer xixi Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.
Postado Março 21, 2017 8 anos @pablobion você não disse que já estava separado ? haushaus, quando eu disse que tudo em um arquivo só é permitido eu não menti, e nem falei atoa. Você tem o script que inicia o evento e os checks, correto ? Em um onThink, vai verificar se é tal dia e tal hora, e vai verificar a globalstorage do evento, se for -1 que significa que está sem storage, o evento irá iniciar, setando a globalstorage em 1, e irá pro próximo check que é a da área e etc.. Quando o script fizer o check novamente, a globalstorage do evento estará funcionando, então o script irá pular o check de iniciar o evento, e irá para o próximo, e assim até termina o evento. Quando o evento termina, ele que ele irá checkar tudo de novo, o horário será diferente de quando iniciou o evento, então irá pular, como nos próximos checks da área do evento e etc.. não terá ninguém ele irá pular e assim por diante, a cada 1 min ele irá fazer esse processo, seguindo essa ordem, tranquilamente, sem bugar. Em relação ao repetição que você falou, é um jogo de check: if hoje é 21 then mandamsg("blablabla") end o onThik a cada 1 min irá mandar essa msg, sendo que já mandou certo ? Como disse é jogo de check, antes de checkar o dia, você checka a globalstorage, if globalStorage == -1 the if hoje é 21 and hora é 18:30 then mandamsg("blablabla") setGlobalStorage(123, 1) end end nesse check irá mandar a msg e seta a globalstorage em 1, quando o onThink realizar o check novamente, ele não irá mandar a msg, porque no check ele só manda se a storage for negativa, dizendo que o evento não começou. Então ele irá pular esse check e ir pro próximo. Quando o evento termina, irá seta a globalstorage em -1 novamente. E quando o onThink for executado ele irá checkar se a globalstorage é -1, porém, terá o check do dia e hora do evento, que não é mais o mesmo, então ele finaliza aquela parte do script ali mesmo. Espero que tenha entendido, não sou bom em explicar algo detalhado. Que bom que já resolveu o problema, abraços e boa sorte com seu server! xD
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.