Server crashes when a banned player tries to enter
#1

My server crashes when a banned player enters the server, he receives the message and the server crashes (shut down)
The ban check is at OnPlayerRequestSpawn, i moved it to OnPlayerConnect and then the server doesn't crashes anymore and it makes the banned player not be able to connect to the server but he doesn't receive the message with the info so if someone can see something wrong with it here is the code:

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    if(IsPlayerNPC(playerid))
    {
        SpawnPlayer(playerid);
        return true;
    }
    new string[128];
    new string3[128];
    new ip[16];
    GetPlayerIp(playerid, ip, sizeof ip);
    format(string3, sizeof(string3), "Banneds/%s.ini", PlayerName(playerid));
    if(fexist(string3)) //autoban
    {
        ClearChatbox(playerid, 10);
        strmid(BanInfo[playerid][pReason], dini_Get(string3,"Reason"), 0, strlen(dini_Get(string3,"Reason")), 255);
        strmid(BanInfo[playerid][pAdmBan], dini_Get(string3,"Admin"), 0, strlen(dini_Get(string3,"Admin")), 255);
        strmid(BanInfo[playerid][pDate], dini_Get(string3,"Date"), 0, strlen(dini_Get(string3,"Date")), 255);
        strmid(BanInfo[playerid][pHour], dini_Get(string3,"Hour"), 0, strlen(dini_Get(string3,"Hour")), 255);
        SendClientMessage(playerid, COLOR_WHITE, "|_______________[ Ban Information ]_______________|");
        format(string, sizeof(string), "Your Nick:[%s] is banned from {00EE00}Samp {FFD700}Test {00B2EE}Server.", PlayerName(playerid));
        SendClientMessage(playerid, COLOR_LIGHTRED, string);
        format(string, sizeof(string), "Reason: %s", BanInfo[playerid][pReason]);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        format(string, sizeof(string), "Admin: %s", BanInfo[playerid][pAdmBan]);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        format(string, sizeof(string), "Day: %s, Hour: %s", BanInfo[playerid][pDate], BanInfo[playerid][pHour]);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        SendClientMessage(playerid, COLOR_YELLOW, "For ban appeal visit: www.testserver.com");
        SendClientMessage(playerid, COLOR_YELLOW, "You'll only be unbanned if you're innocent!");
        new stri[64], tmp[20], tmp2[20];
        format(stri, sizeof(stri), "BannedIps/%s.ini",ip);
        getdate(Year, Month, Day);
        format(tmp, 20, "%d/%d/%d", Day, Month, Year);
        gettime(Hour, Minute, Second);
        format(tmp2, 20, "%d:%d:%d", Hour, Minute, Second);
        if(dini_Exists(stri))
        {
            Kick(playerid);
        }
        else
        {
            dini_Create(stri);
            dini_Set(stri,"Reason",BanInfo[playerid][pReason]);
            dini_Set(stri,"Admin",BanInfo[playerid][pAdmBan]);
            dini_Set(stri,"Date",BanInfo[playerid][pDate]);
            dini_Set(stri,"Hour",BanInfo[playerid][pHour]);
            dini_Set(stri,"Nick",PlayerName(playerid));
        }
        Kick(playerid);
    }
    format(string3, sizeof(string3), "BannedIps/%s.ini", ip);
    if(fexist(string3))
    {
        ClearChatbox(playerid, 10);
        strmid(BanInfo[playerid][pMotivo], dini_Get(string3,"Reason"), 0, strlen(dini_Get(string3,"Reason")), 255);
        strmid(BanInfo[playerid][pAdmBan], dini_Get(string3,"Admin"), 0, strlen(dini_Get(string3,"Admin")), 255);
        strmid(BanInfo[playerid][pData], dini_Get(string3,"Date"), 0, strlen(dini_Get(string3,"Date")), 255);
        strmid(BanInfo[playerid][pHora], dini_Get(string3,"Hour"), 0, strlen(dini_Get(string3,"Hour")), 255);
        strmid(BanInfo[playerid][pNick], dini_Get(string3,"Nick"), 0, strlen(dini_Get(string3,"Nick")), 255);
        SendClientMessage(playerid, COLOR_WHITE, "|_______________[ Informaзхes do Ban ]_______________|");
        format(string, sizeof(string), "Your Ip:[%s] is banned from {00EE00}Samp {FFD700}Test {00B2EE}Server.", ip);
        SendClientMessage(playerid, COLOR_LIGHTRED, string);
        format(string, sizeof(string), "Reason: %s", BanInfo[playerid][pReason]);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        if(strcmp(BanInfo[playerid][pNick],"", true ) == 0)
        {
            format(string, sizeof(string), "Admin: %s", BanInfo[playerid][pAdmBan]);
        }
        else
        {
            format(string, sizeof(string), "Admin: %s, Nick Fake: %s", BanInfo[playerid][pAdmBan], BanInfo[playerid][pNick]);
        }
        SendClientMessage(playerid, COLOR_YELLOW, string);
        format(string, sizeof(string), "Day: %s, Hour: %s", BanInfo[playerid][pDate], BanInfo[playerid][pHour]);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        SendClientMessage(playerid, COLOR_YELLOW, "For ban appeal visit: www.testserver.com");
        SendClientMessage(playerid, COLOR_YELLOW, "You'll only be unbanned if you're innocent!");
        /*new stri[64], tmp[20], tmp2[20];
        format(stri, sizeof(stri), "Banneds/%s.ini",PlayerName(playerid));
        getdate(Year, Month, Day);
        format(tmp, 20, "%d/%d/%d", Day, Month, Year);
        gettime(Hour, Minute, Second);
        format(tmp2, 20, "%d:%d:%d", Hour, Minute, Second);
        if(dini_Exists(stri))
        {
            Kick(playerid);
        }
        else
        {
            dini_Create(stri);
            dini_Set(stri,"Reason","Fake IP");
            dini_Set(stri,"Admin","Spider_Man");
            dini_Set(stri,"Date",tmp);
            dini_Set(stri,"Hour",tmp2);
        }*/

        Kick(playerid);
    }
Reply
#2

Nothing?
Reply
#3

Script has errors or warnings fix . Fix them and then run out or make this from RequestClass to OnPlayerConnect
Reply
#4

I wanna know where is the problem that is making the server to crash when the script is on OnPlayerRequestClass, because when compiling it doesn't give you any errors or warnings;
Reply
#5

I would suggest you to move this ip ban database from RequestClass to OnPlayerConnect i am pretty much sure that

it will work trust me.
Reply
#6

As i said moving it to on player connect the player doesn't receive the message with the ban info and when the ban database or the ip ban database is in the onplayerrequestspawn make the server crash.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)