Esto ya me superу.
#1

Buenas, estuve a punto de tirar la computadora al carajo, pero no lo hice porque hoy juega Argentina (?. Bueno, el punto es que, estoy haciendo un sistema de registro y logeo con INI. Me registra, todo bien. Pero al parecer no me carga los datos, no me deja logear, no nada.
Les dejo los cуdigos de como lo hice:

pawn Код:
//En OnPlayerRequestClass
  if(fexist(UserPath(playerid)))
    {
        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_INPUT,"Login","Escribe tu contraseсa para loguearte.","Login","Quit");
    }
    else
    {
        NuevoUsuario[playerid] = true;
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT,"Registering...","Escribe tu contraseсa para crear una nueva cuenta","Register","Quit");
    }


    switch( dialogid )
    {
        case DIALOG_REGISTRO:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bienvenid@ esta cuenta no {FBFB04}existe","{FFFFFF}No puedes dejar este campo en blanco","» Registrar","Salir");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"Informaciуn");
                PlayerInfo[playerid][Clave] = udb_hash(inputtext);
                INI_WriteInt(File,"Clave",PlayerInfo[playerid][Clave]);
                INI_Close(File);
                SpawnPlayer(playerid);
                PlayerPlaySound(playerid, 1057, 0, 0, 0);
            }
        }
        case DIALOG_INGRESO:
        {
            if (!response) return Kick (playerid);
            if(response)
            {
                INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                if(udb_hash(inputtext) == PlayerInfo[playerid][Clave])
                {

                    GivePlayerMoney(playerid, PlayerInfo[playerid][Dinero]);

                    PlayerPlaySound(playerid, 1057, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
                else
                {
                    PlayerPlaySound(playerid, 1084, 0, 0, 0);
                    ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, "{FBFB04}Advertencia: {FFFFFF}contraseсa incorrecta","{FFFFFF}Escribiste una contraseсa invбlida vuelve a intentar","» Iniciar","Salir");
                }
                return 1;
            }
        }
}


forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Clave",PlayerInfo[playerid][Clave]);
    INI_Int("Dinero",PlayerInfo[playerid][Dinero]);
    INI_Int("Banco",PlayerInfo[playerid][CuentaBancaria]);
    INI_Int("Administrador",PlayerInfo[playerid][Administrador]);
    INI_Int("Faccion",PlayerInfo[playerid][Faccion]);
    INI_Int("Rango",PlayerInfo[playerid][Rango]);
    INI_Int("Trabajo", PlayerInfo[playerid][Trabajo]);
    INI_Int("Sexo",PlayerInfo[playerid][Sexo]);
    INI_Int("Edad",PlayerInfo[playerid][Edad]);
    INI_Int("DNI",PlayerInfo[playerid][DNI]);
    INI_Int("Llave de Casa",PlayerInfo[playerid][LlaveCasa1]);
    INI_Int("LlaveCasaPrestada1",PlayerInfo[playerid][LlaveCasaP1]);
    INI_Int("Nivel",PlayerInfo[playerid][Nivel]);
    INI_Int("Experiencia",PlayerInfo[playerid][Experiencia]);
    INI_Int("Skin",PlayerInfo[playerid][Skin]);
    INI_Int("Skin de Trabajo",PlayerInfo[playerid][SkinTrabajo]);
    INI_Int("Telefono",PlayerInfo[playerid][Telefono]);
    INI_Float("Vida",PlayerInfo[playerid][Vida]);
    INI_Float("Chaleco",PlayerInfo[playerid][Armadura]);
    INI_Float("Posx",PlayerInfo[playerid][px]);
    INI_Float("Posy",PlayerInfo[playerid][py]);
    INI_Float("Posz",PlayerInfo[playerid][pz]);
    INI_Float("Angulo",PlayerInfo[playerid][angulo]);
    INI_Int("Interior",PlayerInfo[playerid][Interior]);
    INI_Int("VirtualWorld",PlayerInfo[playerid][VirtualWorld]);
    INI_Int("Acento",PlayerInfo[playerid][Acento]);
    INI_Int("LlaveCoche1",PlayerInfo[playerid][LlaveCoche1]);
    INI_Int("LlaveCochePrestada",PlayerInfo[playerid][LlaveCocheP1]);
    return 1;
}

stock GuardarDatos(playerid)
{
    if(IsPlayerConnected(playerid) && Jugando[playerid] == true)
    {
        new INI:File = INI_Open(UserPath(playerid)), Float:v[2], Float:p[3], Float:angle;
        GetPlayerHealth(playerid, v[0]);
        GetPlayerArmour(playerid, v[1]);
        GetPlayerPos(playerid, p[0], p[1], p[2]);
        GetPlayerFacingAngle(playerid, angle);
        INI_SetTag(File,"Informaciуn");
        INI_WriteInt(File,"Dinero", GetPlayerMoney(playerid));
        INI_WriteInt(File,"Banco", PlayerInfo[playerid][CuentaBancaria]);
        INI_WriteInt(File,"Administrador", PlayerInfo[playerid][Administrador]);
        INI_WriteInt(File,"Faccion", PlayerInfo[playerid][Faccion]);
        INI_WriteInt(File,"Rango", PlayerInfo[playerid][Rango]);
        INI_WriteInt(File,"Trabajo", PlayerInfo[playerid][Trabajo]);
        INI_WriteInt(File,"Sexo", PlayerInfo[playerid][Sexo]);
        INI_WriteInt(File,"Edad", PlayerInfo[playerid][Edad]);
        INI_WriteInt(File,"DNI", PlayerInfo[playerid][DNI]);
        INI_WriteInt(File,"LlaveCasa1", PlayerInfo[playerid][LlaveCasa1]);
        INI_WriteInt(File,"LlaveCasaPrestada", PlayerInfo[playerid][LlaveCasaP1]);
        INI_WriteInt(File,"Nivel", GetPlayerScore(playerid));
        INI_WriteInt(File,"Experiencia", PlayerInfo[playerid][Experiencia]);
        INI_WriteInt(File,"Skin", GetPlayerSkin(playerid));
        INI_WriteInt(File,"SkinTrabajo", PlayerInfo[playerid][SkinTrabajo]);
        INI_WriteInt(File,"Telefono", PlayerInfo[playerid][Telefono]);
        INI_WriteFloat(File, "Vida", v[0]);
        INI_WriteFloat(File, "Chaleco", v[1]);
        INI_WriteFloat(File, "Posx", p[0]);
        INI_WriteFloat(File, "Posy", p[1]);
        INI_WriteFloat(File, "Posz", p[2]);
        INI_WriteFloat(File, "Angulo", angle);
        INI_WriteInt(File,"Interior", GetPlayerInterior(playerid));
        INI_WriteInt(File,"VirtualWorld", GetPlayerVirtualWorld(playerid));
        INI_WriteInt(File,"Acento", PlayerInfo[playerid][Acento]);
        INI_WriteInt(File,"LlaveCoche1", PlayerInfo[playerid][LlaveCoche1]);
        INI_WriteInt(File,"LlaveCochePrestada", PlayerInfo[playerid][LlaveCocheP1]);

        INI_Close(File);

    }
    return 1;
}

En Disconect

GuardarDatos(playerid);
їQuй estoy haciendo mal?. El problema es que no me reconoce la contraseсa,no me deja logear y la contraseсa estб perfectamente puesta en el ".ini" . Hice un "format" indicandome cual es mi contraseсa pero me sale que mi contraseсa es 0.
Reply
#2

usa SQLite.
Reply
#3

Define PlayerInfo[playerid][Clave] como INTeger, no como cadena ( string )
Reply
#4

Y, їdуnde guardas la variable "clave"?... en la funciуn 'GuardarDatos' no aparece.
Reply
#5

Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
Define PlayerInfo[playerid][Clave] como INTeger, no como cadena ( string )
Estб como Entero. INI_WriteINT
Reply
#6

Claro, pero solamente en el registro.
1) Comprueba colocandolo tambiйn en la funciуn 'GuardarCuenta'.

Sн eso no funciona, entonces el fallo se debe a que el hash te produce un nъmero que supera el mбximo valor representable para una variable de tipo 'int'... sн esto ocurre, tendrбs que manejarlo como 'string'.
Reply
#7

El problema debe ser que usas un "tag" distinto al que cargas, dime toda la callback de "LoadUser_" y el tag que usas en las cuentas
Reply
#8

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
El problema debe ser que usas un "tag" distinto al que cargas, dime toda la callback de "LoadUser_" y el tag que usas en las cuentas
pawn Код:
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Clave",PlayerInfo[playerid][Clave]);
    INI_Int("Dinero",PlayerInfo[playerid][Dinero]);
    INI_Int("Banco",PlayerInfo[playerid][CuentaBancaria]);
    INI_Int("Administrador",PlayerInfo[playerid][Administrador]);
    INI_Int("Faccion",PlayerInfo[playerid][Faccion]);
    INI_Int("Rango",PlayerInfo[playerid][Rango]);
    INI_Int("Trabajo", PlayerInfo[playerid][Trabajo]);
    INI_Int("Sexo",PlayerInfo[playerid][Sexo]);
    INI_Int("Edad",PlayerInfo[playerid][Edad]);
    INI_Int("DNI",PlayerInfo[playerid][DNI]);
    INI_Int("Llave de Casa",PlayerInfo[playerid][LlaveCasa1]);
    INI_Int("LlaveCasaPrestada1",PlayerInfo[playerid][LlaveCasaP1]);
    INI_Int("Nivel",PlayerInfo[playerid][Nivel]);
    INI_Int("Experiencia",PlayerInfo[playerid][Experiencia]);
    INI_Int("Skin",PlayerInfo[playerid][Skin]);
    INI_Int("Skin de Trabajo",PlayerInfo[playerid][SkinTrabajo]);
    INI_Int("Telefono",PlayerInfo[playerid][Telefono]);
    INI_Float("Vida",PlayerInfo[playerid][Vida]);
    INI_Float("Chaleco",PlayerInfo[playerid][Armadura]);
    INI_Float("Posx",PlayerInfo[playerid][px]);
    INI_Float("Posy",PlayerInfo[playerid][py]);
    INI_Float("Posz",PlayerInfo[playerid][pz]);
    INI_Float("Angulo",PlayerInfo[playerid][angulo]);
    INI_Int("Interior",PlayerInfo[playerid][Interior]);
    INI_Int("VirtualWorld",PlayerInfo[playerid][VirtualWorld]);
    INI_Int("Acento",PlayerInfo[playerid][Acento]);
    INI_Int("LlaveCoche1",PlayerInfo[playerid][LlaveCoche1]);
    INI_Int("LlaveCochePrestada",PlayerInfo[playerid][LlaveCocheP1]);
    return 1;
}
Reply
#9

pawn Код:
INI_SetTag(File,"Informaciуn");
Eso ya es un error.
Reply
#10

Saquй el acento. Deje "Informacion" , pero pasa lo mismo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)