Burgershot
ayuda con registro dini - Printable Version

+- Burgershot (https://www.burgershot.gg)
+-- Forum: Other languages (https://www.burgershot.gg/forumdisplay.php?fid=23)
+--- Forum: Spanish/Español (https://www.burgershot.gg/forumdisplay.php?fid=24)
+---- Forum: Programación (https://www.burgershot.gg/forumdisplay.php?fid=51)
+---- Thread: ayuda con registro dini (/showthread.php?tid=1674)



ayuda con registro dini - Nikolay_Staggs - 2021-02-16

tengo dos días tratando de resolver el problema pero no puedo, por que no se guardan los datos de los usuarios :)
 este es el código" 

//_____Enum______//
enum DATA_PLAYER
{
    GAME_IDENTIFICADO,
    GAME_REGISTRADO,
GAME_EXP,
GAME_ADMIN_LEVEL,
GAME_SCORE,
GAME_MONEY
};
new PLAYER_INFO[MAX_PLAYERS][DATA_PLAYER];
//_________News__________//
new GAME_PASSWORD_INCORRECTA[MAX_PLAYERS];


public OnPlayerConnect(playerid)
{
    GAME_PASSWORD_INCORRECTA[playerid] = 0;
   
    new string[250];

    if (fexist(ac_ARCHIBO_USER(playerid)))
    {
PLAYER_INFO[playerid][GAME_REGISTRADO] = 1;
    }
   
    if (PLAYER_INFO[playerid][GAME_REGISTRADO])
    {
format(string, sizeof(string), "{CCCCCC}- Bienvenido %s.\n- Escribe tu contraseña para identificarte", NAME_USER(playerid));
  ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, ""#BLANCO"Ingreso", string, "Ingresar", "Salir");
    }
    else
    {
  format(string, sizeof(string), "{CCCCCC}- Bienvenido %s.\n- Escribe una contraseña para Registrarte", NAME_USER(playerid));
  ShowPlayerDialog(playerid, DIALOGO_REGISTRO, DIALOG_STYLE_PASSWORD, ""#BLANCO"Registrar", string, "Ok", "Salir");
    }
   
    RESET_USER(playerid);
return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[250];
    if(dialogid == DIALOGO_REGISTRO)
    {
        dini_Create(ac_ARCHIBO_USER(playerid));
        dini_IntSet(ac_ARCHIBO_USER(playerid), "contraseña",        adler32(inputtext));
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Exp",              PLAYER_INFO[playerid][GAME_EXP]);
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Admin",            PLAYER_INFO[playerid][GAME_ADMIN_LEVEL]);
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Score",            PLAYER_INFO[playerid][GAME_SCORE]);
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Dinero",            PLAYER_INFO[playerid][GAME_MONEY]);
       
        PLAYER_INFO[playerid][GAME_IDENTIFICADO] = 1;
        PLAYER_INFO[playerid][GAME_REGISTRADO] = 1;
    }
    else if(dialogid == DIALOG_INGRESO)
    {
        if (dini_Int(ac_ARCHIBO_USER(playerid), "Contraseña") == adler32(inputtext))
        {
            PLAYER_INFO[playerid][GAME_IDENTIFICADO] = 1;
            PLAYER_INFO[playerid][GAME_REGISTRADO] = 1;
           
            PLAYER_INFO[playerid][GAME_EXP] = dini_Int                (ac_ARCHIBO_USER(playerid), "Exp");
            PLAYER_INFO[playerid][GAME_ADMIN_LEVEL] = dini_Int        (ac_ARCHIBO_USER(playerid), "Admin");
            SetPlayerScore(playerid, dini_Int                          (ac_ARCHIBO_USER(playerid), "Score"));
            GivePlayerMoney(playerid, dini_Int                        (ac_ARCHIBO_USER(playerid), "Dinero"));
        }
        else
        {
            GAME_PASSWORD_INCORRECTA[playerid]++;
            format(string, sizeof(string), "{CCCCCC}- Por favor %s.\n- Ingresa una contraseña correcta", NAME_USER(playerid));
            ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, "{6F0000}Error", string, "Ok", "Salir");

            if(GAME_PASSWORD_INCORRECTA[playerid] == MAX_PASSWORD_INVALIDA)
            {
                format(string,sizeof(string),"{6F0000}[Cuentas]: %s fue expulsado (Max intentos de ingresar(Contraseña invalida))", NAME_USER(playerid));
                SendClientMessageToAll(-1, string);
                SendClientMessage(playerid, -1, "** Haz puesto varias contraseñas incorrectas has sido kickeado del servidor por seguridad.");
                Kick(playerid);
            }
        }
    }
    return 1;
}


stock NAME_USER(playerid)
{
new User_Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, User_Name, sizeof(User_Name));
return User_Name;
}

stock ac_ARCHIBO_USER(playerid)
{
new User_Name[250];
GetPlayerName(playerid, User_Name, sizeof(User_Name));
format(User_Name, sizeof(User_Name), "DM_FREEROAM/%s.ini", User_Name);
return User_Name;
}

stock SAVE_USER(playerid)
{
    if(PLAYER_INFO[playerid][GAME_IDENTIFICADO])
    {
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Exp",          PLAYER_INFO[playerid][GAME_EXP]);
dini_IntSet(ac_ARCHIBO_USER(playerid), "Admin",        PLAYER_INFO[playerid][GAME_ADMIN_LEVEL]);
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Score",        GetPlayerScore(playerid));
        dini_IntSet(ac_ARCHIBO_USER(playerid), "Dinero",        GetPlayerMoney(playerid));
    }
    return 1;
}

stock adler32(buf[])
{
    new len = strlen(buf), key1 = 1, key2 = 0, n;
    for (n = 0; n < len; n ++)
    {
        key1 = (key1 + buf[n])  % 65521;
        key2 = (key2 + key1)    % 65521;
    }
    return (key2 << 16) + key1;
}


stock RESET_USER(playerid)
{
    PLAYER_INFO[playerid][GAME_IDENTIFICADO] = 0;
    PLAYER_INFO[playerid][GAME_REGISTRADO] = 0;
    PLAYER_INFO[playerid][GAME_EXP] = 0;
    PLAYER_INFO[playerid][GAME_ADMIN_LEVEL] = 0;
    PLAYER_INFO[playerid][GAME_SCORE] = 0;
    PLAYER_INFO[playerid][GAME_MONEY] = 0;
    return 1;
}


RE: ayuda con registro dini - Porkaslov - 2021-02-21

¿Que errores te indica, podrías compartir alguna imagen de los errores?


RE: ayuda con registro dini - Nikolay_Staggs - 2021-03-01

No guarda los datos de los usuarios