Pages :: 1
Bonjour à tous !!!
Dans ce tutoriel, je vais vous montrer comment réaliser un changement d'armes sur tous les squelettes de la map : ils prendront une épée lorsqu'ils se situent à moins de 4 blocs d'un joueur, un arc lors ce qu'il est à plus de 4 blocs.
Tout d'abord faîtes une fill clock (ou autres clock rapide) puis désactivez la sortie des command blocks (pour ne pas être spam de messages, /gamerule commandBlockOutput false).
Ici, elle est dirigée vers le sud avec, dans le command block du haut :
- /fill ~1 ~ ~ ~1 ~ ~3 stone
Puis dans celui du bas :
- /fill ~-1 ~ ~ ~-1 ~ ~3 redstone_block
Créez ensuite un objectif nommé Switch
- /scoreboard objectives add Switch dummy
Il faut tout d'abord détecter l'objet que porte en main le squelette puis lui attribuer un score de 1 s'il porte un arc dans un rayon de 4 blocs du joueur.
Pour cela, mettez un command block sur cette clock puis écrivez ceci dedans :
- /execute @a ~ ~ ~ scoreboard players set @e[type=Skeleton,r=4] Switch 1 {Equipment:[{id:"minecraft:bow"}]}
Pour l'expliquer, le joueur va éxécuter en boucle une commande qui mettra 1 à l'objectif Switch à tout squelette se trouvant dans un rayon de 4 et portant un arc.
S'il porte bien un arc (donc si son score est de 1), il faut ajouter un command block qui remplacera l'arc par une épée en fer :
- /replaceitem entity @e[type=Skeleton,score_Switch_min=1,score_Switch=1] slot.weapon minecraft:iron_sword 1 0
Cette commande va remplacer l'arc tenu en main par une épée QUE si le score Switch du squelette est de 1.
Là, le système en lui-même est fini, si vous essayez, le squelette prendra bien une épée si vous êtes dans le rayon sélectionné par contre si vous vous en éloignez il gardera l'épée et là on veut qu'il reprenne l'arc donc continuons !
Maintenant, il faut détecter si le squelette tient une épée alors qu'il n'est plus dans le rayon :
- /execute @a ~ ~ ~ scoreboard players set @e[type=Skeleton,rm=5] Switch 0 {Equipment:[{id:"minecraft:iron_sword"}]}
Plus ou moins la même commande que tout à l'heure sauf que là on regarde dans un rayon minimum de 5 autour du joueur s'il se trouve un squelette ayant une épée.
Comme pour qu'il prenne l'épée, on rajoute une commande lui donnant l'arc si le score est de 0
- /replaceitem entity @e[type=Skeleton,score_Switch=0] slot.weapon minecraft:bow 1 0
Il ne reste plus qu'une chose à ajouter, car là si vous essayez le système, le switch fonctionnera dans les deux sens mais le squelette ne tirera pas avec l'arc.
C'est parce que la commande lui donnant l'arc le "spam" (car le score reste à 0) donc le changement ce fait en permanence ce qui déroute un peu le squelette. Donc ajoutons une commande en sortie des deux command blocks changeant l'état du squelette pour mettre son score à 2.
- /execute @a ~ ~ ~ scoreboard players set @e[type=Skeleton] Switch 2
Et voilà, le système fonctionne parfaitement !!!
J'espère qu'il vous aura plu.
Hors ligne
Système intéressant, mais n'aurait-il pas été possible d'exécuter sur tous les joueurs un /entitydata donnant une épée au squelette dans un rayon de 4 (Même si la portée et de 5 je crois ) et un autre qui donnerait un arc à tous les squelettes dans un rayon minimal de 5 blocs?
EDIT: N'écoute pas mes idées, cela ne fonctionnerait déjà pas en multijoueur, et puis le squelette se ferait spam (Même si avec un entitydata je ne suis pas convaincu que ça le dérange grandement ^^)
Ton système fonctionne-t-il en multijoueur? Car c'est le plus intéressant
Dernière modification par Rokoudram (19/06/2015 09:31:39)
Hors ligne
Salut, ça va?
Le système fonctionne très bien en multi-joueur sachant que je l'ai créer de base pour un serveur ^^
Hors ligne
Mais si un squelette est proche d'un joueur (5 blocs) mais qu'il est à 15 blocs d'un autre joueur...
Il va switch continuellement entre arc et épée non?
Hors ligne
Salut, ça va?
Hum... Je dois t'avouer que je n'ai pas fait attention à ce point là ^^". La fois où je l'avais essayé en multi-joueur, ça n'avait pas poser de problème mais étant donner que le serveur sur lequel j'avait fais ce système a fermé, je ne peux pas retourner essayer. Si tu as un moyen d'essayer de ton côté, ça permettrais de vérifier le switch continuel !
En tout cas, merci pour ta remarque !! ^^
Hors ligne
Je n'ai aucun moyen de vérifier le fonctionnement de ton système, mais je pense bien que j'ai raison
Je peux à la limite chercher un moyen pour que cela fonctionne en multi, je pourrais te faire ça pour demain ou dimanche si je suis gentil
Hors ligne
Salut, ça va?
xD, pourquoi pas, je chercherais aussi un moyen de contourner ce problème.
Merci encore ^^
Hors ligne
Il faudrait reformuler les commandes pour que ça marche bien en multi, il me semble.
Quoique...
Hors ligne
Ne pouvoir apprendre n'est pas honte, mais bien de ne pas vouloir.
Aurélien, dans nos cœurs.
Non, ce système ne peut pas fonctionner en multi juste en remodelant les commandes. Il faut les changer, modifier le comportement du système et l'utilisation des scoreboards
Hors ligne
Salut, ça va?
Même en changeant les deux détections ? Donc :
/execute @a ~ ~ ~ scoreboard players set @e[type=Skeleton,r=4] Switch 1 {Equipment:[{id:"minecraft:bow"}]}
/execute @a ~ ~ ~ scoreboard players set @e[type=Skeleton,rm=5] Switch 0 {Equipment:[{id:"minecraft:iron_sword"}]}
Par :
/execute @e[type=Skeleton] ~ ~ ~ execute @p ~ ~ ~ scoreboard players set @e[type=Skeleton,r=4] Switch 1 {Equipment:[{id:"minecraft:bow"}]}
/execute @e[type=Skeleton] ~ ~ ~ execute @p ~ ~ ~ scoreboard players set @e[type=Skeleton,rm=5] Switch 0 {Equipment:[{id:"minecraft:iron_sword"}]}
Le système fonctionne toujours en solo avec la modification, plus qu'à essayer en multi !
Dernière modification par theogiraudet (19/06/2015 18:01:55)
Hors ligne
En fait ça reviendra au même, mais pour 2 squelettes maximum sur toute la map (Si je dis pas de bêtises ^^')
Hors ligne
Salut, ça va?
Euh... Je ne vois pas pourquoi ^^"
Hors ligne
Moi non plus. Je pense qu'un système pareil, en multi, ça ne peut être réalisable qu'avec des ArmorStand qui détectent un joueur dans un certain rayon, ou en plaçant la commande avec un /execute @e[type=Skeleton], soit du point de vue du monstre (ici le squelette) visé.
Hors ligne
C'est vrai que mon compte fait un peu... poussiéreux... est-ce que c'est grave, Docteur ?
Eeeeeeeh, ça fait quatre ans que je suis inscrit ici !
/execute @e[type=Skeleton] ~ ~ ~ execute @p ~ ~ ~ scoreboard players set @e[type=Skeleton,r=4] Switch 1 {Equipment:[{id:"minecraft:bow"}]}
/execute @e[type=Skeleton] ~ ~ ~ execute @p ~ ~ ~ scoreboard players set @e[type=Skeleton,rm=5] Switch 0 {Equipment:[{id:"minecraft:iron_sword"}]}
Le système fonctionne toujours en solo avec la modification, plus qu'à essayer en multi !
Que penses-tu de ceci Litterae ?
Dernière modification par theogiraudet (19/06/2015 22:05:29)
Hors ligne
Beaucoup mieux. Une fois les épreuves de fin d'année achevées, je prendrais plus de temps. Là, j'suis un peu... plein.
Hors ligne
C'est vrai que mon compte fait un peu... poussiéreux... est-ce que c'est grave, Docteur ?
Eeeeeeeh, ça fait quatre ans que je suis inscrit ici !
Pas de problème, bon courage ;)
Hors ligne
Pages :: 1