SA-MP Forums Archive
[Ajuda] Problemas com Y_INI no GMX - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Problemas com Y_INI no GMX (/showthread.php?tid=388205)



Problemas com Y_INI no GMX - Rodney Francalim - 27.10.2012

Olб, tф enfrentando alguns problemas com o Y_INI.

Ele salva as informaзхes normalmente, quando o jogador desloga as informaзхes ficam salvas, quando ele entra continua tudo normal, MAAAAAAAS quando eu dф GMX, com o jogador online ou nгo, e quando ele loga no servidor e na tela de login a conta do jogador й detectada, atй porque o arquivo .ini ainda estб na pasta com todas as informaзхes ainda corretнssimas, e quando eu digito a senha para logar, й como se eu tivesse acabo de me registrar, e vou pra tela de escolha de grupo, ou seja, й como se os valores fossem resetados, mas sу quando o servidor й ligado (ou seja, quando der o GMX tambйm).

Se alguйm jб teve algum problema desse e souber a soluзгo, pode me falar como resolveu?

Caso seja preciso postar o cуdigo, basta pedir.


Re: Problemas com Y_INI no GMX - MatheusAlcapone - 27.10.2012

poste o OnGameModeExit


Re: Problemas com Y_INI no GMX - Rodney Francalim - 27.10.2012

pawn Код:
public OnGameModeExit()
{
    return 1;
}
'-'


Re: Problemas com Y_INI no GMX - Rodney Francalim - 28.10.2012

Up. Ainda nгo consegui resolver esse problema. :/


Re: Problemas com Y_INI no GMX - zSuYaNw - 28.10.2012

Por favor, й de grande importвncia vocк postar a parte que loga.


Re: Problemas com Y_INI no GMX - Rodney Francalim - 28.10.2012

pawn Код:
public OnPlayerConnect(playerid)
{
    LimparChat(playerid, 125);
    SetPlayerColor(playerid, COR_CINZA);
    SetPlayerVirtualWorld(playerid, playerid+1);
    TogglePlayerAllDynamicCPs(playerid, 1);
    SCM(playerid, "{FFFF00}(INFO){A9C4E4}: Carregando suas informaзхes...");
    SCM(playerid, "{FFFF00}(INFO){A9C4E4}: Aguarde...");
    JogadorInfo[playerid][jLogado] = false;


    SetPlayerMapIcon( playerid, 0, 2200.8806,1394.2930,11.0625, 55, 0, MAPICON_LOCAL); // ENTRADA - CONCESSIONARIA
    SetPlayerMapIcon( playerid, 1, 2151.3625,1403.4315,11.1328, 38, 1, MAPICON_LOCAL); // SPAWN - CORREDORES
    return 1;
}
Hб um SetTimer para tela de bem-vindo e lб й chamada й tela de login
pawn Код:
stock LogarRegistrar(playerid)
{
    if(fexist(jPasta(playerid)))
    {
        INI_ParseFile(jPasta(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "Bem-vindo de volta ao RWGA: Las Venturas.\n\nDigite sua senha para logar-se.", "Logar", "");
    }
    else ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD,"{FFFF00}(REGISTRO)", "Bem-vindo ao RWGA: Las Venturas.\n\nDigite sua senha para registrar-se.", "Registrar", "");
    return 1;
}
pawn Код:
//No OnDialogResponse
case REGISTRO:
        {
            if(!response) return LimparChat(playerid, 125), SCM(playerid, "{FF0000}(ERRO){A9C4E4}: Vocк foi kickado automaticamente. Motivo: Recusou o registro."), Kick(playerid);
            else
            {
                if(strlen(inputtext) < 5 || strlen(inputtext) > 20) return ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD,"{FFFF00}REGISTRO", "{FF0000}Vocк precisa digitar no mнnimo 5 caractйres e no mбximo 20.\n\n{A9C4E4}Digite sua senha para registrar-se.", "Registrar", "");
                // ------------------ REGISTRAR JOGADOR ------------------ //
                new INI:jArquivo = INI_Open(jPasta(playerid));
                INI_SetTag(jArquivo,"dados");
                INI_WriteString(jArquivo,"Senha", inputtext);
                INI_WriteInt(jArquivo,"Admin", 0);
                INI_WriteInt(jArquivo,"Nivel", 0);
                INI_WriteInt(jArquivo,"Dinheiro", 0);
                INI_WriteInt(jArquivo,"Skin", 0);
                INI_Close(jArquivo);
                format(gstring, sizeof(gstring), "%s", inputtext);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "{FFFF00}Conta criada com sucesso.\n\n{A9C4E4}Digite sua senha para logar-se.", "Logar", "");
            }
        }

        case LOGIN:
        {
            if(!response) return LimparChat(playerid, 125), SCM(playerid, "{FF0000}(ERRO){A9C4E4}: Vocк foi kickado automaticamente. Motivo: Recusou o login."), Kick(playerid);
            else
            {
                if(strlen(inputtext) < 5 || strlen(inputtext) > 20) return ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "{FF0000}Vocк precisa digitar no mнnimo 5 caractйres e no mбximo 20.\n\n{A9C4E4}Digite sua senha para logar-se.", "Logar", "");
                INI_ParseFile(jPasta(playerid), "j_pSenha", false, true, playerid);
                GetPVarString(playerid, "a_jSenha", gstring, sizeof gstring);
                if(!strcmp(inputtext, gstring, true)) JogadorInfo[playerid][jLogado] = true, SpawnPlayer(playerid);
                else ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "{FF0000}Senha incorreta.\n\n{A9C4E4}Digite sua senha para logar-se.", "Logar", "");
            }
        }



