1 votes

Comment configurer une courte immunité après la connexion?

J'aide à gérer un serveur modded FTB Direwolf20 1.10.2 (Forge 12.18.3.2185). J'aimerais donner aux joueurs une courte durée d'immunité après la connexion, par exemple 20 secondes, pour compenser le temps de lag/connection qui entraîne souvent des décès avant que le joueur ne se connecte réellement.

Comment puis-je faire cela? Ajouter un nouveau mod est correct, mais je préférerais une solution vanilla si possible. J'ai accès FTP et multicraft au serveur (pas d'accès root).

Merci!

1voto

idkaaa Points 31

C'est hautement théorique, mais vous pourriez créer un objectif factice de tableau de bord qui compte le nombre de secondes (ou de ticks) qu'un joueur a passées en ligne en utilisant /scoreboard objectives add NOM dummy NOM_AFFICHAGE, puis avoir un bloc de commande ajoutant un score de 1 pour chaque joueur sur cet objectif une fois par tick ou par seconde (aussi longtemps que vous le souhaitez) en utilisant /scoreboard players add @a NOM 1. Désolé si les commandes sont un peu approximatives, je suis loin de mon ordinateur... Ensuite, pour appliquer l'effet invulnérable (absorption ou régénération à des niveaux élevés), essayez de mettre ceci dans un bloc de commande répétitif effet @a[score_max_NOM=20] blahblah avec une durée définie à 1 si vous voulez que cela dure autant de secondes que défini par la valeur max qui, dans ce cas, est 20. Mais alors se pose la question, comment réinitialiser leur score à zéro lorsqu'ils se déconnectent ou se connectent ? C'est là que mes compétences atteignent leurs limites. Je suggère de créer un nouveau fil de discussion demandant comment détecter quand un joueur se déconnecte, puis d'effectuer une action sur ce joueur SPÉCIFIQUE. J'espère que cela vous aidera !

0voto

David Points 11

Vous pouvez utiliser scoreboard...
Il existe un critère appelé stat.leaveGame, vous pouvez l'utiliser pour détecter quand le joueur revient sur le serveur, et exécuter une commande d'effet pour les joueurs dont le score est supérieur ou égal à 1. Ensuite, vous pouvez définir le score à 0 et attendre la prochaine fois


éditer :

Ajouter un objectif scoreboard (détecter le départ du jeu) /scoreboard objectives add leaveGame stat.leaveGame

Donner un effet au joueur qui s'est joint au jeu (a quitté auparavant) /effect @a[score_leaveGame_min=1] minecraft:resistance 4

Effacer leur score /scoreboard players set @a leaveGame 0

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X