· 9 years ago · Nov 25, 2016, 12:30 AM
1#include <a_samp>
2#include <a_mysql>
3#define COR_ORKUT 0xC8E1FFAA
4#define COLOR_RED 0xFF0000FF
5#define COLOR_SYSTEM 0xEFEFF7AA
6//Login Sistem
7
8enum {
9 DIALOG_REGISTER,
10 DIALOG_LOGIN
11}
12
13forward jig_OnPlayerConnect(playerid);
14forward jig_OnPlayerLogin(playerid,inputtext[]);
15#define MAX_TRIES 3
16new
17 jDB,
18 jString[256],
19 jName[MAX_PLAYERS][24],
20 bool:jLogged[MAX_PLAYERS],
21 jTries[MAX_PLAYERS]
22;
23
24public OnFilterScriptInit() {
25 jDB = mysql_connect("localhost", "root", "extremex", "");
26 if(mysql_ping(jDB) < 1)
27 return SendRconCommand("unloadfs ExtremeXLogiN");
28
29 print("Conectado ao mysql !");
30 mysql_function_query(jDB, "CREATE TABLE IF NOT EXISTS `jUsers` (`Name` VARCHAR(24) NOT NULL,`Password` VARCHAR(32) NOT NULL, `Skin` INT(11) NOT NULL DEFAULT '0',`Money` INT(11) NOT NULL DEFAULT '0',`Score` INT(11) NOT NULL DEFAULT '0')", false, "", "");
31 return 1;
32}
33
34public OnFilterScriptExit() {
35 mysql_close(jDB);
36 return 1;
37}
38
39public OnPlayerConnect(playerid) {
40 jTries[playerid] = 0;
41 GetPlayerName(playerid, jName[playerid], 24);
42
43 mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s'", jName[playerid]);
44 mysql_function_query(jDB, jString, true, "jig_OnPlayerConnect", "i", playerid);
45 return 1;
46}
47
48public jig_OnPlayerConnect(playerid) {
49 new
50 jRows,
51 jFields
52 ;
53 new Dia, Mes, Ano, Hora, Minuto, Segundo;
54 getdate(Ano, Mes, Dia), gettime(Hora, Minuto, Segundo);
55
56 cache_get_data(jRows, jFields, jDB);
57 if(!jRows) {
58 format(jString, sizeof(jString), "Olá %s Registre-se:",jName[playerid]);
59 format(jString, sizeof(jString), "{F0F0F0}Data e Hora: {969696}» {00FF00}%02d/%02d/%02d - %02d:%02d:%02d\n\n{99CCCC}» Informe sua senha:", Dia, Mes, Ano, Hora, Minuto, Segundo);
60 ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", jString, "Registrar", "Cancelar");
61 return 1;
62 }
63 new SLL[90];
64 format(SLL,90,"{AAAAAA}Nick: {C8C8C8}%s",jName[playerid]);
65 format(jString, sizeof(jString), "{F0F0F0}Data e Hora: {FEFEFE}» {00FF00}%02d/%02d/%02d - %02d:%02d:%02d\n\n{FF1D29}» Registre uma senha:", Dia, Mes, Ano, Hora, Minuto, Segundo);
66 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SLL, jString, "Login", "Cancelar");
67 return 1;
68}
69
70public OnPlayerDisconnect(playerid, reason) {
71 #pragma unused reason
72 if(jLogged[playerid]) {
73 new score = GetPlayerScore(playerid); //Armazena o score em uma variavel
74 new grana = GetPlayerMoney(playerid); //armazena o $$ em uma ' '
75 new query[200], pname[24]; //Cria as variaveis necessarias..
76 GetPlayerName(playerid, pname, 24);
77 format(query, sizeof(query), "UPDATE `jUsers` SET `Skin` = %d, `Money` = %d, Score = %d WHERE `Name` = '%s'", score, grana, jName[playerid]);
78 mysql_function_query(jDB, jString, false, "", "");
79 jLogged[playerid] = false;
80 }
81 return 1;
82}
83
84public OnPlayerSpawn(playerid)
85{
86
87 return (jLogged[playerid]) ? (1) : (Kick(playerid));
88}
89
90public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
91 switch(dialogid) {
92 case DIALOG_REGISTER: {
93 if(!response)
94 Kick(playerid);
95
96 else {
97 if(1 < strlen(inputtext) > 19) {
98 new Dia, Mes, Ano, Hora, Minuto, Segundo;
99 getdate(Ano, Mes, Dia), gettime(Hora, Minuto, Segundo);
100 format(jString, sizeof(jString), "Olá %s Registre-se:",jName[playerid]);
101 format(jString, sizeof(jString), "{F0F0F0}Data e Hora: {969696}» {00FF00}%02d/%02d/%02d - %02d:%02d:%02d\n\n{99CCCC}» Informe sua senha:", Dia, Mes, Ano, Hora, Minuto, Segundo);
102 ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "E", jString, "Registrar", "Sair");
103 } else {
104 mysql_format(jDB, jString, "INSERT INTO `jUsers` (`Name`,`Password`) VALUES ('%s','%s')", jName[playerid], inputtext);
105 mysql_function_query(jDB, jString, false, "", "");
106
107
108 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
109 }
110 }
111 }
112 case DIALOG_LOGIN: {
113 if(!response)
114 Kick(playerid);
115
116 else {
117 mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s' AND `Password` = '%s'", jName[playerid], inputtext);
118 mysql_function_query(jDB, jString, true, "jig_OnPlayerLogin", "i", playerid);
119 }
120 }
121 }
122 return 1;
123}
124
125public jig_OnPlayerLogin(playerid,inputtext[]) {
126 new
127 jRows,
128 jFields
129 ;
130 new Dia, Mes, Ano, Hora, Minuto, Segundo;
131 getdate(Ano, Mes, Dia), gettime(Hora, Minuto, Segundo);
132 new SL[90];
133 cache_get_data(jRows, jFields, jDB);
134 if(!jRows)
135 {
136 ++ jTries[playerid];
137 SendClientMessage(playerid, COLOR_RED, "| CONTA | Senha errada!");
138 if (!strlen(inputtext))
139 {
140 return SendClientMessage(playerid, COLOR_RED, "| CONTA | Digite uma senha!");
141 }
142 if(jTries[playerid] == MAX_TRIES)
143 return format(jTries,sizeof(jTries),"| AVISO | %s foi kickado por errar a senha de sua conta muitas vezes!",jName[playerid]);
144 for(new i, j = GetPlayerPoolSize(); i <= j; ++i)
145 {
146 if(IsPlayerAdmin(i)){ // verifica se o jogador é admin logado na rcon
147 SendClientMessage(i, 0x0000FFAA,jTries);
148 }
149 }
150 if(jTries[playerid] == MAX_TRIES-1)
151 {
152 SendClientMessage(playerid, COLOR_RED, "| CONTA | Próxima vez que você errar será kickado!");
153 }
154 format(SL,90,"{AAAAAA}Nick: {C8C8C8}%s",jName[playerid]);
155 format(jString, sizeof(jString), "{F0F0F0}Data e Hora: {FEFEFE}» {00FF00}%02d/%02d/%02d - %02d:%02d:%02d\n\n{FF1D29}» Registre uma senha:", Dia, Mes, Ano, Hora, Minuto, Segundo);
156 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SL, jString, "Login", "Cancelar");
157 return 1;
158 }
159 jLogged[playerid] = true;
160
161 cache_get_field_content(0, "Money", jString, jDB);
162 ResetPlayerMoney(playerid); GivePlayerMoney(playerid, strval(jString));
163
164 cache_get_field_content(0, "Score", jString, jDB);
165 SetPlayerScore(playerid, strval(jString));
166
167 cache_get_field_content(0, "Skin", jString, jDB);
168
169 SetSpawnInfo(playerid, 0, strval(jString), 1568.2737, -1892.3541, 13.5595, 0.8003, 0, 0, 0, 0, 0, 0);
170 SpawnPlayer(playerid);
171 return 1;
172}