1. Si vous venez d'arriver sur le forum et que vous êtes un peu perdus, cliquez ici !
    Rejeter la notice

Création map parkour : kill joueur et fill spécifique

Discussion dans 'Mapping' créé par Yodi, 2 Mar 2016.

  1. Yodi

    Yodi Mineur de Fer

    Inscrit:
    19 Jan 2016
    Messages:
    544
    Points:
    116
    Sexe:
    Homme
    Bonjour,
    Je suis actuellement en train de réaliser une map parkours et j'aurais besoin d'une petite aide :

    Je voudrais savoir :
    - s'il est possible de kill un joueur lorsqu'il est placé sur un certain type de block,
    Un truc du genre : /kill @p[position:minecraft:dirt]

    - s'il est possible de garder le jour permanent (pas avec un détecteur de jour/nuit si possible car ne marche pas quand chunk non chargé si je me souviens bien) et je crois qu'un /set day près d'une clock ultrarapide générerais du lag ... :'(

    - Et enfin (pour le moment ^^) s'il est possible d’exécuter un /fill modifiant les blocks d'air en blocks de stone (par exemple) à la suite d'un /excute pour faire quelque chose de ce genre (ne marche pas pour le moment :()
    /execute @p ~ ~ ~ /fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 air 0 replace glass 1
    je tiens à préciser que le /fill fonctionne séparément.

    Merci d'avance pour toutes vos réponses qui pourront m'aider, et n’hésitez pas à laisser un commentaire :smile:.
     
  2. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Première demande :

    Tout simplement via un execute detect :
    Code (cpp):
    /execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:dirt 0 /kill @p
    (Si tu veux que cela marche pour un type de dirt en particulier remplace 0 par la damage value du bloc voulu, la dirt de base a 0, la dirt stérile 1... et ainsi de suite, tu peux aussi mettre -1 pour tout inclure, mais attention à ne pas oublier que grass n'est pas dirt)

    Deuxième demande :
    Code (cpp):
    /gamerule doDaylightCycle false
    Troisième demande :

    Tu as inversé l'ordre des blocs, pour remplacer l'air par du verre la commande est :
    Code (cpp):
    /execute @p ~ ~ ~ /fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 glass 0 replace air
    (Ah et je vois que tu as mis un 1 après glass, donc tu veux probablement colorer ton verre, sache que le bloc de verre coloré est stained_glass au lieu de glass et ensuite la damage value donne la couleur)
     
    • J'aime J'aime x 2
    • J'approuve J'approuve x 1
  3. Yodi

    Yodi Mineur de Fer

    Inscrit:
    19 Jan 2016
    Messages:
    544
    Points:
    116
    Sexe:
    Homme
    Merci beaucoup, tout est testé et marche nikel :lol:
    c'est très sympa de ta part, je met en résolu ;)
     
  4. Yodi

    Yodi Mineur de Fer

    Inscrit:
    19 Jan 2016
    Messages:
    544
    Points:
    116
    Sexe:
    Homme
    Up ! Edit :

    Est-il possible de créer une clock (redstone) qui "générerais" cette commande /execute @p ~ ~ ~ /fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 air 0 replace glass 1 durant 3 secondes, puis arrêt automatique. (déclenchement par bouton pression).
    Merci de me répondre si vous savez/avez une quelconque idée ;)

    EDIT :

    J'ai trouvé ça :
    2016-03-06_16.48.24.png
    Command block 1 : allume la clock (setblock ~ ~ ~3 redstone_block)
    Command block 2-2' : la clock en elle-même (2:setblock ~ ~-1 ~ redstone_block / 2':setblock ~ ~1 ~ stone)
    Command block 3 : la commande à générer pendant 3s (execute @p ~ ~ ~ /fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 glass 0 replace air)
    Command block 4 : arrêt de la clock (setblock ~2 ~-1 ~-1 redstone_block)
    Command block 5 : suppression du block placé en 4 (setblock ~2 ~-1 ~1 air)
    Command block 6 : suppression du block placé au centre de la clock (setblock ~2 ~ ~4 air)

    Ce n'est surement pas ce qu'il y a de plus compacte mais ça marche :)
    si vous trouvez mieux, n'hésitez pas ;)
     
    #4 Yodi, 5 Mar 2016
    Dernière édition: 6 Mar 2016
  5. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    116
    Sexe:
    Homme
    Tu crées un scoreboard Timer de type dummy et sur ta fill clock tu mets les commandes :
    /scoreboard players remove @a Timer 1
    /execute @p[score_Timer_min=0] ~ ~ ~ /fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 glass 0 replace air

    Voila maintenant ton système est près sachant que 20 ticks = 1 secondes tu rentres ta commande
    /scoreboard players set @a Timer 60 (3x20=60)
    Et ta commande s'effectuera pendant exactement 3 secondes et il est beaucoup plus facile de changer la durée juste en agrandissant le chiffre que de rajouter des repeater qui font "sale"
    Il te faudra donc 4 command blocks :
    2 pour la fill clock
    1 pour le remove de 1 au score Timer
    et 1 pour le fill tant que le joueur a un score supérieur à 1


    Tu n'as plus qu'à set le score du joueur via plaque de pression
     
  6. Yodi

    Yodi Mineur de Fer

    Inscrit:
    19 Jan 2016
    Messages:
    544
    Points:
    116
    Sexe:
    Homme
    Merci :3
     

Partager cette page