/* AMXMODX Plugin

Polski KillStreak 1.6 !B! !E! !T! !A!
Wersja polska (polskie dzwieki i napisy) oraz wszelkie modyfikacje by Sn!ff3r
Oryginalnie by Dizzy - http://forums.alliedmods.net/showthread.php?p=67632

---

Mini Opis:
Kazdy chyba zna dzwieki HeadShot, MultiKill (Ultimate Sounds) itd? To jest wlasnie taki plugin tylko dzwieki oraz teksty po polsku.
Dodatkowo zmodyfikowany, np. 3 rozne dzwieki na headshot. 

---

Zapraszam serdecznie wszystkich na www.wiaderko.com oraz www.cs-puchatek.pl

Najlepsze serwery Counter Strike:
Puchatek [4FuN] - 84.38.95.197:27020 
Puchatek [FFA] - 84.38.95.197:27016
Puchatek [TP] - 84.38.95.197:27015

*/

#include <amxmodx>

#define KNIFFMESSAGES 4
#define LEVELS 7
#define MESSAGESNOHP 4
#define MESSAGESHP 4

new kills[33] = {0,...};
new deaths[33] = {0,...};
new alone_ann = 0
new levels[7] = {3, 5, 7, 9, 10, 13, 15};

new stksounds[7][] = {
"misc/ut_pl/multikill",
"misc/ut_pl/ultrakill",
"misc/ut_pl/monsterkill",
"misc/ut_pl/killingspree",
"misc/ut_pl/rampage",
"misc/ut_pl/holyshit",
"misc/ut_pl/godlike"};

new stkmessages[7][] = {
"%s: O S T R O ! ! !",
"%s: W Y P I E R D A L A C ! ! !",
"%s: M O N S T E R   K O L O ! ! !",
"%s: W S C I E K L   S I E ! ! !",
"%s: R Z A D Z I S Z ! ! !",
"%s: R O B I   W R A Z E N I E ! ! !",
"%s: P R Z E Z N A C Z E N I E ! ! !"};


new kniffmessages[KNIFFMESSAGES][] = {
"%s pokroil na plasterki %s!",
"%s odcial jaja %s!",
"%s przetestowal noz na %s!",
"%s dziabnal %s!"}

new messagesnohp[MESSAGESNOHP][] = {
"%i terrorystow vs %i CT^n%s: Wszystko zalezy od Ciebie!",
"%i terrorystow vs %i CT^n%s: Mam nadzieje ze masz apteczke?",
"%i terrorystow vs %i CT^n%s: Zostales sam. Dobrej zabawy!",
"%i terrorystow vs %i CT^n%s: Tylko Ty jestes zywy!"}

new messageshp[MESSAGESHP][] = {
"%i terrorystow vs %i CT^n%s (%i hp): Wszystko zalezy od Ciebie!",
"%i terrorystow vs %i CT^n%s (%i hp): Mam nadzieje ze masz apteczke?",
"%i terrorystow vs %i CT^n%s (%i hp): Zostales sam. Dobrej zabawy!",
"%i terrorystow vs %i CT^n%s (%i hp): Tylko Ty jestes zywy!"}

get_streak()
{
	new streak[3]
	get_cvar_string("streak_mode",streak,2)
	return read_flags(streak)
}

public death_event(id)
{
	new streak = get_streak()

	if ((streak&1) || (streak&2))
	{
    		new killer = read_data(1);
    		new victim = read_data(2);

    		kills[killer] += 1;
    		kills[victim] = 0;
    		deaths[killer] = 0;
    		deaths[victim] += 1;

    		for (new i = 0; i < LEVELS; i++)
		{
        		if (kills[killer] == levels[i])
			{
         	  		 announce(killer, i);
         	  		 return PLUGIN_CONTINUE;
			}
		}
	}
	return PLUGIN_CONTINUE;
}

