Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <sscanf2>
- #include <dini>
- #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- #define RED 0xFF000066
- #define YELLOW 0xFFFF0066
- #define BLUE 0x0000FF66
- #define GREEN 0x00FF0066
- #define ADMIN_RANK 2
- #define MODO_RANK 1
- forward ban(playerid, reason[250]);
- /*
- Les notations de variables:
- pVar : "p" pour "player" (abreviation)
- aVar : "a" pour "administrator" (abreiviation)
- gVar: "g" pour globale mais ça c'est classique.
- /!\ Toutes les variables globales ont pas le préfixe "g" ici (à faire ?)
- /!\Dans le FS Gangs le préfixe "g" peux aussi signifier "gang"! (à ré-organisé ?)
- */
- new pConnected;
- new aConnected;// /!\ Un adminastrateur est aussi un joueur ;)
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Admin System by Jujuv");
- print("--------------------------------------\n");
- }
- public OnPlayerConnect(playerid)
- {
- pConnected++;//Idée copié du GM de SK (TY Coboll, minimicro, Moathib, ..)
- if(IsAdmin(playerid))
- {
- aConnected++;//Ca va, je te fais pas un dessin ?!
- }
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- pConnected--;//C'est vrais que c'est tout con comme idée, fallais juste y penser.
- if(IsAdmin(playerid))
- {
- aConnected--;//Obvious
- }
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- //On utilise DCMD pour les commandes avec arguments
- dcmd(setadmin, 8, cmdtext);
- dcmd(kick, 4, cmdtext);
- dcmd(ban, 3, cmdtext);
- dcmd(tpa, 3, cmdtext);
- dcmd(unban, 5, cmdtext);
- dcmd(warn, 4, cmdtext);
- dcmd(arme, 4, cmdtext);
- dcmd(mute, 4, cmdtext);
- //On utilise de simples conditions avec la fonction strcmp pour les commandes sans arguments.
- if(!strcmp(cmdtext, "/god", true, 4))
- {
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- if(GetPVarInt(playerid, "god"))
- {
- SetPVarInt(playerid, "god", 0);
- SetPlayerHealth(playerid, 100);
- SendClientMessage(playerid, RED, "> Mode \"God\" désactivé.");
- }
- else
- {
- SetPVarInt(playerid, "god", 1);
- SetPlayerHealth(playerid, 9999999);//Je me demande si cette valeur risque pas d'apporter des bogues ?!
- SendClientMessage(playerid, GREEN, "> Mode \"God\" activé.");
- }
- }
- else { SendClientMessage(playerid, RED, "> Erreur. Commande résérvée aux administrateurs."); }
- return 1;
- }
- if(!strcmp(cmdtext, "/tp", true, 3))
- {
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- if( GetPVarInt(playerid, "tpenabled"))
- {
- SetPVarInt(playerid, "tpenabled", 0);
- SendClientMessage(playerid, RED, "> Téléportation par clic sur la carte désactivée.");
- }
- else
- {
- SetPVarInt(playerid, "tpenabled", 1);
- SendClientMessage(playerid, GREEN, "> Téléportation par clic sur la carte activée.");
- }
- }
- }
- return 0;
- }
- dcmd_setadmin(playerid, params[])
- {
- new id, rank;
- sscanf(params, "ri", id, rank);
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. Usage : /setadmin [PlayerID][Niveau admin (0-2)].");
- }
- else if(IsPlayerConnected(id) && id != playerid && GetPVarInt(id, "admin") < GetPVarInt(playerid, "admin"))
- {
- new pName[MAX_PLAYER_NAME], string[246];
- SetPVarInt(id, "admin", rank);
- dini_IntSet(userfile(playerid), "admin", rank);
- GetPlayerName(id, pName, sizeof(pName));
- format(string, sizeof(string), "> %s est désormais administrateur rang %d.", pName, rank);
- SendClientMessageToAll(GREEN, string);
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Joueur non connecté ou ID invalide.");
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Cette commande est réservée aux administrateurs.");
- }
- return 1;
- }
- dcmd_kick(playerid, params[])
- {
- new kickedid, reason[256];
- sscanf(params, "us[256]", kickedid, reason);
- if(IsAdmin(playerid) >= MODO_RANK)
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. Usage : /kick [PlayerID] [Raison].");
- }
- else if(IsPlayerConnected(kickedid) && (!GetPVarInt(kickedid, "admin")))
- {
- new string[246], pName[MAX_PLAYER_NAME], aName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, aName, sizeof(aName));
- GetPlayerName(kickedid, pName, sizeof(pName));
- format(string, sizeof(string), "> L'administrateur %s a expulsé %s du serveur (Raison : %s).", aName, pName, reason);
- SendClientMessageToAll(RED, string);
- Kick(kickedid);
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Joueur non connecté ou ID invalide.");
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Cette commande est réservée aux modérateurs.");
- }
- return 1;
- }
- dcmd_ban(playerid, params[])
- {
- new bannedid, reason[250];
- sscanf(params, "us[250]", bannedid, reason);
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. Usage : /ban [PlayerID] [Raison].");
- }
- else if(IsPlayerConnected(bannedid) && IsAdmin(bannedid) == 0)
- {
- new string[256], pName[MAX_PLAYER_NAME], aName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, aName, sizeof(aName));
- GetPlayerName(bannedid, pName, sizeof(pName));
- format(string, sizeof(string), "> L'administrateur %s a banni %s du serveur (Raison : %s)", aName, pName, reason);
- SendClientMessageToAll(RED, string);
- ban(playerid, reason);
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Joueur non connecté ou ID invalide.");
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Cette commande est réservée aux administrateurs.");
- }
- return 1;
- }
- dcmd_tpa(playerid, params[])
- {
- /*
- Note: Penser à rediger des commentaires explicite au possible pour cette "partie"
- */
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- new id1, id2;
- sscanf(params, "rr", id1, id2);
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. Usage : /tpa [Player1ID] [Player2ID].");
- SendClientMessage(playerid, RED, "> Le premier joueur sera alors téléporté au deuxième.");
- }
- else if(IsPlayerConnected(id1) && IsPlayerConnected(id2) && id1 != id2)
- {
- new Float:x, Float:y, Float:z;
- new string[128];
- new aName[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME], p2Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, aName, sizeof(aName));
- GetPlayerName(id1, pName, sizeof(pName));
- GetPlayerName(id2, p2Name, sizeof(p2Name));
- GetPlayerPos(id2, Float:x, Float:y, Float:z);
- if(IsPlayerInAnyVehicle(id1))
- {
- SetVehicleToRespawn(GetPlayerVehicleID(playerid));
- }
- SetPlayerPos(id1, Float:x, Float:y, Float:z);
- if(playerid != id1 && playerid != id2)
- {
- format(string, sizeof(string), "> L'administrateur %s a téléporté %s à vous.", aName, pName);
- SendClientMessage(id2, GREEN, string);
- format(string, sizeof(string), "> L'administrateur %s vous à téléporté à %s.", aName, p2Name);
- SendClientMessage(id1, GREEN, string);
- }
- else if(id1 == playerid)
- {
- format(string, sizeof(string), "> L'administrateur %s s'est téléporté à vous.", aName);
- SendClientMessage(id2, GREEN, string);
- format(string, sizeof(string), "> Vous avez été téléporté à %s.", p2Name);
- SendClientMessage(id1, GREEN, string);
- }
- else
- {
- format(string, sizeof(string), "> L'administrateur %s vous a téléporté à lui.", aName);
- SendClientMessage(id1, GREEN, string);
- format(string, sizeof(string), "> Vous avez téléporté %s à vous.", pName);
- SendClientMessage(id2, GREEN, string);
- }
- }
- else { SendClientMessage(playerid, RED, "> Erreur. ID Invalide.");}
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Cette commande est réservée aux administrateurs.");
- }
- }
- dcmd_unban(playerid, params[])
- {
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. Usage : /unban [Nom].");
- }
- else
- {
- new userFile[MAX_PLAYER_NAME+14], pName[MAX_PLAYER_NAME];
- sscanf(params, "s[24]", pName);
- format(userFile, sizeof(userFile), "\\Users\\%s.ini", pName);
- if(dini_Exists(userFile))
- {
- if(dini_Int(userFile, "banned"))
- {
- dini_IntSet(userFile, "banned", 0);
- new string[256];
- if(dini_Int(userFile, "Warns"))//Si le joueur a été banni par avertisements il est norml de lui retirer ceux-ci lors de son débanissement
- {
- dini_IntSet(userFile, "Warns", 0);
- }
- format(string, sizeof(string), "> %s a été débanni du serveur.", pName);
- SendClientMessageToAll(GREEN, string);
- }
- else { SendClientMessage(playerid, RED, "> Erreur. Ce joueur n'est pas banni.");}
- }
- else { SendClientMessage(playerid, RED, "> Erreur. Ce joueur n'est pas enregistré");}
- }
- }
- else { SendClientMessage(playerid, RED, "> Erreur. Cette commande est résérvée aux administrateurs."); }
- return 0;
- }
- dcmd_warn(playerid, params[])
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "Erreur. Usage : /warn [PlayerID][Raison].");
- }
- else if(IsAdmin(playerid) >= MODO_RANK)
- {
- new warnedId, pName[MAX_PLAYER_NAME], file[sizeof(pName)+14], aName[MAX_PLAYER_NAME], string[256], reason[250];
- sscanf(params, "rs[256]", warnedId, reason);
- if(IsPlayerConnected(warnedId) && (!IsAdmin(warnedId)))
- {
- GetPlayerName(playerid, aName, sizeof(aName));
- GetPlayerName(warnedId, pName, sizeof(pName));
- dini_IntSet(userfile(playerid), "Warns", dini_Int(userfile(playerid), "Warns"));
- format(string, sizeof(string), "> L'administrateur %s a donné un avertisement à %s (%d/3) pour le motif suivant: %s", aName, pName,dini_Int(file, "Warns") ,reason);
- SendClientMessageToAll(RED, string);
- if(dini_Int(file, "Warns") > ADMIN_RANK)
- {
- dini_IntSet(userfile(playerid), "banned", 1);
- GetPlayerName(playerid, aName, sizeof(aName));
- GetPlayerName(warnedId, pName, sizeof(pName));
- format(reason, sizeof(reason), "%s (3 Avertisement)", reason);
- format(string, sizeof(string), "> L'administrateur %s a banni %s du serveur (Raison : %s).", aName, pName, reason);
- SendClientMessageToAll(RED, string);
- ban(warnedId, reason);
- }
- }
- else{SendClientMessage(playerid, RED, "> Erreur .Joueur non connecté ou ID Invalide.");}
- }
- else { SendClientMessage(playerid, RED, "> Erreur. Cette commande est résérvée aux modérateurs"); }
- }
- dcmd_arme(playerid, params[])
- {
- if(IsAdmin(playerid) >= ADMIN_RANK)
- {
- new weaponId;
- sscanf(params, "i", weaponId);
- if(weaponId > 0 && weaponId < 47)
- {
- GivePlayerWeapon(playerid, weaponId, 99999999999);//Si tu manque de munition.... (valeur dangereuse ?)
- }
- else{SendClientMessage(playerid, RED, "> Erreur. ID Arme invalide.");}
- }
- else{SendClientMessage(playerid, RED, "> Erreur. Cette commande est réservée aux administrateurs.");}
- }
- dcmd_mute(playerid, params[])
- {
- if(IsAdmin(playerid) >= MODO_RANK)
- {
- new mutedId;
- sscanf(params, "r", mutedId);
- if(IsPlayerConnected(mutedId) && (!IsAdmin(mutedId)))
- {
- if(GetPVarInt(mutedId, "muted"))
- {
- SetPVarInt(mutedId, "muted", 0);
- dini_IntSet(userfile(mutedId), "muted", 0);
- SendClientMessage(playerid, GREEN, "> Joueur dé-muté avec succès.");
- SendClientMessage(mutedId, GREEN, "> Vous avez été dé-muté.");
- }
- else
- {
- SetPVarInt(mutedId, "muted", 1);
- dini_IntSet(userfile(mutedId), "muted", 1);
- SendClientMessage(playerid, GREEN, "> Joueur muté avec succès");
- SendClientMessage(mutedId, RED, "> Vous avez été muté.");
- }
- }
- }
- else{ SendClientMessage(playerid, RED, "> Commande réservée aux modérateurs.");}
- }
- public OnPlayerText(playerid, text[])
- {
- if(GetPVarInt(playerid, "muted")) { SendClientMessage(playerid, RED, "Vous ête mutez"); return 0; }
- //Part by hunterfalcon
- if(text[0] == ':')
- {
- new name[24], string[128];
- GetPlayerName(playerid, name, 24);
- format(string, sizeof(string), "[Admin]%s: %s", name, text[1]);
- printf("%s", string);
- if(IsAdmin(playerid) >= 1)
- {
- for(new i = 0; i < pConnected; i++)
- {
- if(IsAdmin(i) >= MODO_RANK)
- {
- SendClientMessage(i, BLUE, string);
- }
- }
- return 0;
- }
- }
- if(text[0] == '>')
- {
- new string[128];
- format(string, sizeof(string), "[Annonce]%s", text[1]);
- printf("%s", string);
- if(IsAdmin(playerid) >= MODO_RANK)
- {
- SendClientMessageToAll(YELLOW, string);
- }
- return 0;
- }
- //TY Hunter
- return 1;
- }
- IsAdmin(playerid)//Le dev' est un fénéant, c'est bien connue ;)
- {
- return GetPVarInt(playerid, "admin");
- }
- userfile(playerid)//La c'est plus de l'inteligence que de la fénéantise ...
- {
- new string[250], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- format(string, sizeof(string), "\\Users\\%s.ini", pName);
- return string;
- //A adapter a votre systeme d'enregistrement
- }
- public ban(playerid, reason[250])//Bah...on va pas retaper ces trois lignes à chaque fois qu'on veux bannire un joueur ...
- {
- dini_IntSet(userfile(playerid), "banned", 1);
- dini_Set(userfile(playerid), "banReason", reason);
- Kick(playerid);
- //A adapter a votre systeme d'enregistrement
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
- {
- if(GetPVarInt(playerid, "god"))
- { SetPlayerHealth(playerid, 999999999); }//C'est plus un Dieu la... c'est presque Chuck (excusez moi maitre Noriss 8D)
- }
- public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
- {
- if(IsAdmin(playerid)>= ADMIN_RANK && GetPVarInt(playerid, "tpenabled"))
- {
- SetPlayerPosFindZ(playerid, fX, fY, fZ);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement