Aller au contenu

Question

Posté(e)

Bonjour,

Je suis actuellement en train de coder un skript de sanctions ( /ban | /tempban | /tempmute | /unban | /unmute | ... ) mais le soucis est les timespan, je ne comprends pas comment sa fonctionne.

Exemple : Vous voulez bannir un joueur nommé JeCheat pendant 30 jours pour Cheat donc vous faites "/tempban JeCheat 30d Cheat" mais sa ne fonctionne pas car il faut faire "/tempban JeCheat day Cheat" mais se ne le bannira que 1 jours 😞

Je voudrais savoir comment faire pour bannir avec une durée choisie.

Code :

# ============================= #

     # ---- Options ----#

# ============================= #

options:
    prefix: &4&lSanction &8»
    permission: sanction.player
    
# ============================= #

     # ---- Commandes ----#

# ============================= #

command /ban [<offline player>] [<text>]:
    trigger:
        if player has permission "{@permission}":
            if arg 1 is not set:
                if arg 2 is not set:
                    send "{@prefix} &cVeuillez mettre le pseudo du joueur à bannir et une raison !"
                    stop
            if arg 1 is set:
                if arg 2 is not set:
                    send "{@prefix} &cVeuillez mettre une raison pour bannir &6%arg 1% &c!"
                    stop
                if arg 2 is set:
                    if {ban.%arg 1%} is false:
                        broadcast "&b&m--|----------------------------------------|--"
                        broadcast "          &cUn joueur à été banni du serveur !"
                        broadcast "&b&m--|----------------------------------------|--"
                        set {ban.%arg 1%} to true
                        set {reason} to arg 2
                        set {player} to player
                        kick arg 1 due to "&cVous avez été banni du serveur%nl%%nl%&bTemps &8: &6Définitivement%nl%&bRaison &8: &6%arg 2%%nl%&bSanction donnée par &8: &6%player%%nl%%nl%&ePour contester votre bannissement rendez-vous sur &barcania.net/forum/bannissements"
                        stop
                    if {ban.%arg 1%} is true:
                        send "{@prefix} &cCe joueur est déjà banni !"
                        stop
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !"
            stop
                    
command /tempban [<offline player>] [<timespan>] [<text>]:
    trigger:
        if player has permission "{@permission}":
            if arg 1 is not set:
                if arg 2 is not set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre le pseudo du joueur à bannir, la durée et une raison !"
                        stop
            if arg 1 is set:
                if arg 2 is not set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre une durée pour bannir &6%arg 1% &cet une raison !"
                        stop
                if arg 2 is set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre une raison pour bannir &6%arg 1% &c!"
                        stop
                    if arg 3 is set:
                        if {tempban.%arg 1%} is false:
                            broadcast "&b&m--|----------------------------------------|--"
                            broadcast "          &cUn joueur à été banni du serveur !"
                            broadcast "&b&m--|----------------------------------------|--"
                            set {tempban.%arg 1%} to true
                            set {timespan} to arg 2
                            set {reason2} to arg 3
                            set {player2} to player
                            kick arg 1 due to "&cVous avez été banni du serveur%nl%%nl%&bTemps &8: &6%arg 2%&6%nl%&bRaison &8: &6%arg 3%%nl%&bSanction donnée par &8: &6%player%%nl%%nl%&ePour contester votre bannissement rendez-vous sur &barcania.net/forum/bannissements"
                            wait arg 2
                            set {tempban.%arg 1%} to false
                            broadcast "&b&m--|----------------------------------------|--"
                            broadcast "        &cUn joueur à été débanni du serveur !"
                            broadcast "&b&m--|----------------------------------------|--"
                            stop
                        if {tempban.%arg 1%} is true:
                            send "{@prefix} &cCe joueur est déjà banni !"
                            stop
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !"
            stop
                                
