GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 14 Novembre 2008, 17:23:59

Titre: Cmd ban
Posté par: scott1 le 14 Novembre 2008, 17:23:59
Bonjour j'aimreair savoir comment faire, que si un admin essaye de ban un autre admin il soit ban, il y a des tricheur sur mon serveur,

genre cmd(/ban)
Is player is admin lvl >=1

(sur un admin lvl 1338

ban player id
Titre: Re : Cmd ban
Posté par: Jens84 le 14 Novembre 2008, 17:36:28
Salut, pour ta commande c'est tout simple, tu met une condition sur le joueur désigné dans la commande :

pid : ID du joueur à bannir par la commande (/ban [ID])
playerid : ID du joueur qui fait la commande.

      if (IsPlayerAdmin(pid))
      {
      Ban(playerid);
      return 1;
      }
Titre: Re : Re : Cmd ban
Posté par: Nikko™ le 14 Novembre 2008, 17:51:46
      if (IsPlayerAdmin(pid))

Je ne pense pas que la fonction IsPlayerAdmin prenne en compte le pid...

++
nikko
Titre: Re : Cmd ban
Posté par: Jens84 le 14 Novembre 2008, 18:21:25
Ah oui c'est possible j'ai pas réfléchi, comme le pid ne correspond qu'à une valeur (correspondant à l'id du joueur à bannir), la fonction IsPlayerAdmin ne doit pas s'appliquer dessus car il ne s'agit pas d'un joueur... Je crois...
A vérifier...


Edit : Oubliez ce message : du n'importe quoi lol
Titre: Re : Cmd ban
Posté par: Nikko™ le 14 Novembre 2008, 20:36:43
La fonction est IsPlayerAdmin(playerid); ;)

++
nikko
Titre: Re : Cmd ban
Posté par: cristab le 14 Novembre 2008, 20:45:02
Bonjour j'aimreair savoir comment faire, que si un admin essaye de ban un autre admin il soit ban, il y a des tricheur sur mon serveur,

genre cmd(/ban)
Is player is admin lvl >=1

(sur un admin lvl 1338

ban player id
si je comprend bien t'es admin ban les autre admin la meilleur solution change d'admin c'est mon avis
Titre: Re : Cmd ban
Posté par: scott1 le 14 Novembre 2008, 20:47:24
J'ai eu un cheateur hier il a ban mes admin, jai pas envie qu"il revienne
Titre: Re : Cmd ban
Posté par: cristab le 14 Novembre 2008, 20:49:36

[code=]if(PlayerInfo[giveplayerid][pAdmin] > 0)
{
    SendClientMessage(playerid, COLOR_BRIGHTRED, "Vous ne pouvais pas bannir ce joueur!");
    return 1;

adapte le a ta commande mais je croit que sa ne va pas l'empecher de recommencer le mieux serais un anti cheat
Titre: Re : Cmd ban
Posté par: scott1 le 14 Novembre 2008, 20:54:44
Tu pourais me donner la reference d'u bon anti cheat? merci
Titre: Re : Cmd ban
Posté par: cristab le 14 Novembre 2008, 21:00:37
voila moi j'ai adapter celui ci dans mon gm http://forum.sa-mp.com/index.php?topic=70644.0
ce que je te conseille car aucun bug comme sa puis tu peu definir comme tu le veut
Titre: Re : Re : Cmd ban
Posté par: Bayshore le 15 Novembre 2008, 15:31:17
Ah oui c'est possible j'ai pas réfléchi, comme le pid ne correspond qu'à une valeur (correspondant à l'id du joueur à bannir), la fonction IsPlayerAdmin ne doit pas s'appliquer dessus car il ne s'agit pas d'un joueur... Je crois...
A vérifier...

Oula pas du tout...
playerid correspond à un chiffre, c'est ce chiffre qui est traité, c'est pareil pour pid ou tout autre variable qui est un entier.

Sinon c'est pas un cheat qu'il a utilisé, c'est la fameuse faille du PEN1 dû à l'algorithme de décryptage...
Pour la contourner (méthode simple) il faut que tu vérifie la taille du mot de passe quand le gars s'enregistre Maxence...
Titre: Re : Cmd ban
Posté par: Jens84 le 15 Novembre 2008, 15:40:38
Ah ok donc j'avais raison, le IsPlayerAdmin(pid) fonctionnerait, n'est-ce pas ?
Titre: Re : Cmd ban
Posté par: S!m le 15 Novembre 2008, 15:49:18
Salut,

exactement, comme le dit Bayshore,

le système de payerid, pour ceux qui ne l'avaient pas compris (désolé les autres) est un système de nombres,

la preuve, tapez TAB en cours de jeu, et vous verrez la liste des joueurs, leurs nom, score .... et à gauche complètement, leur ID, ce ID étant un chiffre (de 0 a 199 je crois...), et étant lié a un joueur, en anglais player, on arrive au mot: playerID

ainsi, lorsque tu fais ressortir le pID, il s'agit encore d'un chiffre et sera traité de la même façon,

en exagérant un peu, tu pourrais même te servir du ID d'un véhicule (qui ne bannerais sûrement pas le bon joueur..) avec la fonction et elle exécuterais son code, elle ne fera jamais la différence tant que ce sera un chiffre, par contre, il est bien évident qu'en mettant un ID provenant d'autre chose qu'un joueur, cette chose ne sera bannis, mais un joueur, s'il y en a un du même ID de connecté, le sera

++Sim++
Titre: Re : Cmd ban
Posté par: Jens84 le 15 Novembre 2008, 15:52:25
C'est donc pour ça que les ID des véhicules commencent à 400, et que ceux des objets, je crois, à partir de 1000 ?
Pour éviter toute confusion entre chaque chose (joueur, vehicule, objet...)
Titre: Re : Cmd ban
Posté par: Bayshore le 15 Novembre 2008, 16:08:02
Non du tout, ce dont tu parles pour les véhicules et les objets c'est les modèle, que tu peut obtenir pour les véhicules avec GetVehicleModel( ID ).

L'ID d'un véhicule est retourné par CreateVehicle ou AddStaticVehicle, donc si tu fais new caradmin = CreateVehicle( .... ) tu pourras effectuer des action sur la voiture créée en utilisant caradmin, car il contient l'ID du véhicule.
Exemple : DestroyVehicle( caradmin );
Titre: Re : Cmd ban
Posté par: scott1 le 15 Novembre 2008, 16:36:09
Merci merci.

J'avai deja un anticheat mais pourave xD il me bannai car il croyait que je cheatai en etant admin

Ps:  Bayshore = ex [Crv]Zecko?

Hehe [SWED]Scott1 ou [SWED]Maxence ça te dit quelque chose??? ^^
Titre: Re : Cmd ban
Posté par: Bayshore le 21 Novembre 2008, 23:43:42
Oui. :happy