Aller au contenu

Messages recommandés

Posté(e)

Version de Minecraft : 1.12.2
Version de Skript : 2.

Type du skript : Skript de téléportation en salle admin ou de tp sur le joueur pour régler les tickets

Description du script :

Bonjour à vous,

Je possède un serveur RôlePlay et j'ai un système de salle admin pour gérer les tickets des joueurs.

J'aimerais que lorsqu'un joueur fasse la commande /helpop <message> (ça ouvre un ticket) les modérateurs recoivent un message qui leur dit "&8&l[&c&lAIDE&8&l] &a%pseudo% demande : <question> %nl% &8[&aSe téléporter&8] &7| &8[&cTp salle admin&8] &7| &8[&6Return&8]" et que les modérateurs puissent cliquer sur les parties du message pour se téléporter etc

PS : Le return permet de téléporter le joueur à la position où il était avant la téléportation en salle admin et pour la tp en salle admin il faut juste qu'il fasse /salle <player>

 

Bien cordialement

- Mi123

 

Code (code par 6moon à la base) :

command /question [<text>]:
	aliases: ask, a, helpop, ticket
	trigger:
		if arg 1 isn't set:
			send "&cPose une question." to player
		else:
			set {demande.%{question}%} to player
			send "&aTa question a bien été envoyée..." to player
			loop all players:
				if loop-player has permission "essentials.helpop.receive":
					send "&7&l[&7&cAIDE&7&l] &2%{demande.%{question}%}% &ademande: %arg 1%" to loop-player

 

Posté(e)

Salut tien

 

options:	
	Erreur1: &fUsage : /helpop <message>

command /helpop [<text>]:
	trigger:
		if arg 1 isn't set:
			send "{@Erreur1}"
			stop
		else:
			loop all players:
				loop-player has permission "View.Helpop"
				send "&8&l[&c&lAIDE&8&l] &a%pseudo% demande : %arg 1%" to loop-player
				json("%loop-player%", &8[&aSe téléporter&8]"||cmd:/tp %player%|| &7| ||&8[&cTp salle admin&8]||cmd:/TpSalleAdmin %player%|| &7| ||&8[&6Return&8]||cmd:")
				
				&8[&aSe téléporter&8] &7| &8[&cTp salle admin&8] &7| &8[&6Return&8]||cmd:/return %player%"
command /return [<player>]:
	trigger:
		teleport player to {Return.%arg 1%}
command /TpSalleAdmin [<player>]:
	trigger:
		teleport player to {Salle.Admin.Tp}
		set {Return.%arg 1%} to location of arg 1
		wait 1 seconds
		
		teleport arg 1 to {Salle.Admin.Tp}
		
command /setTpSalleAdmin:
	trigger:
		send "&7Vous venez de set le spawn de la salle admin"
		set {Salle.Admin.Tp} to location of player

J'ai pas tester dit moi s'y y a un soucis 🙂

 

Posté(e)

Salut,

Merci beaucoup du skript, quasiment tous marches,

Il y a 3 erreurs (voir ci-dessous)

 

Merci d'avance de votre réponse.

 

Bien cordialement

- Mi123

sk.erreur.JPG

Posté(e)
il y a 35 minutes, Mi123 a dit :

Salut,

Merci beaucoup du skript, quasiment tous marches,

Il y a 3 erreurs (voir ci-dessous)

 

Merci d'avance de votre réponse.

 

Bien cordialement

- Mi123

sk.erreur.JPG

Salut,
Je me suis permis de corriger juste une syntaxe de @LeCraftDeOuf.
Il te faut cependant json.sk.
Voici ton code :

 

options:	
	Erreur1: &fUsage : /helpop <message>

command /helpop [<text>]:
	trigger:
		if arg 1 isn't set:
			send "{@Erreur1}"
			stop
		else:
			loop all players:
				loop-player has permission "View.Helpop"
				send "&8&l[&c&lAIDE&8&l] &a%player% demande : %arg 1%" to loop-player
				json("%loop-player%", "&8[&aSe téléporter&8]||cmd:/tp %player%|| &7| ||&8[&cTp salle admin&8]||cmd:/TpSalleAdmin %player%|| &7| ||&8[&6Return&8]||cmd:")
