7 votes

Comment devrais-je procéder pour "réinitialiser" une grande arène?

Pour une map de minijeux que je suis en train de créer, j'ai une grande arène destructible de dimensions (320*320*116). Les joueurs ont des explosifs, des blocs, etc. et toute la zone peut changer. À la fin du match, j'aimerais restaurer toute l'arène à son état initial, afin qu'un autre match puisse avoir lieu.

Mon ancien plan était simplement d'avoir une arène de secours adjacente à celle normale, et ensuite, après qu'un match se soit terminé, un ArmorStand serait téléporté autour, exécutant une commande /clone avec des coordonnées relatives. Le problème est que la commande de clonage ne peut sélectionner qu'une zone relativement petite et prend assez de temps pour chaque exécution. J'ai estimé que j'aurais besoin de /clone 400 fois, et chaque fois prenait environ 10 secondes.

À part le fait de demander au serveur de réinstaller la carte à chaque fois, existe-t-il des moyens plus efficaces de régénérer l'arène ? Peut-être détecter uniquement les segments de chunks qui doivent être modifiés, ou annuler chaque explosion d'une manière ou d'une autre.

3voto

Alexander Points 353

Vous pourriez utiliser la commande /clone, avec une astuce intelligente : Vous avez deux arènes, et pendant que l'une est en train de /clone, l'autre serait utilisée.

Cela pourrait causer des ralentissements importants, cependant. Je ne sais pas; essayez.

2voto

Xandawesome Points 384

Si vous souhaitez réinitialiser réellement la carte en jeu, vous pourriez utiliser la commande /fill (de préférence dans des blocs de commande) pour remettre tous les blocs à la normale et vous débarrasser de tout feu, etc. et utiliser la commande /kill @e pour tuer tous les mobs (faites /kill @e[type=creeper,Zombie,Skeleton] et etc. pour tuer uniquement les mobs que vous avez invoqués et pas vous en réalité). Vous pourriez utiliser des commandes supplémentaires /setblock pour les zones qui ne sont pas sur un certain axe y (1 bloc étrange sur l'axe y 105, tandis que le reste de l'arène est sur l'axe y 104).

La commande fill : /fill x1 x2 x3 y1 y2 y3 TypeDeBloc

Cependant, si vous souhaitez utiliser les fichiers cachés (%appdata%) et créer des fichiers de sauvegarde de l'arène, vous pourriez le faire également, mais cela ne serait probablement pas possible dans votre situation.

J'espère que cela vous a aidé ! Si vous avez besoin de plus d'informations, n'hésitez pas à commenter et je vous répondrai ! :D

1voto

CHan Points 31

En utilisant des tableaux de scores, vous pouvez suivre l'emplacement des blocs et faire un clonage local de cette zone, mais je ne connais pas la commande elle-même; la seule raison pour laquelle je sais qu'elle existe, c'est parce qu'un YouTuber l'a utilisée pour fabriquer des bombes Zelda ici, mais vraiment avec un espace si grand, la seule bonne façon de remplacer autant de blocs est de le faire avec des blocs de commande individuels, si les jeux durent un certain temps, je construirais 3 instances, 1 que vous utilisez pour le clonage, et deux pour jouer, comme l'a dit ratchet freak, de cette façon vous pouvez continuer à jouer à un autre jeu pendant que les blocs de commande travaillent à réparer le premier jeu auquel vous avez joué, à part cela vous pourriez toujours sauvegarder un fichier de monde avec la carte intacte et la recharger après chaque jeu, même si cela pourrait ne pas être une option viable dans votre situation.

-1voto

ArsenArsen Points 1

/cloner d'abord quelque part, et quand le joueur quitte la zone, /cloner en arrière. Vérifiez si le joueur est:

/testfor @a[x,y,z,r=rad]

exécuté dans le comparateur à partir du bloc de commande, vers l'inverseur et vers le bloc de commande /clone pour cloner en arrière. Remplacez x, y, z par les coordonnées du centre de la zone et rad est la taille de la zone en tant que cercle.

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