Guest User

Untitled

a guest
Nov 24th, 2022
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.08 KB | None | 0 0
  1. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  2. #pragma compress 1
  3. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  4.  
  5. #define ELO_CLANS_INTEGRATION // Odkomentuj jeśli masz wgrany na serwer plugin 'SS_ELO_CLANS_SYSTEM' i chcesz go zintegrować z tym pluginem
  6. #define ELO_RESET_INTEGRATION // Odkomentuj jeśli masz wgrany na serwer plugin 'SS_ELO_RESET_SYSTEM' i chcesz go zintegrować z tym pluginem
  7.  
  8. #include <amxmodx>
  9. #include <amxmisc>
  10. #include <colorchat>
  11. #include <sqlx>
  12. #include <csx>
  13. #include <fun>
  14. #include <fakemeta>
  15. #if defined ELO_RESET_INTEGRATION
  16. #include <ss_elo_reset_system>
  17. #endif
  18.  
  19.  
  20. #define PLUGIN "ELO - RANK SYSTEM"
  21. #define VERSION "v3"
  22. #define AUTHOR "Smiguel"
  23.  
  24. #define TASK_RANGA 2001
  25.  
  26.  
  27. // Zmienne ogólne
  28. new bool: ma_vipa[33], bool: ma_svipa[33];
  29. new komunikaty[33];
  30. new hud[33],
  31. hud_forum[33],
  32. hud_godzina[33],
  33. hud_nick[33],
  34. hud_ranking[33],
  35. hud_ranga[33],
  36. hud_postep[33],
  37. hud_konto[33],
  38. hud_r[33],
  39. hud_g[33],
  40. hud_b[33],
  41. Float:hud_x[33],
  42. Float:hud_y[33],
  43. hud_set1[33],
  44. hud_set2[33],
  45. Float:hud_set3[33],
  46. hud_set4[33];
  47. new prefix[33];
  48. new strona[33];
  49. new flag_vip[6], flag_svip[6];
  50. new mvp_punkty[33], mvp_fragi[33], mvp_hs[33];
  51. new punkty_elo[33];
  52. new rank_maxplayers,
  53. rank_position[33];
  54. new ilosc_zabojstw[33],
  55. ilosc_zabojstw_hs[33],
  56. ilosc_zgonow[33],
  57. ilosc_mvp[33],
  58. ilosc_asyst[33];
  59. new zadane_obrazenia[33][33];
  60. new damage_runda[33];
  61. new msg_scoreinfo;
  62. new ilosc_rang,
  63. ranga[33],
  64. nazwa_rangi[33][33],
  65. prog_rangi[33];
  66.  
  67.  
  68. // Zmienne od cvarów
  69. new cv_hostname,
  70. cv_username,
  71. cv_password,
  72. cv_database;
  73. new cv_minplayers,
  74. cv_points_kill,
  75. cv_points_kill_hs,
  76. cv_points_bomb_planted,
  77. cv_points_bomb_defused,
  78. cv_points_assist,
  79. cv_points_mvp,
  80. cv_points_win_tt,
  81. cv_points_win_ct;
  82. new cv_minus_points_for_death;
  83. new cv_flag_vip,
  84. cv_bonus_points_vip,
  85. cv_flag_svip,
  86. cv_bonus_points_svip;
  87. new cv_chat_prefix;
  88. new cv_assist_min_damage;
  89. new cv_hud_system_active;
  90. new cv_hud_site;
  91. new cv_mvp_mode,
  92. cv_mvp_points_kill,
  93. cv_mvp_points_kill_hs,
  94. cv_mvp_points_bomb_planted,
  95. cv_mvp_points_bomb_defused,
  96. cv_mvp_points_assist,
  97. cv_mvp_reset_points_for_death;
  98.  
  99. // Zmiene od plików
  100. new configs_dir[64];
  101. new plik_rangi[96];
  102. new linia_z_pliku[128], dlugosc, dane[2][33];
  103.  
  104. // Zmienne od bazy daych
  105. new hostname[33], username[33], password[33], database[33];
  106. new Handle: mysql_baza;
  107. new err, error[33];
  108. new query2[512];
  109.  
  110. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  111. // POCZĄTKOWA CZĘŚĆ PLUGINU
  112. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  113. public mysql_init()
  114. {
  115. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  116.  
  117. new Handle: connection = SQL_Connect(mysql_baza, err, error,charsmax(error));
  118. new Handle: query;
  119.  
  120. query = SQL_PrepareQuery(connection,
  121. "CREATE TABLE IF NOT EXISTS `elo_rank_system` ( \
  122. `id` int NOT NULL AUTO_INCREMENT, \
  123. `sid` varchar(33) NOT NULL, \
  124. `nick` varchar(33) NOT NULL, \
  125. `elo_points` int NOT NULL, \
  126. `kills` int NOT NULL, \
  127. `kills_hs` int NOT NULL, \
  128. `deaths` int NOT NULL, \
  129. `assists` int NOT NULL, \
  130. `mvp` int NOT NULL, \
  131. `komunikaty` tinyint NOT NULL, \
  132. `hud` tinyint NOT NULL, \
  133. `hud_forum` tinyint NOT NULL, \
  134. `hud_godzina` tinyint NOT NULL, \
  135. `hud_nick` tinyint NOT NULL, \
  136. `hud_ranking` tinyint NOT NULL, \
  137. `hud_ranga` tinyint NOT NULL, \
  138. `hud_postep` tinyint NOT NULL, \
  139. `hud_konto` tinyint NOT NULL, \
  140. `hud_r` int NOT NULL, \
  141. `hud_g` int NOT NULL, \
  142. `hud_b` int NOT NULL, \
  143. `hud_x` char(6) NOT NULL, \
  144. `hud_y` char(6) NOT NULL, \
  145. PRIMARY KEY (`id`) \
  146. );");
  147. SQL_Execute(query);
  148.  
  149. SQL_FreeHandle(query);
  150. SQL_FreeHandle(connection);
  151. }
  152.  
  153. public plugin_init()
  154. {
  155. register_plugin(PLUGIN, VERSION, AUTHOR);
  156.  
  157.  
  158. register_clcmd("say /rank", "menu_glowne");
  159. register_clcmd("say /top15", "menu_glowne");
  160. register_clcmd("say /elo", "menu_glowne");
  161. register_clcmd("say_team /rank", "menu_glowne");
  162. register_clcmd("say_team /top15", "menu_glowne");
  163. register_clcmd("say_team /elo", "menu_glowne");
  164. register_clcmd("elo_menu", "menu_glowne");
  165. register_clcmd("elo_hud", "menu_hud");
  166.  
  167.  
  168. register_event("SendAudio", "wygrana_tt", "a", "2&%!MRAD_terwin");
  169. register_event("SendAudio", "wygrana_ct", "a", "2&%!MRAD_ctwin");
  170. register_event("DeathMsg", "zabojstwo", "a");
  171. register_event("Damage", "obrazenia", "be", "2!0", "3=0", "4!0");
  172. register_logevent("koniec_rundy", 2, "1=Round_End");
  173. register_logevent("poczatek_rundy", 2, "1=Round_Start");
  174. register_message(get_user_msgid("SayText"), "prefix_ranga");
  175.  
  176.  
  177. msg_scoreinfo = get_user_msgid("ScoreInfo");
  178.  
  179.  
  180. cv_minplayers = register_cvar("ss_elo_minplayers", "2"); // Od ilu graczy ma działać system
  181.  
  182. cv_points_kill = register_cvar("ss_elo_points_kill", "4"); // Ile punktów za zabójstwo
  183. cv_points_kill_hs = register_cvar("ss_elo_points_kill_hs", "6"); // Ile punktów za zabójstwo w głowę
  184. cv_points_bomb_planted = register_cvar("ss_elo_bomb_planted", "8"); // Ile punktów za podłożenie bomby
  185. cv_points_bomb_defused = register_cvar("ss_elo_bomb_defused", "8"); // Ile punktów za rozbrojenie bomby
  186. cv_points_assist = register_cvar("ss_elo_points_assist", "2"); // Ile punktów za asystę
  187. cv_points_mvp = register_cvar("ss_elo_points_mvp", "10"); // Ile punktów za mvp (najlepszego gracza rundy)
  188. cv_points_win_tt = register_cvar("ss_elo_points_win_tt", "3"); // Ile punktów dla drużyny TT za wygraną rundę
  189. cv_points_win_ct = register_cvar("ss_elo_points_win_ct", "3"); // Ile punktów dla drużyny CT za wygraną rundę
  190.  
  191. cv_minus_points_for_death = register_cvar("ss_elo_minus_points_for_death", "10"); // Ile ujemnych punktów za zgon
  192.  
  193. cv_flag_vip = register_cvar("ss_elo_flag_vip", "t"); // Flaga vipa
  194. cv_bonus_points_vip = register_cvar("ss_elo_bonus_points_vip", "2"); // Ile dodatkowych puktów dla vipa
  195.  
  196. cv_flag_svip = register_cvar("ss_elo_flag_svip", "s"); // Flaga svipa
  197. cv_bonus_points_svip = register_cvar("ss_elo_bonus_points_svip", "4"); // Ile dodatkowych puktów dla svipa
  198.  
  199. cv_chat_prefix = register_cvar("ss_elo_chat_prefix", "RANK"); // Prefix na czacie
  200.  
  201. cv_assist_min_damage = register_cvar("ss_elo_assist_min_damage", "40"); // Minimalne obrażenia, aby dostać asystę
  202.  
  203. cv_hud_system_active = register_cvar("ss_elo_hud_system_active", "1"); // Czy wbudowany system HUD ma być aktywny? (1 - TAK | 0 - NIE)
  204.  
  205. cv_hud_site = register_cvar("ss_elo_hud_site", "TwojaStrona.pl"); // Adres forum
  206.  
  207. cv_mvp_mode = register_cvar("ss_elo_mvp_mode", "1"); // Jak ma działać system MVP? (1 - MVP dostaje najlepszy gracz | 2 - MVP dostaje najlepszy gracz drużyny, która wygrała rundę)
  208. cv_mvp_points_kill = register_cvar("ss_elo_mvp_points_kill", "2"); // Ile punktów MVP za zabójstwo
  209. cv_mvp_points_kill_hs = register_cvar("ss_elo_mvp_points_kill_hs", "3"); // Ile punktów MVP za zabójstwo w głowę
  210. cv_mvp_points_bomb_planted = register_cvar("ss_elo_mvp_points_bomb_planted", "3"); // Ile punktów MVP za podłożenie bomby
  211. cv_mvp_points_bomb_defused = register_cvar("ss_elo_mvp_points_bomb_defused", "3"); // Ile punktów MVP za rozbrojenie bomby
  212. cv_mvp_points_assist = register_cvar("ss_elo_mvp_points_assist", "1"); // Ile punktów MVP za asystę
  213. cv_mvp_reset_points_for_death = register_cvar("ss_elo_mvp_reset_points_death", "0"); // Czy martwy gracz może dostać MVP? (1 - TAK | 0 - NIE)
  214.  
  215. cv_hostname = register_cvar("ss_elo_rank_system_hostname", "hostname");
  216. cv_username = register_cvar("ss_elo_rank_system_username", "username");
  217. cv_password = register_cvar("ss_elo_rank_system_password", "password");
  218. cv_database = register_cvar("ss_elo_rank_system_database", "database");
  219.  
  220.  
  221. get_configsdir(configs_dir, charsmax(configs_dir));
  222. server_cmd("exec %s/sql.cfg", configs_dir);
  223. server_exec();
  224.  
  225. server_cmd("exec %s/amxx.cfg", configs_dir);
  226. server_exec();
  227.  
  228. get_pcvar_string(cv_hostname, hostname,charsmax(hostname));
  229. get_pcvar_string(cv_username, username,charsmax(username));
  230. get_pcvar_string(cv_password, password,charsmax(password));
  231. get_pcvar_string(cv_database, database,charsmax(database));
  232.  
  233. set_pcvar_string(cv_hostname, "PROTECTED");
  234. set_pcvar_string(cv_username, "PROTECTED");
  235. set_pcvar_string(cv_password, "PROTECTED");
  236. set_pcvar_string(cv_database, "PROTECTED");
  237.  
  238. get_pcvar_string(cv_flag_vip, flag_vip,charsmax(flag_vip));
  239. get_pcvar_string(cv_flag_svip, flag_svip,charsmax(flag_svip));
  240. get_pcvar_string(cv_chat_prefix, prefix,charsmax(prefix));
  241. get_pcvar_string(cv_hud_site, strona,charsmax(strona));
  242.  
  243.  
  244. set_task(1.0, "mysql_init");
  245. set_task(1.0, "configs_init");
  246. }
  247.  
  248. public configs_init()
  249. {
  250. get_configsdir(configs_dir, charsmax(configs_dir));
  251.  
  252. formatex(plik_rangi,charsmax(plik_rangi), "%s/SS_CONFIGS/rangi.ini", configs_dir);
  253.  
  254. if(file_exists(plik_rangi))
  255. {
  256. for(new i = 0, n = 1; read_file(plik_rangi, i, linia_z_pliku,charsmax(linia_z_pliku), dlugosc); i++)
  257. {
  258. if(containi(linia_z_pliku, "//") == -1 && containi(linia_z_pliku, ";") == -1 && !equal(linia_z_pliku, "", 1))
  259. {
  260. parse(linia_z_pliku, dane[0],charsmax(dane[]), dane[1],charsmax(dane[]));
  261.  
  262. formatex(nazwa_rangi[n],charsmax(nazwa_rangi[]), "%s", dane[0]);
  263. prog_rangi[n] = str_to_num(dane[1]);
  264. ilosc_rang++;
  265.  
  266. n++;
  267. }
  268.  
  269. }
  270. }
  271. }
  272.  
  273. public plugin_natives()
  274. {
  275. register_library("ss_elo_rank_system");
  276.  
  277. register_native("ss_get_user_elo_points", "_ss_get_user_elo_points");
  278. register_native("ss_set_user_elo_points", "_ss_set_user_elo_points");
  279. register_native("ss_get_user_elo_rank", "_ss_get_user_elo_rank");
  280. register_native("ss_get_srednia_ranga", "_ss_get_srednia_ranga");
  281. }
  282.  
  283. public _ss_get_user_elo_points(plugin, params) // (id)
  284. {
  285. new id = get_param(1);
  286. return punkty_elo[id];
  287. }
  288.  
  289. public _ss_set_user_elo_points(plugin, params) // (id, wartosc)
  290. {
  291. new id = get_param(1);
  292. new wartosc = get_param(2);
  293.  
  294. punkty_elo[id] = wartosc;
  295. }
  296.  
  297. public _ss_get_user_elo_rank(plugin, params) // (id, tablica)
  298. {
  299. new id = get_param(1);
  300. set_string(2, nazwa_rangi[ranga[id]], charsmax(nazwa_rangi[]));
  301. }
  302.  
  303. public _ss_get_srednia_ranga(plugin, params) // (punkty_elo, tablica)
  304. {
  305. new param_punkty_elo = get_param(1);
  306. new param_ranga = 0
  307.  
  308. for(new i = 1; i <= ilosc_rang; i++)
  309. {
  310. if(param_punkty_elo >= prog_rangi[i] && param_ranga < ilosc_rang)
  311. {
  312. param_ranga++;
  313. }
  314. }
  315.  
  316. set_string(2, nazwa_rangi[param_ranga], charsmax(nazwa_rangi[]));
  317. }
  318.  
  319. public client_authorized(id)
  320. {
  321. if(is_user_hltv(id))
  322. return PLUGIN_CONTINUE;
  323.  
  324. if(get_user_flags(id) & read_flags(flag_vip))
  325. ma_vipa[id] = true;
  326. else
  327. ma_vipa[id] = false;
  328.  
  329. if(get_user_flags(id) & read_flags(flag_svip))
  330. ma_svipa[id] = true;
  331. else
  332. ma_svipa[id] = false;
  333.  
  334. if(task_exists(id + TASK_RANGA))
  335. remove_task(id + TASK_RANGA);
  336.  
  337. hud[id] = true;
  338. hud_forum[id] = true;
  339. hud_godzina[id] = true;
  340. hud_nick[id] = true;
  341. hud_ranking[id] = true;
  342. hud_ranga[id] = true;
  343. hud_postep[id] = true;
  344. hud_konto[id] = true;
  345. hud_r[id] = 0;
  346. hud_g[id] = 255;
  347. hud_b[id] = 0;
  348. hud_x[id] = 0.02;
  349. hud_y[id] = 0.16;
  350. hud_set1[id] = 1;
  351. hud_set2[id] = 0;
  352. hud_set3[id] = 0.01;
  353. hud_set4[id] = 0;
  354.  
  355. komunikaty[id] = true;
  356. punkty_elo[id] = 1000;
  357. ranga[id] = 1;
  358. ilosc_zabojstw[id] = 0;
  359. ilosc_zabojstw_hs[id] = 0;
  360. ilosc_zgonow[id] = 0;
  361. ilosc_mvp[id] = 0;
  362. ilosc_asyst[id] = 0;
  363. mvp_punkty[id] = 0;
  364. mvp_fragi[id] = 0;
  365. mvp_hs[id] = 0;
  366. damage_runda[id] = 0;
  367.  
  368. wczytaj_dane(id);
  369.  
  370. return PLUGIN_CONTINUE;
  371. }
  372.  
  373. public client_disconnected(id)
  374. {
  375. if(is_user_hltv(id))
  376. return PLUGIN_CONTINUE;
  377.  
  378. mvp_punkty[id] = 0;
  379. mvp_fragi[id] = 0;
  380. mvp_hs[id] = 0;
  381.  
  382. zapisz_dane(id);
  383.  
  384. return PLUGIN_CONTINUE;
  385. }
  386.  
  387. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  388. // GŁÓWNA CZĘŚĆ PLUGINU
  389. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  390. public poczatek_rundy()
  391. {
  392. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  393. return PLUGIN_CONTINUE;
  394.  
  395. for(new id = 1; id <= 32; id++)
  396. {
  397. if(is_user_connected(id))
  398. {
  399. mvp_punkty[id] = 0;
  400. mvp_fragi[id] = 0;
  401. mvp_hs[id] = 0;
  402. damage_runda[id] = 0;
  403. }
  404. }
  405.  
  406. return PLUGIN_CONTINUE;
  407. }
  408.  
  409. public koniec_rundy()
  410. {
  411. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  412. return PLUGIN_CONTINUE;
  413.  
  414. new double, id, id_dmg, nick[33];
  415.  
  416. for(new i = 1; i <= 32; i++)
  417. {
  418. if(mvp_punkty[id] == mvp_punkty[i])
  419. {
  420. double = 1;
  421. }
  422. else if(mvp_punkty[id] < mvp_punkty[i])
  423. {
  424. id = i;
  425. double = 0;
  426. }
  427.  
  428. if(damage_runda[id_dmg] < damage_runda[i])
  429. id_dmg = i;
  430. }
  431.  
  432. if(!double && id)
  433. {
  434. if(mvp_punkty[id] > 0)
  435. {
  436. get_user_name(id, nick, charsmax(nick));
  437.  
  438. if(ma_svipa[id])
  439. punkty_elo[id] += get_pcvar_num(cv_points_mvp) + get_pcvar_num(cv_bonus_points_svip);
  440. else if(ma_vipa[id])
  441. punkty_elo[id] += get_pcvar_num(cv_points_mvp) + get_pcvar_num(cv_bonus_points_vip);
  442. else
  443. punkty_elo[id] += get_pcvar_num(cv_points_mvp);
  444.  
  445. ilosc_mvp[id]++;
  446.  
  447. for(new i = 1; i <= 32; i++)
  448. {
  449. if(is_user_connected(i) && komunikaty[i])
  450. {
  451. ColorChat(i, GREEN, "^x04[%s]^x03 Najlepszy gracz rundy:^x04 %s^x03 [Fragi:^x04 %d^x03][Headshot'y:^x04 %d^x03]", prefix, nick, mvp_fragi[id], mvp_hs[id]);
  452. ColorChat(i, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymal(a)^x04 %d %s^x01 za zdobycie MVP", prefix, nick, punkty_elo[id], ma_svipa[id] ? (get_pcvar_num(cv_points_mvp) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[id] ? (get_pcvar_num(cv_points_mvp) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_mvp)), odmiana(get_pcvar_num(cv_points_mvp), "punkt", "ow", "", "y"));
  453. }
  454. }
  455. }
  456. }
  457.  
  458. if(id_dmg)
  459. {
  460. if(damage_runda[id_dmg] > 0)
  461. {
  462. get_user_name(id_dmg, nick, charsmax(nick));
  463. ColorChat(0, GREEN, "^x04[M4A1.PL]^x03 Najwiecej obrazen zadal:^x04 %s^x03 (Obrazenia:^x04 %d^x03)", nick, damage_runda[id_dmg]);
  464. }
  465. }
  466.  
  467. for(new id = 1; id <= 32; id++)
  468. {
  469. if(is_user_connected(id))
  470. aktualizuj_rank(id);
  471. }
  472.  
  473. return PLUGIN_CONTINUE;
  474. }
  475.  
  476. public prefix_ranga(msgId, msgDest, msgEnt)
  477. {
  478. new id = get_msg_arg_int(1);
  479.  
  480. if(is_user_connected(id))
  481. {
  482.  
  483. new szTmp[192], szTmp2[192];
  484. get_msg_arg_string(2, szTmp, charsmax(szTmp));
  485.  
  486. new szPrefix[64];
  487. formatex(szPrefix,charsmax(szPrefix),"^x04[%s]", nazwa_rangi[ranga[id]]);
  488.  
  489. if(!equal(szTmp, "#Cstrike_Chat_All"))
  490. {
  491. add(szTmp2, charsmax(szTmp2), "^x01");
  492. add(szTmp2, charsmax(szTmp2), szPrefix);
  493. add(szTmp2, charsmax(szTmp2), " ");
  494. add(szTmp2, charsmax(szTmp2), szTmp);
  495. }
  496. else
  497. {
  498. new szPlayerName[64];
  499. get_user_name(id, szPlayerName, charsmax(szPlayerName));
  500.  
  501. get_msg_arg_string(4, szTmp, charsmax(szTmp)); //4. argument zawiera treść wysłanej wiadomości
  502. set_msg_arg_string(4, ""); //Musimy go wyzerować, gdyż gra wykorzysta wiadomość podwójnie co może skutkować crash'em 191+ znaków.
  503.  
  504. add(szTmp2, charsmax(szTmp2), "^x01");
  505. add(szTmp2, charsmax(szTmp2), szPrefix);
  506. add(szTmp2, charsmax(szTmp2), "^x03 ");
  507. add(szTmp2, charsmax(szTmp2), szPlayerName);
  508. add(szTmp2, charsmax(szTmp2), "^x01 : ");
  509. add(szTmp2, charsmax(szTmp2), szTmp)
  510. }
  511.  
  512. set_msg_arg_string(2, szTmp2);
  513. }
  514. }
  515.  
  516. public obrazenia(victim)
  517. {
  518. if(!is_user_alive(victim) || get_playersnum(0) < get_pcvar_num(cv_minplayers))
  519. return PLUGIN_CONTINUE;
  520.  
  521. new damage = read_data(2);
  522. new attacker = get_user_attacker(victim);
  523.  
  524. if(!is_user_alive(attacker))
  525. return PLUGIN_CONTINUE;
  526.  
  527. zadane_obrazenia[attacker][victim] += damage;
  528. damage_runda[attacker] += damage;
  529.  
  530. return PLUGIN_CONTINUE;
  531. }
  532.  
  533. public zabojstwo(id)
  534. {
  535. new kid = read_data(1); // zabojca
  536. new vid = read_data(2); // ofiara
  537. new hs = read_data(3); // headshot
  538.  
  539. if(get_user_team(kid) == get_user_team(vid))
  540. return PLUGIN_CONTINUE;
  541.  
  542. new kid2 = 0;
  543. new damage2 = 0;
  544.  
  545. for(new id = 1; id <= 32; id++)
  546. {
  547. if(id != kid && is_user_connected(id) && get_user_team(kid) == get_user_team(id) && zadane_obrazenia[id][vid] >= get_pcvar_num(cv_assist_min_damage) && zadane_obrazenia[id][vid] > damage2)
  548. {
  549. kid2 = id;
  550. damage2 = zadane_obrazenia[id][vid];
  551. }
  552.  
  553. zadane_obrazenia[id][vid] = 0;
  554. }
  555.  
  556. if(kid2 > 0 && damage2 > get_pcvar_num(cv_assist_min_damage))
  557. {
  558. set_user_frags(kid2, get_user_frags(kid2) + 1);
  559.  
  560. message_begin(MSG_ALL, msg_scoreinfo);
  561. write_byte(kid2);
  562. write_short(get_user_frags(kid2));
  563. write_short(get_user_deaths(kid2));
  564. write_short(0);
  565. write_short(get_user_team(kid));
  566. message_end();
  567.  
  568. new nick_atakujacego[33], nick_asystujacego[33], nick_ofiary[33];
  569. get_user_name(kid, nick_atakujacego, charsmax(nick_atakujacego))
  570. get_user_name(kid2, nick_asystujacego, charsmax(nick_asystujacego))
  571. get_user_name(vid, nick_ofiary, charsmax(nick_ofiary))
  572.  
  573. if(ma_svipa[kid2])
  574. punkty_elo[kid2] += get_pcvar_num(cv_points_assist) + get_pcvar_num(cv_bonus_points_svip);
  575. else if(ma_vipa[kid2])
  576. punkty_elo[kid2] += get_pcvar_num(cv_points_assist) + get_pcvar_num(cv_bonus_points_vip);
  577. else
  578. punkty_elo[kid2] += get_pcvar_num(cv_points_assist);
  579.  
  580. ilosc_asyst[kid2]++;
  581. mvp_punkty[kid2] += get_pcvar_num(cv_mvp_points_assist);
  582. mvp_fragi[kid2]++;
  583.  
  584. if(komunikaty[kid2])
  585. {
  586. ColorChat(kid2, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymales(as)^x04 %d %s^x01 za pomoc^x03 %s^x04 (^x03%d^x04)^x01 w zabiciu^x03 %s^x04 (^x03%d^x04)", prefix, nick_asystujacego, punkty_elo[kid2], ma_svipa[kid2] ? (get_pcvar_num(cv_points_assist) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[kid2] ? (get_pcvar_num(cv_points_assist) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_assist)), odmiana(get_pcvar_num(cv_points_assist), "punkt", "ow", "", "y"), nick_atakujacego, punkty_elo[kid], nick_ofiary, punkty_elo[vid]);
  587. }
  588. }
  589.  
  590. new nick[33], nick_ofiary[33];
  591. get_user_name(kid, nick, charsmax(nick));
  592. get_user_name(vid, nick_ofiary, charsmax(nick_ofiary));
  593.  
  594. if(hs)
  595. {
  596. if(ma_svipa[kid])
  597. punkty_elo[kid] += get_pcvar_num(cv_points_kill_hs) + get_pcvar_num(cv_bonus_points_svip);
  598. else if(ma_vipa[kid])
  599. punkty_elo[kid] += get_pcvar_num(cv_points_kill_hs) + get_pcvar_num(cv_bonus_points_vip);
  600. else
  601. punkty_elo[kid] += get_pcvar_num(cv_points_kill_hs);
  602.  
  603. ilosc_zabojstw_hs[kid]++;
  604. ilosc_zabojstw[kid]++;
  605. mvp_punkty[kid] += get_pcvar_num(cv_mvp_points_kill_hs);
  606. mvp_fragi[kid]++;
  607. mvp_hs[kid]++;
  608.  
  609. if(komunikaty[kid])
  610. {
  611. ColorChat(kid, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymales(as)^x04 %d %s^x01 za zabicie w glowe^x03 %s^x04 (^x03%d^x04)", prefix, nick, punkty_elo[kid], ma_svipa[kid] ? (get_pcvar_num(cv_points_kill_hs) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[kid] ? (get_pcvar_num(cv_points_kill_hs) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_kill_hs)), odmiana(get_pcvar_num(cv_points_kill_hs), "punkt", "ow", "", "y"), nick_ofiary, punkty_elo[vid]);
  612. }
  613. }
  614. else
  615. {
  616. if(ma_svipa[kid])
  617. punkty_elo[kid] += get_pcvar_num(cv_points_kill) + get_pcvar_num(cv_bonus_points_svip);
  618. else if(ma_vipa[kid])
  619. punkty_elo[kid] += get_pcvar_num(cv_points_kill) + get_pcvar_num(cv_bonus_points_vip);
  620. else
  621. punkty_elo[kid] += get_pcvar_num(cv_points_kill);
  622.  
  623. ilosc_zabojstw[kid]++;
  624. mvp_punkty[kid] += get_pcvar_num(cv_mvp_points_kill);
  625. mvp_fragi[kid]++;
  626.  
  627. if(komunikaty[kid])
  628. {
  629. ColorChat(kid, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymales(as)^x04 %d %s^x01 za zabicie^x03 %s^x04 (^x03%d^x04)", prefix, nick, punkty_elo[kid], ma_svipa[kid] ? (get_pcvar_num(cv_points_kill) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[kid] ? (get_pcvar_num(cv_points_kill) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_kill)), odmiana(get_pcvar_num(cv_points_kill), "punkt", "ow", "", "y"), nick_ofiary, punkty_elo[vid]);
  630. }
  631. }
  632.  
  633. if(get_pcvar_num(cv_mvp_reset_points_for_death))
  634. mvp_punkty[vid] = 0;
  635.  
  636. punkty_elo[vid] -= get_pcvar_num(cv_minus_points_for_death);
  637. ilosc_zgonow[vid]++;
  638.  
  639. if(komunikaty[vid])
  640. {
  641. if(kid == vid || kid == 0)
  642. {
  643. ColorChat(vid, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 straciles(as)^x04 %d %s^x01 za zgon", prefix, nick_ofiary, punkty_elo[vid], get_pcvar_num(cv_minus_points_for_death), odmiana(get_pcvar_num(cv_minus_points_for_death), "punkt", "ow", "", "y"));
  644. }
  645. else
  646. {
  647. ColorChat(vid, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 straciles(as)^x04 %d %s^x01 za smierc z reki^x03 %s^x04 (^x03%d^x04)", prefix, nick_ofiary, punkty_elo[vid], get_pcvar_num(cv_minus_points_for_death), odmiana(get_pcvar_num(cv_minus_points_for_death), "punkt", "ow", "", "y"), nick, punkty_elo[kid]);
  648. }
  649. }
  650.  
  651. return PLUGIN_CONTINUE;
  652. }
  653.  
  654. public bomb_planted(id)
  655. {
  656. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  657. return PLUGIN_CONTINUE;
  658.  
  659. new nick[33];
  660. get_user_name(id, nick, charsmax(nick));
  661.  
  662. if(ma_svipa[id])
  663. punkty_elo[id] += get_pcvar_num(cv_points_bomb_planted) + get_pcvar_num(cv_bonus_points_svip);
  664. else if(ma_vipa[id])
  665. punkty_elo[id] += get_pcvar_num(cv_points_bomb_planted) + get_pcvar_num(cv_bonus_points_vip);
  666. else
  667. punkty_elo[id] += get_pcvar_num(cv_points_bomb_planted);
  668.  
  669. mvp_punkty[id] += get_pcvar_num(cv_mvp_points_bomb_planted);
  670.  
  671. for(new i = 1; i <= 32; i++)
  672. {
  673. if(is_user_connected(i) && get_user_team(i) == get_user_team(id))
  674. {
  675. if(komunikaty[i])
  676. {
  677. ColorChat(i, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymal(a)^x04 %d %s^x01 za podlozenie bomby", prefix, nick, punkty_elo[id], ma_svipa[id] ? (get_pcvar_num(cv_points_bomb_planted) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[id] ? (get_pcvar_num(cv_points_bomb_planted) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_bomb_planted)), odmiana(get_pcvar_num(cv_points_bomb_planted), "punkt", "ow", "", "y"));
  678. }
  679. }
  680. }
  681.  
  682. return PLUGIN_CONTINUE;
  683. }
  684.  
  685. public bomb_defused(id)
  686. {
  687. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  688. return PLUGIN_CONTINUE;
  689.  
  690. new nick[33];
  691. get_user_name(id, nick, charsmax(nick));
  692.  
  693. if(ma_svipa[id])
  694. punkty_elo[id] += get_pcvar_num(cv_points_bomb_defused) + get_pcvar_num(cv_bonus_points_svip);
  695. else if(ma_vipa[id])
  696. punkty_elo[id] += get_pcvar_num(cv_points_bomb_defused) + get_pcvar_num(cv_bonus_points_vip);
  697. else
  698. punkty_elo[id] += get_pcvar_num(cv_points_bomb_defused);
  699.  
  700. mvp_punkty[id] += get_pcvar_num(cv_mvp_points_bomb_defused);
  701.  
  702. for(new i = 1; i <= 32; i++)
  703. {
  704. if(is_user_connected(i) && get_user_team(i) == get_user_team(id))
  705. {
  706. if(komunikaty[i])
  707. {
  708. ColorChat(i, GREEN, "^x04[%s]^x03 %s^x04 (^x03%d^x04)^x01 otrzymal(a)^x04 %d %s^x01 za rozbrojenie bomby", prefix, nick, punkty_elo[id], ma_svipa[id] ? (get_pcvar_num(cv_points_bomb_defused) + get_pcvar_num(cv_bonus_points_svip)) : (ma_vipa[id] ? (get_pcvar_num(cv_points_bomb_defused) + get_pcvar_num(cv_bonus_points_vip)) : get_pcvar_num(cv_points_bomb_defused)), odmiana(get_pcvar_num(cv_points_bomb_defused), "punkt", "ow", "", "y"));
  709. }
  710. }
  711. }
  712.  
  713. return PLUGIN_CONTINUE;
  714. }
  715.  
  716. public wygrana_tt()
  717. {
  718. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  719. return PLUGIN_CONTINUE;
  720.  
  721. if(get_pcvar_num(cv_mvp_mode) == 2)
  722. {
  723. for(new id = 1; id <= 32; id++)
  724. {
  725. if(is_user_connected(id) && get_user_team(id) == 2)
  726. {
  727. mvp_punkty[id] = 0;
  728. }
  729. }
  730. }
  731.  
  732. for(new i = 1; i <= 32; i++)
  733. {
  734. if(is_user_connected(i) && get_user_team(i) == 1)
  735. {
  736. punkty_elo[i] += get_pcvar_num(cv_points_win_tt);
  737.  
  738. if(komunikaty[i])
  739. {
  740. ColorChat(i, GREEN, "^x04[%s]^x03 Druzyna TT^x01 otrzymala po^x04 %d %s^x01 za zwyciestwo rundy", prefix, get_pcvar_num(cv_points_win_tt), odmiana(get_pcvar_num(cv_points_win_tt), "punkt", "ow", "", "y"));
  741. }
  742. }
  743. else if(is_user_connected(i))
  744. {
  745. if(komunikaty[i])
  746. {
  747. ColorChat(i, GREEN, "^x04[%s]^x03 Druzyna TT^x01 otrzymala po^x04 %d %s^x01 za zwyciestwo rundy", prefix, get_pcvar_num(cv_points_win_tt), odmiana(get_pcvar_num(cv_points_win_tt), "punkt", "ow", "", "y"));
  748. }
  749. }
  750. }
  751.  
  752. return PLUGIN_CONTINUE;
  753. }
  754.  
  755. public wygrana_ct()
  756. {
  757. if(get_playersnum(0) < get_pcvar_num(cv_minplayers))
  758. return PLUGIN_CONTINUE;
  759.  
  760. if(get_pcvar_num(cv_mvp_mode) == 2)
  761. {
  762. for(new id = 1; id <= 32; id++)
  763. {
  764. if(is_user_connected(id) && get_user_team(id) == 1)
  765. {
  766. mvp_punkty[id] = 0;
  767. }
  768. }
  769. }
  770.  
  771. for(new i = 1; i <= 32; i++)
  772. {
  773. if(is_user_connected(i) && get_user_team(i) == 2)
  774. {
  775. punkty_elo[i] += get_pcvar_num(cv_points_win_ct);
  776.  
  777. if(komunikaty[i])
  778. {
  779. ColorChat(i, GREEN, "^x04[%s]^x03 Druzyna CT^x01 otrzymala po^x04 %d %s^x01 za zwyciestwo rundy", prefix, get_pcvar_num(cv_points_win_ct), odmiana(get_pcvar_num(cv_points_win_ct), "punkt", "ow", "", "y"));
  780. }
  781. }
  782. else if(is_user_connected(i))
  783. {
  784. if(komunikaty[i])
  785. {
  786. ColorChat(i, GREEN, "^x04[%s]^x03 Druzyna CT^x01 otrzymala po^x04 %d %s^x01 za zwyciestwo rundy", prefix, get_pcvar_num(cv_points_win_ct), odmiana(get_pcvar_num(cv_points_win_ct), "punkt", "ow", "", "y"));
  787. }
  788. }
  789. }
  790.  
  791. return PLUGIN_CONTINUE;
  792. }
  793.  
  794. public nadaj_range(id)
  795. {
  796. id -= TASK_RANGA;
  797.  
  798. if(punkty_elo[id] >= prog_rangi[ranga[id] + 1])
  799. {
  800. ranga[id]++;
  801. }
  802. else if(punkty_elo[id] < prog_rangi[ranga[id]])
  803. {
  804. ranga[id]--;
  805. }
  806.  
  807. if(punkty_elo[id] < 0)
  808. punkty_elo[id] = 0;
  809.  
  810.  
  811. if(hud[id])
  812. {
  813. if(get_pcvar_num(cv_hud_system_active) == 1)
  814. {
  815. new hudmsg[512], hudlen, czas[9], nick[33], postep[20];
  816.  
  817. get_time("%H:%M", czas, charsmax(czas));
  818.  
  819. if(!is_user_alive(id))
  820. {
  821. new target = pev(id, pev_iuser2);
  822.  
  823. if(is_user_connected(target) && is_user_alive(target))
  824. {
  825. get_user_name(target, nick,charsmax(nick));
  826.  
  827. if((ranga[target] + 1) > ilosc_rang)
  828. formatex(postep,charsmax(postep), "MAX");
  829. else
  830. formatex(postep,charsmax(postep), "%d/%d", punkty_elo[target], prog_rangi[ranga[target] + 1]);
  831.  
  832. if(hud_forum[target])
  833. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Forum: %s^n", strona);
  834. if(hud_godzina[target])
  835. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Godzina: %s^n", czas);
  836. if(hud_nick[target])
  837. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Nick: %s^n", nick);
  838. if(hud_ranking[target])
  839. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Ranking: %d/%d^n", rank_position[target], rank_maxplayers);
  840. if(hud_ranga[target])
  841. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Ranga: %s^n", nazwa_rangi[ranga[target]]);
  842. if(hud_postep[target])
  843. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Postep: %s^n", postep);
  844. if(hud_konto[target])
  845. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Konto: %s^n", ma_svipa[target] ? "SuperVIP" : (ma_vipa[target] ? "VIP" : "FREE"));
  846.  
  847. set_hudmessage(hud_r[target], hud_g[target], hud_b[target], hud_x[target], hud_y[target], 0, 6.00, 0.92, 0.10, 0.10, -1);
  848. show_hudmessage(id, "%s", hudmsg);
  849. }
  850. }
  851. else
  852. {
  853. get_user_name(id, nick,charsmax(nick));
  854.  
  855. if((ranga[id] + 1) > ilosc_rang)
  856. formatex(postep,charsmax(postep), "MAX");
  857. else
  858. formatex(postep,charsmax(postep), "%d/%d", punkty_elo[id], prog_rangi[ranga[id] + 1]);
  859.  
  860. if(hud_forum[id])
  861. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Forum: %s^n", strona);
  862. if(hud_godzina[id])
  863. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Godzina: %s^n", czas);
  864. if(hud_nick[id])
  865. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Nick: %s^n", nick);
  866. if(hud_ranking[id])
  867. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Ranking: %d/%d^n", rank_position[id], rank_maxplayers);
  868. if(hud_ranga[id])
  869. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Ranga: %s^n", nazwa_rangi[ranga[id]]);
  870. if(hud_postep[id])
  871. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Postep: %s^n", postep);
  872. if(hud_konto[id])
  873. hudlen += formatex(hudmsg[hudlen], charsmax(hudmsg) - hudlen, "[#] Konto: %s^n", ma_svipa[id] ? "SuperVIP" : (ma_vipa[id] ? "VIP" : "FREE"));
  874.  
  875. set_hudmessage(hud_r[id], hud_g[id], hud_b[id], hud_x[id], hud_y[id], 0, 6.00, 0.92, 0.10, 0.10, -1);
  876. show_hudmessage(id, "%s", hudmsg);
  877. }
  878. }
  879. }
  880. }
  881.  
  882. public menu_glowne(id)
  883. {
  884. new item[3][48];
  885. new menu = menu_create("\w--\y==\r| \wELO RANK SYSTEM \r|\y==\w--\R", "menu_glowne_handle");
  886.  
  887. #if defined ELO_RESET_INTEGRATION
  888. if(ss_elors_get_user_winner(id) == 1)
  889. {
  890. formatex(item[0],charsmax(item[]), "\rGratulacje! \yZostales graczem miesiaca :)^n%s^n", (ss_elors_get_cvar_skiny() == 1 || ss_elors_get_cvar_skiny() == 3) ? ((ss_elors_get_cvar_poswiata() == 1 || ss_elors_get_cvar_poswiata() == 3) ? "\wNagroda: \rskiny + poswiata" : "\wNagroda: \rskiny") : (ss_elors_get_cvar_poswiata() == 1 || ss_elors_get_cvar_poswiata() == 3) ? "\wNagroda: \rposwiata" : "\yOby tak dalej!");
  891. menu_additem(menu, item[0], "0");
  892. }
  893. #endif
  894.  
  895. menu_additem(menu, "\yRank", "1");
  896. menu_additem(menu, "\yTop 15", "2");
  897.  
  898. #if defined ELO_CLANS_INTEGRATION
  899. menu_additem(menu, "\yDruzyny^n", "3");
  900. #endif
  901.  
  902. menu_additem(menu, "\yLista rang^n", "4");
  903.  
  904. #if defined ELO_RESET_INTEGRATION
  905. menu_additem(menu, "\yNajlepsi gracze ubieglych lat^n", "5");
  906. #endif
  907.  
  908. formatex(item[0],charsmax(item[]), "\yKomunikaty \d[%s\d]", komunikaty[id] == 1 ? "\wON" : "\rOFF");
  909. menu_additem(menu, item[0], "6");
  910.  
  911. #if defined ELO_RESET_INTEGRATION
  912. if((ss_elors_get_cvar_skiny() == 1 || ss_elors_get_cvar_skiny() == 3) && ss_elors_get_user_winner(id) == 1)
  913. formatex(item[1],charsmax(item[]), "\ySkiny \d[%s\d]", ss_elors_get_onoff_models(id) == 1 ? "\wON" : "\rOFF");
  914. #endif
  915.  
  916. #if defined ELO_RESET_INTEGRATION
  917. if((ss_elors_get_cvar_skiny() == 1 || ss_elors_get_cvar_skiny() == 3) && ss_elors_get_user_winner(id) == 1)
  918. menu_additem(menu, item[1], "8");
  919. #endif
  920.  
  921. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  922. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  923. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  924. menu_display(id, menu);
  925. }
  926.  
  927. public menu_glowne_handle(id, menu, item)
  928. {
  929. if(item == MENU_EXIT)
  930. {
  931. menu_destroy(menu);
  932. return PLUGIN_CONTINUE;
  933. }
  934.  
  935. new dostep, info[6], nazwa[6], cb;
  936. menu_item_getinfo(menu, item, dostep, info,charsmax(info), nazwa,charsmax(nazwa), cb);
  937.  
  938. switch(str_to_num(info))
  939. {
  940. case 0: menu_glowne(id);
  941. case 1: rank(id);
  942. case 2: top15(id);
  943. case 3: client_cmd(id, "clans_menu");
  944. case 4: lista_rang(id);
  945. #if defined ELO_RESET_INTEGRATION
  946. case 5: ss_elors_show_top_players_menu(id);
  947. #endif
  948. case 6:
  949. {
  950. komunikaty[id] = !komunikaty[id];
  951. menu_glowne(id);
  952. }
  953. #if defined ELO_RESET_INTEGRATION
  954. case 7:
  955. {
  956. ss_elors_onoff_models(id);
  957. menu_glowne(id);
  958. }
  959. #endif
  960. }
  961.  
  962. return PLUGIN_CONTINUE;
  963. }
  964.  
  965. public rank(id)
  966. {
  967. new item[10][48], nick[33];
  968. new menu = menu_create("\w--\y==\r| \wRANK \r|\y==\w--\R", "rank_handle");
  969.  
  970. get_user_name(id, nick, charsmax(nick));
  971.  
  972. menu_additem(menu, "\y<-- WROC^n");
  973.  
  974. formatex(item[0],charsmax(item[]), "\wTwoj nick: \r%s", nick);
  975. formatex(item[1],charsmax(item[]), "\wPozycja w rankingu: \r%d\d/\y%d", rank_position[id], rank_maxplayers);
  976. formatex(item[2],charsmax(item[]), "\wPunkty ELO: \r%d", punkty_elo[id]);
  977. formatex(item[3],charsmax(item[]), "\wRanga: \r%s", nazwa_rangi[ranga[id]]);
  978. formatex(item[4],charsmax(item[]), "\wZabojstwa: \r%d", ilosc_zabojstw[id]);
  979. formatex(item[5],charsmax(item[]), "\wZabojstwa w glowe: \r%d", ilosc_zabojstw_hs[id]);
  980. formatex(item[6],charsmax(item[]), "\wProcent headshot'ow: \r%.1f%", ilosc_zabojstw_hs[id] > 0 ? ((float(ilosc_zabojstw_hs[id]) / float(ilosc_zabojstw[id])) * 100.0) : float(0));
  981. formatex(item[7],charsmax(item[]), "\wZgony: \r%d", ilosc_zgonow[id]);
  982. formatex(item[8],charsmax(item[]), "\wAsysty: \r%d", ilosc_asyst[id]);
  983. formatex(item[9],charsmax(item[]), "\wMVP: \r%d", ilosc_mvp[id]);
  984. menu_additem(menu, item[0]);
  985. menu_additem(menu, item[1]);
  986. menu_additem(menu, item[2]);
  987. menu_additem(menu, item[3]);
  988. menu_additem(menu, item[4]);
  989. menu_additem(menu, item[5]);
  990. menu_additem(menu, item[6]);
  991. menu_additem(menu, item[7]);
  992. menu_additem(menu, item[8]);
  993. menu_additem(menu, item[9]);
  994.  
  995. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  996. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  997. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  998. menu_display(id, menu);
  999. }
  1000.  
  1001. public rank_handle(id, menu, item)
  1002. {
  1003. if(item == MENU_EXIT)
  1004. {
  1005. menu_destroy(menu);
  1006. return PLUGIN_CONTINUE;
  1007. }
  1008.  
  1009. switch(item)
  1010. {
  1011. case 0: menu_glowne(id);
  1012. default: rank(id);
  1013. }
  1014.  
  1015. return PLUGIN_CONTINUE;
  1016. }
  1017.  
  1018. public top15(id)
  1019. {
  1020. new top15[2048];
  1021. new maxplayers = rank_maxplayers;
  1022. new len = 0;
  1023.  
  1024. if(maxplayers > 15)
  1025. maxplayers = 15;
  1026.  
  1027. len = formatex(top15, charsmax(top15), "<meta charset=utf-8><body bgcolor=#000000 style=^"font-family: sans-serif;^"><font color=#ffffff><pre>");
  1028. len += formatex(top15[len], charsmax(top15) - len, "%2s %-22.22s %15s %15s %10s %10s %10s^n", "#", "Nick", "Punkty ELO", "Zabójstwa", "Zgony", "MVP", "Procent HS");
  1029.  
  1030. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  1031.  
  1032. new Handle: connection = SQL_Connect(mysql_baza, err, error,charsmax(error));
  1033. new Handle: query;
  1034.  
  1035. query = SQL_PrepareQuery(connection, "SELECT `nick`, `elo_points`, `kills`, `kills_hs`, `deaths`, `mvp` FROM `elo_rank_system` ORDER BY `elo_points` DESC LIMIT 15;");
  1036. SQL_Execute(query);
  1037.  
  1038. if(SQL_NumResults(query) > 0)
  1039. {
  1040. new top_nick[33], top_elo, top_kills, top_kills_hs, top_deaths, top_mvp;
  1041.  
  1042. for(new i = 1; i <= maxplayers && charsmax(top15) - len > 0; i++)
  1043. {
  1044. SQL_ReadResult(query, 0, top_nick, charsmax(top_nick));
  1045. top_elo = SQL_ReadResult(query, 1);
  1046. top_kills = SQL_ReadResult(query, 2);
  1047. top_kills_hs = SQL_ReadResult(query, 3);
  1048. top_deaths = SQL_ReadResult(query, 4);
  1049. top_mvp = SQL_ReadResult(query, 5);
  1050.  
  1051. replace_all(top_nick, charsmax(top_nick), "<", "[");
  1052. replace_all(top_nick, charsmax(top_nick), ">", "]");
  1053.  
  1054. len += formatex(top15[len], charsmax(top15) - len, "%2d %-22.22s %8d %14d %11d %8d %13.1f%%^n",
  1055. i, top_nick, top_elo, top_kills, top_deaths, top_mvp, top_kills_hs > 0 ? ((float(top_kills_hs) / float(top_kills)) * 100) : float(0));
  1056.  
  1057. SQL_NextRow(query);
  1058. }
  1059. }
  1060.  
  1061. show_motd(id, top15, "TOP 15");
  1062.  
  1063. SQL_FreeHandle(query);
  1064. SQL_FreeHandle(connection);
  1065. }
  1066.  
  1067. public lista_rang(id)
  1068. {
  1069. new item[48];
  1070. new menu = menu_create("\w--\y==\r| \wLISTA RANG \r|\y==\w--\R", "lista_rang_handle");
  1071.  
  1072. menu_additem(menu, "\y<-- WROC^n");
  1073.  
  1074. for(new i = 1; i <= ilosc_rang; i++)
  1075. {
  1076. formatex(item,charsmax(item), "\w%s \r[OD \y%d \rPKT]", nazwa_rangi[i], prog_rangi[i]);
  1077. menu_additem(menu, item);
  1078. }
  1079.  
  1080. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  1081. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  1082. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  1083. menu_display(id, menu);
  1084. }
  1085.  
  1086. public lista_rang_handle(id, menu, item)
  1087. {
  1088. if(item == MENU_EXIT)
  1089. {
  1090. menu_destroy(menu);
  1091. return PLUGIN_CONTINUE;
  1092. }
  1093.  
  1094. switch(item)
  1095. {
  1096. case 0: menu_glowne(id);
  1097. default: lista_rang(id);
  1098. }
  1099.  
  1100. return PLUGIN_CONTINUE;
  1101. }
  1102.  
  1103. public menu_hud(id)
  1104. {
  1105. new menu_item[64];
  1106. new menu = menu_create("\w--\y==\r| \wUSTAWIENIA HUD \r|\y==\w--\R", "menu_hud_handle");
  1107.  
  1108. formatex(menu_item,charsmax(menu_item), "\yHUD \w[%s\w]^n", hud[id] == 1 ? "\yON" : "\rOFF");
  1109. menu_additem(menu, menu_item);
  1110. menu_additem(menu, "\wInformacje");
  1111. menu_additem(menu, "\wKolor");
  1112. menu_additem(menu, "\wPozycja");
  1113.  
  1114. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  1115. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  1116. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  1117. menu_display(id, menu);
  1118. }
  1119.  
  1120. public menu_hud_handle(id, menu, item)
  1121. {
  1122. if(item == MENU_EXIT)
  1123. {
  1124. menu_destroy(menu);
  1125. return PLUGIN_CONTINUE;
  1126. }
  1127.  
  1128. switch(item)
  1129. {
  1130. case 0:
  1131. {
  1132. hud[id] = !hud[id];
  1133. menu_hud(id);
  1134. }
  1135. case 1:
  1136. {
  1137. menu_hud_info(id);
  1138. }
  1139. case 2:
  1140. {
  1141. hud_set1[id] = 1;
  1142.  
  1143. menu_hud_kolor(id);
  1144. }
  1145. case 3:
  1146. {
  1147. hud_set3[id] = 0.02;
  1148.  
  1149. menu_hud_pozycja(id);
  1150. }
  1151. }
  1152.  
  1153. return PLUGIN_CONTINUE;
  1154. }
  1155.  
  1156. public menu_hud_info(id)
  1157. {
  1158. new item[33];
  1159. new menu = menu_create("\w--\y==\r| \wUSTAWIENIA HUD - KOLOR \r|\y==\w--\R", "menu_hud_info_handle");
  1160.  
  1161. formatex(item,charsmax(item), "\wForum \y[\r%s\y]", hud_forum[id] == 1 ? "ON" : "OFF");
  1162. menu_additem(menu, item);
  1163. formatex(item,charsmax(item), "\wGodzina \y[\r%s\y]", hud_godzina[id] == 1 ? "ON" : "OFF");
  1164. menu_additem(menu, item);
  1165. formatex(item,charsmax(item), "\wNick \y[\r%s\y]", hud_nick[id] == 1 ? "ON" : "OFF");
  1166. menu_additem(menu, item);
  1167. formatex(item,charsmax(item), "\wRanking \y[\r%s\y]", hud_ranking[id] == 1 ? "ON" : "OFF");
  1168. menu_additem(menu, item);
  1169. formatex(item,charsmax(item), "\wRanga \y[\r%s\y]", hud_ranga[id] == 1 ? "ON" : "OFF");
  1170. menu_additem(menu, item);
  1171. formatex(item,charsmax(item), "\wPostep \y[\r%s\y]", hud_postep[id] == 1 ? "ON" : "OFF");
  1172. menu_additem(menu, item);
  1173. formatex(item,charsmax(item), "\wKonto \y[\r%s\y]", hud_konto[id] == 1 ? "ON" : "OFF");
  1174. menu_additem(menu, item);
  1175.  
  1176. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  1177. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  1178. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  1179. menu_display(id, menu);
  1180. }
  1181.  
  1182. public menu_hud_info_handle(id, menu, item)
  1183. {
  1184. if(item == MENU_EXIT)
  1185. {
  1186. menu_destroy(menu);
  1187. menu_hud(id);
  1188. return PLUGIN_CONTINUE;
  1189. }
  1190.  
  1191. switch(item)
  1192. {
  1193. case 0: hud_forum[id] = !hud_forum[id];
  1194. case 1: hud_godzina[id] = !hud_godzina[id];
  1195. case 2: hud_nick[id] = !hud_nick[id];
  1196. case 3: hud_ranking[id] = !hud_ranking[id];
  1197. case 4: hud_ranga[id] = !hud_ranga[id];
  1198. case 5: hud_postep[id] = !hud_postep[id];
  1199. case 6: hud_konto[id] = !hud_konto[id];
  1200. }
  1201.  
  1202. menu_hud_info(id);
  1203.  
  1204. return PLUGIN_CONTINUE;
  1205. }
  1206.  
  1207.  
  1208. public menu_hud_kolor(id)
  1209. {
  1210. new item[33];
  1211. new menu = menu_create("\w--\y==\r| \wUSTAWIENIA HUD - KOLOR \r|\y==\w--\R", "menu_hud_kolor_handle");
  1212.  
  1213. formatex(item,charsmax(item), "\yZmieniaj o: \r%d", hud_set1[id]);
  1214. menu_additem(menu, item);
  1215. formatex(item,charsmax(item), "\yZmieniaj w: \r%s^n", hud_set2[id] == 0 ? "gore" : "dol");
  1216. menu_additem(menu, item);
  1217.  
  1218. formatex(item,charsmax(item), "\wCzerwony: \r%d", hud_r[id]);
  1219. menu_additem(menu, item);
  1220. formatex(item,charsmax(item), "\wZielony: \r%d", hud_g[id]);
  1221. menu_additem(menu, item);
  1222. formatex(item,charsmax(item), "\wNiebieski: \r%d", hud_b[id]);
  1223. menu_additem(menu, item);
  1224.  
  1225. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  1226. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  1227. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  1228. menu_display(id, menu);
  1229. }
  1230.  
  1231. public menu_hud_kolor_handle(id, menu, item)
  1232. {
  1233. if(item == MENU_EXIT)
  1234. {
  1235. menu_destroy(menu);
  1236. menu_hud(id);
  1237. return PLUGIN_CONTINUE;
  1238. }
  1239.  
  1240. switch(item)
  1241. {
  1242. case 0:
  1243. {
  1244. hud_set1[id] += 4;
  1245.  
  1246. if(hud_set1[id] > 50)
  1247. hud_set1[id] = 1;
  1248. else if(hud_set1[id] > 25)
  1249. hud_set1[id] = 50;
  1250. else if(hud_set1[id] > 15)
  1251. hud_set1[id] = 25;
  1252. else if(hud_set1[id] > 10)
  1253. hud_set1[id] = 15;
  1254. else if(hud_set1[id] > 5)
  1255. hud_set1[id] = 10;
  1256. }
  1257. case 1:
  1258. {
  1259. hud_set2[id] = !hud_set2[id];
  1260. }
  1261. case 2:
  1262. {
  1263. if(!hud_set2[id])
  1264. hud_r[id] += hud_set1[id];
  1265. else hud_r[id] -= hud_set1[id];
  1266.  
  1267. if(hud_r[id] > 255 || hud_r[id] < 0)
  1268. hud_r[id] = 0;
  1269. }
  1270. case 3:
  1271. {
  1272. if(!hud_set2[id])
  1273. hud_g[id] += hud_set1[id];
  1274. else hud_g[id] -= hud_set1[id];
  1275.  
  1276. if(hud_g[id] > 255 || hud_g[id] < 0)
  1277. hud_g[id] = 0;
  1278. }
  1279. case 4:
  1280. {
  1281. if(!hud_set2[id])
  1282. hud_b[id] += hud_set1[id];
  1283. else hud_b[id] -= hud_set1[id];
  1284.  
  1285. if(hud_b[id] > 255 || hud_b[id] < 0)
  1286. hud_b[id] = 0;
  1287. }
  1288. }
  1289.  
  1290. menu_hud_kolor(id);
  1291.  
  1292. return PLUGIN_CONTINUE;
  1293. }
  1294.  
  1295. public menu_hud_pozycja(id)
  1296. {
  1297. new item[33];
  1298. new menu = menu_create("\w--\y==\r| \wUSTAWIENIA HUD - POZYCJA \r|\y==\w--\R", "menu_hud_pozycja_handle");
  1299.  
  1300. formatex(item,charsmax(item), "\yZmieniaj o: \r%.2f", hud_set3[id]);
  1301. menu_additem(menu, item);
  1302. formatex(item,charsmax(item), "\yZmieniaj w: \r%s^n", hud_set4[id] == 0 ? "gore" : "dol");
  1303. menu_additem(menu, item);
  1304.  
  1305. formatex(item,charsmax(item), "\wOs X: \r%.2f", hud_x[id]);
  1306. menu_additem(menu, item);
  1307. formatex(item,charsmax(item), "\wOs Y: \r%.2f", hud_y[id]);
  1308. menu_additem(menu, item);
  1309.  
  1310. menu_setprop(menu, MPROP_NEXTNAME, "\y-->");
  1311. menu_setprop(menu, MPROP_BACKNAME, "\y<--");
  1312. menu_setprop(menu, MPROP_EXITNAME, "\r[X]");
  1313. menu_display(id, menu);
  1314. }
  1315.  
  1316. public menu_hud_pozycja_handle(id, menu, item)
  1317. {
  1318. if(item == MENU_EXIT)
  1319. {
  1320. menu_destroy(menu);
  1321. menu_hud(id);
  1322. return PLUGIN_CONTINUE;
  1323. }
  1324.  
  1325. switch(item)
  1326. {
  1327. case 0:
  1328. {
  1329. hud_set3[id] += 0.04 - 0.01;
  1330.  
  1331. if(hud_set3[id] > 0.10)
  1332. hud_set3[id] = 0.02;
  1333. else if(hud_set3[id] > 0.05)
  1334. hud_set3[id] = 0.10;
  1335. }
  1336. case 1:
  1337. {
  1338. hud_set4[id] = !hud_set4[id];
  1339. }
  1340. case 2:
  1341. {
  1342. if(!hud_set4[id])
  1343. hud_x[id] += hud_set3[id] - 0.01;
  1344. else hud_x[id] -= hud_set3[id] - 0.01;
  1345.  
  1346. if((hud_x[id] > -1.0 || hud_x[id] < -1.0) && (hud_x[id] < 0.0))
  1347. hud_x[id] = 0.0;
  1348.  
  1349. if(hud_x[id] > 1.0)
  1350. hud_x[id] = -1.0;
  1351.  
  1352. if(hud_x[id] < 0.0)
  1353. hud_x[id] = -1.0;
  1354. }
  1355. case 3:
  1356. {
  1357. if(!hud_set4[id])
  1358. hud_y[id] += hud_set3[id] - 0.01;
  1359. else hud_y[id] -= hud_set3[id] - 0.01;
  1360.  
  1361. if((hud_y[id] > -1.0 || hud_y[id] < -1.0) && (hud_y[id] < 0.0))
  1362. hud_y[id] = 0.0;
  1363.  
  1364. if(hud_y[id] > 1.0)
  1365. hud_y[id] = -1.0;
  1366.  
  1367. if(hud_y[id] < 0.0)
  1368. hud_y[id] = -1.0;
  1369. }
  1370. }
  1371.  
  1372. menu_hud_pozycja(id);
  1373.  
  1374. return PLUGIN_CONTINUE;
  1375. }
  1376.  
  1377. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  1378. // ZAPIS I ODCZYT DANYCH
  1379. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  1380. public wczytaj_dane(id)
  1381. {
  1382. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  1383.  
  1384. new Handle: connection = SQL_Connect(mysql_baza, err, error,charsmax(error));
  1385. new Handle: query;
  1386.  
  1387. new sid[33];
  1388. get_user_authid(id, sid,charsmax(sid));
  1389.  
  1390. query = SQL_PrepareQuery(connection, "SELECT count(*) AS `pozycja` FROM `elo_rank_system` WHERE elo_points > (SELECT `elo_points` FROM `elo_rank_system` WHERE `sid` = '%s');", sid);
  1391. SQL_Execute(query);
  1392.  
  1393. if(SQL_NumResults(query) > 0)
  1394. rank_position[id] = (SQL_ReadResult(query, 0) + 1);
  1395. else
  1396. zapisz_dane(id);
  1397.  
  1398. query = SQL_PrepareQuery(connection, "SELECT * FROM `elo_rank_system` WHERE `sid` = '%s';", sid);
  1399. SQL_Execute(query);
  1400.  
  1401. if(SQL_NumResults(query) > 0)
  1402. {
  1403. punkty_elo[id] = SQL_ReadResult(query, 3);
  1404. ilosc_zabojstw[id] = SQL_ReadResult(query, 4);
  1405. ilosc_zabojstw_hs[id] = SQL_ReadResult(query, 5);
  1406. ilosc_zgonow[id] = SQL_ReadResult(query, 6);
  1407. ilosc_asyst[id] = SQL_ReadResult(query, 7);
  1408. ilosc_mvp[id] = SQL_ReadResult(query, 8);
  1409. komunikaty[id] = SQL_ReadResult(query, 9);
  1410. hud[id] = SQL_ReadResult(query, 10);
  1411. hud_forum[id] = SQL_ReadResult(query, 11);
  1412. hud_godzina[id] = SQL_ReadResult(query, 12);
  1413. hud_nick[id] = SQL_ReadResult(query, 13);
  1414. hud_ranking[id] = SQL_ReadResult(query, 14);
  1415. hud_ranga[id] = SQL_ReadResult(query, 15);
  1416. hud_postep[id] = SQL_ReadResult(query, 16);
  1417. hud_konto[id] = SQL_ReadResult(query, 17);
  1418. hud_r[id] = SQL_ReadResult(query, 18);
  1419. hud_g[id] = SQL_ReadResult(query, 19);
  1420. hud_b[id] = SQL_ReadResult(query, 20);
  1421. SQL_ReadResult(query, 21, hud_x[id]);
  1422. SQL_ReadResult(query, 22, hud_y[id]);
  1423. }
  1424. else zapisz_dane(id);
  1425.  
  1426. query = SQL_PrepareQuery(connection, "SELECT `id` FROM `elo_rank_system`;");
  1427. SQL_Execute(query);
  1428.  
  1429. rank_maxplayers = SQL_NumResults(query);
  1430.  
  1431. SQL_FreeHandle(query);
  1432. SQL_FreeHandle(connection);
  1433.  
  1434. set_task(1.0, "nadaj_range", (id + TASK_RANGA),_,_,"b");
  1435. }
  1436.  
  1437. public zapisz_dane(id)
  1438. {
  1439. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  1440.  
  1441. new Handle: connection = SQL_Connect(mysql_baza, err, error,charsmax(error));
  1442. new Handle: query;
  1443.  
  1444. new nick[33], sid[33];
  1445. get_user_name(id, nick,charsmax(nick));
  1446. get_user_authid(id, sid,charsmax(sid));
  1447.  
  1448. query = SQL_PrepareQuery(connection, "SELECT `id` FROM `elo_rank_system` WHERE `sid` = '%s';", sid);
  1449. SQL_Execute(query);
  1450.  
  1451. if(SQL_NumResults(query) > 0)
  1452. {
  1453. query = SQL_PrepareQuery(connection, "UPDATE `elo_rank_system` SET `elo_points` = '%d', `kills` = '%d', `kills_hs` = '%d', `deaths` = '%d', `assists` = '%d', `mvp` = '%d', `komunikaty` = '%d', `hud` = '%d', `hud_forum` = '%d', `hud_godzina` = '%d', `hud_nick` = '%d', `hud_ranking` = '%d', `hud_ranga` = '%d', `hud_postep` = '%d', `hud_konto` = '%d', `hud_r` = '%d', `hud_g` = '%d', `hud_b` = '%d', `hud_x` = '%.2f', `hud_y` = '%.2f' WHERE `sid` = '%s';",
  1454. punkty_elo[id], ilosc_zabojstw[id], ilosc_zabojstw_hs[id], ilosc_zgonow[id], ilosc_asyst[id], ilosc_mvp[id], komunikaty[id], hud[id], hud_forum[id], hud_godzina[id], hud_nick[id], hud_ranking[id], hud_ranga[id], hud_postep[id], hud_konto[id], hud_r[id], hud_g[id], hud_b[id], hud_x[id], hud_y[id], sid);
  1455. SQL_Execute(query);
  1456. }
  1457. else
  1458. {
  1459. query = SQL_PrepareQuery(connection, "INSERT INTO `elo_rank_system` VALUES (NULL, '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%.2f', '%.2f');", sid, nick, punkty_elo[id], ilosc_zabojstw[id], ilosc_zabojstw_hs[id], ilosc_zgonow[id], ilosc_asyst[id], ilosc_mvp[id], komunikaty[id], hud[id], hud_forum[id], hud_godzina[id], hud_nick[id], hud_ranking[id], hud_ranga[id], hud_postep[id], hud_konto[id], hud_r[id], hud_g[id], hud_b[id], hud_x[id], hud_y[id]);
  1460. SQL_Execute(query);
  1461. }
  1462.  
  1463. SQL_FreeHandle(query);
  1464. SQL_FreeHandle(connection);
  1465. }
  1466.  
  1467. public aktualizuj_rank(id)
  1468. {
  1469. new ids[1]; ids[0] = id;
  1470.  
  1471. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  1472.  
  1473. new sid[33];
  1474. get_user_authid(id, sid,charsmax(sid));
  1475.  
  1476. formatex(query2, charsmax(query2), "SELECT `id` FROM `elo_rank_system` WHERE `sid` = '%s';", sid);
  1477. SQL_ThreadQuery(mysql_baza, "aktualizuj_rank_handle", query2, ids, 1);
  1478.  
  1479.  
  1480. formatex(query2, charsmax(query2), "SELECT `id` FROM `elo_rank_system`;");
  1481. SQL_ThreadQuery(mysql_baza, "aktualizuj_rank_handle2", query2, ids, 1);
  1482.  
  1483. formatex(query2, charsmax(query2), "SELECT count(*) AS `pozycja` FROM `elo_rank_system` WHERE elo_points > (SELECT `elo_points` FROM `elo_rank_system` WHERE `sid` = '%s');", sid);
  1484. SQL_ThreadQuery(mysql_baza, "aktualizuj_rank_handle3", query2, ids, 1);
  1485. }
  1486.  
  1487. public aktualizuj_rank_handle(failstate, Handle:query_odp, error[], errnum, data[], size)
  1488. {
  1489. if(failstate != TQUERY_SUCCESS)
  1490. {
  1491. log_amx("SQL Error: %s", error);
  1492. return PLUGIN_CONTINUE;
  1493. }
  1494.  
  1495. new id = data[0];
  1496.  
  1497. if(!is_user_connected(id))
  1498. return PLUGIN_CONTINUE;
  1499.  
  1500. mysql_baza = SQL_MakeDbTuple(hostname, username, password, database);
  1501.  
  1502. new nick[33], sid[33];
  1503. get_user_name(id, nick,charsmax(nick));
  1504. get_user_authid(id, sid,charsmax(sid));
  1505.  
  1506. if(SQL_NumResults(query_odp) > 0)
  1507. {
  1508. formatex(query2, charsmax(query2), "UPDATE `elo_rank_system` SET `elo_points` = '%d', `kills` = '%d', `kills_hs` = '%d', `deaths` = '%d', `assists` = '%d', `mvp` = '%d', `komunikaty` = '%d', `hud` = '%d', `hud_forum` = '%d', `hud_godzina` = '%d', `hud_nick` = '%d', `hud_ranking` = '%d', `hud_ranga` = '%d', `hud_postep` = '%d', `hud_konto` = '%d', `hud_r` = '%d', `hud_g` = '%d', `hud_b` = '%d', `hud_x` = '%.2f', `hud_y` = '%.2f' WHERE `sid` = '%s';",
  1509. punkty_elo[id], ilosc_zabojstw[id], ilosc_zabojstw_hs[id], ilosc_zgonow[id], ilosc_asyst[id], ilosc_mvp[id], komunikaty[id], hud[id], hud_forum[id], hud_godzina[id], hud_nick[id], hud_ranking[id], hud_ranga[id], hud_postep[id], hud_konto[id], hud_r[id], hud_g[id], hud_b[id], hud_x[id], hud_y[id], sid);
  1510. SQL_ThreadQuery(mysql_baza, "aktualizuj_rank_handle4", query2);
  1511. }
  1512. else
  1513. {
  1514. formatex(query2, charsmax(query2), "INSERT INTO `elo_rank_system` VALUES (NULL, '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%.2f', '%.2f');",
  1515. sid, nick, punkty_elo[id], ilosc_zabojstw[id], ilosc_zabojstw_hs[id], ilosc_zgonow[id], ilosc_asyst[id], ilosc_mvp[id], komunikaty[id], hud[id], hud_forum[id], hud_godzina[id], hud_nick[id], hud_ranking[id], hud_ranga[id], hud_postep[id], hud_konto[id], hud_r[id], hud_g[id], hud_b[id], hud_x[id], hud_y[id]);
  1516. SQL_ThreadQuery(mysql_baza, "aktualizuj_rank_handle4", query2);
  1517. }
  1518.  
  1519. return PLUGIN_CONTINUE;
  1520. }
  1521.  
  1522. public aktualizuj_rank_handle2(failstate, Handle:query_odp, error[], errnum, data[], size)
  1523. {
  1524. if(failstate != TQUERY_SUCCESS)
  1525. {
  1526. log_amx("SQL Error: %s", error);
  1527. return PLUGIN_CONTINUE;
  1528. }
  1529.  
  1530. new id = data[0];
  1531.  
  1532. if(!is_user_connected(id))
  1533. return PLUGIN_CONTINUE;
  1534.  
  1535. rank_maxplayers = SQL_NumResults(query_odp);
  1536.  
  1537. return PLUGIN_CONTINUE;
  1538. }
  1539.  
  1540. public aktualizuj_rank_handle3(failstate, Handle:query_odp, error[], errnum, data[], size)
  1541. {
  1542. if(failstate != TQUERY_SUCCESS)
  1543. {
  1544. log_amx("SQL Error: %s", error);
  1545. return PLUGIN_CONTINUE;
  1546. }
  1547.  
  1548. new id = data[0];
  1549.  
  1550. if(!is_user_connected(id))
  1551. return PLUGIN_CONTINUE;
  1552.  
  1553. if(SQL_NumResults(query_odp) > 0)
  1554. rank_position[id] = (SQL_ReadResult(query_odp, 0) + 1);
  1555.  
  1556. return PLUGIN_CONTINUE;
  1557. }
  1558.  
  1559. public aktualizuj_rank_handle4(failstate, Handle:query_odp, error[], errnum, data[], size)
  1560. {
  1561. if(failstate != TQUERY_SUCCESS)
  1562. {
  1563. log_amx("SQL Error: %s", error);
  1564. return PLUGIN_CONTINUE;
  1565. }
  1566.  
  1567. return PLUGIN_CONTINUE;
  1568. }
  1569.  
  1570. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  1571. // STOCKI
  1572. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
  1573. stock odmiana(ile, czlon[], zero[], jeden[], dwa[])
  1574. {
  1575. new odmienione_slowo[33];
  1576.  
  1577. ile = abs(ile);
  1578.  
  1579. if(ile == 1)
  1580. {
  1581. formatex(odmienione_slowo,charsmax(odmienione_slowo), "%s%s", czlon, jeden);
  1582. return odmienione_slowo;
  1583. }
  1584. if((ile % 10 == 2 || ile % 10 == 3 || ile % 10 == 4) && (!(ile % 100 == 12 || ile % 100 == 13 || ile % 100 == 14)))
  1585. {
  1586. formatex(odmienione_slowo,charsmax(odmienione_slowo), "%s%s", czlon, dwa);
  1587. return odmienione_slowo;
  1588. }
  1589.  
  1590. formatex(odmienione_slowo,charsmax(odmienione_slowo), "%s%s", czlon, zero);
  1591. return odmienione_slowo;
  1592. }
Add Comment
Please, Sign In to add comment