Aller au contenu
  • 0

Aide skript report


Question

Posté(e) (modifié)

Version de Minecraft : 1.16.5
Version de Skript : 2.7.0

Addons utilisés: SkQuery, skript-gui, 

Type du skript : skript de report

Description du script :

Bonjour je voudrais améliorer mon skript de report mais je n'y arrive pas tout seul c'est pour ceci que je demande de l'aide, alors du coup mon skript a une commande: /report <joueur> <raison> qui envoie un message à la modération comme quoi quelqu'un a report un joueur, le membre de la modération dois faire la commande /inter <numéro de l'inter> pour se téléporter dans une salle avec celui qui a report et celui qui est report pour discuter et mettre des sanctions. Mais il y a plusieurs salle d'inter que j'ai faites donc je voudrais que quand le modo fasse la command /inter <numéro de l'inter>, ça lui ouvre un gui avec 3 bloc de béton vert, chaque bloc représente une salle d'inter et quand un modo clique sur un bloc de béton ça tp les 3 joueurs dans la salle associé et l'item du bloc de béton vert devienne un bloc de béton rouge renommé en "salle occupé" et quand le modo fait la commande: /inter <numéro de l'inter> close, ça remette le bloc de béton vert (le bloc 1 portera le nom de "salle d'inter n°1", le bloc 2 portera le nom "salle d'inter n°2" et le bloc 3 portera le nom "salle d'inter n°3". J'espère que j'ai été clair sinon n'hésitez à me le dire pour plus de précision et merci d'avance pour votre aide. Voici le code :

command /report <player> <text>:
    trigger:
        add 1 to {totalreports}
        set {reports::%{totalreports}%::state} to 0 # 0 = Non vu / 1 = Vu
        set {reports::%{totalreports}%::player} to player
        set {reports::%{totalreports}%::victim} to arg-1
        set {reportlocation} to position of player
        set {reportlocation1} to position of arg-1
        set {reports::%{totalreports}%::reportlocation} to position of player # Utilisez une variable distincte pour chaque rapport
        send "&c&l[&c&lStaff&c&l] &6Votre signalement a bien été effectué ! inter: %{totalreports}%" to player
        loop all players:
            if loop player has permission "lauraskript.mode.inter"
            send "&c&l[&c&lStaff&c&l] &6%{reports::%{totalreports}%::player}% à signalé %{reports::%{totalreports}%::victim}% pour %arg-2%." to loop-player
            send "&6Afin de vous téléporter dans une salle avec %{reports::%{totalreports}%::player}% et %{reports::%{totalreports}%::victim}% faites /inter %{totalreports}%." to loop-player
        stop

command /inter <integer> [<text>]: # Si sa ne fonctionne pas, remplace "integer" par "text"
    permission: lauraskript.mode.inter
    trigger:
        if arg-2 is "close":
            teleport {reports::%arg-1%::player} to {reportlocation}
            teleport {reports::%arg-1%::victim} to {reportlocation1}
            teleport player to {reportlocationmodo}
            send "&c&l[&c&lStaff&c&l] &6Inter %{totalreports}% fermé" to player
            send "&c&l[&c&lStaff&c&l] &6Inter %{totalreports}% fermé" to {reports::%arg-1%::player}
            send "&c&l[&c&lStaff&c&l] &6Inter %{totalreports}% fermé" to {reports::%arg-1%::victim}

            stop

        else if {reports::%arg-1%::*} is set:
        if {reports::%arg-1%::state} = 0:
            set {reportlocationmodo} to position of player
            teleport {reports::%arg-1%::player} to {coord.inter}
            teleport {reports::%arg-1%::victim} to {coord.inter}
            teleport player to {coord.inter}
            set {reports::%arg-1%::state} to 1
            send "&c&l[&c&lStaff&c&l] &6Téléportation a l'inter %{totalreports}%, merci de ne pas vous déconnecter" to player
            send "&c&l[&c&lStaff&c&l] &6Téléportation a l'inter %{totalreports}%, merci de ne pas vous déconnecter" to {reports::%arg-1%::player}
            send "&c&l[&c&lStaff&c&l] &6Téléportation a l'inter %{totalreports}%, merci de ne pas vous déconnecter" to {reports::%arg-1%::victim}

            stop

command /setintercoord:
    trigger:
        if player has permission "fondateur":
            set {coord.inter} to location of player
            send "Point de téléportation définis sur %location% !" to player

command /setintersalle:
    trigger:
        if player has permission "fondateur":
            set {inter.salle} to location of player
            send "Point de téléportation définis sur %location% !" to player

command /setmodosalle:
    trigger:
        if player has permission "fondateur":
            set {modo.salle} to location of player
            send "Point de téléportation définis sur %location% !" to player

command /intersalle:
    permission: lauraskript.mode.intersalle
    permission message: "&cVous n'avez pas la permission de faire cela !"
    trigger:
        teleport player at {inter.salle}

command /modosalle:
    aliases: msalle, ms, modos
    permission: lauraskript.mode.modosalle
    permission message: &cvous n'avez pas la permission de faire cela !
    trigger:
        teleport player at {modo.salle}

Modifié par Lilio

10 réponses à cette question

Messages recommandés

  • 1
Posté(e)

Bonjour,

J'ai retravaillé ton script pour en tirer ceci au final :

#> Listes des commandes utiles:
    # - /room create <nom> pour créer une salle à la position du joueur
    # - /room remove <nom> pour supprimer une salle
    # - /room tp <nom> pour se téléporter à une salle, même hors d'une période de report
    # - /room list pour lister toutes les salles

    # - /report <player> <text> pour reporter un joueur avec un motif
    # - /reportscore [<offline player>] pour récupérer le nb de reports d'un ou plusieurs jours

options:
    inter : &8&l[&6Intervention&8&l] &f
    report : &8&l[&6Report&8&l] &f


command /room <text> [<text>]:
    trigger:
        if player is op:
            if arg-1 is "create":
                set {salle::inter::%arg-2%} to location of player
                send "{@inter} &aLa salle &b%arg-2% &aa bien été créée"
            
            if arg-1 is "remove":
                clear {salle::inter::%arg-2%}
                send "{@inter} &cLa salle &b%arg-2% &ca bien été supprimée"

            if arg-1 is "list":
                loop {salle::inter::*}:
                    send "%loop-index% >> %loop-value%"

            if arg-1 is "help":
                send "&b&l> Menu d'aide"
                send "   &e/room create <nom> &apour créer une salle" 
                send "   &7(se placer à l'emplacement puis appliquer la commande)"
                send "   &e/room remove <nom> &apour supprimer la salle"
                send "   &e/room tp <nom> &apour se téléporter à une salle sans report"
                send "   &e/room list &apour afficher les salles et leurs coordonnées"
                send "   &e/room help &apour voir ce texte"

            if arg-1 is "tp":
                teleport player to {salle::inter::%arg-2%}


command /inter [<text>] [<text>]:
    trigger:
        if player is op:
            if arg-1 and arg-2 is set:
                if {salle::inter::%arg-1%} is set:
                    if arg-2 is "close":
                        set {salle::inter::%arg-1%::bool} to false
                        clear {report::%player%::*}
                        send "{@inter} &aLa salle d'intervention &b%arg-1% &aest de nouveau disponible"
                else:
                    send "{@inter} &cCette salle n'existe pas"
            else:
                set {_inv} to chest with 1 row named "Salles d'intervention"

                set {_slot} to 0
                loop {salle::inter::*}:
                    if {salle::inter::%loop-index%::bool} is true:
                        set slot {_slot} of {_inv} to red concrete named "Salle occupée"
                    else:
                        set slot {_slot} of {_inv} to grey concrete named loop-index
                    add 1 to {_slot}
                open {_inv} for player 


on inventory click:
    if name of event-inventory is "Salles d'intervention":
        cancel event
        if event-slot is not empty:
            teleport {report::%player%::*} to {salle::inter::%name of event-item%}
            set {salle::inter::%name of event-item%::bool} to true


command /report <player> <text>:
    trigger:
        if player is op:
            # Ajout d'un report sur le dossier du joueur
            add 1 to {report::%arg-1%}

            # Ajout du joueur report et du joueur staff dans une var list pour tp
            add arg-1 and player to {report::%player%::*}
            send "{@report} /inter pour se téléporter dans une salle d'intervention avec le(s) joueur(s) reporté(s)"

            # Message d'information
            loop all players:
                if loop-player is op:
                    send "{@report} %player% a reporté %arg-1% pour le motif suivant : %arg-2%"


command /reportscore [<offline player>]:
    trigger:
        if player is op:
            if arg-1 is not set:
                send "{@report} > Nombre de report par joueur"
                loop {report::*}:
                    send "   - %loop-index% : %loop-value%"
            else:
                send "{@report} %arg-1% a actuellement %{report::%arg-1%}% report(s)"

Il fonctionne à peu près comme tu as pu le décrire, et surtout par rapport à ce que j'ai pu en comprendre :')