Re: Problemas com Y_INI no GMX - zSuYaNw - 28.10.2012

j_pSenha, й uma callback?


Re: Problemas com Y_INI no GMX - Rodney Francalim - 28.10.2012

Sim, sim.
pawn Код:
forward j_pSenha(playerid, name[], value[]);
public j_pSenha(playerid, name[], value[]) if(!strcmp(name, "Senha")) SetPVarString(playerid, "a_jSenha", value);
Eu tive que fazer isso, pois a senha nгo ficava salva no arquivo de jeito nenhum.


Re: Problemas com Y_INI no GMX - zSuYaNw - 28.10.2012

Vamos fazer debug para descobrir qual parte estamos errando:
pawn Код:
case LOGIN:
        {
            if(!response)
                return LimparChat(playerid, 125), SCM(playerid, "{FF0000}(ERRO){A9C4E4}: Vocк foi kickado automaticamente. Motivo: Recusou o login."), Kick(playerid);
               
            if(strlen(inputtext) < 5 || strlen(inputtext) > 20)
                return ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "{FF0000}Vocк precisa digitar no mнnimo 5 caractйres e no mбximo 20.\n\n{A9C4E4}Digite sua senha para logar-se.", "Logar", "");

            INI_ParseFile(jPasta(playerid), "j_pSenha", false, true, playerid);
            GetPVarString(playerid, "a_jSenha", gstring, sizeof gstring);
            //
            {
                printf("DEBUG: (LOGIN) INPUTTEXT: %s | a_jSenha: %s", inputtext, GetPVarString(playerid, "a_jSenha", gstring, sizeof gstring));
            ///
         

            if(!strcmp(inputtext, gstring, true)) JogadorInfo[playerid][jLogado] = true, SpawnPlayer(playerid);
            else {
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD,"{FFFF00}(LOGIN)", "{FF0000}Senha incorreta.\n\n{A9C4E4}Digite sua senha para logar-se.", "Logar", "");
            }

        }



Re: Problemas com Y_INI no GMX - Rodney Francalim - 28.10.2012

Ok, vou colocar isso.

Mas foi como eu falei, as contas resetam, sу quando eu abro o samp-server, ou quando dou GMX.

E isso й o que me deixa maluco. --'

@EDIT
Apareceu isso:
"DEBUG: (LOGIN) INPUTTEXT: olokomano | a_jSenha:/Contas/Rodney_Francalim.ini"