On en a déjà tous rêvé. Le jour où Minecraft proposerait des pistolets sans avoir à installer de mod, que ce soit pour un serveur ou juste pour le fun ! Certains en rajoutent avec des systèmes vraiment complexes, or aujourd'hui, en 1.14, l'arbalète nous le permet très facilement !
En voici un aperçu :
Pour créer ce pistolet, nous allons suivre les étapes suivantes :
Pour commencer vous devrez ajouter deux objectifs en utilisant par exemple les commandes dans le chat.
Le premier va nous permettre de compter le nombre de balles qu'il reste dans le barillet (le chargeur). À 0, l'arbalète ne se rechargera plus. Nous allons donc l’appeler "pistolBullets" :
/scoreboard objectives add pistolBullets dummy
Le second est un timer qui permet de recharger l'arbalète avec un petit délai. Il sera alors nommé "pistolRecharge" :
/scoreboard objectives add pistolRecharge dummy
Maintenant que les objectifs ont été ajoutés, passons au vif du système...
On utilisera une arbalète modifiée pour ne pas que toutes les arbalètes du jeu soient affectées. Pour cela nous allons utiliser un tag personnalisé :
/give @p minecraft:crossbow{Pistol:1b}
Ce tag n'existe pas mais le jeu le détecte et cela va nous permettre de créer une sorte de nouvel item dans le jeu.
Par la suite, mettez ces 8 commandes dans une boucle pour que le système soit opérationnel :
/execute as @a[nbt={SelectedItem:{id:"minecraft:crossbow",tag:{Charged:1b,Pistol:1b}}}] if score @s pistolBullets matches 0 run scoreboard players set @s pistolBullets 6
Ici je mets le score "pistolBullets" du joueur à 6 quand il recharge le "pistolet" (c'est comme ça que je l'appellerai dorénavant) alors qu'il est vide.
En modifiant le 6 en rouge vous modifierez le nombre de balles qu'il recevra. (À noter que peu importe le nombre, le système ne fait qu'attendre que le nombre arrive à 0, vous pourrez donc l'augmenter ou le baisser à votre guise)
/tag @a[nbt={SelectedItem:{tag:{Pistol:1b}}}] add pistol
Cette commande ajoute le tag "pistol" à tout joueur tenant le pistolet dans sa main principale.
/title @a[tag=pistol] actionbar [{"text":"Your munitions : ","color":"gold"},{"score":{"name":"*","objective":"pistolBullets"},"color":"yellow"},{"text":"/","color":"dark_gray"},{"text":"6","color":"red"}]
Ici j'affiche le nombre de munitions qu'il reste dans le barillet du pistolet.
/!\ Ne pas oublier de modifier le
6 en rouge par le nombre que vous avez mis à la place de celui un peu plus haut !
/execute as @a[tag=pistol,scores={pistolRecharge=-1},nbt={SelectedItem:{id:"minecraft:crossbow",tag:{Charged:0b}}}] if score @s pistolBullets matches 1..6 run scoreboard players remove @s pistolBullets 1
Là, je regarde plusieurs choses :
- Si le joueur tient le pistolet
- Si le pistolet a tiré (Si l’arbalète n'a pas de flèche sur sa texture)
- Si le pistolet a entre 1 et 6 balles dans son barillet
Si tout cela est vérifié, alors je retire 1 à "pistolBullets". Tout cela permet de ne pas retirer 1 si jamais le joueur tient le pistolet déchargé et sans balle à l'intérieur.
/!\ Ne pas oublier de modifier le
6 en rouge par le nombre que vous avez mis à la place de celui un peu plus haut !
/execute as @a[tag=pistol,scores={pistolRecharge=-1},nbt={SelectedItem:{id:"minecraft:crossbow",tag:{Charged:0b}}}] if score @s pistolBullets matches 1..6 run scoreboard players set @s pistolRecharge 10
Ici c'est exactement la même chose sauf que je mets le score de recharge à 10, ce qui va lancer la recharge du pistolet.
/!\ Ne pas oublier de modifier le
6 en rouge par le nombre que vous avez mis à la place de celui un peu plus haut !
/execute as @a[scores={pistolRecharge=0}] if score @s pistolBullets matches 1..6 run replaceitem entity @s hotbar.0 crossbow{Charged:1b,ChargedProjectiles:[{id:"minecraft:arrow",Count:1b}],Pistol:1b}
Cette commande permet de recharger l'arbalète pour pouvoir tirer avec.
/!\ Ne pas oublier de modifier le
6 en rouge par le nombre que vous avez mis à la place de celui un peu plus haut !
/tag @a remove pistol
Après tout cela, le tag "pistol" est retiré par sécurité.
/execute as @a[scores={pistolRecharge=0..}] run scoreboard players remove @s pistolRecharge 1
Finalement, on soustrait 1 à "pistolRecharge" pour ne pas replacer l'arbalète chargée à l'infini.
Vous devriez donc obtenir un système comme celui-ci à la fin :
Et voilà, votre pistolet a été rajouté dans le jeu ! :)
/!\ Le système présente cependant un inconvénient. Vous ne pourrez avoir le pistolet que dans le premier slot de l'inventaire ! Vous pouvez modifier le slot en question en modifiant le
hotbar.0 présent 3 commandes plus haut.
Faire un pistolet avec chargeur :