Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous !

Pour mon serveur, j'aurais besoin d'un skript permettant de vérifier le knockback d'un joueur un peu comme le "/cc v" de funcraft mais je ne sais pas comment faire ... Merci de ne pas me dire que j'aurais des faux positifs ou quoi, je le sais très bien.

Merci !

 

Versions :

Skript 2.2-Dev25

( Je ne cite pas mes add-ons, si besoin j'en installerais ! )

Posté(e)

Salut,

Il est quasiment impossible d'en faire un fiable à 100% en Skript.

Je suis actuellement en projet de modération axé sur la détection de triche et je peut te dire qu'il ne trouve pas les mêmes résultats à chaque fois dû aux latences côté client ou utilisation d'un proxy (BungeeCord). Il faudrait donc prendre en compte la latence et le résultat de la "VIOLATION" du joueur.

Bref, tout ça pour dire que c'est difficile, du moins en Skript pour un anticheat (checker) performant et fiable. 

Bonne chance dans tes recherches, je continue à travailler sur mon CheatChecker de mon côté et je le posterai dans les ressources si mon travail est terminé. ^^

Bonne soirée !

Posté(e)

J'ai fait un petit truc vite fait de mon côté, cela lance le joueur en l'air, et te donne le pourcentage de KB que prend le joueur. Après, c'est pas super fiable mais ça fait le taff.

command /kb [<player>]:
	trigger:
		set {_n} to y-coord of arg 1
		push arg 1 upwards
		loop 20 times:
			wait 1 tick
			add y-coord of arg 1 to {_list::*}
		set {_m} to 0
		loop {_list::*}:
			if loop-value > {_m}:
				set {_m} to loop-value
		set {_a} to ({_m}-{_n})
		set {_kb} to ({_a}/5.12)*100
		broadcast "%{_kb}%%%"

 

  • J'aime 1
Posté(e)
il y a 19 minutes, Romitou a dit :

Salut,

Il est quasiment impossible d'en faire un fiable à 100% en Skript.

Je suis actuellement en projet de modération axé sur la détection de triche et je peut te dire qu'il ne trouve pas les mêmes résultats à chaque fois dû aux latences côté client ou utilisation d'un proxy (BungeeCord). Il faudrait donc prendre en compte la latence et le résultat de la "VIOLATION" du joueur.

Bref, tout ça pour dire que c'est difficile, du moins en Skript pour un anticheat (checker) performant et fiable. 

Bonne chance dans tes recherches, je continue à travailler sur mon CheatChecker de mon côté et je le posterai dans les ressources si mon travail est terminé. ^^

Bonne soirée !

Coucou,

Même en java ce n'est pas fiable à 100%, sur Funcraft on obtient quelques faux positifs de temps en temps, cela reste très visuel, c'est plus pour avoir une preuve lorsque quelqu'un cheat (afin d'éviter de devoir upload un record) que de vraiment vérifier que quelqu'un triche.

  • J'aime 1
  • Merci 1
Posté(e)
il y a 21 minutes, Acenox a dit :

Coucou,

Même en java ce n'est pas fiable à 100%, sur Funcraft on obtient quelques faux positifs de temps en temps, cela reste très visuel, c'est plus pour avoir une preuve lorsque quelqu'un cheat (afin d'éviter de devoir upload un record) que de vraiment vérifier que quelqu'un triche.

Oui, j'ai déjà vu quelques Modo Series sur FunCraft et je peux voir qu'il y a quelques faux positifs (comme sur tous les serveurs). Mais comme tu dis, rien de mieux que le visuel. ^^

Posté(e) (modifié)
Il y a 4 heures, Lou' a dit :

Il y a ça, après, comme dit dans les commentaires, ça a déjà était pas mal bloqué par certains cheats https://skript-mc.fr/forum/files/file/107-cheatchecker-vélocity-antikb-100-fiable/

C'est du full fake le sien, regarde dans les reviews ...

Il y a 3 heures, Lou' a dit :

J'ai fait un petit truc vite fait de mon côté, cela lance le joueur en l'air, et te donne le pourcentage de KB que prend le joueur. Après, c'est pas super fiable mais ça fait le taff.


command /kb [<player>]:
	trigger:
		set {_n} to y-coord of arg 1
		push arg 1 upwards
		loop 20 times:
			wait 1 tick
			add y-coord of arg 1 to {_list::*}
		set {_m} to 0
		loop {_list::*}:
			if loop-value > {_m}:
				set {_m} to loop-value
		set {_a} to ({_m}-{_n})
		set {_kb} to ({_a}/5.12)*100
		broadcast "%{_kb}%%%"

 

Je vais tester sa de suite ^^ Merci

Edit:

Quand je fais "sk reload Modération" dans la console sa me met "'argument(s)' cannot be used if the command has multiple arguments. Use 'argument 1', 'argument 2', etc. instead (Modération.sk, line 81: push arg 2 upwards')"

