Widget:GlobalEventTimer
Ir para navegação
Ir para pesquisar
<script> //------- GLOBAL EVENTS TIMER ---------
(function () { var globalEventsTimer = $('#global-event-time'); // Atualizado: ID do Timer dos Global Events var globalEventsImage = $('.global-event-image'); // Atualizado: Classe da Imagem dos Global Events var globalEventsInterval;
// Informações dos eventos /* 0 - Domingo 1 - Segunda-feira 2 - Terça-feira 3 - Quarta-feira 4 - Quinta-feira 5 - Sexta-feira 6 - Sábado */ var globalEventsInfo = { 0: [ { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' }, ], 1: [ { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' }, ], 2: [ { name: 'Foxy race (ship)', time: '02:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '09:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '12:00:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '15:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '19:00:00', src: '/images/f/f3/Foxy_count_event.png' }, { name: 'Foxy Memory', time: '22:00:00', src: '/images/3/37/Foxy_memory_event.png' }, ], 3: [ { name: 'Deathmatch', time: '02:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '09:00:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '12:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '15:00:00', src: '/images/f/f3/Foxy_count_event.png' }, { name: 'Foxy Memory', time: '19:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '22:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, ], 4: [ { name: 'Foxy race', time: '02:00:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '09:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '12:00:00', src: '/images/f/f3/Foxy_count_event.png' }, { name: 'Foxy Memory', time: '15:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '19:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '22:00:00', src: '/images/4/46/Deathmatch_event.png' }, ], 5: [ { name: 'Foxy quiz', time: '02:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, { name: 'Foxy count', time: '09:00:00', src: '/images/f/f3/Foxy_count_event.png' }, { name: 'Foxy Memory', time: '12:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '15:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '19:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '22:00:00', src: '/images/e/e8/Foxy_race_event.png' }, ], 6: [ { name: 'Foxy count', time: '02:00:00', src: '/images/f/f3/Foxy_count_event.png' }, { name: 'Foxy Memory', time: '09:00:00', src: '/images/3/37/Foxy_memory_event.png' }, { name: 'Foxy race (ship)', time: '12:00:00', src: '/images/2/29/Foxy_race_ship_event.png' }, { name: 'Deathmatch', time: '15:00:00', src: '/images/4/46/Deathmatch_event.png' }, { name: 'Foxy race', time: '21:55:00', src: '/images/e/e8/Foxy_race_event.png' }, { name: 'Foxy quiz', time: '22:00:00', src: '/images/b/b3/Foxy_quiz_event.png' }, ] };
function pad(value) { return value < 10 ? '0' + value : value; }
function getBrazilTime() { var now = new Date(); var utc = now.getTime() + (now.getTimezoneOffset() * 60000); // Converte para UTC return new Date(utc - (3 * 3600000)); // Ajusta para UTC-3 }
function startGlobalEventCountdown(eventStartTime, eventEndTime) { if (globalEventsInterval) clearInterval(globalEventsInterval);
globalEventsInterval = setInterval(function () { var now = getBrazilTime().getTime();
if (now < eventEndTime) { var timeRemaining = Math.ceil((eventEndTime - now) / 1000); // Segundos restantes var minutes = Math.floor(timeRemaining / 60); var seconds = timeRemaining % 60; globalEventsTimer.html('Iniciando: ' + pad(minutes) + ":" + pad(seconds)); } else { clearInterval(globalEventsInterval); setGlobalEvent(); } }, 1000); }
function setGlobalEvent() { var now = getBrazilTime(); // Usa o horário do Brasil var dayEvents = globalEventsInfo[now.getDay()];
if (!dayEvents || dayEvents.length === 0) { globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão globalEventsTimer.html('Acabaram os eventos por hoje'); return; }
for (var i = 0; i < dayEvents.length; i++) { var event = dayEvents[i]; var timeParts = event.time.split(':'); var eventStartTime = new Date( now.getFullYear(), now.getMonth(), now.getDate(), parseInt(timeParts[0], 10), parseInt(timeParts[1], 10), parseInt(timeParts[2], 10) ).getTime(); var eventEndTime = eventStartTime + 5 * 60 * 1000; // Evento dura 5 minutos para entrada
if (now >= eventStartTime && now < eventEndTime) { // Durante o período de entrada do evento globalEventsImage.attr('src', event.src); startGlobalEventCountdown(eventStartTime, eventEndTime); return; }
if (now < eventStartTime) { // Antes do evento, exibe o horário fixo globalEventsImage.attr('src', event.src); globalEventsTimer.html( new Date(eventStartTime).toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit', }) );
// Só inicia a contagem regressiva quando estiver próximo (faltando 5 minutos ou menos) if (eventStartTime - now <= 5 * 60 * 1000) { startGlobalEventCountdown(eventStartTime, eventEndTime); } return; } }
// Após o último evento do dia globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão globalEventsTimer.html('Acabaram os eventos por hoje'); }
$(document).ready(function () { setGlobalEvent(); }); })(); //------- GLOBAL EVENTS TIMER ---------
</script>