command /tempmute [<offline player>] [<timespan>] [<text>]:
    trigger:
        if player has permission "{@permission}":
            if arg 1 is not set:
                if arg 2 is not set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre le pseudo du joueur à mute, la durée et une raison !"
                        stop
            if arg 1 is set:
                if arg 2 is not set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre une durée pour mute &6%arg 1% &cet une raison !"
                        stop
                if arg 2 is set:
                    if arg 3 is not set:
                        send "{@prefix} &cVeuillez mettre une raison pour mute &6%arg 1% &c!"
                        stop
                    if arg 3 is set:
                        if {tempmute.%arg 1%} is false:
                            send "{@prefix} &fVous avez mute &6%arg 1% &fpour &6%arg 3% &fpendant &6%arg 2%"
                            send "&b&m--|----------------------------------------|--" to arg 1
                            send " " to arg 1
                            send "     &cVous avez été réduit au silence" to arg 1
                            send " " to arg 1
                            send "     &bPendant &8: &6%arg 2%" to arg 1
                            send "     &bRaison &8: &6%arg 3%" to arg 1
                            send "     &bSanction donnée par &8: &6%player%" to arg 1
                            send " " to arg 1
                            send "&b&m--|----------------------------------------|--" to arg 1
                            set {tempmute.%arg 1%} to true
                            wait arg 2
                            set {tempmute.%arg 1%} to false
                            send "&b&m--|----------------------------------------|--" to arg 1
                            send "          &cVous n'êtes plus réduit au silence" to arg 1
                            send "&b&m--|----------------------------------------|--" to arg 1
                            stop
                        if {tempmute.%arg 1%} is true:
                            send "{@prefix} &cCe joueur est déjà mute !"
                            stop
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !"
            stop
                            
command /unmute [<offline player>]:
    trigger:
        if player has permission "{@permission}":
            if arg 1 is not online:
                send "{@prefix} &cCe joueur n'est pas en ligne actuellement !"
                stop
                send "{@prefix} &cVeuillez mettre le pseudo du joueur à unmute !"
                stop
            if arg 1 is set:
                set {tempmute.%arg 1%} to false
                send "&b&m--|----------------------------------------|--" to arg 1
                send "          &cVous n'êtes plus réduit au silence" to arg 1
                send "&b&m--|----------------------------------------|--" to arg 1
                send "{@prefix} &6%arg 1% &fà été unmute !"
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !"
            stop
            
command /unban [<offline player>]:
    trigger:
        if player has permission "{@permission}":
            if arg 1 is not set:
                send "{@prefix} &cVeuillez mettre le pseudo du joueur à unban !"
                stop
            if arg 1 is set:
                set {tempban.%arg 1%} to false
                broadcast "&b&m--|----------------------------------------|--"
                broadcast "        &cUn joueur à été débanni du serveur !"
                broadcast "&b&m--|----------------------------------------|--"
                set {ban.%arg 1%} to false
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !"
            stop
                    
# ============================= #

     # ---- Evénements ----#

# ============================= #

on join:
    if {ban.%player%} is not set:
        set {ban.%player%} to false
    if {tempban.%player%} is not set:
        set {tempban.%player%} to false
    if {tempmute.%player%} is not set:
        set {tempmute.%player%} to false
    set join message to ""

on quit:
    set quit message to ""
        
on join:
    if {ban.%player%} is true:
        kick player due to "&cVous avez été banni du serveur%nl%%nl%&bTemps &8: &6Définitivement%nl%&bRaison &8: &6%{reason}%%nl%&bSanction donnée par &8: &6%{player}%%nl%%nl%&ePour contester votre bannissement rendez-vous sur &barcania.net/forum/bannissements"
        stop
    if {tempban.%player%} is true:
        kick player due to "&cVous avez été banni du serveur%nl%%nl%&bTemps &8: &6%{timespan}%%nl%&bRaison &8: &6%{reason2}%%nl%&bSanction donnée par &8: &6%{player2}%%nl%%nl%&ePour contester votre bannissement rendez-vous sur &barcania.net/forum/bannissements"
        stop
        
