Advertisement
Guest User

Untitled

a guest
Nov 5th, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 45.58 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 "Pavadinimas [MIX Arena]"
  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) { pTempAK[attacker]++; InsertWeaponKill(CSW_AK47); }
  797.             else if(containi(weapon_name, "m4a1") != -1) { pTempM4A1[attacker]++; InsertWeaponKill(CSW_M4A1); }
  798.             else if(containi(weapon_name, "deagle") != -1) { pTempDeagle[attacker]++; InsertWeaponKill(CSW_DEAGLE); }
  799.             else if(containi(weapon_name, "awp") != -1) { pTempAWP[attacker]++; InsertWeaponKill(CSW_AWP); }
  800.             else if(containi(weapon_name, "usp") != -1) { pTempUSP[attacker]++; InsertWeaponKill(CSW_USP); }
  801.             else if(containi(weapon_name, "glock") != -1) { pTempGlock[attacker]++; InsertWeaponKill(CSW_GLOCK18); }
  802.             else if(containi(weapon_name, "he") != -1) { pTempHE[attacker]++; InsertWeaponKill(CSW_HEGRENADE); }
  803.             else if(containi(weapon_name, "knife") != -1) { pTempKnives[attacker]++; InsertWeaponKill(CSW_KNIFE); }
  804.             else if(containi(weapon_name, "scout") != -1) { pTempScout[attacker]++; InsertWeaponKill(CSW_SCOUT); }
  805.             else if(containi(weapon_name, "famas") != -1) { pTempFamas[attacker]++; InsertWeaponKill(CSW_FAMAS); }
  806.         }
  807.     }
  808. }
  809.  
  810. public RespawnPlayer(id)
  811. {
  812.     if(!is_user_alive(id) && is_user_connected(id) && 1 <= get_user_team(id) <= 2)
  813.     {  
  814.         ExecuteHamB(Ham_CS_RoundRespawn, id);
  815.     }  
  816. }
  817.  
  818. public event_CurWeapon(id)
  819. {
  820.     if(KnifeRound && get_user_weapon(id) != CSW_KNIFE)
  821.     {  
  822.         engclient_cmd(id, "weapon_knife");
  823.     }  
  824. }
  825.  
  826. public infoPassword(id)
  827. {
  828.     if(!passwordStatus)
  829.     {  
  830.         client_printcolor(id, "/y[/ctr%s/y] Serverio slaptažodis: /g%s", PREFIX, serverPassword);
  831.     }  
  832.     else
  833.     {  
  834.         client_printcolor(id, "/y[/ctr%s/y] Serverio slaptažodis iÅ¡jungtas!", PREFIX, serverPassword);
  835.     }  
  836.     return PLUGIN_HANDLED;
  837. }
  838.  
  839. public hookSay(id)
  840. {
  841.     if(!canChat)
  842.     {
  843.         client_printcolor(id, "/y[/ctr%s/y] Pokalbiai Å¡iuo metu yra iÅ¡jungti!", PREFIX);
  844.         client_printcolor(id, "/y[/ctr%s/y] Galimos komandos: /g.rez .stats .top", PREFIX);
  845.         return PLUGIN_HANDLED;
  846.     }
  847.     return PLUGIN_CONTINUE;
  848. }
  849.  
  850. public cmd_block(id)
  851. {
  852.     if(!WarmUp && !PrepareRound)
  853.     {
  854.         if(1 <= get_user_team(id) <= 2)
  855.             return PLUGIN_HANDLED;
  856.     }
  857.     return PLUGIN_CONTINUE;
  858. }
  859.  
  860. public BlockConsole(id)
  861. {
  862.     return PLUGIN_HANDLED;
  863. }  
  864.  
  865. public mainMenu(id)
  866. {
  867.     if(!isAdmin(id))
  868.         return PLUGIN_HANDLED;
  869.    
  870.     new menu = menu_create("\w[\yMIX\w] \rPagrindinis meniu", "onMainMenu");
  871.    
  872.     new szMsg[64];
  873.    
  874.     menu_additem(menu, "Valdymas");
  875.    
  876.     format(szMsg, 63, "\wPokalbiai \d[%s\d]", canChat ? "\yÄ®jungti" : "\rIÅ¡jungti");
  877.     menu_additem(menu, szMsg);
  878.    
  879.     if(serverPassword[0]) format(szMsg, 63, "\wSlaptažodis \d[\y%s\d]", serverPassword);
  880.     else format(szMsg, 63, "\wSlaptažodis \d[\rNÄ—ra\d]");
  881.     menu_additem(menu, szMsg);
  882.    
  883.     menu_additem(menu, "IÅ¡mesti žaidÄ—jÄ…");
  884.     menu_additem(menu, "IÅ¡baninti žaidÄ—jÄ…");
  885.     menu_additem(menu, "Keisti žemÄ—lapį");
  886.     menu_additem(menu, "Atsijungusių žaidÄ—jų sÄ…raÅ¡as");
  887.    
  888.     menu_display(id, menu, 0)
  889.    
  890.     return PLUGIN_HANDLED;
  891. }
  892.  
  893. public onMainMenu(id, menu, item)
  894. {
  895.     switch(item)
  896.     {
  897.         case 0: actMix(id);
  898.         case 1:
  899.         {
  900.             canChat = !canChat;
  901.             mainMenu(id);
  902.             return PLUGIN_HANDLED;
  903.         }
  904.         case 2: optionsPassword(id);
  905.         case 3: client_cmd(id, "amx_kickmenu");
  906.         case 4: client_cmd(id, "amx_banmenu");
  907.         case 5: client_cmd(id, "amx_mapmenu");
  908.         case 6: client_cmd(id, "amx_bandisconnectedmenu");
  909.     }
  910.     menu_destroy(menu);
  911.     return PLUGIN_HANDLED;
  912. }
  913.  
  914. public optionsPassword(id)
  915. {
  916.     if(!isAdmin(id))
  917.         return PLUGIN_HANDLED;
  918.    
  919.     new szText[64];
  920.     if(serverPassword[0]) format(szText, 63, "\w[\yMIX\w] \rSlaptažodis \d(\y%s\d)", serverPassword);
  921.        
  922.     else format(szText, 63, "\w[\yMIX\w] \rSlaptažodis \d(\rNÄ—ra\d)");
  923.     new menu = menu_create(szText, "onOptionsPassword");
  924.    
  925.     format(szText, 63, "\wSlaptažodis \d[%s\d]", passwordStatus ? "\yÄ®jungtas" : "\rIÅ¡jungtas");
  926.    
  927.     menu_additem(menu, szText);
  928.     menu_additem(menu, "Keisti slaptažodį");
  929.     menu_additem(menu, "IÅ¡trinti slaptažodį");
  930.    
  931.     menu_display(id, menu, 0);
  932.    
  933.     return PLUGIN_HANDLED;
  934. }
  935.  
  936. public onOptionsPassword(id, menu, item)
  937. {
  938.     switch(item)
  939.     {
  940.         case MENU_EXIT:
  941.         {
  942.             mainMenu(id);
  943.             return PLUGIN_HANDLED;
  944.         }
  945.         case 0:
  946.         {
  947.             if(serverPassword[0])
  948.             {
  949.                 passwordStatus = !passwordStatus;
  950.                
  951.                 if(passwordStatus)
  952.                 {
  953.                     server_cmd("sv_password", serverPassword);
  954.                 }
  955.                 else server_cmd("sv_password ^"^"");
  956.             }
  957.             else
  958.             {
  959.                 if(passwordStatus)
  960.                     passwordStatus = false;
  961.                 client_printcolor(id, "/y[/ctr%s/y] Nenustatytas slaptažodis!", PREFIX);
  962.             }
  963.                
  964.         }
  965.         case 1: client_cmd(id, "messagemode SetPassword");
  966.         case 2: format(serverPassword, 63, "");
  967.     }
  968.     optionsPassword(id);
  969.     return PLUGIN_HANDLED;
  970. }
  971.  
  972. public _SetPassword(id)
  973. {
  974.     if(!isAdmin(id))
  975.         return;
  976.    
  977.     new szTemp[64];
  978.     read_args(szTemp, charsmax(szTemp));
  979.     remove_quotes(szTemp);
  980.     format(serverPassword, 63, szTemp);
  981.     optionsPassword(id);
  982.  
  983.     if(!passwordStatus)
  984.     {
  985.         server_cmd("sv_password %s", serverPassword);
  986.         client_printcolor(0, "/y[/ctr%s/y] /g%s/y] Serverio slaptažodis: /g%s" , PREFIX, get_admin_name(id), szTemp);
  987.     }
  988. }
  989.  
  990. public actMix(id)
  991. {
  992.     if(!isAdmin(id))
  993.         return PLUGIN_HANDLED;
  994.    
  995.     new menu = menu_create("\w[\yMIX\w] \rValdymas", "onactMix");
  996.    
  997.     menu_additem(menu, "PradÄ—ti žaidimÄ…");
  998.     menu_additem(menu, "PasiruoÅ¡ti");
  999.     menu_additem(menu, "ApÅ¡ilimas");
  1000.     menu_additem(menu, "Knife");
  1001.     menu_additem(menu, "FFA");
  1002.     menu_additem(menu, "Perkrauti roundÄ…");
  1003.     menu_additem(menu, "Užbaigti žaidimÄ…");
  1004.    
  1005.     menu_display(id, menu, 0);
  1006.    
  1007.     return PLUGIN_HANDLED;
  1008. }
  1009.  
  1010. public onactMix(id, menu, item)
  1011. {
  1012.     switch(item)
  1013.     {
  1014.         case 0: setLive(id);
  1015.         case 1: setPrepare(id);
  1016.         case 2: warmUP(id);
  1017.         case 3: setKnife(id);
  1018.         case 4: FriendlyFire(id);
  1019.         case 5: restartRound(id);
  1020.         case 6: endGame(id);
  1021.     }
  1022.     menu_destroy(menu);
  1023. }
  1024.  
  1025. public setPrepare(id)
  1026. {
  1027.     if(!isAdmin(id))
  1028.         return PLUGIN_HANDLED;
  1029.    
  1030.     if(get_playersnum() >= 10)
  1031.     {
  1032.         server_cmd("sv_restart 1");
  1033.    
  1034.         KnifeRound = false;
  1035.         PrepareRound = true;
  1036.         WarmUp = false;
  1037.         scoreCT = 0;
  1038.         scoreT = 0;
  1039.         tempCount = 0;
  1040.         tempCT = 0;
  1041.         tempT = 0;
  1042.    
  1043.         for(new i = 1; i <= 32; i++)
  1044.         {
  1045.             if(is_user_connected(id) && (1 <= get_user_team(i) <= 2))
  1046.             {
  1047.                 if(is_user_alive(i))
  1048.                     user_silentkill(i);
  1049.                 cs_set_user_team(i, CS_TEAM_SPECTATOR);
  1050.             }
  1051.         }
  1052.        
  1053.         client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] PasiruoÅ¡imas prasidÄ—jo! Administratorius tuoj iÅ¡rinks lyderius!", PREFIX, get_admin_name(id));
  1054.         showPrepareMenu(id);
  1055.     }
  1056.     else
  1057.     {
  1058.         client_printcolor(id, "/y[/ctr%s/y] PasiruoÅ¡imas negali bÅ«ti pradÄ—tas todel kad trÅ«ksta žaidÄ—jų!", PREFIX);
  1059.     }  
  1060.     return PLUGIN_HANDLED;
  1061. }
  1062.  
  1063. public showPrepareMenu(id)
  1064. {
  1065.     if(!isAdmin(id))
  1066.         return PLUGIN_HANDLED;
  1067.    
  1068.     new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis į Counter Terrorist", "onPrepareCT");
  1069.    
  1070.     new players[32], num;
  1071.     get_players(players, num, "ch");
  1072.     new szText[64], ui[32];
  1073.    
  1074.     for(new i; i < num; i++)
  1075.     {
  1076.         format(ui, 31, "%d",get_user_userid(players[i]))
  1077.        
  1078.         if(pPoints[players[i]] <= 10000)
  1079.         {
  1080.             formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1081.         }
  1082.         else if(pPoints[players[i]] <= 20000)
  1083.         {
  1084.             formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1085.         }
  1086.         if(pPoints[players[i]] <= 30000)
  1087.         {
  1088.             formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1089.         }
  1090.         else
  1091.         {
  1092.             formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1093.         }
  1094.         menu_additem(menu, szText, ui);
  1095.     }
  1096.    
  1097.     menu_display(id, menu, 0);
  1098.    
  1099.     return PLUGIN_HANDLED;
  1100. }
  1101.  
  1102. public onPrepareCT(id, menu, item)
  1103. {
  1104.     new szData[6], szName[64];
  1105.     new _access, item_callback;
  1106.    
  1107.     menu_item_getinfo(menu, item, _access, szData, charsmax(szData), szName, charsmax(szName), item_callback);
  1108.    
  1109.     new userid = str_to_num(szData);
  1110.     new player = find_player("k", userid);
  1111.  
  1112.     switch(item)
  1113.     {
  1114.         case MENU_EXIT:
  1115.         {
  1116.             if(PrepareRound) showPrepareMenu(id);
  1117.             return PLUGIN_HANDLED;
  1118.         }
  1119.         default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_CT);
  1120.     }
  1121.    
  1122.     if(PrepareRound)
  1123.     {
  1124.         tempCT = player;
  1125.         client_printcolor(0, "/y[/ctr%s/y] CT lyderis bus: /g%s", PREFIX, szName);
  1126.         client_printcolor(0, "/y[/ctr%s/y] Administratorius tuoj iÅ¡rinks T lyderį!", PREFIX);
  1127.         showPrepareMenuT(id);
  1128.     }
  1129.    
  1130.     return PLUGIN_HANDLED;
  1131. }
  1132.  
  1133. public showPrepareMenuT(id)
  1134. {
  1135.     if(!isAdmin(id))
  1136.         return PLUGIN_HANDLED;
  1137.     new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis į Terrorist", "onPrepareT");
  1138.    
  1139.     new players[32], num;
  1140.     get_players(players, num, "ceh", "SPECTATOR");
  1141.     new szText[64], ui[32];
  1142.    
  1143.     for(new i; i < num; i++)
  1144.     {
  1145.         format(ui, 31, "%d",get_user_userid(players[i]))
  1146.        
  1147.         if(pPoints[players[i]] <= 10000)
  1148.         {
  1149.             formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1150.         }
  1151.         else if(pPoints[players[i]] <= 20000)
  1152.         {
  1153.             formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1154.         }
  1155.         if(pPoints[players[i]] <= 30000)
  1156.         {
  1157.             formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1158.         }
  1159.         else
  1160.         {
  1161.             formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1162.         }
  1163.         menu_additem(menu, szText, ui);
  1164.     }
  1165.    
  1166.     menu_display(id, menu, 0)
  1167.    
  1168.     return PLUGIN_HANDLED;
  1169. }
  1170.  
  1171. public onPrepareT(id, menu, item)
  1172. {
  1173.     new szData[6], szName[64];
  1174.     new _access, item_callback;
  1175.    
  1176.     menu_item_getinfo( menu, item, _access, szData,charsmax(szData), szName, charsmax(szName), item_callback);
  1177.    
  1178.     new userid = str_to_num(szData);
  1179.     new player = find_player("k", userid);
  1180.  
  1181.     switch(item)
  1182.     {
  1183.         case MENU_EXIT:
  1184.         {
  1185.             if(PrepareRound) showPrepareMenuT(id);
  1186.             return PLUGIN_HANDLED;
  1187.         }
  1188.         default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_T)
  1189.     }
  1190.     if(PrepareRound)
  1191.     {
  1192.         tempT = player;
  1193.         client_printcolor(0, "/y[/ctr%s/y] T lyderis bus: /g%s", PREFIX, szName);
  1194.         client_printcolor(0, "/y[/ctr%s/y] Lyderiai pradeda rinktis žaidÄ—jus!", PREFIX);
  1195.         client_printcolor(0, "/y[/ctr%s/y] /gDemesio: /yJeigu Lyderiams dings meniu su zaideju pasirinkimu, chate rasykite /ctr.choose", PREFIX);
  1196.         ShowList(tempCT);
  1197.     }
  1198.     return PLUGIN_HANDLED;
  1199. }
  1200.  
  1201. public choosePlayers(id)
  1202. {
  1203.     switch(tempCount)
  1204.     {
  1205.         case 0, 2, 4, 6: if(tempT == id) ShowList(id);
  1206.         case 1, 3, 5, 7: if(tempCT == id) ShowList(id);
  1207.     }
  1208.     return PLUGIN_HANDLED;
  1209. }
  1210.  
  1211. public showTeamMenu(id)
  1212. {
  1213.     new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandÄ…", "onTeamChange")
  1214.  
  1215.     menu_additem(menu, "Pasilikti");
  1216.     menu_additem(menu, "Keistis komandomis");
  1217.    
  1218.     menu_display(id, menu, 0);
  1219.    
  1220.     return PLUGIN_HANDLED;
  1221. }
  1222.  
  1223. public onTeamChange(id, menu, item)
  1224. {
  1225.     switch(item)
  1226.     {
  1227.         case 0:
  1228.         {
  1229.             client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gPasilikti", PREFIX);
  1230.             setServerLive();
  1231.         }
  1232.         case 1:
  1233.         {
  1234.             client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gkeistis komandomis", PREFIX);
  1235.             changeTeams();
  1236.             set_task(2.0, "setServerLive", 1);
  1237.         }
  1238.     }
  1239. }
  1240.  
  1241. public ShowList(id)
  1242. {
  1243.     new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandos draugÄ…", "onShowList")
  1244.    
  1245.     new players[32], num;
  1246.     get_players(players, num, "ceh", "SPECTATOR");
  1247.     new szText[64], ui[32];
  1248.  
  1249.     for(new i; i < num; i++)
  1250.     {
  1251.         format(ui, 31, "%d",get_user_userid(players[i]));
  1252.        
  1253.         if(pPoints[players[i]] <= 10000)
  1254.         {
  1255.             formatex(szText, charsmax(szText), "\d%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1256.         }
  1257.         else if(pPoints[players[i]] <= 20000)
  1258.         {
  1259.             formatex(szText, charsmax(szText), "\w%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1260.         }
  1261.         if(pPoints[players[i]] <= 30000)
  1262.         {
  1263.             formatex(szText, charsmax(szText), "\y%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1264.         }
  1265.         else
  1266.         {
  1267.             formatex(szText, charsmax(szText), "\r%s - %d", get_admin_name(players[i]), pPoints[players[i]]);
  1268.         }
  1269.         menu_additem(menu, szText, ui)
  1270.     }
  1271.    
  1272.     menu_display(id, menu, 0);
  1273.    
  1274.     return PLUGIN_HANDLED;
  1275. }
  1276.  
  1277. public onShowList(id, menu, item)
  1278. {
  1279.     new szData[6], szName[64];
  1280.     new _access, item_callback;
  1281.    
  1282.     new Where;
  1283.     switch(tempCount)
  1284.     {
  1285.         case 0, 2, 4, 6: Where = 0;
  1286.         case 1, 3, 5, 7: Where = 1;
  1287.         default: Where = -1;
  1288.     }
  1289.        
  1290.     menu_item_getinfo(menu, item, _access, szData,charsmax(szData), szName,charsmax(szName), item_callback);
  1291.    
  1292.     new userid = str_to_num(szData);
  1293.     new player = find_player("k", userid);
  1294.  
  1295.     switch(item)
  1296.     {
  1297.         case MENU_EXIT:
  1298.         {
  1299.             if(PrepareRound) ShowList(id)
  1300.             return PLUGIN_HANDLED;
  1301.         }
  1302.         default: if(PrepareRound && is_user_connected(player))
  1303.         {
  1304.             if(Where == 0)
  1305.             {
  1306.                 cs_set_user_team(player, CS_TEAM_CT);
  1307.             }
  1308.             else
  1309.             {  
  1310.                 cs_set_user_team(player, CS_TEAM_T);
  1311.             }
  1312.         }
  1313.     }
  1314.     if(PrepareRound)
  1315.     {
  1316.         tempCount++;
  1317.         client_printcolor(0, "/y[/ctr%s/y] [/g%s /yPasirinko /g%s", PREFIX, get_admin_name(id), szName);
  1318.        
  1319.         if(tempCount < 8)
  1320.         {  
  1321.             ShowList(Where == 1 ? tempCT : tempT);
  1322.         }  
  1323.         else
  1324.         {
  1325.             /*KnifeRound = true;
  1326.             PrepareRound = false;
  1327.             WarmUp = false;
  1328.             scoreCT = 0;
  1329.             scoreT = 0;
  1330.            
  1331.             server_cmd("mp_roundtime 1.8")
  1332.             server_cmd("mp_buytime 0.30")
  1333.             server_cmd("mp_startmoney 16000")
  1334.             server_cmd("mp_freezetime 7")
  1335.                    
  1336.             server_cmd("sv_restart 1")*/
  1337.                    
  1338.             client_printcolor(0, "/y[/ctr%s/y] Komandų rinkimasis baigtas!", PREFIX)
  1339.            
  1340.             setServerLive()
  1341.         }
  1342.     }
  1343.     return PLUGIN_HANDLED;
  1344. }
  1345.  
  1346. public restartRound(id)
  1347. {
  1348.     if(!isAdmin(id))  
  1349.         return PLUGIN_HANDLED;
  1350.    
  1351.     server_cmd("sv_restart 1");
  1352.  
  1353.     client_printcolor(0, "/y[/ctr%s/y] Perkrautas roundas!", PREFIX);
  1354.     return PLUGIN_HANDLED;
  1355. }
  1356.  
  1357. public setServerLive()
  1358. {  
  1359.     KnifeRound = false;
  1360.     PrepareRound = false;
  1361.     WarmUp = false;
  1362.     scoreCT = 0;
  1363.     scoreT = 0;
  1364.    
  1365.     server_cmd("mp_roundtime 1.8")
  1366.     server_cmd("mp_buytime 0.30")
  1367.     server_cmd("mp_startmoney 800")
  1368.     server_cmd("mp_freezetime 7")
  1369.    
  1370.     server_cmd("sv_restart 3")
  1371.    
  1372.     set_task(1.0, "set_password");
  1373.  
  1374.     client_printcolor(0, "/y[/ctr%s/y] Žaidimas PrasidÄ—jo! Gero žaidimo jums linki - Administracija!", PREFIX)
  1375.  
  1376.     server_cmd("hostname ^"[Live - Counter-Terrorist [0] - [0] Terrorist] %s^"", HOSTNAME)
  1377.    
  1378.     return PLUGIN_HANDLED;
  1379. }
  1380.  
  1381. public setLive(id)
  1382. {
  1383.     if(!isAdmin(id))
  1384.         return PLUGIN_HANDLED
  1385.  
  1386.     KnifeRound = false;
  1387.     PrepareRound = false;
  1388.     WarmUp = false;
  1389.     scoreCT = 0;
  1390.     scoreT = 0;
  1391.    
  1392.     server_cmd("mp_roundtime 1.8");
  1393.     server_cmd("mp_buytime 0.30");
  1394.     server_cmd("mp_startmoney 800");
  1395.     server_cmd("mp_freezetime 7");
  1396.    
  1397.     server_cmd("sv_restart 3");
  1398.    
  1399.     set_task(1.0, "set_password");
  1400.    
  1401.     client_printcolor(0, "/y[/ctr%s/y] Žaidimas PrasidÄ—jo! Gero žaidimo jums linki - Administracija!", PREFIX);
  1402.  
  1403.     server_cmd("hostname ^"[Live - Counter-Terrorist [0] - [0] Terrorist] %s^"", HOSTNAME)
  1404.  
  1405.     return PLUGIN_HANDLED;
  1406. }
  1407.  
  1408. public setRestart(id)
  1409. {
  1410.     if(!isAdmin(id))  
  1411.         return PLUGIN_HANDLED;
  1412.    
  1413.     server_cmd("sv_restart 1");
  1414.    
  1415.     client_printcolor(0, "/y[/ctr%s/y] Perkrautas roundas!", PREFIX);
  1416.     return PLUGIN_HANDLED;
  1417. }
  1418.  
  1419. public warmUP(id)
  1420. {
  1421.     if(!isAdmin(id))
  1422.         return PLUGIN_HANDLED;
  1423.  
  1424.     passwordStatus = false;
  1425.     KnifeRound = false;
  1426.     PrepareRound = false;
  1427.     WarmUp = true;
  1428.     scoreCT = 0;
  1429.     scoreT = 0;
  1430.    
  1431.     server_cmd("mp_roundtime 600");
  1432.     server_cmd("mp_buytime 999999");
  1433.     server_cmd("mp_startmoney 16000");
  1434.     server_cmd("mp_freezetime 0");
  1435.     server_cmd("sv_password ^"^"");
  1436.    
  1437.     server_cmd("sv_restart 1");
  1438.  
  1439.     client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] ApÅ¡ilimas PrasidÄ—jo!", PREFIX, get_admin_name(id));
  1440.    
  1441.     server_cmd("hostname ^"%s [ApÅ¡ilimas]^"", HOSTNAME)
  1442.    
  1443.     return PLUGIN_HANDLED;
  1444. }
  1445.  
  1446. public setKnife(id)
  1447. {
  1448.     if(!isAdmin(id))
  1449.         return PLUGIN_HANDLED;
  1450.  
  1451.     KnifeRound = true;
  1452.     PrepareRound = false;
  1453.     WarmUp = false;
  1454.     scoreCT = 0;
  1455.     scoreT = 0;
  1456.    
  1457.     server_cmd("mp_roundtime 1.8");
  1458.     server_cmd("mp_buytime 0.30");
  1459.     server_cmd("mp_startmoney 800");
  1460.     server_cmd("mp_freezetime 7");
  1461.    
  1462.     server_cmd("sv_restart 1");
  1463.    
  1464.     client_printcolor(0, "/y[/ctr%s/y] [/g%s/y] PrasidÄ—jo peilių roundas! SÄ—kmÄ—s!", PREFIX, get_admin_name(id));
  1465.     return PLUGIN_HANDLED;
  1466. }
  1467.  
  1468. public FriendlyFire(id)
  1469. {  
  1470.     if(!isAdmin(id))
  1471.         return PLUGIN_HANDLED;
  1472.    
  1473.     if(Fire == true)
  1474.     {
  1475.         server_cmd( "mp_friendlyfire 0" );
  1476.         client_printcolor(0, "/y[/ctr%s/y] FriendlyFire /yOFF!", PREFIX);
  1477.         Fire = false;
  1478.     }
  1479.     else
  1480.     {
  1481.         server_cmd( "mp_friendlyfire 1" );
  1482.         client_printcolor(0, "/y[/ctr%s/y] FriendlyFire /yON!", PREFIX);
  1483.         Fire = true;
  1484.     }  
  1485.     return PLUGIN_HANDLED;
  1486. }
  1487.  
  1488. public drawGame()
  1489. {
  1490.     for(new i = 1; i <= 32; i++)
  1491.     {
  1492.         if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1493.         {
  1494.             pMixPlayed[i]++;
  1495.             pPoints[i] += POINTS_MIX_PLAYED;
  1496.            
  1497.             pMixDraw[i]++;
  1498.             pPoints[i] += POINTS_MIX_DRAW;
  1499.             SavePlayer(i);
  1500.         }
  1501.     }
  1502. }
  1503.  
  1504. public TeamWon(team)
  1505. {
  1506.     for(new i = 1; i <= 32; i++)
  1507.     {
  1508.         if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1509.         {
  1510.             pMixPlayed[i]++;
  1511.             pPoints[i] += POINTS_MIX_PLAYED;
  1512.            
  1513.             if(get_user_team(i) == team)
  1514.             {
  1515.                 pMixWon[i]++;
  1516.                 pPoints[i] += POINTS_MIX_WON;
  1517.             }
  1518.             else
  1519.             {
  1520.                 pMixLost[i]++;
  1521.                 pPoints[i] += POINTS_MIX_LOST;
  1522.             }
  1523.             SavePlayer(i);
  1524.         }
  1525.     }
  1526. }
  1527.  
  1528. public setEndGame()
  1529. {
  1530.     showMVP();
  1531.     InsertGame();
  1532.    
  1533.     passwordStatus = false;
  1534.     KnifeRound = false;
  1535.     PrepareRound = false;
  1536.     WarmUp = true;
  1537.     canChat = true;
  1538.     scoreCT = 0;
  1539.     scoreT = 0;
  1540.    
  1541.     server_cmd("mp_roundtime 600");
  1542.     server_cmd("mp_startmoney 16000");
  1543.     server_cmd("mp_buytime 999999");
  1544.     server_cmd("mp_freezetime 0");
  1545.     server_cmd("sv_password ^"^"");
  1546.    
  1547.     client_printcolor(0, "/y[/ctr%s/y] Žaidimas baigtas! Laukite žemÄ—lapio keitimo!", PREFIX);
  1548.    
  1549.     server_cmd("hostname ^"%s [ApÅ¡ilimas]^"", HOSTNAME);
  1550.  
  1551.     return PLUGIN_HANDLED;
  1552. }
  1553.  
  1554. public endGame(id)
  1555. {
  1556.     if(!isAdmin(id))
  1557.         return PLUGIN_HANDLED;
  1558.    
  1559.     showMVP();
  1560.     InsertGame();
  1561.  
  1562.     passwordStatus = false;
  1563.     KnifeRound = false;
  1564.     PrepareRound = false;
  1565.     WarmUp = true;
  1566.     canChat = true;
  1567.     scoreCT = 0;
  1568.     scoreT = 0;
  1569.    
  1570.     server_cmd("mp_roundtime 600");
  1571.     server_cmd("mp_startmoney 16000");
  1572.     server_cmd("mp_buytime 999999");
  1573.     server_cmd("mp_freezetime 0");
  1574.     server_cmd("sv_password ^"^"");
  1575.    
  1576.     server_cmd("sv_restart 1");
  1577.    
  1578.     client_printcolor(0, "/y[/ctr%s/y] Ä®jungtas apÅ¡ilimas! Laukite žemÄ—lapio keitimo!", PREFIX);
  1579.    
  1580.     server_cmd("hostname ^"%s [ApÅ¡ilimas]^"", HOSTNAME);
  1581.  
  1582.     return PLUGIN_HANDLED;
  1583. }
  1584.  
  1585. public showMVP()
  1586. {
  1587.     new KillerName[256], DeathsName[256], BombPName[256], BombDName[256];
  1588.     new iPlayers[32], pNum, Tempid;
  1589.     new topKillerid, topDeathsid, topBombPid, topBombDid;
  1590.     new topKills, topDeaths, topBombP, topBombD;
  1591.  
  1592.     get_players(iPlayers, pNum, "ch");
  1593.            
  1594.     for(new i ; i < pNum ; i++)
  1595.     {
  1596.         Tempid = iPlayers[i];
  1597.        
  1598.         if(pTempKills[Tempid] >= topKills && pTempKills[Tempid])
  1599.         {
  1600.             topKills = pTempKills[Tempid];
  1601.             topKillerid = Tempid;
  1602.         }
  1603.        
  1604.         if(pTempDeaths[Tempid] >= topDeaths && pTempDeaths[Tempid])
  1605.         {
  1606.             topDeaths = pTempDeaths[Tempid];
  1607.             topDeathsid = Tempid;
  1608.         }
  1609.        
  1610.         if(pTempPlants[Tempid] >= topBombP && pTempPlants[Tempid])
  1611.         {
  1612.             topBombP = pTempPlants[Tempid];
  1613.             topBombPid = Tempid;
  1614.         }
  1615.        
  1616.         if(pTempDefusions[Tempid] >= topBombD && pTempDefusions[Tempid])
  1617.         {
  1618.             topBombD = pTempDefusions[Tempid];
  1619.             topBombDid = Tempid;
  1620.         }
  1621.     }
  1622.    
  1623.     if(1 <= topKillerid <= get_maxplayers())
  1624.     {
  1625.         get_user_name(topKillerid, KillerName, charsmax(KillerName));
  1626.     }
  1627.    
  1628.     if(1 <= topDeathsid <= get_maxplayers())
  1629.     {  
  1630.         get_user_name(topDeathsid, DeathsName, charsmax(DeathsName));
  1631.     }
  1632.    
  1633.     if(1 <= topBombPid <= get_maxplayers())
  1634.     {  
  1635.         get_user_name(topBombPid, BombPName, charsmax(BombPName));
  1636.     }
  1637.    
  1638.     if(1 <= topBombDid <= get_maxplayers())
  1639.     {  
  1640.         get_user_name(topBombDid, BombDName, charsmax(BombDName));
  1641.     }
  1642.    
  1643.     for(new i ; i < pNum ; i++)
  1644.     {
  1645.         Tempid = iPlayers[i];
  1646.        
  1647.         if(pTempKills[Tempid] == topKills && Tempid != topKillerid && pTempKills[Tempid])
  1648.         {
  1649.             new LineToAdd[65] = ",";
  1650.             new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1651.            
  1652.             add(LineToAdd, charsmax(LineToAdd), szName);
  1653.             add(KillerName, charsmax(KillerName) - strlen(BombDName) , LineToAdd);
  1654.         }
  1655.        
  1656.         if(pTempDeaths[Tempid] == topDeaths && Tempid != topDeathsid && pTempDeaths[Tempid])
  1657.         {
  1658.             new LineToAdd[65] = ",";
  1659.             new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1660.            
  1661.             add(LineToAdd, charsmax(LineToAdd), szName);
  1662.             add(DeathsName, charsmax(DeathsName) - strlen(DeathsName) , LineToAdd);
  1663.         }
  1664.        
  1665.         if(pTempPlants[Tempid] == topBombP && Tempid != topBombPid && pTempPlants[Tempid])
  1666.         {
  1667.             new LineToAdd[65] = ","
  1668.             new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1669.            
  1670.             add(LineToAdd, charsmax(LineToAdd), szName);
  1671.             add(BombPName, charsmax(BombPName) - strlen(BombPName) , LineToAdd);
  1672.         }
  1673.        
  1674.         if(pTempDefusions[Tempid] == topBombD && Tempid != topBombDid && pTempDefusions[Tempid])
  1675.         {
  1676.             new LineToAdd[65] = ",";
  1677.             new szName[64]; get_user_name(Tempid, szName, charsmax(szName));
  1678.            
  1679.             add(LineToAdd, charsmax(LineToAdd), szName);
  1680.             add(BombDName, charsmax(BombDName) - strlen(BombDName), LineToAdd);
  1681.         }
  1682.     }
  1683.    
  1684.     new msgToDisplay[456] = "%L";
  1685.    
  1686.     format(msgToDisplay, charsmax(msgToDisplay), msgToDisplay, LANG_PLAYER, "RANKING_MVP", scoreCT, scoreT, strlen(KillerName) ? KillerName : "NONE", topKills, strlen(DeathsName) ? DeathsName : "NONE", topDeaths,
  1687.         strlen(BombPName) ? BombPName : "NONE", topBombP, strlen(BombDName) ? BombDName : "NONE", topBombD);       
  1688.          
  1689.     set_task(1.0, "RankingTable", TASK_MVP, msgToDisplay, strlen(msgToDisplay), "b")
  1690. }
  1691.  
  1692. public RankingTable(msgToDisplay[], TASK_MVP)
  1693. {
  1694.     new iPlayers[32], pNum, id;
  1695.    
  1696.     for(new i ; i < pNum ; i++)
  1697.     {
  1698.         id = iPlayers[i];
  1699.     }
  1700.    
  1701.     set_hudmessage(255, 255, 255, -1.0, 0.10, 0, 6.0, 30.0)
  1702.     show_hudmessage(0, msgToDisplay);
  1703.    
  1704.     client_cmd(id, "say /setstats");
  1705. }
  1706.  
  1707. public Ranking(id)
  1708. {
  1709.     static query[512];
  1710.     formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pTempPoints[id]);
  1711.     log_amx(query)
  1712.     static data[2];
  1713.     data[0] = id;
  1714.    
  1715.     SQL_ThreadQuery(g_hTuple, "RankTableMVP", query, data, sizeof(data));
  1716.     return PLUGIN_HANDLED;
  1717. }
  1718.  
  1719. public RankTableMVP(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  1720. {
  1721.     if(failstate == TQUERY_CONNECT_FAILED || failstate == TQUERY_QUERY_FAILED)
  1722.     {
  1723.         set_fail_state(error);
  1724.     }
  1725.     else
  1726.     {
  1727.         new id = data[0];
  1728.         new msgToDisplay[456] = "%L";
  1729.            
  1730.         if(SQL_NumResults(hQuery))
  1731.         {
  1732.             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]);
  1733.        
  1734.             set_hudmessage(255, 255, 255, -1.0, 0.35, 0, 6.0, 30.0)
  1735.             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]);
  1736.         }
  1737.     }
  1738. }
  1739.  
  1740. public restart(id)
  1741. {
  1742.     server_cmd("restart");
  1743. }
  1744.  
  1745. public getScore(id)
  1746. {
  1747.     if(WarmUp || KnifeRound || PrepareRound)
  1748.         client_printcolor(id, "/y[/ctr%s/y] Žaidimas Å¡iuo metu nevyksta!", PREFIX);
  1749.     else client_printcolor(id, "/y[/ctr%s/y] CT's: /g%i /y|| T's: /g%i", PREFIX, scoreCT, scoreT);
  1750.     return PLUGIN_HANDLED;
  1751. }
  1752.  
  1753. public showPlayerAce(id)
  1754. {
  1755.     static query[512];
  1756.     formatex(query, charsmax(query), "SELECT COUNT(*) FROM mix_players WHERE points > '%d'", pPoints[id]);
  1757.     log_amx(query)
  1758.     static data[2];
  1759.     data[0] = id;
  1760.    
  1761.     SQL_ThreadQuery(g_hTuple, "QueryLoadAce", query, data, sizeof(data));
  1762.     return PLUGIN_HANDLED;
  1763. }
  1764.  
  1765. public QueryLoadAce(failstate, Handle:hQuery, error[], errnum, data[], size, Float:queuetime)
  1766. {
  1767.     if( failstate == TQUERY_CONNECT_FAILED
  1768.     || failstate == TQUERY_QUERY_FAILED )
  1769.     {
  1770.         set_fail_state(error);
  1771.     }
  1772.     else
  1773.     {
  1774.         new id = data[0];
  1775.        
  1776.         if(SQL_NumResults(hQuery))
  1777.         {
  1778.             if(SQL_NumResults(hQuery))
  1779.         {
  1780.             client_printcolor(id, "/y[/ctr%s/y] /yMini-ACE ^3%d ^4| /yACE ^3%d", PREFIX, pMiniAces[id], pAces[id])
  1781.         }
  1782.         }
  1783.     }
  1784. }
  1785.  
  1786. public set_password(id)
  1787. {  
  1788.     new rnd = random_num(99, 9999);
  1789.     new serverPassword[10];
  1790.        
  1791.     num_to_str(rnd, serverPassword, 9);
  1792.        
  1793.     server_cmd("sv_password %s", serverPassword);
  1794. }
  1795.  
  1796. public InsertWeaponKill(wpnindex)
  1797. {
  1798.     new szQuery[3800];
  1799.    
  1800.     formatex( szQuery, 3799, "INSERT INTO `mix_gun` (`gun_id`, `kills`) VALUES (%d, 1) ON DUPLICATE KEY UPDATE `kills` = `kills` + 1;", wpnindex);
  1801.    
  1802.     log_amx(szQuery)
  1803.     SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  1804. }
  1805.  
  1806. stock get_admin_name(id)
  1807. {
  1808.     new name[64]
  1809.     get_user_name(id, name, 63)
  1810.     return name
  1811. }
  1812.  
  1813. stock client_printcolor(const id, const input[], any:...)
  1814. {
  1815.     new count = 1, players[32];
  1816.     static msg[191];
  1817.     vformat(msg, 190, input, 3);
  1818.    
  1819.     replace_all(msg,190,"/g","^4");     // green txt
  1820.     replace_all(msg,190,"/y","^1");     // orange txt
  1821.     replace_all(msg,190,"/ctr","^3");   // team txt
  1822.     replace_all(msg,190,"/w","^0");     // team txt
  1823.    
  1824.     if(id) players[0] = id; else get_players(players,count,"ch");
  1825.    
  1826.     for(new i = 0; i < count; i++)
  1827.        
  1828.     if(is_user_connected(players[i]))
  1829.     {
  1830.         message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  1831.         write_byte(players[i]);
  1832.         write_string(msg);
  1833.         message_end();
  1834.     }
  1835. }
  1836.  
  1837. GetSecureName(const name[])
  1838. {
  1839.     static secureName[64];
  1840.     copy(secureName, charsmax(secureName), name);
  1841.    
  1842.     replace_all(secureName, charsmax(secureName), "\", "\\");
  1843.    replace_all(secureName, charsmax(secureName), "'", "\'");
  1844.    replace_all(secureName, charsmax(secureName), "`", "\`");
  1845.    
  1846.    return secureName;
  1847. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement