Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo.
Caso seja registrado, efetue login.
Esqueceu sua senha? Clique aqui
Recomendamos o uso do Mozilla Firefox para uma melhor visualização.    


Início Postados Hoje Marcar Fóruns Como Lidos Álbums Banidos SE Team Medalhas
Voltar   Secret Experience > Área L2J > [L2J] Tutoriais
Registrar Loteria VIPStaff SERegras do fórum Comunidade Arcade Postados Hoje Pesquisar Experience
   

Secret Experience.NET   Secret Experience Corporation - Welcome To The Real World
     Anúncios SE

 
 
Ferramentas do Tópico Modos de Exibição
Prev Post Anterior   Próximo Post Next
Antigo 03-04-2010, 07:03 PM   #1
[Guia] Modificar periodo de Olimpíadas
Guma Guma está offline 03-04-2010, 07:03 PM

Passo 1: Diferenciação entre as partes
Na configuração (General.properties):


Citação:
---------------------------------------------------------------------------
# Olympiad
# ---------------------------------------------------------------------------
# Olympiad Start Time in Military hours Default 6pm (18)
# Default: 18
AltOlyStartTime = 18 <-- a hr q da Olympiadas para começar cada dia

# Olympiad Start Time for Min's, Default 00 so at the start of the hour.
# Default: 00
AltOlyMin = 00 <-- r q da Olympiadas para encerrar cada dia

# Olympiad Competition Period, Default 6 hours.
# (If set different, should be increment by 10mins)
# Default: 21600000
AltOlyCPeriod = 21600000 <-- OLYMPIA Quantas horas são ativos (em milissegundos, 1000 = 1 segundo)

# Olympiad Battle Period, Default 6 minutes.
# Default: 360000
AltOlyBattle = 360000 <-- tempo de uma BATALHA de Olímpia (em milissegundos)

# Olympiad Weekly Period, Default 1 week
# Default: 604800000
AltOlyWPeriod = 604800000 <-- Período semanal. NO INÍCIO DO PERÍODO DE CADA X é dar ao jogador mais pontos

# Olympiad Validation Period, Default 24 Hours.
# Default: 86400000
AltOlyVPeriod = 86400000 <-- TEMPO ENTRE QUE ACABA Um PERIODO e COMESSA OTRO
As outras definições não afectam o tempo de Olímpia
Como você pode ver, nenhum dos parâmetros acima alterar a duração do período de Olímpia.
Então, onde alteradas?
Em 2 sites:
A primeira: banco de dados -> olympiad_data tabela
Aqui nós dizemos o servidor quando nós queremos terminar o período de Olímpia e, quando o período semanal. Só com isso, podemos fazer a Olympi concluída cada semana (AO LONGO DO USO AS QUREMOS GUIA DE REFERÊNCIA DA PUT OLYMPIAD 1 SEMANA)
Para fazer isso, precisamos obter o tempo desde o momento em que estamos, uma semana depois, no tempo UNIX * 1000
Para fazer isso, use este conversor: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
e você usar "Converter para Data / Hora de um timestamp Unix
Lá, colocar a data em que deseja terminar a Olimpíada, vai dar um número para o qual você deve adicionar 3 zeros (000), deve ser porque o tempo em milissegundos
e nós colocamos em olympiad_end como next_weekly_change


Só com isso, o Olympi durou tanto tempo como eles disseram (1 semana, 2 semanas, etc ..)
Mas devemos alterá-lo manualmente a cada período de tempo termina. Como faço para automatizar isso?
Aqui é onde a segunda:

Segundo Lugar: net/sf/l2j/gameserver/model/olympiad/olympiad.java (para l2j/l2joffi)

Utilizando o Eclipse, ou apenas olhar nos arquivos. Java, nós olympiad.java e dentro deste, temos:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
        protected void setNewOlympiadEnd()
        {
            SystemMessage sm = new SystemMessage(SystemMessageId.OLYMPIAD_PERIOD_S1_HAS_STARTED);
            sm.addNumber(_currentCycle);
          
            Announcements.getInstance().announceToAll(sm);
          
            Calendar currentTime = Calendar.getInstance();
            currentTime.add(Calendar.MONTH, 1);
           currentTime.set(Calendar.DAY_OF_MONTH, 1);
           currentTime.set(Calendar.AM_PM, Calendar.AM);
           currentTime.set(Calendar.HOUR, 12);
           currentTime.set(Calendar.MINUTE, 0);
           currentTime.set(Calendar.SECOND, 0);
           _olympiadEnd = currentTime.getTimeInMillis();
          
           Calendar nextChange = Calendar.getInstance();
           _nextWeeklyChange = nextChange.getTimeInMillis() + WEEKLY_PERIOD;
           scheduleWeeklyChange();
       }

Precisa mudar aqui para torná-la automática?

currentTime.add(Calendar.MONTH, 1); -> ponha na table olympad_data, en olympiad_end un més de duracao. Si queremos uma semana ponemos
1 semana = (Calendar.WEEK_OF_MONTH, 1);
2 semanas = (Calendar.WEEK_OF_MONTH, 2);
3 semanas = (Calendar.WEEK_OF_MONTH, 3);
etc..
Assim, olympiad_end ser atualizado automaticamente enquanto nós queremos

currentTime.set (Calendar.DAY_OF_MONTH, 1) -> Ele diz que quando começou. Essa leitura vai fazer a partir de 1 de cada mês. Mudamos pelo DAY_OF_WEEK, 1, que começa no primeiro dia da semana

Os outros são para definir o tempo, e é feito como os dois últimos.
Salvar, compilar e substituir. E pronto!

disculpa pela traducao fiko meio ruim mas axo q da pra entender um pouko.

creditos : biggboss

 
Avatar de Guma
Guma
Membro - Veterano
Registrado em: Sep 2009
Localização: Florianopolis (sc)
Posts: 591
Nome Real: i'm Guma
Visitas: 5094
Os Seguintes 14 Usuários disseram Obrigado(a) para Guma por gostarem deste post :
73n3br0s0 (29-09-2010), B1Z4R0 (08-04-2010), caiotnt (21-07-2010), Demon (20-08-2010), fortunato (18-10-2010), kadmus (18-01-2015), Mazokista (11-09-2010), mickael (02-11-2010), RazerNaga (21-07-2010), samyrfera (26-04-2011), Setokaiba (24-05-2010), Sirius (19-07-2011), sonts (06-05-2011), xxdiogoxx (24-05-2010)
Links Patrocinados
 


Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


Horários baseados na GMT -3. Agora são 11:57 PM.