on chat:
    if {tempmute.%player%} is true:
        cancel event
        send "{@prefix} &cVous êtes réduit au silence !"
        stop

Version :

Serveur 1.8

Skript 2.2dev25

 

Merci beaucoup pour votre aide ^^

9 réponses à cette question

Messages recommandés

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

Met des variables liste, le "." ne sert à rien

{Variable.%player%}, met plutôt {Variable::%player%}

C'est + optimisé, et tu as beaucoup + de possibilités (Telles qu'un /history)

Et je ne comprend pas non plus pourquoi tu mets "if lpayer has permission"

Tu peux directement faire ça au dessus, genre..
 


command /ban [<offline player>] [<text>]:
	permission: ban.sk #Ou {@Permission} marche
  	permission message: Ton message si le joueur n'a pas de perm #Ou {@PermissionMessage} marche aussi
  	trigger:
  		if arg-1 is set:
  			if arg-1 is online:
  				ban arg-1 due to "&cVous avez été banni par &e%executor%&c.%nl%%nl%&cRaison : &b%arg-1%%nl%Une erreur ? Contactez-nous > [Lien quelconque]"
  				kick arg-1 due to "&cVous avez été banni par &e%executor%&c.%nl%%nl%&cRaison : &b%arg-1%%nl%Une erreur ? Contactez-nous > [Lien quelconque]"
  			else:
  				ban arg-1 due to "&cVous avez été banni par &e%executor%&c.%nl%%nl%&cRaison : &b%arg-1%%nl%Une erreur ? Contactez-nous > [Lien quelconque]"
 

2e solution (enfin solution, je recode issou)


command /ban [<offline player>] [<text>]:
	permission: ban.sk
	permission message: &eBlabla t'as pas le droit
	trigger:
		if arg-1 is set:
			kick arg-1 due to "&cVous avez été banni par &e%executor%&c.%nl%%nl%&cRaison : &b%arg-1%%nl%Une erreur ? Contactez-nous > [Lien quelconque]"
			set {ban::%arg-1%} to true
			set {BanMessage::%arg-1%} to "&cVous avez été banni par &e%executor%&c.%nl%%nl%&cRaison : &b%arg-1%%nl%Une erreur ? Contactez-nous > [Lien quelconque]"

on join:
	if {ban::%player%} = true:
		kick player due to "%{BanMessage::%player%}%"

Pour le fait que j'utilise le "if player has permission" c'est parce que je n'aime pas mettre les trucs au dessus, j'trouve sa pas beau du tout.

De plus, j'ai demandé de l'aide pour les timespan pas qu'on me recode mon code ou je sais pas quoi !

Modifié par Zerox Graphic's
  • 0
Posté(e)
Il y a 6 heures, KneaXy a dit :

Déjà, calme-toi, ne fais pas de double post, ton code est mauvais

Met un <offline player> <time span> <text> <text>

'faut dire ce qu'il y a après le time span genre if arg-3 is "days" etc, après tu set une variable qui correspond au time span

Premièrement je suis très calme donc tu n'as pas à me dire de me calmer. Ensuite, je n'ai pas fais de double post donc je ne vois absolument pas pourquoi tu dis sa.
Et puis ensuite ta réponse n'est pas claire du tout alors si tu pouvais mieux structurer tes réponses sa serait mieux.

  • Humm 1
  • 0
Posté(e)

Bonjour les enfants,

Nous ne sommes pas dans une cours de récréation, je vous demanderais donc de bien vouloir vous calmer. Votre agressivité mutuelle ne va pas arranger les choses. Faites l'amour pas la guerre.

Bonne journée,
Rémi.

  • 0
Posté(e) (modifié)

Salut.

