GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: Xartrick le 10 Décembre 2010, 03:50:23

Titre: [FS] xBanSyst [v1.3]
Posté par: Xartrick le 10 Décembre 2010, 03:50:23
Salut à tous,

Pour mon premier code distribué dans Showroom, je vous propose un système de bannissement.
Je ne sais pas si vous avez remarqué, mais pour dé-bannir une personne, il faut aller soit même supprimer les informations du banni mais également redémarrer le serveur.
C'est pour cela qu'est né xBanSyst !




Niveau



(http://uppix.net/b/7/6/a563605201578f91983535f3283f1.png)



Pourquoi xBanSyst ?



x -> Xartrick's
Ban -> Ban
Syst -> System




Pourquoi ne pas utiliser simplement la fonction Ban() ou BanEx() ?



Tous simplement car comme je l'ai dis plus haut, en utilisant la fonction Ban() ou BanEx(), les bannissements sont stockés dans le fichier samp.ban qui n'est relut seulement à chaque démarrage du serveur, c'est pour cela que mon système est là.
Il permet de pouvoir supprimer des bannissements directement en jeu mais aussi qu'ils prennent effet immédiatement.




Comment l'utiliser ?



Tout simplement en le compilant dans le dossier filterscripts, et en créant le dossier xBanSyst dans le dossier scriptfiles.
Il faudra également ajouter le fichier bannedplayer.ban dans le dossier xBanSyst.
Quand cela est fait, il vous suffit de rajouter le filterscript dans la liste du fichier server.cfg.




Téléchargement



Version 1.3 MySQL



Archive:

(http://solidfiles.com/info_imgs/a7f4.jpg) (http://solidfiles.com/d/a7f4/)

Code:

http://pastebin.gtaonline.fr/pastebin.php?show=970 (http://pastebin.gtaonline.fr/pastebin.php?show=970)

Base de donnée:

Code: (SQL) [Sélectionner]
--
-- Structure de la table `bannedplayers`
--

CREATE TABLE IF NOT EXISTS `bannedplayers` (
  `IP` text NOT NULL COMMENT 'IP des joueurs bannis',
  UNIQUE KEY `index` (`IP`(256))
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Table des joueurs bannis';

Citation de: Changelog v1.3 MySQL
  • Ajout d'une fonction pour bannir un joueur par sa plage d'IP.



Version 1.2 MySQL



Archive:

(http://solidfiles.com/info_imgs/35b4.jpg) (http://solidfiles.com/d/35b4/)

Code:

http://pastebin.gtaonline.fr/pastebin.php?show=969 (http://pastebin.gtaonline.fr/pastebin.php?show=969)

Base de donnée:

Code: (SQL) [Sélectionner]
--
-- Structure de la table `bannedplayers`
--

CREATE TABLE IF NOT EXISTS `bannedplayers` (
  `IP` text NOT NULL COMMENT 'IP des joueurs bannis',
  UNIQUE KEY `index` (`IP`(256))
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Table des joueurs bannis';

Citation de: Changelog v1.2 MySQL
  • Ajout d'une fonction pour bannir une IP.
  • Ajout d'un listing des commandes présentes.
  • Ajout d'une fonction pour nettoyer la base de donnée.
  • Modification des noms de quelques fonctions.
  • Modification de quelques messages faux.



Version 1.1 MySQL



Archive:

(http://solidfiles.com/info_imgs/8b8c.jpg) (http://solidfiles.com/d/8b8c/)

Code:

http://pastebin.gtaonline.fr/pastebin.php?show=968 (http://pastebin.gtaonline.fr/pastebin.php?show=968)

Base de donnée:

Code: (SQL) [Sélectionner]
--
-- Structure de la table `bannedplayers`
--

CREATE TABLE IF NOT EXISTS `bannedplayers` (
  `IP` text NOT NULL COMMENT 'IP des joueurs bannis',
  UNIQUE KEY `index` (`IP`(256))
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Table des joueurs bannis';

Citation de: Changelog v1.1 MySQL
  • Ajout des bannissements sur une base de donnée MySQL.



Version 1.1



Archive:

(http://solidfiles.com/info_imgs/d0cf1.jpg) (http://solidfiles.com/d/d0cf1/)

Code:

http://pastebin.gtaonline.fr/pastebin.php?show=967 (http://pastebin.gtaonline.fr/pastebin.php?show=967)

Citation de: Changelog v1.1
  • Ajout d'une fonction pour vérifier si une IP est valide ou non
  • Ajout de vérification pour savoir si le joueur qu'on veut bannir est connecté ou non (idée de Sim)
  • Modification des fonctions pour quelle soit portable (idée de Sim).



Version 1.0



Archive:

(http://solidfiles.com/info_imgs/4570b.jpg) (http://solidfiles.com/d/4570b/)

Code:

http://pastebin.gtaonline.fr/pastebin.php?show=966 (http://pastebin.gtaonline.fr/pastebin.php?show=966)



FaQ



Question: Bannir une plage d'IP ?
Réponse: Bannir une plage d'IP permet à un utilisateur de ne plus revenir même s'il possède une IP dynamique !
Si vous bannissez la plage d'IP d'un joueur avec l'indice 1, son IP sera banni comme ceci:

127.0.0.*Tandis que si vous utilisé l'indice 2, son IP sera banni comme ceci:
127.0.*.*
Question: J'aimerais bannir la plage d'IP d'un joueur grâce à l'indice 3 (127.*.*.*), pourquoi je ne peux pas ?
Réponse: Car cela bannirez trop de personne inutillement, pareil pour l'indice 4, tout le monde serait bannie (IPv4).

Question: Comment bannir la plage d'IP d'un joueur que il n'est pas connecté ?
Réponse: Simplement en bannissant le joueur normalement et en changeant l'IP avec des étoiles (*), mais attention, seulement les deux derniers nombres doivent être changé, sinon le bannissement devient obsolète !




Crédits






Hé bien c'est déjà fini ! J'espère que ma première contribution à ce forum sera apprécié !



Bonne journée !

Cordialement,
Xartrick.
Titre: Re : [FS] xBanSyst
Posté par: S!m le 10 Décembre 2010, 05:36:41
Salut,

franchement, c'est une très bonne idée ce script. Bravo, c'est bien fait, toutefois, j'ai 2 - 3 petits commentaires:

 - tu devrais tester d'avantage l'ID rentré dans la commande /xban pour être sur qu'il est valide (un IsPlayerConnected par exemple)
 - les textes seraient mieux directement là où les fonctions sont utilisées, comme ça on pourrait utiliser les fonctions ailleurs que dans ces commandes.

Peut-être une petite suggestion pour une future version: ajouter la gestion des bannissements de plages d'IP.

++Sim++
Titre: Re : [FS] xBanSyst
Posté par: Karting06 le 10 Décembre 2010, 06:51:28
Pas mal, mais j'ajouterai une commande avec le commentaire. Comme ça on sait pourquoi on l'a banni :D
Titre: Re : [FS] xBanSyst
Posté par: cristab le 10 Décembre 2010, 09:17:51
Superbe FS rare sont les FS comme cela =)


PS sa me rapelle qu'il faudrait que je finissent mon FS voiture xD
Titre: Re : [FS] xBanSyst
Posté par: spiirou le 10 Décembre 2010, 11:37:10
Ca a l'air vraiment bien, bien joué a toi ;)
Titre: Re : [FS] xBanSyst
Posté par: Leonidas300 le 10 Décembre 2010, 12:28:26
bien joué, très bon boulot, le truc, c'est qu'il faudrait crée une commande /banplageip [ID/PartOfName] et /unbanplageip [ID/PartOfName], car je ne sais pas comment faire pour bannir une plage IP, même en administrateur ^^,
NB: Ce FS aideras beaucoup de personnes!

Amicalement, Leonidas
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 10 Décembre 2010, 12:50:56
Merci de vos commentaire.
Pour commencer, je vais faire les modifications demandé par Sim.
Titre: Re : Re : [FS] xBanSyst
Posté par: cristab le 10 Décembre 2010, 12:53:13
je ne sais pas comment faire pour bannir une plage IP, même en administrateur ^^,


/rcon banip   :)
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 10 Décembre 2010, 19:15:23
Version 1.1 sortie !
Titre: Re : [FS] xBanSyst
Posté par: Jerome02 le 10 Décembre 2010, 20:19:33
Bonsoir,


Franchement Bravo pour ton Boulot, et merci de le partager, car perso c'est la première fois que je vois un filterscripts de ce genre,


il a l'air pas mal je le teste, et je le prend si cela ne pose pas de soucis ( meme si tu la poster pour sa ^^ )



Bonne soirée  ;)



Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 10 Décembre 2010, 20:36:14
Enfaîte, j'essaye de créer ce qui n'a pas était encore créé (c'est vraiment dur).
Titre: Re : [FS] xBanSyst
Posté par: Brian Turner le 10 Décembre 2010, 20:47:28
pour les bans en tant normale(sans ce FS) on peux lancer un timer toutes les x secondes qui fait un executer une CallBack avec SendRconCommand("reloadbans"); dedans, sinon, j'ai pas regarder, mais vu les commentaires, il a l'air bien, bravo.

++ Brian
Titre: Re : [FS] xBanSyst
Posté par: chneubeul le 11 Décembre 2010, 12:59:41
Salut,
Bravo, code simple et très soft, d'une finesse incomparable :)
 :laugh

Prochaine version, un système SQL en option ? :p
Titre: Re : Re : [FS] xBanSyst
Posté par: S!m le 11 Décembre 2010, 17:41:37
Salut,

Prochaine version, un système SQL en option ? :p
Faut avouer que ce serait une bonne idée:

 - recherches très simple en étant complètes
 - on peut aisément utilisé la fonctionnalité des plugins à "thread" dans ce genre d'application. (même si le joueur est éjecté une seconde plus tard, es-ce grave?)

Bonne chance Xartrick.

++Sim++
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 11 Décembre 2010, 18:05:25
Version 1.1 MySQL sortie !
Titre: Re : Re : [FS] xBanSyst
Posté par: fligu le 11 Décembre 2010, 21:08:30
Version 1.1 MySQL sortie !

Merci bien , si j'arrive à faire marcher le script Universal je l'essaye^^.
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 11 Décembre 2010, 21:31:53
Aucun problème.
Et juste pour information, je ne développerais plus de version avec gestion par fichier car cela me prend beaucoup trop de temps que de développer deux version différente car les systèmes ne sont pas les mêmes.
Sauf réclamation, je ne reviendrez surement pas sur cette décision, à vous de me le dire !
Titre: Re : [FS] xBanSyst
Posté par: fligu le 11 Décembre 2010, 22:03:04
Personnellement j'ai aucune réclamation à faire, ce script m'a l'air très bien.
Titre: Re : [FS] xBanSyst
Posté par: Jcvag44800 le 11 Décembre 2010, 23:30:27
Personnelement, je n'ai pas encore tester mais il a l'air vraiment bien,
Une chose à dire :

Sa fait pas longtemp que tu est là et je vois que tu est la pour aider les gens,
Tu expliques bien
et en plus te fait partager tes FS, c'est vraiment simpas  :)
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 12 Décembre 2010, 00:26:08
Merci du compliment Jcvag44800 !

Version 1.2 MySQL sortie !

Pour la version 1.3, je prévois de créer un système de bannissements de plage d'IP !




Version 1.3 sortie !

Le système de bannissement de plage d'IP et en place mais actuellement instable !

La version 1.4 (si elle sort) sera un correctif de tout les problèmes que vous trouverez et également une amélioration du code pour qu'il soit plus rapide et posséder le moins de bug possible.
Titre: Re : Re : [FS] xBanSyst
Posté par: S!m le 12 Décembre 2010, 06:44:42
Salut,

Merci du compliment Jcvag44800 !

Version 1.2 MySQL sortie !

Pour la version 1.3, je prévois de créer un système de bannissements de plage d'IP !




Version 1.3 sortie !

Le système de bannissement de plage d'IP et en place mais actuellement instable !

La version 1.4 (si elle sort) sera un correctif de tout les problèmes que vous trouverez et également une amélioration du code pour qu'il soit plus rapide et posséder le moins de bug possible.


Je suggère d'utiliser la fonctionnalité du multithread du plugin pour cette nouvelle version, ça évitera de mettre le serveur en "pause" en attendant la réponse de la base de donnée.
Faudrait vérifier que ce plugin possède cette fonctionnalité, mais j'en suis pratiquement sur (au minimum 2 des plugins disponibles disposent de cette fonctionnalité)

++Sim++
Titre: Re : [FS] xBanSyst
Posté par: Xartrick le 12 Décembre 2010, 13:59:32
Salut,

Le plugin que j'utilise actuellement possède cette option, je vais donc exploiter cette proposition.
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: Gilux le 12 Décembre 2010, 21:34:50
Salut, beau boulot ;)
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: scott1 le 13 Décembre 2010, 01:13:34
Je ne sais pas si vous avez remarqué, mais pour dé-bannir une personne, il faut aller soit même supprimer les informations du banni mais également redémarrer le serveur.

Complètement faux !

Citer
/rcon banip [IP] - Ban the given IP (example: /rcon banip 127.0.0.1).
/rcon unbanip [IP] - Unban the given IP (example: /rcon unbanip 127.0.0.1).
/rcon reloadbans - reloads the samp.ban where the banned IP addresses are stored. This will clear all the IP-addresses.


Si non gg pour ton FS !
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: Xartrick le 13 Décembre 2010, 07:32:29
scott1, je ne sais pas si tu as bien lu la fin.

Citer
This will clear all the IP-addresses.
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: scott1 le 13 Décembre 2010, 11:08:37
Tu n'a surement jamais utilisé cette fonction, je te dit par experience, qu'elle ne supprime aucune ip, elle recharge simplement les ip bannie et supprime de fichier temporaire qui dit si une ip est ban ou non a la connexion.

Teste tu verra.
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: Xartrick le 13 Décembre 2010, 18:00:07
Merci de l'information, cela est donc mal expliqué sur le Wiki.
Mais maintenant que j'ai créé ce code, je n'ai plus besoin d'utiliser se système :).
Titre: Re : [FS] xBanSyst [v1.3]
Posté par: scott1 le 14 Décembre 2010, 15:43:53
Il est en effet plus utile, tu peu faire un ban tamporaire avec ;)