Aller au contenu
  • 0

Question

Posté(e)

Version de Minecraft : 1.9.X
Version de Skript : 2.X.X

Addons utilisés: aucun

Type du skript : plugin de friends

Description du script :

Bonjour, je programme un skript de /friends pour mon serveur mais j'ai des problèmes que je n'arrive pas à résoudre. Tout d'abord, lorsque j'utilise la commande "/f accept <player>" ou "/f refuse <player>", le message destiné à la personne qui a envoyé la demande ne s'envoie pas. De plus lorsque je fais un "/f remove <player>", le message ne s'envoie pas a chaque fois à la personne qui a été retiré de la list d'ami.

merci d'avance 

options:
	prefix: [Friends] >>

command /friends [<text>] [<text>]:
	aliases : /f, /friend  
	trigger:
		if arg 1 is "add":
			if arg 2 is set:
				set {_player} to arg 2
				loop {friends.%player%::*}:
					if loop-value = {_player}:
						message "&b[friend] >> &cCe joueur est déjà votre ami(e) !" to player
						stop
				loop all players:
					if {_player} = loop-player:
						if arg 2 is not player:
							message "Demande envoyé à %arg 2% !" to player
							message "&3&m+------------------------------------+" to loop-player
							message "" to loop-player
							message "%player% vous a demandé en ami(e) !" to loop-player
							message "" to loop-player
							json("%loop-player%", "&2       [Accepter]     ||ttp: Cliques ici pour accepter ||cmd:/friends accept %player%|| &4[Refuser]||ttp: Cliques ici pour refuser ||cmd:/friends refuse %player%")
							message "" to loop-player
							message "&3&m+------------------------------------+" to loop-player
							set {demande.friends.%player%.%arg 2%} to true
							clear {_player}
							stop
						else:
							message "&b[friend] >> &cVous ne pouvez pas vous demander en ami(e) !" to player
							stop
				message "&b[friend] >> &cCe joueur n'est pas en ligne !" to player
				stop
			else:
				message "&b[friend] >> &f/f add <player>" to player
				stop
		if arg 1 is "remove":
			if arg 2 is set:
				loop {friends.%player%::*}:
					if loop-value = arg 2:
						message "&b[friend] >> &cVous venez de supprimer l'ami(e) %arg 2%" to player
						remove arg 2 from {friends.%player%::*}
						remove player from {friends.%arg 2%::*}
						message "&b[friend] >> &cVous n'etes désormais plus ami(e) avec %player%" to loop-value
						stop
				message "&b[friend] >> &cVous n'êtes déjà pas ami(e) avec ce joueur !" to player
				stop
			else:
				message "&b[friend] >> &f/f remove <player>" to player
				stop
				
		if arg 1 is "list":
			if arg 2 is not set:
				set {_nb} to 0
				loop {friends.%player%::*}:
					add 1 to {_nb}
				message "&m-----&ffriends list&m-----&f (%{_nb}% ami(e)s)" to player
				message "" to player
				loop {friends.%player%::*}:
					message "- %loop-value% " to player
				stop
			else:
				message "&b[friend] >> &f/f list" to player
				stop
				
		if arg 1 is "accept":
			if arg 2 is set:
				if {demande.friends.%arg 2%.%player%} is true:
					add arg 2 to {friends.%player%::*}
					add player to {friends.%arg 2%::*}
					set {_player1} to arg 2
					message "&b[friend] >> &aVous êtes désormais ami(e) avec %arg 2% !" to player
					message "&b[friend] >> &a%player%&a a accepté votre demande, vous êtes désormais ami(e) !" to {_player1}
					clear {demande.friends.%arg 2%.%player%}
					stop
				else:
					message "&b[friend] >> &cCe joueur ne vous a pas demandé(e) en ami(e) !" to player
					stop
			else:
				message "&b[friend] >> &c/f accept <player> !" to player
				stop
					
		if arg 1 is "refuse":
			if arg 2 is set:
				if {demande.friends.%arg 2%.%player%} is true:
					set {_player2} to arg 2
					message "&b[friend] >> &cVous avez refusé la demande d'ami(e) de %arg 2% !" to player
					message "&b[friend] >> &c%player%&c a refusé votre demande d'ami(e) !" to {_player2}
					clear {demande.friends.%arg 2%.%player%}
					stop
				else:
					message "&b[friend] >> &cCe joueur ne vous a pas demandé(e) en ami(e) !" to player
					stop
			else:
				message "&b[friend] >> &c/f refuse <player> !" to player
				stop
					
		if arg 1 is "help":
			message "&b[friend] >> &f/f add <player> &e(Permet d'ajouter un ami)" to player
			message "&b[friend] >> &f/f remove <player> &e(Permet de supprimer un ami)" to player
			message "&b[friend] >> &f/f accept <player> &e(Permet d'accepter une demande d'ami)" to player
			message "&b[friend] >> &f/f refuse <player> &e(Permet de rufuser une demande d'ami)" to player
			message "&b[friend] >> &f/f list &e(Affiche la list de tes amis)" to player
			message "&b[friend] >> &f/f help &e(Affiche la list des commandes)" to player
		if arg 1 is not set:
			message "&b[friend] >> &f/f help"
			stop

 

