[Ajuda] Problemas no Login
#1

Bom quando o player registra esta tudo normal, mas quando vem o Dialog de login já aparece a função escolher skin(OnPlayerRequestClass) no fundo, junto com o Dialog de loguin.

Dialog:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas números!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = strval(inputtext);
            DOF2_CreateFile(arquivo);
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            DOF2_SaveFile();
            //Retornando a dialog de Login ao player no final para ele logar no server
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Você se cadastrou, agora é só logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strval(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas números!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta ser? banida!", "Confirma", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(strval(inputtext) == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Você digitou sua senha errada, digite-a novamente para logar!\nSe errar 5 vezes sua conta será banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta está banida por errar 5 vezes a sua senha, poste uma revisão no forum para tirar seu ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Alguém me ajuda? se precisar de mais alguma coisa só falar.
Reply
#2

Й sу vocк por um retorno no OnPlayerRequestClass.
Reply
#3

E como faço isso? tentei pesquisar, mas não achei
Reply
#4

Bom, mas o que vocк quer
Qual й o problema ??

Se for o que estou pensando, chame o dialog de login em OnPlayerConnect seria isso?
Reply
#5

Nгo tem como remover a OnPlayerRequestClass, atй onde eu sei. Coloque a cвmera ou a posiзгo do player em outra coordenada.

Para forзar spawn, use SetSpawnInfo + SpawnPlayer
Reply
#6

O seu problema serб resolvido somente se for forзado o spawn, o seu 'problema' й algo natural do SA-MP.

-----

Corrigi uma coisa que estava no seu GM errado, nгo tem nada haver com o seu 'problema', porйm seu sistema de
registro estava errado.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!isNumeric(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        if(response)
        {
            Player[playerid][Senha] = strval(inputtext);
            DOF2_CreateFile(arquivo);
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            DOF2_SaveFile();
            //Retornando a dialog de Login ao player no final para ele logar no server
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!isNumeric(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta ser? banida!", "Confirma", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        if(response)
        {
            Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(strval(inputtext) == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errada, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, poste uma revisгo no forum para tirar seu ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Agora corrigido
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)