command /return [<player>]:
	trigger:
		teleport player to {Return.%arg 1%}
command /TpSalleAdmin [<player>]:
	trigger:
		teleport player to {Salle.Admin.Tp}
		set {Return.%arg 1%} to location of arg 1
		wait 1 seconds
		
		teleport arg 1 to {Salle.Admin.Tp}
		
command /setTpSalleAdmin:
	trigger:
		send "&7Vous venez de set le spawn de la salle admin"
		set {Salle.Admin.Tp} to location of player

 

Posté(e)

Salut,

Merci beaucoup il n'y plus d'erreur mais je me demandais si c'était possible de pouvoir mettre plusieurs salles admin et que ça tp le joueur dans une non occupée ?

 

Merci d'avance pour votre réponse.

 

Bien cordialement

- Mi123

Posté(e)
il y a 1 minute, Mi123 a dit :

Salut,

Merci beaucoup il n'y plus d'erreur mais je me demandais si c'était possible de pouvoir mettre plusieurs salles admin et que ça tp le joueur dans une non occupée ?

 

Merci d'avance pour votre réponse.

 

Bien cordialement

- Mi123

Salut,

Je m'occupe de ça si tu n'as eu aucune réponse dès demain soir.

Posté(e)

ok merci ^^

 

Rebonjour,

J'ai trouvé un problème, cela me kick pour "illegal characters in chat" quand je clique sur return...

Pouvez vous essayer de régler le problème svp

Merci d'avance

Bien cordialement

- Mi123

Posté(e)

ok merci beaucoup

Edit:

Rebonsoir,

J'ai réussi à régler le problème moi même pour le illegal characters in chat ^^

Merci quand même ^^

Bien cordialement

- Mi123

Posté(e)
il y a 16 minutes, Mi123 a dit :

Rebonsoir,

J'ai réussi à régler le problème moi même pour le illegal characters in chat ^^

Merci quand même ^^

Bien cordialement

- Mi123

Ok, essaye sa dit moi t'en pense quoi /salleadmin pour voir l'aide.

et après /helpop et tu suis 😉

Posté(e)

Ola ! Je dit essaye sa mais j'envoye pas le code xD

 

options:	
	Erreur1: &fUsage : /helpop <message>

command /helpop [<text>]:
	trigger:
		if arg 1 isn't set:
			send "{@Erreur1}"
			stop
		else:
			loop all players:
				loop-player has permission "View.Helpop"
				send "&8&l[&c&lAIDE&8&l] &a%player% demande : %arg 1%" to loop-player
				json("%loop-player%", "&8[&aSe téléporter&8]||cmd:/tp %player%|| &7| ||&8[&cTp salle admin&8]||cmd:/SalleAdmin tp %player%|| &7| ||&8[&6Return&8]||cmd:/salleadmin return %player%")

