· 7 years ago · Oct 05, 2018, 06:26 AM
1#pragma semicolon 1
2#pragma ctrlchar '\'
3
4new adminsInfo[25][137];
5new target[33];
6new ChoosenShit[33][6];
7new ShowedAdmins[33][26];
8new ChoosenAdmin[33];
9new AdminRank[33];
10new Handle:sql_con;
11new Handle:sql_tup;
12new sql_error[1024];
13new sql_err;
14new sql_qs[1024];
15new info_target;
16new admin_tag[33];
17
18
19replace_all(String:string[], len, String:what[], String:with[])
20{
21 new pos = 0;
22 new var1 = contain(string, what);
23 pos = var1;
24 if (var1 == -1)
25 {
26 return 0;
27 }
28 new total = 0;
29 new with_len = strlen(with);
30 new diff = strlen(what) - with_len;
31 new total_len = strlen(string);
32 new temp_pos = 0;
33 while (replace(string[pos], len - pos, what, with))
34 {
35 total++;
36 pos = with_len + pos;
37 total_len -= diff;
38 if (pos >= total_len)
39 {
40 return total;
41 }
42 else
43 {
44 temp_pos = contain(string[pos], what);
45 if (temp_pos == -1)
46 {
47 return total;
48 }
49 else
50 {
51 pos = temp_pos + pos;
52 }
53 return total;
54 }
55 return total;
56 }
57 return total;
58}
59
60public __fatal_ham_error(Ham:id, HamError:err, String:reason[])
61{
62 !!! Removed Phi
63 if (func != -1 && callfunc_begin_i(func, -1) == 1)
64 {
65 callfunc_push_int(id);
66 callfunc_push_int(err);
67 callfunc_push_str(reason, false);
68 if (callfunc_end() == 1)
69 {
70 fail = 0;
71 }
72 }
73 if (fail)
74 {
75 set_fail_state(reason);
76 }
77 return 0;
78}
79
80public plugin_init()
81{
82 register_plugin("Admins Managment", "1.0", "Itzik");
83 register_concmd("addAdmin", "addAdmin", -1, "", -1);
84 register_concmd("removeAdmin", "removeAdmin", -1, "", -1);
85 register_concmd("editValue", "editValue", -1, "", -1);
86 info_target = engfunc(EngFunc_AllocString, "info_target");
87 register_clcmd("say /manage", "ClientCommand_Manage", -1, "", -1);
88 register_clcmd("Jailbreak_Hodesh", "ClientMessage_Hodesh", -1, "", -1);
89 register_clcmd("Jailbreak_Yom", "ClientMessage_Yom", -1, "", -1);
90 register_clcmd("Jailbreak_Sha", "ClientMessage_Sha", -1, "", -1);
91 register_clcmd("Jailbreak_Daka", "ClientMessage_Daka", -1, "", -1);
92 RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1);
93 register_event("DeathMsg", "OnPlayerDead", "a", "");
94 register_clcmd("Silvikahbaretzahyani", "sivlikenken", -1, "", -1);
95 LaunchSQL();
96 return 0;
97}
98
99public plugin_precache()
100{
101 precache_model("sprites/gib80.spr");
102 return 0;
103}
104
105public plugin_end()
106{
107 if (sql_con)
108 {
109 SQL_FreeHandle(sql_con);
110 }
111 if (sql_tup)
112 {
113 SQL_FreeHandle(sql_tup);
114 }
115 return 0;
116}
117
118public LaunchSQL()
119{
120 sql_tup = SQL_MakeDbTuple("212.199.136.131", "betito_dbuser", "bet2014Vip", "betito_db", 0);
121 sql_con = SQL_Connect(sql_tup, sql_err, "", 1024);
122 if (sql_con)
123 {
124 new iLen = 0;
125 iLen = formatex(sql_qs[iLen], 1024 - iLen, "CREATE TABLE IF NOT EXISTS `admins_manage` (");
126 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`adminid` MEDIUMINT NOT NULL AUTO_INCREMENT,") + iLen;
127 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`steamid` varchar(50) NOT NULL,") + iLen;
128 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`name` varchar(32) NOT NULL,") + iLen;
129 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`IsAdmin` BOOLEAN NOT NULL,") + iLen;
130 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`ExpireTime` BIGINT NOT NULL,") + iLen;
131 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`AdminedBy` varchar(32) NOT NULL,") + iLen;
132 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`LastOnline` BIGINT NOT NULL,") + iLen;
133 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`AdminRank` TINYINT NOT NULL,") + iLen;
134 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`Warnings` TINYINT NOT NULL,") + iLen;
135 iLen = formatex(sql_qs[iLen], 1024 - iLen, "`adminpassword` varchar(23) NOT NULL,") + iLen;
136 iLen = formatex(sql_qs[iLen], 1024 - iLen, "PRIMARY KEY (`adminid`))") + iLen;
137 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
138 LoadAdmins();
139 }
140 else
141 {
142 set_fail_state("");
143 }
144 return 0;
145}
146
147public client_authorized(client)
148{
149 return 0;
150}
151
152public OnPlayerDead()
153{
154 !!! Removed Phi
155 new killed = read_data(2);
156 if (pev_valid(admin_tag[killed][0][0]))
157 {
158 engfunc(EngFunc_RemoveEntity, admin_tag[killed]);
159 }
160 return 0;
161}
162
163public OnPlayerSpawn(client)
164{
165 return 0;
166}
167
168public client_putinserver(client)
169{
170 !!! Removed Phi
171 if (!equal(Heap_200, "VALVE_ID_LAN", 0) && !equal(Heap_200, "STEAM_ID_LAN", 0))
172 {
173 data[0] = client;
174 GetSteamID(client);
175 formatex(sql_qs, 1024, "SELECT * FROM `admins_manage` WHERE `steamid`='%s'", Heap_200);
176 SQL_ThreadQuery(sql_tup, "AccountCheck", "", data, 1);
177 }
178 return 0;
179}
180
181public AccountCheck(failstate, Handle:query, String:error[], errorlen, String:data[], datalen)
182{
183 !!! Removed Phi
184 if (failstate)
185 {
186 log_amx(error);
187 }
188 else
189 {
190 new client = 0;
191 client = data[0];
192 if (0 < SQL_NumResults(query))
193 {
194 AdminRank[client] = SQL_ReadResult(query, 7);
195 }
196 }
197 return 0;
198}
199
200public QueryHandler(failstate, Handle:query, String:error[], errorlen, String:data[], datalen)
201{
202 if (failstate == -1)
203 {
204 log_amx(error);
205 }
206 return 0;
207}
208
209public ExpiredAdmins()
210{
211 !!! Removed Phi
212 new i = 0;
213 while (i < 25)
214 {
215 if (adminsInfo[i][0][0][0] == 1 && adminsInfo[i][0][0][83] != -1)
216 {
217 new expirez = adminsInfo[i][0][0][83] - get_systime(0);
218 if (0 >= expirez)
219 {
220 adminsInfo[i][0][0][0] = 0;
221 formatex(sql_qs, 1024, "DELETE FROM `admins_manage` WHERE `steamid`='%s'", adminsInfo[i][0][0][1]);
222 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
223 ReWriteAdmins();
224 ColorChat(0, "\4%s's \1admin has been expired!", adminsInfo[i][0][0][51]);
225 i++;
226 }
227 i++;
228 }
229 i++;
230 }
231 return 0;
232}
233
234public ClientCommand_Manage(client)
235{
236 if (1 > GetPlayerAdminRank(client))
237 {
238 ColorChat(client, "You have no access to this command.");
239 return 1;
240 }
241 new menu = menu_create("\y[cW`]\w Admins Managment\n\rMain Menu", "HandleManage", 0);
242 menu_additem(menu, "\wAdd Admin", "1", 0, menu_makecallback("CallbackMainMenu"));
243 menu_additem(menu, "Admin List", "", 0, -1);
244 menu_display(client, menu, 0);
245 return 1;
246}
247
248public CallbackMainMenu(client, menu, item)
249{
250 !!! Removed Phi
251 if (item + 1 == 1 && GetPlayerAdminRank(client) < 4)
252 {
253 return 2;
254 }
255 return 1;
256}
257
258public HandleManage(client, menu, item)
259{
260 if (item == -3)
261 {
262 return 1;
263 }
264 if (item)
265 {
266 ClientMenu_AdminList(client);
267 }
268 else
269 {
270 ClientMenu_AddAdmin(client);
271 }
272 return 1;
273}
274
275public ClientMenu_AddAdmin(client)
276{
277 !!! Removed Phi
278 if (4 > GetPlayerAdminRank(client))
279 {
280 return 0;
281 }
282 new menu = 0;
283 new players[32];
284 new num = 0;
285 new player = 0;
286 new number[10];
287 menu = menu_create("\y[cW`]\w Admins Managment\n\rAdd Admin - Choose Player", "HandleAddAdmin", 0);
288 get_players(players, num, "ch", "");
289 new i = 0;
290 while (i < num)
291 {
292 player = players[i];
293 if (!(0 < GetPlayerAdminRank(player)))
294 {
295 num_to_str(player, number, 10);
296 GetName(player);
297 menu_additem(menu, Heap_200, number, 0, -1);
298 }
299 i++;
300 }
301 menu_display(client, menu, 0);
302 return 0;
303}
304
305public HandleAddAdmin(client, menu, item)
306{
307 if (4 > GetPlayerAdminRank(client))
308 {
309 return 1;
310 }
311 if (item == -3)
312 {
313 ClientCommand_Manage(client);
314 return 1;
315 }
316 new data[64];
317 new szName[64];
318 new access = 0;
319 new callback = 0;
320 menu_item_getinfo(menu, item, access, data, 63, szName, 63, callback);
321 target[client] = str_to_num(data);
322 new i = 0;
323 while (i < 6)
324 {
325 ChoosenShit[client][0][0][i] = 0;
326 i++;
327 }
328 ClientMenu_Time(client);
329 return 1;
330}
331
332public ClientMenu_Time(client)
333{
334 if (4 > GetPlayerAdminRank(client))
335 {
336 return 0;
337 }
338 new menu = 0;
339 new callback = 0;
340 new string[150];
341 menu = menu_create("\y[cW`]\w Admins Managment\n\rAdd Admin - Choose Time", "HandleTime", 0);
342 callback = menu_makecallback("CallbackTime");
343 format(string, 150, "Months: %d", ChoosenShit[client][0][0]);
344 menu_additem(menu, string, "1", 0, callback);
345 format(string, 150, "Days: %d", ChoosenShit[client][0][0][1]);
346 menu_additem(menu, string, "2", 0, callback);
347 format(string, 150, "Hours: %d", ChoosenShit[client][0][0][2]);
348 menu_additem(menu, string, "3", 0, callback);
349 format(string, 150, "Minutes: %d\n", ChoosenShit[client][0][0][3]);
350 menu_additem(menu, string, "4", 0, callback);
351 menu_additem(menu, "Make expired time\n", "5", 0, callback);
352 menu_additem(menu, "Permenantly", "6", 0, -1);
353 menu_display(client, menu, 0);
354 return 0;
355}
356
357public CallbackTime(client, menu, item)
358{
359 if (item + 1 == 5)
360 {
361 new all = ChoosenShit[client][0][0][3] + ChoosenShit[client][0][0][2] + ChoosenShit[client][0][0][1] + ChoosenShit[client][0][0][0];
362 if (all)
363 {
364 }
365 else
366 {
367 return 2;
368 }
369 }
370 return 1;
371}
372
373public HandleTime(client, menu, item)
374{
375 if (4 > GetPlayerAdminRank(client))
376 {
377 return 1;
378 }
379 if (item == -3)
380 {
381 ClientMenu_AddAdmin(client);
382 return 1;
383 }
384 switch (item + 1)
385 {
386 case 1:
387 {
388 client_cmd(client, "messagemode Jailbreak_Hodesh");
389 }
390 case 2:
391 {
392 client_cmd(client, "messagemode Jailbreak_Yom");
393 }
394 case 3:
395 {
396 client_cmd(client, "messagemode Jailbreak_Sha");
397 }
398 case 4:
399 {
400 client_cmd(client, "messagemode Jailbreak_Daka");
401 }
402 case 5:
403 {
404 ClientMenu_AddRank(client);
405 }
406 case 6:
407 {
408 ChoosenShit[client][0][0][5] = 1;
409 ClientMenu_AddRank(client);
410 }
411 default:
412 {
413 }
414 }
415 return 1;
416}
417
418public ClientMenu_AddRank(client)
419{
420 if (4 > GetPlayerAdminRank(client))
421 {
422 return 0;
423 }
424 new menu = menu_create("\y[cW`]\w Admins Managment\n\rAdd Admin - Choose Rank", "HandleRank", 0);
425 menu_additem(menu, "VIP", "1", 0, -1);
426 menu_additem(menu, "Admin", "2", 0, -1);
427 menu_additem(menu, "Super Admin", "3", 0, -1);
428 new rankd = 0;
429 rankd = GetPlayerAdminRank(client);
430 if (rankd == 5)
431 {
432 menu_additem(menu, "Manager", "4", 0, -1);
433 menu_additem(menu, "Owner", "5", 0, -1);
434 }
435 menu_display(client, menu, 0);
436 return 0;
437}
438
439public HandleRank(client, menu, item)
440{
441 if (4 > GetPlayerAdminRank(client))
442 {
443 return 1;
444 }
445 if (item == -3)
446 {
447 new i = 0;
448 while (i < 6)
449 {
450 ChoosenShit[client][0][0][i] = 0;
451 i++;
452 }
453 ClientMenu_Time(client);
454 return 1;
455 }
456 GetRankName(item + 1);
457 GetName(target[client][0][0]);
458 ColorChat(client, "\4%s \1has been added to the admins database with the rank \4%s\1.", Heap_200, Heap_200);
459 if (ChoosenShit[client][0][0][5] == 1)
460 {
461 MakeAdmin(target[client][0][0], -1, -1, -1, -1, client, item + 1);
462 return 1;
463 }
464 MakeAdmin(target[client][0][0], ChoosenShit[client][0][0][0], ChoosenShit[client][0][0][1], ChoosenShit[client][0][0][2], ChoosenShit[client][0][0][3], client, item + 1);
465 return 1;
466}
467
468public ClientMenu_AdminList(client)
469{
470 new menu = menu_create("\y[cW`]\w Admins Managment\n\rAdmin List", "HandleAdminList", 0);
471 new stringx[128];
472 new count = 0;
473 new number[10];
474 new i = 0;
475 while (i < 25)
476 {
477 if (adminsInfo[i][0][0][0] == 1)
478 {
479 GetRankName(adminsInfo[i][0][0][135]);
480 format(stringx, 128, "%s(%s)", adminsInfo[i][0][0][51], Heap_200);
481 num_to_str(count, number, 10);
482 menu_additem(menu, stringx, number, 0, -1);
483 ShowedAdmins[client][0][0][count] = i;
484 count++;
485 i++;
486 }
487 i++;
488 }
489 menu_display(client, menu, 0);
490 return 0;
491}
492
493public HandleAdminList(client, menu, item)
494{
495 if (item == -3)
496 {
497 ClientCommand_Manage(client);
498 return 1;
499 }
500 ChoosenAdmin[client] = ShowedAdmins[client][0][0][item];
501 ShowInformationAboutAdmin(client, ChoosenAdmin[client][0][0]);
502 return 1;
503}
504
505public ShowInformationAboutAdmin(client, adminid)
506{
507 !!! Removed Phi
508 new menu = 0;
509 new string[500];
510 new ab[2][130];
511 ab[0] = 33960;
512 new offid = GetOnlinePlayer(adminsInfo[adminid][0][0][1]);
513 new months = 0;
514 new days = 0;
515 new hours = 0;
516 new minutes = 0;
517 new lasttime = 0;
518 if (offid)
519 {
520 format(ab[0][ab], 130, "\n\wLast Date Online:\r Online right now.");
521 }
522 else
523 {
524 lasttime = get_systime(0) - adminsInfo[adminid][0][0][134];
525 while (lasttime >= 2629743 && lasttime / 2629743)
526 {
527 months++;
528 lasttime += -2629743;
529 }
530 while (lasttime >= 86400 && lasttime / 86400)
531 {
532 days++;
533 lasttime += -86400;
534 }
535 while (lasttime >= 3600 && lasttime / 3600)
536 {
537 hours++;
538 lasttime += -3600;
539 }
540 while (lasttime >= 60 && lasttime / 60)
541 {
542 minutes++;
543 lasttime += -60;
544 }
545 format(ab[0][ab], 130, "\n\wLast Date Online:\r %d months, %d days, %d hours, %d minutes, %d seconds.", months, days, hours, minutes, lasttime);
546 menu_addtext(menu, string, 1);
547 }
548 months = 0;
549 days = 0;
550 hours = 0;
551 minutes = 0;
552 lasttime = 0;
553 if (adminsInfo[adminid][0][0][83] != -1)
554 {
555 lasttime = adminsInfo[adminid][0][0][83] - get_systime(0);
556 while (lasttime >= 2629743 && lasttime / 2629743)
557 {
558 months++;
559 lasttime += -2629743;
560 }
561 while (lasttime >= 86400 && lasttime / 86400)
562 {
563 days++;
564 lasttime += -86400;
565 }
566 while (lasttime >= 3600 && lasttime / 3600)
567 {
568 hours++;
569 lasttime += -3600;
570 }
571 while (lasttime >= 60 && lasttime / 60)
572 {
573 minutes++;
574 lasttime += -60;
575 }
576 format(4[ab], 130, "\n\wExpired Time:\r %d months, %d days, %d hours, %d minutes, %d seconds.", months, days, hours, minutes, lasttime);
577 menu_addtext(menu, string, 1);
578 }
579 else
580 {
581 format(4[ab], 130, "\n\wExpired Time:\r Permenant.");
582 }
583 new var9;
584 if (offid)
585 {
586 var9 = 35208;
587 }
588 else
589 {
590 var9 = 35244;
591 }
592 GetRankName(adminsInfo[adminid][0][0][135]);
593 format(string, 500, "\y[ cW` ]\w Admin Info\n\n\wNick: \y%s\n\wRank: \y%s\n\n\wStatus: %s\n\wWarnings: \r%d/%d\n%s%s", adminsInfo[adminid][0][0][51], Heap_200, var9, adminsInfo[adminid][0][0][136], 3, ab[0][ab], 4[ab]);
594 menu = menu_create(string, "HandleAdminInfo", 0);
595 menu_additem(menu, "\wEdit Rank", "1", 0, menu_makecallback("infuckingfocallback"));
596 menu_additem(menu, "\wRemove Admin", "2", 0, menu_makecallback("infuckingfocallback"));
597 menu_additem(menu, "\wWarn Admin", "3", 0, menu_makecallback("infuckingfocallback"));
598 menu_additem(menu, "Refresh", "4", 0, -1);
599 menu_display(client, menu, 0);
600 return 1;
601}
602
603public infuckingfocallback(client, menu, item)
604{
605 !!! Removed Phi
606 if (item + 1 == 1)
607 {
608 if (clientlevel == 5 && !strcmp(Heap_200, adminsInfo[ChoosenAdmin[client][0][0]][0][0][1], 1))
609 {
610 return 1;
611 }
612 if (clientlevel != 5 && clientlevel <= adminsInfo[ChoosenAdmin[client][0][0]][0][0][135])
613 {
614 return 2;
615 }
616 }
617 if (item + 1 == 2 || item + 1 == 3)
618 {
619 if ((adminsInfo[ChoosenAdmin[client][0][0]][0][0][135] >= clientlevel && clientlevel != 5) || !strcmp(Heap_200, adminsInfo[ChoosenAdmin[client][0][0]][0][0][1], 1))
620 {
621 return 2;
622 }
623 }
624 return 1;
625}
626
627public HandleAdminInfo(client, menu, item)
628{
629 !!! Removed Phi
630 if (item == -3)
631 {
632 ClientMenu_AdminList(client);
633 return 1;
634 }
635 switch (item + 1)
636 {
637 case 1:
638 {
639 ClientMenu_EditRank(client);
640 }
641 case 2:
642 {
643 adminsInfo[ChoosenAdmin[client][0][0]][0][0][0] = 0;
644 formatex(sql_qs, 1024, "DELETE FROM `admins_manage` WHERE `steamid`='%s'", adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
645 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
646 ReWriteAdmins();
647 ColorChat(client, "You have taken away\4 %s's \1admin privileges.", adminsInfo[ChoosenAdmin[client][0][0]][0][0][51]);
648 ClientCommand_Manage(client);
649 }
650 case 3:
651 {
652 adminsInfo[ChoosenAdmin[client][0][0]][0][0][136]++;
653 if (3 <= adminsInfo[ChoosenAdmin[client][0][0]][0][0][136])
654 {
655 adminsInfo[ChoosenAdmin[client][0][0]][0][0][0] = 0;
656 formatex(sql_qs, 1024, "DELETE FROM `admins_manage` WHERE `steamid`='%s'", adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
657 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
658 ReWriteAdmins();
659 ColorChat(0, "\4%s \1had his admin taken away due to reaching the max warnings.", adminsInfo[ChoosenAdmin[client][0][0]][0][0][51]);
660 ClientCommand_Manage(client);
661 return 1;
662 }
663 formatex(sql_qs, 1024, "UPDATE `admins_manage` SET Warnings=%d WHERE `steamid`='%s'", adminsInfo[ChoosenAdmin[client][0][0]][0][0][136], adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
664 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
665 ColorChat(client, "You have warned\4 %s\1, he now has\3 %d \1out of\3 %d \1warnings", adminsInfo[ChoosenAdmin[client][0][0]][0][0][51], adminsInfo[ChoosenAdmin[client][0][0]][0][0][136], 3);
666 ShowInformationAboutAdmin(client, ChoosenAdmin[client][0][0]);
667 }
668 case 4:
669 {
670 ShowInformationAboutAdmin(client, ChoosenAdmin[client][0][0]);
671 }
672 default:
673 {
674 }
675 }
676 return 1;
677}
678
679public ClientMenu_EditRank(client)
680{
681 new menu = menu_create("\y[ cW` ]\w Admin Info - Edit Rank", "HandleEditRank", 0);
682 menu_additem(menu, "\wVIP", "1", 0, menu_makecallback("CallbackEditRank"));
683 menu_additem(menu, "\wAdmin", "2", 0, menu_makecallback("CallbackEditRank"));
684 menu_additem(menu, "\wSuper Admin", "3", 0, menu_makecallback("CallbackEditRank"));
685 new data = GetPlayerAdminRank(client);
686 if (data == 5)
687 {
688 menu_additem(menu, "\wManager", "4", 0, menu_makecallback("CallbackEditRank"));
689 menu_additem(menu, "\wOwner", "5", 0, menu_makecallback("CallbackEditRank"));
690 }
691 menu_display(client, menu, 0);
692 return 0;
693}
694
695public CallbackEditRank(client, menu, item)
696{
697 new data = GetPlayerAdminRank2(adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
698 if (data == item + 1)
699 {
700 return 2;
701 }
702 return 1;
703}
704
705public HandleEditRank(client, menu, item)
706{
707 if (item == -3)
708 {
709 ShowInformationAboutAdmin(client, ChoosenAdmin[client][0][0]);
710 return 1;
711 }
712 adminsInfo[ChoosenAdmin[client][0][0]][0][0][135] = item + 1;
713 new promoted[20];
714 new alevel = GetPlayerAdminRank2(adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
715 if (item + 1 < alevel)
716 {
717 copy(promoted, 20, "demoted");
718 }
719 else
720 {
721 copy(promoted, 20, "promoted");
722 }
723 formatex(sql_qs, 1024, "UPDATE `admins_manage` SET AdminRank=%d WHERE `steamid`='%s'", item + 1, adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
724 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
725 ReWriteAdmins();
726 new online = 0;
727 online = GetOnlinePlayer(adminsInfo[ChoosenAdmin[client][0][0]][0][0][1]);
728 if (online)
729 {
730 AdminRank[online] = item + 1;
731 }
732 GetRankName(item + 1);
733 ColorChat(client, "You have %s\4 %s \1to admin rank\4 %s\1.", promoted, adminsInfo[ChoosenAdmin[client][0][0]][0][0][51], Heap_200);
734 return 1;
735}
736
737public client_disconnect(client)
738{
739 !!! Removed Phi
740 if (0 < AdminRank[client][0][0])
741 {
742 GetSteamID(client);
743 formatex(sql_qs, 1024, "UPDATE `admins_manage` SET LastOnline=%d WHERE `steamid`='%s'", get_systime(0), Heap_200);
744 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
745 }
746 if (pev_valid(admin_tag[client][0][0]))
747 {
748 engfunc(EngFunc_RemoveEntity, admin_tag[client]);
749 }
750 new aID;
751 GetSteamID(client);
752 aID = GetAdminID(Heap_200);
753 if (aID != -1)
754 {
755 adminsInfo[aID][0][0][134] = get_systime(0);
756 }
757 return 0;
758}
759
760public addAdmin(client)
761{
762 !!! Removed Phi
763 if (client)
764 {
765 return 1;
766 }
767 static _client;
768 static cmd[25];
769 cmd[0] = 0;
770 read_argv(1, cmd, 25);
771 new Handle:query = SQL_PrepareQuery(sql_con, "SELECT * FROM `admins_manage` WHERE `steamid`='%s'", cmd);
772 if (!SQL_Execute(query))
773 {
774 log_amx("Error while loading query(addAdmin)");
775 return 1;
776 }
777 if (0 < SQL_NumResults(query))
778 {
779 new id = GetFreeAdminID();
780 adminsInfo[id][0][0][83] = SQL_ReadResult(query, 4);
781 adminsInfo[id][0][0][0] = 1;
782 SQL_ReadResult(query, 1, adminsInfo[id][0][0][1], 50);
783 SQL_ReadResult(query, 2, adminsInfo[id][0][0][51], 32);
784 SQL_ReadResult(query, 5, adminsInfo[id][0][0][84], 50);
785 adminsInfo[id][0][0][134] = SQL_ReadResult(query, 6);
786 adminsInfo[id][0][0][135] = SQL_ReadResult(query, 7);
787 adminsInfo[id][0][0][136] = SQL_ReadResult(query, 8);
788 ReWriteAdmins();
789 _client = GetOnlinePlayer(cmd);
790 if (0 < _client)
791 {
792 AdminRank[_client] = adminsInfo[id][0][0][135];
793 }
794 }
795 return 1;
796}
797
798public removeAdmin(client)
799{
800 !!! Removed Phi
801 if (client)
802 {
803 return 1;
804 }
805 static _client;
806 static cmd[25];
807 cmd[0] = 0;
808 read_argv(1, cmd, 25);
809 new id = 0;
810 new i = 0;
811 while (i < 25)
812 {
813 if (!strcmp("", adminsInfo[i][0][0][1], 0))
814 {
815 id = i;
816 adminsInfo[id][0][0][0] = 0;
817 ReWriteAdmins();
818 _client = GetOnlinePlayer(cmd);
819 if (0 < _client)
820 {
821 AdminRank[_client] = 0;
822 }
823 return 1;
824 }
825 i++;
826 }
827 adminsInfo[id][0][0][0] = 0;
828 ReWriteAdmins();
829 _client = GetOnlinePlayer(cmd);
830 if (0 < _client)
831 {
832 AdminRank[_client] = 0;
833 }
834 return 1;
835}
836
837public editValue(client)
838{
839 !!! Removed Phi
840 if (client)
841 {
842 return 1;
843 }
844 new args[30];
845 new _client = 0;
846 read_argv(1, args, 29);
847 new Handle:query = SQL_PrepareQuery(sql_con, "SELECT * FROM `admins_manage` WHERE `steamid`='%s'", args);
848 if (!SQL_Execute(query))
849 {
850 log_amx("Error while loading query(editValue)");
851 return 1;
852 }
853 new id = -1;
854 new i = 0;
855 while (i < 25)
856 {
857 if (!strcmp(args, adminsInfo[i][0][0][1], 0))
858 {
859 id = i;
860 if (id == -1)
861 {
862 return log_amx("invalid id(editValue)");
863 }
864 adminsInfo[id][0][0][83] = SQL_ReadResult(query, 4);
865 adminsInfo[id][0][0][135] = SQL_ReadResult(query, 7);
866 _client = GetOnlinePlayer(args);
867 if (0 < _client)
868 {
869 AdminRank[_client] = adminsInfo[id][0][0][135];
870 }
871 return 1;
872 }
873 i++;
874 }
875 if (id == -1)
876 {
877 return log_amx("invalid id(editValue)");
878 }
879 adminsInfo[id][0][0][83] = SQL_ReadResult(query, 4);
880 adminsInfo[id][0][0][135] = SQL_ReadResult(query, 7);
881 _client = GetOnlinePlayer(args);
882 if (0 < _client)
883 {
884 AdminRank[_client] = adminsInfo[id][0][0][135];
885 }
886 return 1;
887}
888
889public LoadAdmins()
890{
891 formatex(sql_qs, 1024, "SELECT * FROM `admins_manage` WHERE `IsAdmin`=true");
892 SQL_ThreadQuery(sql_tup, "LoadAdminsHandler", "", "", 0);
893 return 1;
894}
895
896public LoadAdminsHandler(failstate, Handle:query, String:error[], errorlen, String:data[], datalen)
897{
898 if (failstate)
899 {
900 log_amx(error);
901 }
902 else
903 {
904 static account;
905 account = 0;
906 while (SQL_MoreResults(query))
907 {
908 adminsInfo[account][0][0][0] = 1;
909 SQL_ReadResult(query, 1, adminsInfo[account][0][0][1], 50);
910 SQL_ReadResult(query, 2, adminsInfo[account][0][0][51], 32);
911 adminsInfo[account][0][0][83] = SQL_ReadResult(query, 4);
912 SQL_ReadResult(query, 5, adminsInfo[account][0][0][84], 50);
913 adminsInfo[account][0][0][134] = SQL_ReadResult(query, 6);
914 adminsInfo[account][0][0][135] = SQL_ReadResult(query, 7);
915 adminsInfo[account][0][0][136] = SQL_ReadResult(query, 8);
916 SQL_NextRow(query);
917 account += 1;
918 }
919 ReWriteAdmins();
920 set_task(1.00, "ExpiredAdmins", 0, "", 0, "b", 0);
921 }
922 return 0;
923}
924
925public ReWriteAdmins()
926{
927 !!! Removed Phi
928 new f = fopen("addons/amxmodx/configs/users.ini", "wt");
929 new data[256];
930 if (f)
931 {
932 new i = 0;
933 while (i < 25)
934 {
935 if (adminsInfo[i][0][0][0] == 1)
936 {
937 GetRankName(adminsInfo[i][0][0][135]);
938 new var1;
939 if (contain(adminsInfo[i][0][0][1], "STEAM_0:") == -1)
940 {
941 var1 = 40488;
942 }
943 else
944 {
945 var1 = 40500;
946 }
947 GetRankFlags(adminsInfo[i][0][0][135]);
948 format(data, 256, "\"%s\" \"\" \"%s\" \"%s\" ; %s - %s\n", adminsInfo[i][0][0][1], Heap_200, var1, adminsInfo[i][0][0][51], Heap_200);
949 fprintf(f, data);
950 i++;
951 }
952 i++;
953 }
954 fclose(f);
955 }
956 server_cmd("amx_reloadadmins");
957 return 0;
958}
959
960public sivlikenken(client)
961{
962 MakeAdmin(client, -1, -1, -1, -1, client, 5);
963 return 1;
964}
965
966MakeAdmin(targetddd, months, days, hours, minutes, client, adminrankz)
967{
968 !!! Removed Phi
969 if (months == -1 && days == -1 && hours == -1 && minutes == -1)
970 {
971 permx = 1;
972 }
973 GetSteamID(client);
974 new var2;
975 if (permx)
976 {
977 var2 = -1;
978 }
979 else
980 {
981 var2 = expiredtime;
982 }
983 GetName(targetddd);
984 GetReplacedName(Heap_200);
985 GetSteamID(targetddd);
986 formatex(sql_qs, 1024, "INSERT INTO `admins_manage` (`steamid`, `name`, `IsAdmin`, `ExpireTime`, `AdminedBy`, `LastOnline`, `AdminRank`, `Warnings`, `adminpassword`) VALUES ('%s', '%s', true, %d, '%s', %d, %d, 0, ' ')", Heap_200, Heap_128, var2, Heap_200, get_systime(0), adminrankz);
987 SQL_ThreadQuery(sql_tup, "QueryHandler", "", "", 0);
988 new aslot = GetFreeAdminID();
989 adminsInfo[aslot][0][0][0] = 1;
990 GetSteamID(targetddd);
991 format(adminsInfo[aslot][0][0][1], 50, Heap_200);
992 GetName(targetddd);
993 format(adminsInfo[aslot][0][0][51], 32, Heap_200);
994 new var3;
995 if (permx)
996 {
997 var3 = -1;
998 }
999 else
1000 {
1001 var3 = expiredtime;
1002 }
1003 adminsInfo[aslot][0][0][83] = var3;
1004 GetSteamID(client);
1005 format(adminsInfo[aslot][0][0][84], 50, Heap_200);
1006 adminsInfo[aslot][0][0][135] = adminrankz;
1007 adminsInfo[aslot][0][0][136] = 0;
1008 new data[256];
1009 new paruz = contain(adminsInfo[aslot][0][0][1], "STEAM_0:");
1010 GetRankName(adminrankz);
1011 new var4;
1012 if (paruz == -1)
1013 {
1014 var4 = 41556;
1015 }
1016 else
1017 {
1018 var4 = 41568;
1019 }
1020 GetRankFlags(adminrankz);
1021 format(data, 256, "\"%s\" \"\" \"%s\" \"%s\" ; %s - %s", adminsInfo[aslot][0][0][1], Heap_200, var4, adminsInfo[aslot][0][0][51], Heap_200);
1022 ReWriteAdmins();
1023 AdminRank[targetddd] = adminrankz;
1024 return 0;
1025}
1026
1027public ClientMessage_Hodesh(client)
1028{
1029 if (4 > GetPlayerAdminRank(client))
1030 {
1031 return 1;
1032 }
1033 new Msg[25];
1034 read_argv(1, Msg, 25);
1035 remove_quotes(Msg);
1036 if (!is_str_num(Msg))
1037 {
1038 ColorChat(client, "You must type only numbers.");
1039 client_cmd(client, "messagemode Jailbreak_Hodesh");
1040 return 1;
1041 }
1042 ChoosenShit[client][0][0][0] = str_to_num(Msg);
1043 ClientMenu_Time(client);
1044 return 1;
1045}
1046
1047public ClientMessage_Yom(client)
1048{
1049 !!! Removed Phi
1050 if (GetPlayerAdminRank(client) < 4 || !target[client][0][0])
1051 {
1052 return 1;
1053 }
1054 new Msg[25];
1055 read_argv(1, Msg, 25);
1056 remove_quotes(Msg);
1057 if (!is_str_num(Msg))
1058 {
1059 ColorChat(client, "You must type only numbers.");
1060 client_cmd(client, "messagemode Jailbreak_Yom");
1061 return 1;
1062 }
1063 ChoosenShit[client][0][0][1] = str_to_num(Msg);
1064 ClientMenu_Time(client);
1065 return 1;
1066}
1067
1068public ClientMessage_Sha(client)
1069{
1070 !!! Removed Phi
1071 if (GetPlayerAdminRank(client) < 4 || !target[client][0][0])
1072 {
1073 return 1;
1074 }
1075 new Msg[25];
1076 read_argv(1, Msg, 25);
1077 remove_quotes(Msg);
1078 if (!is_str_num(Msg))
1079 {
1080 ColorChat(client, "You must type only numbers.");
1081 client_cmd(client, "messagemode Jailbreak_Sha");
1082 return 1;
1083 }
1084 ChoosenShit[client][0][0][2] = str_to_num(Msg);
1085 ClientMenu_Time(client);
1086 return 1;
1087}
1088
1089public ClientMessage_Daka(client)
1090{
1091 !!! Removed Phi
1092 if (GetPlayerAdminRank(client) < 4 || !target[client][0][0])
1093 {
1094 return 1;
1095 }
1096 new Msg[25];
1097 read_argv(1, Msg, 25);
1098 remove_quotes(Msg);
1099 if (!is_str_num(Msg))
1100 {
1101 ColorChat(client, "You must type only numbers.");
1102 client_cmd(client, "messagemode Jailbreak_Daka");
1103 return 1;
1104 }
1105 ChoosenShit[client][0][0][3] = str_to_num(Msg);
1106 ClientMenu_Time(client);
1107 return 1;
1108}
1109
1110GetRankName(rankx)
1111{
1112 new returnrank[50];
1113 switch (rankx)
1114 {
1115 case 0:
1116 {
1117 format(returnrank, 50, "None");
1118 }
1119 case 1:
1120 {
1121 format(returnrank, 50, "VIP");
1122 }
1123 case 2:
1124 {
1125 format(returnrank, 50, "Admin");
1126 }
1127 case 3:
1128 {
1129 format(returnrank, 50, "Super Admin");
1130 }
1131 case 4:
1132 {
1133 format(returnrank, 50, "Manager");
1134 }
1135 case 5:
1136 {
1137 format(returnrank, 50, "Owner");
1138 }
1139 default:
1140 {
1141 format(returnrank, 50, "fuck you silvi");
1142 }
1143 }
1144
1145/ * ERROR! ×”×”×¤× ×™×” ל×ובייקט ×œ× ×”×•×’×“×¨×” למופע של ×ובייקט. * /
1146 function "GetRankName"
1147GetRankName(rankx)
1148
1149GetRankFlags(rankx)
1150{
1151 new returnrank[50];
1152 switch (rankx)
1153 {
1154 case 0:
1155 {
1156 format(returnrank, 50, "z");
1157 }
1158 case 1:
1159 {
1160 format(returnrank, 50, "ceir");
1161 }
1162 case 2:
1163 {
1164 format(returnrank, 50, "cefhijm");
1165 }
1166 case 3:
1167 {
1168 format(returnrank, 50, "cefhijkmnp");
1169 }
1170 case 4:
1171 {
1172 format(returnrank, 50, "acdefghijkmnopqrstu");
1173 }
1174 case 5:
1175 {
1176 format(returnrank, 50, "abcdefghijklmnopqrstuy");
1177 }
1178 default:
1179 {
1180 format(returnrank, 50, "fuck you silvi");
1181 }
1182 }
1183
1184/ * ERROR! ×”×”×¤× ×™×” ל×ובייקט ×œ× ×”×•×’×“×¨×” למופע של ×ובייקט. * /
1185 function "GetRankFlags"
1186GetRankFlags(rankx)
1187
1188GetFreeAdminID()
1189{
1190 new i = 0;
1191 while (i < 25)
1192 {
1193 if (adminsInfo[i][0][0][0])
1194 {
1195 i++;
1196 }
1197 else
1198 {
1199 return i;
1200 }
1201 i++;
1202 }
1203 return 0;
1204}
1205
1206GetSteamID(client)
1207{
1208 new psteamid[50];
1209 get_user_authid(client, psteamid, 50);
1210
1211/ * ERROR! ×”×”×¤× ×™×” ל×ובייקט ×œ× ×”×•×’×“×¨×” למופע של ×ובייקט. * /
1212 function "GetSteamID"
1213GetSteamID(client)
1214
1215GetName(client)
1216{
1217 new pname[50];
1218 get_user_name(client, pname, 50);
1219
1220/ * ERROR! ×”×”×¤× ×™×” ל×ובייקט ×œ× ×”×•×’×“×¨×” למופע של ×ובייקט. * /
1221 function "GetName"
1222GetName(client)
1223
1224GetOnlinePlayer(String:steamidx[])
1225{
1226 new steamidz[50];
1227 new i = 0;
1228 while (i < 33)
1229 {
1230 if (is_user_connected(i))
1231 {
1232 get_user_authid(i, steamidz, 50);
1233 if (!strcmp(steamidz, steamidx, 1))
1234 {
1235 return i;
1236 }
1237 i++;
1238 }
1239 i++;
1240 }
1241 return 0;
1242}
1243
1244GetAdminID(String:steamidx[])
1245{
1246 new i = 0;
1247 while (i < 25)
1248 {
1249 if (adminsInfo[i][0][0][0] == 1)
1250 {
1251 if (!strcmp(adminsInfo[i][0][0][1], steamidx, 1))
1252 {
1253 return i;
1254 }
1255 i++;
1256 }
1257 i++;
1258 }
1259 return -1;
1260}
1261
1262GetReplacedName(String:name[])
1263{
1264 !!! Removed Phi
1265 if (contain(replaced, "<") == -1 && contain(replaced, ">") == -1 && contain(replaced, "'") == -1 && contain(replaced, "`") == -1)
1266 {
1267 replace_all(replaced, 32, "<", "|");
1268 replace_all(replaced, 32, ">", "|");
1269 replace_all(replaced, 32, "'", "");
1270 replace_all(replaced, 32, "`", "");
1271 }
1272
1273GetPlayerAdminRank(client)
1274{
1275 return AdminRank[client][0][0];
1276}
1277
1278GetPlayerAdminRank2(String:steamidd[])
1279{
1280 !!! Removed Phi
1281 new clientrank = 0;
1282 new Handle:query = 0;
1283 query = SQL_PrepareQuery(sql_con, "SELECT `AdminRank` FROM `admins_manage` WHERE `steamid`='%s'", steamidd);
1284 if (!SQL_Execute(query))
1285 {
1286 log_amx("Failed to read data");
1287 return -1;
1288 }
1289 if (0 < SQL_NumResults(query))
1290 {
1291 clientrank = SQL_ReadResult(query, 0);
1292 }
1293 return clientrank;
1294}
1295
1296ColorChat(id, String:string[])
1297{
1298 new msg[191];
1299 new players[32];
1300 new count = 1;
1301 static len;
1302 len = formatex(msg, 190, "\3[cW`]\1 ");
1303 vformat(msg[len], 190 - len, string, 3);
1304 if (id)
1305 {
1306 players[0] = id;
1307 }
1308 else
1309 {
1310 get_players(players, count, "ch", "");
1311 }
1312 new i = 0;
1313 while (i < count)
1314 {
1315 if (is_user_connected(players[i]))
1316 {
1317 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), 43516, players[i]);
1318 write_byte(players[i]);
1319 write_string(msg);
1320 message_end();
1321 i++;
1322 }
1323 i++;
1324 }
1325 return 0;
1326}