Need some help with temp ban(please see my code...
#10

Oh, that's weird.

Maybe try something like this.

pawn Код:
forward CheckTempBan(playerid);
public CheckTempBan(playerid)
{
    if(PlayerInfo[playerid][pBanT] >= gettime())
    {
        new str[128];
        new pName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, pName, sizeof(pName));
        new minu, hour ,day, sec = PlayerInfo[playerid][pBanT] - gettime();
        format(str, sizeof(str),"** (KICK) %s (%d) (Account banned from server for %s)", pName,playerid,ConvertTime(sec,minu,hour,day));
        SendClientMessage(COLOR_RED,playerid,str);
        SetTimerEx("KickEx",1000,false,"i",playerid);
    }
    else if(pInfo[playerid][pBanT] > 0)
    {
        new year,month,day;
        getdate(year,month,day);
        new str[128];
        SendClientMessage(playerid,COLOR_RED,"** Your tempban period has expired, welcome back!");
        format(str,sizeof(str),"Expired on: %d/%d/%d",year,month,day);
        SendClientMessage(playerid,COLOR_RED,str);
        PlayerInfo[playerid][TempBan] = 0;
    }
    return 1;
}

CMD:tempban(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 5)
    {
        new id, reason[128], aName[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME];
        new days, year, month, day, hour, minute;

        if(sscanf(params, "uis[250]", id, days, reason)) return SendClientMessage(playerid, -1, "{F70505}Usage: {FFFFFF}/tempban <playerid> <days> <reason>");
        if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Invalid player ID.");

        GetPlayerName(playerid, aName, sizeof(aName));
        GetPlayerName(id, pName, sizeof(pName));
        PlayerInfo[id][pBanT] = (gettime() + (86400*days));
        getdate(year, month, day);
        gettime(hour, minute);

        new tBans[256], echo[256], banmsg[128];
        format(tBans, sizeof(tBans), "** %s (%d) has been temporarily banned by Admin %s (%d) for %d days | Reason: %s (%02d/%02d/%04d | %02d:%02d)", pName, id, aName, playerid, days, reason, day, month, year, hour, minute);
        format(banmsg, sizeof(banmsg), "Admin %s (%d) has temp banned you for %d days | Reason: %s", aName, playerid, days, reason);
        SendClientMessageToAll(COLOR_RED, tBans);
        SendClientMessage(id, COLOR_RED, banmsg);
        SetTimerEx("KickEx", 1000, false, "i", id);
    }
    return 1;
}

forward KickEx(playerid);
public KickEx(playerid)
{  
    Kick(playerid);
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)