Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Original Scripts and ideas by HunterFalcon !
- Improvements and editing by Jujuv.
- Thanks to HunterFalcon !
- */
- //Inclusion de bibliotheques
- #include <a_samp>
- #include <utils>
- #include <dini>
- #include <sscanf2>
- //Fin de liste de bibliotheques
- //Debut de la liste de definition des constantes
- #define GREEN 0x00FF0066
- #define RED 0xFF000066
- #define VIOLET 0x8000FF66
- #define YELLOW 0xFFFF0066
- #define LIGHTBLUE 0x33CCFFAA
- #define GROVE 1
- #define BALLAS 2
- #define AZTECAS 3
- #define VAGOS 4
- #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
- //Fin (Constantes def. liste)
- //Debut de la liste de definition des tableaux
- new gangMembers[5] = {0, 0, 0, 0, 0};
- new gangs[5] = {0, 0, 0, 0, 0};
- new gLeader[5] = {0, 0, 0, 0, 0};
- //Fin (tableaux def. liste)
- //Definition de variables globales (debut)
- new gPlayerConnected = 0;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Gangs by HunterFalcon (edited by Jujuv)");
- print("--------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- gPlayerConnected++;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- gPlayerConnected--;
- OnPlayerQuitGang(playerid);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(gangkick, 8, cmdtext);
- dcmd(join, 4, cmdtext);
- if (strcmp("/gang", cmdtext, true, 10) == 0)
- {
- if(GetPlayerTeam(playerid) != 1)
- {
- if(!GetPlayerGang(playerid))
- {
- new gangId = 0;
- for(new i = 1; i < 5; i++)
- {
- if(!gangs[i])
- {
- gangId = i;
- break;
- }
- }
- new gangName[256];
- switch(gangId)
- {
- case GROVE:
- {
- gangName= "grove";
- SetPlayerColor(playerid, GREEN);
- SetPlayerSkin(playerid, 107);
- }
- case BALLAS:
- {
- gangName = "ballas";
- SetPlayerSkin(playerid, 104);
- SetPlayerColor(playerid, VIOLET);
- }
- case AZTECAS:
- {
- gangName = "aztecas";
- SetPlayerSkin(playerid, 116);
- SetPlayerColor(playerid, LIGHTBLUE);
- }
- case VAGOS:
- {
- gangName = "vagos";
- SetPlayerSkin(playerid, 110);
- SetPlayerColor(playerid, YELLOW);
- }
- default:
- {
- gangName = "Inconnu";
- }
- }
- SetPlayerGang(playerid, gangId);
- gangMembers[gangId]++;
- gLeader[gangId] = playerid;
- gangs[gangId] = 1;
- new string[256], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(string, sizeof(string), "> %s (id : %i) vient de rejoindre le gang %s [%d/4].", pname, playerid, gangName, gangMembers[gangId]);
- SendClientMessageToAll(GREEN, string);
- format(string, sizeof(string), "> Pour le rejoindre, entrez la commande /join %s", gangName);
- SendClientMessageToAll(GREEN, string);
- format(string, sizeof(string), "> Vous venez de rejoindre le gang %s.", gangName);
- SendClientMessage(playerid, GREEN, string);
- SendClientMessage(playerid, YELLOW, "> Pour voir les commandes de gang, entrez /gang?.");
- }
- else {SendClientMessage(playerid, RED, "> Erreur. Vous êtes déjà dans un gang.");}
- }
- else {SendClientMessage(playerid, RED, ">Erreur. Vous devez être un hors-la-loi pour rejoindre un gang.");}
- return 1;
- }
- if (strcmp("/gang?", cmdtext, true, 10) == 0)
- {
- SendClientMessage(playerid, YELLOW, " ______COMMANDES______ ");
- SendClientMessage(playerid, YELLOW, "> /gang : Créer un gang.");
- SendClientMessage(playerid, YELLOW, "> /join [nom du gang] : Rejoindre un gang (Grove, Ballas, Aztecas ou Vagos).");
- SendClientMessage(playerid, YELLOW, "> /gangq : Quitter un gang.");
- SendClientMessage(playerid, YELLOW, "> /gangkick : Expulser un joueur d'un gang (Commande réservée aux leaders).");
- SendClientMessage(playerid, YELLOW, "> ![message] : Envoyer un message aux membres de son gang.");
- SendClientMessage(playerid, YELLOW, "____________________________");
- return 1;
- }
- if(strcmp("/gangq", cmdtext, true, 10) == 0)
- {
- OnPlayerQuitGang(playerid);
- return 1;
- }
- return 0;
- }
- dcmd_join(playerid, parrams[])
- {
- if(!strlen(parrams))
- {
- SendClientMessage(playerid, RED, "> Erreur. Pour rejoindre un gang, entrez la commande |/join [Gangname]|.");
- }
- else if(GetPlayerTeam(playerid) != 1)
- {
- if(!GetPlayerGang(playerid))
- {
- new gangName[10], gangId = 0;
- sscanf(parrams, "s[10]",gangName);
- if(!strcmp(gangName, "grove", true, false))
- {
- gangId = GROVE;
- }
- else if(!strcmp(gangName, "ballas", true, false))
- {
- gangId = BALLAS;
- }
- else if(!strcmp(gangName, "vagos", true, false))
- {
- gangId = VAGOS;
- }
- else if(!strcmp(gangName, "aztecas", true, false))
- {
- gangId = AZTECAS;
- }
- else { SendClientMessage(playerid, RED, "Err.Ce gang n'existe pas");}
- if(gangs[gangId] == 1)
- {
- if(gangMembers[gangId] < 4)
- {
- SetPlayerGang(playerid, gangId);
- gangMembers[gangId]++;
- new string[256], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(string, sizeof(string), "> %s (id : %i) vient de rejoindre le gang %s [%d/4].", pname, playerid, gangName, gangMembers[gangId]);
- SendClientMessageToAll(GREEN, string);
- format(string, sizeof(string), "> Pour le rejoindre, entrez la commande /join %s.", gangName);
- SendClientMessageToAll(GREEN, string);
- format(string, sizeof(string), "> Vous venez de rejoindre le gang %s.", gangName);
- SendClientMessage(playerid, GREEN, string);
- SendClientMessage(playerid, YELLOW, "> Pour voir les commandes de Gang, entrez /gang?.");
- switch(gangId)
- {
- case 1:
- {
- SetPlayerColor(playerid, GREEN);
- SetPlayerSkin(playerid, 107);
- }
- case 2:
- {
- SetPlayerSkin(playerid, 104);
- SetPlayerColor(playerid, VIOLET);
- }
- case 3:
- {
- SetPlayerSkin(playerid, 116);
- SetPlayerColor(playerid, LIGHTBLUE);
- }
- case 4:
- {
- SetPlayerSkin(playerid, 110);
- SetPlayerColor(playerid, YELLOW);
- }
- }
- }
- else {SendClientMessage(playerid, RED, "> Erreur. Ce gang est complet.");}
- }
- else {SendClientMessage(playerid, RED, "> Erreur. Ce gang n'existe pas.");}
- }
- else {SendClientMessage(playerid, RED, "> Erreur. Vous êtes déjà dans un gang.");}
- }
- else {SendClientMessage(playerid, RED, "> Erreur. Vous devez être un hors-la-loi pour rejoindre un gang.");}
- return 1;
- }
- dcmd_gangkick(playerid, params[])
- {
- if(!strlen(params))
- {
- SendClientMessage(playerid, RED, "> Erreur. /gangkick [PlayerID]");
- }
- else
- {
- if(gLeader[GROVE] == playerid || gLeader[BALLAS] == playerid || gLeader[AZTECAS] == playerid || gLeader[VAGOS] == playerid)
- {
- new id;
- sscanf(params, "r", id);
- if(IsPlayerConnected(id))
- {
- if(GetPlayerTeam(playerid) == GetPlayerTeam(id) && playerid != id)
- {
- SendClientMessage(id, RED, "> Vous avez été expulsé(e) de votre gang.");
- OnPlayerQuitGang(id);
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Vous ne pouvez expulser que les membres de votre gang.");
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. ID Joueur Invalide.");
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Vous devez être leader d'un gang pour en expulser un membre.");
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(text[0] == '!')
- {
- new name[24], string[128];
- GetPlayerName(playerid, name, 24);
- format(string, sizeof(string), "[Team] %s : %s", name, text[1]);
- printf("%s", string);
- if(GetPlayerTeam(playerid) == 2)
- {
- for(new i = 0; i < gPlayerConnected; i++)
- {
- if(GetPlayerGang(i) == GetPlayerGang(playerid))
- {
- SendClientMessage(i, GetPlayerColor(playerid), string);
- }
- }
- return 0;
- }
- }
- return 1;
- }
- OnPlayerQuitGang(playerid)
- {
- new pGang = GetPlayerGang(playerid);
- if(pGang)
- {
- new gangName[256];
- switch(pGang)
- {
- case GROVE: { gangName = "Grove";}
- case BALLAS: { gangName = "Ballas";}
- case VAGOS: { gangName = "Vagos";}
- case AZTECAS: { gangName = "Aztecas";}
- default: { gangName = "Inconnu";}
- }
- SetPlayerGang(playerid, 0);
- SetPlayerColor(playerid, RED);
- SetPlayerSkin(playerid, 29);
- gangMembers[pGang]--;
- new string[256];
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(string, sizeof(string), "> %s (id : %i) vient de quitter le gang %s [%d/4].", pname, playerid, gangName, gangMembers[pGang]);
- SendClientMessageToAll(GREEN, string);
- format(string, sizeof(string), "> Pour prendre sa place, entrez la commande /join %s.", gangName);
- SendClientMessageToAll(GREEN, string);
- if(!gangMembers[pGang]){ gangs[pGang] = 0;}
- if(gLeader[pGang] == playerid && gangs[pGang])
- {
- gLeader[pGang] = 800;
- for(new i = 0; i < gPlayerConnected; i++)
- {
- if(GetPlayerGang(i) == pGang && gLeader[pGang] == 800)
- {
- gLeader[pGang] = i;
- SendClientMessage(i, GREEN, "> Vous devenez leader de votre gang.");
- }
- }
- }
- else if(!gangs[pGang])
- {
- gLeader[pGang] = 800;
- }
- }
- else
- {
- SendClientMessage(playerid, RED, "> Erreur. Vous n'êtes dans aucun gang.");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement