pawn Код:
#include <a_samp>
#include <dini>
#include <dinero>
#define DIALOG_REGISTRO 0
#define DIALOG_INGRESO 1
#define DIALOG_SEXO 2
#define DIALOG_EDAD 3
#define DIALOG_ERROR 4
#define DIALOG_TUTORIAL_1 5
#define DIALOG_TUTORIAL_2 6
#define DIALOG_TUTORIAL_3 7
#define DIALOG_TUTORIAL_FIN 8
#define MAX_PASSWORD_ATTEMPS 3
new Logueado[MAX_PLAYERS];
new ContrasenaIncorrecta[MAX_PLAYERS];
enum Info
{
Dinero,
Administrador,
Faccion,
Sexo,
Edad
};
main(){}
new Informacion[MAX_PLAYERS][Info];
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++) ActualizarCuenta(i);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
TogglePlayerSpectating(playerid, 1);
SetPlayerPos(playerid, -1684.8241,137.6620,-51.7783);
new nombre[MAX_PLAYER_NAME], archivo[256];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(archivo, sizeof(archivo), "/cuentas/%s.ini", nombre);
if (!dini_Exists(archivo)) ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bienvenid@ esta cuenta no {FBFB04}existe","{FFFFFF}Ingresa una contraseсa para continuar el registro","> Registrar","Salir");
else ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bienvenid@ tu cuenta estб {FBFB04}registrada","{FFFFFF}Escribe tu contraseсa para comenzar iniciar sesiуn","> Iniciar","Salir"), Logueado[playerid] = 1;
Logueado[playerid] = 1;
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
ActualizarCuenta(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid, -1951.3817,137.5177,26.2813);
Logueado[playerid] = 1;
TogglePlayerSpectating(playerid, 0);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == DIALOG_REGISTRO)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256],string[200];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bienvenid@ esta cuenta no {FBFB04}existe","{FFFFFF}Ingresa una contraseсa para continuar el registro","> Registrar","Salir");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/cuentas/%s.ini", nombrejugador);
dini_Create(archivo);
dini_Set(archivo, "Usuario", nombrejugador);
dini_Set(archivo, "Contraseсa", inputtext);
CrearCuenta(playerid);
format(string,sizeof(string),"{FFFFFF}Tu cuenta fue creada con йxito, ingresa tu contraseсa",inputtext);
ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX, "Selecciona tu sexo", "", "Masculino","Femenino");
}
if (dialogid == DIALOG_INGRESO)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256], comprobante[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Bienvenid@ tu cuenta estб {FBFB04}registrada","{FFFFFF}Escribe tu contraseсa para comenzar iniciar sesiуn","> Iniciar","Salir");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/cuentas/%s.ini", nombrejugador);
format(comprobante, sizeof(comprobante), "%s", dini_Get(archivo, "Contraseсa"));
if (!strcmp (inputtext, comprobante)) CargarDatos(playerid), SpawnPlayer(playerid);
else
{
ContrasenaIncorrecta[playerid]++;
ShowPlayerDialog(playerid, DIALOG_INGRESO, DIALOG_STYLE_PASSWORD, "{FBFB04}Advertencia: {FBFB04}contraseсa incorrecta","{FFFFFF}Escribiste una contraseсa invбlida tienes 3 intentos","> Intentar","Salir");
if(ContrasenaIncorrecta[playerid] == MAX_PASSWORD_ATTEMPS)
{
ShowPlayerDialog(playerid, DIALOG_ERROR, DIALOG_STYLE_MSGBOX, "{FFFFF}Atenciуn: error ocurrido", "{FFFFFF}La contraseсa que ingresaste no coincide con la cuenta registrada, fuiste kickeado por seguridad", "Aceptar", "");
Kick(playerid);
ActualizarCuenta(playerid);
}
}
}
if(dialogid == DIALOG_SEXO)
{
switch(response)
{
case 0:
{
Informacion[playerid][Sexo] = 2;//Mujer
SendClientMessage(playerid, -1, "Eres Mujer");
ShowPlayerDialog(playerid, DIALOG_EDAD,DIALOG_STYLE_LIST,"їQue Edad Tienes?", "10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25", "Aceptar" ,"");
}
case 1:
{
Informacion[playerid][Sexo] = 1;//Hombre
SendClientMessage(playerid, -1, "Eres Hombre");
ShowPlayerDialog(playerid, DIALOG_EDAD,DIALOG_STYLE_LIST,"їQue Edad Tienes?", "10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25", "Aceptar" ,"");
}
}
}
if(dialogid == DIALOG_EDAD)
{
switch(response)
{
case 1:
{
new MensajeEdad[10];
Informacion[playerid][Edad] = (listitem + 10);
format(MensajeEdad, sizeof(MensajeEdad),"%d", (listitem + 10));
SendClientMessage(playerid, -1, MensajeEdad);
ShowPlayerDialog(playerid, DIALOG_TUTORIAL_1, DIALOG_STYLE_MSGBOX,"Parte 1", "TUTORIAL PARTE 1\nTUTORIAL PARTE 1\nTUTORIAL PARTE 1", "Siguiente","");
}
}
}
if(dialogid == DIALOG_TUTORIAL_1)
{
switch(response)
{
case 1:
{
new strons[540];
strcat(strons,"{EE5555}Canales dentro y fuera del juego{FFFFFF}\n");
strcat(strons,"{FFFFFF}Los canales {EE5555}dentro{FFFFFF} del juego son: aquellos que se usan dentro del rol del personaje, en los que\n");
strcat(strons,"no puedes usar nada relacionado a cosas fuera del juego (Comandos: /me, /do, /intentar, /s, /g y el habla)\n");
strcat(strons,"{FFFFFF}Los canales {EE5555}fuera{FFFFFF} del juego son: los que se usan para hablar de cosas que no son relacionadas al\n");
strcat(strons,"rol dentro del juego y el papel de tu personaje [Ejemplo: /b Nos vemos me desconectare..](Comandos: /b y /d)");
ShowPlayerDialog(playerid, DIALOG_TUTORIAL_2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Reglas del juego - Canales", strons, "Siguiente", "");
PlayerPlaySound(playerid, 1083, 0, 0, 0);
}
}
}
if(dialogid == DIALOG_TUTORIAL_2)
{
switch(response)
{
case 1:
{
new strons[1315];
strcat(strons,"{EE5555}Death Match - Jugar a matar (DM)\n");
strcat(strons,"{FFFFFF}El dm esta totalmente prohibido en el servidor, desde golpear con puсo, disparar desde el auto\n");
strcat(strons,"o a pie, atropellando, etc.(Por ejemplo: Golpear a un sujeto sin ninguna razуn)\n");
strcat(strons,"{EE5555}Acciones Imposibles (Power Gaming)\n");
strcat(strons,"{FFFFFF}El power gaming significa provocar o hacer cosas imposibles e inadecuadas que no se harian en la vida real\n");
strcat(strons,"[Ejemplo: Saltar para evitar las balas, golpear a un sujeto armado cuando no tienes armas,o mover un vehнculo sin ayuda]\n");
strcat(strons,"{EE5555}MetaGaming(MG)\n");
strcat(strons,"{FFFFFF}Significa confundir canales o usar informacion OCC para beneficio IC [Ejemplo: /me me desconecto, u olvidar usar /b en [OOC]\n");
strcat(strons,"{EE5555}In Character (IC)\n");
strcat(strons,"{FFFFFF}Significa Dentro del personaje\n");
strcat(strons,"{EE5555}Out of Character (OOC)\n");
strcat(strons,"{FFFFFF}Significa Fuera del personaje\n");
strcat(strons,"{EE5555}CarKill - Matar en vehнculo (CK)\n");
strcat(strons,"{FFFFFF}Se refiere matar a personas atropellandolas, o dejandoles el auto arriba de ellas\n");
strcat(strons,"{EE5555}Away Of Keyboard (AFK)\n");
strcat(strons,"{FFFFFF}Su traducciуn es 'Lejos del teclado' significa que una persona se pondra en pausa\n");
strcat(strons,"dejando su personaje conectado, puedes hacerlo, pero respetando el momento y el rol\n");
strcat(strons,"{EE5555}Player Kill (PK)\n");
strcat(strons,"{FFFFFF}Puede tomarse como el abandono de algun rol (temporal o permanentemente), para cambiar\n");
strcat(strons,"la vida IC [Por ejemplo: Cambiar rol de Pandillero a Mafioso]\n");
ShowPlayerDialog(playerid, DIALOG_TUTORIAL_3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Reglas del juego - Conceptos basicos", strons, "Aceptar", "");
PlayerPlaySound(playerid, 1083, 0, 0, 0);
}
}
}
if(dialogid == DIALOG_TUTORIAL_3)
{
switch(response)
{
case 1:
{
TogglePlayerSpectating(playerid, 0);
Logueado[playerid] = 1;
SpawnPlayer(playerid);
ShowPlayerDialog(playerid, DIALOG_TUTORIAL_FIN,DIALOG_STYLE_MSGBOX,"{FFFFFF}Registro finalizado", "{FFFFFF}Gracias por registrarte en el servidor\n{FFFFFF}Recuerda respetar las {FBFB04}reglas{FFFFFF}\n{FFFFFF}Para un buen comienzo recibes {6CDF20}20k", "Jugar","");
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock ActualizarCuenta(playerid)
{
if(Logueado[playerid] == 1)
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "/cuentas/%s.ini", usuario);
dini_IntSet(archivo, "Dinero", GetPlayerMoney(playerid));
dini_IntSet(archivo, "Administrador", Informacion[playerid][Administrador]);
dini_IntSet(archivo, "Faccion", Informacion[playerid][Faccion]);
dini_IntSet(archivo, "Sexo", Informacion[playerid][Sexo]);
dini_IntSet(archivo, "Edad", Informacion[playerid][Edad]);
return 1;
}
return 1;
}
stock CargarDatos(playerid)
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "/cuentas/%s.ini", usuario);
GivePlayerMoney(playerid, dini_Int(archivo, "Dinero"));
Informacion[playerid][Administrador] = dini_Int(archivo, "Administrador");
Informacion[playerid][Faccion] = dini_Int(archivo, "Faccion");
Informacion[playerid][Sexo] = dini_Int(archivo, "Sexo");
Informacion[playerid][Edad] = dini_Int(archivo, "Edad");
return 1;
}
stock CrearCuenta(playerid)
{
if(IsPlayerConnected(playerid))
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "/cuentas/%s.ini", usuario);
dini_IntSet(archivo, "Dinero", 5000);
dini_IntSet(archivo, "Administrador", 0);
dini_IntSet(archivo, "Sexo", 0);
dini_IntSet(archivo, "Edad", 0);
return 1;
}
return 1;
}
Lo bueno es que lo tengo en un gm aparte asн no me caga el otro jajaja, bueno espero su ayuda gracias