· 4 years ago · Feb 27, 2021, 06:04 PM
1#include <amxmodx>
2#include <amxmisc>
3#include <sqlx>
4#include <cstrike>
5#include <fakemeta>
6#include <hamsandwich>
7#include <celltrie>
8
9#define PLUGIN "Plugin"
10#define VERSION "1.0"
11#define AUTHOR "Umkown"
12
13////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
14new Handle:gSQLtuple;
15new gLengthc[4];
16new gPrefixs;
17new gRegsysName[33][128], gRegsysPassword[33][128], gRegsysrePassword[33][128], gRegsysPasswordStars[33][2][128];
18new bool:gLoggedIn[33];
19new gSQLQuery[512], gAccountid[33], bool:gShowAccName[33], gId[33], gRegDate[33], gLastLogDate[33];
20new cvarMenuPrefix, fwd_loadcmd;
21////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
22new const SQL_INFO[][] = {
23 "87.229.115.198",
24 "sw_u761",
25 "qiSn1TZwOk",
26 "sw_server761"
27}
28////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
29public plugin_init()
30{
31 register_plugin(PLUGIN, VERSION, AUTHOR);
32
33 gPrefixs = register_cvar("Szeroprefixasdss", "^4[-BiG BrotherZ- REG] ^3»");
34 cvarMenuPrefix = register_cvar("asd66", "\w[-BiG BrotherZ-]\d AWP v5.0");
35
36 fwd_loadcmd=CreateMultiForward("Load_User_Data", ET_IGNORE, FP_CELL);
37
38 register_clcmd("say /regfomenu", "regsys_mainmenu");
39
40 register_clcmd("say /changepw", "regsys_changecheck");
41
42 register_clcmd("type_regname", "regsys_regname");
43 register_clcmd("type_regpassword", "regsys_regpw");
44 register_clcmd("type_reregpassword", "regsys_reregpw");
45
46 register_clcmd("type_changeregpassword", "regsys_changeregpw");
47 register_clcmd("type_changereregpassword", "regsys_changereregpw");
48
49 gLengthc[0] = register_cvar("regsys_regname_lenghtmin", "4");
50 gLengthc[1] = register_cvar("regsys_regname_lenghtmax", "16");
51
52 gLengthc[2] = register_cvar("regsys_regpw_lenghtmin", "4");
53 gLengthc[3] = register_cvar("regsys_regpw_lenghtmax", "24");
54
55 //gTimer = register_cvar("regsys_regorlogtimer", "360");
56
57 //register_forward(FM_PlayerPreThink, "PlayerPreThink");
58 //gScreenFade = get_user_msgid("ScreenFade")
59
60 register_clcmd("type_logname", "regsys_logname");
61 register_clcmd("type_logpassword", "regsys_logpw");
62
63 register_dictionary("Regsys.txt");
64
65 //gSyncHud = CreateHudSyncObj();
66}
67public plugin_precache()
68{
69 precache_sound("misc/hangok/koszontelek.wav");
70}
71////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
72/*public LoginHud(id)
73{
74 if(!gLoggedIn[id] && gTimerLogOrReg != 0)
75 {
76 set_hudmessage(random(255), random(255), random(255), -1.0, -1.0, 0, 0.02, 1.0,_,_, -1)
77 ShowSyncHudMsg(id, gSyncHud, "%L", LANG_SERVER, "HUD_REGORLEG", gTimerLogOrReg);
78 gTimerLogOrReg--;
79 set_task(1.0, "LoginHud", id);
80 }
81 else
82 {
83 if(gTimerLogOrReg == 0)
84 {
85 if(task_exists(id))
86 remove_task(id);
87
88 console_print(id, "**Nem sikerult idoben regisztralni/bejelentkezni!**")
89 server_cmd("kick #%d", get_user_userid(id));
90 }
91
92 if(task_exists(id))
93 remove_task(id);
94 }
95}*/
96public plugin_natives()
97{
98 register_native("get_player_loggedIn","native_get_player_loggedIn", 1);
99 register_native("get_player_regdate","native_get_player_regdate", 1);
100 register_native("get_player_lastlogdate","native_get_player_lastlogdate", 1);
101 register_native("get_player_regID","native_get_player_regID", 1);
102}
103public bool:native_get_player_loggedIn(id)
104{
105 return bool:gLoggedIn[id];
106}
107public int:native_get_player_regdate(id)
108{
109 return int:gRegDate[id];
110}
111public int:native_get_player_lastlogdate(id)
112{
113 return int:gLastLogDate[id];
114}
115public int:native_get_player_regID(id)
116{
117 return int:gId[id];
118}
119public regsys_changecheck(id)
120{
121 if(!gLoggedIn[id])
122 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_AFTERCHANGE");
123 else
124 regsys_changepw(id);
125}
126////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
127public ChangetextToStarts(id, ammount, which)
128{
129 static Length[128];
130 gRegsysPasswordStars[id][which] = "";
131
132 for(new i = 0; i < ammount; i++)
133 {
134 formatex(Length, charsmax(Length), "%s*", gRegsysPasswordStars[id][which]);
135 gRegsysPasswordStars[id][which] = Length;
136 }
137}
138public regsys_changepw(id)
139{
140 new Menustring[256];
141 format(Menustring, charsmax(Menustring), "%s %L", get_mprefix(), LANG_SERVER, "MENU_CHANGEPW");
142 new menu = menu_create(Menustring, "regsys_changepw_h");
143
144 if(strlen(gRegsysPassword[id]) == 0)
145 {
146 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOPASSWORD");
147 menu_additem(menu, Menustring, "0", 0);
148 }
149 else
150 {
151 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_PW0", gRegsysPasswordStars[id][0]);
152 menu_additem(menu, Menustring, "0", 0);
153 }
154 if(strlen(gRegsysrePassword[id]) == 0)
155 {
156 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOPASSWORD");
157 menu_additem(menu, Menustring, "1", 0);
158 }
159 else
160 {
161 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_PW1", gRegsysPasswordStars[id][1]);
162 menu_additem(menu, Menustring, "1", 0);
163 }
164
165 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_CHANGEPW1");
166 menu_additem(menu, Menustring, "2", 0);
167
168 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_EXIT");
169 menu_setprop(menu, MPROP_EXITNAME, Menustring);
170
171 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
172 menu_display(id, menu, 0);
173}
174public regsys_changepw_h(id, menu, item)
175{
176 if(item == MENU_EXIT)
177 {
178 menu_destroy(menu);
179 return PLUGIN_HANDLED;
180 }
181 new command[6], name[64], access, callback;
182 menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
183
184 switch(item)
185 {
186 case 0:{ client_cmd(id, "messagemode type_changeregpassword");}
187 case 1:{ client_cmd(id, "messagemode type_changereregpassword");}
188 case 2:{ checkpwchange(id);}
189
190 }
191
192 menu_destroy(menu);
193 return PLUGIN_HANDLED;
194}
195public checkpwchange(id)
196{
197 if(strlen(gRegsysPassword[id]) != strlen(gRegsysrePassword[id]))
198 {
199 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_PASSWORDDMATCH");
200 regsys_changepw(id);
201 }
202 else
203 SQLUpdate(id);
204}
205public regsys_changeregpw(id)
206{
207 new regpw[128];
208 read_args(regpw, charsmax(regpw));
209 remove_quotes(regpw);
210
211 if(strlen(regpw) == 0)
212 {
213 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYPW");
214 regsys_changepw(id);
215 return PLUGIN_HANDLED;
216 }
217
218 if(strlen(regpw) < get_pcvar_num(gLengthc[2]) || strlen(regpw) > get_pcvar_num(gLengthc[3]))
219 {
220 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_PWMINMAX", get_pcvar_num(gLengthc[2]), get_pcvar_num(gLengthc[3]));
221 regsys_changepw(id);
222 return PLUGIN_HANDLED;
223 }
224 else
225 {
226 ChangetextToStarts(id, strlen(regpw), 0);
227 gRegsysPassword[id] = regpw;
228 regsys_changepw(id);
229 }
230 return PLUGIN_CONTINUE;
231}
232public regsys_changereregpw(id)
233{
234 new regpw[128];
235 read_args(regpw, charsmax(regpw));
236 remove_quotes(regpw);
237
238 if(strlen(regpw) == 0)
239 {
240 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYREPW");
241 regsys_changepw(id);
242 return PLUGIN_HANDLED;
243 }
244 else
245 {
246 ChangetextToStarts(id, strlen(regpw), 1);
247 gRegsysrePassword[id] = regpw;
248 regsys_changepw(id);
249 }
250 return PLUGIN_CONTINUE;
251}
252public SQLUpdate(id)
253{
254 new hashedpw[128];
255 hash_string(gRegsysPassword[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
256 formatex(gSQLQuery, charsmax(gSQLQuery), "UPDATE `rregsys` SET regsyspassword = ^"%s^" WHERE id = ^"%d^";", hashedpw, gId[id])
257
258 new Data[2];
259 Data[0] = id;
260 Data[1] = get_user_userid(id);
261
262 SQL_ThreadQuery(gSQLtuple, "SQLUpdate2_thr", gSQLQuery, Data, 2);
263}
264public SQLUpdate2_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
265{
266 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
267 {
268 log_amx("%s", Error);
269 return;
270 }
271 new id = Data[0];
272
273 if(Data[1] != get_user_userid(id))
274 return;
275
276 if(gLoggedIn[id])
277 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_SUCCESFULLPWCHANGE");
278}
279public SQL_updateLogDate(id)
280{
281 gLastLogDate[id] = get_systime();
282 formatex(gSQLQuery, charsmax(gSQLQuery), "UPDATE `rregsys` SET regsyslastlogdate = ^"%d^" WHERE id = ^"%d^";", gLastLogDate[id], gId[id])
283
284 SQL_ThreadQuery(gSQLtuple, "SQLUpdate_thr", gSQLQuery);
285}
286public SQLUpdate_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
287{
288 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
289 {
290 log_amx("%s", Error);
291 return;
292 }
293}
294////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
295public regsys_mainmenu(id)
296{
297 new Menustring[256];
298 format(Menustring, charsmax(Menustring), "%s %L", get_mprefix(), LANG_SERVER, "MENU_MAINMENU");
299 new menu = menu_create(Menustring, "regsys_mainmenu_h");
300
301 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_REG");
302 menu_additem(menu, Menustring, "0", 0);
303 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_LOG");
304 menu_additem(menu, Menustring, "1", 0);
305
306 new ONOFF[32];
307 formatex(ONOFF, charsmax(ONOFF), gShowAccName[id] == false ? "\dKI":"\rBE")
308 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_MAINMENU1", ONOFF);
309 menu_additem(menu, Menustring, "2", 0);
310
311 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
312 menu_display(id, menu, 0);
313}
314public regsys_mainmenu_h(id, menu, item)
315{
316 new command[6], name[64], access, callback;
317 menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
318
319 switch(item)
320 {
321 case 0:{ regsys_regmenu(id);}
322 case 1:{ regsys_logmenu(id);}
323 case 2:
324 {
325 if(!gShowAccName[id])
326 {
327 gShowAccName[id] = true;
328 regsys_mainmenu(id);
329 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_MAINMENUH1");
330 }
331 else
332 {
333 gShowAccName[id] = false;
334 regsys_mainmenu(id);
335 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_MAINMENUH2");
336 }
337 }
338 }
339
340 menu_destroy(menu);
341 return PLUGIN_HANDLED;
342}
343////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
344public plugin_cfg()
345{
346 gSQLtuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3]);
347
348 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, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
349 SQL_ThreadQuery(gSQLtuple,"CreateTableThr", gSQLQuery);
350}
351public CreateTableThr(FailState, Handle:Query, Error[], Errcode, Data[])
352{
353 if(FailState == TQUERY_CONNECT_FAILED)
354 set_fail_state("[HIBA] Nem lehet csatlakozni az adatbazishoz!");
355 else if(FailState == TQUERY_QUERY_FAILED)
356 set_fail_state("Query Error");
357 if(Errcode)
358 log_amx("[HIBA] Hiba: %s",Error);
359}
360////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
361public regsys_regmenu(id)
362{
363 new Menustring[256];
364 format(Menustring, charsmax(Menustring), "%s %L", get_mprefix(), LANG_SERVER, "MENU_REGMENU");
365 new menu = menu_create(Menustring, "regsys_regmenu_h");
366
367 if(strlen(gRegsysName[id]) == 0)
368 {
369 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOUSERNAME");
370 menu_additem(menu, Menustring, "0", 0);
371 }
372 else
373 {
374 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_FH", gRegsysName[id]);
375 menu_additem(menu, Menustring, "0", 0);
376 }
377
378 if(strlen(gRegsysPassword[id]) == 0)
379 {
380 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOPASSWORD");
381 menu_additem(menu, Menustring, "1", 0);
382 }
383 else
384 {
385 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_PW0", gRegsysPasswordStars[id][0]);
386 menu_additem(menu, Menustring, "1", 0);
387 }
388
389 if(strlen(gRegsysrePassword[id]) == 0)
390 {
391 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOPASSWORD");
392 menu_additem(menu, Menustring, "2", 0);
393 }
394 else
395 {
396 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_PW1", gRegsysPasswordStars[id][1]);
397 menu_additem(menu, Menustring, "2", 0);
398 }
399
400 formatex(Menustring, charsmax(Menustring), "%L^n", LANG_SERVER, "MENU_REG");
401 menu_additem(menu, Menustring, "3", 0);
402
403 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_RETURNREGMAIN");
404 menu_additem(menu, Menustring, "4", 0);
405
406 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
407 menu_display(id, menu, 0);
408}
409public regsys_regmenu_h(id, menu, item)
410{
411 new command[6], name[64], access, callback;
412 menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
413
414 switch(item)
415 {
416 case 0:{ client_cmd(id, "messagemode type_regname");}
417 case 1:{ client_cmd(id, "messagemode type_regpassword");}
418 case 2:{ client_cmd(id, "messagemode type_reregpassword");}
419 case 3:{ checkpw(id);}
420 case 4:
421 {
422 menu_destroy(menu);
423 regsys_mainmenu(id);
424 return PLUGIN_HANDLED;
425 }
426 }
427
428 menu_destroy(menu);
429 return PLUGIN_HANDLED;
430}
431public checkpw(id)
432{
433 if(strlen(gRegsysPassword[id]) != strlen(gRegsysrePassword[id]))
434 {
435 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_PASSWORDDMATCH");
436 regsys_regmenu(id);
437 }
438 else
439 {
440 if(strlen(gRegsysName[id]) == 0 || strlen(gRegsysPassword[id]) == 0 || strlen(gRegsysrePassword[id]) == 0)
441 {
442 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_REGEMPTY");
443 regsys_regmenu(id);
444 }
445 else
446 SQL_checkfh(id);
447 }
448}
449public regsys_regname(id)
450{
451 new regname[128];
452 read_args(regname, charsmax(regname));
453 remove_quotes(regname);
454
455 if(strlen(regname) == 0)
456 {
457 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYNAME");
458 regsys_regmenu(id);
459 return PLUGIN_HANDLED;
460 }
461 if(strlen(regname) < get_pcvar_num(gLengthc[0]) || strlen(regname) > get_pcvar_num(gLengthc[1]))
462 {
463 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_NAMEMINMAX", get_pcvar_num(gLengthc[0]), get_pcvar_num(gLengthc[1]));
464 regsys_regmenu(id);
465 return PLUGIN_HANDLED;
466 }
467 else
468 {
469 gRegsysName[id] = regname;
470 regsys_regmenu(id);
471 }
472 return PLUGIN_CONTINUE;
473}
474public regsys_regpw(id)
475{
476 new regpw[128];
477 read_args(regpw, charsmax(regpw));
478 remove_quotes(regpw);
479
480 if(strlen(regpw) == 0)
481 {
482 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYPW");
483 regsys_regmenu(id);
484 return PLUGIN_HANDLED;
485 }
486
487 if(strlen(regpw) < get_pcvar_num(gLengthc[2]) || strlen(regpw) > get_pcvar_num(gLengthc[3]))
488 {
489 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_PWMINMAX", get_pcvar_num(gLengthc[2]), get_pcvar_num(gLengthc[3]));
490 regsys_regmenu(id);
491 return PLUGIN_HANDLED;
492 }
493 else
494 {
495 ChangetextToStarts(id, strlen(regpw), 0);
496 gRegsysPassword[id] = regpw;
497 regsys_regmenu(id);
498 }
499 return PLUGIN_CONTINUE;
500}
501public regsys_reregpw(id)
502{
503 new regpw[128];
504 read_args(regpw, charsmax(regpw));
505 remove_quotes(regpw);
506
507 if(strlen(regpw) == 0)
508 {
509 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYREPW");
510 regsys_regmenu(id);
511 return PLUGIN_HANDLED;
512 }
513 else
514 {
515 ChangetextToStarts(id, strlen(regpw), 1);
516 gRegsysrePassword[id] = regpw;
517 regsys_regmenu(id);
518 }
519 return PLUGIN_CONTINUE;
520}
521public SQL_checkfh(id)
522{
523 formatex(gSQLQuery, charsmax(gSQLQuery), "SELECT * FROM `rregsys` WHERE `regsysname`='%s';", gRegsysName[id]);
524
525 new Data[2];
526 Data[0] = id;
527 Data[1] = get_user_userid(id);
528
529 SQL_ThreadQuery(gSQLtuple, "SQL_checkfh_thr", gSQLQuery, Data, 2);
530}
531public SQL_checkfh_thr(FailState, Handle:Query, Error[], Errcode,Data[], DataSize)
532{
533 if(FailState == TQUERY_CONNECT_FAILED)
534 set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
535 else if(FailState == TQUERY_QUERY_FAILED)
536 set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!");
537 if(Errcode)
538 log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
539
540 new id = Data[0];
541
542 if (Data[1] != get_user_userid(id))
543 return;
544
545 new RowsFound = SQL_NumRows(Query);
546
547 if(RowsFound > 0)
548 {
549 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_NAMETAKEN");
550 regsys_regmenu(id);
551 }
552 else SQL_insert(id);
553}
554public SQL_insert(id)
555{
556 new hashedpw[128];
557 hash_string(gRegsysPassword[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
558
559 gRegDate[id] = get_systime();
560
561 formatex(gSQLQuery, charsmax(gSQLQuery), "INSERT INTO `rregsys` (`User_id`, `regsysname`, `regsyspassword`, `regsysregdate`, `regsyslastlogdate`) VALUES('%d' ,'%s', '%s', '%d', '%d')", gAccountid[id], gRegsysName[id], hashedpw, gRegDate[id], gLastLogDate[id]);
562
563 new Data[2];
564 Data[0] = id;
565 Data[1] = get_user_userid(id);
566
567 SQL_ThreadQuery(gSQLtuple, "SQL_insert_thr", gSQLQuery, Data, 2);
568}
569public SQL_insert_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
570{
571 if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
572 {
573 log_amx("%s", Error)
574 return;
575 }
576
577 new id = Data[0]
578
579 if(Data[1] != get_user_userid(id))
580 return;
581
582 set_task(5.0, "RegWait", id);
583 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_WAITFEWSECOND");
584}
585public RegWait(id)
586{
587 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_SUCCESFULLREG");
588 regsys_logmenu(id);
589}
590////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
591public regsys_logmenu(id)
592{
593 new Menustring[256];
594 format(Menustring, charsmax(Menustring), "%s %L", get_mprefix(), LANG_SERVER, "MENU_LOGMENU");
595 new menu = menu_create(Menustring, "regsys_logmenu_h");
596
597 if(strlen(gRegsysName[id]) == 0)
598 {
599 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOUSERNAME");
600 menu_additem(menu, Menustring, "0", 0);
601 }
602 else
603 {
604 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_FH", gRegsysName[id]);
605 menu_additem(menu, Menustring, "0", 0);
606 }
607
608 if(strlen(gRegsysPassword[id]) == 0)
609 {
610 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_NOPASSWORD");
611 menu_additem(menu, Menustring, "1", 0);
612 }
613 else
614 {
615 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_PW0", gRegsysPasswordStars[id][0]);
616 menu_additem(menu, Menustring, "1", 0);
617 }
618
619
620 formatex(Menustring, charsmax(Menustring), "%L^n", LANG_SERVER, "MENU_LOG");
621 menu_additem(menu, Menustring, "2", 0);
622
623 formatex(Menustring, charsmax(Menustring), "%L", LANG_SERVER, "MENU_RETURNREGMAIN");
624 menu_additem(menu, Menustring, "3", 0);
625
626 menu_setprop( menu, MPROP_EXITNAME, "Kilépés");
627 menu_display(id, menu, 0);
628}
629public regsys_logmenu_h(id, menu, item)
630{
631 new command[6], name[64], access, callback;
632 menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
633
634 switch(item)
635 {
636 case 0:{ client_cmd(id, "messagemode type_logname");}
637 case 1:{ client_cmd(id, "messagemode type_logpassword");}
638 case 2:{ SQL_load(id);}
639 case 3:
640 {
641 menu_destroy(menu);
642 regsys_mainmenu(id);
643 return PLUGIN_HANDLED;
644 }
645 }
646 menu_destroy(menu);
647 return PLUGIN_HANDLED;
648}
649public regsys_logname(id)
650{
651 new logname[128];
652 read_args(logname, charsmax(logname));
653 remove_quotes(logname);
654
655 if(strlen(logname) == 0)
656 {
657 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYNAME");
658 regsys_logmenu(id);
659 return PLUGIN_HANDLED;
660 }
661 else
662 {
663 gRegsysName[id] = logname;
664 regsys_logmenu(id);
665 }
666 return PLUGIN_CONTINUE;
667}
668public regsys_logpw(id)
669{
670 new logpw[128];
671 read_args(logpw, charsmax(logpw));
672 remove_quotes(logpw);
673
674 if(strlen(logpw) == 0)
675 {
676 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_EMPTYPW");
677 regsys_logmenu(id);
678 return PLUGIN_HANDLED;
679 }
680 else
681 {
682 gRegsysPassword[id] = logpw;
683 ChangetextToStarts(id, strlen(logpw), 0);
684 regsys_logmenu(id);
685 }
686 return PLUGIN_CONTINUE;
687}
688public SQL_load(id)
689{
690 new hashedpw[128];
691 hash_string(gRegsysPassword[id], Hash_Sha256, hashedpw, charsmax(hashedpw));
692 formatex(gSQLQuery, charsmax(gSQLQuery), "SELECT * FROM `rregsys` WHERE regsysname = ^"%s^" AND regsyspassword = ^"%s^";", gRegsysName[id], hashedpw);
693
694 new Data[2];
695 Data[0] = id;
696 Data[1] = get_user_userid(id);
697
698 SQL_ThreadQuery(gSQLtuple, "SQL_load_thr", gSQLQuery, Data, 2);
699}
700public SQL_load_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
701{
702 if(FailState == TQUERY_CONNECT_FAILED)
703 set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
704 else if(FailState == TQUERY_QUERY_FAILED)
705 set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
706 if(Errcode)
707 log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
708
709 new id = Data[0];
710 if(get_user_userid(id) != Data[1])
711 return;
712 new sName[MAX_AUTHID_LENGTH];
713 get_user_name(id, sName, charsmax(sName));
714
715 if(SQL_NumRows(Query) > 0)
716 {
717 new itaken = 0;
718 if(gId[id] == SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "id")))
719 {
720 for(new i = 1; i < 32; i++)
721 {
722 itaken = 1;
723 gId[id] = 0;
724 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_USERONLINE");
725 break;
726 }
727 }
728
729 if(itaken == 1)
730 return;
731
732 gId[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "id"));
733 gAccountid[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "User_id"));
734 SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsysname"), gRegsysName[id], charsmax(gRegsysName[]));
735 gRegDate[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsysregdate"));
736 gLastLogDate[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "regsyslastlogdate"));
737
738 if(gShowAccName[id] == false)
739 {
740 SQL_updateLogDate(id);
741 gLoggedIn[id] = true;gAccountid[id]++;
742 client_print_color(0, print_team_default, "^4%s %L", get_prefix(), LANG_SERVER, "CHAT_SUCCESSFULLLOG", sName, gId[id]);
743 }
744 else
745 {
746 SQL_updateLogDate(id);
747 gLoggedIn[id] = true;gAccountid[id]++;
748 client_print_color(0, print_team_default, "^4%s %L", get_prefix(), LANG_SERVER, "CHAT_SUCCESSFULLLOG1", sName, gId[id], gRegsysName[id]);
749 }
750 new fwdloadtestret;
751 ExecuteForward(fwd_loadcmd,fwdloadtestret,id);
752 client_cmd(id, "spk misc/hangok/koszontelek.wav");
753 }
754 else
755 {
756 client_print_color(id, print_team_default, "%s %L", get_prefix(), LANG_SERVER, "CHAT_WRONGLOG");
757 return;
758 }
759}
760////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
761public client_authorized(id)
762{
763 if(is_user_bot(id))
764 return PLUGIN_HANDLED;
765
766 gRegsysName[id] = "";
767 gRegsysPassword[id] = "";
768 gRegsysrePassword[id] = "";
769 gRegDate[id] = 0;
770 gLastLogDate[id] = 0;
771 gLoggedIn[id] = false;
772 gAccountid[id] = 0;
773 gId[id] = 0;
774 //gTimerLogOrReg = get_pcvar_num(gTimer);
775 //LoginHud(id);
776
777 return PLUGIN_HANDLED;
778}
779public client_disconnected(id)
780{
781 if(is_user_bot(id))
782 return PLUGIN_HANDLED;
783
784 if(task_exists(id))
785 remove_task(id);
786
787 gRegsysName[id] = "";
788 gRegsysPassword[id] = "";
789 gRegsysrePassword[id] = "";
790 gRegDate[id] = 0;
791 gLastLogDate[id] = 0;
792 gLoggedIn[id] = false;
793 gAccountid[id] = 0;
794 gId[id] = 0;
795
796 return PLUGIN_HANDLED;
797}
798////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
799get_prefix(){
800 new sPrefix[64];
801 get_pcvar_string(gPrefixs, sPrefix, charsmax(sPrefix));
802 return sPrefix;
803}
804get_mprefix(){
805 new sPrefix1[64];
806 get_pcvar_string(cvarMenuPrefix, sPrefix1, charsmax(sPrefix1));
807 return sPrefix1;
808}