Aide commande bloc

dragon60t

Aventurier
28 Mars 2016
3
1
4
32
Bonjour tout le monde,

Je me tourne vers vous afin d'avoir un petit peu d'aide.
En effet je débute avec les commandes blocs et je suis un peu perdu.
Je souhaiterais créer une suite de commande qui permettrait:
- De détecter un changement de météo
- De vérifier l'équipement de chaque joueurs, à savoir, ceux qui porte une armure, complète ou incomplète et de quelle matière.
- De détecter si un joueur est en intérieur ou en extérieur
- De détecter si un joueur est proche d'une source de chaleur (lave, feu, torche)
- D'appliquer un effet de potion personnalisé (par exemple appliqué un effet de poison avec un dégât par seconde réduit et un changement de couleur des cœurs en bleu lors des dégâts)
- De modifier la durée du cycle jour nuit.

Voila le but serais de créer un monde entièrement enneigé, ou les joueurs subissent des dégâts de froid lorsque qu'il sont en extérieur, lorsque la neige tombe, il pourrait se protéger des éléments en portant une armure ( plus ou moins efficace en fonction de l'armure porté, si elle est complète ou non), mais aussi en se trouvant à proximité d'une source de chaleur ou encore en se protégeant des éléments en se réfugiant dans une grotte ou dans une maison.
L'idée est donc d'appliquer un effet customisé de froid (lenteur de déplacement et de minage et perte de vie a cause du froid), mais les joueurs pourront donc se protéger en portant une armure ( avec des différence de protection en fonction des armures, celle de cuir protégeant moins que celle de diamant, le joueur subit donc plus de dégât avec une armure en cuire qu'avec une armure en diamant)

Voila a peu près ce que je souhaiterais réaliser, a voir si c'est faisable et si oui votre aide sera la bien venue.

Merci.
 
Oula !!! Bon, la plus part des trucs sont faisables mais difficilement !
Hum... Je ne vais pas te donner tout de suite la solution, mais je vais te mettre sur la piste, si vraiment tu ne trouves pas alors, je t'aiderai un peu plus.

Bon, tout d'abord, je ne sais pas si tu as l'attention de le faire en no mod :

1. En tout cas, pour détecter la pluie par exemple, tu peux passer par un bonhomme de neige qui meurt sous cette dernière ou alors passé par du feu qui s'éteint quand il pleut.

2. Pour détecter l'armure du joueur, la commande /testfor avec la syntaxe ci-dessous :
Code:
/testfor @a {Inventory:[{tag:{display:{Name:"NOM DE l'OBJET"}},Slot:?b}]}
Par exemple :
Code:
/testfor @a {Inventory:[{tag:{display:{Name:"minecraft:leather_helmet"}},Slot:103b}]}

Pour la liste des slots :

103 -> casque
102 -> plastron
101-> pantalon
100 -> bottes

3. Alors là, ça se complique... L'idée est de détecté la présence d'un bloc au dessus de la tête du joueur. Je te redirige vers une très bonne vidéo de dragnoz.

4. Alors là... Je sèche... Le seul moyen que je vois, c'est de faire un fill de tout les blocks autour du joueur remplaçant la lave ou autre bloc source de chaleur par une éponge en alternance. Si le fill réussis, alors c'est qu'il y a des blocs de lave à proximité. Hayteckk avait fait un système de ce genre pour faire apparaître des particules sous tout blocs de feuilles, tu peux adapter ce système à ton cas.

5. Juste un /effect avec l'effet voulu. Par contre, changer la couleur des coeurs, pas possible, alors prend leffet withered pour avoir des coeurs noirs. Syntaxe :
Code:
/effect<Joueur/Mob><effet de potion>[durée][level][masquer les particules]

6. Pour modifier la durée du cycle jour-nuit, passe par la commande /time set [valeur en tick].
Tu fais une succession de command block avec cette commande mais une valeur différente.
Pour savoir quelle valeur mettre, un peu de maths. Un cycle jour-nuit dur 20 minutes, la valeur est en tick, une seconde = 1 tick.
Donc pour pouvoir avec x minutes en tick : 60*20*x.
Donc un cycle = 24000 ticks

Bref, en espérant t'avoir aidé, si tu as un problème n'hésite pas demander ! ;)
 
Alors, tout d'abord merci pour cette réponse très complète qui va grandement m'aider.
En effet je compte le faire en no-mod.

Je vais tester tout ça dès que possible!

- Je sais pour l'avoir déjà testé, qu'il existe un système à base de redstone et détecteur de lumière qui permet de voir les changements de météo, je pense que je vais plutôt utiliser ce genre de système. A voir si ce dernier est tout aussi fiable que celui que tu me proposes. Je vais faire des tests.