Vu que ça galère un peu, je t'ai fait un petit script qui permet de réduire un joueur au silence ou en bannir un temporairement 😎 (j'ai préféré refaire un nouveau code pour que ce soit plus clair pour toi).

Tu peux modifier les commandes, permissions, messages et variables pour que le tout corresponde avec ce que tu veux.

Les commandes sont :

  • /mute <joueur> <durée> <raison>
  • /unmute <joueur>
  • /ban <joueur> <durée> <raison>
  • /unban <joueur>

Les durées doivent être écrites en anglais. Exemple, si tu veux bannir un joueur 12 heures, tu dois écrire "ban <le joueur> 12 hours <la raison>".

Les variables sont :

  • {mute.%player%} : vérifie si le joueur a le droit de parler ou pas.
  • {mute.%player%.date} : la date à laquelle le joueur a été sanctionné.
  • {mute.%player%.time} : le temps pendant lequel le joueur ne peut pas parler (en timespan).
  • {mute.%player%.reason} : la raison pour laquelle le joueur n'a pas le droit de parler.

C'est la même chose pour les bannissements, sauf que la variable est {ban.%player%.etc...} au lieu de {mute.%player%.etc...}.

Voici le code (je l'ai testé et il fonctionne jusqu'à là ; si toutefois tu as un problème, dis-le moi 🤔) :

function timeInFrench(time: timespan) :: text:
	set {_time} to "%{_time}%"
	set {_texts::*} to {_time} split by " "
	set {_number.1} to {_texts::1} parsed as a number
	set {_number.1} to rounded {_number.1}
	set {_text.1} to {_texts::2}
	if {_texts::3} is set:
		set {_number.2} to {_texts::4} parsed as a number
		set {_number.2} to rounded {_number.2}
		set {_text.2} to {_texts::5}
	set {_list::*} to 1 and 2
	loop {_list::*}:
		if {_number.%loop-value%} is set:
			if {_number.%loop-value%} < 2:
				if the first character of {_text.%loop-value%} is "s":
					set {_text.%loop-value%} to "seconde"
				else if the first character of {_text.%loop-value%} is "m":
					set {_text.%loop-value%} to "minute"
				else if the first character of {_text.%loop-value%} is "h":
					set {_text.%loop-value%} to "heure"
				else if the first character of {_text.%loop-value%} is "d":
					set {_text.%loop-value%} to "jour"
			else:
				if the first character of {_text.%loop-value%} is "s":
					set {_text.%loop-value%} to "secondes"
				else if the first character of {_text.%loop-value%} is "m":
					set {_text.%loop-value%} to "minutes"
				else if the first character of {_text.%loop-value%} is "h":
					set {_text.%loop-value%} to "heures"
				else if the first character of {_text.%loop-value%} is "d":
					set {_text.%loop-value%} to "jours"
	if {_number.2} is not set:
		return "%{_number.1}% %{_text.1}%"
	else:
		return "%{_number.1}% %{_text.1}% et %{_number.2}% %{_text.2}%"