Je t'ai aussi mis dans le script plusieurs notes concernant les commandes.

 

Si tu as des questions, ou si un truc ne fonctionne pas, hésite pas à revenir vers moi ! 🙂

++

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

Ta demande fait mal au yeux ^^'

Met ton code dans des balises code..
Pour ton message principal essai de respirer, ca va bien se passer tu sais... Tu es autorisé à mettre des . et , ainsi que sauter des lignes.

Modifié par DKSM
  • 0
Posté(e)
Le 19/11/2023 à 11:46, Bob_Ricard a dit :

Bonjour,

J'ai retravaillé ton script pour en tirer ceci au final :


#> Listes des commandes utiles:
    # - /room create <nom> pour créer une salle à la position du joueur
    # - /room remove <nom> pour supprimer une salle
    # - /room tp <nom> pour se téléporter à une salle, même hors d'une période de report
    # - /room list pour lister toutes les salles

    # - /report <player> <text> pour reporter un joueur avec un motif
    # - /reportscore [<offline player>] pour récupérer le nb de reports d'un ou plusieurs jours

options:
    inter : &8&l[&6Intervention&8&l] &f
    report : &8&l[&6Report&8&l] &f


command /room <text> [<text>]:
    trigger:
        if player is op:
            if arg-1 is "create":
                set {salle::inter::%arg-2%} to location of player
                send "{@inter} &aLa salle &b%arg-2% &aa bien été créée"
            
            if arg-1 is "remove":
                clear {salle::inter::%arg-2%}
                send "{@inter} &cLa salle &b%arg-2% &ca bien été supprimée"

            if arg-1 is "list":
                loop {salle::inter::*}:
                    send "%loop-index% >> %loop-value%"

            if arg-1 is "help":
                send "&b&l> Menu d'aide"
                send "   &e/room create <nom> &apour créer une salle" 
                send "   &7(se placer à l'emplacement puis appliquer la commande)"
                send "   &e/room remove <nom> &apour supprimer la salle"
                send "   &e/room tp <nom> &apour se téléporter à une salle sans report"
                send "   &e/room list &apour afficher les salles et leurs coordonnées"
                send "   &e/room help &apour voir ce texte"

            if arg-1 is "tp":
                teleport player to {salle::inter::%arg-2%}


command /inter [<text>] [<text>]:
    trigger:
        if player is op:
            if arg-1 and arg-2 is set:
                if {salle::inter::%arg-1%} is set:
                    if arg-2 is "close":
                        set {salle::inter::%arg-1%::bool} to false
                        clear {report::%player%::*}
                        send "{@inter} &aLa salle d'intervention &b%arg-1% &aest de nouveau disponible"
                else:
                    send "{@inter} &cCette salle n'existe pas"
            else:
                set {_inv} to chest with 1 row named "Salles d'intervention"

                set {_slot} to 0
                loop {salle::inter::*}:
                    if {salle::inter::%loop-index%::bool} is true:
                        set slot {_slot} of {_inv} to red concrete named "Salle occupée"
                    else:
                        set slot {_slot} of {_inv} to grey concrete named loop-index
                    add 1 to {_slot}
                open {_inv} for player 


on inventory click:
    if name of event-inventory is "Salles d'intervention":
        cancel event
        if event-slot is not empty:
            teleport {report::%player%::*} to {salle::inter::%name of event-item%}
            set {salle::inter::%name of event-item%::bool} to true


command /report <player> <text>:
    trigger:
        if player is op:
            # Ajout d'un report sur le dossier du joueur
            add 1 to {report::%arg-1%}

            # Ajout du joueur report et du joueur staff dans une var list pour tp
            add arg-1 and player to {report::%player%::*}
            send "{@report} /inter pour se téléporter dans une salle d'intervention avec le(s) joueur(s) reporté(s)"

            # Message d'information
            loop all players:
                if loop-player is op:
                    send "{@report} %player% a reporté %arg-1% pour le motif suivant : %arg-2%"


command /reportscore [<offline player>]:
    trigger:
        if player is op:
            if arg-1 is not set:
                send "{@report} > Nombre de report par joueur"
                loop {report::*}:
                    send "   - %loop-index% : %loop-value%"
            else:
                send "{@report} %arg-1% a actuellement %{report::%arg-1%}% report(s)"

Il fonctionne à peu près comme tu as pu le décrire, et surtout par rapport à ce que j'ai pu en comprendre :')

Je t'ai aussi mis dans le script plusieurs notes concernant les commandes.

 

