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
-
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
-
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;
}
-
if (IsPlayerAdmin(pid))
Je ne pense pas que la fonction IsPlayerAdmin prenne en compte le pid...
++
nikko
-
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
-
La fonction est IsPlayerAdmin(playerid); ;)
++
nikko
-
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
-
J'ai eu un cheateur hier il a ban mes admin, jai pas envie qu"il revienne
-
[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
-
Tu pourais me donner la reference d'u bon anti cheat? merci
-
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
-
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...
-
Ah ok donc j'avais raison, le IsPlayerAdmin(pid) fonctionnerait, n'est-ce pas ?
-
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++
-
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...)
-
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 );
-
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??? ^^
-
Oui. :happy