Modifié par Salwyn
Posté(e) (modifié)
il y a 14 minutes, Salwyn a dit :

C'est du full fake le sien, regarde dans les reviews ...

Je vais tester sa de suite ^^ Merci

Edit:

Quand je fais "sk reload Modération" dans la console sa me met "'argument(s)' cannot be used if the command has multiple arguments. Use 'argument 1', 'argument 2', etc. instead (Modération.sk, line 81: push arg 2 upwards')"

Tu as modifié son code, donnes-nous ton code en entier pour voir d'où ça vient.
Mets "argument 2" à la place de "arg 2".

Modifié par Romitou
Posté(e)
il y a 13 minutes, Salwyn a dit :

C'est du full fake le sien, regarde dans les reviews ...

Je vais tester sa de suite ^^ Merci

Edit:

Quand je fais "sk reload Modération" dans la console sa me met "'argument(s)' cannot be used if the command has multiple arguments. Use 'argument 1', 'argument 2', etc. instead (Modération.sk, line 81: push arg 2 upwards')"

essaye de rajouter un tiret entre "arg" et "2" (pour que ca fasse "arg-2")

Posté(e) (modifié)
# ============================= #

      # ---- Options ----#

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

options:
    prefix: &8[&cModération&8]
    permission: moderator.allow
    
# ============================= #

      # ---- Commandes ----#

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

command /mod:
    trigger:
        if player has permission "{@permission}":
            if {state.moderator.%player%} is false:
                set {state.moderator.%player%} to true
                send "{@prefix} &fMode modérateur &aactivé &f!" to player
                wait 3 ticks
                set player's gamemode to survival
                wait 3 ticks
                set player's flight mode to true
                hide player from all players
                wait 3 ticks
                clear player's inventory
                stop
            if {state.moderator.%player%} is true:
                set {state.moderator.%player%} to false
                send "{@prefix} &fMode modérateur &cdésactivé &f!" to player
                wait 3 ticks
                set player's gamemode to adventure
                wait 3 ticks
                set player's flight mode to false
                reveal player from all players
                wait 3 ticks
                clear player's inventory
                make player execute command "/lobby"
                stop
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !" to player
            stop
            
command /checkcheat [<text>] [<offline player>]:
    aliases: /cc
    trigger:
        if player has permission "{@permission}":
            if arg 2 is not online:
                send "{@prefix} &cCe joueur n'est pas en ligne actuellement !" to player
                stop
            if arg 1 is not set:
                if arg 2 is not set:
                    send "&c&m--|----------------------------------------|--" to player
                    send " " to player
                    send "&7/&ccheckcheat &9tools &8- &7Recevoir les outils de modération" to player
                    send "&7/&ccheckcheat &9velocity &7[&FPseudo&7] &8- &7Vérifier la vélocité d'un joueur" to player
                    send " " to player
                    send "&c&m--|----------------------------------------|--" to player
                    stop
            if arg 1 is set:
                if arg 1 is "tools" or "t":
                    if {state.moderator.%player%} is false:
                        send "{@prefix} &cVous devez être en mode modérateur pour recevoir les items de modération !" to player
                        stop
                    if {state.moderator.%player%} is true:
                        set slot 1 of player to unbreakable wooden sword of knockback 2 named "&cKnockback &3II"
                        set slot 2 of player to unbreakable stone sword of knockback 6 named "&cKnockback &3VI"
                        set slot 4 of player to dye:10 named "&9Vanish &8[&aActivé&8]"
                        set slot 6 of player to unbreakable diamond pickaxe of efficiency 100 named "&cBreaker"
                        set slot 7 of player to stick named "&cFreeze"
                        stop
                if arg 1 is "velocity" or "v":
                    if arg 2 is not set:
                        send "{@prefix} &cVeuillez mettre le pseudo du joueur pour vérifier son knockback !" to player
                        stop
                    if arg 2 is set:
                        set {_n} to y-coord of arg 2
                        push arg 2 upwards
                        loop 20 times:
                            wait 1 tick
                            add y-coord of arg 2 to {_list::*}
                        set {_m} to 0
                        loop {_list::*}:
                            if loop-value > {_m}:
                                set {_m} to loop-value
                        set {_a} to ({_m}-{_n})
                        set {_kb} to ({_a}/5.12)*100
                        send "%{_kb}%%%" to player
                        stop
        else:
            send "{@prefix} &cVous n'avez pas la permission d'utiliser ceci !" to player
            stop

EDIT:

C'est bon, merci @noftaly !!!

Modifié par Salwyn
Posté(e)
à l’instant, noftaly a dit :

Derien ! Du coup tout fonctionne ? Si oui, alors tu peux passer en résolu !

Oui tout fonctionne, merci beaucoup !!!

  • J'aime 1
  • Joriis a verrouillé ce sujet
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.