Aller au contenu
  • 0

(Aide) Timer pour un jump


Question

Posté(e) (modifié)

Version de Minecraft : 1.15.2
Version de Skript : 2.4.1

Addons utilisés: SkBoard,  Skellett, skLib, SkQuery, skRayFall, SkStuff,  SkUtilities, Umbaska

Type du skript : Script de timer s'activant lors d'un passage sur un point A et s'arrêtant lors d'un passage sur un point B

Description du script : Tout d'abord salutations ! Sachez que je suis débutant en Skript (je viens de commencer a m'y mettre vraiment ce matin). Le problème étant que je n'arrive pas à mettre en place un timer qui aurait pour but de servir de chronomètre précisant les minutes et les secondes dans le cas d'un jump en appuyant (pour lancer le timer) sur une plaque de pression en or, et même chose pour la fin un appui sur la plaque de pression pour arrêter le timer. C'est pourtant si simple dit comme ça, mais le vrai problème est la mise en place de ce timer dans la sidebar, ce qui est vraiment compliqué car il faut arriver à mettre en place un refresh de la sidebar. J'ai cru avoir trouvé une piste grace au plugin SkRayFall, avec les edit score id. Mais après avoir galéré pendant plusieurs heures à chercher sur beaucoup de forum, de documentation, je pense que le problème vient plutôt de mes capacités x). Donc je m'en remets à vous communauté légendaire du skript francophone, pouvez vous, s'il vous plaît, m'aidez pour ce projet. 

Voici le code :

Révélation

on stepping on a pressure plate:
    event-block is a golden pressure plate
    set id based score "&8» &e%{secondes.%player%}% " in sidebar of player to 8 with id "8"
    set id based score "&8» &e%{minutes.%player%}% " in sidebar of player to 9 with id "9"
    execute player command "/jumptimereset"
    execute player command "/jumptimelaunch true"
    
    


    
    
command /jumptimelaunch [<text>]:
    trigger:
        arg 1 is "true":
            wipe player sidebar
            set {secondes} to 0
            set {minutes} to 0
            set {jump.%player%} to true
        arg 1 is "false":
            set {jump.%player%} to false
        else:
            stop

            

every second:
    loop all players:
        if {jump.%loop-player%} is true:
            add 1 to {secondes}
            set name of sidebar of loop-player to "&2Jump"
            edit score id "8" to "&f» &a%{secondes.%player%}% &8┃ &c%{minutes.%player%}%" and 9
        if {jump.%loop-player%} is false:
            stop
        
    

 

Modifié par T4yll

6 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Il y a 1 heure, T4yll a dit :

Version de Minecraft : 1.15.2
Version de Skript : 2.4.1

Addons utilisés: SkBoard,  Skellett, skLib, SkQuery, skRayFall, SkStuff,  SkUtilities, Umbaska

Type du skript : Script de timer s'activant lors d'un passage sur un point A et s'arrêtant lors d'un passage sur un point B

Description du script : Tout d'abord salutations ! Sachez que je suis débutant en Skript (je viens de commencer a m'y mettre vraiment ce matin). Le problème étant que je n'arrive pas à mettre en place un timer qui aurait pour but de servir de chronomètre précisant les minutes et les secondes dans le cas d'un jump en appuyant (pour lancer le timer) sur une plaque de pression en or, et même chose pour la fin un appui sur la plaque de pression pour arrêter le timer. C'est pourtant si simple dit comme ça, mais le vrai problème est la mise en place de ce timer dans la sidebar, ce qui est vraiment compliqué car il faut arriver à mettre en place un refresh de la sidebar. J'ai cru avoir trouvé une piste grace au plugin SkRayFall, avec les edit score id. Mais après avoir galéré pendant plusieurs heures à chercher sur beaucoup de forum, de documentation, je pense que le problème vient plutôt de mes capacités x). Donc je m'en remets à vous communauté légendaire du skript francophone, pouvez vous, s'il vous plaît, m'aidez pour ce projet. 

Voici le code :

  Masquer le contenu

on stepping on a pressure plate:
    event-block is a golden pressure plate
    set id based score "&8» &e%{secondes.%player%}% " in sidebar of player to 8 with id "8"
    set id based score "&8» &e%{minutes.%player%}% " in sidebar of player to 9 with id "9"
    execute player command "/jumptimereset"
    execute player command "/jumptimelaunch true"
    
    


    
    
