A banned player can join like nothing happend.
#1

I banned myself to test the /ban command and when i rejoined to see the ban message that i wanted , i joined normally like nothing had happen .
pawn Код:
//onplayerconnect
    if(PlayerInfo[playerid] [pBanned] >=1)
    {
    SendClientMessage(playerid,COLOR_WHITE,"This account is currently{FF0000} banned{EEEEEE} from <Censored>");
    format(banstring,sizeof(banstring),"{FF0000}Username{EEEEEE}:%s",PlayerInfo[playerid][pBannedName]);
    format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} By:%s",PlayerInfo[playerid][pBannedBy]);
    format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} For%s",PlayerInfo[playerid][pBannedFor]);
    SendClientMessage(playerid,COLOR_WHITE,banstring);
    SetTimerEx("KickPlayer", 120, false, "i",playerid);
    }
Reply
#2

Are you maybe using a VPN by accident?
Or something which may change your IP?
Reply
#3

Two things:

- Checking directly in OnPlayerConnect if PlayerInfo[playerid][pBanned] is equal or greather than 1 without loading the data and assign it to the variable will do nothing.
- Never getting the player's IP on disconnect because it will return 255.255.255.255
Reply
#4

A good custom ban system takes a lot of work conveniently Konstantinos tutorial will show you what you need to know before starting to make that kind of system.
Reply
#5

pawn Код:
public OnPlayerConnect(playerid)
{
    new banstring[300];
    if(PlayerInfo[playerid][pBanned] ==1)
    {
    SendClientMessage(playerid,COLOR_WHITE,"This account is currently{FF0000} banned{EEEEEE} from San Fierro Cops and Robbers");
    format(banstring,sizeof(banstring),"{FF0000}Username{EEEEEE}:%s",PlayerInfo[playerid][pBannedName]);
    format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} By:%s",PlayerInfo[playerid][pBannedBy]);
    format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} For%s",PlayerInfo[playerid][pBannedFor]);
    SendClientMessage(playerid,COLOR_WHITE,banstring);
    SetTimerEx("KickPlayer", 100 , false, "i",playerid);
    }
Still , it lets me join normally
Reply
#6

show me the ban command please?
Reply
#7

pawn Код:
CMD:ban(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return NOACCESS
    new targetid;
    new reason[128];
    if(sscanf(params, "us[128]", targetid, reason)) return SendClientMessage(playerid, -1, "USAGE: /ban [id] [reason]");
    if(!IsPlayerConnected(targetid) || targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "The player is not connected.");
    new pName[MAX_PLAYER_NAME], targetname[MAX_PLAYER_NAME], day, month, year, hour, minute, second, string[150];
    new string2[300];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    GetPlayerName(playerid,targetname,MAX_PLAYER_NAME);
    getdate(day, month, year);
    gettime(hour, minute, second);
    format(string, sizeof(string), "[{FF0000}BAN{EEEEEE}]Administrator %s has banned %s for %s",pName,targetname,reason);
    SendClientMessageToAll(COLOR_WHITE,string);
    format(string, sizeof(string),"[{FF0000}BAN{EEEEEE}]Administrator %s has banned you for %s",pName,reason);
    SendClientMessage(targetid,COLOR_WHITE,string);
    SendClientMessage(targetid,COLOR_WHITE,"--------------------------------------");
    SendClientMessage(targetid, COLOR_RED, "Ban Information");
    format(string, sizeof(string), "Banned by: %s", pName);
    SendClientMessage(targetid, COLOR_RED, string);
    format(string, sizeof(string), "Banned for: %s", reason);
    SendClientMessage(targetid, COLOR_RED, string);
    format(string, sizeof(string), "Ban date: %d/%d/%d at %d:%d:%d.", day, month, year, hour, minute, second);
    SendClientMessage(targetid, COLOR_RED, string);
    SendClientMessage(targetid, COLOR_WHITE,"Please press the F8 button to take a screenshot to use it on your appeal");
    SendClientMessage(targetid,COLOR_WHITE,"--------------------------------------");
    PlayerInfo[targetid][pBanned] = 1;
    strcpy(PlayerInfo[playerid][pBannedName],targetname,MAX_PLAYER_NAME);
    strcpy(PlayerInfo[targetid][pBannedBy], pName, MAX_PLAYER_NAME);
    strcpy(PlayerInfo[targetid][pBannedFor], reason, sizeof (reason));
    format(string2,sizeof(string2), "Administrator %s has banned %s for %s(Date: %d/%d/%d at %d:%d:%d)",pName,targetname,reason,day,month,year,hour,minute,second);
    printf(string2);
    new File:log;
    log = fopen("logs/bans.txt", io_append);
    fwrite(log, string2);
    fclose(log);
    SetTimerEx("KickPlayer", 150, false, "i", targetid);
    return 1;
}
Reply
#8

show me the login dialog.
Reply
#9

You're not checking if the player is actually banned, in order to do so you'll need to look through your bans.txt file for an entry containing that player's name. Do that, find his name and ban/kick him.
Reply
#10

Quote:
Originally Posted by Hiddos
Посмотреть сообщение
You're not checking if the player is actually banned, in order to do so you'll need to look through your bans.txt file for an entry containing that player's name. Do that, find his name and ban/kick him.
This
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)