pawno.foroactivo.com.es


 
ÍndiceÍndice  CalendarioCalendario  FAQFAQ  BuscarBuscar  MiembrosMiembros  Grupos de UsuariosGrupos de Usuarios  RegistrarseRegistrarse  ConectarseConectarse  

Comparte | 
 

 Registro e ingreso con dialog

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Admin
Admin
avatar

Mensajes : 88
Fecha de inscripción : 29/05/2010

MensajeTema: Registro e ingreso con dialog   Dom Mayo 30, 2010 5:30 am

Hola a todo Pawno Scripting!

Como se que muchos quieren crear un sistema de registro e ingreso por dialogs, y no saben como hacerlo, aqui les dejo mi guia de como hacerlo paso a paso.

Primero que todo, necesitaremos descargar el include "Dini" (de Dracoblue). Lo que este include permite hacer, es crear, guardar, editar, eliminar y leer archivos de configuracion (.ini).
Para descargar el include, haz click aqui.

Una vez descargado, deben copiar el include en su carpeta /pawno/include.

Echo todo esto, abriremos nuestro GameMode y comenzaremos con el script.
Primero que todo, daremos a identificar el include, por lo que en la parte superior, agregaremos:

Código:
#include <Dini>


Luego, identificaremos cada dialog con un numero que quieran.

Código:
#define Registro 0
#define Ingreso 1


Tambien, agregaremos un nuevo estado:

Código:
new Identificado[MAX_PLAYERS];


Una vez echo esto, en OnPlayerConnect, pondremos lo siguiente:

Código:
Identificado[playerid] = 0;
new nombre[MAX_PLAYER_NAME], archivo[256];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombre);
if (!dini_Exists(archivo))
{
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "Registro", "Ingresa tu contrasñea en el siguiente campo:", "Continuar", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "Ingreso", "Ingresa tu contrasñea en el siguiente campo:", "Aceptar", "Cancelar");
}


Lo que esto hace es controlar si el usuario esta registrado y mandarlo al dialog de registro o al de ingreso.

Ahora, nos situaremos en el callback OnDialogResponse, y pondremos lo siguiente:

Código:
if (dialogid == registro)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "Registro", "Ingresa tu contrasñea en el siguiente campo:", "Continuar", "Cancelar");
if (!response) return ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "Registro", "Ingresa tu contrasñea en el siguiente campo:", "Continuar", "Cancelar");
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
dini_Create(archivo);
dini_Set(archivo, "Usuario", nombrejugador);
dini_Set(archivo, "Contraseña", inputtext);
ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "Ingreso", "Ingresa tu contrasñea en el siguiente campo:", "Aceptar", "Cancelar");
}


Esta funcion, guarda los datos que se escriban en el dialog de registro. Si el dialog se cancela, vuelve a abrirse. Si al aceptar no hay nada escrito, vuelve a abrirse.
Bien, ahora solo nos queda el dialog de ingreso, por lo que a continuacion de este codigo, ponemos lo siguiente:

Código:
if (dialogid == Ingreso)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256], comprobante[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "Ingreso", "Ingresa tu contrasñea en el siguiente campo:", "Aceptar", "Cancelar");
if (!response) return ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "Ingreso", "Ingresa tu contrasñea en el siguiente campo:", "Aceptar", "Cancelar");
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
format(comprobante, sizeof(comprobante), "%s", dini_Get(archivo, "Contraseña"));
if (!strcmp (inputtext, comprobante))
{
Identificado[playerid] = 1;
}
else
{
ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "Ingreso", "Ingresa tu contrasñea en el siguiente campo:", "Aceptar", "Cancelar");
}
}


Igual que en la anterior ves, si la contraseña es incorrecta, no se escribe nada en el campo o se cancela, el cuadro vuelve a abrirse.

Ahora deben crear una carpeta llamada Usuarios en scriptfiles, para que se guarden los usuarios que se registren.

Ademas, podran utilizar la condicion if (Identificado[playerid] == 1), que hace que sea necesario haber ingresado.

Espero que el tutorial les haya servido. Cualquier duda o problema con el codigo, avisenme, que lo escribi todo a mano y no se si esta bien al 100%.

Creditos:Leonardo Parisca
Volver arriba Ir abajo
Ver perfil de usuario http://pawno.foroactivo.com.es
 
Registro e ingreso con dialog
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Ingreso de Turquia a la Unión Europea
» No reconoció a su hijo y ahora deberá indemnizarlo. No te registro.
» Esteban Echeverría. Vuelven a impulsar la creación de un registro de tumores y malformaciones
» Registro de dominios personalizados
» Digitalizaron delegaciones del Registro Civil en tres municipios

Permisos de este foro:No puedes responder a temas en este foro.
pawno.foroactivo.com.es :: Tutoriales-
Cambiar a: