[Question] Auto black list for faction members
#1

Hello, I have made for my godfather edit server, a atuomatic black list system for the faction members. The auto black list system makes if someone ho has joined a faction and he hasnt stayed 1 week in the faction he gets black listed and he cant join any faction and he has to wait 1 week to rejoin again.
I think the system is not so well made, its based on the date and month, when someone gets /invite the server writes in his account BLDayExpire = ActualDay+6 and BLMonthExpire= ActualMonth

Here is what I did:

pawn Код:
public OnPlayerSpawn(playerid)
{
    new bldayexp = PlayerInfo[playerid][pBLDateExpire];
    new blmonthexp = PlayerInfo[playerid][pBLDateExpire2];
    new Year, Month, Day;
    getdate(Year, Month, Day);
    if(Day >= bldayexp)
    {
      if(Month >= blmonthexp)
      {
            SendClientMessage(playerid, COLOR_LIGHTRED, "** You can now quit your faction ! You can ask the leader for /uninvite or type /quitfaction **");
            PlayerInfo[playerid][pExitFaction] = 0;
        }
    }
}
pawn Код:
//----------------------------------[INVITE]------------------------------------------------
    if(strcmp(cmd, "/invite", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /invite [playerid/PartOfName]");
                return 1;
            }
            new para1;
            new ftext[20];
            para1 = ReturnUser(tmp);
            if (PlayerInfo[playerid][pLeader] >= 1)
            {
              if(IsPlayerConnected(para1))
              {
                if(para1 != INVALID_PLAYER_ID)
                {
                      if (gTeam[para1]==TEAM_GREEN && PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pFMember] == 255)
                      {
                        if(PlayerInfo[para1][pJob] > 0)
                        {
                          SendClientMessage(playerid, COLOR_GREY, "  Can't invite him, player has a Job !");
                          return 1;
                        }
                        if(PlayerInfo[para1][pExitFaction] >= 1)
                        {
                          SendClientMessage(playerid, COLOR_GREY, "  Can't invite him, the player didnt stay 1 week in a faction, and now he is Black Listed");
                          return 1;
                        }
                        if(PlayerInfo[playerid][pLeader] == 1) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "Police Force"; ChosenSkin[para1] = 280; SetPlayerSkin(para1, 280); }
                        else if(PlayerInfo[playerid][pLeader] == 2) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "FBI/ATF"; ChosenSkin[para1] = 286; SetPlayerSkin(para1, 286); }
                        else if(PlayerInfo[playerid][pLeader] == 3) { PlayerInfo[para1][pTeam] = 3; gTeam[para1] = 3; ftext = "LS Council"; ChosenSkin[para1] = 17; SetPlayerSkin(para1, 17); }
                        else if(PlayerInfo[playerid][pLeader] == 4) { PlayerInfo[para1][pTeam] = 1; gTeam[para1] = 1; ftext = "Sevile Boulevard"; ChosenSkin[para1] = 105; SetPlayerSkin(para1, 105); }
                        else if(PlayerInfo[playerid][pLeader] == 5) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Corleone"; ChosenSkin[para1] = 258; SetPlayerSkin(para1, 120); }
                        else if(PlayerInfo[playerid][pLeader] == 6) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Yakuza"; ChosenSkin[para1] = 123; SetPlayerSkin(para1, 123); }
                        else if(PlayerInfo[playerid][pLeader] == 8) { PlayerInfo[para1][pTeam] = 10; gTeam[para1] = 12; ftext = "Cobras MC"; ChosenSkin[para1] = 181; SetPlayerSkin(para1, 181); }
                        else if(PlayerInfo[playerid][pLeader] == 9) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "CNN Studio"; ChosenSkin[para1] = 148; SetPlayerSkin(para1, 148); }
                        else if(PlayerInfo[playerid][pLeader] == 7) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Glen Park OG's"; ChosenSkin[para1] = 102; SetPlayerSkin(para1, 102); }
                        else if(PlayerInfo[playerid][pLeader] == 10) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Kings of Streets"; ChosenSkin[para1] = 206; SetPlayerSkin(para1, 206); }
                        else if(PlayerInfo[playerid][pLeader] == 11) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "The Triads"; ChosenSkin[para1] = 122; SetPlayerSkin(para1, 122); }
                        else if(PlayerInfo[playerid][pLeader] == 12) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Mara Salvatrucha 13"; ChosenSkin[para1] = 116; SetPlayerSkin(para1, 116); }
                        else if(PlayerInfo[playerid][pLeader] == 13) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Russian Bratva"; ChosenSkin[para1] = 111; SetPlayerSkin(para1, 111); }
                            else if(PlayerInfo[playerid][pLeader] == 15) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Romanian Mafia"; ChosenSkin[para1] = 60; SetPlayerSkin(para1, 60); }
                        else if(PlayerInfo[playerid][pLeader] == 17) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "The Agency"; ChosenSkin[para1] = 185; SetPlayerSkin(para1, 185); }
                        else { return 1; }
                        new Year, Month, Day;
                        getdate(Year, Month, Day);
                            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            PlayerInfo[para1][pMember] = PlayerInfo[playerid][pLeader];
                            PlayerInfo[para1][pRank] = 1;
                            PlayerInfo[para1][pBLDateExpire] = Day+6;
                        PlayerInfo[para1][pBLDateExpire2] = Month;
                        PlayerInfo[para1][pExitFaction] = 0;
                            printf("AdmCmd: %s has invited %s to join %s.", sendername, giveplayer, ftext);
                            format(string, sizeof(string), "  You have Joined the %s, you were invited by Leader %s", ftext, sendername);
                            SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                            format(string, sizeof(string), "  You have Invited %s to join the %s.", giveplayer,ftext);
                            SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                            SetPlayerInterior(para1,0);
                            new rand = random(sizeof(gInviteSpawns));
                            SetPlayerPos(para1, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
                            SetPlayerFacingAngle(para1, gInviteSpawns[rand][3]);
                            SetPlayerCameraPos(para1,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
                            SetPlayerCameraLookAt(para1,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
                            TogglePlayerControllable(para1, 0);
                          SelectChar[para1] = 255;
                          SelectCharID[para1] = PlayerInfo[para1][pMember];
                          SelectCharPlace[para1] = 1;
                          PlayerInfo[para1][pModel] = ChosenSkin[para1];
                        PlayerInfo[para1][pChar] = ChosenSkin[para1];
                          SendClientMessage(para1, COLOR_LIGHTRED, "* Use 'next' to Select the char you want to use.");
                          SendClientMessage(para1, COLOR_LIGHTRED, "* If you've found the Char you want to use, type 'done'.");
                        }
                        else
                        {
                          SendClientMessage(playerid, COLOR_GREY, " That player is currently Wanted / a Different Team / or already a Family Member.");
                          return 1;
                        }
                    }
                }//not connected
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "  you are not authorized to use that command(leaders only)!");
            }
        }
        return 1;
    }
