Aller au contenu
  • 0

Teleporter une joueur dans une fonction


Question

Posté(e)

Bonsoir a vous tous , je vous presente mon problème :

Le joueur n'est pas téléporté

J'utilise la dev29 et la 1.12

Et il n'y a aucune erreur dite en /sk reload

 

Mon code :

function guibox(p: player):

   open chest with 6 rows named "&aCoffres" to {_p}
   teleport {_p} to {_t}
   message "%{_t}%" to {_p}

on right click on chest:
   set {_t} to position of the target block
   loop {box.position::*}:
       if "%{_t}%" is "%loop-value%":
           cancel event
           guibox(player)

 

Le "message "%{_t}%" to {_p}" m'envoie comme retour "<none>"

Merci pour vos réponses

11 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Ben {_t} est une variable locale (y'a un underscore), donc soit tu la définis dans ta fonction, soit tu la donnes en argument lorsque tu appelles ta fonction:

L'event:

function guibox(p: Player, t: String):

Le call de la fonction:

guibox(player, "%{unemplacementsuperfolichon}%"}

  • 0
Posté(e)

Mais j'ai tout dis et j'ai même dis oû le placer !??!

L'event c'est la première ligne de ton code, le call de la fonction c'est lz fait d'appeller ta fonction, c'est à dire que tu demande à ce que ta fonction que tu as prélablement crée soit exécutée (donc le call de la fonction n'est pas DANS ta fonction mais dans tes autres codes dans le but de l'exécuter).

  • 0
Posté(e)

Je crois que j'ai mal fait les choses :

 

on right click on chest:
   set {_t} to position of the target block
   loop {box.position::*}:
       if "%{_t}%" is "%loop-value%":
           cancel event
           guibox(player, "%{abc}%")

function guibox(p: Player, t: String):
   open chest with 6 rows named "&aCoffres" to {_p}
   teleport {_p} to {_t}
   message "%{_t}% %{_p}%" to {_p}

Aucune erreur mais sa me renvoie toujours <none>

  • 0
Posté(e)

Sa fonctionne mais le code comprend qu'il faut teleporté le joueur au texte "x:X y:X z:X" donc j'ai mis comme se que je voulais mettre au debut :

 

function guibox(p: Player):
   open chest with 6 rows named "&aCoffres" to {chesto}
   wait 1 tick
   teleport {_p} to {chesto}

on right click on chest:
   set {chesto} to position of the target block
   loop {box.position::*}:
       if "%{chesto}%" is "%loop-value%":
           cancel event

 

Résolue

  • 0
Posté(e)

ça c'est parce que un texte c'est pas une location. Utilise cette fonction :

function text2loc(loc: text, world: world) :: location:

  set {_locpart::*} to {_loc} parsed as "x: %num%, y: %num%, z: %num%"
  return location({_locpart::1}, {_locpart::2}, {_locpart::3}, {_world})

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.