Aller au contenu

Messages recommandés

Posté(e)

Version de Minecraft : 1.8.9
Version de Skript : 2.2-dev27

Type du skript : /vanish spéciale

Description du script :

Bonjour, j'avais coder un /vanish pour mon serveur mais je voudrais savoir comment faire pour que les modérateur qui son vanish voient les autre modérateur vanish?

Posté(e)
Il y a 3 heures, Flash303mc a dit :

Version de Minecraft : 1.8.9
Version de Skript : 2.2-dev27

Type du skript : /vanish spéciale

Description du script :

Bonjour, j'avais coder un /vanish pour mon serveur mais je voudrais savoir comment faire pour que les modérateur qui son vanish voient les autre modérateur vanish?

command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				hide player from all players
				loop {Vanish::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value from loop-player # Ou : reveal loop-value-1 from loop-value-2
				stop
			else:
				delete {Vanish::%player%}
				reveal player from all players
				stop
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

 

Posté(e)
Il y a 3 heures, Shykuzo a dit :

command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				hide player from all players
				loop {Vanish::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value from loop-player # Ou : reveal loop-value-1 from loop-value-2
				stop
			else:
				delete {Vanish::%player%}
				reveal player from all players
				stop
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

 

command /vanish:
    trigger:
        if player has permission "ta.permission":
            if {Vanish::%player%} is not set:
                set {Vanish::%player%} to "true"
                hide player from all players
                loop {Vanish::*}:
                    loop all players:
                        if loop-player has permission "ta.permission":
                            reveal loop-value-1 from loop-value-2 # Ou : reveal loop-value-1 from loop-value-2
                stop
            else:
                delete {Vanish::%player%}
                reveal player from all players
                stop
        else:
            send "&4Erreur: &cVos permissions sont insuffisantes !" to player
            stop

 

ne fonctionne pas

Posté(e)
Il y a 9 heures, Flash303mc a dit :

command /vanish:
    trigger:
        if player has permission "ta.permission":
            if {Vanish::%player%} is not set:
                set {Vanish::%player%} to "true"
                hide player from all players
                loop {Vanish::*}:
                    loop all players:
                        if loop-player has permission "ta.permission":
                            reveal loop-value-1 from loop-value-2 # Ou : reveal loop-value-1 from loop-value-2
                stop
            else:
                delete {Vanish::%player%}
                reveal player from all players
                stop
        else:
            send "&4Erreur: &cVos permissions sont insuffisantes !" to player
            stop

 

ne fonctionne pas

Quesqui ne fonctionne pas ? Erreur code ? La permission a mettre au modo est "ta.permission" dans ce code, es que c'est bien le cas ? 

Posté(e)
Il y a 12 heures, LeCraftDeOuf a dit :

Quesqui ne fonctionne pas ? Erreur code ? La permission a mettre au modo est "ta.permission" dans ce code, es que c'est bien le cas ? 

les modérateurs je ce voient pas entre eux

Posté(e)
Il y a 11 heures, Flash303mc a dit :

oui je suis op avec les 2 compte

Bizarre, c'est censé fonctionné, j'avais fais sa sur un de mes serveurs ...

Alors, essaie sa :

command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				add player to {VanishedPlayers::*}
				hide player from all players
				loop {VanishedPlayers::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value from loop-player # Ou : reveal loop-value-1 from loop-value-2
				stop
			else:
				delete {Vanish::%player%}
				if {VanishedPlayers::*} contain player:
					remove player from {VanishedPlayers::*}
				else:
					send "&4Une erreur est survenue lors de votre réapparition ..." to player
					# Si cela se produit, a part néttoyé la variable, il n'y a rien a faire :/
				reveal player from all players
				stop
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

 

Posté(e)
Il y a 7 heures, Shykuzo a dit :

Bizarre, c'est censé fonctionné, j'avais fais sa sur un de mes serveurs ...

Alors, essaie sa :


command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				add player to {VanishedPlayers::*}
				hide player from all players
				loop {VanishedPlayers::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value from loop-player # Ou : reveal loop-value-1 from loop-value-2
				stop
			else:
				delete {Vanish::%player%}
				if {VanishedPlayers::*} contain player:
					remove player from {VanishedPlayers::*}
				else:
					send "&4Une erreur est survenue lors de votre réapparition ..." to player
					# Si cela se produit, a part néttoyé la variable, il n'y a rien a faire :/
				reveal player from all players
				stop
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

 

A chaque foi j'ai l'érreure send "&4Une erreur est survenue lors de votre réapparition ..." to player

Posté(e)
Le 15/12/2021 à 15:45, Flash303mc a dit :

A chaque foi j'ai l'érreure send "&4Une erreur est survenue lors de votre réapparition ..." to player

command /vanish:
	trigger:
		if player has permission "ta.permission":
			loop {player_Vanish::*}:
				loop-value is player
				set {_Already_Vanish} to true
				stop loop
			{_Already_Vanish} is true:
				reveal player from all players
				remove player from {player_Vanish::*}
				send "&cVanish OFF"	
			else:
				add player to {player_Vanish::*}
				hide player from all players
				loop all players:
					if loop-player has permission "ta.permission":
						reveal player from loop-player
				send "&6Vanish ON"	
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

Tien, un code propre et court, dis moi s'y sa ne fonctionne pas, j'ai tester en solo ^^

 

Sinon si tu veut garder celui du haut tien

command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				add player to {VanishedPlayers::*}
				hide player from all players
				send "Vanish"
				loop {VanishedPlayers::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value-1 from loop-player
				stop
			else:
				send "Devanish"
				delete {Vanish::%player%}
				if {VanishedPlayers::*} contain player:
					remove player from {VanishedPlayers::*}
				else:
					send "&4Une erreur est survenue lors de votre réapparition ..." to player
				reveal player from all players
				stop

Les 2 sont fonctionnel 🙂 Mais le premier plus opti 😉

 

Good Night

Posté(e) (modifié)
Il y a 10 heures, LeCraftDeOuf a dit :

command /vanish:
	trigger:
		if player has permission "ta.permission":
			loop {player_Vanish::*}:
				loop-value is player
				set {_Already_Vanish} to true
				stop loop
			{_Already_Vanish} is true:
				reveal player from all players
				remove player from {player_Vanish::*}
				send "&cVanish OFF"	
			else:
				add player to {player_Vanish::*}
				hide player from all players
				loop all players:
					if loop-player has permission "ta.permission":
						reveal player from loop-player
				send "&6Vanish ON"	
		else:
			send "&4Erreur: &cVos permissions sont insuffisantes !" to player
			stop

Tien, un code propre et court, dis moi s'y sa ne fonctionne pas, j'ai tester en solo ^^

 

Sinon si tu veut garder celui du haut tien


command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				add player to {VanishedPlayers::*}
				hide player from all players
				send "Vanish"
				loop {VanishedPlayers::*}:
					loop all players:
						if loop-player has permission "ta.permission":
							reveal loop-value-1 from loop-player
				stop
			else:
				send "Devanish"
				delete {Vanish::%player%}
				if {VanishedPlayers::*} contain player:
					remove player from {VanishedPlayers::*}
				else:
					send "&4Une erreur est survenue lors de votre réapparition ..." to player
				reveal player from all players
				stop

Les 2 sont fonctionnel 🙂 Mais le premier plus opti 😉

 

Good Night

Déjà, dans ton code, il y a un soucis, la variable {_Already_Vanish} n'est jamais supprimée donc, est en permanence sur "true" et redéfinie à chaque fois sur cette même valeur et en plus, il est pas hyper optimisé d'utiliser un boolean dans une variable ...

Mon code n'est peut-être pas le plus optimisé mais il est complet et fonctionne en temps normal car c'est le code que j'utilise lorsque j'essaie de faire la même chose.

J'aimerais juste préciser que ton code fais exactement le même chose que le mien, juste, la façon de faire qu'est différente.
Juste pour terminer, je trouve ton code vachement étrange, j'ai pris du temps à comprendre son fonctionnement et pourtant, ça fait longtemps que je Skript, s'el est débutant, ça risque de ne pas l'aider d'avoir un code aussi "compliqué" 😕

 

Le 15/12/2021 à 15:45, Flash303mc a dit :

A chaque foi j'ai l'érreure send "&4Une erreur est survenue lors de votre réapparition ..." to player

Finalement, je pense que ce n'est rien, j'ai regardé mon code et je pense juste que comme il y a pas de "stop", il t'affiches ce message, tu peux remplacé :

if {VanishedPlayers::*} contain player:
	remove player from {VanishedPlayers::*}
else:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player

Par :

if {VanishedPlayers::*} doesn't contain player:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player
else:
	remove player from {VanishedPlayers::*}

Ou alors, tu peux carrément supprimer la condition et juste garder le "remove player from {VanishedPlayers::*}" 🙂

 

Au passage, ce bout de code là :

loop {VanishedPlayers::*}:
	loop all players:
		if loop-player has permission "ta.permission":
			reveal loop-value-1 from loop-player

Peut encore être un peu optimisé, voici :

loop all players:
	if {VanishedPlayers::*} contain loop-player:
		reveal loop-player from {VanishedPlayers::*}

Voilà, ça devrait fonctionner.

Modifié par Shykuzo
Posté(e)
Il y a 8 heures, Shykuzo a dit :

Déjà, dans ton code, il y a un soucis, la variable {_Already_Vanish} n'est jamais supprimée donc, est en permanence sur "true" et redéfinie à chaque fois sur cette même valeur et en plus, il est pas hyper optimisé d'utiliser un boolean dans une variable ...

Mon code n'est peut-être pas le plus optimisé mais il est complet et fonctionne en temps normal car c'est le code que j'utilise lorsque j'essaie de faire la même chose.

J'aimerais juste préciser que ton code fais exactement le même chose que le mien, juste, la façon de faire qu'est différente.
Juste pour terminer, je trouve ton code vachement étrange, j'ai pris du temps à comprendre son fonctionnement et pourtant, ça fait longtemps que je Skript, s'el est débutant, ça risque de ne pas l'aider d'avoir un code aussi "compliqué" 😕

 

Finalement, je pense que ce n'est rien, j'ai regardé mon code et je pense juste que comme il y a pas de "stop", il t'affiches ce message, tu peux remplacé :


if {VanishedPlayers::*} contain player:
	remove player from {VanishedPlayers::*}
else:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player

Par :


if {VanishedPlayers::*} doesn't contain player:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player
else:
	remove player from {VanishedPlayers::*}

Ou alors, tu peux carrément supprimer la condition et juste garder le "remove player from {VanishedPlayers::*}" 🙂

 

Au passage, ce bout de code là :


loop {VanishedPlayers::*}:
	loop all players:
		if loop-player has permission "ta.permission":
			reveal loop-value-1 from loop-player

Peut encore être un peu optimisé, voici :


loop all players:
	if {VanishedPlayers::*} contain loop-player:
		reveal loop-player from {VanishedPlayers::*}

Voilà, ça devrait fonctionner.

Euh, bah enfaite {_Already_Vanish} est une variables temporaire donc j'ai pas besoin de la clear h24 ^^ Mais bon. 

Après, je trouve pas mon code si compliquer que sa, y a juste un if et un else... Sa fais bientôt 5 ans que je développe skript, mon code contient uniquement une seule variable liste qui elle même contient uniquement des simples pseudo de joueurs en vanish, je vois pas comment faire plus optimiser que sa ^^ 

 

Si tu as du mal avec le code voici le code avec quelques amélioration et avec des commentaire : 

 

option:
	Permission: ta.permission
	Permission_Message: &4Erreur: &cVos permissions sont insuffisantes !
	
	Vanish_On: &6Vanish ON
	Vanish_Off: &cVanish OFF


command /vanish: #Création de la commande
	permission: {@Permission} #Permission que le joueur doit avoir.
	permission message: {@Permission_Message} #Message si le joueur n'a pas la permission.
	trigger:
		loop {player_Vanish::*}: #Loop de tous les joueurs en vanish.
			loop-value is player #On vérifie si le joueur est dans la liste des vanish.
			set {_Already_Vanish} to true #Si oui, ont met une variable temporaire sur "true".
			stop loop #Ont stop le loop parceque ont a pas besoin d'allez plus loin.
		#Quand le loop est fini, ont regarde...
		{_Already_Vanish} is true: #SI la variable temporaire a été défini sur "true".
			reveal player from all players #Si oui, le joueur est en vanish. Donc ont le remet visible pour tous le monde.
			remove player from {player_Vanish::*} #Ont retire le joueur de la liste des vanish.
			send "{@Vanish_Off}" #Je pense que tu sais se que c'est un send.
		else: #SI la variable temporaire n'est pas défini sur "true" cela veut dire que le joueur n'est pas dans la liste des vanish.
			add player to {player_Vanish::*} #Ont ajoute le joueur a la liste des vanish.
			hide player from all players #Ont rend invisible le joueur pour tous le monde.
			loop all players: #Ont loop tous les joueurs du serveur.
				if loop-player has permission "{@Permission}": #Ont check si le loop-player a la permission "{@Permission}".
					reveal player from loop-player #Ont rend le joueur visible au joueurs ayant la permission "{@Permission}"
			send "{@Vanish_On}" #Je pense que tu sais se que c'est un send.

 

Posté(e)
Il y a 3 heures, LeCraftDeOuf a dit :

Euh, bah enfaite {_Already_Vanish} est une variables temporaire donc j'ai pas besoin de la clear h24 ^^ Mais bon. 

Après, je trouve pas mon code si compliquer que sa, y a juste un if et un else... Sa fais bientôt 5 ans que je développe skript, mon code contient uniquement une seule variable liste qui elle même contient uniquement des simples pseudo de joueurs en vanish, je vois pas comment faire plus optimiser que sa ^^ 

 

Si tu as du mal avec le code voici le code avec quelques amélioration et avec des commentaire : 

 


option:
	Permission: ta.permission
	Permission_Message: &4Erreur: &cVos permissions sont insuffisantes !
	
	Vanish_On: &6Vanish ON
	Vanish_Off: &cVanish OFF


command /vanish: #Création de la commande
	permission: {@Permission} #Permission que le joueur doit avoir.
	permission message: {@Permission_Message} #Message si le joueur n'a pas la permission.
	trigger:
		loop {player_Vanish::*}: #Loop de tous les joueurs en vanish.
			loop-value is player #On vérifie si le joueur est dans la liste des vanish.
			set {_Already_Vanish} to true #Si oui, ont met une variable temporaire sur "true".
			stop loop #Ont stop le loop parceque ont a pas besoin d'allez plus loin.
		#Quand le loop est fini, ont regarde...
		{_Already_Vanish} is true: #SI la variable temporaire a été défini sur "true".
			reveal player from all players #Si oui, le joueur est en vanish. Donc ont le remet visible pour tous le monde.
			remove player from {player_Vanish::*} #Ont retire le joueur de la liste des vanish.
			send "{@Vanish_Off}" #Je pense que tu sais se que c'est un send.
		else: #SI la variable temporaire n'est pas défini sur "true" cela veut dire que le joueur n'est pas dans la liste des vanish.
			add player to {player_Vanish::*} #Ont ajoute le joueur a la liste des vanish.
			hide player from all players #Ont rend invisible le joueur pour tous le monde.
			loop all players: #Ont loop tous les joueurs du serveur.
				if loop-player has permission "{@Permission}": #Ont check si le loop-player a la permission "{@Permission}".
					reveal player from loop-player #Ont rend le joueur visible au joueurs ayant la permission "{@Permission}"
			send "{@Vanish_On}" #Je pense que tu sais se que c'est un send.

 

Moi, ça va, je l'ai compris le code, c'est juste inhabituel pour moi de voir un code comme sa.
Pour la variable, effectivement, j'avais pas fais gaffe.

Pour l'optimisation, je sais que j'ai encore beaucoup à voir cependant, je n'ai aucune idée de ce que je peux faire de plus dans mon code, il y a rien de pas très optimisé dedans, surtout que j'ai corrigé la double boucle et à part les boucles, il n'y a rien de pas optimisé.

Posté(e)
Le 17/12/2021 à 09:07, Shykuzo a dit :

Déjà, dans ton code, il y a un soucis, la variable {_Already_Vanish} n'est jamais supprimée donc, est en permanence sur "true" et redéfinie à chaque fois sur cette même valeur et en plus, il est pas hyper optimisé d'utiliser un boolean dans une variable ...

Mon code n'est peut-être pas le plus optimisé mais il est complet et fonctionne en temps normal car c'est le code que j'utilise lorsque j'essaie de faire la même chose.

J'aimerais juste préciser que ton code fais exactement le même chose que le mien, juste, la façon de faire qu'est différente.
Juste pour terminer, je trouve ton code vachement étrange, j'ai pris du temps à comprendre son fonctionnement et pourtant, ça fait longtemps que je Skript, s'el est débutant, ça risque de ne pas l'aider d'avoir un code aussi "compliqué" 😕

 

Finalement, je pense que ce n'est rien, j'ai regardé mon code et je pense juste que comme il y a pas de "stop", il t'affiches ce message, tu peux remplacé :


if {VanishedPlayers::*} contain player:
	remove player from {VanishedPlayers::*}
else:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player

Par :


if {VanishedPlayers::*} doesn't contain player:
	send "&4Une erreur est survenue lors de votre réapparition ..." to player
else:
	remove player from {VanishedPlayers::*}

Ou alors, tu peux carrément supprimer la condition et juste garder le "remove player from {VanishedPlayers::*}" 🙂

 

Au passage, ce bout de code là :


loop {VanishedPlayers::*}:
	loop all players:
		if loop-player has permission "ta.permission":
			reveal loop-value-1 from loop-player

Peut encore être un peu optimisé, voici :


loop all players:
	if {VanishedPlayers::*} contain loop-player:
		reveal loop-player from {VanishedPlayers::*}

Voilà, ça devrait fonctionner.

Toujours pas ...

les modos ne ce voient toujours pas en vanish...

Posté(e)
Il y a 5 heures, Flash303mc a dit :

Toujours pas ...

les modos ne ce voient toujours pas en vanish...

Quelle code a tu utiliser ? Peut tu faire voir les permissions des utilisateurs qui test ? Pas d'erreurs dans la console ? Dans le /sk reload rien d'anormal? 

Posté(e)
Il y a 9 heures, LeCraftDeOuf a dit :

Quelle code a tu utiliser ? Peut tu faire voir les permissions des utilisateurs qui test ? Pas d'erreurs dans la console ? Dans le /sk reload rien d'anormal? 

Celui de shykuzo et les 2 joueurs son op 0 erreurs

 

Posté(e)
Il y a 4 heures, Flash303mc a dit :

Celui de shykuzo et les 2 joueurs son op 0 erreurs

 

command /vanish:
	trigger:
		if player has permission "ta.permission":
			if {Vanish::%player%} is not set:
				set {Vanish::%player%} to "true"
				add player to {VanishedPlayers::*}
				hide player from all players
				send "Vanish"
				loop all players:
					if loop-player has permission "ta.permission":
						reveal player from loop-player
				stop
			else:
				send "Devanish"
				delete {Vanish::%player%}
				if {VanishedPlayers::*} doesn't contain player:
					send "&4Une erreur est survenue lors de votre réapparition ..." to player
				else:
					remove player from {VanishedPlayers::*}
				reveal player from all players
				stop

Tu peut essayer ceci 😉 Sa devrai allez

 

  • 2 mois après...
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.