Mudanças entre as edições de "Widget:GlobalEventTimer"

De Wiki Gla
Ir para navegação Ir para pesquisar
Etiqueta: Reversão manual
Etiqueta: Revertido
Linha 3: Linha 3:
<div id="global-event-time"></div>
<div id="global-event-time"></div>
</div>
</div>
<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>

Edição das 18h24min de 31 de março de 2025

<img class="global-event-image" src="/images/0/0a/Anyevent.png" alt="Global Event">

<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>