pawn Код:
//----------------------------------[UNINVITE]------------------------------------------------
    if(strcmp(cmd, "/uninvite", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /uninvite [playerid/PartOfName]");
                return 1;
            }
            new para1;
            para1 = ReturnUser(tmp);
            if(PlayerInfo[playerid][pLeader] == 1 && PlayerInfo[para1][pMember] != 1)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 2 && PlayerInfo[para1][pMember] != 2)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 3 && PlayerInfo[para1][pMember] != 3)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 4 && PlayerInfo[para1][pMember] != 4)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 5 && PlayerInfo[para1][pMember] != 5)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 6 && PlayerInfo[para1][pMember] != 6)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 7 && PlayerInfo[para1][pMember] != 7)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 8 && PlayerInfo[para1][pMember] != 8)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 9 && PlayerInfo[para1][pMember] != 9)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 10 && PlayerInfo[para1][pMember] != 10)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 11 && PlayerInfo[para1][pMember] != 11)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 12 && PlayerInfo[para1][pMember] != 12)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if(PlayerInfo[playerid][pLeader] == 17 && PlayerInfo[para1][pMember] != 17)
            {
              SendClientMessage(playerid, COLOR_GRAD2, "Access denied!");
                return 1;
            }
            if (PlayerInfo[playerid][pLeader] >= 1)
            {
              if(IsPlayerConnected(para1))
              {
                if(para1 != INVALID_PLAYER_ID)
                {
                      if (PlayerInfo[para1][pMember] > 0)
                      {
                        if(PlayerInfo[para1][pExitFaction] == 0)
                        {
                          new Year, Month, Day;
                            getdate(Year, Month, Day);
                          SendClientMessage(playerid, COLOR_GREY, "  That player didnt stay 1 week in the faction, therfore he is now Black Listed !");
                          PlayerInfo[para1][pExitFaction] = 1;
                          PlayerInfo[para1][pBLDateExpire] = Day+7;
                            PlayerInfo[para1][pBLDateExpire2] = Month;
                          return 1;
                        }
                            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            printf("AdmCmd: %s has uninvited %s.", sendername, giveplayer);
                            format(string, sizeof(string), "* You have been kicked from a Family / Police Force, by Leader %s.", sendername);
                            SendClientMessage(para1, COLOR_LIGHTBLUE, string);
                            SendClientMessage(para1, COLOR_LIGHTBLUE, "* You are now a Civilian again.");
                    gTeam[para1] = 3;
                            PlayerInfo[para1][pTeam] = 3;
                            PlayerInfo[para1][pMember] = 0;
                            PlayerInfo[para1][pRank] = 0;
                            PlayerInfo[para1][pChar] = 0;
                            new rand = random(sizeof(CIV));
                            SetSpawnInfo(para1, gTeam[para1], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
                            PlayerInfo[para1][pModel] = CIV[rand];
                            MedicBill[para1] = 0;
                            SpawnPlayer(para1);
                            format(string, sizeof(string), "  You have kicked %s from his Family / Police Force.", giveplayer);
                            SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        }
                    }
                }//not connected
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "  you are not authorized to use that command(Leaders only)!");
            }
        }
        return 1;
    }
Does this system work properly? I ask the scripters that realy know if this works as I want it to work ?
If i did not do something wright please post here and tell me where I made a mistake
Reply


Messages In This Thread
[Question] Auto black list for faction members - by TyreXel - 09.12.2009, 13:58
Re: [Question] Auto black list for faction members - by Zamaroht - 09.12.2009, 15:01

Forum Jump:


Users browsing this thread: 2 Guest(s)