5 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Bonjour, je vais te proposer mon aide.

 

Pour répondre à ton premier problème, soit le message qui ne s'envoie pas. Voici ton code:

set {_player1} to arg 2
message "&b[friend] >> &aVous êtes désormais ami(e) avec %arg 2% !" to player
message "&b[friend] >> &a%player%&a a accepté votre demande, vous êtes désormais ami(e) !" to {_player1}

Sachant que ton argument 2 est un texte,

command /friends [<text>] [<text>]:

Tu ne peux pas envoyer de message à un texte. La solution serai de "parser" le texte en joueur. Pour se faire, voici le code:

set {_player1} to arg 2 parsed as a player
message "&b[friend] >> &aVous êtes désormais ami(e) avec %arg 2% !" to player
message "&b[friend] >> &a%player%&a a accepté votre demande, vous êtes désormais ami(e) !" to {_player1}

Il faut que tu rajouter donc le "parsed as a player" partout ou tu en a besoin.

 

Pour répondre à ton second problème, c'est toujours un problème de type de variable.

Lorsque tu accepte un ami, tu ajoute l'argument 2 dans la liste des amis du joueur (Qui je le rappelle, l'argument 2 est un texte). Tu dois donc encore une fois "parser" le texte en joueur. Pour se faire:

add arg 2 to {friends.%player%::*}

Devient:

add (arg 2 parsed as a player) to {friends.%player%::*}

 

J'espère que j'ai répondu à tous tes problèmes, si ce n'est pas le cas, fais moi le savoir en répondant ci-dessous !

 

Bonne journée,

Skylyxx

  • J'aime 1
  • 0
Posté(e)

salut, enfaite j'ai un autre probleme, quand je fais une dm et que le joueur qui a fait la dm n'est plus connecté, lorsque le joueur accept la dm le jeu envoi un message comme quoi le joueur n'a pas fait de dm "ligne 78:

else:
	message "&b[friend] >> &cCe joueur ne vous a pas demandé(e) en ami(e) !" to player
	stop

alors que lorsequ'il se reconnecte ça remarche.

options:
	prefix: [Friends] >>

command /friends [<text>] [<text>]:
	aliases : /f, /friend  
	trigger:
		if arg 1 is "add":
			if arg 2 is set:
				set {_player} to arg 2 parsed as a player
				loop {friends.%uuid of player%::*}:
					if loop-value = {_player}:
						message "&b[friend] >> &cCe joueur est déjà votre ami(e) !" to player
						stop
				loop all players:
					if {_player} = loop-player:
						if arg 2 is not player:
							message "Demande envoyé à %arg 2% !" to player
							message "&3&m+------------------------------------+" to loop-player
							message "" to loop-player
							message "%player% vous a demandé en ami(e) !" to loop-player
							message "" to loop-player
							json("%loop-player%", "&2       [Accepter]     ||ttp: Cliques ici pour accepter ||cmd:/friends accept %player%|| &4[Refuser]||ttp: Cliques ici pour refuser ||cmd:/friends refuse %player%")
							message "" to loop-player
							message "&3&m+------------------------------------+" to loop-player
							set {demande.friends.%uuid of player%.%uuid of (arg 2 parsed as a player)%} to true
							clear {_player}
							stop
						else:
							message "&b[friend] >> &cVous ne pouvez pas vous demander en ami(e) !" to player
							stop
				message "&b[friend] >> &cCe joueur n'est pas en ligne !" to player
				stop
			else:
				message "&b[friend] >> &f/f add <player>" to player
				stop
		if arg 1 is "remove":
			if arg 2 is set:
				loop {friends.%uuid of player%::*}:
					if loop-value = arg 2:
						message "&b[friend] >> &cVous venez de supprimer l'ami(e) %arg 2%" to player
						remove arg 2 from {friends.%uuid of player%::*}
						remove player from {friends.%uuid of (arg 2 parsed as a player)%::*}
						message "&b[friend] >> &cVous n'etes désormais plus ami(e) avec %player%" to loop-value
						stop
				message "&b[friend] >> &cVous n'êtes déjà pas ami(e) avec ce joueur !" to player
				stop
			else:
				message "&b[friend] >> &f/f remove <player>" to player
				stop
				
		if arg 1 is "list":
			if arg 2 is not set:
				set {_nb} to 0
				loop {friends.%uuid of player%::*}:
					add 1 to {_nb}
				message "&m-----&ffriends list&m-----&f (%{_nb}% ami(e)s)" to player
				message "" to player
				loop {friends.%uuid of player%::*}:
					if loop-value is online:
						message "- %loop-value% (online) " to player
					else:
						message "- %loop-value% (offline) " to player
				stop
			else:
				message "&b[friend] >> &f/f list" to player
				stop
				
		if arg 1 is "accept":
			if arg 2 is set:
				if {demande.friends.%uuid of (arg 2 parsed as a player)%.%uuid of player%} is true:
					add (arg 2 parsed as a player) to {friends.%uuid of player%::*}
					add player to {friends.%uuid of (arg 2 parsed as a player)%::*}
					set {_player1} to arg 2 parsed as a player
					message "&b[friend] >> &aVous êtes désormais ami(e) avec %arg 2% !" to player
					message "&b[friend] >> &a%player%&a a accepté votre demande, vous êtes désormais ami(e) !" to {_player1}
					clear {demande.friends.%uuid of (arg 2 parsed as a player)%.%uuid of player%}
					stop
				else:
					message "&b[friend] >> &cCe joueur ne vous a pas demandé(e) en ami(e) !" to player
					stop
			else:
				message "&b[friend] >> &c/f accept <player> !" to player
				stop
					
		if arg 1 is "refuse":
			if arg 2 is set:
				if {demande.friends.%uuid of (arg 2 parsed as a player)%.%uuid of player%} is true:
					set {_player2} to arg 2 parsed as a player
					message "&b[friend] >> &cVous avez refusé la demande d'ami(e) de %arg 2% !" to player
					message "&b[friend] >> &c%player%&c a refusé votre demande d'ami(e) !" to {_player2}
					clear {demande.friends.%uuid of (arg 2 parsed as a player)%.%uuid of player%}
					stop
				else:
					message "&b[friend] >> &cCe joueur ne vous a pas demandé(e) en ami(e) !" to player
					stop
			else:
				message "&b[friend] >> &c/f refuse <player> !" to player
				stop
					
		if arg 1 is "help":
			message "&b[friend] >> &f/f add <player> &e(Permet d'ajouter un ami)" to player
			message "&b[friend] >> &f/f remove <player> &e(Permet de supprimer un ami)" to player
			message "&b[friend] >> &f/f accept <player> &e(Permet d'accepter une demande d'ami)" to player
			message "&b[friend] >> &f/f refuse <player> &e(Permet de rufuser une demande d'ami)" to player
			message "&b[friend] >> &f/f list &e(Affiche la list de tes amis)" to player
			message "&b[friend] >> &f/f help &e(Affiche la list des commandes)" to player
		if arg 1 is not set:
			message "&b[friend] >> &f/f help"
			stop

Merci 😉

  • 0
Posté(e)

C'est normal, tu essaye de récupérer l'uuid du joueur, sauf qu'il n'est pas connecté. Cela est donc impossible. Tu devras soit stocker l'uuid des deux joueurs, soit utiliser les pseudos, mais donc tes joueurs ne pourront pas changer de pseudo.

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