- Super c'est la commande que je cherchais, je vais pouvoir hiérarchiser mes idées et inclure différents niveaux de protection en fonction de l'armure portée, enfin je vais me faire des schémas ce sera plus clair je pense. Il ne me restera plus qu'a me familiariser avec toutes ces commandes ( la partie la plus difficile je pense ^^ )

- Je vais m'inspirer des liens que tu m'as donnés, ça va bien m'aider je pense.

- J'ai déjà fait quelques tests avec cette commande et je bloquais un peu au niveau du level de l'effet mais je ne lâche rien.

- Pour le cycle jour/nuit, pas ce qu'il y a de plus insurmontable mais un peu fastidieux si je veux un bon rendu.

En tout cas merci pour toute ces indications qui vont me permettre de faire avancer le schmilblick.
A très bientôt.
 
Pas de quoi, n'hésite pas à revenir en cas de problèmes ;)
 
Salut à tous!
Je suis là pour une petite rectification d'Oromis pour le cycle jour-nuit:
il y a plusieurs techniques beaucoup plus simples et "fluides", grâce à une seule commande chacune, même pas forcément besoin de les mettre sur un command block:
1:
/gamerule RandomTickSpeed [NOMBRE]
faire gaffe aux majs je me trompe peut être hésite pas à ne pas mettre les majs puis appuyer sur tab et t'as l'orthographe parfaite
Il me semble par défaut c'est à 3 pour vérifier fais la commande sans mettre de nombre
Après t'as juste à tester avec différents nombres tu finiras bien par trouver la vitesse parfaite
2:
/gamerule doDaylightCycle true/false
c'est simple true=le temps passe et false=le temps passe pas
3:
pour finir si tu veux faire un cycle discontinu, Oromis a la réponse

Bon j'ai peut être dit une connerie car j'ai pas vérifié, mais bon, j'aurai tenté ^^
 
  • J'aime
Reactions: Oromis
Alors !
Je ne pense pas que ton grand 1 fonctionnera, car comme le dit le nom de la commande, ça va gérer tout événement aléatoire du jeu ;)
Pour ton second point, tu vas juste arrêter le cycle, et non définir une variation de la durée :p
 
Si tu veux allonger/ralentir le cycle jour/nuit, je te conseille de désactiver le cycle normal du jeu.
Code:
/gamerule DoDayCycle false

Mets ensuite la commande suivante dans un command block :
Code:
/time add 1
1 correspond au nombre de ticks que tu veux ajouter. Puis tu fais une clock avec des répéteurs pour activer le command block à la fréquence souhaitée. Chaque cran du répéteur équivaut à 0.1s, donc à toi de choisir ensuite la durée souhaitée.



Pour la météo je te suggère d'ignorer complètement le cycle par défaut du jeu et de le remplacer par un système pseudo-aléatoire. Tu peux t'inspirer de cette vidéo de Zephirr.
https://www.youtube.com/watch?v=TfoZTQ9sU3Y&t=1323

L'intérêt de ce système est qu'il te permet de manipuler des scores, et donc de savoir à tout moment lorsqu'il pleut ou qu'il fait beau.

On va partir du principe que :
  • 0 → soleil
  • 1 → pluie
  • ton cochon (voir vidéo) se nomme "cochonou" (parce que...)
  • ton cochon est téléporté peu souvent (par exemple une fois toutes les 5mn) à l'aide d'une clock lente

Fais un scoreboard nommé "weather" :
Code:
/scoreboard objectif add weather dummy

Puis sur chaque command block de ta grille aléatoire, tu peux mettre une commande de ce style :
Code:
/scoreboard players set @e[type=pig,name=cochonou] weather 0
Ou :
Code:
/scoreboard players set @e[type=pig,name=cochonou] weather 1

Pour changer la météo en fonction du score, tu peux faire une chaîne de command blocks :
omtWY.png


Les 4 command blocks sont en mode "Toujours actif" avec, de gauche à droite :
Code:
(mode repeat, inconditionnel)
/testfor @e[type=pig,name=cochonou,score_weather=0,score_weather_min=0]
Code:
(mode chaîne, conditionnel)
/weather clear 1000000
Code:
(mode chaîne, inconditionnel)
/testfor @e[type=pig,name=cochonou,score_weather=1,score_weather_min=1]
Code:
(mode chaîne, conditionnel)
/weather rain 1000000

Ce système est une ébauche, à toi de le compléter et de l'adapter à tes besoins.
 
Dernière édition par un modérateur:
Je te remercie, je n'avais pas connaissance de cette nouvelle commande ! :p
 
En tout cas merci pour toute ces pistes, reste plus qu'a trouver un peu de temps pour les tester ( et c'est le plus dur ).
Mais ça avance petit à petit.
 
  • J'aime
Reactions: Oromis