Anti déconnections en combats
-
Bonjour, je voudrait savoir comment (pas forcement empêcher les joueurs de se déco car c’est impossible) mais par exemple quand des joueurs sont en combats et que 1 des deux se déconnecte le serveur exécute la commande /broadcast Le joueur <player>c’est déconnecter en plein combats (le <player>pointe le joueur qui a déconnecter)</player></player>
-
Salut,
Il y a un event de fml lorsqu’un joueur se déconnecte (PlayerEvent.PlayerLoggedOutEvent) et il y a la fonction player.getAttackingEntity() qui renvoie l’entité l’ayant attaqué récemment.
player.getAttackingEntity() est null s’il n’y a pas d’attaquant récent.Donc tu as juste a envoyer un message si player.getAttackingEntity() n’est pas null.
-
Oui mais part exemple si je fait comme tu ma dits sa va dire que meme si il la attaquer il y à 2min il peux toujours pas ce déco
-
Non.
Je ne connais pas le timer exacte, mais c’est pas du tout 2 minutes. Minecraft utilise player.getAttackingEntity() pour les messages de mort.
Si tu te fait attaqué par un joueur et que tu meurs dans la lave 2 minutes après il y a juste écrit “x est mort dans la lave” et non “x est mort dans la lave lors d’un combat contre y”.Faudrait vérifier dans le code mais à mon avis au bout de 15 secondes voire moins sans être attaqué player.getAttackingEntity() renvoie à nouveau null.
EDIT : je viens de vérifier dans le code, c’est 300 tick, donc exactement 15 secondes.
-
sauf si je dis des conneries le timer est de 15sc pour ton principe de combat.
-
Au cas ou personne ne l’a dit, le timer est de 15 secondes
-
Alors en voulant mettre en résolu les sujet que j’ai pas mis j’ai retrouvé celui là donc j’ai fait se que ta dit sauf que j’arrive pas à regarder si c’est supérieure à null
@SubscribeEvent public void PlayerLoggedOutEvent(PlayerEvent.PlayerLoggedOutEvent event) { event.player.getAttackingEntity(); }