· 4 years ago · Mar 20, 2021, 01:04 PM
1#include <amxmodx>
2#include <amxmisc>
3#include <sqlx>
4#include <cstrike>
5#include <fakemeta>
6#include <hamsandwich>
7
8#define PLUGIN "Regisztrációs menü"
9#define VERSION "1.0"
10#define AUTHOR "Turán*"
11
12#pragma semicolon 1
13
14new Handle:gSQLtuple;
15new gLengthc[4];
16new gPrefixs;
17new gSQLQuery[2048];
18new cvarMenuPrefix, fwd_loadcmd;
19
20enum _:ePlayer{
21 eRegPwStarOff,
22 eLoggedIn,
23 eAccounId,
24 eRegDate,
25 eLastLogDate,
26 eBanned,
27 eMenuType,
28 eAutoLogin,
29};
30new g_sRegName[33][128], g_sRegPw[33][128], g_sRegRePw[33][128], g_sStarPw[33][128], g_sStarRePw[33][128];
31new g_sAutoLoginName[33][128];
32new g_ePlayer[ePlayer][33];
33new const SQL_INFO[][] = {
34 "87.229.115.198",
35 "sw_u761",
36 "qiSn1TZwOk",
37 "sw_server761"
38};
39public plugin_init()
40{
41 register_plugin(PLUGIN, VERSION, AUTHOR);
42
43 gPrefixs = register_cvar("SzerverRegCPrefix", "^4[-BiG BrotherZ- | REG] ^3»");
44 cvarMenuPrefix = register_cvar("SzerverRegMPrefix", "\d[\r-BiG BrotherZ- \y| \wREG\d] \w»");
45
46 fwd_loadcmd=CreateMultiForward("Load_User_Data", ET_IGNORE, FP_CELL);
47
48 register_clcmd("say /regfomenu", "regsys_mainmenu");
49 register_clcmd("say /changepw", "regsys_changecheck");
50 register_clcmd("say /autolog", "regsys_autologcheck");
51
52 register_concmd("reg_accban", "regsys_accban", _, "<accountID> <0 feloldas || 1 bannolas>");
53
54 register_clcmd("type_regname", "regsys_regname");
55 register_clcmd("type_regpassword", "regsys_regpw");
56 register_clcmd("type_reregpassword", "regsys_reregpw");
57
58 register_clcmd("type_changeregpassword", "regsys_changeregpw");
59 register_clcmd("type_changereregpassword", "regsys_changereregpw");
60
61 gLengthc[0] = register_cvar("regsys_regname_lenghtmin", "4");
62 gLengthc[1] = register_cvar("regsys_regname_lenghtmax", "16");
63 gLengthc[2] = register_cvar("regsys_regpw_lenghtmin", "4");
64 gLengthc[3] = register_cvar("regsys_regpw_lenghtmax", "24");
65
66 register_clcmd("type_logname", "regsys_logname");
67 register_clcmd("type_logpassword", "regsys_logpw");
68}
69public regsys_accban(id)
70{
71 if(get_user_flags(id) & ADMIN_IMMUNITY)
72 {
73 new sAccId[32], sBan[32], iAccId, iBan;
74 read_argv(1, sAccId, charsmax(sAccId));
75 read_argv(2, sBan, charsmax(sBan));
76
77 iAccId = str_to_num(sAccId);
78 iBan = str_to_num(sBan);
79
80 if(iAccId < 1)
81 {
82 console_print(id, "Az ID nem lehet 1nél kisebb!");
83 return PLUGIN_HANDLED;
84 }
85 if(iBan < 0 && iBan > 1)
86 {
87 console_print(id, "A banhoz csak egyest és nullást adhatsz meg!");
88 return PLUGIN_HANDLED;
89 }
90
91 if(iBan == 0)
92 {
93 console_print(id, "Sikeresen feloldottad ezt a fiokot.");
94 }
95 else
96 {
97 console_print(id, "Sikeresen bannoltad ezt a fiokot!");
98 }
99 }
100 else
101 console_print(id, "Nincs elérhetőséged ehhez a parancshoz!");
102
103 return PLUGIN_HANDLED;
104}
105public plugin_precache()
106 precache_sound("misc/hangok/koszontelek.wav");
107public plugin_natives()
108{
109 register_native("get_player_loggedIn","native_get_player_loggedIn", 1);
110 register_native("get_player_regdate","native_get_player_regdate", 1);
111 register_native("get_player_lastlogdate","native_get_player_lastlogdate", 1);
112 register_native("get_player_regID","native_get_player_regID", 1);
113}
114public int:native_get_player_loggedIn(id){return int:g_ePlayer[eLoggedIn][id];}
115public int:native_get_player_regdate(id){return int:g_ePlayer[eRegDate][id];}
116public int:native_get_player_lastlogdate(id){return int:g_ePlayer[eLastLogDate][id];}
117public int:native_get_player_regID(id){return int:g_ePlayer[eAccounId][id];}
118public regsys_autologcheck(id)
119{
120 if(!g_ePlayer[eLoggedIn][id])
121 client_print_color(id, print_team_default, "%s^1 Jelentkezz be elsőnek!", get_prefix());
122 else
123 regsys_autologin(id);
124}
125public regsys_changecheck(id)
126{
127 if(!g_ePlayer[eLoggedIn][id])
128 client_print_color(id, print_team_default, "%s^1 Jelentkezz be elsőnek!", get_prefix());
129 else
130 regsys_changepw(id);
131}
132public regsys_changepw(id)
133{
134 new Menustring[256];
135 format(Menustring, charsmax(Menustring), "%s \dJelszó változtatás", get_mprefix());
136 new menu = menu_create(Menustring, "regsys_changepw_h");
137
138 if(g_ePlayer[eRegPwStarOff][id] == 0)
139 {
140 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sStarPw[id]);
141 menu_additem(menu, Menustring, "0", 0);
142 }
143 else
144 {
145 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sRegPw[id]);
146 menu_additem(menu, Menustring, "0", 0);
147 }
148 if(g_ePlayer[eRegPwStarOff][id] == 0)
149 {
150 formatex(Menustring, charsmax(Menustring), strlen(g_sRegRePw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sStarRePw[id]);
151 menu_additem(menu, Menustring, "1", 0);
152 }
153 else
154 {
155 formatex(Menustring, charsmax(Menustring), strlen(g_sRegRePw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sRegRePw[id]);
156 menu_additem(menu, Menustring, "1", 0);
157 }
158
159 formatex(Menustring, charsmax(Menustring), g_ePlayer[eRegPwStarOff][id] == 1 ? "Csillagozás \d»\r Kikapcsolva^n":"Csillagozás \d»\r Bekapcsolva^n");
160 menu_additem(menu, Menustring, "2", 0);
161 formatex(Menustring, charsmax(Menustring), "Jelszó megváltoztatása");
162 menu_additem(menu, Menustring, "3", 0);
163
164 menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
165 menu_display(id, menu, 0);
166}
167public regsys_changepw_h(id, menu, item)
168{
169 if(item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}
170 g_ePlayer[eMenuType][id] = 0;
171 regsys_menuhls(id, item);
172 menu_destroy(menu);
173 return PLUGIN_HANDLED;
174}
175public checkpwchange(id)
176{
177 if(strlen(g_sRegPw[id]) != strlen(g_sRegRePw[id]))
178 {
179 client_print_color(id, print_team_default, "%s ^1A két jelszó nem egyezik!", get_prefix());
180 regsys_changepw(id);
181 }
182 else
183 SQLUpdate(id);
184}
185public regsys_changeregpw(id)
186{
187 new regpw[128];
188 read_args(regpw, charsmax(regpw));
189 remove_quotes(regpw);
190
191 if(strlen(regpw) == 0)
192 {
193 client_print_color(id, print_team_default, "%s^1 Nem írtál be semmit!", get_prefix());
194 regsys_changepw(id);
195 return PLUGIN_HANDLED;
196 }
197
198 if(strlen(regpw) < get_pcvar_num(gLengthc[2]) || strlen(regpw) > get_pcvar_num(gLengthc[3]))
199 {
200 client_print_color(id, print_team_default, "%s ^1A jelszavad minimum %d, és maximum %d karakter lehet!", get_prefix(), get_pcvar_num(gLengthc[2]), get_pcvar_num(gLengthc[3]));
201 regsys_changepw(id);
202 return PLUGIN_HANDLED;
203 }
204 else
205 {
206 ChangetextToStarts(id, strlen(regpw), 0);
207 g_sRegPw[id] = regpw;
208 regsys_changepw(id);
209 }
210 return PLUGIN_CONTINUE;
211}
212public regsys_changereregpw(id)
213{
214 new regpw[128];
215 read_args(regpw, charsmax(regpw));
216 remove_quotes(regpw);
217
218 if(strlen(regpw) == 0)
219 {
220 client_print_color(id, print_team_default, "%s^1 Nem írtál be semmit!", get_prefix());
221 regsys_changepw(id);
222 return PLUGIN_HANDLED;
223 }
224 else
225 {
226 ChangetextToStarts(id, strlen(regpw), 1);
227 g_sRegRePw[id] = regpw;
228 regsys_changepw(id);
229 }
230 return PLUGIN_CONTINUE;
231}
232public SQLUpdate(id)
233{
234 new hashedpw[128];
235 hash_string(g_sRegPw[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
236 formatex(gSQLQuery, charsmax(gSQLQuery), "UPDATE `rregsys` SET regsyspassword = ^"%s^" WHERE id = ^"%d^";", hashedpw, g_ePlayer[eAccounId][id]);
237
238 new Data[2];
239 Data[0] = id;
240 Data[1] = get_user_userid(id);
241
242 SQL_ThreadQuery(gSQLtuple, "SQLUpdate2_thr", gSQLQuery, Data, 2);
243}
244public SQLUpdate2_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
245{
246 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
247 {
248 log_amx("%s", Error);
249 return;
250 }
251 new id = Data[0];
252
253 if(Data[1] != get_user_userid(id))
254 return;
255
256 if(g_ePlayer[eLoggedIn][id])
257 client_print_color(id, print_team_default, "%s^1 Sikeresen megváltoztattad a jelszavad!", get_prefix());
258}
259public SQL_updateLogDate(id)
260{
261 g_ePlayer[eLastLogDate][id] = get_systime();
262 formatex(gSQLQuery, charsmax(gSQLQuery), "UPDATE `rregsys` SET regsyslastlogdate = ^"%d^" WHERE id = ^"%d^";", g_ePlayer[eLastLogDate][id], g_ePlayer[eAccounId][id]);
263 SQL_ThreadQuery(gSQLtuple, "SQLUpdate_thr", gSQLQuery);
264}
265public SQLUpdate_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
266{
267 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED){log_amx("%s", Error);return;}
268}
269public regsys_mainmenu(id)
270{
271 new Menustring[256];
272 format(Menustring, charsmax(Menustring), "%s Regisztrálj/lépj be!", get_mprefix());
273 new menu = menu_create(Menustring, "regsys_mainmenu_h");
274
275 formatex(Menustring, charsmax(Menustring), "Regisztrálok");
276 menu_additem(menu, Menustring, "0", 0);
277 formatex(Menustring, charsmax(Menustring), "Belépek^n");
278 menu_additem(menu, Menustring, "1", 0);
279
280 formatex(Menustring, charsmax(Menustring), "\dHa bármi problémád van jelezzed a \wTulajdonosnak\d vagy a \wFejlesztőnek\d!");
281 menu_addtext2(menu, Menustring);
282 formatex(Menustring, charsmax(Menustring), "\dTovábbi infó\w /info");
283 menu_addtext2(menu, Menustring);
284 formatex(Menustring, charsmax(Menustring), "\dJelenleg \wHírdető Admin TGF\d van.");
285 menu_addtext2(menu, Menustring);
286 formatex(Menustring, charsmax(Menustring), "\dA szerver tulajdonosai: \wRaiN \dés\w Laciasd");
287 menu_addtext2(menu, Menustring);
288 formatex(Menustring, charsmax(Menustring), "\dA szervert fejleszti: \wTurán\r*\d(HellEnergY)");
289 menu_addtext2(menu, Menustring);
290
291 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
292 menu_display(id, menu, 0);
293}
294public regsys_mainmenu_h(id, menu, item)
295{
296 if(item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}
297 g_ePlayer[eMenuType][id] = 1;
298 regsys_menuhls(id, item);
299 menu_destroy(menu);
300 return PLUGIN_HANDLED;
301}
302public plugin_cfg()
303{
304 gSQLtuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3]);
305
306 formatex(gSQLQuery, charsmax(gSQLQuery), "CREATE TABLE IF NOT EXISTS `rregsys` (`User_id` INT(11) NOT NULL, `regsysname` varchar(128) NOT NULL,`regsyspassword` varchar(128) NOT NULL, `regsysregdate` INT(11) NOT NULL, `regsyslastlogdate` INT(11) NOT NULL, `AccBanned` INT(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
307 SQL_ThreadQuery(gSQLtuple,"CreateTableThr", gSQLQuery);
308}
309public CreateTableThr(FailState, Handle:Query, Error[], Errcode, Data[])
310{
311 if(FailState == TQUERY_CONNECT_FAILED)
312 set_fail_state("[HIBA] Nem lehet csatlakozni az adatbazishoz!");
313 else if(FailState == TQUERY_QUERY_FAILED)
314 set_fail_state("Query Error");
315 if(Errcode)
316 log_amx("[HIBA] Hiba: %s",Error);
317}
318public regsys_regmenu(id)
319{
320 new Menustring[256];
321 format(Menustring, charsmax(Menustring), "%s Regisztrálás", get_mprefix());
322 new menu = menu_create(Menustring, "regsys_regmenu_h");
323
324 formatex(Menustring, charsmax(Menustring), strlen(g_sRegName[id]) == 0 ? "Felhasználónév \d» \rÜres":"Felhasználónév \d» \r%s", g_sRegName[id]);
325 menu_additem(menu, Menustring, "0", 0);
326 if(g_ePlayer[eRegPwStarOff][id] == 0)
327 {
328 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sStarPw[id]);
329 menu_additem(menu, Menustring, "1", 0);
330 }
331 else
332 {
333 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sRegPw[id]);
334 menu_additem(menu, Menustring, "1", 0);
335 }
336 if(g_ePlayer[eRegPwStarOff][id] == 0)
337 {
338 formatex(Menustring, charsmax(Menustring), strlen(g_sRegRePw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sStarRePw[id]);
339 menu_additem(menu, Menustring, "2", 0);
340 }
341 else
342 {
343 formatex(Menustring, charsmax(Menustring), strlen(g_sRegRePw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sRegRePw[id]);
344 menu_additem(menu, Menustring, "2", 0);
345 }
346 formatex(Menustring, charsmax(Menustring), g_ePlayer[eRegPwStarOff][id] == 1 ? "Csillagozás \d»\r Kikapcsolva^n":"Csillagozás \d»\r Bekapcsolva^n");
347 menu_additem(menu, Menustring, "3", 0);
348 formatex(Menustring, charsmax(Menustring), "Regisztrálok");
349 menu_additem(menu, Menustring, "4", 0);
350
351 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
352 menu_display(id, menu, 0);
353}
354public regsys_regmenu_h(id, menu, item)
355{
356 if(item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}
357 g_ePlayer[eMenuType][id] = 2;
358 regsys_menuhls(id, item);
359 menu_destroy(menu);
360 return PLUGIN_HANDLED;
361}
362public checkpw(id)
363{
364 if(strlen(g_sRegPw[id]) != strlen(g_sRegRePw[id]))
365 {
366 client_print_color(id, print_team_default, "%s ^1A két jelszó nem egyezik meg!", get_prefix());
367 regsys_regmenu(id);
368 }
369 else
370 {
371 if(strlen(g_sRegName[id]) == 0 || strlen(g_sRegPw[id]) == 0 || strlen(g_sRegRePw[id]) == 0)
372 {
373 client_print_color(id, print_team_default, "%s ^1Valamelyik mezőt üresen hagytad!", get_prefix());
374 regsys_regmenu(id);
375 }
376 else
377 SQL_checkfh(id);
378 }
379}
380public regsys_regname(id)
381{
382 new regname[128];
383 read_args(regname, charsmax(regname));
384 remove_quotes(regname);
385
386 if(strlen(regname) == 0)
387 {
388 client_print_color(id, print_team_default, "%s ^1Nem írtál be semmit!", get_prefix());
389 regsys_regmenu(id);
390 return PLUGIN_HANDLED;
391 }
392 if(strlen(regname) < get_pcvar_num(gLengthc[0]) || strlen(regname) > get_pcvar_num(gLengthc[1]))
393 {
394 client_print_color(id, print_team_default, "%s ^1A neved minimum %d, és maximum %d karakter lehet!", get_prefix(), get_pcvar_num(gLengthc[0]), get_pcvar_num(gLengthc[1]));
395 regsys_regmenu(id);
396 return PLUGIN_HANDLED;
397 }
398 else
399 {
400 g_sRegName[id] = regname;
401 regsys_regmenu(id);
402 }
403 return PLUGIN_CONTINUE;
404}
405public regsys_regpw(id)
406{
407 new regpw[128];
408 read_args(regpw, charsmax(regpw));
409 remove_quotes(regpw);
410
411 if(strlen(regpw) == 0)
412 {
413 client_print_color(id, print_team_default, "%s ^1Nem írtál be semmit!", get_prefix());
414 regsys_regmenu(id);
415 return PLUGIN_HANDLED;
416 }
417
418 if(strlen(regpw) < get_pcvar_num(gLengthc[2]) || strlen(regpw) > get_pcvar_num(gLengthc[3]))
419 {
420 client_print_color(id, print_team_default, "%s ^1A jelszavad minimum %d, és maximum %d karakter lehet!", get_prefix(), get_pcvar_num(gLengthc[2]), get_pcvar_num(gLengthc[3]));
421 regsys_regmenu(id);
422 return PLUGIN_HANDLED;
423 }
424 else
425 {
426 ChangetextToStarts(id, strlen(regpw), 0);
427 g_sRegPw[id] = regpw;
428 regsys_regmenu(id);
429 }
430 return PLUGIN_CONTINUE;
431}
432public regsys_reregpw(id)
433{
434 new regpw[128];
435 read_args(regpw, charsmax(regpw));
436 remove_quotes(regpw);
437
438 if(strlen(regpw) == 0)
439 {
440 client_print_color(id, print_team_default, "%s ^1Kihagytál egy mezőt!", get_prefix());
441 regsys_regmenu(id);
442 return PLUGIN_HANDLED;
443 }
444 else
445 {
446 ChangetextToStarts(id, strlen(regpw), 1);
447 g_sRegRePw[id] = regpw;
448 regsys_regmenu(id);
449 }
450 return PLUGIN_CONTINUE;
451}
452public SQL_checkfh(id)
453{
454 formatex(gSQLQuery, charsmax(gSQLQuery), "SELECT * FROM `rregsys` WHERE `regsysname`='%s';", g_sRegName[id]);
455
456 new Data[2];
457 Data[0] = id;
458 Data[1] = get_user_userid(id);
459
460 SQL_ThreadQuery(gSQLtuple, "SQL_checkfh_thr", gSQLQuery, Data, 2);
461}
462public SQL_checkfh_thr(FailState, Handle:Query, Error[], Errcode,Data[], DataSize)
463{
464 if(FailState == TQUERY_CONNECT_FAILED)
465 set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
466 else if(FailState == TQUERY_QUERY_FAILED)
467 set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!");
468 if(Errcode)
469 log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
470
471 new id = Data[0];
472
473 if (Data[1] != get_user_userid(id))
474 return;
475
476 new RowsFound = SQL_NumRows(Query);
477
478 if(RowsFound > 0)
479 {
480 client_print_color(id, print_team_default, "%s ^1Ez a név már foglalt!", get_prefix());
481 regsys_regmenu(id);
482 }
483 else SQL_insert(id);
484}
485public SQL_insert(id)
486{
487 new hashedpw[128];
488 hash_string(g_sRegPw[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
489
490 g_ePlayer[eRegDate][id] = get_systime();
491 formatex(gSQLQuery, charsmax(gSQLQuery), "INSERT INTO `rregsys` (`regsysname`, `regsyspassword`, `regsysregdate`, `regsyslastlogdate`, `AccBanned`) VALUES('%s', '%s', '%d', '%d', '%d')", g_sRegName[id], hashedpw, g_ePlayer[eRegDate][id], g_ePlayer[eLastLogDate][id], g_ePlayer[eBanned][id]);
492
493 new Data[2];
494 Data[0] = id;
495 Data[1] = get_user_userid(id);
496
497 SQL_ThreadQuery(gSQLtuple, "SQL_insert_thr", gSQLQuery, Data, 2);
498}
499public SQL_insert_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
500{
501 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
502 {
503 log_amx("%s", Error);
504 return;
505 }
506
507 new id = Data[0];
508
509 if(Data[1] != get_user_userid(id))
510 return;
511
512 set_task(5.0, "RegWait", id);
513 client_print_color(id, print_team_default, "%s ^1Regisztrálás folyamatban...", get_prefix());
514}
515public RegWait(id)
516{
517 client_print_color(id, print_team_default, "%s ^1Sikeresen regisztráltál a szerverre!", get_prefix());
518 regsys_logmenu(id);
519}
520public regsys_logmenu(id)
521{
522 new Menustring[256];
523 format(Menustring, charsmax(Menustring), "%s \wBejelentkezés", get_mprefix());
524 new menu = menu_create(Menustring, "regsys_logmenu_h");
525
526 formatex(Menustring, charsmax(Menustring), strlen(g_sRegName[id]) == 0 ? "Felhasználónév \d» \rÜres":"Felhasználónév \d»\r %s", g_sRegName[id]);
527 menu_additem(menu, Menustring, "0", 0);
528 if(g_ePlayer[eRegPwStarOff][id] == 0)
529 {
530 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sStarPw[id]);
531 menu_additem(menu, Menustring, "1", 0);
532 }
533 else
534 {
535 formatex(Menustring, charsmax(Menustring), strlen(g_sRegPw[id]) == 0 ? "Jelszó \d» \rÜres":"Jelszó \d» \r%s", g_sRegPw[id]);
536 menu_additem(menu, Menustring, "1", 0);
537 }
538 formatex(Menustring, charsmax(Menustring), g_ePlayer[eRegPwStarOff][id] == 1 ? "Csillagozás \d»\r Kikapcsolva^n":"Csillagozás \d»\r Bekapcsolva^n");
539 menu_additem(menu, Menustring, "2", 0);
540
541 formatex(Menustring, charsmax(Menustring), "Belépek");
542 menu_additem(menu, Menustring, "3", 0);
543
544 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
545 menu_display(id, menu, 0);
546}
547public regsys_logmenu_h(id, menu, item)
548{
549 if(item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}
550 g_ePlayer[eMenuType][id] = 3;
551 regsys_menuhls(id, item);
552 menu_destroy(menu);
553 return PLUGIN_HANDLED;
554}
555public regsys_menuhls(id, item)
556{
557 switch(g_ePlayer[eMenuType][id])
558 {
559 case 0:
560 {
561 switch(item)
562 {
563 case 0: client_cmd(id, "messagemode type_changeregpassword");
564 case 1: client_cmd(id, "messagemode type_changereregpassword");
565 case 3: checkpwchange(id);
566 case 2:
567 {
568 if(g_ePlayer[eRegPwStarOff][id] == 0){g_ePlayer[eRegPwStarOff][id] = 1;regsys_changepw(id);}
569 else{g_ePlayer[eRegPwStarOff][id] = 0;regsys_changepw(id);}
570 }
571 }
572 }
573 case 1:
574 {
575 switch(item)
576 {
577 case 0: regsys_regmenu(id);
578 case 1: regsys_logmenu(id);
579 }
580 }
581 case 2:
582 {
583 switch(item)
584 {
585 case 0: client_cmd(id, "messagemode type_regname");
586 case 1: client_cmd(id, "messagemode type_regpassword");
587 case 2: client_cmd(id, "messagemode type_reregpassword");
588 case 3:
589 {
590 if(g_ePlayer[eRegPwStarOff][id] == 0){g_ePlayer[eRegPwStarOff][id] = 1;regsys_regmenu(id);}
591 else{g_ePlayer[eRegPwStarOff][id] = 0;regsys_regmenu(id);}
592 }
593 case 4: checkpw(id);
594 }
595 }
596 case 3:
597 {
598 switch(item)
599 {
600 case 0: client_cmd(id, "messagemode type_logname");
601 case 1: client_cmd(id, "messagemode type_logpassword");
602 case 2:
603 {
604 if(g_ePlayer[eRegPwStarOff][id] == 0){g_ePlayer[eRegPwStarOff][id] = 1;regsys_logmenu(id);}
605 else{g_ePlayer[eRegPwStarOff][id] = 0;regsys_logmenu(id);}
606 }
607 case 3: SQL_load(id);
608 }
609 }
610 case 4:
611 {
612 switch(item)
613 {
614 case 0:
615 {
616 if(g_ePlayer[eAutoLogin][id] == 0)
617 {
618 g_ePlayer[eAutoLogin][id] = 1;
619 set_user_info(id, "BigUsername", g_sRegName[id]);
620 set_user_info(id, "BigPassword", g_sRegPw[id]);
621 client_cmd(id, "setinfo ^"BigUsername^" ^"%s^"", g_sRegName[id]);
622 client_cmd(id, "setinfo ^"BigPassword^" ^"%s^"", g_sRegPw[id]);
623 regsys_autologin(id);
624 }
625 else
626 {
627 new sTemporary[128];
628 sTemporary = "valami";
629
630 g_ePlayer[eAutoLogin][id] = 0;
631 set_user_info(id, "BigUsername", sTemporary);
632 set_user_info(id, "BigPassword", sTemporary);
633 client_cmd(id, "setinfo ^"BigUsername^" ^"%s^"", sTemporary);
634 client_cmd(id, "setinfo ^"BigPassword^" ^"%s^"", sTemporary);
635 regsys_autologin(id);
636 }
637 }
638 }
639 }
640 }
641}
642public regsys_autologin(id)
643{
644 new Menustring[256];
645 format(Menustring, charsmax(Menustring), "%s \dAutómatikus belépés", get_mprefix());
646 new menu = menu_create(Menustring, "regsys_autologin_h");
647
648 formatex(Menustring, charsmax(Menustring), g_ePlayer[eAutoLogin][id] == 0 ? "Autómatikus belépés \d»\r Kikapcsolva":"Autómatikus belépés \d»\r Bekapcsolva");
649 menu_additem(menu, Menustring, "0", 0);
650
651 menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
652 menu_display(id, menu, 0);
653}
654public regsys_autologin_h(id, menu, item)
655{
656 if(item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}
657 g_ePlayer[eMenuType][id] = 4;
658 regsys_menuhls(id, item);
659 menu_destroy(menu);
660 return PLUGIN_HANDLED;
661}
662public regsys_logname(id)
663{
664 new logname[128];
665 read_args(logname, charsmax(logname));
666 remove_quotes(logname);
667
668 if(strlen(logname) == 0)
669 {
670 client_print_color(id, print_team_default, "%s ^1Kihagytál egy mezőt!", get_prefix());
671 regsys_logmenu(id);
672 return PLUGIN_HANDLED;
673 }
674 else
675 {
676 g_sRegName[id] = logname;
677 regsys_logmenu(id);
678 }
679 return PLUGIN_CONTINUE;
680}
681public regsys_logpw(id)
682{
683 new logpw[128];
684 read_args(logpw, charsmax(logpw));
685 remove_quotes(logpw);
686
687 if(strlen(logpw) == 0)
688 {
689 client_print_color(id, print_team_default, "%s ^1Kihagytál egy mezőt!", get_prefix());
690 regsys_logmenu(id);
691 return PLUGIN_HANDLED;
692 }
693 else
694 {
695 g_sRegPw[id] = logpw;
696 ChangetextToStarts(id, strlen(logpw), 0);
697 regsys_logmenu(id);
698 }
699 return PLUGIN_CONTINUE;
700}
701public SQL_load(id)
702{
703 new hashedpw[128];
704 hash_string(g_sRegPw[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
705 formatex(gSQLQuery, charsmax(gSQLQuery), "SELECT * FROM `rregsys` WHERE regsysname = ^"%s^" AND regsyspassword = ^"%s^";", g_sRegName[id], hashedpw);
706
707 new Data[2];
708 Data[0] = id;
709 Data[1] = get_user_userid(id);
710
711 SQL_ThreadQuery(gSQLtuple, "SQL_load_thr", gSQLQuery, Data, 2);
712}
713public SQL_load_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
714{
715 if(FailState == TQUERY_CONNECT_FAILED)
716 set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
717 else if(FailState == TQUERY_QUERY_FAILED)
718 set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
719 if(Errcode)
720 log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
721
722 new id = Data[0];
723 if(get_user_userid(id) != Data[1])
724 return;
725 new sName[MAX_AUTHID_LENGTH];
726 get_user_name(id, sName, charsmax(sName));
727
728 if(SQL_NumRows(Query) > 0)
729 {
730 new itaken = 0;
731 if(g_ePlayer[eAccounId][id] == SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "id")))
732 {
733 for(new i = 1; i < 32; i++)
734 {
735 itaken = 1;
736 g_ePlayer[eAccounId][id] = 0;
737 client_print_color(id, print_team_default, "%s ^1Valaki már online ezzel a névvel!", get_prefix());
738 break;
739 }
740 }
741
742 if(itaken == 1)
743 return;
744
745 g_ePlayer[eAccounId][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "id"));
746 g_ePlayer[eRegDate][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsysregdate"));
747 g_ePlayer[eLastLogDate][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsyslastlogdate"));
748 g_ePlayer[eBanned][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AccBanned"));
749 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsysname"), g_sAutoLoginName[id], charsmax(g_sAutoLoginName[]));
750
751 if(g_ePlayer[eBanned][id] == 1)
752 {
753 g_sRegName[id] = "";
754 g_sRegPw[id] = "";
755 g_sRegRePw[id] = "";
756 g_sStarPw[id] = "";
757 g_sStarRePw[id] = "";
758 g_ePlayer[eRegDate][id] = 0;
759 g_ePlayer[eLastLogDate][id] = 0;
760 g_ePlayer[eLoggedIn][id] = 0;
761 g_ePlayer[eAccounId][id] = 0;
762 g_ePlayer[eRegPwStarOff][id] = 0;
763 g_ePlayer[eBanned][id] = 0;
764 g_ePlayer[eMenuType][id] = 0;
765
766 server_cmd("kick #%d ^"Ez az account bannolva van, regisztrálj másikat!^"", get_user_userid(id));
767 return;
768 }
769
770 SQL_updateLogDate(id);
771 g_ePlayer[eLoggedIn][id] = 1;
772 client_print_color(0, print_team_default, "^4%s^3 %s^1^3(ID: #%d) ^1bejelentkezett a szerverre!", get_prefix(), sName, g_ePlayer[eAccounId][id]);
773
774 new fwdloadtestret;
775 ExecuteForward(fwd_loadcmd,fwdloadtestret,id);
776 client_cmd(id, "spk misc/hangok/koszontelek.wav");
777 }
778 else
779 {
780 client_print_color(id, print_team_default, "%s ^1Nem sikerült belépned, rossz jelszó vagy felhasználónév!", get_prefix());
781 return;
782 }
783}
784public client_authorized(id)
785{
786 if(is_user_bot(id))
787 return PLUGIN_HANDLED;
788
789 g_sRegName[id] = "";
790 g_sRegPw[id] = "";
791 g_sRegRePw[id] = "";
792 g_sStarPw[id] = "";
793 g_sStarRePw[id] = "";
794 g_ePlayer[eRegDate][id] = 0;
795 g_ePlayer[eLastLogDate][id] = 0;
796 g_ePlayer[eLoggedIn][id] = 0;
797 g_ePlayer[eAccounId][id] = 0;
798 g_ePlayer[eRegPwStarOff][id] = 0;
799 g_ePlayer[eBanned][id] = 0;
800 g_ePlayer[eMenuType][id] = 0;
801 g_ePlayer[eAutoLogin][id] = 0;
802
803 set_task(7.0, "Autologin", id);
804
805 return PLUGIN_HANDLED;
806}
807public Autologin(id)
808{
809 new sTemporary[128];
810 sTemporary = "valami";
811
812 get_user_info(id, "BigUsername", g_sRegName[id], charsmax(g_sRegName[]));
813 get_user_info(id, "BigPassword", g_sRegPw[id], charsmax(g_sRegPw[]));
814
815 if(strlen(g_sRegName[id]) == strlen(sTemporary))
816 g_ePlayer[eAutoLogin][id] = 0;
817 else
818 g_ePlayer[eAutoLogin][id] = 1;
819
820 SQL_load(id);
821}
822public client_disconnected(id)
823{
824 if(is_user_bot(id))
825 return PLUGIN_HANDLED;
826
827 g_sRegName[id] = "";
828 g_sRegPw[id] = "";
829 g_sRegRePw[id] = "";
830 g_sStarPw[id] = "";
831 g_sStarRePw[id] = "";
832 g_ePlayer[eRegDate][id] = 0;
833 g_ePlayer[eLastLogDate][id] = 0;
834 g_ePlayer[eLoggedIn][id] = 0;
835 g_ePlayer[eAccounId][id] = 0;
836 g_ePlayer[eRegPwStarOff][id] = 0;
837 g_ePlayer[eBanned][id] = 0;
838 g_ePlayer[eMenuType][id] = 0;
839 g_ePlayer[eAutoLogin][id] = 0;
840
841 return PLUGIN_HANDLED;
842}
843get_prefix(){
844 new sPrefix[64];
845 get_pcvar_string(gPrefixs, sPrefix, charsmax(sPrefix));
846 return sPrefix;
847}
848get_mprefix(){
849 new sPrefix1[64];
850 get_pcvar_string(cvarMenuPrefix, sPrefix1, charsmax(sPrefix1));
851 return sPrefix1;
852}
853public ChangetextToStarts(id, ammount, which)
854{
855 static Length[128];
856 if(which == 0)
857 {
858 g_sStarPw[id] = "";
859 for(new i = 0; i < ammount; i++)
860 {
861 formatex(Length, charsmax(Length), "%s*", g_sStarPw[id]);
862 g_sStarPw[id] = Length;
863 }
864 }
865 else
866 {
867 g_sStarRePw[id] = "";
868 for(new i = 0; i < ammount; i++)
869 {
870 formatex(Length, charsmax(Length), "%s*", g_sStarRePw[id]);
871 g_sStarRePw[id] = Length;
872 }
873 }
874}