Bonjour à tous !
Aujourd'hui, je vais vous présenter une fonction (ou plus précisément une entité) qui pourrait remplacer les ArmorStands : les AreaEffectClouds !
Pour un souci de clarté, je réduirais "AreaEffectCloud" à "AEC".
Partie I : Présentation
Laissez-moi vous dire que vous en avez déjà vu au moins 1 ! Et vous de me répondre :
"Mais pas du tout !"
Vous vous souvenez des potions "lingering" ou "persistantes" ? Pour ceux qui vivent dans une grotte cubique, ce sont des potions qui, une fois lancées produiront un nuage donnant l'effet choisi à toute entité dans ce nuage.
Venons-en au fait : ce nuage est un AEC !
Et c'est le moment où vous (dont @Mlakuss , je l'espère) allez me dire :
"Le rapport avec les commands blocks ?"
J'y viens, j'y viens.
Partie II : Propriétés
Ces AEC ont quelques propriétés très intéressantes dues à leur utilisation "naturelle" qui vont nous être bien utiles !
Voici une liste exhaustive (pour une fois) de ces propriétés :
- Les AEC sont invisibles (enfin presque, on y reviendra).
- Ils n'ont aucune hitbox (on ne peut pas les toucher). Pratique si on a déjà cassé un ArmorStand accidentellement !
- Ils ne sont pas soumis à la gravité.
- Ils sont même invisibles pour les spectateurs !
- Ils ont une taille configurable (ça peut avoir son utilité).
- Leur nom, si CustomNameVisible est à 1 (on y reviendra aussi), est affiché en l'air. Pratique pour faire des hologrammes !
Voici la fin de cette liste !
Partie III : Utilisations
Bon, depuis le temps que vous (je l'espère) lisez ce topic, vous devez vous demander :
"Mais à quoi ça sert ?"
Enfin la partie intéressante ! On ne va pas y aller par 4 chemins (qui mèneront aux AEC de toute façon) :
on peut les utiliser comme des ArmorStands !
Houlà, j'entends déjà certains "commandblockeurs" crier à l'hérésie...
"Attends un minute, il y a certains points pas clairs dans ta liste !
Genre : "invisibles (enfin presque)", ou encore : "invisibles aussi pour les spectateurs"
Premièrement, je dis "presque" car de base, un AEC "en mode ArmorStand" (ne vous inquiétez pas, on en parle tout de suite) dégage des particules de potion. Comment régler ça, on voit ça après avoir expliqué ce qu'est "le mode ArmorStand" :
Si vous ne spécifiez pas certains arguments dans votre commande, votre AEC disparaîtra instantanément.
Tout simplement parce que un AEC a toujours une durée, pour que les potions lingering ne durent pas pour toujours. Il y a deux Data Tags qui contrôlent la durée : Duration et Age. La différence entre les deux ? Age augmente chaque tick (1/20e de seconde) et l'AEC disparaît quand Age a la même valeur que Duration. :confused:
Concrètement, je vous conseille de mettre Duration à 2147483647.
:confused:
C'est la valeur maximum (2 puissance 31 - 1 pour les matheux ). Avec ça, votre AEC durera exactement 3 ans et demi, 18 heures, 9 minutes et 42 secondes. Oui oui, j'ai calculé ça.
Et vous allez me dire que :
"s'ils sont invisibles pour les spectateurs, comment peut-on les voir ?"
Appuyez en même temps sur F3 et B. les hitboxes apparaîtront et vous pourrez voir les AEC. J'ai simplifié tout à l'heure en disant que les AEC n'ont pas de hitbox, comprenez "ils n'ont pas de collision, vous ne pouvez donc pas les toucher".
Bon, sans rentrer trop dans les détails, voici la commande de base que je vous conseille de prendre :
Code (cpp):
/summon AreaEffectCloud ~ ~ ~ {CustomName:"VotreNom",CustomNameVisible:1,Tags:["VotreNom"],Particle:take,Duration:2147483647}
On décortique très rapidement la commande :
- "CustomNameVisible:1b" : fait en sorte que vous puissiez voir le nom flotter en l'air (marche comme les ArmorStands sur ce point là).
- Le tag et le nom devraient être les mêmes, en attendant de voir quelqu'un s'y retrouver avec un AEC appelé "Chat" ayant comme tag "melon"...
- "Particle:take" : Je vous avais dit qu'un AEC pouvait dégager des particules. La particule "take" est une particule invisible.
Un example simple pour une utilisation pratique:
Nous avons 2 chaines de command blocks : l'une disant "1","2" et "3" ,et l'autre disant "A","B" et "C"
Je veux que ma chaîne "123" active la chaine "ABC" quand terminée. Normalement, je mettrais des coordonnées absolues. Supposons ceci.
Zut ! Il faut que je décale ma chaîne "ABC" d'un block ! Et maintenant je dois changer mes coordonnées !
Au lieu de ça, je peux (en premier lieu) créer mon AEC nommé "ABC" à l'endroit où je veux placer mon bloc de redstone avec cette commande :
Code (cpp):
/summon AreaEffectCloud ~ ~ ~ {CustomName:"ABC",CustomNameVisible:1,Tags:["ABC"],Particle:take,Duration:2147483647}
Pour placer mon block, je n'ai besoin que de cette commande
Code (cpp):
/execute @e[name=ABC] ~ ~ ~ setblock ~ ~ ~ redstone_block 0 destroy
Tout en me positionnant à l'endroit où je veut que mon block soit placé. Si je veux bouger ma chaîne d'un block vers le haut, je n'ai qu'à faire cette commande :
Code (cpp):
/tp @e[name=ABC] ~ ~1 ~
Vous ne verrez pas le nom bouger. Un simple bug graphique. un déco-reco devrait suffire.
L'example est un peu tiré par les cheveux car il suffirait de changer 1 coordonnée. Mais quand vous avez de grands systèmes avec plusieurs modules qui interagissent tous entre eux (les vrais savent de quoi je parle), vous voyez que c'est très utile.
Pour tuer votre AEC, utilisez la commande ci-dessous :
Code (cpp):
/kill @e[name=ABC]
Après cette partie-pavé, je propose d'en finir avec la partie la plus raccord avec mon titre.
Partie IV : AEC/ArmorStand, le duel.
AEC :
Avantages :
- A les tags Marker, Invisible, NoGravity et Invulnerable de nature.
- Est beaucoup moins gourmand en ressources.
- Les spectateurs ne seront pas dérangés
- Peuvent être utilisés comme hologrammes.
- Pas être touché ou détruit
Désavantages :
- Les commandes difficiles à manier
Armor Stands :
Avantages :
- Visibles
- Facilement controllables
Désavantages :
- Visibles
- Dérangent les spectateurs
- Beaucoup d'arguments dans les summons
- Plus gourmand en ressources
Vous vous demandez sûrement si les AEC consomment bel et bien moins de ressources. La réponse est oui. Le tableau (en anglais) ci-dessous en est la preuve.
Ça veut par exemple dire que, avec une base d'environ 580 FPS, 1000 ArmorStands mettent les FPS à 216, la où le même nombre d'AEC mettent les FPS à 565. Je pense que tout est dit.
Conclusion :
Je trouve que bien qu'ils soient difficiles à manier au début, les AreaEffectClouds peuvent avoir des fonctions pouvant les rendre meilleurs que les Armor Stands.
Pour les anglophones, un post les décrivant : http://www.minecraftforum.net/forums/minecraft-discussion/recent-updates-and-snapshots/2501473-on-the-usage-of-areaeffectcloud-as-a-marker-entity
N'hésitez pas à me dire ce que vous pensez de ce post, en essayant de vous avoir aidé(e)/instruit(e)
Cordialement, Syst3ms