Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.82 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <fakemeta>
  6. #include <sqlx>
  7. #include <user_afk_status>
  8.  
  9. #define AFK_TIME 15
  10.  
  11. // Hostname, nustatyk ДЌia.
  12. #define HOSTNAME "Cslife.LT MIX ARENA"
  13.  
  14. // Prefix'as prie tekstЕі
  15. #define PREFIX "MIX"
  16.  
  17. // Flagas, pagal kurДЇ bus atpaЕѕДЇstamas administratorius, kuris galД—s valdyti MIX serverДЇ
  18. #define FLAG ADMIN_BAN
  19.  
  20. #define MIX_HOST "127.0.0.1"
  21. #define MIX_USER "admin"
  22. #define MIX_PASSWORD "mixas2233"
  23. #define MIX_DATABASE "mix"
  24.  
  25. //MVP dalykai
  26. #define POINTS_MVP_KILL 5
  27. #define POINTS_MLP_DEATH -5
  28. #define POINTS_MVP_PLANT 4
  29. #define POINTS_MVP_DEFUSE 4
  30. //
  31.  
  32. #define POINTS_KILL 1 // nuzudymas
  33. #define POINTS_DEATH -1 // mirtis
  34. #define POINTS_ACE 10 // ace
  35. #define POINTS_HS 0 // hs
  36. #define POINTS_MINI_ACE 5 // mini ace
  37. #define POINTS_MIX_PLAYED 5 // suzaistas matchas
  38. #define POINTS_MIX_LOST -10 // pralaimetas matchas
  39. #define POINTS_MIX_WON 15 // laimetas matchas
  40. #define POINTS_MIX_DRAW 10 // lygiosios
  41.  
  42.  
  43.  
  44.  
  45. new Handle:g_hTuple;
  46.  
  47. new const szTables[][] =
  48. {
  49. "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, PRIMARY KEY (`player_id`), `mvp` int(16) NOT NULL, `mlp` int(16) NOT NULL )",
  50.  
  51. "CREATE TABLE IF NOT EXISTS `mix_guns` ( `gun_id` int(32) NOT NULL, `kills` int(16), PRIMARY KEY (`gun_id`) )",
  52.  
  53. "CREATE TABLE IF NOT EXISTS `mix_games` ( `id` int(32) NOT NULL, `map_name` varchar(64) NOT NULL, `date` varchar(64), `rez_ct` int(16), `rez_t` int(16), PRIMARY KEY (`id`) )"
  54. }
  55.  
  56. //MVP dalykai
  57. new pKills_Old[33], pDeaths_Old[33], pHeadshots_Old[33], pDefused[33], pPlanted[33]
  58. new cvar_enabled
  59. new g_SvPassword
  60. //
  61.  
  62. new pKills[33], pDeaths[33], pHeadshots[33], pAces[33], pMiniAces[33], pMixPlayed[33], pMixLost[33], pMixDraw[33], pMixWon[33], pPoints[33], bool:pLoaded[33], pMvp[33], pMlp[33]
  63.  
  64. #define isAdmin(%1) (get_user_flags(%1) & FLAG)
  65.  
  66. new scoreT, scoreCT, serverPassword[64], tempCT, tempT, tempCount
  67. new bool:WarmUp = true, bool:KnifeRound, bool:passwordStatus, bool:canChat = true,bool:PrepareRound
  68. new Kills[33]
  69.  
  70. new const BlockCmds[][] = {
  71. "amx_unban",
  72. "amx_rcon",
  73. "amx_cvar",
  74. "amxmodmenu"
  75. }
  76.  
  77. new const Commands[][][] = {
  78. {"menu", "mainMenu"},
  79. {"live", "setLive"},
  80. {"rr", "restartRound"},
  81. {"wu", "warmUP"},
  82. {"warmup", "warmUP"},
  83. {"gg", "endGame"},
  84. {"knife", "setKnife"},
  85. {"knf", "setKnife"},
  86. {"score", "getScore"},
  87. {"rez", "getScore"},
  88. //{"pw", "infoPassword"},
  89. {"prep", "setPrepare"},
  90. {"renkam", "setPrepare"},
  91. {"me", "me"},
  92. {"mixme", "mixme"},
  93. {"rank", "info"},
  94. {"stats", "info"},
  95. //{"scorect", "setScoreCT_test"},
  96. {"pw", "show_password"}
  97. }
  98.  
  99.  
  100.  
  101. public plugin_init()
  102. {
  103. register_plugin("MIX Panel", "1.3", "InvIs")
  104. new szFmt[64]
  105. for(new i = 0; i < sizeof(BlockCmds); i++) {
  106. register_concmd(BlockCmds[i], "BlockConsole")
  107. }
  108. for(new i = 0; i < sizeof(Commands); i++) {
  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 !%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. format(szFmt, 63, "say_team !%s", Commands[i][0])
  120. register_clcmd(szFmt, Commands[i][1])
  121. }
  122. register_clcmd("SetPassword", "_SetPassword")
  123. register_clcmd("say", "hookSay")
  124.  
  125. server_cmd("sv_password ^"^"")
  126. g_SvPassword = get_cvar_pointer("sv_password")
  127. //MVP dalykai
  128. //register_event( "DeathMsg","event_death", "a" );
  129. register_logevent( "Bomb_Planted", 3, "2=Planted_The_Bomb" );
  130. register_logevent( "Bomb_Defused", 3, "2=Defused_The_Bomb" );
  131.  
  132. cvar_enabled = register_cvar( "mvp_enabled" , "1" );
  133. //
  134.  
  135. register_event( "CurWeapon", "event_CurWeapon", "be","1=1" );
  136. register_event("DeathMsg", "DeathEvent", "a");
  137. RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1 );
  138. register_logevent("RoundEnd", 2, "1=Round_End")
  139. register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
  140. register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
  141. register_forward(FM_Voice_SetClientListening, "ClientListen");
  142.  
  143.  
  144. server_cmd("hostname ^"%s^"", HOSTNAME);
  145. }
  146. public plugin_cfg()
  147. {
  148. set_task(0.5, "MySQLx_Init");
  149. }
  150. public client_death(killer, victim, wpnindex, hitplace, TK)
  151. {
  152. if((1 <= killer <= 32) && (1 <= victim <= 32))
  153. {
  154. switch(wpnindex)
  155. {
  156. case CSW_KNIFE, CSW_GLOCK18, CSW_AWP, CSW_AK47, CSW_DEAGLE, CSW_USP, CSW_SCOUT, CSW_M4A1, CSW_HEGRENADE:
  157. {
  158. InsertWeaponKill(wpnindex);
  159. }
  160. }
  161. }
  162. }
  163. public MySQLx_Init()
  164. {
  165.  
  166. g_hTuple = SQL_MakeDbTuple( MIX_HOST, MIX_USER, MIX_PASSWORD, MIX_DATABASE );
  167.  
  168. for ( new i = 0; i < sizeof szTables; i++ )
  169. {
  170. SQL_ThreadQuery( g_hTuple, "QuerySetData", szTables[i]);
  171. }
  172. }
  173. public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
  174. {
  175. if( iFailState == TQUERY_CONNECT_FAILED
  176. || iFailState == TQUERY_QUERY_FAILED )
  177. {
  178. log_amx( "%s", szError );
  179.  
  180. return;
  181. }
  182. }
  183. public ClientListen(pid /*receiver*/, id /*sender*/) {
  184. if(pid == id) return 1;
  185.  
  186. if(is_user_connected(id)) {
  187. new szTeam[2];
  188. szTeam[0] = get_pdata_int(id, 114);
  189. szTeam[1] = get_pdata_int(pid, 114);
  190.  
  191. if(szTeam[0] == szTeam[1] || WarmUp || KnifeRound || PrepareRound) {
  192. engfunc(EngFunc_SetClientListening, pid, id, 1);
  193. return 4;
  194. }
  195. engfunc(EngFunc_SetClientListening, pid, id, 0);
  196. return 4;
  197. }
  198. return 1;
  199. }
  200. public client_connect(id)
  201. {
  202. if(is_user_hltv(id)) return PLUGIN_HANDLED;
  203.  
  204. //mvp dalykai
  205. pKills_Old[id] = 0
  206. pDeaths_Old[id] = 0
  207. pHeadshots_Old[id] = 0
  208. pDefused[id] = 0
  209. pPlanted[id] = 0
  210. pMvp[id] = 0
  211. pMlp[id] = 0
  212. //
  213. pKills[id] = 0;
  214. pDeaths[id] = 0;
  215. pHeadshots[id] = 0;
  216. pAces[id] = 0;
  217. pMiniAces[id] = 0;
  218. pMixPlayed[id] = 0;
  219. pMixLost[id] = 0;
  220. pMixDraw[id] = 0;
  221. pMixWon[id] = 0;
  222. pPoints[id] = 0;
  223. pLoaded[id] = false;
  224. LoadPlayerData(id);
  225.  
  226. return PLUGIN_CONTINUE
  227. }
  228. public InsertGame()
  229. {
  230. new szQuery[3800];
  231.  
  232. new year, month, day, hour, minute, second, current_date[128], map_name[64];
  233.  
  234. get_mapname(map_name, 63)
  235.  
  236. date(year, month, day);
  237. time(hour, minute, second);
  238.  
  239. format(current_date, 127, "%i-%i-%i %i:%i:%i", year, month, day, hour, minute, second);
  240.  
  241. formatex( szQuery, 3799, "REPLACE INTO `mix_games` (`map_name`, `date`, `rez_ct`, `rez_t`) VALUES ('%s', '%s', '%d', '%d');", map_name, current_date, scoreCT, scoreT);
  242. SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  243. }
  244. public InsertWeaponKill(wpnindex)
  245. {
  246. new szQuery[3800];
  247. formatex( szQuery, 3799, "REPLACE INTO `mix_guns` (`gun_id`, `kills`) VALUES ('%d', 1) ON DUPLICATE KEY UPDATE `kills` = `kills` + 1;", wpnindex);
  248. SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  249. }
  250. public SavePlayer(id)
  251. {
  252. if(!pLoaded[id]) return PLUGIN_HANDLED;
  253.  
  254. new Name[64], steam[64];
  255. get_user_name(id, Name, 63);
  256.  
  257. get_user_authid(id, steam, 63);
  258.  
  259. new szQuery[3800];
  260. 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`, `mvp`, `mlp`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", steam, GetSecureName(Name), pKills[id], pDeaths[id], pHeadshots[id], pAces[id], pMiniAces[id], pMixPlayed[id], pMixLost[id], pMixWon[id], pMixDraw[id], pPoints[id], pMvp[id], pMlp[id]);
  261.  
  262. SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
  263.  
  264. return PLUGIN_CONTINUE;
  265. }
  266. public LoadPlayerData(id)
  267. {
  268. new steam[64];
  269. get_user_authid(id, steam, 63);
  270.  
  271. static szQuery[ 256 ], iData[ 1 ];
  272. formatex( szQuery, 255, "SELECT * FROM `mix_players` WHERE ( `player_id` = '%s' );", steam );
  273.  
  274. iData[ 0 ] = id;
  275. SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 );
  276.  
  277. return PLUGIN_CONTINUE;
  278. }
  279. public QuerySelectData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
  280. {
  281. if( iFailState == TQUERY_CONNECT_FAILED
  282. || iFailState == TQUERY_QUERY_FAILED )
  283. {
  284. log_amx( "%s", szError );
  285.  
  286. return;
  287. }
  288. else
  289. {
  290. new id = iData[ 0 ];
  291. new data_kills = SQL_FieldNameToNum(hQuery, "kills");
  292. new data_deaths = SQL_FieldNameToNum(hQuery, "deaths");
  293. new data_headshots = SQL_FieldNameToNum(hQuery, "headshots");
  294. new data_aces = SQL_FieldNameToNum(hQuery, "aces");
  295. new data_mini_aces = SQL_FieldNameToNum(hQuery, "m_aces");
  296. new data_mix_played = SQL_FieldNameToNum(hQuery, "mix_played");
  297. new data_mix_lost = SQL_FieldNameToNum(hQuery, "mix_lost");
  298. new data_mix_draw = SQL_FieldNameToNum(hQuery, "mix_draw");
  299. new data_mix_won = SQL_FieldNameToNum(hQuery, "mix_won");
  300. new data_points = SQL_FieldNameToNum(hQuery, "points");
  301. new data_mvp = SQL_FieldNameToNum(hQuery, "mvp");
  302. new data_mlp = SQL_FieldNameToNum(hQuery, "mlp");
  303. while (SQL_MoreResults(hQuery))
  304. {
  305. pKills[id] = SQL_ReadResult(hQuery, data_kills);
  306. pDeaths[id] = SQL_ReadResult(hQuery, data_deaths);
  307. pHeadshots[id] = SQL_ReadResult(hQuery, data_headshots);
  308. pAces[id] = SQL_ReadResult(hQuery, data_aces);
  309. pMiniAces[id] = SQL_ReadResult(hQuery, data_mini_aces);
  310. pMixPlayed[id] = SQL_ReadResult(hQuery, data_mix_played);
  311. pMixLost[id] = SQL_ReadResult(hQuery, data_mix_lost);
  312. pMixDraw[id] = SQL_ReadResult(hQuery, data_mix_draw);
  313. pMixWon[id] = SQL_ReadResult(hQuery, data_mix_won);
  314. pPoints[id] = SQL_ReadResult(hQuery, data_points);
  315.  
  316. //MVP dalykai
  317. pMvp[id] = SQL_ReadResult(hQuery, data_mvp);
  318. pMlp[id] = SQL_ReadResult(hQuery, data_mlp);
  319. pHeadshots_Old[id] = pHeadshots[id];
  320. pDeaths_Old[id] = pDeaths[id];
  321. pKills_Old[id] = pKills[id];
  322. //
  323.  
  324. SQL_NextRow(hQuery);
  325. }
  326.  
  327. pLoaded[id] = true;
  328. }
  329. }
  330. public client_disconnected(id)
  331. {
  332. if(!WarmUp && !PrepareRound)
  333. {
  334. if(1 <= get_user_team(id) <= 2)
  335. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidД—jas: /g%s /ypaliko ЕѕaidimД…!", PREFIX, get_admin_name(id))
  336. }
  337. }
  338. public t_win(id)
  339. {
  340. if(!WarmUp && !KnifeRound && !PrepareRound) scoreT++
  341. if(KnifeRound)
  342. {
  343. if(tempT)
  344. {
  345. showTeamMenu(tempT)
  346. }
  347. }
  348. }
  349. public ct_win(id)
  350. {
  351. if(!WarmUp && !KnifeRound && !PrepareRound) scoreCT++
  352. if(KnifeRound)
  353. {
  354. if(tempCT)
  355. {
  356. showTeamMenu(tempCT)
  357. }
  358. }
  359. }
  360. public PlayerSpawn(id)
  361. {
  362. if(WarmUp && is_user_connected(id))
  363. cs_set_user_money(id, 16000)
  364. Kills[id] = 0
  365.  
  366. SavePlayer(id);
  367. }
  368. /*public Seivinam(id)
  369. {
  370. if(is_user_connected(id))
  371. SavePlayer(id)
  372. }*/
  373. public RoundEnd()
  374. {
  375. if(WarmUp) server_cmd("hostname ^"%s [ApЕЎilimas]^"", HOSTNAME);
  376. else if(KnifeRound) server_cmd("hostname ^"%s [Knife Round]^"", HOSTNAME);
  377. else if(PrepareRound) server_cmd("hostname ^"%s [PasiruoЕЎimas]^"", HOSTNAME);
  378. else
  379. {
  380. if(scoreT == 16 || scoreCT == 16)
  381. {
  382. server_cmd("hostname ^"%s [ЕЅaidimas Baigtas] - [CT]: %i | [T]: %i^"", HOSTNAME, scoreCT, scoreT);
  383. }
  384. else if(scoreT == 15 || scoreCT == 15)
  385. {
  386. server_cmd("hostname ^"%s [LIVE] (MB) - [CT]: %i | [T]: %i^"", HOSTNAME, scoreCT, scoreT);
  387. }
  388. else
  389. {
  390. if(scoreCT+scoreT == 15)
  391. {
  392. server_cmd("hostname ^"%s [LIVE] - [CT]: %i | [T]: %i^"", HOSTNAME, scoreT, scoreCT);
  393. }
  394. else
  395. {
  396. server_cmd("hostname ^"%s [LIVE] - [CT]: %i | [T]: %i^"", HOSTNAME, scoreCT, scoreT);
  397. }
  398. }
  399. }
  400. if(!WarmUp && !KnifeRound && !PrepareRound) {
  401. for(new i = 1; i <= get_playersnum(); i++)
  402. {
  403. if(Kills[i] == 4)
  404. {
  405. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidД—jas: /g%s /yPadarД— /ctrMINI-ACE", PREFIX, get_admin_name(i))
  406. if(!WarmUp && !PrepareRound)
  407.  
  408. pMiniAces[i]++;
  409. pPoints[i] += POINTS_MINI_ACE
  410. SavePlayer(i);
  411. }
  412. else if(Kills[i] == 5)
  413. {
  414. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidД—jas: /g%s /yPadarД— /ctrACE", PREFIX, get_admin_name(i))
  415.  
  416. pAces[i]++;
  417. pPoints[i] += POINTS_ACE
  418. SavePlayer(i);
  419. }
  420. }
  421. if(scoreCT + scoreT == 15)
  422. {
  423. new temp = scoreCT
  424. scoreCT = scoreT
  425. scoreT = temp
  426. client_printcolor(0, "/y[/ctr%s/y] /gKeiДЌiamos komandos!", PREFIX)
  427. changeTeams()
  428. server_cmd("sv_restart 5")
  429. }
  430. client_printcolor(0, "/gCOUNTER-TERORISTS:/g%i /y|| /gTERORISTS:/g%i", scoreCT, scoreT)
  431. if(scoreT == 15 && scoreCT == 15) {
  432. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidimas Baigtas. Nei viena komanda nelaimД—jo!", PREFIX)
  433. drawGame();
  434. // setEndGame()
  435. set_task(5.0, "setEndGame");
  436. //calculateMVP()
  437. }
  438. else if(scoreT == 15) client_printcolor(0, "/g[/ctr%s/y] Counter-Terrorists MB", PREFIX)
  439. else if(scoreCT == 15) client_printcolor(0, "/g[/ctr%s/y] Terrorists MB", PREFIX)
  440. else if(scoreT == 16)
  441. {
  442. TeamWon(1);
  443. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidimas Baigtas. LaimД—jo: /gTerrorists", PREFIX)
  444. // setEndGame()
  445. set_task(5.0, "setEndGame");
  446. //calculateMVP()
  447.  
  448. }
  449. else if(scoreCT == 16)
  450. {
  451. TeamWon(2);
  452. client_printcolor(0, "/y[/ctr%s/y] ЕЅaidimas Baigtas. LaimД—jo: /gCounter-Terrorists", PREFIX)
  453. // setEndGame()
  454. set_task(5.0, "setEndGame");
  455. //calculateMVP()
  456. }
  457. }
  458. }
  459. public changeTeams()
  460. {
  461. for(new i = 1; i <= 32; i++)
  462. {
  463. add_delay(i)
  464. }
  465. }
  466. public changeTeam( id )
  467. {
  468. if(is_user_connected(id))
  469. {
  470. switch( get_user_team( id ) )
  471. {
  472. case 2: cs_set_user_team( id, CS_TEAM_T );
  473. case 1: cs_set_user_team( id, CS_TEAM_CT );
  474. }
  475. }
  476. }
  477. add_delay( id )
  478. {
  479. switch( id )
  480. {
  481. case 1..5: set_task( 0.1, "changeTeam", id );
  482. case 6..10: set_task( 0.2, "changeTeam", id );
  483. case 11..15: set_task( 0.3, "changeTeam", id );
  484. case 16..20: set_task( 0.4, "changeTeam", id );
  485. case 21..25: set_task( 0.5, "changeTeam", id );
  486. case 26..32: set_task( 0.6, "changeTeam", id );
  487. }
  488. }
  489. public DeathEvent(victim, attacker)
  490. {
  491. new attacker = read_data(1);
  492. new victim = read_data(2);
  493. new hs = read_data(3)
  494. if(WarmUp) {
  495. set_task(1.0, "RespawnPlayer", victim)
  496. }
  497. else if(1 <= victim <= 32 && 1 <= attacker <= 32)
  498. {
  499. Kills[attacker]++
  500.  
  501. if(!WarmUp && !PrepareRound)
  502. {
  503. pKills[attacker]++;
  504. pPoints[attacker] += POINTS_KILL
  505. if(hs)
  506. {
  507. pHeadshots[attacker]++;
  508. pPoints[attacker] += POINTS_HS
  509. }
  510. pDeaths[victim]++;
  511. pPoints[victim] += POINTS_DEATH
  512.  
  513. SavePlayer(victim);
  514. SavePlayer(attacker);
  515. }
  516.  
  517. }
  518. }
  519. public RespawnPlayer(id)
  520. {
  521. if(!is_user_alive(id) && is_user_connected(id) && 1 <= get_user_team(id) <= 2)
  522. ExecuteHamB(Ham_CS_RoundRespawn, id)
  523. }
  524. public event_CurWeapon(id)
  525. {
  526. if(KnifeRound && get_user_weapon(id) != CSW_KNIFE)
  527. engclient_cmd(id, "weapon_knife")
  528. }
  529. public infoPassword(id)
  530. {
  531. //if(passwordStatus)
  532. // client_printcolor(id, "/y[/ctr%s/y] Serverio slaptaЕѕodis: /g%s", PREFIX, serverPassword)
  533. client_printcolor(id, "/y[/ctr%s/y] Funkcija laikinai atjungta.", PREFIX)
  534.  
  535. //else
  536. // client_printcolor(id, "/y[/ctr%s/y] Serverio slaptaЕѕodis iЕЎjungtas!", PREFIX, serverPassword)
  537. //new Pdata[2][32]
  538.  
  539. //client_printcolor(0, "/y[/ctrMIX /y| /g%s/y] Serverio slaptaЕѕodis: /g%s", get_admin_name(id), Pdata[1])
  540.  
  541. return PLUGIN_HANDLED
  542. }
  543. public hookSay(id)
  544. {
  545. new Args[192];
  546. read_args(Args, charsmax(Args))
  547. remove_quotes(Args);
  548. if((get_user_flags(id) & FLAG)) {
  549. if(contain(Args, ".upw") != -1) {
  550. new Pdata[2][32]
  551.  
  552. parse(Args, Pdata[0], charsmax(Pdata[]), Pdata[1], charsmax(Pdata[]))
  553. if(equal(Pdata[0], ".upw") && equal(Pdata[1], "")) {
  554. set_pcvar_string(g_SvPassword, Pdata[1])
  555. client_printcolor(0, "/y[/ctrMIX /y| /g%s/y] Serverio slaptaЕѕodis paЕЎalintas.", get_admin_name(id))
  556. }
  557. else if(equal(Pdata[0], ".upw")) {
  558. set_pcvar_string(g_SvPassword, Pdata[1])
  559. client_printcolor(0, "/y[/ctrMIX /y| /g%s/y] Serverio slaptaЕѕodis: /g%s", get_admin_name(id), Pdata[1])
  560. }
  561. }
  562. }
  563. if(!canChat) {
  564. client_printcolor(id, "/y[/ctr%s/y] Pokalbiai ЕЎiuo metЕі yra iЕЎjungti!", PREFIX)
  565. client_printcolor(id, "/y[/ctr%s/y] Galimos komandos: /g.rez .pw", PREFIX)
  566. return PLUGIN_HANDLED;
  567. }
  568. return PLUGIN_CONTINUE;
  569. }
  570. public BlockConsole(id) return PLUGIN_HANDLED
  571. public mainMenu(id)
  572. {
  573. if(!isAdmin(id)) return PLUGIN_HANDLED
  574. new menu = menu_create("\w[\yMIX\w] \rPagrindinis meniu", "onMainMenu")
  575.  
  576. new szMsg[64]
  577.  
  578. menu_additem(menu, "Arenos Valdymas")
  579.  
  580. format(szMsg, 63, "\wPokalbiai \d[%s\d]", canChat ? "\yД®jungti" : "\rIЕЎjungti")
  581. menu_additem(menu, szMsg)
  582.  
  583. //if(serverPassword[0]) format(szMsg, 63, "\wSlaptaЕѕodis \d[\y%s\d]", serverPassword)
  584. //else format(szMsg, 63, "\wSlaptaЕѕodis \d[\rNД—ra\d]")
  585. if(serverPassword[0]) format(szMsg, 63, "\dSlaptaЕѕodis (atjungta)")
  586. else format(szMsg, 63, "\dSlaptaЕѕodis (atjungta)")
  587. menu_additem(menu, szMsg)
  588.  
  589. menu_additem(menu, "IЕЎmesti ЕЅaidД—jД…")
  590. menu_additem(menu, "UЕѕblokuoti ЕЅaidД—jД…")
  591. menu_additem(menu, "Keisti ЕЅemД—lapДЇ")
  592. menu_additem(menu, "AtsijungusiЕі ЕѕaidД—jЕі sД…raЕЎas")
  593.  
  594. menu_display(id, menu, 0)
  595.  
  596. return PLUGIN_HANDLED;
  597. }
  598. public onMainMenu(id, menu, item)
  599. {
  600. switch(item)
  601. {
  602. case 0: actMix(id)
  603. case 1:
  604. {
  605. canChat = !canChat
  606. mainMenu(id)
  607. return PLUGIN_HANDLED
  608. }
  609. ///case 2: optionsPassword(id)
  610. case 2: client_print(id, print_chat, "Meniu funkcija atjungta. Naudok .upw")
  611. case 3: client_cmd(id, "amx_kickmenu")
  612. case 4: client_cmd(id, "amx_banmenu")
  613. case 5: client_cmd(id, "amx_mapmenu")
  614. case 6: client_cmd(id, "amx_bandisconnectedmenu")
  615. }
  616. menu_destroy(menu)
  617. return PLUGIN_HANDLED
  618. }
  619. public optionsPassword(id)
  620. {
  621. if(!isAdmin(id)) return PLUGIN_HANDLED
  622. new szText[64]
  623. if(serverPassword[0]) format(szText, 63, "\w[\y%s\w] \rSlaptaЕѕodis \d(\y%s\d)", PREFIX, serverPassword)
  624. else format(szText, 63, "\w[\y%s\w] \rSlaptaЕѕodis \d(\rNД—ra\d)", PREFIX)
  625. new menu = menu_create(szText, "onOptionsPassword")
  626.  
  627. format(szText, 63, "\wSlaptaЕѕodis \d[%s\d]", passwordStatus ? "\yД®jungtas" : "\rIЕЎjungtas")
  628.  
  629. menu_additem(menu, szText)
  630. menu_additem(menu, "Keisti slaptaЕѕodДЇ")
  631. menu_additem(menu, "IЕЎtrinti slaptaЕѕodДЇ")
  632.  
  633. menu_display(id, menu, 0)
  634.  
  635. return PLUGIN_HANDLED;
  636. }
  637. public onOptionsPassword(id, menu, item)
  638. {
  639. switch(item)
  640. {
  641. case MENU_EXIT:
  642. {
  643. mainMenu(id)
  644. return PLUGIN_HANDLED
  645. }
  646. case 0:
  647. {
  648. if(serverPassword[0]) {
  649. passwordStatus = !passwordStatus
  650. if(passwordStatus) {
  651. server_cmd("sv_password %s", serverPassword)
  652. client_printcolor(0, "/y[/ctr%s /y| /g%s/y] Serverio slaptaЕѕodis: /g%s",PREFIX, get_admin_name(id), serverPassword)
  653. }
  654. else server_cmd("sv_password ^"^"")
  655. }
  656. else {
  657. if(passwordStatus)
  658. passwordStatus = false
  659. client_printcolor(id, "/y[/ctr%s/y] Nenustatytas slaptaЕѕodis!", PREFIX)
  660. }
  661.  
  662. }
  663. case 1: client_cmd(id, "messagemode SetPassword")
  664. case 2: format(serverPassword, 63, "")
  665. }
  666. optionsPassword(id)
  667. return PLUGIN_HANDLED
  668. }
  669. public _SetPassword(id) {
  670. if(!isAdmin(id)) return
  671. new szTemp[64]
  672. read_args(szTemp, charsmax(szTemp))
  673. remove_quotes(szTemp)
  674. format(serverPassword, 63, szTemp)
  675. optionsPassword(id)
  676. if(passwordStatus)
  677. {
  678. server_cmd("sv_password %s", serverPassword)
  679. client_printcolor(0, "/y[/ctr%s /y| /g%s/y] Serverio slaptaЕѕodis: /g%s",PREFIX, get_admin_name(id), szTemp)
  680. }
  681. }
  682. public actMix(id)
  683. {
  684. if(!isAdmin(id)) return PLUGIN_HANDLED
  685. new menu = menu_create("\w[\yMIX\w] \rArenos Valdymas", "onactMix")
  686.  
  687. menu_additem(menu, "PradД—ti ЕЅaidimД…")
  688. menu_additem(menu, "PasiruoЕЎti")
  689. menu_additem(menu, "ApЕЎilimas")
  690. menu_additem(menu, "Knife")
  691. menu_additem(menu, "Perkrauti RaundД…")
  692. menu_additem(menu, "UЕѕbaigti ЕЅaidimД…")
  693.  
  694. menu_display(id, menu, 0)
  695.  
  696. return PLUGIN_HANDLED;
  697. }
  698. public onactMix(id, menu, item)
  699. {
  700. switch(item)
  701. {
  702. case 0: setLive(id)
  703. case 1: setPrepare(id)
  704. case 2: warmUP(id)
  705. case 3: setKnife(id)
  706. case 4: restartRound(id)
  707. case 5: endGame(id)
  708. }
  709. menu_destroy(menu)
  710. }
  711. public setPrepare(id)
  712. {
  713. if(!isAdmin(id)) return PLUGIN_HANDLED
  714. if(get_playersnum() >= 1) {
  715. server_cmd("sv_restart 1")
  716.  
  717. KnifeRound = false;
  718. PrepareRound = true;
  719. WarmUp = false;
  720. scoreCT = 0;
  721. scoreT = 0;
  722. tempCount = 0;
  723. tempCT = 0;
  724. tempT = 0;
  725.  
  726. for(new i = 1; i <= get_playersnum(); i++)
  727. {
  728. if(1 <= get_user_team(i) <= 2) {
  729. if(is_user_alive(i))
  730. user_silentkill(i)
  731. cs_set_user_team(i, CS_TEAM_SPECTATOR)
  732. }
  733. }
  734.  
  735. client_printcolor(0, "/gPasiruoЕЎimas PrasidД—jo! Administratorius tuoj iЕЎrinks lyderius!", PREFIX, get_admin_name(id))
  736. showPrepareMenu(id)
  737. }
  738. else
  739. client_printcolor(id, "/y[/ctr%s/y] PasiruoЕЎimas negali bЕ«ti pradД—tas nes trЕ«ksta ЕѕaidД—jЕі!", PREFIX)
  740. return PLUGIN_HANDLED
  741. }
  742. public showPrepareMenu(id)
  743. {
  744. if(!isAdmin(id)) return PLUGIN_HANDLED
  745. new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis ДЇ CT", "onPrepareCT")
  746. new call = menu_makecallback("Call_Back")
  747.  
  748. new players[32], num, p
  749. get_players(players, num, "ch")
  750. new ui[32], namee[50]
  751.  
  752. for(new i; i < num; i++)
  753. {
  754. p = players[i]
  755. format(ui, 31, "%d", get_user_userid(p))
  756. if(get_user_afktime(id) >= AFK_TIME)
  757. formatex(namee, charsmax(namee), "\w%s \r[AFK]", get_admin_name(p))
  758. else
  759. formatex(namee, charsmax(namee), "\w%s", get_admin_name(p))
  760. menu_additem(menu, namee, ui, _, (get_user_afktime(p) >= AFK_TIME) ? call : -1)
  761.  
  762. }
  763.  
  764. menu_display(id, menu, 0)
  765.  
  766. return PLUGIN_HANDLED;
  767. }
  768. public onPrepareCT(id, menu, item)
  769. {
  770. new szData[6], szName[64];
  771. new _access, item_callback;
  772.  
  773. menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  774.  
  775. new userid = str_to_num( szData );
  776. new player = find_player( "k", userid );
  777. if(get_user_afktime(player) >= AFK_TIME) {
  778. client_printcolor(id, "/y[/ctr%s/y] ЕЅaidД—jas %s yra AFK", PREFIX, get_admin_name(player))
  779. showPrepareMenu(id)
  780. return PLUGIN_CONTINUE
  781. }
  782. switch(item)
  783. {
  784. case MENU_EXIT: {
  785. if(PrepareRound) showPrepareMenu(id)
  786. return PLUGIN_HANDLED;
  787. }
  788. default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_CT)
  789. }
  790. if(PrepareRound) {
  791. tempCT = player;
  792. client_printcolor(0, "/y[/ctr%s/y] CT lyderis bus: /g%s", PREFIX, get_admin_name(player))
  793. client_printcolor(0, "/y[/ctr%s/y] Administratorius tuoj iЕЎrinks T lyderДЇ!", PREFIX)
  794. showPrepareMenuT(id)
  795. }
  796. return PLUGIN_HANDLED;
  797. }
  798. public showPrepareMenuT(id)
  799. {
  800. if(!isAdmin(id)) return PLUGIN_HANDLED
  801. new menu = menu_create("\w[\yMIX\w] \rPasirinkite kas eis ДЇ T", "onPrepareT")
  802. new call = menu_makecallback("Call_Back")
  803.  
  804. new players[32], num, p
  805. get_players(players, num, "ceh", "SPECTATOR")
  806. new ui[32], namee[50]
  807.  
  808. for(new i; i < num; i++)
  809. {
  810. p = players[i]
  811. format(ui, 31, "%d", get_user_userid(p))
  812. if(get_user_afktime(id) >= AFK_TIME)
  813. formatex(namee, charsmax(namee), "\w%s \r[AFK]")
  814. else
  815. formatex(namee, charsmax(namee), "\w%s")
  816. menu_additem(menu, namee, ui, _, (get_user_afktime(p) >= AFK_TIME) ? call : -1)
  817.  
  818. }
  819.  
  820. menu_display(id, menu, 0)
  821.  
  822. return PLUGIN_HANDLED;
  823. }
  824. public onPrepareT(id, menu, item)
  825. {
  826. new szData[6], szName[64];
  827. new _access, item_callback;
  828.  
  829. menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  830.  
  831. new userid = str_to_num( szData );
  832. new player = find_player( "k", userid );
  833.  
  834. if(get_user_afktime(player) >= AFK_TIME) {
  835. client_printcolor(id, "/y[/ctr%s/y] ЕЅaidД—jas %s yra AFK", PREFIX, get_admin_name(player))
  836. showPrepareMenuT(id)
  837. return PLUGIN_CONTINUE
  838. }
  839.  
  840. switch(item)
  841. {
  842. case MENU_EXIT: {
  843. if(PrepareRound) showPrepareMenuT(id)
  844. return PLUGIN_HANDLED;
  845. }
  846. default: if(PrepareRound && is_user_connected(player)) cs_set_user_team(player, CS_TEAM_T)
  847. }
  848. if(PrepareRound) {
  849. tempT = player;
  850. client_printcolor(0, "/y[/ctr%s/y] T lyderis bus: /g%s", PREFIX, get_admin_name(player))
  851. client_printcolor(0, "/y[/ctr%s/y] Lyderiai pradeda rinktis ЕѕaidД—jus!", PREFIX)
  852. ShowList(tempCT)
  853. }
  854. return PLUGIN_HANDLED;
  855. }
  856. public showTeamMenu(id)
  857. {
  858. new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandД…", "onTeamChange")
  859.  
  860. menu_additem(menu, "Pasilikti")
  861. menu_additem(menu, "Keistis komandomis")
  862.  
  863. menu_display(id, menu, 0)
  864.  
  865. return PLUGIN_HANDLED;
  866. }
  867. public onTeamChange(id, menu, item)
  868. {
  869. switch(item)
  870. {
  871. case 0:
  872. {
  873. client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gpasilikti", PREFIX)
  874. setServerLive()
  875. }
  876. case 1:
  877. {
  878. client_printcolor(0, "/y[/ctr%s/y] Sprendimas: /gkeistis komandomis", PREFIX)
  879. changeTeams()
  880. set_task(2.0, "setServerLive", 1)
  881. }
  882. }
  883. }
  884. public ShowList(id)
  885. {
  886. new menu = menu_create("\w[\yMIX\w] \rPasirinkite komandos draugД…", "onShowList")
  887.  
  888. new players[32], num
  889. get_players(players, num, "ceh", "SPECTATOR")
  890. new ui[32]
  891.  
  892. for(new i; i < num; i++)
  893. {
  894. format(ui, 31, "%d",get_user_userid(players[i]))
  895. menu_additem(menu, get_admin_name(players[i]), ui)
  896. }
  897. menu_display(id, menu, 0)
  898.  
  899. return PLUGIN_HANDLED;
  900. }
  901. public onShowList(id, menu, item)
  902. {
  903. new szData[6], szName[64];
  904. new _access, item_callback;
  905.  
  906. new Where;
  907. switch(tempCount)
  908. {
  909. case 0,2,4,6: Where = 0
  910. case 1,3,5,7: Where = 1
  911. default: Where = -1
  912. }
  913.  
  914. menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  915.  
  916. new userid = str_to_num( szData );
  917. new player = find_player( "k", userid );
  918.  
  919. switch(item)
  920. {
  921. case MENU_EXIT: {
  922. if(PrepareRound) ShowList(id)
  923. return PLUGIN_HANDLED;
  924. }
  925. default: if(PrepareRound && is_user_connected(player))
  926. {
  927. if(Where == 0) cs_set_user_team(player, CS_TEAM_CT)
  928. else cs_set_user_team(player, CS_TEAM_T)
  929.  
  930. }
  931. }
  932. if(PrepareRound) {
  933. tempCount++;
  934. client_printcolor(0, "/y[/ctr%s/y] /g%s /ypasirinko /g%s", PREFIX, get_admin_name(id), szName)
  935. if(tempCount < 8)
  936. ShowList(Where == 1 ? tempCT : tempT)
  937. else
  938. {
  939. /*KnifeRound = true;
  940. PrepareRound = false;
  941. WarmUp = false;
  942. scoreCT = 0;
  943. scoreT = 0;
  944.  
  945. server_cmd("mp_roundtime 1.5")
  946. server_cmd("mp_buytime 26")
  947. server_cmd("mp_startmoney 16000")
  948. server_cmd("mp_freezetime 3")
  949.  
  950. server_cmd("sv_restart 1")
  951.  
  952. client_printcolor(0, "/y[/ctr%s/y] KomandЕі rinkimasis baigtas! Knife Round!", PREFIX)*/
  953.  
  954. setServerLive()
  955. }
  956. }
  957. return PLUGIN_HANDLED;
  958. }
  959. public restartRound(id)
  960. {
  961. if(!isAdmin(id)) return PLUGIN_HANDLED
  962. server_cmd("sv_restart 1")
  963. client_printcolor(0, "/gPerkrautas Raundas!", PREFIX, get_admin_name(id))
  964. return PLUGIN_HANDLED
  965. }
  966. public setServerLive()
  967. {
  968. KnifeRound = false;
  969. PrepareRound = false;
  970. WarmUp = false;
  971. scoreCT = 0;
  972. scoreT = 0;
  973.  
  974. server_cmd("mp_roundtime 1.82")
  975. server_cmd("mp_buytime 0.26")
  976. server_cmd("mp_startmoney 800")
  977. server_cmd("mp_freezetime 6")
  978. server_cmd("mp_timelimit 9999")
  979.  
  980. server_cmd("sv_restart 1")
  981.  
  982. client_printcolor(0, "/gLIVE! LIVE! LIVE! Good Luck!", PREFIX)
  983. return PLUGIN_HANDLED
  984. }
  985. public setLive(id)
  986. {
  987. if(!isAdmin(id)) return PLUGIN_HANDLED
  988.  
  989. KnifeRound = false;
  990. PrepareRound = false;
  991. WarmUp = false;
  992. scoreCT = 0;
  993. scoreT = 0;
  994.  
  995. server_cmd("mp_roundtime 1.82")
  996. server_cmd("mp_buytime 0.26")
  997. server_cmd("mp_startmoney 800")
  998. server_cmd("mp_freezetime 6")
  999. server_cmd("mp_timelimit 9999")
  1000.  
  1001. server_cmd("sv_restart 1")
  1002.  
  1003. client_printcolor(0, "/gLIVE! LIVE! LIVE! Good Luck!", PREFIX, get_admin_name(id))
  1004. return PLUGIN_HANDLED
  1005. }
  1006. public warmUP(id)
  1007. {
  1008. if(!isAdmin(id)) return PLUGIN_HANDLED
  1009.  
  1010. passwordStatus = false;
  1011. KnifeRound = false;
  1012. PrepareRound = false;
  1013. WarmUp = true;
  1014. scoreCT = 0;
  1015. scoreT = 0;
  1016.  
  1017. server_cmd("mp_roundtime 600")
  1018. server_cmd("mp_buytime 999999")
  1019. server_cmd("mp_startmoney 16000")
  1020. server_cmd("mp_freezetime 0")
  1021. server_cmd("sv_password ^"^"")
  1022.  
  1023. server_cmd("sv_restart 1")
  1024.  
  1025. client_printcolor(0, "/gApЕЎilimas PrasidД—jo!", PREFIX, get_admin_name(id))
  1026. return PLUGIN_HANDLED
  1027. }
  1028. public setKnife(id)
  1029. {
  1030. if(!isAdmin(id)) return PLUGIN_HANDLED
  1031.  
  1032. if(!KnifeRound) {
  1033. KnifeRound = true;
  1034. PrepareRound = false;
  1035. WarmUp = false;
  1036. scoreCT = 0;
  1037. scoreT = 0;
  1038.  
  1039. server_cmd("mp_roundtime 1.5")
  1040. server_cmd("mp_buytime 15")
  1041. server_cmd("mp_startmoney 800")
  1042. server_cmd("mp_freezetime 3")
  1043.  
  1044. server_cmd("sv_restart 1")
  1045.  
  1046. client_printcolor(0, "/gPrasidД—jo PeiliЕі raundas! SД—kmД—s!", PREFIX, get_admin_name(id))
  1047. return PLUGIN_HANDLED
  1048. }
  1049. else
  1050. {
  1051. passwordStatus = false;
  1052. KnifeRound = false;
  1053. PrepareRound = false;
  1054. WarmUp = true;
  1055. scoreCT = 0;
  1056. scoreT = 0;
  1057.  
  1058. server_cmd("mp_roundtime 600")
  1059. server_cmd("mp_startmoney 16000")
  1060. server_cmd("mp_buytime 999999")
  1061. server_cmd("mp_freezetime 0")
  1062. server_cmd("sv_password ^"^"")
  1063.  
  1064. server_cmd("sv_restart 1")
  1065.  
  1066. client_printcolor(0, "/y/ctr%s /y| /g%s/y] PeiliЕі Raundas sustabdytas! Д®jungtas apЕЎilimas!", PREFIX, get_admin_name(id))
  1067. return PLUGIN_HANDLED
  1068. }
  1069. }
  1070. public drawGame()
  1071. {
  1072. for(new i = 1; i <= 32; i++)
  1073. {
  1074. if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1075. {
  1076. pMixPlayed[i]++;
  1077. pPoints[i] += POINTS_MIX_PLAYED
  1078. pMixDraw[i]++;
  1079. pPoints[i] += POINTS_MIX_DRAW
  1080. SavePlayer(i);
  1081. }
  1082. }
  1083. }
  1084. public TeamWon(team)
  1085. {
  1086. for(new i = 1; i <= 32; i++)
  1087. {
  1088. if(is_user_connected(i) && (1 <= get_user_team(i) <= 2))
  1089. {
  1090. pMixPlayed[i]++;
  1091. pPoints[i] += POINTS_MIX_PLAYED
  1092. if(get_user_team(i) == team)
  1093. {
  1094. pMixWon[i]++;
  1095. pPoints[i] += POINTS_MIX_WON
  1096. }
  1097. else
  1098. {
  1099. pMixLost[i]++;
  1100. pPoints[i] += POINTS_MIX_LOST
  1101. }
  1102. SavePlayer(i);
  1103. }
  1104. }
  1105. }
  1106. public setEndGame()
  1107. {
  1108. InsertGame();
  1109.  
  1110. passwordStatus = false;
  1111. KnifeRound = false;
  1112. PrepareRound = false;
  1113. WarmUp = true;
  1114. scoreCT = 0;
  1115. scoreT = 0;
  1116.  
  1117. server_cmd("mp_roundtime 600")
  1118. server_cmd("mp_startmoney 16000")
  1119. server_cmd("mp_buytime 999999")
  1120. server_cmd("mp_freezetime 0")
  1121. server_cmd("sv_password ^"^"")
  1122. server_cmd("mp_timelimit 60")
  1123.  
  1124. server_cmd("sv_restart 1")
  1125.  
  1126. client_printcolor(0, "/y[/ctr%s/y] Д®jungtas ApЕЎilimas! Laukite ЕѕemД—lapio keitimo!", PREFIX)
  1127.  
  1128. set_task(2.5, "showMVP");
  1129. server_cmd("sv_restart 12")
  1130.  
  1131. return PLUGIN_HANDLED
  1132. }
  1133. public endGame(id)
  1134. {
  1135. if(!isAdmin(id)) return PLUGIN_HANDLED
  1136.  
  1137. InsertGame();
  1138.  
  1139. passwordStatus = false;
  1140. KnifeRound = false;
  1141. PrepareRound = false;
  1142. WarmUp = true;
  1143. scoreCT = 0;
  1144. scoreT = 0;
  1145.  
  1146. server_cmd("mp_roundtime 600")
  1147. server_cmd("mp_startmoney 16000")
  1148. server_cmd("mp_buytime 999999")
  1149. server_cmd("mp_freezetime 0")
  1150. server_cmd("sv_password ^"^"")
  1151. server_cmd("mp_timelimit 60")
  1152.  
  1153. server_cmd("sv_restart 1")
  1154.  
  1155. client_printcolor(0, "/gЕЅaidimas Baigtas! Ijungtas Apsilimas!", PREFIX, get_admin_name(id))
  1156. return PLUGIN_HANDLED
  1157. }
  1158. public getScore(id) {
  1159. if(WarmUp || KnifeRound || PrepareRound)
  1160. client_printcolor(id, "/y[/ctr%s/y] ЕЅaidimas ЕЎiuo metu nevyksta!", PREFIX)
  1161. else client_printcolor(id, "/gCOUNTER-TERORISTS:/g%i /y|| /gTERORISTS:/g%i", scoreCT, scoreT)
  1162. return PLUGIN_HANDLED
  1163. }
  1164.  
  1165.  
  1166. stock get_admin_name(id)
  1167. {
  1168. new name[64]
  1169. get_user_name(id, name, 63)
  1170. return name
  1171. }
  1172. stock client_printcolor(const id, const input[], any:...)
  1173. {
  1174. new count = 1, players[32];
  1175. static msg[191];
  1176. vformat(msg,190,input,3);
  1177. replace_all(msg,190,"/g","^4");// green txt
  1178. replace_all(msg,190,"/y","^1");// orange txt
  1179. replace_all(msg,190,"/ctr","^3");// team txt
  1180. replace_all(msg,190,"/w","^0");// team txt
  1181. if (id) players[0] = id; else get_players(players,count,"ch");
  1182. for (new i=0;i<count;i++)
  1183. if (is_user_connected(players[i]))
  1184. {
  1185. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  1186. write_byte(players[i]);
  1187. write_string(msg);
  1188. message_end();
  1189. }
  1190. }
  1191.  
  1192. public setScoreCT_test(id)
  1193. {
  1194. if(!isAdmin(id)) return PLUGIN_HANDLED
  1195.  
  1196. scoreCT = 13;
  1197.  
  1198. client_printcolor(0, "Score CT: %d", scoreCT)
  1199. return PLUGIN_HANDLED
  1200. }
  1201.  
  1202. //MVP dalykai
  1203. // pKills_Old[33], pDeaths_Old[33], pHeadshots_Old[33], pDefused[33], pPlanted[33]
  1204. public showMVP() {
  1205. if(!(get_pcvar_num(cvar_enabled)))
  1206. return
  1207. new winners[4], players[32], count, id, id1
  1208. new sum, sum1
  1209. new k, k1, d, d1
  1210. get_players(players, count)
  1211. for(new i; i<count; i++) {
  1212.  
  1213. id = players[i]
  1214. k = pKills[id]-pKills_Old[id]
  1215. d = pDeaths[id]-pDeaths_Old[id]
  1216. sum = k+(pHeadshots[id]-pHeadshots_Old[id])+pDefused[id]+pPlanted[id]-d
  1217.  
  1218. id1 = winners[0]
  1219. k1 = pKills[id1]-pKills_Old[id1]
  1220. d1 = pDeaths[id1]-pDeaths_Old[id1]
  1221. sum1 = k+(pHeadshots[id1]-pHeadshots_Old[id1])+pDefused[id1]+pPlanted[id1]-d
  1222. /* 3 0 2 0 1 0 3 1 0 0 1 0
  1223. */
  1224. if(k1 < k || (k1 == k && sum > sum1))//kills
  1225. winners[0] = id
  1226.  
  1227. if(d1 < d || (d1 == d && sum < sum1))//deaths
  1228. winners[1] = id
  1229.  
  1230. if(pPlanted[id1] < pPlanted[id] || (pPlanted[id1] == pPlanted[id] && sum > sum1))//plants
  1231. winners[2] = id
  1232.  
  1233. if(pDefused[id1] < pDefused[id] || (pPlanted[id1] == pPlanted[id] && sum > sum1))//defuses
  1234. winners[3] = id
  1235. }
  1236.  
  1237. new text[128], name[32], temp
  1238. id = winners[0]
  1239. new h = pHeadshots[id]-pHeadshots_Old[id]
  1240. temp = pKills[id]-pKills_Old[id]
  1241. if(temp > 0) {
  1242. pMvp[id]++
  1243. get_user_name(id, name, charsmax(name))
  1244. format(text, charsmax(text), "MVP %s su %i nuЕѕudymais ir %i HS!", name, temp, h)
  1245. set_dhudmessage(0, 255, 0, -1.0, 0.30, 0, 6.0, 13.0)
  1246. show_dhudmessage(0, text)
  1247. pPoints[id] += POINTS_MVP_KILL
  1248. }
  1249.  
  1250. id = winners[1]
  1251. temp = pDeaths[id]-pDeaths_Old[id]
  1252. if(temp > 0) {
  1253. pMlp[id]++
  1254. get_user_name(id, name, charsmax(name))
  1255. formatex(text, charsmax(text), "MLP %s su %i mirДЌiЕі!", name, temp)
  1256. set_dhudmessage(0, 255, 0, -1.0, 0.33, 0, 6.0, 13.0)
  1257. show_dhudmessage(0, text)
  1258. pPoints[id] += POINTS_MLP_DEATH
  1259.  
  1260. }
  1261.  
  1262. id = winners[2]
  1263. if(pPlanted[id] > 0) {
  1264. //pMvp[id]++
  1265. get_user_name(id, name, charsmax(name))
  1266. formatex(text, charsmax(text), "MVP %s - %i padД—tЕі c4!", name, pPlanted[id])
  1267. set_dhudmessage(0, 255, 0, -1.0, 0.36, 0, 6.0, 13.0)
  1268. show_dhudmessage(0, text)
  1269. pPoints[id] += POINTS_MVP_PLANT
  1270. }
  1271.  
  1272. id = winners[3]
  1273. if(pDefused[id] > 0) {
  1274. //pMvp[id]++
  1275. get_user_name(id, name, charsmax(name))
  1276. formatex(text, charsmax(text), "MVP %s - %i iЕЎminuotЕі c4!", name, pDefused[id])
  1277. set_dhudmessage(0, 255, 0, -1.0, 0.39, 0, 6.0, 13.0)
  1278. show_dhudmessage(0, text)
  1279. pPoints[id] += POINTS_MVP_DEFUSE
  1280. }
  1281.  
  1282. reset_mvp_data()
  1283. }
  1284.  
  1285. public reset_mvp_data() {
  1286. new players[32], count, id
  1287. get_players(players, count)
  1288.  
  1289. for(new i; i< count; i++) {
  1290. id = players[i]
  1291. pKills_Old[id] = pKills[id]
  1292. pDeaths_Old[id] = pDeaths[id]
  1293. pHeadshots_Old[id] = pHeadshots[id]
  1294. pDefused[id] = 0
  1295. pPlanted[id] = 0
  1296.  
  1297. }
  1298.  
  1299. }
  1300.  
  1301. public Bomb_Planted() {
  1302. if(!WarmUp && !PrepareRound) {
  1303. pPlanted[get_loguser_index()]++
  1304. }
  1305. }
  1306.  
  1307. public Bomb_Defused() {
  1308. if(!WarmUp && !PrepareRound) {
  1309. pDefused[get_loguser_index()]++
  1310. }
  1311. }
  1312.  
  1313. stock get_loguser_index() {
  1314. new loguser[80], name[32]
  1315. read_logargv(0, loguser, 79)
  1316. parse_loguser(loguser, name, 31)
  1317.  
  1318. return get_user_index(name)
  1319. }
  1320. //
  1321.  
  1322. public me(id) {
  1323. client_printcolor(id, "^1[^3%s^1] ^3TaЕЎkai: ^4%d^3 | NuЕѕudymai: ^4%d^3 | Mirtys: ^4%d^3 | HS: ^4%d^3 |", PREFIX, pPoints[id], pKills[id], pDeaths[id], pHeadshots[id])
  1324. client_printcolor(id, "^1[^3%s^1] ^3MINI-ACE's: ^4%d^3 | ACE's: ^4%d^3 | MVP's: ^4%d^3 | MLP's: ^4%d^3 |", PREFIX, pMiniAces[id], pAces[id], pMvp[id], pMlp[id])
  1325. }
  1326.  
  1327. public mixme(id) {
  1328. client_printcolor(id, "^1[^3%s^1] ^3SuЕѕaidД™s MIX'Еі: ^4%d^3 | LaimД—jД™s MIX'Еі: ^4%d^3 | PralaimД—jД™s MIX'Еі: ^4%d^3 | SuЕѕaidД™s MIX lygiosiomis: ^4%d^1", PREFIX, pMixPlayed[id], pMixWon[id], pMixLost[id], pMixDraw[id])
  1329. }
  1330.  
  1331. public info(id) {
  1332. new text[50], data[32], players[32], count, p
  1333. formatex(text, charsmax(text), "ЕЅaidД—jЕі statistika")
  1334. new menu = menu_create(text, "info_menu_handler")
  1335.  
  1336. get_players(players, count, "h")
  1337. for(new i; i<count; i++) {
  1338. p = players[i]
  1339. formatex(data, charsmax(data), "%i", get_user_userid(p))
  1340. get_user_name(p, text, 31)
  1341. format(text, charsmax(text), "\w%s \r[\w%i\r]", text, pPoints[p])
  1342. menu_additem(menu, text, data)
  1343. }
  1344. menu_display(id, menu, 0)
  1345.  
  1346. }
  1347.  
  1348. public info_menu_handler(id, menu, item) {
  1349. if(item == MENU_EXIT) {
  1350. menu_destroy(menu)
  1351. return PLUGIN_HANDLED
  1352. }
  1353.  
  1354. new data[6], _dummy
  1355. menu_item_getinfo(menu, item, _dummy, data, charsmax(data), .callback = _dummy)
  1356. //menu_destroy(menu)
  1357. new p = find_player("k", str_to_num(data))
  1358. console_print(0, "%i", p)
  1359.  
  1360. if (is_user_connected(p)) {
  1361. console_print(0, "alive%i", p)
  1362. new text[50]
  1363. get_user_name(p, text, 31)
  1364. format(text, charsmax(text), "\rЕЅaidД—jas: \w%s", text)
  1365.  
  1366. new Menu = menu_create(text, "p_info_handler")
  1367.  
  1368. format(text, charsmax(text), "\wNuЕѕudymai:\w%i\r", pKills[p])
  1369. menu_additem(Menu, text)
  1370. format(text, charsmax(text), "\wMirtys:\w%i\r", pDeaths[p])
  1371. menu_additem(Menu, text)
  1372. format(text, charsmax(text), "\wHeadshots:\w%i\r", pHeadshots[p])
  1373. menu_additem(Menu, text)
  1374. format(text, charsmax(text), "\wMINI-ACE:\w%i\r", pMiniAces[p])
  1375. menu_additem(Menu, text)
  1376. format(text, charsmax(text), "\wACE:\w%i\r", pAces[p])
  1377. menu_additem(Menu, text)
  1378. format(text, charsmax(text), "\wSuЕѕaidД™s MIX'Еі:\w%i\r", pMixPlayed[p])
  1379. menu_additem(Menu, text)
  1380. format(text, charsmax(text), "\wLaimД—jД™s MIX'Еі:\w%i\r", pMixWon[p])
  1381. menu_additem(Menu, text)
  1382. format(text, charsmax(text), "\wPralaimД—jД™s MIX'Еі:\w%i\r", pMixLost[p])
  1383. menu_additem(Menu, text)
  1384. format(text, charsmax(text), "\wSuЕѕaidД™s MIX lygiosiomis:\w%i\r", pMixDraw[p])
  1385. menu_additem(Menu, text)
  1386. format(text, charsmax(text), "\wTaЕЎkЕі:\w%i\r", pPoints[p])
  1387. menu_additem(Menu, text)
  1388. format(text, charsmax(text), "\wMVP:\w%i\r", pMvp[p])
  1389. menu_additem(Menu, text)
  1390. format(text, charsmax(text), "\wMLP:\w%i\r", pMlp[p])
  1391. menu_additem(Menu, text)
  1392.  
  1393. menu_display(id, Menu, 0)
  1394. }
  1395. else {
  1396. client_printcolor(id, "^1[^3%s^1] ^1ЕЅaidД—jas nerastas.", PREFIX)
  1397. info(id)
  1398. }
  1399.  
  1400. menu_destroy( menu );
  1401. return PLUGIN_HANDLED;
  1402.  
  1403. }
  1404.  
  1405. public p_info_handler(id, menu, item) {
  1406. menu_destroy(menu)
  1407. info(id)
  1408. return PLUGIN_HANDLED
  1409. }
  1410.  
  1411. public show_password(id) {
  1412. new pass[32]
  1413. get_pcvar_string(g_SvPassword, pass, charsmax(pass))
  1414. if(equal(pass, ""))
  1415. client_printcolor(id, "^1[^3%s^1] ^1SlaptaЕѕodЕѕio nД—ra.", PREFIX)
  1416. else
  1417. client_printcolor(id, "^1[^3%s^1] ^1Serverio slaptaЕѕodis: ^4%s", PREFIX, pass)
  1418.  
  1419. }
  1420.  
  1421. public Call_Back(id, menu, item)
  1422. return ITEM_DISABLED
  1423.  
  1424. GetSecureName(const name[])
  1425. {
  1426. static secureName[64];
  1427. copy(secureName, charsmax(secureName), name);
  1428.  
  1429. replace_all(secureName, charsmax(secureName), "\", "\\");
  1430. replace_all(secureName, charsmax(secureName), "'", "\'");
  1431. replace_all(secureName, charsmax(secureName), "`", "\`");
  1432.  
  1433. return secureName;
  1434. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement