Advertisement
Guest User

Untitled

a guest
Apr 6th, 2018
776
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.00 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <fakemeta>
  6. #include <fun>
  7. #include <engine>
  8. #include <fakemeta_util>
  9. #include <csx>
  10. #include <sqlx>
  11.  
  12. // Hostname, nustatyk čia.
  13. #define HOSTNAME "[MIX Arena] #1 VirtualNET.LT"
  14.  
  15. // Prefix'as prie tekstų
  16. #define PREFIX "^4MIX^1"
  17.  
  18. // Flagas, pagal kurį bus atpažįstamas administratorius, kuris galės valdyti MIX serverį
  19. #define FLAG ADMIN_BAN
  20.  
  21. #define MIX_HOST "127.0.0.1"
  22. #define MIX_USER "root"
  23. #define MIX_PASSWORD ""
  24. #define MIX_DATABASE "rush_arena"
  25.  
  26. #define POINTS_KILL 1
  27. #define POINTS_DEATH -1
  28. #define POINTS_ACE 10
  29. #define POINTS_HS 3
  30. #define POINTS_MINI_ACE 5
  31. #define POINTS_MIX_PLAYED 20
  32. #define POINTS_MIX_LOST -10
  33. #define POINTS_MIX_WON 20
  34. #define POINTS_MIX_DRAW 5
  35.  
  36. #define BOMB_PLANTED_POINTS 3
  37. #define BOMB_DEFUSED_POINTS 7
  38.  
  39. enum
  40. {
  41. TASK_MVP = 15
  42. }
  43.  
  44. new Handle:g_hTuple;
  45.  
  46. new const szTables[][] =
  47. {
  48. "CREATE TABLE IF NOT EXISTS `mix_players` (`player_id` varchar(32) NOT NULL, `player_name` varchar(64), `kills` int(16) NOT NULL, `deaths` int(16) NOT NULL, `headshots` int(16), `m_aces` int(16), `aces` int(16), `mix_played` int(16) NOT NULL, `mix_won` int(16) NOT NULL, `mix_lost` int(16) NOT NULL, `mix_draw` int(16) NOT NULL, `points` int(16) NOT NULL, `last_online` varchar(64), PRIMARY KEY (`player_id`))",
  49. "CREATE TABLE IF NOT EXISTS `mix_games` (`id` int(32) NOT NULL AUTO_INCREMENT, `map_name` varchar(64) NOT NULL, `date` varchar(64), `rez_ct` int(16), `rez_t` int(16), PRIMARY KEY (`id`))",
  50. "CREATE TABLE IF NOT EXISTS `mix_gun` (`gun_id` int(32) NOT NULL, `kills` int(16), PRIMARY KEY (`gun_id`))",
  51. }
  52.  
  53. new pKills[33], pDeaths[33], pHeadshots[33], pAces[33], pMiniAces[33], pMixPlayed[33], pMixLost[33], pMixDraw[33], pMixWon[33], pPoints[33], bool:pLoaded[33];
  54.  
  55. new pTempKills[33], pTempDeaths[33], pTempHeadshots[33], pTempAces[33], pTempMiniAces[33], pTempPoints[33], pTempPlants[33], pTempDefusions[33];
  56.  
  57. new pTempAK[33], pTempM4A1[33], pTempDeagle[33], pTempAWP[33], pTempUSP[33], pTempHE[33], pTempGlock[33], pTempKnives[33], pTempScout[33], pTempFamas[33];
  58.  
  59. #define isAdmin(%1) (get_user_flags(%1) & FLAG)
  60.  
  61. new scoreT, scoreCT, serverPassword[64], tempCT, tempT, tempCount;
  62. new bool:WarmUp = true, bool:KnifeRound, bool:passwordStatus, bool:canChat = true, bool:PrepareRound, bool:Fire;
  63. new Kills[33];
  64.  
  65. new const BlockCmds[][] =
  66. {
  67. "amx_unban",
  68. "amx_rcon",
  69. "amx_cvar",
  70. "amxmodmenu"
  71. }
  72.  
  73. new const Commands[][][] =
  74. {
  75. {"menu", "mainMenu"},
  76. {"mixmenu", "mainMenu"},
  77. {"live", "setLive"},
  78. {"rr", "restartRound"},
  79. {"restart", "restartRound"},
  80. {"wm", "warmUP"},
  81. {"warmup", "warmUP"},
  82. {"gg", "endGame"},
  83. {"stop", "endGame"},
  84. {"knife", "setKnife"},
  85. {"knf", "setKnife"},
  86. {"score", "getScore"},
  87. {"rez", "getScore"},
  88. {"pw", "infoPassword"},
  89. {"renkam", "setPrepare"}
  90. }
  91.  
  92. public plugin_init()
  93. {
  94. register_plugin("MIX Panel", "1.5", "InvIs"); // Edit Terror.
  95.  
  96. register_dictionary("mix_arena.txt");
  97.  
  98. new szFmt[64];
  99.  
  100. for(new i = 0; i < sizeof(BlockCmds); i++)
  101. {
  102. register_concmd(BlockCmds[i], "BlockConsole");
  103. }
  104.  
  105. for(new i = 0; i < sizeof(Commands); i++)
  106. {
  107. format(szFmt, 63, "say .%s", Commands[i][0]);
  108. register_clcmd(szFmt, Commands[i][1]);
  109. format(szFmt, 63, "say /%s", Commands[i][0]);
  110. register_clcmd(szFmt, Commands[i][1]);
  111. format(szFmt, 63, "say !%s", Commands[i][0]);
  112. register_clcmd(szFmt, Commands[i][1]);
  113. format(szFmt, 63, "say_team .%s", Commands[i][0]);
  114. register_clcmd(szFmt, Commands[i][1]);
  115. format(szFmt, 63, "say_team /%s", Commands[i][0]);
  116. register_clcmd(szFmt, Commands[i][1]);
  117. format(szFmt, 63, "say_team !%s", Commands[i][0]);
  118. register_clcmd(szFmt, Commands[i][1]);
  119. }
  120.  
  121. register_clcmd("jointeam", "cmd_block");
  122.  
  123. register_clcmd("say .choose", "choosePlayers");
  124. register_clcmd("say /choose", "choosePlayers");
  125.  
  126. register_clcmd("say .ban", "BanMenu");
  127. register_clcmd("say .kick", "KickMenu");
  128. register_clcmd("say .maps", "MapsMenu");
  129. register_clcmd("say .leave", "LeaveMenu");
  130.  
  131. register_clcmd("say .chaton", "Chat");
  132. register_clcmd("say .chatoff", "ChatMenu");
  133.  
  134. register_clcmd("say .ff", "FriendlyFire");
  135.  
  136. register_clcmd("say .stats", "PlayerRank");
  137. register_clcmd("say .top", "showTOP");
  138.  
  139. register_clcmd("say .rank", "showPlayerStats");
  140. register_clcmd("say .me", "showPlayerRank");
  141. register_clcmd("say .ace", "showPlayerAce");
  142.  
  143. register_clcmd("SetPassword", "_SetPassword");
  144.  
  145. register_clcmd("say /setstats", "Ranking");
  146.  
  147. register_clcmd("say", "hookSay");
  148.  
  149. server_cmd("sv_password ^"^"");
  150.  
  151. register_event("DeathMsg", "DeathEvent", "a");
  152.  
  153. RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
  154.  
  155. register_logevent("RoundEnd", 2, "1=Round_End");
  156.  
  157. register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin");
  158. register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin");
  159.  
  160. register_forward(FM_Voice_SetClientListening, "ClientListen");
  161.  
  162. server_cmd("hostname ^"%s^"", HOSTNAME);
  163. }
  164.  
  165. public PlayerRank(id)
  166. {
  167. static query[512];
  168. formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pPoints[id]);
  169. log_amx(query)
  170. static data[2];
  171. data[0] = id;
  172.  
  173. SQL_ThreadQuery(g_hTuple, "QueryLoadStats", query, data, sizeof(data));
  174. return PLUGIN_HANDLED;
  175. }
  176.  
  177. public QueryLoadStats(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  178. {
  179. if(failstate == TQUERY_CONNECT_FAILED || failstate == TQUERY_QUERY_FAILED)
  180. {
  181. set_fail_state(error);
  182. }
  183. else
  184. {
  185. new id = data[0];
  186.  
  187. if(SQL_NumResults(hQuery))
  188. {
  189. client_printcolor(id, "/y[/ctr%s/y] /yTaškai.: ^3%d ^4| /yNužudymai.: ^3%d ^4| /yMirtys.: ^3%d ^4| /yHS.: ^3%d ^4| /yMini-ACE.: ^3%d ^4| /yACE.: ^3%d", PREFIX, pPoints[id], pKills[id], pDeaths[id], pHeadshots[id], pMiniAces[id], pAces[id])
  190. client_printcolor(id, "/y[/ctr%s/y] /ySužaisti.: ^3%d ^4| /yLaimėta.: ^3%d ^4| /yPralaimėta.: ^3%d ^4| /yLygiosiomis.: ^3%d", PREFIX, pMixPlayed[id], pMixWon[id], pMixLost[id], pMixDraw[id])
  191. }
  192. }
  193. }
  194.  
  195. public QueryLoadRank(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  196. {
  197. if( failstate == TQUERY_CONNECT_FAILED || failstate == TQUERY_QUERY_FAILED)
  198. {
  199. set_fail_state(error);
  200. }
  201. else
  202. {
  203. new id = data[0];
  204.  
  205. if(SQL_NumResults(hQuery))
  206. {
  207. new colRank = SQL_ReadResult(hQuery, 0) + 1;
  208. client_printcolor(id, "/y[/ctr%s/y] Tavo rankas yra /ctr%d", PREFIX, colRank);
  209. }
  210. }
  211. }
  212.  
  213. public showPlayerRank(id)
  214. {
  215. static query[512];
  216. formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pPoints[id]);
  217. log_amx(query)
  218. static data[2];
  219. data[0] = id;
  220.  
  221. SQL_ThreadQuery(g_hTuple, "QueryLoadRank", query, data, sizeof(data));
  222. return PLUGIN_HANDLED;
  223. }
  224.  
  225. public showPlayerStats(id)
  226. {
  227. new menu = menu_create("\w[\rMIX\w] Statistika\r", "showPlayerStatsHandler");
  228.  
  229. new players[32], pnum, tempid;
  230.  
  231. new szName[35], szUserId[35];
  232.  
  233. get_players(players, pnum);
  234.  
  235. for(new i; i<pnum; i++)
  236. {
  237. tempid = players[i];
  238.  
  239. if(!is_user_connected(tempid)) continue;
  240.  
  241. get_user_name(tempid, szName, charsmax(szName));
  242. get_user_authid(tempid, szUserId, 34);
  243.  
  244. menu_additem(menu, szName, szUserId, 0);
  245. }
  246.  
  247. menu_display(id, menu, 0);
  248.  
  249. return PLUGIN_HANDLED;
  250. }
  251.  
  252. public showPlayerStatsHandler(id, menu, item)
  253. {
  254. if(item == MENU_EXIT)
  255. {
  256. menu_destroy(menu)
  257. return PLUGIN_HANDLED;
  258. }
  259. new szData[64], szName[64];
  260. new _access, item_callback;
  261. menu_item_getinfo(menu, item, _access, szData, charsmax(szData), szName, charsmax(szName), item_callback);
  262.  
  263. new link[128];
  264.  
  265. format(link, 127, "http://cs.saudyk.lt/stats/player.php?sid=%s", szData);
  266. show_motd(id, link, "Player statistika");
  267.  
  268. menu_destroy(menu);
  269. return PLUGIN_HANDLED;
  270. }
  271.  
  272. public BanMenu(id)
  273. {
  274. if(!isAdmin(id))
  275. return PLUGIN_HANDLED;
  276.  
  277. client_cmd(id, "amx_banmenu");
  278.  
  279. return PLUGIN_HANDLED;
  280. }
  281.  
  282. public KickMenu(id)
  283. {
  284. if(!isAdmin(id))
  285. return PLUGIN_HANDLED;
  286.  
  287. client_cmd(id, "amx_kickmenu");
  288.  
  289. return PLUGIN_HANDLED;
  290. }
  291.  
  292. public MapsMenu(id)
  293. {
  294. if(!isAdmin(id))
  295. return PLUGIN_HANDLED;
  296.  
  297. client_cmd(id, "amx_mapmenu");
  298.  
  299. return PLUGIN_HANDLED;
  300. }
  301.  
  302. public LeaveMenu(id)
  303. {
  304. if(!isAdmin(id))
  305. return PLUGIN_HANDLED;
  306.  
  307. client_cmd(id, "amx_bandisconnectedmenu");
  308.  
  309. return PLUGIN_HANDLED;
  310. }
  311.  
  312. public ChatMenu(id)
  313. {
  314. if(!isAdmin(id)) return PLUGIN_HANDLED;
  315.  
  316. canChat = false;
  317.  
  318. client_printcolor(id, "/y[/ctr%s/y] Pokalbiai išjungti!", PREFIX);
  319.  
  320. return PLUGIN_HANDLED;
  321. }
  322.  
  323. public Chat(id)
  324. {
  325. if(!isAdmin(id))
  326. return PLUGIN_HANDLED;
  327.  
  328. canChat = true;
  329.  
  330. client_printcolor(id, "/y[/ctr%s/y] Pokalbiai ijungti!", PREFIX);
  331.  
  332. return PLUGIN_HANDLED;
  333. }
  334.  
  335. public showStats(id)
  336. {
  337. new link[128], steamid[64];
  338. get_user_authid(id, steamid, 63);
  339. format(link, 127, "http://cs.saudyk.lt/stats/player.php?sid=%s", steamid);
  340.  
  341. show_motd(id, link, "Player statistika");
  342. }
  343.  
  344. public showTOP(id)
  345. {
  346. new link[128];
  347. format(link, 127, "http://cs.saudyk.lt/stats/top.php");
  348.  
  349. show_motd(id, link, "Player top 15 statistika");
  350. }
  351.  
  352. public plugin_cfg()
  353. {
  354. set_task(0.5, "MySQLx_Init");
  355. }
  356.  
  357. public MySQLx_Init()
  358. {
  359. g_hTuple = SQL_MakeDbTuple(MIX_HOST, MIX_USER, MIX_PASSWORD, MIX_DATABASE);
  360.  
  361. for(new i = 0; i < sizeof szTables; i++)
  362. {
  363. SQL_ThreadQuery(g_hTuple, "QuerySetData", szTables[i]);
  364. }
  365. }
  366.  
  367. public QuerySetData(iFailState, Handle:hQuery, szError[], iError, iData[], iDataSize, Float:fQueueTime)
  368. {
  369. if( iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  370. {
  371. log_amx("%s", szError);
  372. return;
  373. }
  374. }
  375.  
  376. public ClientListen(pid, id)
  377. {
  378. if(pid == id) return 1;
  379.  
  380. if(is_user_connected(id))
  381. {
  382. new szTeam[2];
  383. szTeam[0] = get_pdata_int(id, 114);
  384. szTeam[1] = get_pdata_int(pid, 114);
  385.  
  386. if(szTeam[0] == szTeam[1] || WarmUp || KnifeRound || PrepareRound)
  387. {
  388. engfunc(EngFunc_SetClientListening, pid, id, 1);
  389. return 4;
  390. }
  391. engfunc(EngFunc_SetClientListening, pid, id, 0);
  392. return 4;
  393. }
  394. return 1;
  395. }
  396.  
  397. public client_connect(id)
  398. {
  399. if(WarmUp)
  400. {
  401. set_task(1.0, "RespawnPlayer")
  402. }
  403.  
  404. if(!WarmUp && !PrepareRound)
  405. {
  406. if(get_playersnum() < 10)
  407. {
  408. set_task(1.0, "set_password")
  409. }
  410. }
  411.  
  412. pTempKills[id] = 0;
  413. pTempDeaths[id] = 0;
  414. pTempHeadshots[id] = 0;
  415. pTempAces[id] = 0;
  416. pTempMiniAces[id] = 0;
  417. pTempPoints[id] = 0;
  418. pTempPlants[id] = 0;
  419. pTempDefusions[id] = 0;
  420.  
  421. pKills[id] = 0;
  422. pDeaths[id] = 0;
  423. pHeadshots[id] = 0;
  424. pAces[id] = 0;
  425. pMiniAces[id] = 0;
  426. pMiniAces[id] = 0;
  427. pMiniAces[id] = 0;
  428. pMixPlayed[id] = 0;
  429. pMixLost[id] = 0;
  430. pMixDraw[id] = 0;
  431. pMixWon[id] = 0;
  432. pPoints[id] = 0;
  433. pLoaded[id] = false;
  434. LoadPlayerData(id);
  435. }
  436.  
  437. public InsertGame()
  438. {
  439. new szQuery[3800];
  440. new map_name[64];
  441.  
  442. get_mapname(map_name, 63)
  443.  
  444. formatex(szQuery, 3799, "REPLACE INTO `mix_games` (`map_name`, `date`, `rez_ct`, `rez_t`) VALUES ('%s', NOW(), '%d', '%d');", map_name, scoreCT, scoreT);
  445. SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  446. }
  447.  
  448. public SavePlayer(id)
  449. {
  450. if(!pLoaded[id])
  451. return PLUGIN_HANDLED;
  452.  
  453. if(pPoints[id] < 0)
  454. pPoints[id] = 0;
  455.  
  456. new Name[64], steam[64];
  457. get_user_name(id, Name, 63);
  458.  
  459. get_user_authid(id, steam, 63);
  460.  
  461. static szQuery[3800];
  462. formatex(szQuery, 3799, "REPLACE INTO `mix_players` (`player_id`, `player_name`, `kills`, `deaths`, `headshots`, `aces`, `m_aces`, `mix_played`, `mix_lost`, `mix_won`, `mix_draw`, `points`, `last_online`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', NOW());", steam, GetSecureName(Name), pKills[id], pDeaths[id], pHeadshots[id], pAces[id], pMiniAces[id], pMixPlayed[id], pMixLost[id], pMixWon[id], pMixDraw[id], pPoints[id]);
  463.  
  464. #if AMXX_VERSION_NUM >= 183
  465. SQL_SetCharset(g_hTuple,"utf8");
  466. #endif
  467.  
  468. SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery);
  469.  
  470. return PLUGIN_CONTINUE;
  471. }
  472.  
  473. public LoadPlayerData(id)
  474. {
  475. new steam[64];
  476. get_user_authid(id, steam, 63);
  477.  
  478. static szQuery[256], iData[1];
  479. formatex(szQuery, 255, "SELECT * FROM `mix_players` WHERE (`player_id` = '%s');", steam);
  480.  
  481. iData[0] = id;
  482. SQL_ThreadQuery(g_hTuple, "QuerySelectData", szQuery, iData, 1);
  483.  
  484. return PLUGIN_CONTINUE;
  485. }
  486.  
  487. public QuerySelectData(iFailState, Handle:hQuery, szError[], iError, iData[], iDataSize, Float:fQueueTime)
  488. {
  489. if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  490. {
  491. log_amx("%s", szError);
  492.  
  493. return;
  494. }
  495. else
  496. {
  497. new id = iData[0];
  498. new data_kills = SQL_FieldNameToNum(hQuery, "kills");
  499. new data_deaths = SQL_FieldNameToNum(hQuery, "deaths");
  500. new data_headshots = SQL_FieldNameToNum(hQuery, "headshots");
  501. new data_aces = SQL_FieldNameToNum(hQuery, "aces");
  502. new data_mini_aces = SQL_FieldNameToNum(hQuery, "m_aces");
  503. new data_mix_played = SQL_FieldNameToNum(hQuery, "mix_played");
  504. new data_mix_lost = SQL_FieldNameToNum(hQuery, "mix_lost");
  505. new data_mix_draw = SQL_FieldNameToNum(hQuery, "mix_draw");
  506. new data_mix_won = SQL_FieldNameToNum(hQuery, "mix_won");
  507. new data_points = SQL_FieldNameToNum(hQuery, "points");
  508.  
  509. while (SQL_MoreResults(hQuery))
  510. {
  511. pKills[id] = SQL_ReadResult(hQuery, data_kills);
  512. pDeaths[id] = SQL_ReadResult(hQuery, data_deaths);
  513. pHeadshots[id] = SQL_ReadResult(hQuery, data_headshots);
  514. pAces[id] = SQL_ReadResult(hQuery, data_aces);
  515. pMiniAces[id] = SQL_ReadResult(hQuery, data_mini_aces);
  516. pMixPlayed[id] = SQL_ReadResult(hQuery, data_mix_played);
  517. pMixLost[id] = SQL_ReadResult(hQuery, data_mix_lost);
  518. pMixDraw[id] = SQL_ReadResult(hQuery, data_mix_draw);
  519. pMixWon[id] = SQL_ReadResult(hQuery, data_mix_won);
  520. pPoints[id] = SQL_ReadResult(hQuery, data_points);
  521.  
  522. SQL_NextRow(hQuery);
  523. }
  524. pLoaded[id] = true;
  525. }
  526. }
  527.  
  528. public client_disconnected(id)
  529. {
  530. if(!WarmUp && !PrepareRound)
  531. {
  532. if(1 <= get_user_team(id) <= 2)
  533. {
  534. server_cmd("sv_password ^"^"");
  535. client_printcolor(0, "/y[/ctr%s/y] Žaidėjas: /g%s /ypaliko žaidimą!", PREFIX, get_admin_name(id))
  536. }
  537. }
  538.  
  539. if(!WarmUp && !PrepareRound)
  540. {
  541. if(get_playersnum() < 10)
  542. {
  543. set_task(1.0, "set_password")
  544. }
  545. }
  546. }
  547.  
  548. public bomb_planted(planter)
  549. {
  550. if(!WarmUp && !PrepareRound)
  551. {
  552. pTempPlants[planter]++;
  553. pPoints[planter] += BOMB_PLANTED_POINTS;
  554.  
  555. client_printcolor(planter, "/y[/ctr%s/y] Gavai /ctr%d/y taškų", PREFIX, BOMB_PLANTED_POINTS);
  556.  
  557. SavePlayer(planter);
  558. }
  559. }
  560.  
  561. public bomb_defused(defuser)
  562. {
  563. if(!WarmUp && !PrepareRound)
  564. {
  565. pTempDefusions[defuser]++;
  566. pPoints[defuser] += BOMB_DEFUSED_POINTS;
  567.  
  568. client_printcolor(defuser, "/y[/ctr%s/y] Gavai /ctr%d/y taškų", PREFIX, BOMB_DEFUSED_POINTS);
  569.  
  570. SavePlayer(defuser);
  571. }
  572. }
  573.  
  574. public t_win(id)
  575. {
  576. if(!WarmUp && !KnifeRound && !PrepareRound) scoreT++;
  577.  
  578. if(KnifeRound)
  579. {
  580. if(tempT)
  581. {
  582. showTeamMenu(tempT);
  583. }
  584. }
  585. }
  586.  
  587. public ct_win(id)
  588. {
  589. if(!WarmUp && !KnifeRound && !PrepareRound) scoreCT++;
  590.  
  591. if(KnifeRound)
  592. {
  593. if(tempCT)
  594. {
  595. showTeamMenu(tempCT);
  596. }
  597. }
  598. }
  599.  
  600. public PlayerSpawn(id)
  601. {
  602. if(WarmUp && is_user_connected(id))
  603. {
  604. cs_set_user_money(id, 16000);
  605. }
  606.  
  607. Kills[id] = 0;
  608.  
  609. return PLUGIN_HANDLED;
  610. }
  611.  
  612. public RoundEnd()
  613. {
  614. if(WarmUp) server_cmd("hostname ^"%s [Apsilimas]^"", HOSTNAME);
  615. else if(KnifeRound) server_cmd("hostname ^"%s [Knife Round]^"", HOSTNAME);
  616. else if(PrepareRound) server_cmd("hostname ^"%s [Renkamos Komandos]^"", HOSTNAME);
  617. else
  618. {
  619. if(scoreT == 16 || scoreCT == 16)
  620. {
  621. server_cmd("hostname ^"[Zaidimas baigtas - CT: %i | T: %i] %s^"", scoreCT, scoreT, HOSTNAME);
  622. }
  623. else if(scoreT == 15 || scoreCT == 15)
  624. {
  625. server_cmd("hostname ^"[Live (MB) - CT: %i | T: %i] %s^"", scoreCT, scoreT, HOSTNAME);
  626. }
  627. else
  628. {
  629. if(scoreCT+scoreT == 15)
  630. {
  631. server_cmd("hostname ^"[Live - CT: %i | T: %i] %s^"", scoreCT, scoreT, HOSTNAME);
  632. }
  633. else
  634. {
  635. server_cmd("hostname ^"[Live - T: %i | CT: %i] %s^"", scoreT, scoreCT, HOSTNAME);
  636. }
  637. }
  638. }
  639.  
  640. if(!WarmUp && !KnifeRound && !PrepareRound)
  641. {
  642. for(new i = 1; i <= 32; i++)
  643. {
  644. if(is_user_connected(i))
  645. {
  646. if(Kills[i] == 4)
  647. {
  648. client_printcolor(0, "/y[/ctr%s/y] Žaidėjas: /g%s /yPadare /ctrMINI ACE", PREFIX, get_admin_name(i));
  649. client_printcolor(0, "/y[/ctr%s/y] Žaidėjas: /g%s /yuž MINI ACE /ctrgauna /g%i tašku!", PREFIX, get_admin_name(i), POINTS_MINI_ACE);
  650.  
  651. if(!WarmUp && !PrepareRound)
  652. {
  653. // Temp
  654. pTempMiniAces[i]++;
  655. pTempPoints[i] += POINTS_MINI_ACE;
  656.  
  657. pMiniAces[i]++;
  658. pPoints[i] += POINTS_MINI_ACE;
  659.  
  660. SavePlayer(i);
  661. }
  662. }
  663. else if(Kills[i] == 5)
  664. {
  665. client_printcolor(0, "/y[/ctr%s/y] Žaidėjas: /g%s /yPadare /ctrACE", PREFIX, get_admin_name(i));
  666. client_printcolor(0, "/y[/ctr%s/y] Žaidėjas: /g%s /yuž ACE /ctrgauna /g%i tašku!", PREFIX, get_admin_name(i), POINTS_ACE);
  667.  
  668. // Temp
  669. pTempAces[i]++;
  670. pTempPoints[i] += POINTS_ACE;
  671.  
  672. pAces[i]++;
  673. pPoints[i] += POINTS_ACE;
  674.  
  675. SavePlayer(i);
  676. }
  677. }
  678. }
  679.  
  680. if(scoreCT + scoreT == 15)
  681. {
  682. new temp = scoreCT;
  683. scoreCT = scoreT;
  684. scoreT = temp;
  685. client_printcolor(0, "/y[/ctr%s/y] Keičiamos komandos!", PREFIX);
  686. changeTeams();
  687. server_cmd("sv_restart 5");
  688. }
  689.  
  690. client_printcolor(0, "/y[/ctr%s/y] CT's: /g%i /y|| T's: /g%i", PREFIX, scoreCT, scoreT);
  691.  
  692. if(scoreT == 15 && scoreCT == 15)
  693. {
  694. client_printcolor(0, "/y[/ctr%s/y] /gŽaidimas baigtas. /yNei viena komanda nelaimėjo!", PREFIX);
  695. client_printcolor(0, "/y[/ctr%s/y] /gŽaidėjai gauna po: /g%i tašku!", PREFIX, POINTS_MIX_DRAW);
  696. drawGame();
  697. setEndGame();
  698. }
  699. else if(scoreT == 15) client_printcolor(0, "/y[/ctr%s/y] Terrorists MB", PREFIX);
  700. else if(scoreCT == 15) client_printcolor(0, "/y[/ctr%s/y] Counter-Terrorists MB", PREFIX);
  701.  
  702. else if(scoreT == 16)
  703. {
  704. TeamWon(1);
  705. client_printcolor(0, "/y[/ctr%s/y] /gŽaidimas baigtas. Laimėjo: /yTerrorists komanda!", PREFIX);
  706. client_printcolor(0, "/y[/ctr%s/y] /gTerrorists komandoje esantys žaidėjai už pergalę gauna po: /g%i tašku!", PREFIX, POINTS_MIX_WON);
  707. setEndGame();
  708. }
  709. else if(scoreCT == 16)
  710. {
  711. TeamWon(2);
  712. client_printcolor(0, "/y[/ctr%s/y] /gŽaidimas baigtas. Laimėjo: /yCounter-Terrorists komanda!", PREFIX);
  713. client_printcolor(0, "/y[/ctr%s/y] /gCounter-Terrorists komandoje esantys žaidėjai už pergalę gauna po: /g%i tašku!", PREFIX, POINTS_MIX_WON);
  714. setEndGame();
  715. }
  716. }
  717. }
  718.  
  719. public changeTeams()
  720. {
  721. for(new i = 1; i <= 32; i++)
  722. {
  723. add_delay(i);
  724. }
  725. }
  726.  
  727. public changeTeam(id)
  728. {
  729. if(is_user_connected(id))
  730. {
  731. switch(get_user_team(id))
  732. {
  733. case 2: cs_set_user_team(id, CS_TEAM_T);
  734. case 1: cs_set_user_team(id, CS_TEAM_CT);
  735. }
  736. }
  737. }
  738.  
  739. add_delay(id)
  740. {
  741. switch(id)
  742. {
  743. case 1..5: set_task(0.1, "changeTeam", id);
  744. case 6..10: set_task(0.2, "changeTeam", id);
  745. case 11..15: set_task(0.3, "changeTeam", id);
  746. case 16..20: set_task(0.4, "changeTeam", id);
  747. case 21..25: set_task(0.5, "changeTeam", id);
  748. case 26..32: set_task(0.6, "changeTeam", id);
  749. }
  750. }
  751.  
  752. public DeathEvent(victim, attacker)
  753. {
  754. new attacker = read_data(1);
  755. new victim = read_data(2);
  756. new hs = read_data(3);
  757. new weapon_name[32]; read_data(4, weapon_name, 31);
  758.  
  759. if(WarmUp)
  760. {
  761. set_task(1.0, "RespawnPlayer", victim);
  762. }
  763. else if(1 <= victim <= 32 && 1 <= attacker <= 32)
  764. {
  765. if(!WarmUp && !PrepareRound)
  766. {
  767. Kills[attacker]++;
  768. pKills[attacker]++;
  769. pPoints[attacker] += POINTS_KILL;
  770.  
  771. client_printcolor(attacker, "/y[/ctr%s/y] Gavai /ctr%d/y taškų už nužudymą", PREFIX, POINTS_KILL);
  772.  
  773. pTempKills[attacker]++;
  774. pTempPoints[attacker] += POINTS_KILL;
  775.  
  776. if(hs)
  777. {
  778. pTempHeadshots[attacker]++;
  779. pTempPoints[attacker] += POINTS_HS;
  780.  
  781. pHeadshots[attacker]++;
  782. pPoints[attacker] += POINTS_HS;
  783. }
  784.  
  785. pTempDeaths[victim]++;
  786. pTempPoints[victim] += POINTS_DEATH;
  787.  
  788. client_printcolor(victim, "/y[/ctr%s/y] Praradai /ctr%d/y taškų už mirtį", PREFIX, POINTS_DEATH);
  789.  
  790. pDeaths[victim]++;
  791. pPoints[victim] += POINTS_DEATH;
  792.  
  793. SavePlayer(victim);
  794. SavePlayer(attacker);
  795.  
  796. if(containi(weapon_name, "ak47") != -1) InsertWeaponKill(CSW_AK47);
  797. else if(containi(weapon_name, "m4a1") != -1) InsertWeaponKill(CSW_M4A1);
  798. else if(containi(weapon_name, "deagle") != -1) InsertWeaponKill(CSW_DEAGLE);
  799. else if(containi(weapon_name, "awp") != -1) InsertWeaponKill(CSW_AWP);
  800. else if(containi(weapon_name, "usp") != -1) InsertWeaponKill(CSW_USP);
  801. else if(containi(weapon_name, "glock") != -1) InsertWeaponKill(CSW_GLOCK18);
  802. else if(containi(weapon_name, "he") != -1) InsertWeaponKill(CSW_HEGRENADE);
  803. else if(containi(weapon_name, "knife") != -1) InsertWeaponKill(CSW_KNIFE);
  804. else if(containi(weapon_name, "scout") != -1) InsertWeaponKill(CSW_SCOUT);
  805. else if(containi(weapon_name, "famas") != -1) InsertWeaponKill(CSW_FAMAS);
  806.  
  807. if(containi(weapon_name, "ak47") != -1) { pTempAK[attacker]++; InsertWeaponAK47(attacker); }
  808. else if(containi(weapon_name, "m4a1") != -1) { pTempM4A1[attacker]++; InsertWeaponM4A1(attacker); }
  809. else if(containi(weapon_name, "deagle") != -1) { pTempDeagle[attacker]++; InsertWeaponDeagle(attacker); }
  810. else if(containi(weapon_name, "awp") != -1) { pTempAWP[attacker]++; InsertWeaponAWP(attacker); }
  811. else if(containi(weapon_name, "usp") != -1) { pTempUSP[attacker]++; InsertWeaponUSP(attacker); }
  812. else if(containi(weapon_name, "glock") != -1) { pTempGlock[attacker]++; InsertWeaponGlock(attacker); }
  813. else if(containi(weapon_name, "he") != -1) { pTempHE[attacker]++; InsertWeaponHE(attacker); }
  814. else if(containi(weapon_name, "knife") != -1) { pTempKnives[attacker]++; InsertWeaponKnives(attacker); }
  815. else if(containi(weapon_name, "scout") != -1) { pTempScout[attacker]++; InsertWeaponScout(attacker); }
  816. else if(containi(weapon_name, "famas") != -1) { pTempFamas[attacker]++; InsertWeaponFamas(attacker); }
  817. }
  818. }
  819. }
  820.  
  821. public RespawnPlayer(id)
  822. {
  823. if(!is_user_alive(id) && is_user_connected(id) && 1 <= get_user_team(id) <= 2)
  824. {
  825. ExecuteHamB(Ham_CS_RoundRespawn, id);
  826. }
  827. }
  828.  
  829. public event_CurWeapon(id)
  830. {
  831. if(KnifeRound && get_user_weapon(id) != CSW_KNIFE)
  832. {
  833. engclient_cmd(id, "weapon_knife");
  834. }
  835. }
  836.  
  837. public infoPassword(id)
  838. {
  839. if(!passwordStatus)
  840. {
  841. client_printcolor(id, "/y[/ctr%s/y] Serverio slaptažodis: /g%s", PREFIX, serverPassword);
  842. }
  843. else
  844. {
  845. client_printcolor(id, "/y[/ctr%s/y] Serverio slaptažodis išjungtas!", PREFIX, serverPassword);
  846. }
  847. return PLUGIN_HANDLED;
  848. }
  849.  
  850. public hookSay(id)
  851. {
  852. if(!canChat)
  853. {
  854. client_printcolor(id, "/y[/ctr%s/y] Pokalbiai šiuo metu yra išjungti!", PREFIX);
  855. client_printcolor(id, "/y[/ctr%s/y] Galimos komandos: /g.rez .stats .top", PREFIX);
  856. return PLUGIN_HANDLED;
  857. }
  858. return PLUGIN_CONTINUE;
  859. }
  860.  
  861. public cmd_block(id)
  862. {
  863. if(!WarmUp && !PrepareRound)
  864. {
  865. if(1 <= get_user_team(id) <= 2)
  866. return PLUGIN_HANDLED;
  867. }
  868. return PLUGIN_CONTINUE;
  869. }
  870.  
  871. public BlockConsole(id)
  872. {
  873. return PLUGIN_HANDLED;
  874. }
  875.  
  876. public mainMenu(id)
  877. {
  878. if(!isAdmin(id))
  879. return PLUGIN_HANDLED;
  880.  
  881. new menu = menu_create("\w[\yMIX\w] \rPagrindinis meniu", "onMainMenu");
  882.  
  883. new szMsg[64];
  884.  
  885. menu_additem(menu, "Valdymas");
  886.  
  887. format(szMsg, 63, "\wPokalbiai \d[%s\d]", canChat ? "\yĮjungti" : "\rIšjungti");
  888. menu_additem(menu, szMsg);
  889.  
  890. if(serverPassword[0]) format(szMsg, 63, "\wSlaptažodis \d[\y%s\d]", serverPassword);
  891. else format(szMsg, 63, "\wSlaptažodis \d[\rNėra\d]");
  892. menu_additem(menu, szMsg);
  893.  
  894. menu_additem(menu, "Išmesti žaidėją");
  895. menu_additem(menu, "Išbaninti žaidėją");
  896. menu_additem(menu, "Keisti žemėlapį");
  897. menu_additem(menu, "Atsijungusių žaidėjų sąrašas");
  898.  
  899. menu_display(id, menu, 0)
  900.  
  901. return PLUGIN_HANDLED;
  902. }
  903.  
  904. public onMainMenu(id, menu, item)
  905. {
  906. switch(item)
  907. {
  908. case 0: actMix(id);
  909. case 1:
  910. {
  911. canChat = !canChat;
  912. mainMenu(id);
  913. return PLUGIN_HANDLED;
  914. }
  915. case 2: optionsPassword(id);
  916. case 3: client_cmd(id, "amx_kickmenu");
  917. case 4: client_cmd(id, "amx_banmenu");
  918. case 5: client_cmd(id, "amx_mapmenu");
  919. case 6: client_cmd(id, "amx_bandisconnectedmenu");
  920. }
  921. menu_destroy(menu);
  922. return PLUGIN_HANDLED;
  923. }
  924.  
  925. public optionsPassword(id)
  926. {
  927. if(!isAdmin(id))
  928. return PLUGIN_HANDLED;
  929.  
  930. new szText[64];
  931. if(serverPassword[0]) format(szText, 63, "\w[\yMIX\w] \rSlaptažodis \d(\y%s\d)", serverPassword);
  932.  
  933. else format(szText, 63, "\w[\yMIX\w] \rSlaptažodis \d(\rNėra\d)");
  934. new menu = menu_create(szText, "onOptionsPassword");
  935.  
  936. format(szText, 63, "\wSlaptažodis \d[%s\d]", passwordStatus ? "\yĮjungtas" : "\rIšjungtas");
  937.  
  938. menu_additem(menu, szText);
  939. menu_additem(menu, "Keisti slaptažodį");
  940. menu_additem(menu, "Ištrinti slaptažodį");
  941.  
  942. menu_display(id, menu, 0);
  943.  
  944. return PLUGIN_HANDLED;
  945. }
  946.  
  947. public onOptionsPassword(id, menu, item)
  948. {
  949. switch(item)
  950. {
  951. case MENU_EXIT:
  952. {
  953. mainMenu(id);
  954. return PLUGIN_HANDLED;
  955. }
  956. case 0:
  957. {
  958. if(serverPassword[0])
  959. {
  960. passwordStatus = !passwordStatus;
  961.  
  962. if(passwordStatus)
  963. {
  964. server_cmd("sv_password", serverPassword);
  965. }
  966. else server_cmd("sv_password ^"^"");
  967. }
  968. else
  969. {
  970. if(passwordStatus)
  971. passwordStatus = false;
  972. client_printcolor(id, "/y[/ctr%s/y] Nenustatytas slaptažodis!", PREFIX);
  973. }
  974.  
  975. }
  976. case 1: client_cmd(id, "messagemode SetPassword");
  977. case 2: format(serverPassword, 63, "");
  978. }
  979. optionsPassword(id);
  980. return PLUGIN_HANDLED;
  981. }
  982.  
  983. public _SetPassword(id)
  984. {
  985. if(!isAdmin(id))
  986. return;
  987.  
  988. new szTemp[64];
  989. read_args(szTemp, charsmax(szTemp));
  990. remove_quotes(szTemp);
  991. format(serverPassword, 63, szTemp);
  992. optionsPassword(id);
  993.  
  994. if(!passwordStatus)
  995. {
  996. server_cmd("sv_password %s", serverPassword);
  997. client_printcolor(0, "/y[/ctr%s/y] /g%s/y] Serverio slaptažodis: /g%s" , PREFIX, get_admin_name(id), szTemp);
  998. }
  999. }
  1000.  
  1001. public actMix(id)
  1002. {
  1003. if(!isAdmin(id))
  1004. return PLUGIN_HANDLED;
  1005.  
  1006. new menu = menu_create("\w[\yMIX\w] \rValdymas", "onactMix");
  1007.  
  1008. menu_additem(menu, "Pradėti žaidimą");
  1009. menu_additem(menu, "Pasiruošti");
  1010. menu_additem(menu, "Apšilimas");
  1011. menu_additem(menu, "Knife");
  1012. menu_additem(menu, "FFA");
  1013. menu_additem(menu, "Perkrauti roundą");
  1014. menu_additem(menu, "Užbaigti žaidimą");
  1015.  
  1016. menu_display(id, menu, 0);
  1017.  
  1018. return PLUGIN_HANDLED;
  1019. }
  1020.  
  1021. public onactMix(id, menu, item)
  1022. {
  1023. switch(item)
  1024. {
  1025. case 0: setLive(id);
  1026. case 1: setPrepare(id);
  1027. case 2: warmUP(id);
  1028. case 3: setKnife(id);
  1029. case 4: FriendlyFire(id);
  1030. case 5: restartRound(id);
  1031. case 6: endGame(id);
  1032. }
  1033. menu_destroy(menu);
  1034. }
  1035.  
  1036. public setPrepare(id)
  1037. {
  1038. if(!isAdmin(id))
  1039. return PLUGIN_HANDLED;
  1040.  
  1041. if(get_playersnum() >= 10)
  1042. {
  1043. server_cmd("sv_restart 1");
  1044.  
  1045. KnifeRound = false;
  1046. PrepareRound = true;
  1047. WarmUp = false;
  1048. scoreCT = 0;
  1049. scoreT = 0;
  1050. tempCount = 0;
  1051. tempCT = 0;
  1052. tempT = 0;
  1053.  
  1054. for(new i = 1; i <= 32; i++)
  1055. {
  1056. if(is_user_connected(id) && (1 <= get_user_team(i) <= 2))
  1057. {
  1058. if(is_user_alive(i))
  1059. user_silentkill(i);
  1060. cs_set_user_team(i, CS_TEAM_SPECTATOR);
  1061. }
  1062. }
  1063.  
  1064. client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] Pasiruošimas prasidėjo! Administratorius tuoj išrinks lyderius!", PREFIX, get_admin_name(id));
  1065. showPrepareMenu(id);
  1066. }
  1067. else
  1068. {
  1069. client_printcolor(id, "/y[/ctr%s/y] Pasiruošimas negali būti pradėtas todel kad trūksta žaidėjų!", PREFIX);
  1070. }
  1071. return PLUGIN_HANDLED;
  1072. }
  1073.  
  1074. public showPrepareMenu(id)
  1075. {
  1076. if(!isAdmin(id))
  1077. return PLUGIN_HANDLED;
  1078.  
  1079. new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis į Counter Terrorist", "onPrepareCT");
  1080.  
  1081. new players[32], num;
  1082. get_players(players, num, "ch");
  1083. new szText[64], ui[32];
  1084.  
  1085. for(new i; i < num; i++)
  1086. {
  1087. format(ui, 31, "%d",get_user_userid(players[i]))
  1088.  
  1089. if(pPoints[players[i]] <= 10000)
  1090. {
  1091. formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1092. }
  1093. else if(pPoints[players[i]] <= 20000)
  1094. {
  1095. formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1096. }
  1097. if(pPoints[players[i]] <= 30000)
  1098. {
  1099. formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1100. }
  1101. else
  1102. {
  1103. formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1104. }
  1105. menu_additem(menu, szText, ui);
  1106. }
  1107.  
  1108. menu_display(id, menu, 0);
  1109.  
  1110. return PLUGIN_HANDLED;
  1111. }
  1112.  
  1113. public onPrepareCT(id, menu, item)
  1114. {
  1115. new szData[6], szName[64];
  1116. new _access, item_callback;
  1117.  
  1118. menu_item_getinfo(menu, item, _access, szData, charsmax(szData), szName, charsmax(szName), item_callback);
  1119.  
  1120. new userid = str_to_num(szData);
  1121. new player = find_player("k", userid);
  1122.  
  1123. switch(item)
  1124. {
  1125. case MENU_EXIT:
  1126. {
  1127. if(PrepareRound) showPrepareMenu(id);
  1128. return PLUGIN_HANDLED;
  1129. }
  1130. default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_CT);
  1131. }
  1132.  
  1133. if(PrepareRound)
  1134. {
  1135. tempCT = player;
  1136. client_printcolor(0, "/y[/ctr%s/y] CT lyderis bus: /g%s", PREFIX, szName);
  1137. client_printcolor(0, "/y[/ctr%s/y] Administratorius tuoj išrinks T lyderį!", PREFIX);
  1138. showPrepareMenuT(id);
  1139. }
  1140.  
  1141. return PLUGIN_HANDLED;
  1142. }
  1143.  
  1144. public showPrepareMenuT(id)
  1145. {
  1146. if(!isAdmin(id))
  1147. return PLUGIN_HANDLED;
  1148. new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis į Terrorist", "onPrepareT");
  1149.  
  1150. new players[32], num;
  1151. get_players(players, num, "ceh", "SPECTATOR");
  1152. new szText[64], ui[32];
  1153.  
  1154. for(new i; i < num; i++)
  1155. {
  1156. format(ui, 31, "%d",get_user_userid(players[i]))
  1157.  
  1158. if(pPoints[players[i]] <= 10000)
  1159. {
  1160. formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1161. }
  1162. else if(pPoints[players[i]] <= 20000)
  1163. {
  1164. formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1165. }
  1166. if(pPoints[players[i]] <= 30000)
  1167. {
  1168. formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1169. }
  1170. else
  1171. {
  1172. formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1173. }
  1174. menu_additem(menu, szText, ui);
  1175. }
  1176.  
  1177. menu_display(id, menu, 0)
  1178.  
  1179. return PLUGIN_HANDLED;
  1180. }
  1181.  
  1182. public onPrepareT(id, menu, item)
  1183. {
  1184. new szData[6], szName[64];
  1185. new _access, item_callback;
  1186.  
  1187. menu_item_getinfo( menu, item, _access, szData,charsmax(szData), szName, charsmax(szName), item_callback);
  1188.  
  1189. new userid = str_to_num(szData);
  1190. new player = find_player("k", userid);
  1191.  
  1192. switch(item)
  1193. {
  1194. case MENU_EXIT:
  1195. {
  1196. if(PrepareRound) showPrepareMenuT(id);
  1197. return PLUGIN_HANDLED;
  1198. }
  1199. default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_T)
  1200. }
  1201. if(PrepareRound)
  1202. {
  1203. tempT = player;
  1204. client_printcolor(0, "/y[/ctr%s/y] T lyderis bus: /g%s", PREFIX, szName);
  1205. client_printcolor(0, "/y[/ctr%s/y] Lyderiai pradeda rinktis žaidėjus!", PREFIX);
  1206. client_printcolor(0, "/y[/ctr%s/y] /gDemesio: /yJeigu Lyderiams dings meniu su zaideju pasirinkimu, chate rasykite /ctr.choose", PREFIX);
  1207. ShowList(tempCT);
  1208. }
  1209. return PLUGIN_HANDLED;
  1210. }
  1211.  
  1212. public choosePlayers(id)
  1213. {
  1214. switch(tempCount)
  1215. {
  1216. case 0, 2, 4, 6: if(tempT == id) ShowList(id);
  1217. case 1, 3, 5, 7: if(tempCT == id) ShowList(id);
  1218. }
  1219. return PLUGIN_HANDLED;
  1220. }
  1221.  
  1222. public showTeamMenu(id)
  1223. {
  1224. new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandą", "onTeamChange")
  1225.  
  1226. menu_additem(menu, "Pasilikti");
  1227. menu_additem(menu, "Keistis komandomis");
  1228.  
  1229. menu_display(id, menu, 0);
  1230.  
  1231. return PLUGIN_HANDLED;
  1232. }
  1233.  
  1234. public onTeamChange(id, menu, item)
  1235. {
  1236. switch(item)
  1237. {
  1238. case 0:
  1239. {
  1240. client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gPasilikti", PREFIX);
  1241. setServerLive();
  1242. }
  1243. case 1:
  1244. {
  1245. client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gkeistis komandomis", PREFIX);
  1246. changeTeams();
  1247. set_task(2.0, "setServerLive", 1);
  1248. }
  1249. }
  1250. }
  1251.  
  1252. public ShowList(id)
  1253. {
  1254. new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandos draugą", "onShowList")
  1255.  
  1256. new players[32], num;
  1257. get_players(players, num, "ceh", "SPECTATOR");
  1258. new szText[64], ui[32];
  1259.  
  1260. for(new i; i < num; i++)
  1261. {
  1262. format(ui, 31, "%d",get_user_userid(players[i]));
  1263.  
  1264. if(pPoints[players[i]] <= 10000)
  1265. {
  1266. formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1267. }
  1268. else if(pPoints[players[i]] <= 20000)
  1269. {
  1270. formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1271. }
  1272. if(pPoints[players[i]] <= 30000)
  1273. {
  1274. formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1275. }
  1276. else
  1277. {
  1278. formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1279. }
  1280. menu_additem(menu, szText, ui)
  1281. }
  1282.  
  1283. menu_display(id, menu, 0);
  1284.  
  1285. return PLUGIN_HANDLED;
  1286. }
  1287.  
  1288. public onShowList(id, menu, item)
  1289. {
  1290. new szData[6], szName[64];
  1291. new _access, item_callback;
  1292.  
  1293. new Where;
  1294. switch(tempCount)
  1295. {
  1296. case 0, 2, 4, 6: Where = 0;
  1297. case 1, 3, 5, 7: Where = 1;
  1298. default: Where = -1;
  1299. }
  1300.  
  1301. menu_item_getinfo(menu, item, _access, szData,charsmax(szData), szName,charsmax(szName), item_callback);
  1302.  
  1303. new userid = str_to_num(szData);
  1304. new player = find_player("k", userid);
  1305.  
  1306. switch(item)
  1307. {
  1308. case MENU_EXIT:
  1309. {
  1310. if(PrepareRound) ShowList(id)
  1311. return PLUGIN_HANDLED;
  1312. }
  1313. default: if(PrepareRound && is_user_connected(player))
  1314. {
  1315. if(Where == 0)
  1316. {
  1317. cs_set_user_team(player, CS_TEAM_CT);
  1318. }
  1319. else
  1320. {
  1321. cs_set_user_team(player, CS_TEAM_T);
  1322. }
  1323. }
  1324. }
  1325. if(PrepareRound)
  1326. {
  1327. tempCount++;
  1328. client_printcolor(0, "/y[/ctr%s/y] [/g%s /yPasirinko /g%s", PREFIX, get_admin_name(id), szName);
  1329.  
  1330. if(tempCount < 8)
  1331. {
  1332. ShowList(Where == 1 ? tempCT : tempT);
  1333. }
  1334. else
  1335. {
  1336. /*KnifeRound = true;
  1337. PrepareRound = false;
  1338. WarmUp = false;
  1339. scoreCT = 0;
  1340. scoreT = 0;
  1341.  
  1342. server_cmd("mp_roundtime 1.8")
  1343. server_cmd("mp_buytime 0.30")
  1344. server_cmd("mp_startmoney 16000")
  1345. server_cmd("mp_freezetime 7")
  1346.  
  1347. server_cmd("sv_restart 1")*/
  1348.  
  1349. client_printcolor(0, "/y[/ctr%s/y] Komandų rinkimasis baigtas!", PREFIX)
  1350.  
  1351. setServerLive()
  1352. }
  1353. }
  1354. return PLUGIN_HANDLED;
  1355. }
  1356.  
  1357. public restartRound(id)
  1358. {
  1359. if(!isAdmin(id))
  1360. return PLUGIN_HANDLED;
  1361.  
  1362. server_cmd("sv_restart 1");
  1363.  
  1364. client_printcolor(0, "/y[/ctr%s/y] Perkrautas roundas!", PREFIX);
  1365. return PLUGIN_HANDLED;
  1366. }
  1367.  
  1368. public setServerLive()
  1369. {
  1370. KnifeRound = false;
  1371. PrepareRound = false;
  1372. WarmUp = false;
  1373. scoreCT = 0;
  1374. scoreT = 0;
  1375.  
  1376. server_cmd("mp_roundtime 1.8")
  1377. server_cmd("mp_buytime 0.30")
  1378. server_cmd("mp_startmoney 800")
  1379. server_cmd("mp_freezetime 7")
  1380.  
  1381. server_cmd("sv_restart 3")
  1382.  
  1383. set_task(1.0, "set_password");
  1384.  
  1385. client_printcolor(0, "/y[/ctr%s/y] Žaidimas Prasidėjo! Gero žaidimo jums linki - Administracija!", PREFIX)
  1386.  
  1387. server_cmd("hostname ^"[Live - Counter-Terrorist [0] - [0] Terrorist] %s^"", HOSTNAME)
  1388.  
  1389. return PLUGIN_HANDLED;
  1390. }
  1391.  
  1392. public setLive(id)
  1393. {
  1394. if(!isAdmin(id))
  1395. return PLUGIN_HANDLED
  1396.  
  1397. KnifeRound = false;
  1398. PrepareRound = false;
  1399. WarmUp = false;
  1400. scoreCT = 0;
  1401. scoreT = 0;
  1402.  
  1403. server_cmd("mp_roundtime 1.8");
  1404. server_cmd("mp_buytime 0.30");
  1405. server_cmd("mp_startmoney 800");
  1406. server_cmd("mp_freezetime 7");
  1407.  
  1408. server_cmd("sv_restart 3");
  1409.  
  1410. set_task(1.0, "set_password");
  1411.  
  1412. client_printcolor(0, "/y[/ctr%s/y] Žaidimas Prasidėjo! Gero žaidimo jums linki - Administracija!", PREFIX);
  1413.  
  1414. server_cmd("hostname ^"[Live - Counter-Terrorist [0] - [0] Terrorist] %s^"", HOSTNAME)
  1415.  
  1416. return PLUGIN_HANDLED;
  1417. }
  1418.  
  1419. public setRestart(id)
  1420. {
  1421. if(!isAdmin(id))
  1422. return PLUGIN_HANDLED;
  1423.  
  1424. server_cmd("sv_restart 1");
  1425.  
  1426. client_printcolor(0, "/y[/ctr%s/y] Perkrautas roundas!", PREFIX);
  1427. return PLUGIN_HANDLED;
  1428. }
  1429.  
  1430. public warmUP(id)
  1431. {
  1432. if(!isAdmin(id))
  1433. return PLUGIN_HANDLED;
  1434.  
  1435. passwordStatus = false;
  1436. KnifeRound = false;
  1437. PrepareRound = false;
  1438. WarmUp = true;
  1439. scoreCT = 0;
  1440. scoreT = 0;
  1441.  
  1442. server_cmd("mp_roundtime 600");
  1443. server_cmd("mp_buytime 999999");
  1444. server_cmd("mp_startmoney 16000");
  1445. server_cmd("mp_freezetime 0");
  1446. server_cmd("sv_password ^"^"");
  1447.  
  1448. server_cmd("sv_restart 1");
  1449.  
  1450. client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] Apšilimas Prasidėjo!", PREFIX, get_admin_name(id));
  1451.  
  1452. server_cmd("hostname ^"%s [Apšilimas]^"", HOSTNAME)
  1453.  
  1454. return PLUGIN_HANDLED;
  1455. }
  1456.  
  1457. public setKnife(id)
  1458. {
  1459. if(!isAdmin(id))
  1460. return PLUGIN_HANDLED;
  1461.  
  1462. KnifeRound = true;
  1463. PrepareRound = false;
  1464. WarmUp = false;
  1465. scoreCT = 0;
  1466. scoreT = 0;
  1467.  
  1468. server_cmd("mp_roundtime 1.8");
  1469. server_cmd("mp_buytime 0.30");
  1470. server_cmd("mp_startmoney 800");
  1471. server_cmd("mp_freezetime 7");
  1472.  
  1473. server_cmd("sv_restart 1");
  1474.  
  1475. client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] Prasidėjo peilių roundas! Sėkmės!", PREFIX, get_admin_name(id));
  1476. return PLUGIN_HANDLED;
  1477. }
  1478.  
  1479. public FriendlyFire(id)
  1480. {
  1481. if(!isAdmin(id))
  1482. return PLUGIN_HANDLED;
  1483.  
  1484. if(Fire == true)
  1485. {
  1486. server_cmd( "mp_friendlyfire 0" );
  1487. client_printcolor(0, "/y[/ctr%s/y] FriendlyFire /yOFF!", PREFIX);
  1488. Fire = false;
  1489. }
  1490. else
  1491. {
  1492. server_cmd( "mp_friendlyfire 1" );
  1493. client_printcolor(0, "/y[/ctr%s/y] FriendlyFire /yON!", PREFIX);
  1494. Fire = true;
  1495. }
  1496. return PLUGIN_HANDLED;
  1497. }
  1498.  
  1499. public drawGame()
  1500. {
  1501. for(new i = 1; i <= 32; i++)
  1502. {
  1503. if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1504. {
  1505. pMixPlayed[i]++;
  1506. pPoints[i] += POINTS_MIX_PLAYED;
  1507.  
  1508. pMixDraw[i]++;
  1509. pPoints[i] += POINTS_MIX_DRAW;
  1510. SavePlayer(i);
  1511. }
  1512. }
  1513. }
  1514.  
  1515. public TeamWon(team)
  1516. {
  1517. for(new i = 1; i <= 32; i++)
  1518. {
  1519. if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1520. {
  1521. pMixPlayed[i]++;
  1522. pPoints[i] += POINTS_MIX_PLAYED;
  1523.  
  1524. if(get_user_team(i) == team)
  1525. {
  1526. pMixWon[i]++;
  1527. pPoints[i] += POINTS_MIX_WON;
  1528. }
  1529. else
  1530. {
  1531. pMixLost[i]++;
  1532. pPoints[i] += POINTS_MIX_LOST;
  1533. }
  1534. SavePlayer(i);
  1535. }
  1536. }
  1537. }
  1538.  
  1539. public setEndGame()
  1540. {
  1541. showMVP();
  1542. InsertGame();
  1543.  
  1544. passwordStatus = false;
  1545. KnifeRound = false;
  1546. PrepareRound = false;
  1547. WarmUp = true;
  1548. canChat = true;
  1549. scoreCT = 0;
  1550. scoreT = 0;
  1551.  
  1552. server_cmd("mp_roundtime 600");
  1553. server_cmd("mp_startmoney 16000");
  1554. server_cmd("mp_buytime 999999");
  1555. server_cmd("mp_freezetime 0");
  1556. server_cmd("sv_password ^"^"");
  1557.  
  1558. client_printcolor(0, "/y[/ctr%s/y] Žaidimas baigtas! Laukite žemėlapio keitimo!", PREFIX);
  1559.  
  1560. server_cmd("hostname ^"%s [Apšilimas]^"", HOSTNAME);
  1561.  
  1562. return PLUGIN_HANDLED;
  1563. }
  1564.  
  1565. public endGame(id)
  1566. {
  1567. if(!isAdmin(id))
  1568. return PLUGIN_HANDLED;
  1569.  
  1570. showMVP();
  1571. InsertGame();
  1572.  
  1573. passwordStatus = false;
  1574. KnifeRound = false;
  1575. PrepareRound = false;
  1576. WarmUp = true;
  1577. canChat = true;
  1578. scoreCT = 0;
  1579. scoreT = 0;
  1580.  
  1581. server_cmd("mp_roundtime 600");
  1582. server_cmd("mp_startmoney 16000");
  1583. server_cmd("mp_buytime 999999");
  1584. server_cmd("mp_freezetime 0");
  1585. server_cmd("sv_password ^"^"");
  1586.  
  1587. server_cmd("sv_restart 1");
  1588.  
  1589. client_printcolor(0, "/y[/ctr%s/y] Įjungtas apšilimas! Laukite žemėlapio keitimo!", PREFIX);
  1590.  
  1591. server_cmd("hostname ^"%s [Apšilimas]^"", HOSTNAME);
  1592.  
  1593. return PLUGIN_HANDLED;
  1594. }
  1595.  
  1596. public showMVP()
  1597. {
  1598. new KillerName[256], DeathsName[256], BombPName[256], BombDName[256];
  1599. new iPlayers[32], pNum, Tempid;
  1600. new topKillerid, topDeathsid, topBombPid, topBombDid;
  1601. new topKills, topDeaths, topBombP, topBombD;
  1602.  
  1603. get_players(iPlayers, pNum, "ch");
  1604.  
  1605. for(new i ; i < pNum ; i++)
  1606. {
  1607. Tempid = iPlayers[i];
  1608.  
  1609. if(pTempKills[Tempid] >= topKills && pTempKills[Tempid])
  1610. {
  1611. topKills = pTempKills[Tempid];
  1612. topKillerid = Tempid;
  1613. }
  1614.  
  1615. if(pTempDeaths[Tempid] >= topDeaths && pTempDeaths[Tempid])
  1616. {
  1617. topDeaths = pTempDeaths[Tempid];
  1618. topDeathsid = Tempid;
  1619. }
  1620.  
  1621. if(pTempPlants[Tempid] >= topBombP && pTempPlants[Tempid])
  1622. {
  1623. topBombP = pTempPlants[Tempid];
  1624. topBombPid = Tempid;
  1625. }
  1626.  
  1627. if(pTempDefusions[Tempid] >= topBombD && pTempDefusions[Tempid])
  1628. {
  1629. topBombD = pTempDefusions[Tempid];
  1630. topBombDid = Tempid;
  1631. }
  1632. }
  1633.  
  1634. if(1 <= topKillerid <= get_maxplayers())
  1635. {
  1636. get_user_name(topKillerid, KillerName, charsmax(KillerName));
  1637. }
  1638.  
  1639. if(1 <= topDeathsid <= get_maxplayers())
  1640. {
  1641. get_user_name(topDeathsid, DeathsName, charsmax(DeathsName));
  1642. }
  1643.  
  1644. if(1 <= topBombPid <= get_maxplayers())
  1645. {
  1646. get_user_name(topBombPid, BombPName, charsmax(BombPName));
  1647. }
  1648.  
  1649. if(1 <= topBombDid <= get_maxplayers())
  1650. {
  1651. get_user_name(topBombDid, BombDName, charsmax(BombDName));
  1652. }
  1653.  
  1654. for(new i ; i < pNum ; i++)
  1655. {
  1656. Tempid = iPlayers[i];
  1657.  
  1658. if(pTempKills[Tempid] == topKills && Tempid != topKillerid && pTempKills[Tempid])
  1659. {
  1660. new LineToAdd[65] = ",";
  1661. new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1662.  
  1663. add(LineToAdd, charsmax(LineToAdd), szName);
  1664. add(KillerName, charsmax(KillerName) - strlen(BombDName) , LineToAdd);
  1665. }
  1666.  
  1667. if(pTempDeaths[Tempid] == topDeaths && Tempid != topDeathsid && pTempDeaths[Tempid])
  1668. {
  1669. new LineToAdd[65] = ",";
  1670. new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1671.  
  1672. add(LineToAdd, charsmax(LineToAdd), szName);
  1673. add(DeathsName, charsmax(DeathsName) - strlen(DeathsName) , LineToAdd);
  1674. }
  1675.  
  1676. if(pTempPlants[Tempid] == topBombP && Tempid != topBombPid && pTempPlants[Tempid])
  1677. {
  1678. new LineToAdd[65] = ","
  1679. new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1680.  
  1681. add(LineToAdd, charsmax(LineToAdd), szName);
  1682. add(BombPName, charsmax(BombPName) - strlen(BombPName) , LineToAdd);
  1683. }
  1684.  
  1685. if(pTempDefusions[Tempid] == topBombD && Tempid != topBombDid && pTempDefusions[Tempid])
  1686. {
  1687. new LineToAdd[65] = ",";
  1688. new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1689.  
  1690. add(LineToAdd, charsmax(LineToAdd), szName);
  1691. add(BombDName, charsmax(BombDName) - strlen(BombDName), LineToAdd);
  1692. }
  1693. }
  1694.  
  1695. new msgToDisplay[456] = "%L";
  1696.  
  1697. format(msgToDisplay, charsmax(msgToDisplay), msgToDisplay, LANG_PLAYER, "RANKING_MVP", scoreCT, scoreT, strlen(KillerName) ? KillerName : "NONE", topKills, strlen(DeathsName) ? DeathsName : "NONE", topDeaths,
  1698. strlen(BombPName) ? BombPName : "NONE", topBombP, strlen(BombDName) ? BombDName : "NONE", topBombD);
  1699.  
  1700. set_task(1.0, "RankingTable", TASK_MVP, msgToDisplay, strlen(msgToDisplay), "b")
  1701. }
  1702.  
  1703. public RankingTable(msgToDisplay[], TASK_MVP)
  1704. {
  1705. new iPlayers[32], pNum, id;
  1706.  
  1707. for(new i ; i < pNum ; i++)
  1708. {
  1709. id = iPlayers[i];
  1710. }
  1711.  
  1712. set_hudmessage(255, 255, 255, -1.0, 0.10, 0, 6.0, 30.0)
  1713. show_hudmessage(0, msgToDisplay);
  1714.  
  1715. client_cmd(id, "say /setstats");
  1716. }
  1717.  
  1718. public Ranking(id)
  1719. {
  1720. static query[512];
  1721. formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pTempPoints[id]);
  1722. log_amx(query)
  1723. static data[2];
  1724. data[0] = id;
  1725.  
  1726. SQL_ThreadQuery(g_hTuple, "RankTableMVP", query, data, sizeof(data));
  1727. return PLUGIN_HANDLED;
  1728. }
  1729.  
  1730. public RankTableMVP(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  1731. {
  1732. if(failstate == TQUERY_CONNECT_FAILED || failstate == TQUERY_QUERY_FAILED)
  1733. {
  1734. set_fail_state(error);
  1735. }
  1736. else
  1737. {
  1738. new id = data[0];
  1739. new msgToDisplay[456] = "%L";
  1740.  
  1741. if(SQL_NumResults(hQuery))
  1742. {
  1743. format(msgToDisplay, charsmax(msgToDisplay), msgToDisplay, LANG_PLAYER, "RANKTABLE_MVP", pTempPoints[id], pTempKills[id], pTempDeaths[id], pTempHeadshots[id], pTempPlants[id], pTempDefusions[id], pTempMiniAces[id], pTempAces[id]);
  1744.  
  1745. set_hudmessage(255, 255, 255, -1.0, 0.35, 0, 6.0, 30.0)
  1746. show_hudmessage(id, msgToDisplay, "^n%L", LANG_PLAYER, "RANKTABLE_MVP", pTempPoints[id], pTempKills[id], pTempDeaths[id], pTempHeadshots[id], pTempPlants[id], pTempDefusions[id], pTempMiniAces[id], pTempAces[id]);
  1747. }
  1748. }
  1749. }
  1750.  
  1751. public restart(id)
  1752. {
  1753. server_cmd("restart");
  1754. }
  1755.  
  1756. public getScore(id)
  1757. {
  1758. if(WarmUp || KnifeRound || PrepareRound)
  1759. client_printcolor(id, "/y[/ctr%s/y] Žaidimas šiuo metu nevyksta!", PREFIX);
  1760. else client_printcolor(id, "/y[/ctr%s/y] CT's: /g%i /y|| T's: /g%i", PREFIX, scoreCT, scoreT);
  1761. return PLUGIN_HANDLED;
  1762. }
  1763.  
  1764. public showPlayerAce(id)
  1765. {
  1766. static query[512];
  1767. formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pPoints[id]);
  1768. log_amx(query)
  1769. static data[2];
  1770. data[0] = id;
  1771.  
  1772. SQL_ThreadQuery(g_hTuple, "QueryLoadAce", query, data, sizeof(data));
  1773. return PLUGIN_HANDLED;
  1774. }
  1775.  
  1776. public QueryLoadAce(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  1777. {
  1778. if( failstate == TQUERY_CONNECT_FAILED
  1779. || failstate == TQUERY_QUERY_FAILED )
  1780. {
  1781. set_fail_state(error);
  1782. }
  1783. else
  1784. {
  1785. new id = data[0];
  1786.  
  1787. if(SQL_NumResults(hQuery))
  1788. {
  1789. if(SQL_NumResults(hQuery))
  1790. {
  1791. client_printcolor(id, "/y[/ctr%s/y] /yMini-ACE ^3%d ^4| /yACE ^3%d", PREFIX, pMiniAces[id], pAces[id])
  1792. }
  1793. }
  1794. }
  1795. }
  1796.  
  1797. public set_password(id)
  1798. {
  1799. new rnd = random_num(99, 9999);
  1800. new serverPassword[10];
  1801.  
  1802. num_to_str(rnd, serverPassword, 9);
  1803.  
  1804. server_cmd("sv_password %s", serverPassword);
  1805. }
  1806.  
  1807. public InsertWeaponKill(wpnindex)
  1808. {
  1809. new szQuery[3800];
  1810.  
  1811. formatex( szQuery, 3799, "INSERT INTO `mix_gun` (`gun_id`, `kills`) VALUES (%d, 1) ON DUPLICATE KEY UPDATE `kills` = `kills` + 1;", wpnindex);
  1812.  
  1813. log_amx(szQuery)
  1814. SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  1815. }
  1816.  
  1817. stock get_admin_name(id)
  1818. {
  1819. new name[64]
  1820. get_user_name(id, name, 63)
  1821. return name
  1822. }
  1823.  
  1824. stock client_printcolor(const id, const input[], any:...)
  1825. {
  1826. new count = 1, players[32];
  1827. static msg[191];
  1828. vformat(msg, 190, input, 3);
  1829.  
  1830. replace_all(msg,190,"/g","^4"); // green txt
  1831. replace_all(msg,190,"/y","^1"); // orange txt
  1832. replace_all(msg,190,"/ctr","^3"); // team txt
  1833. replace_all(msg,190,"/w","^0"); // team txt
  1834.  
  1835. if(id) players[0] = id; else get_players(players,count,"ch");
  1836.  
  1837. for(new i = 0; i < count; i++)
  1838.  
  1839. if(is_user_connected(players[i]))
  1840. {
  1841. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  1842. write_byte(players[i]);
  1843. write_string(msg);
  1844. message_end();
  1845. }
  1846. }
  1847.  
  1848. GetSecureName(const name[])
  1849. {
  1850. static secureName[64];
  1851. copy(secureName, charsmax(secureName), name);
  1852.  
  1853. replace_all(secureName, charsmax(secureName), "\", "\\");
  1854. replace_all(secureName, charsmax(secureName), "'", "\'");
  1855. replace_all(secureName, charsmax(secureName), "`", "\`");
  1856.  
  1857. return secureName;
  1858. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement