Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
JhoniWillian

[aCis] - Event: Random Fight

Posts recomendados

Não achei no forum, então estou compartilhando com vocês o Evento Random Fight.

 

Como funciona?

O player se registra no evento através do comando: ?register ou cancela o registro: ?unregister

 

E o evento seleciona 2 players aleatórios para levar para um lugar fechado e fazendo um 1x1 entre os 2 players, o ganhador irá ser recompensado pelo item que for indicado no arquivo .properties.

 

 

Segue o Code do Evento, estou testando e está muito bom, caso tenham idéias novas para o evento, implementem e postem aqui.

 

 

http://codecrap.com/content/1229/ < -- CODE -- >

 

 

Créditos: Asked by discorder25, Lioympas

  • Gostei 9

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisando de Dedicado ou VPS?

Conheça a L2JCenter

sim, o code esta em acis mais é facil para ser adptado para outra rev, o código é bonito e estou testando em acis e esta tudo ok, tryskell e sweets aprovaram também

  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, o code esta em acis mais é facil para ser adptado para outra rev, o código é bonito e estou testando em acis e esta tudo ok, tryskell e sweets aprovaram também

pelo que lí no código o evento não inicia sozinho, ou estou errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade inicia sim, no arquivo properties você define o tempo. confira

+#Random Fight Event 
+AllowRandomFight = True
+#Random Fight every how many minutes
+EveryMinutes = 3
+#ID of the reward Item , default:LIFE STONES
+RewardId=8762
+#COUNT of the reward item : default : 5
+RewardCount = 5

EveryMinutes = você define em minutos 1 = 1 minuto, 2 = minutos... etc

 

Nesse local você define de quanto em quanto tempo o evento deve startar

 

no caso ai de cima, o evento irá startar em 3 em 3 minutos, ou seja a cada 3 min o evento inicia sozinho e da 1 minuto para que todos os players se registrem...


Obrigado por mover o tópico, tinha me esquecido.

  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado · Desaprovada por WariinG, Dezembro 11, 2014 -
Desaprovada por WariinG, Dezembro 11, 2014 -

Irei testar .. esse mod Valeu por compartilhar no forum :)

Compartilhar este post


Link para o post

na verdade inicia sim, no arquivo properties você define o tempo. confira

+#Random Fight Event 
+AllowRandomFight = True
+#Random Fight every how many minutes
+EveryMinutes = 3
+#ID of the reward Item , default:LIFE STONES
+RewardId=8762
+#COUNT of the reward item : default : 5
+RewardCount = 5

EveryMinutes = você define em minutos 1 = 1 minuto, 2 = minutos... etc

 

Nesse local você define de quanto em quanto tempo o evento deve startar

 

no caso ai de cima, o evento irá startar em 3 em 3 minutos, ou seja a cada 3 min o evento inicia sozinho e da 1 minuto para que todos os players se registrem...

Obrigado por mover o tópico, tinha me esquecido.

Você poderia atualizar seu topico com essas info.

Brigado por compartilhar !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótimo evento, obrigado por compartilhar, adaptei para freya e gostei muito :)

 

 

Estou com um erro, se somente 3 jogadores registrarem ao evento, ele da erro no java e não inicia, e para de funcionar...

Editado por kaiser

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode postar print do error que aparece no GS?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode postar print do error que aparece no GS?

Porem é somente se 3 jogadores registrarem, se 4 registrar funciona normalmente, não testei para mais pois pc não guenta logar + que 4 box ....

Print:

erro11.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce mudou a definição da class nessa linha?

protected class pickPlayers implements Runnable
+   {
+       @Override
+       public void run()
+       {
+           pickPlayers();
+       }
+       
+   }

em vez de protected usou alguma outra? private, public, bla bla??

 

Verifique se está como < 2, se estiver tenta a opção de colocar somente para + de 3 pessoas registradas para chamar

 

< 3 ou então =< 2 nessa linha: em || Players.size() =< 2)

