2 votes

Comment empêcher un deuxième joueur d'entrer dans une zone occupée par un autre joueur ?

Je construis une machine à sous qui utilise des blocs de commande pour prendre de l'argent à un joueur et lui en donner. Elle envoie également des messages de jeu au joueur via les blocs de commande. Par conséquent, je ne veux qu'un seul joueur à la fois dans la zone de la machine à sous.

Existe-t-il un moyen de lire un drapeau à un endroit éloigné qui pourrait indiquer qu'une personne se trouve là (parce qu'elle se tient sur une plaque de pression) ? J'ai essayé d'utiliser des plaques de pression sur lesquelles le joueur se tient debout, mais quand le joueur part, le circuit de redstone se "fige" et pense qu'un joueur est toujours en train de jouer. Y a-t-il un moyen de communiquer l'information sans fil ?

2voto

teki Points 1

En disposant d'un système simple pour permettre à un utilisateur d'entrer dans la zone de jeu, comme une bloc de commande en les téléportant, vous pouvez alors utiliser une Verrouillage RS-NOR pour se souvenir si un joueur est dans la zone de jeu ou non. Vous pouvez alors utiliser un Porte ET connecté au RS-NOR et à un bouton, qui se connecte ensuite au bloc de commande pour téléporter l'utilisateur dans la zone de jeu. Il fait également passer le verrou RS-NOR à l'état activé. À l'intérieur de la zone de jeu, vous pouvez avoir un bouton de sortie, qui serait connecté à un bloc de commande pour téléporter le joueur, et aussi à la ligne de réinitialisation du RS-NOR.

Voici un schéma (que j'espère simple) démontrant ce que vous pouvez faire. Les deux blocs de commande (Com. Block Out & Com. Block In) contiendraient les éléments suivants commande de téléportation ( /tp @p x y z ) pour sortir de la zone de jeu, et entrer dans la zone de jeu, respectivement.

Simple One-Person-at-a-time Circuit

Ce circuit permet de s'assurer qu'une seule personne peut entrer à la fois, et il peut également empêcher d'autres personnes d'entrer.


Comme indiqué dans les commentaires, ce système ne sera pas en mesure de vérifier si un joueur quitte la zone de jeu alors qu'il s'y trouve. Cependant, en ajoutant le circuit simple dans le diagramme ci-dessous, éventuellement à un endroit situé sous la zone de jeu (de sorte que vous puissiez utiliser l'option r argument pour vérifier la présence de joueurs), vous pouvez résoudre ce problème. En gros, le circuit ci-dessous vérifiera s'il n'y a pas de joueurs dans la zone de jeu, et si c'est le cas, il émettra un signal qui sera connecté au verrou RS-NOR sur le schéma ci-dessus...

Simple Checker Circuit

Le bloc de commande Com. Block Check contiendrait un testfor command ( /testfor @a[r=5] par exemple).

0voto

Anon Guy Points 1150

Il existe de nombreuses façons de procéder, et tout dépend du degré de complexité que vous êtes prêt à atteindre. La première serait de faire en sorte qu'un joueur doive actionner un levier une fois qu'il est à l'intérieur pour rendre la machine opérationnelle, mais qui fermerait également une porte en fer (ou une porte à piston).

Un exemple possible de ceci pourrait être quand ils entrent à l'intérieur, il y a deux portes en fer, expliquées dans ce diagramme ci-dessous. La première est ouverte, la seconde est fermée, donc pour progresser ils doivent actionner un levier pour ouvrir la seconde porte, mais ce levier fermera la première porte, empêchant les autres d'entrer. (Ce n'est pas infaillible, plusieurs personnes peuvent entrer en même temps, pour perturber le système, mais c'est assez sûr si le joueur entre seul, et n'essaie pas de faire entrer d'autres personnes.

Diagramme

La deuxième méthode consiste à créer des scripts utilisant des déclencheurs de variables, à condition que vous le fassiez sur un serveur bukkit - c'est plus avancé et je ne peux pas vous aider beaucoup, mais quand ça marchera, ça le sera. génial ! Get Variable Triggers - Bukkit Plugin

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