does this look right?
#1

when logging into my server or even registering for that matter it closes the connection on its own


pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[256];
    if(IsPlayerNPC(playerid))
    {
        printf("OnDialogResponse: BotKick: %d", playerid);
        Kick(playerid);
        return 1;
    }
    if(dialogid == 1) //LOGIN
    {
        if(gPlayerLogged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_WHITE, "SERVER: You are already logged in.");
            return 1;
        }
        if(response)
        {
            if(!strlen(inputtext))
            {
                DisplayDialogForPlayer(playerid, 1); //login
                SendClientMessage(playerid, COLOR_WHITE, "SERVER: You must enter a password.");
                return 1;
            }
            if(strlen(inputtext) >= 50)
            {
                DisplayDialogForPlayer(playerid, 1); //login
                SendClientMessage(playerid, COLOR_WHITE, "SERVER: Password is too long.");
                return 0;
            }
            new tmppass[64];
            new playername[MAX_PLAYER_NAME];
            strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
            GetPlayerName(playerid, playername, sizeof(playername));
            if(strlen(playername) == 3)
            {
                if(strcmp(playername, "Jay", true) == 0)
                {
                    return 0;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_LIGHTRED, "Sorry, that name is too short, please change it.");
                    Kick(playerid);
                    return 1;
                }
            }
            Encrypt(tmppass);
            OnPlayerLogin(playerid,tmppass);
        }
        else
        {
            DisplayDialogForPlayer(playerid, 1); //login
        }
    }
    if(dialogid == 2) //REGISTER
    {
        if(gPlayerLogged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_WHITE, "SERVER: You are already logged in.");
            return 1;
        }
        if(response)
        {
            if(strlen(inputtext) >= 50)
            {
                DisplayDialogForPlayer(playerid, 2); //register
                SendClientMessage(playerid, COLOR_WHITE, "SERVER: Password is too long.");
                return 0;
            }
            new sendername[MAX_PLAYER_NAME];
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new namestring = strfind(sendername, "_", true);
            if(namestring == -1)
            {
                SendClientMessage(playerid, COLOR_YELLOW, "Please choose a roleplay name with the Firstname_Lastname format.");
                Kick(playerid);
                return 1;
            }
            if(!ContainsValidCharacters(sendername))
            {
                SendClientMessage(playerid,COLOR_YELLOW,"Please choose a roleplay name with the Firstname_Lastname format.");
                Kick(playerid);
                return 1;
            }
            else
            {
                if(!strlen(inputtext))
                {
                    DisplayDialogForPlayer(playerid, 2); //register
                    SendClientMessage(playerid, COLOR_WHITE, "SERVER: You must enter a password.");
                    return 1;
                }
                format(string, sizeof(string), "%s.ini", sendername);
                if(fexist(string))
                {
                    SendClientMessage(playerid, COLOR_YELLOW, "That name is already taken, please choose a different one.");
                    return 1;
                }
                new tmppass[64];
                strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
                Encrypt(tmppass);
                OnPlayerRegister(playerid,tmppass);
                OnPlayerLogin(playerid,tmppass);
                gPlayerSpawned[playerid] = 1;
                SendClientMessage(playerid, COLOR_YELLOW, "Account registered, you have been logged in automatically.");
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "You chose to leave the server.");
            Kick(playerid);
        }
    }
Reply
#2

Debug script and check which Kick(playerid); is called.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)