[Ayuda] Como logro esto.. -
TiNcH010 - 08.04.2012
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!
Respuesta: [Ayuda] Como logro esto.. -
Jovanny - 08.04.2012
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
Respuesta: [Ayuda] Como logro esto.. -
TiNcH010 - 08.04.2012
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
Respuesta: [Ayuda] Como logro esto.. -
Jovanny - 08.04.2012
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
Respuesta: [Ayuda] Como logro esto.. -
TiNcH010 - 08.04.2012
Gracias Jovanny
+rep!
Respuesta: [Ayuda] Como logro esto.. -
Treyfus - 09.04.2012
JODER!!!!
ME AYUDO AMI TAMBIEN GRASIAS!!!
+REP