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

MC 1.13 TP un joueur à un endroit spécifique

Discussion dans 'Commands blocks & Redstone' créé par 66tornado66, 2 Août 2018.

?

Peut-on donner un nom spécifique (UUID, dataTag) à un bloc (pas une entité) ?

  1. NON

    1 vote(s)
    100.0%
  2. OUI

    0 vote(s)
    0.0%
  3. Je ne sais pas

    0 vote(s)
    0.0%
  1. 66tornado66

    66tornado66 Nouveau

    Inscrit:
    2 Août 2018
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Bonjour,

    Je cherche à téléporter un joueur non op sur un bloc particulier, c'est-à-dire unique avec un dataTag (UUID ?).

    Le concept :
    1) Dans un livre, une commande donne 1 bloc unique au joueur. Le bloc est nommé "1".
    2) Le joueur pose le bloc.
    3) Le joueur part en balade, se déplace de 1 000 blocs (grosse promenade).
    4) Le joueur reprend le livre et clique sur "TP au bloc 1".
    5) Le TP s'effectue.

    J'ai fais quelques tests avec des armor_stands et ce système fonctionne.
    L'inconvénient, une entité déspawn si le chunk où se trouve l'entité n'est pas chargé.

    Donc je recherche une manière de TP un joueur à un endroit précis choisis par ce joueur SANS qu'il soit opérateur.

    Mon objectif final :
    Créer un livre de commandes pour qu'aucun joueur soit op mais qu'ils puissent avoir des points d'intérêt personnels et qui puissent s'y téléporter.

    Note: j'ai fais des recherches depuis le début de la semaine avant de poster mon problème ici.

    Merci de me donner quelques pistes.
     
  2. Hubiug

    Hubiug Explorateur

    Inscrit:
    8 Août 2017
    Messages:
    92
    Points:
    35
    Au lieu d'utiliser un armor stand pour marquer l’emplacement, tu peut utiliser des scores. Pour modifier les scores, utilise un score en mode trigger, quand le joueur clic sur le livre, son score passe a 1, ce qui enregistre sa position dans un score (x,y,z) grace au /execute store.Pour tp le joueur, tu peut aussi utiliser un scoreboard en trigger, quand celui ci sera a 1 par exemple, des commandes feront spawner un armor_stand au joueur, puis le positioneron au coordonnée du checkpoint grace au /execute en mode store (/execute as @e[type=armor_stand,name=exemple] store result entity @s Position[0] double 1 run scoreboard players get @p checkpointX) attention, cette solution ne marche que pour la 1.13, pour les version antérieur, c'est encore plus compliqué.
     
  3. 66tornado66

    66tornado66 Nouveau

    Inscrit:
    2 Août 2018
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Merci de ta réponse.
    Je vais essayer ça ce soir.
    Par contre si je comprend bien, il va falloir que je fasse des livres uniques pour chaque joueur connecté à mon serveur sinon il risque d'y avoir conflit avec les tp.
     
  4. Hubiug

    Hubiug Explorateur

    Inscrit:
    8 Août 2017
    Messages:
    92
    Points:
    35
    non, sur le livre tu met la command /trigger, et ensuite tu ne selectione que ceux avec le scores, a moins qu'il y'ai 2 joueurs proche qui clic exactement en même temps sur le livre, il n'y a aucun problème
     
  5. 66tornado66

    66tornado66 Nouveau

    Inscrit:
    2 Août 2018
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Je ne comprend pas ce que tu veux me dire. Peux-tu me montrer un exemple ? J'ai l'impression que tu as réussi à le faire et à le tester. Sans vouloir te vexer, tes explications sont un peu floues.

    Cela fais longtemps que je n'ai pas fais de commands blocks et je passe des commandes de la 1.8 à la 1.13 donc je suis complètement perdu au niveau de la syntaxe.
     
    #5 66tornado66, 5 Août 2018
    Dernière édition: 5 Août 2018
  6. Hubiug

    Hubiug Explorateur

    Inscrit:
    8 Août 2017
    Messages:
    92
    Points:
    35
    tu fait un livre avec la commande /trigger TpExemple set 1 et tu met ces commandes en boucle:
    Code (cpp):

    scoreboard players enable @a TpExemple


    execute as @a[,scores={TpExemple=1..}] at @s run summon armor_stand ~ ~ ~ {CustomName:"{\"text\":\"TpExemple\"}",NoGravity:1,Marker:1,Invisible:1}
    execute as @a[,scores={TpExemple=1..}] at @s store result entity @e[type=armor_stand,limit=1,sort=nearest,name=TpExemple] Pos[0] double 1 run scoreboard players get @s posX
    execute as @a[,scores={TpExemple=1..}] at @s store result entity @e[type=armor_stand,limit=1,sort=nearest,name=TpExemple] Pos[1] double 1 run scoreboard players get @s posY
    execute as @a[,scores={TpExemple=1..}] at @s store result entity @e[type=armor_stand,limit=1,sort=nearest,name=TpExemple] Pos[2] double 1 run scoreboard players get @s posZ

    execute as @a[,scores={TpExemple=1..}] run tp @s @e[type=armor_stand,limit=1,sort=nearest,name=TpExemple]
     
    quand un joueur clic, sa met son score TpExemple a 1, puis sa va summon un armor_stand et le positionner au bonnes coordonnées, puis, le joueur sera tp a l'armor_stand, et donc au coordonnées.
     
  7. raphaGramming

    raphaGramming Enter the World

    Inscrit:
    1 Août 2018
    Messages:
    34
    Points:
    3
    Sexe:
    Homme
    /scoreboard objectives add Action1 trigger # crée un scoreboard pour le mécanisme
    /scoreboard players enable @a Action1 # Autorise les joueurs à faire la commande /trigger Action1

    Maintenant, il suffi aux joueurs de faire la commande /trigger Action1 set 1 pour déclenché un événement en utilisant son scoreboard:

    Code (cpp):
    /execute @a[score_Action1_min=1] ~ ~ ~ /summon ArmorStand ~ ~ ~ {Invisible:1, CustomName:"Home 1", CustomNameVisible:1}  # Note: commande utilisable qu'en 1.12.2 et antérieure
    et puis remettre son score à 0 pour évité de répété indéfiniment la commande
    Code (cpp):
    /scoreboard players set @a[score_Action1_min=1] Action1 0
     

Partager cette page