Résolu Téléportation aléatoire

  • Auteur de la discussion Auteur de la discussion WegaCraft
  • Date de début Date de début

WegaCraft

Viel Archi'Red
2 Janvier 2014
284
32
135
Salut tout le monde,

Je me présente à vous car je fais face à un soucis majeur ; téléporter un joueur à une destination aléatoire.

Je voulai utiliser la commande /spreadplayer mais il ne téléporte le joueur que sur des bloc solides.

Alors qu'ici, je suis dans un monde vide sauf le spawn, c'est à dire qu'à chaque arrivé d'un joueur ne possédant pas encore d'ile, il le téléporte à une position aléatoire et clone l'ile de base à sa position.

Merci de toute l'aide que vous pourriez m'apporter.
 
Si t'es en 1.8 et que tu veut un truc vraiment aléatoire dans un certain rayon, j'ai peut être une solution :
- Tu crée un command block qui summon un minecartspawner qui summon une entité (quelconque mais reconnaissable - un wither skull par exemple, non soumis a la gravité) sur un certain rayon (SpawnRange)
- Tu capte la position de l'entité puis tu clone l'ile sur l'entité (/execute @e[type=WitherSkull] ~ ~ ~ /clone [....] )
- Tu tp le joueur sur l'entité.
- Tu détruit l'entité et le minecart.
 
Dsl mais le système est trop lent.

Mais j'ai trouvé mieux :
- une flat map avec un couche de verre en couche 1
- ma commande spreadplayers
- /execute sur le joueur de /clone en ~ ~70 ~
- Je le tp en ~ ~70 ~

Et voila nan ?

Edit : -------------------------------------------------------------------------------------------------------
Soucis se pose : La commande /execute est de syntaxe :
/execute <entité> <x> <y> <z> <commande>
|___|___|​
Valeurs inconnues​
 
Si tu synchronise bien le tout, ça peut prendre moins de 10 ticks, donc c'est assez rapide je pense.(comparé au temps de réaction du joueur)
Ça permet aussi d'utiliser une map vierge (c'est plus classe de tomber dans le vide que de s’écraser sur du verre non ? :D)

Je n'ai jamais compris pourquoi donner des coordonnées à exécute, celles ci permettent d'ajouter un offset à l'execution de la commande par rapport à la position de l'entité, ou de lui faire exécuter comme si l'entité était ailleurs.
Enfin bon, on peut aussi mettre exactement la même chose dans les commandes executé.
Perso je les laisses toujours à "~ ~ ~"
 
Merci nico, je vais essayer ;)

Autre question saurait tu comment faire une map vide car actuellement je suis obligé de mette un couche d'eau en y=1
 
Salut WegaCraft , pour créer une map vide c'est simple , tu choisis un monde plat , après tu va dans " Personnalier " ensuite dans " Pré-Réglages " EN haut tu verras des nombres dans une barre , tu efface tous ! et tu tape , danc cette même barre 2;0
 
Merci ;)

J'avais déjà essayé mais la suite faisait crashé, je n'avais pas pensé à mettre que 2;0

De plus, j'ai un soucis je ne peut pas tp le joueur aux wither skeleton :
/tp WegaCraft @e[type=Skeleton] -> The entity UUID provided is in an invalid format
De plus les squelette ne spawn qu'à coté du système alors que j'ai mis :
/summon MinecartSpawner ~ ~ ~2 {EntityId:Skeleton,SpawnData:{SkeletonType:1},SpawnRange:10000000000000}

Et je peut pas filtrer la data SkeletonType

Et pour la gravité ?
 
J'ai réussit à trouver une solution :
- une flat map avec un couche de verre en couche 1
- ma commande spreadplayers
- /execute sur le joueur de /clone en ~ ~70 ~
Mais je clone l'air en couche 1 pour retirer le verre alentour, et de plus ca diminuera les risque que qqun spwn sur une ile et la détruise au passage.
- Je le tp en ~ ~70 ~
 
Je t'ai parlé de witherskull pas un skeleton.
Tu fixe la data direction à [0.0,0.0,0.0] et il sera static et invisible.

Après, pour le tp, je crois que tu doit indiquer le nombre @e[c=1]

Oui ta technique de supprimer la surface en dessous permet de sauvegarder l'ile par rapport au spawn suivant, dans ce cas la c'est mieux de faire comme ça.