Aller au contenu
  • 0

Cooldown pour le /spawn


Question

Posté(e) (modifié)

Version de Minecraft : 1.9.4
Version de Skript : la dernière

Addons utilisés: skQuery

Type du skript : commande /spawn

Description du script :

bon je vous explique mon problème: version courtes : je ne suis  pas un développeur .

version longue : j'ai créé un skript pour /spawn/minage et /nether sa done sa :

code"command /spawn [<player>]:
    aliases: hub, lobby
    permission: spawn.spawn
    permission message: &cSorry, mais t'as pas les perms!
    description: vous téleport au spawn
    trigger:
        if {spawn} isn't set:
            message "&4Error:&c aucun spawn n'a été définis !"
            stop
        else:
            argument 1 is not set:
                message "&6la teleportation vers le spawn commence dans &5 4 &6secondes"
                wait 4 seconds
                teleport player to {spawn}
                message "&6vous avez ete téléporté au &6spawn "
                
            else:
                if sender has permission "spawn.spawn.others":
                    if argument is online:
                        teleport argument to {spawn}
                    if sender is a player:
                        message "&6vous avez été téléporté au spawn par &c%player%&6." to argument 1
                    if sender is not a player:
                        message "&6vous avez été téléporté au spawn par la &cConsole&6." to argument 1
                        teleport player to {spawn}
                else:
                    message "&cSorry, mais ta pas les perms !"code
 
 
 
et le problème c'est que quand le joueur bouge il est téléporté quand même donc il me faudrait une condition du genre:
if player move: cancel event
mais je trouve pas la condition (s'il y en a une).
aidez moi s'il vous plait je compte sur vous !
Modifié par aaronzeboss
faute defrappe

7 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Il y a 3 heures, Mi123 a dit :

Hey,

J'essaye de te le faire demain.

Bonne soirée

Merci, comme sa je n'aurai pas besoin de passer par des commandes en java que je ne sais pas faire.

Tu m'aides enormement

 

  • 0
Posté(e) (modifié)

Salut, tu peux de baser sur le fichier template pour le cooldown :

#
# This script is a template for commands which have a cooldown.
# I will add a more intuitive way of handling cooldowns/countdowns in the future,
# But for now please use something like this.
# Make sure that you do not use delays for cooldowns as they stop when the server stops.
#

# This command allows each player to get infinite cakes
# but the command has a cooldown of one minute (per player)
command /cake:
	description: Recieve a cake, but you can only do this once per minute!
	permission: cake.is_a_lie
	executable by: players
	trigger:
		# stores how long it's been since the player last used this command
		set {_waited} to difference between {cake.%player%.lastused} and now
		# checks whether the player has used the command within the last minute
		if {_waited} is less than a minute:
			message "You have to wait %difference between a minute and {_waited}% before you can use this command again!"
			stop
		
		# some condition which sould not start the cooldown
		# (if the player doesn't get the cake he should be able to use the command again immediately)
		player doesn't have space for a cake:
			message "You do not have enough space in your inventory to hold the cake!"
			stop
			
		# do the action of the command
		give a cake to the player
		
		# and finally start the cooldown
		set {cake.%player%.lastused} to now

et pour quand le joueur bouge, c'est pas très optimisé, mais tu peux essayer un :

 

on any move:
    if {teleport.%player%.cooldown} is 1:
        set {teleport.%player%.cooldown} to 2
	


command /nether:
    trigger:
        set {teleport.%player%.cooldown} to 1
        send "Téléportation dans 3 secondes"
        wait 3 seconds
        if {teleport.%player%.cooldown} is 2:
            set {teleport.%player%.cooldown} to 0
            send "téléportation annulé"
            stop
        else if {teleport.%player%.cooldown} is 1:
            set {teleport.%player%.cooldown} to 0
            #le téléporter

 

Modifié par Showdown_76
  • J'aime 2
  • 0
Posté(e) (modifié)

Le any move pique les yeux !! x)

Je pense que tu pourrais faire une vérification dans un loop assez simplement :

#Bout de code pour la phase téléportation
options:
	#waiting_time est le temps qu'il faut pour que le joueur ne doit pas bouger avant de se faire téléporter
	waiting_time : 4

message "&6La teleportation vers le spawn commence dans &5 4 &6secondes"
set {_loc::x} to x-coord of player
set {_loc::y} to y-coord of player
set {_loc::z} to z-coord of player
loop {@waiting_time}:
	wait 1 second
	if {_loc::x} isn't x-coord of player:
  		message "&cTéléportation annulé !"
		stop
  	if {_loc::y} isn't y-coord of player:
  		message "&cTéléportation annulé !"
		stop
	if {_loc::z} isn't z-coord of player:
  		message "&cTéléportation annulé !"
		stop
teleport player to {spawn}
message "&6Vous avez été téléporté au &6spawn "
               

En gros, dans mon code, on vérifie si les coords x,y et z avant l'execution de la commande sont différentes de celle d'après l'éxecution. Si c'est le cas (càd qu'au moins un des 3 est différent), la téléportation est annulé. Sinon, il continue autant de fois que tu as mis dans l'option waiting_time
Je n'ai pas testé, mais j'espère t'avoir éclairé 😉

Modifié par bleu40
La coloration syntaxique est pas bo :D
  • J'aime 1
  • 0
Posté(e) (modifié)

Bonjour 🙂

command /spawn:
	trigger:
			set {_sec} to 3
			set {_loc} to player's location
			send "&e[&bTon Serveur&e] &aVous allez être téléporté au spawn dans 3 secondes" to player
			loop 2 times:
				wait 1 second
				if x-loc of {_loc} is between x-loc of player - 0.75 and x-loc of player + 0.75:
					z-loc of {_loc} is between z-loc of player's location - 0.75 and z-loc of player's location + 0.75
					set {_ok} to 1
				if {_ok} is 1:
					clear {_ok}
				else:
					send "&e[&bTon Serveur&e] &cErreur : vous avez bougé."
					stop
				send "&e[&bTon Serveur&e] &aVous allez être téléporté au spawn dans %difference between loop-number and 3% &asecondes"
			wait a second
			teleport player to {Variable du spawn}
			send "&e[&bTon Serveur&e] &aVous avez été téléporté au spawn." to player

Dans mon code, le joueur peut quand même se déplacer de 0.75 blocs sans annuler la téléportation... mais s'il bouge de +, ça sera annulé ^^

Modifié par Invité
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.