[Ayuda] Como logro esto..
#1

Estoy tratando de lograr que al poner un comando, me salga un dialog del estilo 'lista' y que un renglуn sea una cuenta (para eso debe leer las cuentas .ini de X carpeta).
Ya hice una mitad que es leer lo que hay dentro de esa cuenta, pero no logro hacer que lea las cuentas que se encuentran en una X carpeta que luego apareceran en la lista del dialog.
Espero me entiendan, sino lo explico. Saludos!
Reply
#2

La ъnica forma es guardar el nombre de cada cuenta en un determinado archivo: ej:

Cuentas.txt
Код:
TiNcH010.ini
Jovanny.ini
the_chaoz.ini
SuperMarioRol.ini
Edugta.ini
Davidxxx.ini
por que NO podrбs ver todos los archivos de una carpeta a menos que uses un plugin, la ъnica forma que se me ocurre es la que ya dije, otra forma serнa que cada cuenta estй enumerada por un id y luego usar un script como el siguiente

pawn Код:
#define MAX_CUENTAS 100
new FileName[32], Buffer[512];
for(new i; i<MAX_CUENTAS; i++)
{
    format(FileName,32,"Cuenta-%d.ini",i);
    if(fexist(FileName))
    {
        strcat(Buffer,FileName);
        strcat(Buffer,"\n");
    }
}
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST,"Cuentas",Buffer,"Aceptar","Cancelar");
eso serнa un script bбsico si usaras id para cada cuenta
Reply
#3

Gracias Jovanny, pero como se que nъmero de ID tiene que crear para cada cuenta? EJ: En dini, al crear el .ini me das un ejemplo de como hago para crearle la ID? Siendo asн podrнa usar esa forma.
Gracias
Reply
#4

Sobre los 'IDs' es algo que tiene que estar comprobando cuantas cuentas hay cada vez que una cuenta se registra
ej:

pawn Код:
new FileName[24];
for(new i; i<MAX_CUENTAS; i++)
{
    format(FileName,24,"Cuenta_%d",i);
    if(!fexits(FileName))
    {
        // No existe el id almacenado en "ID", entonces tomaremos este ID para esta cuenta
        dini_Create(FileName);
        break;
    }
}
Otra cosa, si lo haces de esta forma tendrбs que decirle al usuario que id de cuenta le toco para no tener que revisar archivo x archivo para saber cual tiene los datos de este player, para hacer el login tendrнas que pedirle al usuario su id para acceder rбpidamente a su archivo de "cuenta", EJ:

pawn Код:
#define dia_login 188

public OnPlayerConnect(playerid)
{
    ShowPlayerDialog(playerid,dia_login,DIALOG_STYLE_INPUT,"Escribe tu ID de usuario","Escribe el ID que se te otorgo al registrarse","Aceptar","Cancelar");
}

public OnDialogResponse(playerid, dialogid, response, listitem ,inputtext[])
{
    if(dialogid == dia_login)
    {
        if(!response) return Kick(playerid);
        new cuentaname[24];
        format(cuentaname,24,"Cuenta_%d",strval(inputtext));
        if(!fexist(cuentaname)) return ShowPlayerDialog(playerid,dia_login,DIALOG_STYLE_INPUT,"Escribe tu ID de usuario","Este ID de usuario no existe\nEscribe el ID que se te otorgo al registrarse","Aceptar","Cancelar");
        // Resto del login...

        return 1;
    }

}
Pero como te digo, es algo mбs complejo, yo te recomiendo migrar a MySQL o a SQLite donde es muuucho mejor y mбs rбpido y tambiйn puedes otorgarle ids a los usuarios de una forma bastante fбcil, usando un campo tipo autoincrement y poniendo este campo como primarikey, funciona tanto en MySQL y SQLite
Reply
#5

Gracias Jovanny
+rep!
Reply
#6

JODER!!!!




ME AYUDO AMI TAMBIEN GRASIAS!!!

+REP
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)