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

Résolu un /give après respawn

Discussion dans 'Commands blocks & Redstone' créé par IKWYL, 18 Fev 2018.

  1. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    Salut à tous ! Je me tue à trouver comment faire une commande qui donnerai du stuff à un joueur une fois qu'il a cliqué sur le bouton respawn. En fait, mon souci c'est que le /give se fait avant que le joueur clique sur le bouton respawn et lorsqu'il clique dessus, bah les item donnés disparaissent et le joueur fini à poil ><

    code :

    sur clock : /testfor @a {Inventory:[{}]}

    confronté a un comparateur pour inverser la commande (quand l'inventaire est vide, le signal est desactivé) puis le signal conduis au commande de /give :

    /give @a minecraft:bow

    (c'est pas encore optimisé, je sais que ca donnera un arc à tout le monde pas seulement au respawner ^^)

    j'ai testé avec un scoreboard dummy et un deathcount mais je tombe sur le même souci...
    MERCI pour votre aide :)

    PS: je prend aussi les sources qui pourrait m'aider à résoudre mon problème :)
     
  2. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    57
    Points:
    54
    Sexe:
    Homme
    Salut, pour le /give il faut détecter un respawn, on peut le faire avec trois scores :

    stat.timeSinceDeath qui est le temps écoulé après la mort
    stat.playOneMinute qui est le temps dans le jeu
    Dummy pour spécifier les joueurs Respawn

    Premièrement on les créer :

    /scoreboard objectives add tempsmort stat.timeSinceDeath
    /scoreboard objectives add tempsconnecte stat.playOneMinute
    /scoreboard objectives add Respawn dummy


    Puis avec un execute, on va donner le score au joueur qui a au minimum 2 en tempsconnecte pour ne pas détecter les nouveaux connectés (qui rejoignent le monde ou le serveur) et avec le score tempsmort à 1 soit 1 tick après la mort avec un commande block en répétition :

    /execute @a[score_tempsmort_min=1,score_tempsmort=1,score_tempsconnecte_min=2] ~ ~ ~ scoreboard players set @p Respawn 1


    Puis on /give avec un commande block en chaine qui suit :

    /give @a[score_Respawn_min=1] bow


    Tu give ce que tu veux en ajoutant des commandes blocks en chaines, et enfin au bout tu mets :

    /scoreboard players reset @a Respawn


    Voilà en espérant avoir résolu ton problème :smile:
     
  3. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    Les commandes sont réalisés avec succès et leur retour montre bien que j'ai été trouvé quand j'me /kill mais je récupère pasl'arc au respawn =/

    J'ai mis un block en chaîne /say hello pour tenter un debuggage, et enfait j'suis reconnu en boucle par le répéteur {/execute...}, est-ce qu'il manque pas un reset des stat.time et stat.play ?

    En tout cas merci de te pencher sur mon problème ! :D
     
  4. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    57
    Points:
    54
    Sexe:
    Homme
    Bonjour,

    Le score stat.timeSinceDeath se reset après chaque mort et tu est censé être détecte seulement avec 1 pour le score stat.timeSinceDeath qui arrive pendant seulement 1 tick avec "score_tempsmort_min=1,score_tempsmort=1" donc c'est très étrange qu'il te détecte en boucle, tu as bien mis le "score_tempsmort=1" ? Car si il n'y est pas c'est normal que tu sois détecte en boucle :smile:
     
  5. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    oui oui j'ai copié collé tes commandes ^^ je réessaierai demain, j'pense que tes commandes sont bonnes, peut être une initialisation qui s'est mal passé
     
  6. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    57
    Points:
    54
    Sexe:
    Homme
    Ok effectivement j'ai re testé à l'instant et elles marchent, j'envoie un screen avec l'emplacement des commandes :
    Give arc.png
     
  7. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    tes brick block correspondent aux commandes blocks en chaîne on est d'accord ?
     
  8. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    57
    Points:
    54
    Sexe:
    Homme
    Oui, j'ai totalement oublié mon ressource pack, mais oui, c'est bien des commandes blocks en chaînes
     
  9. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    le système à l'identique, rien à faire, toujours pas d'arc =[

    /execute @a[score_tempsmort_min=1,score_tempsmort=1,score_tempsconnecte_min=2] ~ ~ ~ scoreboard players set @p Respawn 1 /// repete, tjr actif

    /give @a[score_Respawn_min=1] bow /// chaine, redstone

    /scoreboard players reset @a Respawn /// chaine, redstone
     
  10. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    57
    Points:
    54
    Sexe:
    Homme
    Ok, les scores ce sont bien créés ? Tu peut setdisplay avec cette commande /scoreboard objectives setdisplay sidebar tempsmort
    Normalement tu verra le score à droite, à chaque fois que tu meurt il va repartir à 0 et augmentera tout seul
    Si tout est bon, je suis vraiment perplexe car tu as la même configuration, je suppose donc que ça peut que venir des scores, peut être être sur que ce soit les bons types de scores stat.timeSinceDeath et stat.playOneMinute avec /scoreboard objectives list
     
  11. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    je vérifie ça en fin de week-end, et je te dis ^^

    tout est comme tu m'as dit D:
     
    #11 IKWYL, 24 Fev 2018
    Dernière édition: 27 Fev 2018
  12. Henka

    Henka Hôte d'accueil

    Inscrit:
    31 Jan 2018
    Messages:
    777
    Points:
    50
    Sexe:
    Homme
    Sinon tu peux juste give automatiquement quand un joueur meurt, sans qu'il doive appuyer sur un bouton.

    D'abord: /scoreboard objectives add mort deathCount
    Bloc de commande a repetition: /execute @a[score_mort_min=1,score_mort=1] ~ ~ ~ give @p minecraft:bow
    Bloc de commande en chaine tjr actif conditionnel: /execute @a[score_mort_min=1,score_mort=1] ~ ~ ~ /scoreboard players set @p mort 0

    Tu peux mettre plusieurs commande avec le give a la suite, mais n oublie pas la dernière, sinon ça te give en boucle. Tu peux remplacer le give par un replace item si tu veux l'item dans slot précis. Tu peux aussi combiner le execute avec un rayon:
    ==> /execute @a[score_mort_min=1,score_mort=1,r=3] ~ ~ ~

    Voilà, j'espère que ça va t'aider, chez moi ça marche en tout cas.
     
  13. IKWYL

    IKWYL Nouveau

    Inscrit:
    14 Fev 2018
    Messages:
    9
    Points:
    0
    Sexe:
    Homme
    Merci de ton aide mais j'avais justement fait un truc de ce genre sauf que quand le joueur appui sur revivre il perd l'arc qu'on lui avait donné =/
     
  14. Henka

    Henka Hôte d'accueil

    Inscrit:
    31 Jan 2018
    Messages:
    777
    Points:
    50
    Sexe:
    Homme
    Chez moi sa marche.

    Edit: Je confirme, ça marche. Réessaye exactement comme ce que j'ai dit.
     
  15. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    128
    Sexe:
    Homme
    J'ai testé la solution de @Lighar et elle marche parfaitement chez moi, en solo comme en multi.
    Donc je pense que le problème ne vient pas des commandes.
    En quel version es-tu ? Joues-tu sur un serveur ? Vanilla, Bukkit, Forge... ? Les commandes blocks sont-ils bien chargé lorsque tu respawn ?
    Si vraiment tu désespérés, tu peux toujours envoyer ta map en mp.

    Aussi, pourquoi ne pas mettre la gamerule "keepinventory" sur true ?
     

Partager cette page