Aller au contenu

Messages recommandés

Posté(e)

Nom du Skript : Téléporteur

Version minecraft : 1.8

 

Comment le Skript doit fonctionner ?

Le joueur passant dans une zone prédéfinie de téléportation reçoit Blindness ainsi qu'un Title lui indiquant qu'il va être téléporté dans 3 secondes dans la prochaine zone.

 

Il faut donc initialiser deux points pour créer chaque zone de téléportation ainsi qu'un troisième point permettant d'être téléporté. Jusque là rien de très compliqué. Mais j'aimerai que ce Skript soit paramétrable depuis le jeu.

 

Exemple :

Je tape la command "/teleporteur villagetoforet".

 

Et quand j'effectue un premier clique droit avec un stick spécial renommé [Outil de teleportation], ça stock dans une variable {stick.villagetoforet.1} la première position de la zone de tp. Un deuxième clique définie la deuxième position de la zone de tp et un troisième définie l'endroit où le joueur est téléporté.

De cette façon, il sera possible de réaliser autant de zone de tp que nécessaire sans avoir à passer par une initialisation dans le code.

 

Je vous remercie d'avance, si vous avez besoin de plus d'informations n'hésitez pas !

Posté(e)

je pense que je peux faire ca.

 

Mais j'ai 1 question :

- Ca te dérange si j'utilise WoldGuard pour la zone ? parceque faire une zone, en skript, soit je ne sais pas faire, soit c'est impossible.

 

voila ;)

 

Je te fais une première version avec WoldGuard.

 

Edit : je ne pense pas savoir faire avec World Guard non-plus, désolé, mais ce sera un point qui TP a un autre point. Si tu veux vraiment que ce soit une zone, demande a quelqu'un d'autre ou dis moi, et je ferai en sorte que les 9 premiers points (pour faire un carré de 3x3) soit les points de téléportation

Posté(e)

Alors, je viens de faire mon propre skript finalement. Je vous le met pour ceux qui pourraient s'en inspirer !

 

command /creamode [<string>]:
   permission: creamode.admin
   trigger:

# Vous retire du creamode et vous rend votre ancien stuff
       if {creamode.active.%player%} is true:
           set {creamode.active.%player%} to false
           message "&3[Creamode] &6: &cDesactivation" to player

           clear the player's inventory
           wait 3 ticks

           open the player's inventory for the player
           loop {chest::%player%::*}:
               add loop-value to slot loop-index parsed as integer of current inventory of player
               wait 1 tick
           close player's inventory
           stop

# Si creamode non actif + aucun argument
       if arg-1 is not set:
           message "&c[Erreur] : Vous devez definir un nom de variable pour utiliser cette fonction." to player
           stop

# Vous passer en Creamode (sauvegarde votre stuff avant de le clear et de vous donner les items du creamode)
       if arg-1 is set:
           set {creamode.variable} to "%arg-1%"
           add "%arg-1%" to {list::*}
           set {creamode.active.%player%} to true
           message "&3[Creamode] &6: &2Activation" to player

           open the player's inventory for the player
           loop 36 times:
               set {chest::%player%::%loop-number - 1%} to slot "%loop-number - 1%" parsed as an integer of current inventory of player
           wait 1 tick
           close the player's inventory
           clear the player's inventory

           add stick named "[Point &c1&r]" with lore "Clique droit : definie Point 1 de la zone" to player
           add feather named "[Point &c2&r]" with lore "Clique droit : definie Point 2 de la zone" to player
           add blaze rod named "[Point &ctp&r]" with lore "Clique droit : definie le point de tp" to player

on rightclick holding a stick:
   if {creamode.active.%player%} is true:
       set {loc1.x.%{creamode.variable}%} to x-coordinate of targeted block
       set {loc1.z.%{creamode.variable}%} to z-coordinate of targeted block
       message "Point 1 Set en %{loc1.%{creamode.variable}%}%." to player

on rightclick holding a feather:
   if {creamode.active.%player%} is true:
       set {loc2.x.%{creamode.variable}%} to x-coordinate of targeted block
       set {loc2.z.%{creamode.variable}%} to z-coordinate of targeted block
       message "Point 2 Set en %{loc2.%{creamode.variable}%}%." to player

on rightclick holding a blaze rod:
   if {creamode.active.%player%} is true:
       set {tp.%{creamode.variable}%} to event-location
       message "Point de Tp Set en %{tp.%{creamode.variable}%}%." to player

# Rajouter autant d'itérations en 'IF' que vous avez de téléporteurs nécessaire
every 1 second:
   loop all players:
       set {_x.%loop-player%} to x-coordinate of loop-player
       set {_z.%loop-player%} to z-coordinate of loop-player

       if {_x.%loop-player%} is between {loc2.x.villagetoforet} and {loc1.x.villagetoforet}:
           if {_z.%loop-player%} is between {loc2.z.villagetoforet} and {loc1.z.villagetoforet}:
               make console execute command "/effect %loop-player% minecraft:blindness 3 3"
               send loop-player title "" with subtitle "&cTeleportation &6- &3Foret" for 1 seconds
               wait 3 seconds
               teleport loop-player to {tp.villagetoforet}

# Vous retire le creamode a la connection / a la mort
on respawn:
   wait 3 seconds
   if {creamode.active.%player%} is true:
       make player execute command "/creamode"

on join:
   wait 3 seconds
   if {creamode.active.%player%} is true:
       make player execute command "/creamode"

 

 

N'ayant pas réussi à totalement passer par le jeu pour réaliser mes téléporteurs, je me suis rabattu sur cette solution.

Si vous avez besoin d'ajouter de nouveaux téléporteurs, il vous suffit de rajouter le même code que celui présent dans le every 1 second en modifiant les coordonnées des variables.

 

En espérant que ça serve à d'autres :)

 

Je met le poste en résolu

×
×
  • 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.