· 9 years ago · Jan 12, 2017, 11:46 PM
1#define DaBa "Servidor.db"
2#define Registro 234
3#define Logeo 235
4
5CALLBACK: OnPlayerConnect(playerid)
6{
7 new pName[MAX_PLAYER_NAME + 1];
8 GetPlayerName(playerid, pName, sizeof(pName));
9
10 if(strlen(pName) > 10)
11 {
12 SetTimer("comprobarnick", 1000, true);
13 return 1;
14 }
15 SendClientMessage(playerid, -1, ""BLANCO"¡Bienvenido a "CELESTE"SuperDiversión Freeroam!");
16 new DBResult:result;
17
18 format(query, sizeof(query), "SELECT * FROM `Usuarios` WHERE `Nick` = '%s' COLLATE NOCASE",DB_Escape(DarNick(playerid)));
19 result = db_query(BaseDeDatos, query);
20
21 if(db_num_rows(result))
22 {
23 format(StrGlo,sizeof(StrGlo),""BLANCO"Hola {005EF6}%s "BLANCO"se encuentra {005EF6}registrada\n"BLANCO"Coloca tu contraseña para cargar tus {005EF6}estadisticas",DarNick(playerid));
24 ShowPlayerDialog(playerid,Logeo,DIALOG_STYLE_INPUT,"{005EF6}INGRESO",StrGlo,"Ingresar","Salir");
25 }
26 else
27 {
28 format(StrGlo,sizeof(StrGlo),""BLANCO"Hola {005EF6}%s "BLANCO"esta cuenta no esta "ROJO"registrada\n"BLANCO"Coloca una contraseña y dale a {005EF6}registrarme\n"BLANCO"Se guardaran \""CELESTE"SCORE"BLANCO", "CELESTE"VIP"BLANCO", "CELESTE"MATADAS"BLANCO", "CELESTE"MUERTES"BLANCO", "CELESTE"CARRERAS\" "BLANCO",entre otras!",DarNick(playerid));
29 ShowPlayerDialog(playerid,Registro,DIALOG_STYLE_INPUT,"{005EF6}REGISTRO",StrGlo,"Registrarme","Salir");
30 }
31 db_free_result(result);
32 return 1;
33}
34CALLBACK: OnGameModeInit()
35{
36 SendRconCommand("hostname "hostname);
37 SendRconCommand("language "idioma);
38 TextDraws();
39 Mapeos();
40 SetGameModeText(gametext);
41 AntiDeAMX();
42 BaseDeDatos = db_open(DaBa);
43 db_query(BaseDeDatos, "CREATE TABLE IF NOT EXISTS `Usuarios` (USERID INTEGER PRIMARY KEY AUTOINCREMENT,`Nick`,`Pass`,`Matadas`, `Muertes`, `Banco`,`Skin`, `GSkin`, `Ip`, `Score`, `Dinero`, `Admin`, `Vip`, `Puntos`)");
44 return 1;
45}
46CALLBACK: OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
47{
48if(dialogid == Registro)
49 {
50 if(response == 1)
51 {
52 if(strlen(inputtext) > 20 || strlen(inputtext) < 6)
53 {
54 SendClientMessage(playerid, -1, ""ROJO"¡Error! "BLANCO"Su "CELESTE"contraseña "BLANCO"debe tener al menos 6 caracteres y menos de 20!");
55 format(StrGlo,sizeof(StrGlo),""BLANCO"Hola {005EF6}%s "BLANCO"esta cuenta no esta "ROJO"registrada\n"BLANCO"Coloca una contraseña y dale a {005EF6}registrarme\n"BLANCO"Se guardaran \""CELESTE"SCORE"BLANCO", "CELESTE"VIP"BLANCO", "CELESTE"MATADAS"BLANCO", "CELESTE"MUERTES"BLANCO", "CELESTE"CARRERAS\" ,"BLANCO"entre otras!",DarNick(playerid));
56 ShowPlayerDialog(playerid,Registro,DIALOG_STYLE_INPUT,"{005EF6}REGISTRO",StrGlo,"Registrarme","Salir");
57 return 1;
58 }
59
60 SendClientMessage(playerid, -1, ""ROJO"* Registrado correctamente");
61
62 new DBResult:result;
63
64 result = db_query(BaseDeDatos, "SELECT * FROM `Usuarios`");
65
66 format(query, sizeof(query), "INSERT INTO `Usuarios` (`Nick`, `Pass`, `Matadas`,`Muertes`, `Skin`, `GSkin`, `Ip`, `Score`, `Dinero`, `Admin`, `Vip`, `Puntos`) \
67 VALUES('%s', '%s', '0' , '0','0' , '0','%s','0', '0', '0', '0', '0')",
68 DB_Escape(DarNick(playerid)),
69 DB_Escape(inputtext),
70 DB_Escape(GetPlayerIP(playerid)));
71
72 db_query(BaseDeDatos, query);
73 db_free_result(result);
74 }
75 if(response == 0)
76 {
77 Kick(playerid);
78 }
79 return 1;
80 }
81
82
83 if(dialogid == Logeo)
84 {
85 new DBResult: result, field[100];
86
87 if(response)
88 {
89 format(query, sizeof(query), "SELECT * FROM `Usuarios` WHERE `Nick` = '%s' AND `Pass` = '%s' COLLATE NOCASE",
90 DB_Escape(DarNick(playerid)),DB_Escape(inputtext));
91
92 result = db_query(BaseDeDatos, query);
93
94 if(db_num_rows(result))
95 {
96 db_get_field_assoc(result, "Ip", field, sizeof(field));
97 if(strcmp(GetPlayerIP(playerid), field, true) != 0)
98 {
99 format(query, sizeof(query), "UPDATE `Usuarios` SET Ip = '%s' WHERE `Nick` = '%s' COLLATE NOCASE",
100 DB_Escape(GetPlayerIP(playerid)),
101 DB_Escape(DarNick(playerid)));
102 db_query(BaseDeDatos, query);
103 }
104 db_get_field_assoc(result, "USERID", field, sizeof(field));
105 Inf[playerid][Userid] = strval(field);
106
107 db_get_field_assoc(result, "Skin", field, sizeof(field));
108 Inf[playerid][SkinID] = strval(field);
109 SetPlayerSkin(playerid, Inf[playerid][SkinID]);
110
111 db_get_field_assoc(result, "GSkin", field, sizeof(field));
112 Inf[playerid][SkinGuardado] = strval(field);
113
114 db_get_field_assoc(result, "Score", field, sizeof(field));
115 Inf[playerid][Score] = strval(field);
116 SetPlayerScore(playerid, Inf[playerid][Score]);
117
118 db_get_field_assoc(result, "Dinero", field, sizeof(field));
119 Inf[playerid][Dinero] = strval(field);
120 ResetPlayerMoney(playerid);
121 GivePlayerMoney(playerid, Inf[playerid][Dinero]);
122
123 db_get_field_assoc(result, "Admin", field, sizeof(field));
124 Inf[playerid][AdminLvL] = strval(field);
125
126 db_get_field_assoc(result, "Vip", field, sizeof(field));
127 Inf[playerid][VipLvL] = strval(field);
128
129 db_get_field_assoc(result, "Puntos", field, sizeof(field));
130 Inf[playerid][Puntos] = strval(field);
131
132 SendClientMessage(playerid, -1, ""ROJO"* Tus estadisticas fueron cargadas correctamente!");
133 PlayerPlaySound(playerid,4201,0.0,0.0,0.0);
134 }
135 else
136 {
137 format(StrGlo,sizeof(StrGlo),"Tu cuenta %s se encuentra registrada\nIngresa la contraseña correcta\no de la contrario seras kickeado!",DarNick(playerid));
138 ShowPlayerDialog(playerid,Logeo,DIALOG_STYLE_INPUT,"{2AEE2A}• Ingreso",StrGlo,"Ingresar","Salir");
139 PlayerPlaySound(playerid,21002,0.0,0.0,0.0);
140 }
141 db_free_result(result);
142 }
143 }
144 return 1;
145}