Si tu as des questions, ou si un truc ne fonctionne pas, hésite pas à revenir vers moi ! 🙂

++

Skript ne comprend pas la ligne "set {_inv} to chest with 1 row named "Salles d'intervention""

  • 0
Posté(e)
Le 19/11/2023 à 11:46, Bob_Ricard a dit :

Bonjour,

J'ai retravaillé ton script pour en tirer ceci au final :


#> Listes des commandes utiles:
    # - /room create <nom> pour créer une salle à la position du joueur
    # - /room remove <nom> pour supprimer une salle
    # - /room tp <nom> pour se téléporter à une salle, même hors d'une période de report
    # - /room list pour lister toutes les salles

    # - /report <player> <text> pour reporter un joueur avec un motif
    # - /reportscore [<offline player>] pour récupérer le nb de reports d'un ou plusieurs jours

options:
    inter : &8&l[&6Intervention&8&l] &f
    report : &8&l[&6Report&8&l] &f


command /room <text> [<text>]:
    trigger:
        if player is op:
            if arg-1 is "create":
                set {salle::inter::%arg-2%} to location of player
                send "{@inter} &aLa salle &b%arg-2% &aa bien été créée"
            
            if arg-1 is "remove":
                clear {salle::inter::%arg-2%}
                send "{@inter} &cLa salle &b%arg-2% &ca bien été supprimée"

            if arg-1 is "list":
                loop {salle::inter::*}:
                    send "%loop-index% >> %loop-value%"

            if arg-1 is "help":
                send "&b&l> Menu d'aide"
                send "   &e/room create <nom> &apour créer une salle" 
                send "   &7(se placer à l'emplacement puis appliquer la commande)"
                send "   &e/room remove <nom> &apour supprimer la salle"
                send "   &e/room tp <nom> &apour se téléporter à une salle sans report"
                send "   &e/room list &apour afficher les salles et leurs coordonnées"
                send "   &e/room help &apour voir ce texte"

            if arg-1 is "tp":
                teleport player to {salle::inter::%arg-2%}


command /inter [<text>] [<text>]:
    trigger:
        if player is op:
            if arg-1 and arg-2 is set:
                if {salle::inter::%arg-1%} is set:
                    if arg-2 is "close":
                        set {salle::inter::%arg-1%::bool} to false
                        clear {report::%player%::*}
                        send "{@inter} &aLa salle d'intervention &b%arg-1% &aest de nouveau disponible"
                else:
                    send "{@inter} &cCette salle n'existe pas"
            else:
                set {_inv} to chest with 1 row named "Salles d'intervention"

                set {_slot} to 0
                loop {salle::inter::*}:
                    if {salle::inter::%loop-index%::bool} is true:
                        set slot {_slot} of {_inv} to red concrete named "Salle occupée"
                    else:
                        set slot {_slot} of {_inv} to grey concrete named loop-index
                    add 1 to {_slot}
                open {_inv} for player 


on inventory click:
    if name of event-inventory is "Salles d'intervention":
        cancel event
        if event-slot is not empty:
            teleport {report::%player%::*} to {salle::inter::%name of event-item%}
            set {salle::inter::%name of event-item%::bool} to true


command /report <player> <text>:
    trigger:
        if player is op:
            # Ajout d'un report sur le dossier du joueur
            add 1 to {report::%arg-1%}

            # Ajout du joueur report et du joueur staff dans une var list pour tp
            add arg-1 and player to {report::%player%::*}
            send "{@report} /inter pour se téléporter dans une salle d'intervention avec le(s) joueur(s) reporté(s)"

            # Message d'information
            loop all players:
                if loop-player is op:
                    send "{@report} %player% a reporté %arg-1% pour le motif suivant : %arg-2%"


command /reportscore [<offline player>]:
    trigger:
        if player is op:
            if arg-1 is not set:
                send "{@report} > Nombre de report par joueur"
                loop {report::*}:
                    send "   - %loop-index% : %loop-value%"
            else:
                send "{@report} %arg-1% a actuellement %{report::%arg-1%}% report(s)"

Il fonctionne à peu près comme tu as pu le décrire, et surtout par rapport à ce que j'ai pu en comprendre :')

Je t'ai aussi mis dans le script plusieurs notes concernant les commandes.

 

Si tu as des questions, ou si un truc ne fonctionne pas, hésite pas à revenir vers moi ! 🙂

++

quand on modérateur clique sur un une concrete grise, ça tp qui dans la salle d'inter ?

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.