+   protected void pickPlayers()
+    {
+       if(players.isEmpty() || players.size() < 2)
+        {
+           Broadcast.announceToOnlinePlayers("Random Fight Event aborted because no many partitipations, we are sorry.");
+           clean();
+           return;
+       }
Editado por JhoniWillian

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

voce mudou a definição da class nessa linha?

protected class pickPlayers implements Runnable
+   {
+       @Override
+       public void run()
+       {
+           pickPlayers();
+       }
+       
+   }

em vez de protected usou alguma outra? private, public, bla bla??

 

Verifique se está como < 2, se estiver tenta a opção de colocar somente para + de 3 pessoas registradas para chamar

 

< 3 ou então =< 2 nessa linha: em || Players.size() =< 2)

+   protected void pickPlayers()
+    {
+       if(players.isEmpty() || players.size() < 2)
+        {
+           Broadcast.announceToOnlinePlayers("Random Fight Event aborted because no many partitipations, we are sorry.");
+           clean();
+           return;
+       }

 

Eu deixei como estava, não mudei, tentei agora colocar para if(players.isEmpty() || players.size() < 3)

Mas o mesmo erro continua :s ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria interessante tentar colocar 5 players no evento para ver se ele da error...

 

Com 1 player ele aborta o evento correto? com 2 players ele puxa e 3 ele da o error... há alguma possibilidade de testar com 5?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria interessante tentar colocar 5 players no evento para ver se ele da error...

 

Com 1 player ele aborta o evento correto? com 2 players ele puxa e 3 ele da o error... há alguma possibilidade de testar com 5?

deve ser porque é 1 vs 1 no caso puxa só por par, se for puxar 5 tem que ser 5 vs 5. teria que colocar 10, não puxa 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o evento se tiver 3 registrados irá sortear 2 desses 3 para participar do evento, sendo assim com 5 registrado irá puxar 2 aleatoriamente para o evento.

 

Sei disso porque testei e é isso que acontece

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, ao meu ver o código tem uma falha, que para iniciantes em programação terão serios problemas!

 

o "problema" deste código/erro está aqui:

 

for(L2PcInstance player : players)

{
if(player != players.get(rnd1) && player != players.get(rnd2))
players.remove(player);
}

Desta forma, será lançada a exeçao aí! (erro que está aparecendo).

 

Troquem o código acima, por esse:

  // fix bluur.
  for (Iterator<L2PcInstance> i = players.iterator(); i.hasNext();)
  {
        L2PcInstance player = i.next();
            
          if (player != players.get(rnd1) && player != players.get(rnd2))
              i.remove();
   }

Abraço!

Editado por Bluur
  • Gostei 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, ao meu ver o código tem uma falha, que para iniciantes em programação terão serios problemas!

 

Neste caso o iterator deve ser utilizado internamente no loop na próxima chamada ao seu método next();

Nao da forma q esta sendo feita.

 

o "problema" deste código/erro está aqui:

 

for(L2PcInstance player : players)

{
if(player != players.get(rnd1) && player != players.get(rnd2))
players.remove(player);
}

Desta forma, será lançada a exeçao aí! (erro que está aparecendo).

 

Troquem o código acima, por esse:

  // fix bluur.
  for (Iterator<L2PcInstance> i = players.iterator(); i.hasNext();)
  {
        L2PcInstance player = i.next();
            
          if (player != players.get(rnd1) && player != players.get(rnd2))
              i.remove();
   }

Abraço!

 

Mudei para isto ai e começou a aparecer um erro diferente do anterior... segue a print:

 

 

errofi11.jpg

 

 

 

 

------------Edit--------------

Erro corrigido, foi somente tirar os @Override que o mod funcionou perfeitamente :D , Obrigado ao pessoal que ajudou a corrigir o erro (:

Editado por kaiser
  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Mudei para isto ai e começou a aparecer um erro diferente do anterior... segue a print:

 

------------Edit--------------

Erro corrigido, foi somente tirar os @Override que o mod funcionou perfeitamente :D , Obrigado ao pessoal que ajudou a corrigir o erro (:

 

É interessante saber um pouco no que você esta mexendo, @override siginfica que você está fazendo a sobreescrita do método herdado, no código RandomFight.java, neste caso, apenas as classes aninhadas devem ter o @override que seria o método run();

 

Sem esse fix acima o evento nao funciona, a não ser que seja alterado sua lógica e estrutura.

Editado por Bluur
  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Entre para seguir isso  

  • Mudanças no Login

    Preste atenção às mudanças no método de login.

    Com a migração para nomes de usuário IPB4 não existe mais.

    Você deve usar seu nome de exibição ou email em vez de nome de usuário.




     



×