Configuration Aide dev TIMER

julien0312

Mineur des cavernes
22 Juillet 2015
51
1
28
24
Bonjour, je développe des mini-jeux mais la je doit avouer que je suis perdu.

Mon timer fonctionne quand il y a 1 joueur dans le jeux mais des que un 2ème joueur se connecte le temps s'écoule 2 fois plus vite. Merci de votre aide.

http://pastebin.com/FtrZNJv6
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 531
24
2 247
347
28
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Tout d'abord:
Je pense que ce poste n'est pas dans la bonne section... Ici c'est pour présenter, suggérer et rechercher des plugins. On est plus dans le cas d'un support développement de plugin.

Bref, je chipote :p

Concernant ton soucis tu ne nous montre pas où tu appel cette classe "Timer". Mais d'expérience je pense simplement que dans ton "onPlayerJoin" (ou on PlayerConnect) tu lance le timer.

Du coup lors de la première connexion, pas de soucis le timer se lance. Mais lors de la seconde connexion, pareil il relance un timer ! Il faut que tu mettes un boolean qui vérifie que ton timer ne soit pas encore lancé (et que tu mette ce boolean à True lorsque tu lance ton compteur pour la première fois).

Si tu veux comprendre en détail pourquoi il avance deux fois plus vite, c'est tout simplement parce que ta variables "timer" est communes aux deux classe/instances créé (vu qu'elle est en "static" :) ).

Sache que ton code peut grandement être optimisé !
Typiquement ceci:
PHP:
                if (Timer.timer == 10){
                Bukkit.broadcastMessage("§6Fin du jeux dans 5 secondes");
                }
                if (Timer.timer == 8){
                Bukkit.broadcastMessage("§6Fin du jeux dans 4 secondes");
                }
                if (Timer.timer == 6){
                Bukkit.broadcastMessage("§6Fin du jeux dans 3 secondes");
                }
                if (Timer.timer == 4){
                Bukkit.broadcastMessage("§6Fin du jeux dans 2 secondes");
                }
                if (Timer.timer == 2){
                Bukkit.broadcastMessage("§6Fin du jeux dans 1 seconde");
                }
Qui pourrait plus être comme ceci:
PHP:
                if (Timer.timer == 10 || Timer.timer == 8 || Timer.timer == 6 || Timer.timer == 4
                        || Timer.timer == 2) {
                    Bukkit.broadcastMessage("§6Fin du jeux dans " + Timer.timer + " secondes");
                }



Cordialement,
Detobel36[/code]
 

Clément

Modérateur
Ancien
15 Mai 2015
1 456
342
217
23
Je pense que ce poste n'est pas dans la bonne section... Ici c'est pour présenter, suggérer et rechercher des plugins. On est plus dans le cas d'un support développement de plugin.

Effectivement, faute d'inattention de ma part, je déplace.