command /jumptimelaunch [<text>]:
    trigger:
        arg 1 is "true":
            wipe player sidebar
            set {secondes} to 0
            set {minutes} to 0
            set {jump.%player%} to true
        arg 1 is "false":
            set {jump.%player%} to false
        else:
            stop

            

every second:
    loop all players:
        if {jump.%loop-player%} is true:
            add 1 to {secondes}
            set name of sidebar of loop-player to "&2Jump"
            edit score id "8" to "&f» &a%{secondes.%player%}% &8┃ &c%{minutes.%player%}%" and 9
        if {jump.%loop-player%} is false:
            stop
        
    

 

Salut ! J'ai un skript avec une partie de code qui fait ceci. Malheureusement je ne peux pas ce soir car je suis sur téléphone. Demain je te le donne avec les explications nécessaires pour que tu comprennes le skript et que tu le refases tout seul une autre fois !

  • J'aime 1
  • 0
Posté(e) (modifié)
Il y a 2 heures, T4yll a dit :

Merci beaucoup ce serais avec grand plaisir ! 

Re, alors je me suis permit de modifier les messages de ton skripts x)

on stepping on a pressure plate:
	event-block is a golden pressure plate:
		execute player command "/jumptimereset"
		execute player command "/jumptimelaunch true"






command /jumptimelaunch [<text>]:
	trigger:
		arg 1 is "true":
			wipe player sidebar
			set {secondes.%player%} to 0
			set {minutes.%player%} to 0
			set {jump.%player%} to true
			set name of sidebar of player to "» &a&lJUMP ! &r«"
			set id based score "&eVotre temps: &a00:0%{secondes.%player%}%" in sidebar of player to 1 with id "Temps.%player%" #Pour commencer, il faut définir l'id sur le joueur car une ID global ne modifirait tout simplement pas le scoreboard
		arg 1 is "false":
			set {jump.%player%} to false
		else:
			stop

every second:
	loop all players:
		if {jump.%loop-player%} is true:
			if {secondes.%loop-player%} > 9: #Donc la on va vérifier si les secondes sont supérieur à 9
				if {minutes.%loop-player%} < 10: #Donc la on va vérifier si les minutes sont inférieure à 10
					edit score id "Temps.%loop-player%" to "&eVotre temps: &a0%{minutes.%loop-player%}%:%{secondes.%loop-player%}%" and 1 #Si c'est le cas on vas mettre un petit "0" à coter de la minutes
				else:
					edit score id "Temps.%loop-player%" to "&eVotre temps: &a%{minutes.%loop-player%}%:%{secondes.%loop-player%}%" and 1 #Sinon on met les variables tel quel sans les "0"
			else: #Sinon on met les "0" à coter des scondes et éventuellment les minutes
				if {minutes.%loop-player%} < 10:
					edit score id "Temps.%loop-player%" to "&eVotre temps: &a0%{minutes.%loop-player%}%:0%{secondes.%loop-player%}%" and 1
				else:
					edit score id "Temps.%loop-player%" to "&eVotre temps: &a%{minutes.%loop-player%}%:0%{secondes.%loop-player%}%" and 1
			if {secondes.%loop-player%} = 59: #Et enfin on vérifie si les secondes ont atteint 60 secondes pour ajouter une minutes
				set {secondes.%loop-player%} to -1 #Et on met sur -1 car sinon l'affichage fera de "59" à "01"
				add 1 to {minutes.%loop-player%}
			add 1 to {secondes.%loop-player%}

 

Modifié par LOUDO
  • 0
Posté(e)

C'est parfait tout marche bien, un grand merci à toi pour avoir pris le temps de m'expliquer le code, tu m'aides énormément ! Grace à toi je comprend enfin le système d'ID ! Encore une fois merci beaucoup !

  • Haha 1
  • 0
Posté(e)
il y a 1 minute, T4yll a dit :

C'est parfait tout marche bien, un grand merci à toi pour avoir pris le temps de m'expliquer le code, tu m'aides énormément ! Grace à toi je comprend enfin le système d'ID ! Encore une fois merci beaucoup !

De rien ! N'hésite pas à passer en résolu et de me mettre un petit coeur 😄 (ça fait toujours plaisir)

  • J'aime 1
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.