· 6 years ago · Nov 16, 2019, 01:27 PM
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 "Jaroslawas20191026"
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
45new Handle:g_hTuple;
46
47new 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
57new pKills_Old[33], pDeaths_Old[33], pHeadshots_Old[33], pDefused[33], pPlanted[33]
58new cvar_enabled
59new g_SvPassword
60//
61
62new 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
66new scoreT, scoreCT, serverPassword[64], tempCT, tempT, tempCount
67new bool:WarmUp = true, bool:KnifeRound, bool:passwordStatus, bool:canChat = true,bool:PrepareRound
68new Kills[33]
69
70new const BlockCmds[][] = {
71"amx_unban",
72"amx_rcon",
73"amx_cvar",
74"amxmodmenu"
75}
76
77new 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
101public 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}
146public plugin_cfg()
147{
148 set_task(0.5, "MySQLx_Init");
149}
150public 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}
163public 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}
173public 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}
183public 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}
200public 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}
228public 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}
244public 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}
250public 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}
266public 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}
279public 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}
330public 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}
338public t_win(id)
339{
340 if(!WarmUp && !KnifeRound && !PrepareRound) scoreT++
341 if(KnifeRound)
342 {
343 if(tempT)
344 {
345 showTeamMenu(tempT)
346 }
347 }
348}
349public ct_win(id)
350{
351 if(!WarmUp && !KnifeRound && !PrepareRound) scoreCT++
352 if(KnifeRound)
353 {
354 if(tempCT)
355 {
356 showTeamMenu(tempCT)
357 }
358 }
359}
360public 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}*/
373public 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}
459public changeTeams()
460{
461 for(new i = 1; i <= 32; i++)
462 {
463 add_delay(i)
464 }
465}
466public 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}
477add_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}
489public 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}
519public 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}
524public event_CurWeapon(id)
525{
526 if(KnifeRound && get_user_weapon(id) != CSW_KNIFE)
527 engclient_cmd(id, "weapon_knife")
528}
529public 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}
543public 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}
570public BlockConsole(id) return PLUGIN_HANDLED
571public 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}
598public 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}
619public 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}
637public 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}
669public _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}
682public 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}
698public 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}
711public 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}
742public 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}
768public 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}
798public 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}
824public 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}
856public 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}
867public 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}
884public 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}
901public 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}
959public 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}
966public 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}
985public 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}
1006public 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}
1028public 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}
1070public 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}
1084public 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}
1106public 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}
1133public 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}
1158public 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
1166stock get_admin_name(id)
1167{
1168 new name[64]
1169 get_user_name(id, name, 63)
1170 return name
1171}
1172stock 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
1192public 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]
1204public 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
1285public 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
1301public Bomb_Planted() {
1302 if(!WarmUp && !PrepareRound) {
1303 pPlanted[get_loguser_index()]++
1304 }
1305}
1306
1307public Bomb_Defused() {
1308 if(!WarmUp && !PrepareRound) {
1309 pDefused[get_loguser_index()]++
1310 }
1311}
1312
1313stock 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
1322public 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
1327public 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
1331public 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
1348public 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
1405public p_info_handler(id, menu, item) {
1406 menu_destroy(menu)
1407 info(id)
1408 return PLUGIN_HANDLED
1409}
1410
1411public 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
1421public Call_Back(id, menu, item)
1422 return ITEM_DISABLED
1423
1424GetSecureName(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}