CommandBlock Tutoriel Frappe aérienne avec sélecteur de coordonnées [1.13] (CountClicker 1.0)

Ce post est-il à votre goût? (2 réponses par personne)

  • Super idée!!

    Votes: 1 100.0%
  • Trop long (ben en fait, c'est un peu normal...)

    Votes: 0 0.0%
  • Mal expliqué

    Votes: 0 0.0%
  • Mal structuré

    Votes: 0 0.0%
  • Bien expliqué

    Votes: 0 0.0%
  • Je veux le système de clavier sans rien avec!

    Votes: 0 0.0%
  • Fais-en un one-command!

    Votes: 0 0.0%

  • Total voters
    1

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Bonjour à tous!
Voici une un [petit] apperçu d'un système de ma création permettant de lancer une frappe aérienne à N'importe quel endroit de la map! Des heures de fun à essayer de bombarder les autres en multijoueur, et sans mod, datapack ou autres plugins!

Il s'agit là en réalité d'une utilisation que j'ai trouvée à un "clavier numérique" que j'ai mis sur pied, lequel permet de stocker une valeur définie par un joueur, et qui, grand avantage, est parfaitement compatible avec d'autres système.

Caractéristiques du clavier :
-Nombres à ~10 chiffres max
-Négation disponible (faut bien, si je veux sélectionner toutes les coordonnées possible)
-Affichage de la valeur actuelle
-Effacement de la valeur actuelle
-Bruit de touches (TRÈS important!)
-Système de tag : Une fois la valeur entrée, elle est simplement stockée dans un objectif au choix et le joueur concerné se retrouve avec le tag "Finished"; facile à greffer sur d'autres systèmes
-Compatible en multijoueur et anti-spam-glitch

Voici un apperçu du clavier :
2019-04-08_21.15.41.png
...Et en voici la commande principale (avec l'aide de minecraftjson.com) :
/execute as @p run tellraw @s ["",{"text":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCoordonnées de la cible\n\n","color":"green","underlined":true},{"text":"Coordonnées X : ","color":"gold","underlined":false},{"score":{"name":"@s","objective":"Counter"},"color":"red"},{"text":"\n\n","color":"none"},{"text":"[1]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 1"}},{"text":" ","color":"none"},{"text":"[2]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 2"}},{"text":" ","color":"none"},{"text":"[3]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 3"}},{"text":" CountClicker 1.0, créé par Eglaios","color":"light_purple"},{"text":"\n","color":"none"},{"text":"[4]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 4"}},{"text":" ","color":"none"},{"text":"[5]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 5"}},{"text":" ","color":"none"},{"text":"[6]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 6"}},{"text":" Avec l'aide de ","color":"dark_green"},{"text":"minecraftjson.com","color":"blue","underlined":"true","italic":"true","clickEvent":{"action":"open_url","value":"https://minecraftjson.com"}},{"text":"\n","color":"none"},{"text":"[7]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 7"}},{"text":" ","color":"none"},{"text":"[8]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 8"}},{"text":" ","color":"none"},{"text":"[9]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 9"}},{"text":"\n","color":"none"},{"text":"[0]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add 10"}},{"text":" ","color":"none"},{"text":"[+-]","color":"dark_purple","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add Negate"}},{"text":"\n","color":"none"},{"text":"[Reset]","color":"yellow","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add Reset"}},{"text":" ","color":"none"},{"text":"[OK]","color":"yellow","clickEvent":{"action":"run_command","value":"/tag @s[tag=Typping] add OK"}}]
Les "\n" sont traduits en saut de ligne. En gros, c'est un clear chat intégré dans la commande...

Fonctionnement du clavier :
Le clavier fonctionne avec quelques tags, un score fixe "Count", de type dummy, et un (ou plusieurs) score(s) créés au choix en fonction de l'utilisation. Il nécessite également des joueurs "Dummies", simplement là pour stocker une valeur et dont voici la liste :
2019-04-08_21.06.12.png
Evidemment, jouer avec un pseudo correspondant à l'un des dummies dérèglera le système.

Lorsque le /tellraw de clavier est affiché à un joueur, celui-ci reçoit également le tag "Typping" (Non! Je sais! J'ai gaffé, ça ne prend qu'un "p" mais je ne veux paaaas tout rééditer dans tous les blocs!!! Bof, ça fera un genre de signature...), tag sans lequel appuyer sur les touches du clavier n'aura aucun effet. Il est également nécessaire d'opérer un reset du score "Count".
Toutes les valeurs obtenues seront stockées sur le joueur qui les définit.

Quand un joueur avec le tag "Typping" appuie sur une touche de son choix (par exemple, 1), il recevra un tag temporaire correspondant à sa touche, le rendant affecté une seule fois par une chaîne de commandes. Son score "Count" sera automatiquement multiplié par 10 puis augmenté en fonction de la touche choisie avec une opération de score par rapport aux dummies. Pour finir, il recevra à nouveau le tellraw du clavier actualisé.

Touche [+-] : Multiplie le "Count" par -1. Pour la simplicité du système, il est nécessaire d'utiliser cette touche une fois le nombre positif tapé.

Touche [Reset] : Reset le "Count"... C'est tout...

Touche [OK] : Stocke le "Count" actuel dans un autre objectif au choix, puis ajoute le tag "Finished" au joueur concerné, permettant l'exécution d'une commande après la saisie (entre autres le retrait du tag "Typping").
Avec un système comme celui-là, il est assez facile de le convertir en frappe aérienne. D'abord, voici une image du système complet :
2019-04-08_20.42.50.png

Et maintenant, le fonctionnement :
1.Quand le joueur appuie sur le bouton, il exécute les commandes classiques du clavier et reset des stats, mais reçoit également le tag "Xtarget", indiquant qu'il s'apprête à entrer les coordonnées Z de l'impact

2. Après avoir appuyé sur OK, son tag "Xtarget" est remplacé par "Ytarget" pour sélectionner les coordonnées Z de l'impact (la coordonnée Y de hauteur n'est pas nécessaire, la frappe tombe du ciel). Le "Count" actuel est stocké dans l'objectif "Xtarget" de type dummy, puis reset pour accueillir la coordonnée Z au clavier.

3. Le joueur entre la coordonnée Z, qui est stockée dans l'objectif "Ytarget", et le tag "Ytarget" est remplacé par "Finished"

4. Une fois le tag "Finished" obtenu, le joueur invoque une tnt à ses coordonnées, à la hauteur 256 (limite de construction) avec un tag Fuse de 200 (pour ne pas exploser en l'air, même en monde à basse altitude)
-Dans la map ci-jointe, le joueur invoque la tnt avec tag "Frappe" en 0 256 0 car le worldspawn a été placé proche de ce point, mais ~ 256 ~ est préférable.

5. À l'aide de la fonction de stockage du /execute, les tags Pos[0] et Pos[2] de la tnt "Frappe" sont remplacées par les scores Xtarget et Ytarget du joueur concerné. Elle est donc "téléportée" aux coordonnées sélectionnées


6.

Boum.

Et voilà à peu près à quoi ressemble ce merveilleux système! je mets la map le contenant ci-joint, n'hésitez pas à y jeter un oeuil, et à me suggérer des idées pour utiliser le clavier numérique
La map :!Prompt coords.zip (ça marche?)

Je vais probablement refaire une map pour isoler uniquement le système de clavier numérique dans le but de le réutiliser plus facilement... Je n'hésiterai pas à vous en faire part!
Je songe également en faire un one-command, je verrai si j'ai le temps... et la motivation...
 

Fichiers joints

  • 2019-04-08_20.42.50.png
    2019-04-08_20.42.50.png
    815.9 KB · Affichages: 182
  • 2019-04-08_20.52.45.png
    2019-04-08_20.52.45.png
    29.1 KB · Affichages: 173
  • Prompt coords.zip
    654.4 KB · Affichages: 280

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Au fait, une fois la coordonnée X sélectionnée, le tellraw est répété, mais n'affiche pas que c'est au tour de la coordonnée Z... Encore une chose à arranger...
Evidemment, pour ceux qui ne connaissent pas les clickEvents : Pour appuier sur les touches, il suffit de cliquer dessus en ouvrant le chat!
Autre chose : si vous quittez avant d'avoir terminé le tir, le clavier aura disparu et il faudra répéter la procédure.
N'oubliez pas : la touche [+-], toujours en dernier avant [OK] !