announce(killer, level)
{
	new streak = get_streak()

	if (streak&1)
	{
    		new name[32];

   		get_user_name(killer, name, 32);
		set_hudmessage(0, 100, 200, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
		show_hudmessage(0, stkmessages[level], name);
	}

	if (streak&2){
    		client_cmd(0, "spk %s", stksounds[level]);
	}
}

public reset_hud(id)
{
	new streak = get_streak()

	if (streak&1)
	{

		if (kills[id] > levels[0])
		{
		        client_print(id, print_chat, 
			"* Twoj killstreak wynosi %d zabojstw.", kills[id]);

		}

		else if (deaths[id] > 1)
		{
			client_print(id, print_chat, 
			"* Twoj deathstreak wynosi %d smierci.", deaths[id]);
		}
	}
}

public client_connect(id)
{
	new streak = get_streak()

	if ((streak&1) || (streak&2))
	{
		kills[id] = 0;
		deaths[id] = 0;
	}
}

public knife_kill()
{
	new kniffmode[4] 
	get_cvar_string("kniff_mode",kniffmode,4) 
	new kniffmode_bit = read_flags(kniffmode)

	if (kniffmode_bit & 1)
	{
		new killer_id = read_data(1)
		new victim_id = read_data(2)
		new killer_name[33], victim_name[33]

		get_user_name(killer_id,killer_name,33)
		get_user_name(victim_id,victim_name,33)


		set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
		show_hudmessage(0,kniffmessages[ random_num(0,KNIFFMESSAGES-1) ],killer_name,victim_name)
	}

	if (kniffmode_bit & 2)
	{
		client_cmd(0,"spk misc/ut_pl/humiliation")
   	}
}


public roundend_msg(id)

	alone_ann = 0

public death_msg(id)
{

	new lmmode[8] 
	get_cvar_string("lastman_mode",lmmode,8) 
	new lmmode_bit = read_flags(lmmode)

	new players_ct[32], players_t[32], ict, ite, last
	get_players(players_ct,ict,"ae","CT")   
	get_players(players_t,ite,"ae","TERRORIST")   

	if (ict==1&&ite==1)
	{
		new name1[32], name2[32]
		get_user_name(players_ct[0],name1,32)
		get_user_name(players_t[0],name2,32)
		set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)

		if (lmmode_bit & 1)
		{
			if (lmmode_bit & 2)
			{
				show_hudmessage(0,"%s (%i hp) vs. %s (%i hp)",name1,get_user_health(players_ct[0]),name2,get_user_health(players_t[0]))
			}

			else
			{
				show_hudmessage(0,"%s vs. %s",name1,name2)
			}

			if (lmmode_bit & 4)
			{
				client_cmd(0,"spk misc/ut_pl/maytheforce")
			}
		}
	} 
	else
{   
	if (ict==1&&ite>1&&alone_ann==0&&(lmmode_bit & 4))
	{
		last=players_ct[0]
		client_cmd(last,"spk misc/ut_pl/oneandonly")
	}

	else if (ite==1&&ict>1&&alone_ann==0&&(lmmode_bit & 4))
	{
		last=players_t[0]
		client_cmd(last,"spk misc/ut_pl/oneandonly")
	}

	else
	{
		return PLUGIN_CONTINUE
	}
	alone_ann = last
	new name[32]   
	get_user_name(last,name,32)

	if (lmmode_bit & 1)
	{
		set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)

		if (lmmode_bit & 2)
		{
			show_hudmessage(0,messageshp[ random_num(0,MESSAGESHP-1) ],ite ,ict ,name,get_user_health(last))
		}

		else
		{
			show_hudmessage(0,messagesnohp[ random_num(0,MESSAGESNOHP-1) ],ite ,ict ,name )
		}
	}

	if (lmmode_bit & 4)
	{
		client_cmd(last,"spk misc/ut_pl/maytheforce")
	}
}
	return PLUGIN_CONTINUE   
}


public hs()
{
new hsmode[4]
get_cvar_string("hs_mode",hsmode,4)
new hsmode_bit = read_flags(hsmode)
new rand = random_num(0,2)

if (hsmode_bit & 1)
{
new killer_id = read_data(1)
new victim_id = read_data(2)
new victim_name[33]
get_user_name(victim_id,victim_name,33)

set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 3.0, 3.0, 0.15, 0.15, 1)

switch(rand)
  {
  case 0: show_hudmessage(killer_id,"L E B S Z O T !^n Pwn3d %s !!",victim_name)
  case 1: show_hudmessage(killer_id,"D U P S Z O T !^n Zownowales %s !!",victim_name)
  case 2: show_hudmessage(killer_id,"H E A D S H O T !^n %s poszedl sie pierdolic!!",victim_name)
  }
  
  }
  
if (hsmode_bit & 2)
  {
  
  switch(rand)
  {
  case 0: client_cmd(0,"spk misc/ut_pl/headshot")
  case 1: client_cmd(0,"spk misc/ut_pl/dupszot")
  case 2: client_cmd(0,"spk misc/ut_pl/pierdol")
  }
    
  }
}

public plugin_precache()
{
precache_sound("misc/ut_pl/monsterkill.wav")
precache_sound("misc/ut_pl/godlike.wav")
precache_sound("misc/ut_pl/headshot.wav")
precache_sound("misc/ut_pl/humiliation.wav")
precache_sound("misc/ut_pl/killingspree.wav")
precache_sound("misc/ut_pl/multikill.wav")
precache_sound("misc/ut_pl/ultrakill.wav")
precache_sound("misc/ut_pl/maytheforce.wav")
precache_sound("misc/ut_pl/oneandonly.wav")
precache_sound("misc/ut_pl/prepare.wav")
precache_sound("misc/ut_pl/rampage.wav")
precache_sound("misc/ut_pl/holyshit.wav")
precache_sound("misc/ut_pl/dupszot.wav")
precache_sound("misc/ut_pl/pierdol.wav")

return PLUGIN_CONTINUE
}


public plugin_init()
{
	register_plugin("Polski KillStreak","1.6","Dizzy & Sn!ff3r")
	register_event("DeathMsg","hs","a","3=1")
	register_event("DeathMsg","knife_kill","a","4&kni")
	register_event("ResetHUD", "reset_hud", "b");
	register_event("DeathMsg", "death_event", "a")
	register_event("SendAudio","roundend_msg","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
	register_event("TextMsg","roundend_msg","a","2&#Game_C","2&#Game_w")
	register_event("DeathMsg","death_msg","a")
	register_cvar("lastman_mode","abc")
	register_cvar("streak_mode","ab")
	register_cvar("kniff_mode","ab")
	register_cvar("hs_mode","ab")
	register_cvar("polish_killstreak", "1.6", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)

	return PLUGIN_CONTINUE
}
