1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Résolu Summon/Give

Discussion dans 'Commands blocks & Redstone' créé par gege83var, 2 Juin 2015.

  1. gege83var

    gege83var Mineur

    Inscrit:
    31 Juil 2013
    Messages:
    402
    Points:
    86
    Sexe:
    Homme
    Bonjour,

    Se que je veut faire : Quand le joueur est sur un block d'obsi, on lui give une enderperle (1 seul) et que pour en avoir une autre il doit mourrir. Jusque-là rien de très compliquer, on test si le joueur est sur le block, l'armor stand execute le give, puis le joueur tue les entité armor stand dans un rayon de 1. Mais le problème que j'ai c'est le summon de l'armor stand. J'arrive a le faire spawn, mais se que je voudrait c'est qu'il est summon quand le joueur est sur l'obsi, mais qu'il ne respawn pas tant qu'il n'est pas mort. Quand le joueur est sur un block de diam's il execute une clock rapide et quand il meurs il respawn sur un block de diam's donc reset. Et je voudrait que le summon se fassent a se moment là. Car après je peut toujours le faire spawn a chaque fois que le joueur est sur un block de diam's mais si les niveaux en comportent plusieurs sa fait pas mal de commandes, alors que le problème peut être résolu en 1 ou 2 commandes (je pense). Voilà les commandes que j'utilise.

    Code (cpp):
    /execute @p ~ ~ ~ detect ~ ~-0.2 ~ obsidian 0 execute @e[type=ArmorStand,name=Perle,r=0,5] ~ ~ ~ give @p ender_pearl
    Exécuter en 1er. Qui permet de give l'ender perle.
    Code (cpp):
    execute @p ~ ~ ~ detect ~ ~-0.2 ~ obsidian 0 execute @p ~ ~ ~ kill @e[type=ArmorStand,name=Perle,r=0,3]
    Exécuter en 2e. Qui kill l'armor stand.

    Comme vous l'aurais compris le summon me pose problème, donc si vous avez une idée se serait sympa, merci :)

    EDIT: au final j'ai réussi :)
     
    #1 gege83var, 2 Juin 2015
    Dernière édition: 2 Juin 2015
  2. lantotol

    lantotol Enter the World

    Inscrit:
    31 Juil 2014
    Messages:
    26
    Points:
    20
    Sexe:
    Homme
    Je pense savoir comment faire mais je n'ai pas très bien compris ,tu peut me faire une liste:
    -il arrive sur le bloc
    -on lui give une ender pearl
    -il kill les ...
     
  3. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    611
    Points:
    86
    Sexe:
    Homme
    Je te déconseiller fortement d'utiliser un tp continu d'Armorstand pour des trucs dans ce genre, utilise plutôt les scoreboard !
    Faits ces commandes:
    Code (cpp):
    scoreboard objectives add Mort deathcount
    scoreboard objectives add Give dummy
    Puis mets ces commandes dans l'ordre dans une fill clock
    Code (cpp):
    execute @a[score_Give=0] ~ ~ ~ detect ~ ~-1 ~ minecraft:obsidian 0 scoreboard players set @p Give 1
    give @a[score_Give_min=1,score_Give=1] minecraft:ender_pearl
    scoreboard players set @a[score_Give_min=1] Give 2
    scoreboard players set @a[score_Give_min=2,score_Mort_min=1] Give 0
    scoreboard players remove @a[score_Mort_min=1] Mort 1
    Normalement, ça devrais marcher :)
     
  4. gege83var

    gege83var Mineur

    Inscrit:
    31 Juil 2013
    Messages:
    402
    Points:
    86
    Sexe:
    Homme
    Dans la même journée ou j'ai posé la question j'ai trouvé une solution. Donc merci de ton aide quand même :) Mais je vais vous montrer comment j'ai fait qui est beaucoup plus cours.
    2 clock, 1 continue (la plus rapide possible tout le temps activé) et l'autre qui s'active que quand le joueur est sur du diam's ou gold (début de map ou chekpoint sur la map).

    Dans la continue et dans l'ordre.
    Code (cpp):
    /execute @p ~ ~ ~ detect ~ ~-0.2 ~ obsidian 0 execute @e[type=ArmorStand,name=Perle,r=0,5] ~ ~ ~ give @p ender_pearl
    Code (cpp):
    execute @p ~ ~ ~ detect ~ ~-0.2 ~ obsidian 0 execute @p ~ ~ ~ kill @e[type=ArmorStand,name=Perle,r=0,3]
    Et dans l'autre et dans l'ordre aussi.
    Code (cpp):
    kill @e[type=ArmorStand,name=Perle]
    Code (cpp):
    execute @e[type=ArmorStand,name=Obsidian] ~ ~ ~ /summon ArmorStand ~ ~ ~ {CustomName:"Perle",Invisible:1,Invulnerable:1,NoBasePlate:1,NoGravity:1}
    Pour vous expliquer, sur chaque block d'obsi, je summon (à la main) un armor stand renommer Obsidian. Lors de l'update (block d'or ou de diam's) on va kill l'armor stand name perle puis le remettre (afin d'éviter d'en avoir des milliers). Et quand le joueur et sur le block d'obsi l'armor stand "Perle" va lui give une ender perle puis mourrir, il ne pourra donc pas en redonner. Et une fois update, "perle" sera de nouveau là prêt à lui donner une ender perle. (y'a un clear de l'inventaire afin d'évité d'en avoir plusieurs).
    Au final, c'étais une solution pas très compliquer, mais merci de ton aide :)

    PS: Je n'aime pas trop utiliser les scorboard (bien que très utile voir obligatoire, je l'accorde) car c'est trop compliquer pour moi XD Même si un jour j'aurais pas le choix de l'utiliser :(
     
  5. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    611
    Points:
    86
    Sexe:
    Homme
    Honnêtement, je trouve inutile de s'obstiner sur des ArmorStand, qui rajoute des entités et qui sont peu pratique à utiliser. Mais bon, tu fais comme tu veux...
     
  6. gege83var

    gege83var Mineur

    Inscrit:
    31 Juil 2013
    Messages:
    402
    Points:
    86
    Sexe:
    Homme
    C’est vrai que les armor stand (entité en général) ont de gros risque de lag en fonction des commandes utilisés, mais permettent beaucoup de possibilités aussi. Mais se système est pas trop dangereux du au kill de l’armor stand. Après trop d’entités cause des lags c’est vrai. Mais de toute façon je n’ai pas le choix d’en utilisés pour la map. Je te l’explique vite fait, c’est une map de jump sur des block de verre qui se brisent quand ont est dessus. Et en penssant à ton idées, les scoreboard pourraient être d’une grande aide, (mon système actuel marche très bien quand même), et beaucoup plus simple d’utilisation au lieu de mettre des entités de partout. Mais comme j’ai commencer avec je me sens obliger de finir avec. Voilà.
     
  7. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    611
    Points:
    86
    Sexe:
    Homme
    Ok ^^ Par contre moi aussi je créé une map et moi aussi j'utilise des platformes tombantes :( Sincèrement, l'idée t'es venu toute seule ou tu as vu mon post ?
     
  8. gege83var

    gege83var Mineur

    Inscrit:
    31 Juil 2013
    Messages:
    402
    Points:
    86
    Sexe:
    Homme
    Ha :/ Non je n’ai pas vu ton post, j’en est moi même créer un. L’idée m’est venu sur le fait que le temps n’étais pas compter lors des jumps, alors que là, bah ont est obligé de sauter sinon ont recommence. Je vais aller voir ton post voir si c’est le même projet où pas.
     
  9. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    611
    Points:
    86
    Sexe:
    Homme
    Par "post", je parlais juste d'une demande d'aide que j'ai envoyé pour le système :P
    Mais au rythme ou avance ma map, ne t'inquiète pas, la tienne aura bieeen le temps de se faire connaître avant qu'elle face parler d'elle (j'espère) ^^
     

Partager cette page