Déroulement d'un match Extractioncraft
Cette page documente ce qui se passe réellement entre le moment où un match est créé et celui où le monde instancié est supprimé, y compris les minuteries, les règles d'extraction et la façon dont les joueurs perdent leur équipement.
Créer le match
/exc createMatch <contentPackage.yml> transmet le betterStructuresModulesContainerName du paquet à BetterStructures, qui génère un tout nouveau monde instancié de manière asynchrone. Lorsque la génération se termine :
- Un
ExtractionMatchest créé pour ce monde et démarre à l'état en attente. - Le joueur qui a exécuté la commande est ajouté au match et téléporté à un point d'apparition choisi au hasard dans le nouveau monde.
- Les boss instanciés définis par les pools d'apparition de la carte sont générés.
Toute personne entrant dans le match est placée en mode Aventure, et son mode de jeu ainsi que sa position précédents sont mémorisés afin d'être restaurés à la sortie.
Il n'y a ni file d'attente ni matchmaking. Un match existe parce que quelqu'un l'a créé.
Attente des joueurs
/exc createMatch est le seul chemin de code qui place un joueur dans un match. Extractioncraft n'enregistre aucune sous-commande join et rien d'autre n'appelle la méthode de connexion du runtime partagé : un match contient donc actuellement exactement un joueur, celui qui l'a créé. Tout ce qui suit à propos de la connexion décrit le runtime de match partagé de MagmaCore sur lequel Extractioncraft s'appuie — il est configuré, mais rien ne l'atteint encore.
Pendant que le match est en attente :
- Le chemin de connexion autoriserait des joueurs jusqu'au
maxPlayersdu paquet (8 pour tous les paquets premade Kobold Mines), en rejetant une instance pleine avecfailedToJoinOngoingMatchAsPlayerInstanceIsFull. - Une fois le match lancé, plus personne ne peut le rejoindre — les retardataires reçoivent
failedToJoinOngoingMatchAsPlayerMessage. - Le mode spectateur n'est pas disponible. Extractioncraft ne marque jamais ses matchs comme observables, donc les connexions de spectateurs sont toujours rejetées et les messages de spectateur de
messaging.ymlne sont jamais envoyés. - Partir maintenant ne coûte rien : la règle de suppression des objets ne s'applique qu'une fois le match lancé.
Démarrage
N'importe quel joueur présent dans le match peut exécuter /exc start.
- S'il y a moins de
minPlayersprésents, le match refuse de démarrer et tout le monde en est informé viamatchFailedToStartNotEnoughPlayersMessage($amountest remplacé par le nombre requis). - Sinon, un compte à rebours de 3 secondes se déroule, avec une mise à jour du titre par seconde.
- Si le nombre de joueurs descend sous
minPlayerspendant le compte à rebours, le match est interrompu et se termine immédiatement.
Dès que le compte à rebours s'achève :
- Des coffres et des tonneaux sont placés sur toute la carte.
- L'interaction avec la redstone, bloquée pendant la mise en place de la carte, est débloquée afin que les leviers d'extraction puissent être utilisés.
- La minuterie de 15 minutes, la bordure du monde rétrécissante et la boussole en barre de boss démarrent toutes.
- La version décorative (inutilisable) de chaque point d'extraction est collée dans la carte.
Minuteries
| Minuterie | Durée | Effet |
|---|---|---|
| Minuterie du match | 15 minutes | Affichée sous la forme Timer MM:SS sur le tableau d'affichage latéral Extractioncraft, rafraîchie une fois par seconde. S'arrête à 00:00. |
| Déverrouillage des points d'extraction | 1 minute après le départ | La version utilisable de chaque point d'extraction est collée, avec son levier. |
| Fenêtre d'extraction | 20 secondes | Déclenchée en tirant le levier d'un point d'extraction. |
| Ouverture d'un conteneur | 3 secondes | Temps pendant lequel vous devez rester immobile pour piller un coffre ou un tonneau. |
La minuterie du match ne met pas fin au match par elle-même — c'est la bordure du monde qui le fait.
La bordure du monde
La bordure commence à 740 blocs de large et rétrécit d'un bloc toutes les 24 ticks environ (à peu près 1,2 seconde), atteignant zéro peu avant la barre des 15 minutes (740 étapes de rétrécissement à 24 ticks chacune, soit 14 minutes et 48 secondes).
La distance d'avertissement de la bordure est fixée à la largeur actuelle de la bordure moins 50 (690 blocs au départ). Comme Minecraft interprète la distance d'avertissement comme « à combien de blocs de la bordure l'écran commence à se teinter », une valeur aussi grande couvre toute la zone jouable : la surcouche rouge d'avertissement est donc active pour tout le monde pendant tout le match, et non uniquement lorsque vous approchez du bord.
Comme BetterStructures fait varier le niveau des boss selon la distance au centre de la carte — les niveaux les plus élevés au milieu, les plus bas sur les bords — la bordure qui rétrécit pousse régulièrement les joueurs vers la partie la plus difficile et la plus rémunératrice de la carte.
Une fois que la bordure atteint zéro, les dégâts de bordure deviennent létaux, et les dégâts létaux retirent les joueurs du match (voir ci-dessous). Lorsque le dernier joueur est parti, le match se termine et son monde est supprimé.
S'extraire
- Trouvez un point d'extraction. La barre de boss en haut de l'écran est une bande de boussole : elle affiche un marqueur
⦿pour chaque point d'extraction situé à moins de 90° de votre direction de regard, à raison d'environ 3° par caractère. La barre apparaît dès le début du match, mais elle reste vide pendant la première minute — les marqueurs ne sont dessinés que pour les points d'extraction utilisables, qui ne sont pas placés avant le déclenchement de la minuterie de déverrouillage. - Faites un clic droit sur le levier du point d'extraction. Le levier est consommé, toute personne dans un rayon de 10 blocs voit « You have triggered an exit! », et une unique fenêtre d'extraction de 20 secondes s'ouvre pour ce point.
- Tenez-vous à l'intérieur de la zone d'extraction — un cube s'étendant à 3 blocs du point d'extraction dans toutes les directions. Tant que vous êtes dedans, vous voyez
Extracting! in N seconds!. - En sortir affiche
Extraction cancelled!, mais la fenêtre continue de s'écouler. Revenir à l'intérieur avant sa fermeture compte toujours. - À la fermeture de la fenêtre, toutes les personnes présentes à l'intérieur s'extraient en même temps :
Victory / Extraction successful!. Elles sont retirées du match et conservent tout ce qu'elles transportent.
Tirer le levier le détruit. Si vous déclenchez un point puis manquez la fenêtre de 20 secondes, ce point d'extraction est perdu — trouvez-en un autre.
Mort et perte d'objets
Les matchs Extractioncraft donnent une seule vie à chaque joueur : il n'y a ni réapparition ni coffre de mort.
- Les dégâts qui tueraient un joueur sont purement et simplement annulés. À la place, le joueur est retiré du match.
- Lors de son retrait, ses points de vie sont restaurés au maximum, son mode de jeu précédent est rétabli et il est téléporté là où il se trouvait avant d'entrer.
- Tout ce qui se trouve dans son inventaire est lié à l'âme (enchantement soulbind d'EliteMobs) — puis, si le retrait n'était pas une extraction réussie et que
deleteItemsOnFailToExtractvauttrue(la valeur par défaut), l'inventaire entier est vidé.
Le même chemin de retrait est utilisé pour /exc leave, /exc quit et la déconnexion : les trois vous font donc perdre votre butin dans un match en cours.
| Façon de partir | Conserve le butin ? |
|---|---|
| Extraction à un point d'extraction | Oui |
| Tué par un mob, un joueur ou la bordure | Non (avec la configuration par défaut) |
/exc leave ou /exc quit en pleine partie | Non (avec la configuration par défaut) |
| Déconnexion en pleine partie | Non (avec la configuration par défaut) |
| Départ pendant que le match était encore en attente ou en compte à rebours | Oui |
Protections du monde
Le monde de match instancié est protégé pendant toute sa durée de vie :
- Les joueurs ne peuvent ni casser ni poser de blocs, ni utiliser de poudre d'os, ni endommager le terrain.
- L'interaction avec la redstone est bloquée jusqu'au démarrage du match.
- Le PvP est bloqué lorsque le paquet de contenu définit
pvpEnabled: false. - Les téléportations vers ou depuis le monde du match sont annulées. Seules les téléportations effectuées par le plugin lui-même passent.
- Pendant que le match est en cours, le runtime recherche des intrus dans le monde du match. Les opérateurs sont exemptés et reçoivent un avertissement en barre d'action au lieu d'être retirés. Notez que le retrait lui-même ne fonctionne que sur les joueurs pour lesquels le serveur possède encore une fiche de joueur de match (toute personne ayant participé à un match depuis le dernier redémarrage) ; un joueur n'ayant jamais participé à un match est détecté mais pas réellement déplacé.
- Un chien de garde vérifie également les joueurs ayant quitté la région du match, mais il tente de les replacer à l'emplacement de départ de l'instance, qu'Extractioncraft ne définit jamais — ce filet de sécurité précis ne fonctionne donc pas actuellement. En pratique, les téléportations hors du monde du match sont de toute façon déjà annulées.
Les administrateurs peuvent désactiver ces protections pour eux-mêmes avec /exc protection bypass.
Fin du match
Un match se termine lorsque le dernier joueur en est retiré — qu'il se soit extrait, soit mort, soit parti ou se soit déconnecté. La fin du match supprime définitivement le monde instancié : rien de ce qui y a été laissé ne survit.
Les matchs sont également démantelés lorsque le plugin est désactivé, ce qui inclut /exc reload et l'arrêt du serveur.