Kick/ban problem
#3

Kick

pawn Код:
COMMAND:kick(playerid, params[])
{
    new PlayerToKick, Reason[128], ReasonMsg[128], Name[24];
   
    // Send the command to all admins so they can see it
    SendAdminText(playerid, "/kick", params);
   
    // Check if the player has logged in
    if (APlayerData[playerid][LoggedIn] == true)
    {
        // Check if the player's admin-level is at least 1
        if (APlayerData[playerid][PlayerLevel] >= 1)
        {
            if (sscanf(params, "us[128]", PlayerToKick, Reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: /kick <playerid> <reason>");
            else
                if (IsPlayerConnected(PlayerToKick)) // If the player is a valid playerid (he's connected)
            {
                // Get the name of the player who warned the player
                GetPlayerName(playerid, Name, sizeof(Name));
                // Send the warned player a message who kicked him and why he's been kicked
                format(ReasonMsg, sizeof(ReasonMsg), "You have been kicked by %s %s", AdminLevelName[APlayerData[playerid][PlayerLevel]], Name);
                SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg);
                format(ReasonMsg, sizeof(ReasonMsg), "Reason: %s", Reason);
                SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg);
                SetTimerEx("kick",1000,false,"i",playerid);
                // Kick the player
                Kick(PlayerToKick);
            }
            else
                SendClientMessage(playerid, 0xFF0000FF, "That player isn't online");
        }
        else
            return 0;
    }
    else
        return 0;
   
    // Let the server know that this was a valid command
    return 1;
}

Ban
pawn Код:
COMMAND:ban(playerid, params[])
{
    // Setup local variables
    new PlayerToBan, Days, Hours, Reason[128], TotalBanTime, Msg[1024], Name[24], AdminName[24];
   
    // Send the command to all admins so they can see it
    SendAdminText(playerid, "/ban", params);
   
    // Check if the player has logged in
    if (APlayerData[playerid][LoggedIn] == true)
    {
        // Check if the player's admin-level is at least 3
        if (APlayerData[playerid][PlayerLevel] >= 3)
        {
            if (sscanf(params, "uiis[128]", PlayerToBan, Days, Hours, Reason))
            SendClientMessage(playerid, 0xFF0000AA, "Usage: /ban <PlayerToBan> <Days> <Hours> <Reason>");
            else
            {
                if (IsPlayerConnected(PlayerToBan))
                {
                    // Get the names of the player and the admin who executed the ban
                    GetPlayerName(playerid, AdminName, sizeof(AdminName));
                    GetPlayerName(PlayerToBan, Name, sizeof(Name));
                   
                    // Increase the number of bans
                    APlayerData[PlayerToBan][Bans]++;
                    // Calculate the total bantime (when the player can login again)
                    TotalBanTime = (Days * 86400) + (Hours * 3600) + gettime();
                    // Check if this is the player's 5th ban
                    if (APlayerData[PlayerToBan][Bans] == 5)
                    APlayerData[PlayerToBan][BanTime] = 2147483640; // Make the ban permanent (as high as it can go)
                    else
                        APlayerData[PlayerToBan][BanTime] = TotalBanTime; // Store this value for the player
                   
                    // Inform the player about his ban
                    // Check if this is the player's 5th ban
                    if (APlayerData[PlayerToBan][Bans] == 5)
                    {
                        format(Msg, 128, "You have been banned permanently by %s, this was your 5th ban", AdminName);
                        SendClientMessage(PlayerToBan, 0x808080FF, Msg);
                    }
                    else
                    {
                        format(Msg, sizeof(Msg), "You have been banned by %s for %i days and %i hours", AdminName, Days, Hours);
                        SendClientMessage(PlayerToBan, 0x808080FF, Msg);
                        format(Msg, sizeof(Msg), "Reason: %s", Reason);
                        SendClientMessage(PlayerToBan, 0x808080FF, Msg);
                        format(Msg, sizeof(Msg), "You've been banned %i times now, 5th time is permament", APlayerData[PlayerToBan][Bans]);
                        SendClientMessage(PlayerToBan, 0x808080FF, Msg);
                    }
                   
                    // Kick the player (his data will be saved)
                    Kick(PlayerToBan);
                   
                    // Inform everybody else which player was banned and for how long
                    format(Msg, 128, "%s %s has banned %s for %i days and %i hours", AdminLevelName[APlayerData[playerid][PlayerLevel]], AdminName, Name, Days, Hours);
                    SendClientMessageToAll(0x808080FF, Msg);
                }
            }
        }
        else
            return 0;
    }
    else
        return 0;
   
    return 1;
}
Reply


Messages In This Thread
Kick/ban problem - by thegamer355 - 01.02.2014, 12:07
Re: Kick/ban problem - by CuervO - 01.02.2014, 12:17
Re: Kick/ban problem - by Nourdin - 01.02.2014, 12:21
Re: Kick/ban problem - by thegamer355 - 01.02.2014, 12:59
Re: Kick/ban problem - by Nourdin - 01.02.2014, 13:06
Re: Kick/ban problem - by thegamer355 - 01.02.2014, 13:08
Re: Kick/ban problem - by Nourdin - 01.02.2014, 13:12
Re: Kick/ban problem - by thegamer355 - 01.02.2014, 13:14

Forum Jump:


Users browsing this thread: 1 Guest(s)