command /salleadmin [<text>] [<player>]:
	trigger:
		if arg 1 is "add":
			set {_distance} to distance between location of target block and location of player
			if {_distance} is smaller than 5:
				loop {SalleAdmin::*}:
					if "%location of target block%" is "%loop-value%":
						set {_t} to true
				if {_t} isn't set:
					set {_loc} to location of target block
					add 2 to y-coordinate of {_loc}
					add {_loc} to {SalleAdmin::*}
					send "&eVous venez d'ajoutez une salle admin."
				else:
					send "&cCette salle d'admin existe déjà."
			else:
				send "&cVous devez viser le block de spawn de la salle d'admin."
		else if arg 1 is "remove":
			set {_distance} to distance between location of target block and location of player
			if {_distance} is smaller than 5:
				loop {SalleAdmin::*}:
					if "%location of target block%" is "%loop-value%":
						set {_t} to true
				if {_t} is true:
					remove location of target block from {SalleAdmin::*} 
					send "&cVous venez de supprimée cette salle admin."
				else:
					send "&cCette salle d'admin n'existe pas."
			else:
				send "&cVous devez viser le block de spawn de la salle d'admin."
		else if arg 1 is "list":
			set {_NumberIndex} to 1
			loop {SalleAdmin::*}:
				send "&6%{_NumberIndex}% &6- %loop-value%"
				add 1 to {_NumberIndex}
		else if arg 1 is "Debug":
			clear {SalleAdmin::*}
			send "debug effectuer"
		else if arg 1 is "return":
			if arg 2 is set:
				if {Return.%arg 2%} is set:
					teleport arg 2 to {Return.%arg 2%}
					wait 10 ticks
					clear {Return.%arg 2%}
					clear {SalleAdmin.%{SalleNumber.%arg 2%}%}
					clear {SalleNumber.%arg 2%}
					send "&2Salle libérer"
		else if arg 1 is "tp":
			if arg 2 is set:
				loop {SalleAdmin::*}:
					if {SalleAdmin.%loop-value%} isn't set:
						set {Return.%arg 2%} to location of arg 2
						teleport player to loop-value
						set {SalleNumber.%arg 2%} to loop-value
						set {SalleAdmin.%loop-value%} to 1
						wait 5 ticks
						
						teleport arg 2 to loop-value
						set {_Ok} to true
				if {_Ok} isn't set:
					send "&cAucune salle admin est disponible !"
			else:
				send "&c/salleadmin tp <player> &7- Vous teleporte vous et le <player> dans une salle libre."
		else:
			send "&2---------------------"
			send " "
			send "&3/salleadmin add &7- Ajoute une salle admin où vous vous situez."
			send "&3/salleadmin remove &7-Retirer une salle admin."
			send "&3/salleadmin list &7-Afficher tous les coordonnées des salle admin."
			send " "
			send "&2---------------------"

 

  • Haha 2
Posté(e)
Il y a 2 heures, Lou' a dit :

Afin d'enlever la dépendance json.sk, je vous conseille fortement de lire ceci https://skript-mc.fr/forum/topic/13906-les-messages-json-sans-addonsapi/
C'est bien plus simple et pratique, puis c'est intégrer dans skript ^^

 

Oui mais bon je trouve bien plus facile d'utiliser la fonction json, puis ces pas sa qu'y prend le plus de place, après c'est comme il veut 😉

Posté(e) (modifié)

Merci LeCraftDeOuf !

j'ai un peu modifié votre code pour éviter que les modérateurs puissent ajouter des salles admin (voir ci dessous)

Par contre le système de remove bug, c'est impossible de supprimer une salle admin... le message "Cette salle d'admin n'existe pas." n'arrête pas de s'afficher 😕

Pouvez vous essayer de faire en sorte que les salles ai un nom qui pourrait être enregistré pour supprimer les salles avec /sa remove <nom>

 

Merci d'avance

Bien cordialement

- Mi123

options:	
	Erreur1: &fUsage : /helpop <message>

command /helpop [<text>]:
	aliases: ask, a, ticket, question
	trigger:
		if arg 1 isn't set:
			send "{@Erreur1}"
			stop
		else:
			message "&aTa question a bien été envoyée..."
			loop all players:
				loop-player has permission "essentials.helpop.receive"
				send "&8&l[&c&lAIDE&8&l] &a%player% demande : %arg 1%" to loop-player
				json("%loop-player%", "&8[&aSe téléporter&8]||cmd:/tp %player%|| &7| ||&8[&cTp salle admin&8]||cmd:/SalleAdmin tp %player%|| &7| ||&8[&6Return&8]||cmd:/salleadmin return %player%")

command /sa [<text>] [<player>]:
	permission: admin.acc.joiner
	trigger:
		if arg 1 is "add":
			set {_distance} to distance between location of target block and location of player
			if {_distance} is smaller than 5:
				loop {SalleAdmin::*}:
					if "%location of target block%" is "%loop-value%":
						set {_t} to true
				if {_t} isn't set:
					set {_loc} to location of target block
					add 2 to y-coordinate of {_loc}
					add {_loc} to {SalleAdmin::*}
					send "&eVous venez d'ajoutez une salle admin."
				else:
					send "&cCette salle d'admin existe déjà."
			else:
				send "&cVous devez viser le block de spawn de la salle d'admin."
		else if arg 1 is "remove":
			set {_distance} to distance between location of target block and location of player
			if {_distance} is smaller than 5:
				loop {SalleAdmin::*}:
					if "%location of target block%" is "%loop-value%":
						set {_t} to true
				if {_t} is true:
					remove location of target block from {SalleAdmin::*} 
					send "&cVous venez de supprimée cette salle admin."
				else:
					send "&cCette salle d'admin n'existe pas."
			else:
				send "&cVous devez viser le block de spawn de la salle d'admin."
		else if arg 1 is "list":
			set {_NumberIndex} to 1
			loop {SalleAdmin::*}:
				send "&6%{_NumberIndex}% &6- %loop-value%"
				add 1 to {_NumberIndex}
		else if arg 1 is "Debug":
			clear {SalleAdmin::*}
			send "debug effectuer"
		else:
			send "&2---------------------"
			send " "
			send "&3/sa add &7- Ajoute une salle admin où vous vous situez."
			send "&3/sa remove &7-Retirer une salle admin."
			send "&3/sa list &7-Afficher tous les coordonnées des salle admin."
			send " "
			send "&2---------------------"
command /salleadmin [<text>] [<player>]:
	permission: essentials.helpop.receive
	trigger:
		if arg 1 is "return":
			if arg 2 is set:
				if {Return.%arg 2%} is set:
					teleport arg 2 to {Return.%arg 2%}
					wait 10 ticks
					clear {Return.%arg 2%}
					clear {SalleAdmin.%{SalleNumber.%arg 2%}%}
					clear {SalleNumber.%arg 2%}
					send "&2Salle libérer"
		else if arg 1 is "tp":
			if arg 2 is set:
				loop {SalleAdmin::*}:
					if {SalleAdmin.%loop-value%} isn't set:
						set {Return.%arg 2%} to location of arg 2
						teleport player to loop-value
						set {SalleNumber.%arg 2%} to loop-value
						set {SalleAdmin.%loop-value%} to 1
						wait 5 ticks
						
						teleport arg 2 to loop-value
						set {_Ok} to true
				if {_Ok} isn't set:
					send "&cAucune salle admin est disponible !"
			else:
				send "&c/salleadmin tp <player> &7- Vous teleporte vous et le <player> dans une salle libre."

 

Modifié par Mi123
Modification du texte (simplification)
Posté(e)

Bon tien, c'est pas opti du tous mais sa fonctionne, dit moi si tu as encore des soucis. (J'ai fais en sorte que tu peut faire /as remove 3 et si tu avais un 4, 5, 6, 7, 8 il se transforme en 3, 4, 5, 6, 7. Comme sa sa reste toujours dans le bon ordre (enfin normalement) et j'ai corriger quelque soucis de tp 😉 )

 

options:	
	Erreur1: &fUsage : /helpop <message>

command /helpop [<text>]:
	aliases: ask, a, ticket, question
	trigger:
		if arg 1 isn't set:
			send "{@Erreur1}"
			stop
		else:
			message "&aTa question a bien été envoyée..."
			loop all players:
				loop-player has permission "essentials.helpop.receive"
				send "&8&l[&c&lAIDE&8&l] &a%player% demande : %arg 1%" to loop-player
				json("%loop-player%", "&8[&aSe téléporter&8]||cmd:/tp %player%|| &7| ||&8[&cTp salle admin&8]||cmd:/SalleAdmin tp %player%|| &7| ||&8[&6Return&8]||cmd:/salleadmin return %player%")

command /sa [<text>] [<text>]:
	permission: admin.acc.joiner
	trigger:
		if arg 1 is "add":
			set {_distance} to distance between location of target block and location of player
			if {_distance} is smaller than 5:
				loop {SalleAdmin::*}:
					if "%location of target block%" is "%loop-value%":
						set {_t} to true
				if {_t} isn't set:
					set {_loc} to location of target block
					add 2 to y-coordinate of {_loc}
					set {_rr} to size of {SalleAdmin::*}+1
					add "%{_rr}%|%{_loc}%" to {SalleAdmin::*}
					send "&eVous venez d'ajoutez une salle admin."
				else:
					send "&cCette salle d'admin existe déjà."
			else:
				send "&cVous devez viser le block de spawn de la salle d'admin."
		else if arg 1 is "remove":
			if arg 2 is set:
				loop {SalleAdmin::*}:
					set {_splitMessage::*} to loop-value split at "|"
					if "%{_splitMessage::1}%" is "%arg 2%":
						remove loop-value from {SalleAdmin::*}
						send "&cSuppression effectuer"
					else if {_splitMessage::1} parsed as number > arg 2 parsed as number:
						set {_Number} to "%{_splitMessage::1}%" parsed as number
						remove 1 from {_Number}
						remove loop-value from {SalleAdmin::*}
						wait 5 ticks
						add "%{_Number}%|%{_splitMessage::2}%" to {SalleAdmin::*}
			else:
				send "&cUsage : /sa remove <number>. Voir /sa list."
		else if arg 1 is "list":
			if {SalleAdmin::*} is set:
				loop {SalleAdmin::*}:
					set {_splitMessage::*} to loop-value split at "|"
					if {SalleAdminocc::%{_splitMessage::1}%} is set:
						send "&7%{_splitMessage::1}% &7- &6%{_splitMessage::2}% &c( Occuper )"
					else:
						send "&7%{_splitMessage::1}% &7- &6%{_splitMessage::2}%"
			else:
				send "&cAucune salle admin "	
		else if arg 1 is "Debug":
			clear {SalleAdmin::*}
			clear {SalleAdminocc::*}
			send "debug effectuer"
		else:
			send "&2---------------------"
			send " "
			send "&3/sa add &7- Ajoute une salle admin où vous vous situez."
			send "&3/sa remove &7-Retirer une salle admin."
			send "&3/sa list &7-Afficher tous les coordonnées des salle admin."
			send " "
			send "&2---------------------"
command /salleadmin [<text>] [<player>]:
	permission: essentials.helpop.receive
	trigger:
		if arg 1 is "return":
			if arg 2 is set:
				if {Return.%arg 2%} is set:
					set {_splitMessage::*} to {Return.%arg 2%} split at "|"
					replace "x:" and "y:" and "z:" and "," with "" in {_splitMessage::2}
					set {_splitMessages2::*} to {_splitMessage::2} split at " "
					set {_loc} to location at ({_splitMessages2::2} parsed as number), ({_splitMessages2::4} parsed as number), ({_splitMessages2::6} parsed as number) of world "Spawn"
					teleport arg 2 to {_loc}
					wait 10 ticks
					clear {Return.%arg 2%}
					clear {SalleAdminocc::%{_splitMessage::1}%}
					send "&2Salle libérer"
		else if arg 1 is "tp":
			if arg 2 is set:
				loop {SalleAdmin::*}:
					set {_splitMessage::*} to loop-value split at "|"
					if {SalleAdminocc::%{_splitMessage::1}%} isn't set:
						set {Return.%arg 2%} to "%{_splitMessage::1}%|%location of arg 2%"
						send "&7Wait "
						wait 1 second
						replace "x:" and "y:" and "z:" and "," with "" in {_splitMessage::2}
						set {_splitMessages2::*} to {_splitMessage::2} split at " "
						set {_loc} to location at ({_splitMessages2::2} parsed as number), ({_splitMessages2::4} parsed as number), ({_splitMessages2::6} parsed as number) of world "Spawn"
						teleport player to {_loc}
						teleport arg 2 to {_loc}
						set {SalleAdminocc::%{_splitMessage::1}%} to true
						set {_Ok} to "e"
						stop
				if {_Ok} isn't set:
					send "&cAucune salle admin est disponible !"
			else:
				send "&c/salleadmin tp <player> &7- Vous teleporte vous et le <player> dans une salle libre."

 

  • J'aime 1
Posté(e)

J'ai réglé le problème ! (problème avec les mondes)

Il n'y a plus d'erreurs.

Merci beaucoup à vous !!!

Bonne journée !

Bien cordialement

- Mi123

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.