command /mute [<text>] [<text>] [<text>] [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {_player} has not played before:
				send "Ce joueur ne s'est jamais connecté."
			else:
				if {mute.%{_player}%} is true:
					set {_difference} to difference between {mute.%{_player}%.date} and now
					if {_difference} is less than {mute.%{_player}%.time}:
						send "Ce joueur est déjà sanctionné."
						stop trigger
				if argument 3 is not set:
					send "Tu dois préciser une durée."
				else:
					set {_time} to "%argument 2% %argument 3%" parsed as a timespan
					if {_time} is not set:
						send "La durée n'a pas été écrite correctement."
					else:
						if argument 4 is not set:
							send "Tu dois préciser une raison."
						else:
							set {_reason} to argument 4
							set {mute.%{_player}%} to true
							set {mute.%{_player}%.date} to now
							set {mute.%{_player}%.time} to {_time}
							set {mute.%{_player}%.reason} to {_reason}
							set {_time} to timeInFrench({_time})
							broadcast "%{_player}% n'a plus le droit de parler pendant %{_time}% pour ""%{_reason}%""."

on chat:
	if {mute.%player%} is true:
		set {_difference} to difference between {mute.%player%.date} and now
		if {_difference} is less than {mute.%player%.time}:
			cancel event
			set {_time.left} to difference between {_difference} and {mute.%player%.time}
			set {_time.left} to timeInFrench({_time.left})
			set {_reason} to {mute.%player%.reason}
			send "Tu n'as plus le droit de parler pour ""%{_reason}%"". Temps restant : %{_time.left}%." to player
		else:
			clear {mute.%player%}
			clear {mute.%player%.date}
			clear {mute.%player%.time}
			clear {mute.%player%.reason}

command /unmute [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {mute.%{_player}%} is not set:
				send "Ce joueur n'est pas sanctionné."
			else:
				clear {mute.%{_player}%}
				clear {mute.%{_player}%.date}
				clear {mute.%{_player}%.time}
				clear {mute.%{_player}%.reason}
				send "Ce joueur n'est plus sanctionné."

command /ban [<text>] [<text>] [<text>] [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {_player} has not played before:
				send "Ce joueur ne s'est jamais connecté."
			else:
				if {ban.%{_player}%} is true:
					set {_difference} to difference between {ban.%{_player}%.date} and now
					if {_difference} is less than {ban.%{_player}%.time}:
						send "Ce joueur est déjà sanctionné."
						stop trigger
				if argument 3 is not set:
					send "Tu dois préciser une durée."
				else:
					set {_time} to "%argument 2% %argument 3%" parsed as a timespan
					if {_time} is not set:
						send "La durée n'a pas été écrite correctement."
					else:
						if argument 4 is not set:
							send "Tu dois préciser une raison."
						else:
							set {_reason} to argument 4
							set {ban.%{_player}%} to true
							set {ban.%{_player}%.date} to now
							set {ban.%{_player}%.time} to {_time}
							set {ban.%{_player}%.reason} to {_reason}
							set {_time} to timeInFrench({_time})
							if {_player} is online:
								kick {_player} due to "Tu n'as plus le droit de rejoindre le serveur pendant %{_time}% pour ""%{_reason}%""."
							broadcast "%{_player}% n'a plus le droit de rejoindre le serveur pendant %{_time}% pour ""%{_reason}%""."

on connect:
	if {ban.%player%} is true:
		set {_difference} to difference between {ban.%player%.date} and now
		if {_difference} is less than {ban.%player%.time}:
			set {_time.left} to difference between {_difference} and {ban.%player%.time}
			set {_time.left} to timeInFrench({_time.left})
			set {_reason} to {ban.%player%.reason}
			kick player due to "Tu n'as plus le droit de rejoindre le serveur pour ""%{_reason}%"". Temps restant : %{_time.left}%."
		else:
			clear {ban.%player%}
			clear {ban.%player%.date}
			clear {ban.%player%.time}
			clear {ban.%player%.reason}

command /unban [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {ban.%{_player}%} is not set:
				send "Ce joueur n'est pas sanctionné."
			else:
				clear {ban.%{_player}%}
				clear {ban.%{_player}%.date}
				clear {ban.%{_player}%.time}
				clear {ban.%{_player}%.reason}
				send "Ce joueur n'est plus sanctionné."

 

Modifié par PlayScripts
  • 0
Posté(e)
Le 15/06/2019 à 17:48, Sushi a dit :

Au pire essaye " /tempban JeCheat 30 day Cheat " je pense que tu dois espacer le 30 et le d ou day 🙂

Déjà essayé 😕

Le 15/06/2019 à 23:38, PlayScripts a dit :

Salut.

Vu que ça galère un peu, je t'ai fait un petit script qui permet de réduire un joueur au silence ou en bannir un temporairement 😎 (j'ai préféré refaire un nouveau code pour que ce soit plus clair pour toi).

Tu peux modifier les commandes, permissions, messages et variables pour que le tout corresponde avec ce que tu veux.

Les commandes sont :

  • /mute <joueur> <durée> <raison>
  • /unmute <joueur>
  • /ban <joueur> <durée> <raison>
  • /unban <joueur>

Les durées doivent être écrites en anglais. Exemple, si tu veux bannir un joueur 12 heures, tu dois écrire "ban <le joueur> 12 hours <la raison>".

Les variables sont :

  • {mute.%player%} : vérifie si le joueur a le droit de parler ou pas.
  • {mute.%player%.date} : la date à laquelle le joueur a été sanctionné.
  • {mute.%player%.time} : le temps pendant lequel le joueur ne peut pas parler (en timespan).
  • {mute.%player%.reason} : la raison pour laquelle le joueur n'a pas le droit de parler.

C'est la même chose pour les bannissements, sauf que la variable est {ban.%player%.etc...} au lieu de {mute.%player%.etc...}.

Voici le code (je l'ai testé et il fonctionne jusqu'à là ; si toutefois tu as un problème, dis-le moi 🤔) :


function timeInFrench(time: timespan) :: text:
	set {_time} to "%{_time}%"
	set {_texts::*} to {_time} split by " "
	set {_number.1} to {_texts::1} parsed as a number
	set {_number.1} to rounded {_number.1}
	set {_text.1} to {_texts::2}
	if {_texts::3} is set:
		set {_number.2} to {_texts::4} parsed as a number
		set {_number.2} to rounded {_number.2}
		set {_text.2} to {_texts::5}
	set {_list::*} to 1 and 2
	loop {_list::*}:
		if {_number.%loop-value%} is set:
			if {_number.%loop-value%} < 2:
				if the first character of {_text.%loop-value%} is "s":
					set {_text.%loop-value%} to "seconde"
				else if the first character of {_text.%loop-value%} is "m":
					set {_text.%loop-value%} to "minute"
				else if the first character of {_text.%loop-value%} is "h":
					set {_text.%loop-value%} to "heure"
				else if the first character of {_text.%loop-value%} is "d":
					set {_text.%loop-value%} to "jour"
			else:
				if the first character of {_text.%loop-value%} is "s":
					set {_text.%loop-value%} to "secondes"
				else if the first character of {_text.%loop-value%} is "m":
					set {_text.%loop-value%} to "minutes"
				else if the first character of {_text.%loop-value%} is "h":
					set {_text.%loop-value%} to "heures"
				else if the first character of {_text.%loop-value%} is "d":
					set {_text.%loop-value%} to "jours"
	if {_number.2} is not set:
		return "%{_number.1}% %{_text.1}%"
	else:
		return "%{_number.1}% %{_text.1}% et %{_number.2}% %{_text.2}%"

command /mute [<text>] [<text>] [<text>] [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {_player} has not played before:
				send "Ce joueur ne s'est jamais connecté."
			else:
				if {mute.%{_player}%} is true:
					set {_difference} to difference between {mute.%{_player}%.date} and now
					if {_difference} is less than {mute.%{_player}%.time}:
						send "Ce joueur est déjà sanctionné."
						stop trigger
				if argument 3 is not set:
					send "Tu dois préciser une durée."
				else:
					set {_time} to "%argument 2% %argument 3%" parsed as a timespan
					if {_time} is not set:
						send "La durée n'a pas été écrite correctement."
					else:
						if argument 4 is not set:
							send "Tu dois préciser une raison."
						else:
							set {_reason} to argument 4
							set {mute.%{_player}%} to true
							set {mute.%{_player}%.date} to now
							set {mute.%{_player}%.time} to {_time}
							set {mute.%{_player}%.reason} to {_reason}
							set {_time} to timeInFrench({_time})
							broadcast "%{_player}% n'a plus le droit de parler pendant %{_time}% pour ""%{_reason}%""."

on chat:
	if {mute.%player%} is true:
		set {_difference} to difference between {mute.%player%.date} and now
		if {_difference} is less than {mute.%player%.time}:
			cancel event
			set {_time.left} to difference between {_difference} and {mute.%player%.time}
			set {_time.left} to timeInFrench({_time.left})
			set {_reason} to {mute.%player%.reason}
			send "Tu n'as plus le droit de parler pour ""%{_reason}%"". Temps restant : %{_time.left}%." to player
		else:
			clear {mute.%player%}
			clear {mute.%player%.date}
			clear {mute.%player%.time}
			clear {mute.%player%.reason}

command /unmute [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {mute.%{_player}%} is not set:
				send "Ce joueur n'est pas sanctionné."
			else:
				clear {mute.%{_player}%}
				clear {mute.%{_player}%.date}
				clear {mute.%{_player}%.time}
				clear {mute.%{_player}%.reason}
				send "Ce joueur n'est plus sanctionné."

command /ban [<text>] [<text>] [<text>] [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {_player} has not played before:
				send "Ce joueur ne s'est jamais connecté."
			else:
				if {ban.%{_player}%} is true:
					set {_difference} to difference between {ban.%{_player}%.date} and now
					if {_difference} is less than {ban.%{_player}%.time}:
						send "Ce joueur est déjà sanctionné."
						stop trigger
				if argument 3 is not set:
					send "Tu dois préciser une durée."
				else:
					set {_time} to "%argument 2% %argument 3%" parsed as a timespan
					if {_time} is not set:
						send "La durée n'a pas été écrite correctement."
					else:
						if argument 4 is not set:
							send "Tu dois préciser une raison."
						else:
							set {_reason} to argument 4
							set {ban.%{_player}%} to true
							set {ban.%{_player}%.date} to now
							set {ban.%{_player}%.time} to {_time}
							set {ban.%{_player}%.reason} to {_reason}
							set {_time} to timeInFrench({_time})
							if {_player} is online:
								kick {_player} due to "Tu n'as plus le droit de rejoindre le serveur pendant %{_time}% pour ""%{_reason}%""."
							broadcast "%{_player}% n'a plus le droit de rejoindre le serveur pendant %{_time}% pour ""%{_reason}%""."

on connect:
	if {ban.%player%} is true:
		set {_difference} to difference between {ban.%player%.date} and now
		if {_difference} is less than {ban.%player%.time}:
			set {_time.left} to difference between {_difference} and {ban.%player%.time}
			set {_time.left} to timeInFrench({_time.left})
			set {_reason} to {ban.%player%.reason}
			kick player due to "Tu n'as plus le droit de rejoindre le serveur pour ""%{_reason}%"". Temps restant : %{_time.left}%."
		else:
			clear {ban.%player%}
			clear {ban.%player%.date}
			clear {ban.%player%.time}
			clear {ban.%player%.reason}

command /unban [<text>]:
	permission: op
	permission message: Tu n'as pas la permission.
	trigger:
		if argument 1 is not set:
			send "Tu dois préciser un joueur."
		else:
			set {_player} to argument 1 parsed as an offline player
			if {ban.%{_player}%} is not set:
				send "Ce joueur n'est pas sanctionné."
			else:
				clear {ban.%{_player}%}
				clear {ban.%{_player}%.date}
				clear {ban.%{_player}%.time}
				clear {ban.%{_player}%.reason}
				send "Ce joueur n'est plus sanctionné."

 

C'est gentil de faire sa mais désolé je n'aime pas les skript utilisant des fonctions car je n'y comprend strictement rien du tout et donc je n'arrive à personnalisé. Je continuerais à chercher seul, merci tout de même pour votre aide. Je le met en résolu même si ce n'est pas le cas

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.