Jump to content

[Tutorial] Modificar periodo de Olimpiadas


Guma

Recommended Posts

Passo 1: Diferenciação entre as partes

Na configuração (General.properties):

 

	1. # ---------------------------------------------------------------------------
# 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: http://www.onlineconversion.com/unix_time.htm

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:

 

		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

  • I love it 1

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites


tem q add no java pq q seja 1 semana.. ou duas.

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

faser com ocpoes de

1 semana

2 semana

3 semana

com opcao false true ?

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

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

 

add esse codigo

		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();
   }

Edited by Guma

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

nao tem como faser isso em uma rev ja copilada

teria pegar o projeto editavel deles talves deja mas concerteza nao e o msm caminho..

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

tbm no java

 

e so vc pega o projeto da svn deles baixa...

add esses mod das oly no core copila e substituir as pastasdo seu server.

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

cara me ajuda aqui

 

olha minhas config

 

# Olympiad Start Time in Military hours Default 6pm (18)
# Default: 18
AltOlyStartTime = 18

# Olympiad Start Time for Min's, Default 00 so at the start of the hour.
# Default: 00
AltOlyMin = 00

 

mais msm assim as olly aki ta começando as 8 da noite

Link to comment
Share on other sites

entao ela ta bugada pq 18 = 6hrs

 

mas entao enta por 16

 

c 18 comessa 8 hrs entao 16 comessa as 6 tenta ai..

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

tem q add no java pq q seja 1 semana.. ou duas.

 

 

modifica ai pra min fazendo favor??

 

eu nao entendo nada no java --'

 

ai ta

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();
}

 

a minha não está iqual a sua?

o meu ta de 1 em 1 mes..mas eu quero mudar pra de 10 em 10 dias

 

nao sei onde q muda isso :S

Edited by master09
Link to comment
Share on other sites

esse ai ja editado pra uma semana

c for por duas tem q mudar aki

currentTime.add(Calendar.MONTH, 2);

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

esse ai ja editado pra uma semana

c for por duas tem q mudar aki

currentTime.add(Calendar.MONTH, 2);

 

é essa configuracao para fazer oly por 10 dias? em vez de 1 mes?

 

 

no meu server é de 1 em 1 mes que entrega os heroes mas se eu mudar ai pra 2 fica qnt dia pra entregar heros?

Edited by master09
Link to comment
Share on other sites

cara le o topico direito q vc vai intender

 

c vc nao sabe copilar ou add patch nem ainda perde tempo !

 

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

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link to comment
Share on other sites

entao ela ta bugada pq 18 = 6hrs

 

mas entao enta por 16

 

c 18 comessa 8 hrs entao 16 comessa as 6 tenta ai..

 

deve esta bugada msm

boa ideia vo faze isso pode da certo

vlw's , agora so espera ate as 6 pra ve se as olly começa

;D

 

============================================================================

 

cara nem funfo , tem alguma coisa a ve com o horario do computador ?

porque la no host e 14 horas , e aki e 18 horas

Edited by C0Y073
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

cara a rev que eu pequei a olly ta normal mais tipo, queria saber quando acaba o periodo e comessa outro, tipo quando entrega os heros e comessa outra ollympiad vc pode me responde como fasso eu sou iniciante e nao sei meche nesse negoso de ollympiad, se vc poder me ajuda ficarei muito grato.

Link to comment
Share on other sites

  • 4 months later...



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.