Ir para conteúdo
  • Cadastre-se
  • 0

Travamento em eventos


Williamss

Pergunta

Boa noite, bom como não conseguir espero que alguém me ajude.

Bom tenho um evento TvT que ele só anuncia o tempo de registrar o primeiro minuto  e o ultimo minuto. O que eu tentei fazer foi que ele anuncie a cada minuto exemplo : Registration opened for 5  minute(s).,  Registration opened for 4  minute(s). etc...

Eu conseguir colocar ele para anuncia a cada minuto porém quando começa o tvt os jogadores fica dando leg , quando deixei o sistema de contagem como era ficou normalmente sem leg. irei deixar os codigos para vocês analisar onde errei.

 

Código original :

 
O conteúdo está oculto, favor efetuar login ou se cadastrar!

Código modificado

 
O conteúdo está oculto, favor efetuar login ou se cadastrar!
Editado por Williamss
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts recomendados

  • 0

No seu código não tem nada que poderia causar o travamento não, é outra coisa.

Editado por Tayran.JavaDev

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites


  • 0
36 minutos atrás, Tayran.JavaDev disse:

No seu código não tem nada que poderia causar o travamento não, é outra coisa.

Só trava quando troco isso ai.

 

o erro eu sei que ta aqui tem alguma outra maneira de implementar o codigo original sem case ? para anuncia a cada minuto ? eu vi um exemplo da frozen que ele é separado e implements dele vem de outra classe

@Override
		public void run()
		{
			int delay = (int) Math.round((_startTime - System.currentTimeMillis()) / 1000.0);
			
			if (delay > 0)
				this.announce(delay);
			
			else
			{
				// start
				if (TvTEvent.isInactive())
					TvTManager.this.startReg();
				else if (TvTEvent.isParticipating())
					TvTManager.this.startEvent();
				else
					TvTManager.this.endEvent();
			}
			
			if (delay > 0)
				nextRun = ThreadPool.schedule(this, 0 * 1000); <<< aquiii porém não sei o que colocar aqui
		}
		

 

aqui é a parte original a de cima é a modificada , A execução do ThreadPoll deve ta errada acho que ele inicia quando ta tendo o evento mais não sei o que mudar mais ai ... 
        /**
         * @see java.lang.Runnable#run()
         */
        @Override
        public void run()
        {
            int delay = (int) Math.round((_startTime - System.currentTimeMillis()) / 1000.0);
            
            if (delay > 0)
            {
                this.announce(delay);
            }
            
            int nextMsg = 0;
            if (delay > 3600)
            {
                nextMsg = delay - 3600;
            }
            else if (delay > 1800)
            {
                nextMsg = delay - 1800;
            }
            else if (delay > 900)
            {
                nextMsg = delay - 900;
            }
            else if (delay > 600)
            {
                nextMsg = delay - 600;
            }
            else if (delay > 300)
            {
                nextMsg = delay - 300;
            }
            else if (delay > 60)
            {
                nextMsg = delay - 60;
            }
            else if (delay > 5)
            {
                nextMsg = delay - 5;
            }
            else if (delay > 0)
            {
                nextMsg = delay;
            }
            else
            {
                // start
                if (CTFEvent.isInactive())
                {
                    CTFManager.this.startReg();
                }
                else if (CTFEvent.isParticipating())
                {
                    CTFManager.this.startEvent();
                }
                else
                {
                    CTFManager.this.endEvent();
                }
            }
            
            if (delay > 0)
            {
                nextRun = ThreadPool.schedule(this, nextMsg * 1000);
            }
        }
        

Link para o comentário
Compartilhar em outros sites

  • 0

Cara tudo que você falou eu entendi nada, li várias vezes, mas não entendi. Mas eu sei que com todas as modificações que já fez no código que você pegou fica difícil ajudar, seu código tá cheio de coisa com nomes de CTF, esse tipo de coisa deve ser feito um teste no código original colocando só a modificação que possível está com problemas.

Editado por Tayran.JavaDev

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
9 horas atrás, Tayran.JavaDev disse:

Cara tudo que você falou eu entendi nada, li várias vezes, mas não entendi. Mas eu sei que com todas as modificações que já fez no código que você pegou fica difícil ajudar, seu código tá cheio de coisa com nomes de CTF, esse tipo de coisa deve ser feito um teste no código original colocando só a modificação que possível está com problemas.

 

Não mudei muita coisa só o comando que tem o nome de ctf, nem eu entendi esse erro porque quando coloco a parte de TvTManager original o evento fica normal unica classe que faz execução de alguma coisa é ThreadPool ou to enganado ?

 

9 horas atrás, Tayran.JavaDev disse:

Cara tudo que você falou eu entendi nada, li várias vezes, mas não entendi. Mas eu sei que com todas as modificações que já fez no código que você pegou fica difícil ajudar, seu código tá cheio de coisa com nomes de CTF, esse tipo de coisa deve ser feito um teste no código original colocando só a modificação que possível está com problemas.

Se o senhor fosse colocar para anuncia a cada minuto como ficaria ? Essa é a parte original do codigo , a parte TvTEvent.java tá 100% com essa classe ai porém não anuncia a cada minuto.

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

9 horas atrás, Tayran.JavaDev disse:

Cara tudo que você falou eu entendi nada, li várias vezes, mas não entendi. Mas eu sei que com todas as modificações que já fez no código que você pegou fica difícil ajudar, seu código tá cheio de coisa com nomes de CTF, esse tipo de coisa deve ser feito um teste no código original colocando só a modificação que possível está com problemas.

 

Era o que falei meu caro conseguir ajeitar. pode fechar o tópico.

o erro era aqui


            if (delay > 0)
                nextRun = ThreadPool.schedule(this, 0 * 1000);

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • Criar Novo...

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.