﻿// ******************************************************************************************
// Schubaal's KnifeP3N
//		v4.6.1b
//		based on P3N's KnifeP3N v3.95
//
// * Description:
//	- when there's only one player left on each team, knife battles ensue!
//
// * Install instructions:
//			1. Install Mattie's EventScripts 1.5+:
//				http://mattie.info/cs
//
//			2. Extract the file [knifep3n.zip] to your /cstrike/ directory:
//				/addons/eventscripts/knifep3n/es_knifep3n.txt
//				/addons/eventscripts/knifep3n/kp_helper/es_kp_helper.txt
//				/addons/eventscripts/knifep3n/kp_settings/es_knifep3n_db.txt
//				/addons/eventscripts/knifep3n/kp_settings/es_kp_settings.txt
//				/cfg/knifep3n/knifep3n.cfg
//				/sound/ql/rocky.mp3
//				/sound/ql/chicken.wav
//				/sound/ql/DaffyDoit.wav
//				/sound/ql/blip1.wav
//
//			3. Add the following line somewhere in autoexec.cfg or server.cfg:
//				es_load knifep3n
//
// ******************************************************************************************

//**************************************************************
// Do not edit this file unless you really know what you're
//	doing! Please edit the file ./cfg/knifep3n/knifep3n.cfg
//**************************************************************

block load
{
	// version information
		es_xset knifep3n "4.6.2"
		es_xmakepublic knifep3n

	// Load dependencies
		es_xset _temp 0
		es_xexists _temp script corelib
		ifx false(_temp) do
		{
			es_xload corelib
		}
		es_xset _temp 0
		es_xexists _temp script popup
		ifx false(_temp) do
		{
			es_xload popup
		}
		es_xset _temp 0
		services isregistered _temp auth
		ifx false(_temp) do
		{
			es_xset _temp 0
			es_xexists _temp variable mani_admin_plugin_version
			ifx true(_temp) do
			{
				es_set _temp server_var(eventscripts_ver)
				es_xstring _temp section 0 1
				if (server_var(_temp) >= 2) then es_xload schubaal_auth
			}
		}
		es_xset _check_est 0
		es_xexists _check_est variable est_version

	// Init vars
		es_xset knifep3n_userid 0
		es_xset knifep3n_slap_health 0
		es_xset knifep3n_fighter_steamid 0
		es_xset knifep3n_early 0
		es_xset knifep3n_fighter 0
		es_xset knifep3n_fighter_id 0
		es_xset knifep3n_bomb 0
		es_xset knifep3n_def 0
		es_xset knifep3n_chickens 0
		es_xset knifep3n_player_team 0
		es_xset knifep3n_over 0
		es_xset knifep3n_fighter1_x 0
		es_xset knifep3n_fighter1_y 0
		es_xset knifep3n_fighter1_z 0
		es_xset knifep3n_player1 0
		es_xset knifep3n_player2 0
		es_xset knifep3n_play2name 0
		
		es_xset knifep3n_f1_primary 0
		es_xset knifep3n_f1_secondary 0
		es_xset knifep3n_f1_he 0
		es_xset knifep3n_f1_smoke 0
		es_xset knifep3n_f1_flash 0
		
		es_xset knifep3n_f2_primary 0
		es_xset knifep3n_f2_secondary 0
		es_xset knifep3n_f2_he 0
		es_xset knifep3n_f2_smoke 0
		es_xset knifep3n_f2_flash 0
		
		es_xset knifep3n_get_player 0
		es_xset knifep3n_bot_vote 0
		
		es_xset knifep3n_player_count 0
		es_xset knifep3n_t 0
		es_xset knifep3n_ct 0
		es_xset knifep3n_acc 0
		es_xset knifep3n_dec 0
		es_xset knifep3n_done 0
		es_xset knifep3n_menu_sent 0

		es_xset cntdo 0


		es_xset knifep3n_chat_filter 0 "Sets the level of the chat filter, 0 for no filter, 1 for filter some, 2 for filter all)"
		es_xset knifep3n_fight_health 0 "Sets how much health players get at the start of a knife fight."

		es_xset knifep3n_beacon 0 "Visual/audio beacon for fighters to find each other."
		es_xset knifep3n_beacon_sound 0 "Sets what sound plays for the beacon."
		es_xset knifep3n_beacon_red_1 0
		es_xset knifep3n_beacon_green_1 0
		es_xset knifep3n_beacon_blue_1 0
		es_xset knifep3n_beacon_red_2 0
		es_xset knifep3n_beacon_green_2 0
		es_xset knifep3n_beacon_blue_2 0
		es_xset knifep3n_beacon_rate 0
		es_xset knifep3n_beacon_size 0

		es_xset knifep3n_bot_vote 0

		es_xset knifep3n_sounds_yes 0
		es_xset knifep3n_sounds_no 0
		es_xset knifep3n_sounds_start 0
		es_xset knifep3n_sounds_winner 0

		es_xset knifep3n_time_limit 0

		es_xset knifep3n_award_money 0
		es_xset knifep3n_cash 0
		es_xset knifep3n_award_health 0
		es_xset knifep3n_health 0
		es_xset knifep3n_award_speed 0
		es_xset knifep3n_speed 0
		es_xset knifep3n_keep_ability 0

		es_xset knifep3n_teleport 0
		es_xset knifep3n_slap 0
		es_xset knifep3n_keep_weapons 0

		es_xset knifep3n_no_vote 0
		es_xset knifep3n_svcheat 0

		es_xset knifep3n_decline_punishment 0
		es_xset knifep3n_chicken_red 0
		es_xset knifep3n_chicken_green 0
		es_xset knifep3n_chicken_blue 0
		es_xset knifep3n_chicken_speed 0
		
		es_xset knifep3n_lame_health 0
		es_xset knifep3n_skin 0
		
		es_xset x1 0
		es_xset y1 0
		es_xset z1 0
		es_xset x2 0
		es_xset y2 0
		es_xset z2 0
		
		es_xset knifep3n_userid1 0
		es_xset knifep3n_userid2 0
		
		es_xset knifep3n_start_count 0
		es_xset knifep3n_winner_count 0
		
		es_xset knifep3n_bot_fight 0

	// settings/config
		es_xload knifep3n/kp_settings
		es_delayed 2 es_set knifep3n_time_limitr server_var(knifep3n_time_limit)

	// config tweaks
		ifx false(knifep3n_teleport) do
		{
			es_xset knifep3n_slap "0"
		}

	// Vote menu
		popup create knifep3n_menu

		popup addline knifep3n_menu "  Доиграть раунд на ножах???"
		popup addline knifep3n_menu "------------------------------"
		popup addline knifep3n_menu "->1. Да"
		popup addline knifep3n_menu "->2. Нет"
		popup addline knifep3n_menu "------------------------------"

		popup select knifep3n_menu 1 knifep3n/vote_yes
		popup select knifep3n_menu 2 knifep3n/vote_no

		popup timeout knifep3n_menu send 20
		popup timeout knifep3n_menu view 20

	// Help menu!
		es_xset _temp 0
		services isregistered _temp auth
		ifx true(_temp) do
		{
			es_xload knifep3n/kp_helper
		}
		
	// init
		es_xdoblock knifep3n/init

	es_msg #multi [#greenKnifeP3N#default]#lightgreen server_var(knifep3n) loaded!
}

block unload
{
	es_xset knifep3n 0
	popup unsendname knifep3n_menu #all
	popup delete knifep3n_menu

	es_xunload knifep3n/kp_helper
	es_xunload knifep3n/kp_settings

	es_xmsg #multi [#greenKnifeP3N#default]#lightgreen Unloaded.
}

event es_map_start
{
	es_xdoblock knifep3n/init
}

event player_death
{
	ifx false(knifep3n_done) do
	{
		es_xgetlivingplayercount knifep3n_t 2
		es_xgetlivingplayercount knifep3n_ct 3
		ifx true(knifep3n_t) do
		{
			ifx true(knifep3n_ct) do
			{
				es_xdoblock knifep3n/knifepopup
			}
		}
	}

	// Predator Skin
	if (server_var(knifep3n_skin) == 1) do
	{
		if (server_var(knifep3n_fighter_steamid) != "BOT") do
		{
			if (server_var(knifep3n_fighter_steamid) != 0) then if (event_var(attacker) == server_var(knifep3n_fighter_id)) then es_cexec_all play ql/predator.mp3
		}
	}
	
	if (server_var(knifep3n_menu_sent) == 1) do
	{
		es_xset knifep3n_player_count 0
		es_xgetlivingplayercount knifep3n_player_count
		if (server_var(knifep3n_player_count) != 2) do
		{
			popup unsendname knifep3n_menu #all
			es_xset knifep3n_time_limitr 0
		}
	}
	
	ifx true(knifep3n_slapping_now) do
	{
		es_tell event_var(attacker) #multi #green[KnifeP3N]#lightgreen Your kill does not count, cheater!
		es_delayed 0.1 es_sexec event_var(attacker) kill
		if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) cheated... He killed his opponent during slap death prevention!
		es_xset knifep3n_time_limitr 0
	}
	
	if (server_var(knifep3n_done) == 1) do
	{
		es_xset knifep3n_over 1
		es_set knifep3n_beacon server_var(knifep3n_beacon)
		if (server_var(knifep3n_beacon) == 1) do
		{
			foreach player knifep3n_userid1 #alive#t "es_xdoblock knifep3n/beacon"
			foreach player knifep3n_userid2 #alive#ct "es_xdoblock knifep3n/beacon"
		}
		if (server_var(knifep3n_acc) < 2) do
		{
			es_xset knifep3n_fighter_id 0
			es_xset knifep3n_fighter 0
			es_xset knifep3n_player1 0
			es_xset knifep3n_player2 0
		}
	}
	
	if (server_var(knifep3n_early) == 1) do
	{
		es_xset _cheat 0
		if (event_var(userid) == server_var(knifep3n_player1)) then es_xset _cheat 1
		if (event_var(userid) == server_var(knifep3n_player2)) then es_xset _cheat 1
		ifx true(_cheat) do
		{
			es_tell event_var(attacker) #multi #green[KnifeP3N]#lightgreen Your kill does not count as a knife kill.
			es_delayed 0.1 es_sexec event_var(attacker) kill
			if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) cheated... He killed his opponent before the fight started!
			es_xset knifep3n_time_limitr 0
			es_xset _cheat 0
		}
	}
	
	if (server_var(knifep3n_chickens) == 0) do
	{
		if (server_var(knifep3n_done) == 1) do
		{
			if (server_var(knifep3n_time_limitr) < server_var(knifep3n_time_limit))
			{
				es_xset knifep3n_time_limitr 0
				if (server_var(knifep3n_early) == 0) do
				{
					if (event_var(attacker) != event_var(userid)) do
					{
						if ("knife" in event_var(weapon)) do
						{
							es_xset knifep3n_acc 0
							es_xset knifep3n_dec 0
							foreach player tempuserid #all "es_toptext server_var(tempuserid) 15 #red event_var(es_attackername) Won the knifefight RESPECT!!!"
							if (server_var(knifep3n_chat_filter) != 2) then es_delayed 1.2 es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) #greenWon the knifefight. RESPECT!
							ifx true(knifep3n_sounds_winner) do
							{
								if ("," in server_var(knifep3n_sounds_winner)) do
								{
									es_xset _i 0
									es_xset _rand 0
									es_rand _rand 1 server_var(knifep3n_winner_count)
									es foreach token temptoken server_var(knifep3n_sounds_winner) "," "es_xmath _i + 1; if (server_var(_i) == server_var(_rand)) then es_emitsound player event_var(userid) server_var(temptoken) 1.0 0.0"
								}
								else do
								{
									es_emitsound player event_var(userid) server_var(knifep3n_sounds_winner) 1.0 0.0
								}
							}
							if (server_var(knifep3n_award_money) == 1) do
							{
								if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) Has won server_var(knifep3n_cash) in cash
							}
							if (server_var(knifep3n_award_health) == 1) do
							{
								if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) Has won, health will be set to server_var(knifep3n_health) next round!
							}
							if (server_var(knifep3n_award_speed) == 1) do
							{
								if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) Has won, speed will be set to server_var(knifep3n_speed) times normal next round!
							}
							es_set knifep3n_fighter event_var(es_attackername)
							es_set knifep3n_fighter_id event_var(attacker)
							es_set knifep3n_fighter_steamid event_var(es_attackersteamid)
							if (event_var(attackerteam) == server_var(knifep3n_player_team)) do
							{
								es_xset knifep3n_f2_primary 0
								es_xset knifep3n_f2_secondary 0
								es_xset knifep3n_f2_he 0
								es_xset knifep3n_f2_smoke 0
								es_xset knifep3n_f2_flash 0
							}
							if (event_var(es_attackerteam) != server_var(knifep3n_player_team)) do
							{
								es_xset knifep3n_f1_primary 0
								es_xset knifep3n_f1_secondary 0
								es_xset knifep3n_f1_he 0
								es_xset knifep3n_f1_smoke 0
								es_xset knifep3n_f1_flash 0
							}
						}
						else do
						{
							es_tell event_var(attacker) #multi #green[KnifeP3N]#lightgreen Your kill does not count as a knife kill.
							es_delayed 0.1 es_sexec event_var(attacker) kill
							if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) cheated, he did not use a knife!
							es_set knifep3n_lame_userid event_var(attacker)
							es_xset knifep3n_fighter_id 0
							es_xset knifep3n_fighter 0
							es_xset knifep3n_player1 0
							es_xset knifep3n_player2 0
							es_xset knifep3n_time_limitr 0
							es_xset _cheat 0
						}
					}
					else do
					{
						if (event_var(userid) != "BOT") do
						{
							if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_attackername) has killed himself... that's lame.
							es_set knifep3n_lame_userid event_var(attacker)
							es_xset knifep3n_fighter_id 0
							es_xset knifep3n_fighter 0
							es_xset knifep3n_player1 0
							es_xset knifep3n_player2 0
						}
					}
				}
			}
		}
	}
}

event player_disconnect
{
	if (event_var(userid) == server_var(knifep3n_fighter_id)) then es_xset knifep3n_fighter_id 0
}

event round_start
{
	if (server_var(knifep3n_menu_sent) == 1) then popup unsendname knifep3n_menu #all
	if (server_var(knifep3n_teleport) == 0) then es_xset knifep3n_slap 0
	es_xset knifep3n_get_player 0
	es_xset knifep3n_t 0
	es_xset knifep3n_ct 0
	es_xset knifep3n_acc 0
	es_xset knifep3n_dec 0
	es_xset knifep3n_chickens 0
	es_xset cntdo 0
	es_xset knifep3n_play2name 0
	es_xset knifep3n_time_limitr 0
	es_xdelayed 1 es_xset knifep3n_done 0
	es_xdelayed 3 es_xset knifep3n_over 0
	es_xdelayed 3 es_xset knifep3n_menu_sent 0
	es_xdelayed 3 es_xset knifep3n_lame_userid 0
	es_delayed 4 es_set knifep3n_time_limitr server_var(knifep3n_time_limit)
}

event player_spawn
{
	if (event_var(userid) == server_var(knifep3n_fighter_id)) then es_xdoblock knifep3n/playerknifespawn
	if (event_var(userid) == server_var(knifep3n_lame_userid)) then es_xdoblock knifep3n/lameplayer
	es_xdelayed 0.5 es_xdoblock knifep3n/delayed_spawn_check
}

block delayed_spawn_check
{
	if (server_var(knifep3n_acc) == 2) do
	{
		if (event_var(userid) != server_var(knifep3n_player1)) do
		{
			if (event_var(userid) != server_var(knifep3n_player2)) do
			{
				es_sexec event_var(userid) kill
				es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_username) has been slain for spawning during a knife fight.
			}
		}
	}
}

event hostage_follows
{
	if (server_var(knifep3n_menu_sent) == 1) then popup unsendname knifep3n_menu #all
	es_xdelayed 0.1 es_xset knifep3n_menu_sent 1
}

event bomb_beginplant
{
	if (server_var(knifep3n_menu_sent) == 1) then popup unsendname knifep3n_menu #all
	es_xdelayed 0.1 es_xset knifep3n_menu_sent 1
	if (server_var(knifep3n_acc) == 2) do
	{
		es_sexec event_var(userid) drop weapon_c4
		es_tell event_var(userid) #multi #green[KnifeP3N]#lightgreen Fight with the knife!
	}
}

event item_pickup
{
	if (server_var(knifep3n_acc) == 2) do
	{
		if (server_var(knifep3n_svcheat) == 0) do
		{
			if (event_var(item) != "knife") do
			{
				es_xset _rem "weapon_%1"
				es_format _rem server_var(_rem) event_var(item)
				es playerget weaponindex _rem event_var(userid) server_var(_rem)
				es_remove server_var(_rem)
				es_sexec event_var(userid) "use weapon_knife"
			}
		}
	}
}

event round_end
{
	if (server_var(knifep3n_done) == 0) do
	{
		if (server_var(knifep3n_keep_ability) == 0) do
		{
			es_xset knifep3n_player1 0
			es_xset knifep3n_player2 0
			es_xdelayed 0.1 es_xset knifep3n_fighter 0
			es_xdelayed 0.1 es_xset knifep3n_fighter_id 0
		}
	}
	if (server_var(knifep3n_dec) == 1) do
	{
		es_xset knifep3n_player1 0
		es_xset knifep3n_player2 0
		es_xset knifep3n_fighter 0
		es_xset knifep3n_fighter_id 0
	}
	if (server_var(knifep3n_acc) == 1) do
	{
		es_xset knifep3n_player1 0
		es_xset knifep3n_player2 0
		es_xset knifep3n_fighter 0
		es_xset knifep3n_fighter_id 0
	}
	if (server_var(knifep3n_chickens) == 1) do
	{
		es_xset knifep3n_player1 0
		es_xset knifep3n_player2 0
		es_xset knifep3n_fighter 0
		es_xset knifep3n_fighter_id 0
	}
	es_xset knifep3n_menu_sent 1
	es_xset knifep3n_acc 0
	es_xset knifep3n_time_limitr 0
	es_xset knifep3n_early 0
}

block init
{
	// Load sounds into downloadables
	ifx true(knifep3n_beacon_sound) do
	{
		es_xset knifep3n_sounds 0
		es_format knifep3n_sounds "sound/%1" server_var(knifep3n_beacon_sound)
		es_stringtable downloadables server_var(knifep3n_sounds)
	}
	ifx true(knifep3n_sounds_yes) do
	{
		es_xset knifep3n_sounds 0
		es_format knifep3n_sounds "sound/%1" server_var(knifep3n_sounds_yes)
		es_stringtable downloadables server_var(knifep3n_sounds)
	}
	ifx true(knifep3n_sounds_no) do
	{
		es_xset knifep3n_sounds 0
		es_format knifep3n_sounds "sound/%1" server_var(knifep3n_sounds_no)
		es_stringtable downloadables server_var(knifep3n_sounds)
	}
	es_xset knifep3n_start_count 0
	ifx true(knifep3n_sounds_start) do
	{
		es_xset knifep3n_sounds 0
		if ("," in server_var(knifep3n_sounds_start)) do
		{
			es_xset knifp3n_start_count 0
			es foreach token temptoken server_var(knifep3n_sounds_start) "," "es_xdoblock knifep3n/load_start_sounds"
		}
		else do
		{
			es_format knifep3n_sounds "sound/%1" server_var(knifep3n_sounds_start)
			es_stringtable downloadables server_var(knifep3n_sounds)
		}
	}
	es_xset knifep3n_winner_count 0
	ifx true(knifep3n_sounds_winner) do
	{
		es_xset knifep3n_sounds 0
		if ("," in server_var(knifep3n_sounds_start)) do
		{
			es_xset knifep3n_winner_count 0
			es foreach token temptoken server_var(knifep3n_sounds_winner) "," "es_xdoblock knifep3n/load_winner_sounds"
		}
		else do
		{
			es_format knifep3n_sounds "sound/%1" server_var(knifep3n_sounds_winner)
			es_stringtable downloadables server_var(knifep3n_sounds)
		}
	}

	es_xset knifep3n_player1 0
	es_xset knifep3n_player2 0
	es_xset knifep3n_fighter 0
	es_xset knifep3n_fighter_id 0

	ifx true(knifep3n_skin) do
	{
		downloadable sound/ql/predator.mp3
	}

	// Correct Beacon Color Settings
		if (server_var(knifep3n_beacon_red_1) > 255) then es_xset knifep3n_beacon_red_1 255
		if (server_var(knifep3n_beacon_green_1) > 255) then es_xset knifep3n_beacon_green_1 255
		if (server_var(knifep3n_beacon_blue_1) > 255) then es_xset knifep3n_beacon_blue_1 255
		if (server_var(knifep3n_beacon_red_2) > 255) then es_xset knifep3n_beacon_red_2 255
		if (server_var(knifep3n_beacon_green_2) > 255) then es_xset knifep3n_beacon_green_2 255
		if (server_var(knifep3n_beacon_blue_2) > 255) then es_xset knifep3n_beacon_blue_2 255

		if (server_var(knifep3n_beacon_red_1) < 0) then es_xset knifep3n_beacon_red_1 0
		if (server_var(knifep3n_beacon_green_1) < 0) then es_xset knifep3n_beacon_green_1 0
		if (server_var(knifep3n_beacon_blue_1) < 0) then es_xset knifep3n_beacon_blue_1 0
		if (server_var(knifep3n_beacon_red_2) < 0) then es_xset knifep3n_beacon_red_2 0
		if (server_var(knifep3n_beacon_green_2) < 0) then es_xset knifep3n_beacon_green_2 0
		if (server_var(knifep3n_beacon_blue_2) < 0) then es_xset knifep3n_beacon_blue_2 0
}

block load_start_sounds
{
	es_xmath knifep3n_start_count + 1
	es_format knifep3n_sounds "sound/%1" server_var(temptoken)
	es_stringtable downloadables server_var(knifep3n_sounds)
}

block load_winner_sounds
{
	es_xmath knifep3n_winner_count + 1
	es_format knifep3n_sounds "sound/%1" server_var(temptoken)
	es_stringtable downloadables server_var(knifep3n_sounds)
}

block knifepopup
{
	es_xset knifep3n_player_count 0
	es_xgetlivingplayercount knifep3n_player_count
	ifx false(knifep3n_menu_sent) do
	{
		if (server_var(knifep3n_player_count) == 2) do
		{
			es_xset _botcount 0
			if (server_var(knifep3n_bot_fight) == 1) do
			{
				foreach player tempuserid #bot#alive "es_xdoblock knifep3n/bot_check"
			}
			if (server_var(_botcount) < 2) do
			{
				if (server_var(knifep3n_no_vote) == 0) do
				{
					if (server_var(knifep3n_chat_filter) != 2) then es_xmsg #multi [#greenKnifeP3N#default]#green **Knifevote in progress**
					foreach player tempuserid #human#alive "es popup send knifep3n_menu server_var(tempuserid)"
					es_xset _botcount 0
					foreach player tempuserid #bot#alive "es_xdoblock knifep3n/knifepopupbot"
					es_xset knifep3n_menu_sent 1
				}
				else do
				{
					foreach player tempuserid #alive "es_xdoblock knifep3n/bot_votedyes"
					es_xset knifep3n_menu_sent 1
				}
			}
		}
	}
}

block bot_check
{
	es_xmath _botcount + 1
}

block knifepopupbot
{
	if (server_var(_botcount) == 0) do
	{
		es_set knifep3n_player1 server_var(tempuserid)
		es_xmath _botcount + 1
	}
	else do
	{
		es_set knifep3n_player2 server_var(tempuserid)
	}
	if (server_var(knifep3n_bot_vote) != 4) do
	{
		if (server_var(knifep3n_bot_vote) != 1) do
		{
			es_rand knifep3n_bot_vote 1 server_var(knifep3n_bot_vote)
			if (server_var(knifep3n_bot_vote) == 1) do
			{
				es_xdoblock knifep3n/bot_votedno
			}
			else do
			{
				es_xdoblock knifep3n_bot_votedyes
			}
		}
		else do
		{
			es_xdoblock knifep3n/bot_votedyes
		}
	}
	else do
	{
		es_xdoblock knifep3n/bot_votedno
	}
}

block vote_yes
{
	es_xmath knifep3n_acc + 1
	ifx false(knifep3n_get_player) do
	{
		if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_username) #greenaccepted the knife fight.
		es_xset knifep3n_fighter 0
		es_xset knifep3n_player1 0
		es_set knifep3n_player1 server_var(_popup_userid)
		es_xset knifep3n_f1_primary 0
		es_xset knifep3n_f1_secondary 0
		es_xset knifep3n_f1_he 0
		es_xset knifep3n_f1_smoke 0
		es_xset knifep3n_f1_flash 0
		es playerget primary knifep3n_f1_primary server_var(knifep3n_player1)
		es playerget secondary knifep3n_f1_secondary server_var(knifep3n_player1)
		es playerget he knifep3n_f1_he server_var(knifep3n_player1)
		es playerget sg knifep3n_f1_smoke server_var(knifep3n_player1)
		es playerget fb knifep3n_f1_flash server_var(knifep3n_player1)
		es_xset knifep3n_fighter1_x 0
		es_xset knifep3n_fighter1_y 0
		es_xset knifep3n_fighter1_z 0
		es_getplayerlocation knifep3n_fighter1_x knifep3n_fighter1_y knifep3n_fighter1_z server_var(knifep3n_player1)
		es_xset knifep3n_player_team 0
		es_getplayerteam knifep3n_player_team server_var(knifep3n_player1)
		es_set knifep3n_slap server_var(knifep3n_slap)
		ifx true(knifep3n_slap) do
		{
			es_xdelayed 0.2 es_xdoblock knifep3n/slap
			es_tell server_var(knifep3n_player1) #multi #green[KnifeP3N]#lightgreen The slap is only to ensure teleporting works right!
		}
	}
	else do
	{
		es_xset knifep3n_fighter 0
		es_xset knifep3n_player2 0
		es_set knifep3n_player2 server_var(_popup_userid)
		es_getplayername knifep3n_play2name server_var(knifep3n_player2)
		es_xset knifep3n_f2_primary 0
		es_xset knifep3n_f2_secondary 0
		es_xset knifep3n_f2_he 0
		es_xset knifep3n_f2_smoke 0
		es_xset knifep3n_f2_flash 0
		es playerget primary knifep3n_f2_primary server_var(knifep3n_player2)
		es playerget secondary knifep3n_f2_secondary server_var(knifep3n_player2)
		es playerget he knifep3n_f2_he server_var(knifep3n_player2)
		es playerget sg knifep3n_f2_smoke server_var(knifep3n_player2)
		es playerget fb knifep3n_f2_flash server_var(knifep3n_player2)
	}
	es_xdoblock knifep3n/voteready
}

block vote_no
{
	es_xmath knifep3n_dec + 1
	if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_username) #greendenied the knife fight...
	ifx true(knifep3n_sounds_no) do
	{
		es_emitsound player server_var(_popup_userid) server_var(knifep3n_sounds_no) 1.0 0.0
	}
	es_xset _temp 0
	es_getplayername _temp server_var(_popup_userid)
	es_centermsg Ok, so server_var(_temp)is a chicken...
	es_delayed 1 es_centermsg Ok, so event_var(es_username)is a chicken...
	es_delayed 2 es_centermsg Ok, so event_var(es_username)is a chicken...
	if (server_var(knifep3n_decline_punishment) == 1) then es_xdoblock knifep3n/chickenout
	es_xdoblock knifep3n/voteready
	popup unsendname knifep3n_menu #all
}

block bot_votedyes
{
	es_xmath knifep3n_acc add 1
	if (server_var(knifep3n_get_player) == 0) do
	{
		es_xset knifep3n_menu_sent 1
		if (server_var(knifep3n_no_vote) == 0) do
		{
			if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#lightgreen Bot#green accepted the knife fight.
		}
		if (server_var(knifep3n_no_vote) == 1) do
		{
			if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#green Knife fight!
		}
		es_xset knifep3n_player1 0
		es_set knifep3n_player1 server_var(tempuserid)
		es_xset knifep3n_fighter 0
		es_xset knifep3n_f1_primary 0
		es_xset knifep3n_f1_secondary 0
		es_xset knifep3n_f1_he 0
		es_xset knifep3n_f1_smoke 0
		es_xset knifep3n_f1_flash 0
		es playerget primary knifep3n_f1_primary server_var(knifep3n_player1)
		es playerget secondary knifep3n_f1_secondary server_var(knifep3n_player1)
		es playerget he knifep3n_f1_he server_var(knifep3n_player1)
		es playerget sg knifep3n_f1_smoke server_var(knifep3n_player1)
		es playerget fb knifep3n_f1_flash server_var(knifep3n_player1)
		es_xset knifep3n_fighter1_x 0
		es_xset knifep3n_fighter1_y 0
		es_xset knifep3n_fighter1_z 0
		es_getplayerlocation knifep3n_fighter1_x knifep3n_fighter1_y knifep3n_fighter1_z server_var(knifep3n_player1)
		es_xset knifep3n_player_team 0
		es_getplayerteam knifep3n_player_team server_var(knifep3n_player1)
		if (server_var(knifep3n_slap) == 1) then es_delayed 0.2 es_xdoblock knifep3n/slapbot
	}
	else do
	{
		es_xset knifep3n_player2 0
		es_set knifep3n_player2 server_var(tempuserid)
		es_xset knifep3n_fighter 0
		es_getplayername knifep3n_play2name server_var(knifep3n_player2)
		es_xset knifep3n_f2_primary 0
		es_xset knifep3n_f2_secondary 0
		es_xset knifep3n_f2_he 0
		es_xset knifep3n_f2_smoke 0
		es_xset knifep3n_f2_flash 0
		es playerget primary knifep3n_f2_primary server_var(knifep3n_player2)
		es playerget secondary knifep3n_f2_secondary server_var(knifep3n_player2)
		es playerget he knifep3n_f2_he server_var(knifep3n_player2)
		es playerget sg knifep3n_f2_smoke server_var(knifep3n_player2)
		es playerget fb knifep3n_f2_flash server_var(knifep3n_player2)
	}
	es_xdoblock knifep3n/voteready
}

block bot_votedno
{
	es_xmath knifep3n_dec + 1
	if (server_var(knifep3n_chat_filter) != 2) then es_xmsg #multi [#greenKnifeP3N#default]#lightgreen Bot#green denied the knife fight...
	ifx true(knifep3n_sounds_no) do
	{
		es_emitsound player server_var(tempuserid) server_var(knifep3n_sounds_no) 1.0 0.0
	}
	es_xcentermsg Ok, so the Bot is a chicken...
	es_xdelayed 1 es_xcentermsg Ok, so the Bot is a chicken...
	es_xdelayed 2 es_xcentermsg Ok, so the Bot is a chicken...
	es_xdoblock knifep3n/voteready
}

block voteready
{
	es_xset knifep3n_get_player 1
	if (server_var(knifep3n_dec) == 2) do
	{
		if (server_var(knifep3n_chat_filter) == 0) then es_xmsg #multi [#greenKnifeP3N#default]#lightgreen Both players are chickens.
		es_xset knifep3n_fighter 0
		es_xset knifep3n_player1 0
		es_xset knifep3n_player2 0
		es_xset knifep3n_fighter_id 0
	}
	if (server_var(knifep3n_acc) == 1) do
	{
		ifx true(knifep3n_dec) do
		{
			if (server_var(knifep3n_chat_filter) == 0) then es_xmsg #multi [#greenKnifeP3N#default]#lightgreen One player did NOT accept.
		}
		else do
		{
			ifx true(knifep3n_sounds_yes) do
			{
				es_emitsound player server_var(knifep3n_player1) server_var(knifep3n_sounds_yes) 1.0 0.0
			}
		}
	}
	if (server_var(knifep3n_acc) == 2) do
	{
		es_set knifep3n_time_limitr server_var(knifep3n_time_limit)
		es_xdoblock knifep3n/resetplayer
		es_xset knifep3n_get_player 0
		es_set knifep3n_no_vote server_var(knifep3n_no_vote)
		ifx false(knifep3n_no_vote) do
		{
			if (server_var(knifep3n_chat_filter) == 0) then es_xmsg #multi [#greenKnifeP3N#default]#lightgreen Both players accepted the knife fight!
		}
		es_set knifep3n_teleport server_var(knifep3n_teleport)
		ifx true(knifep3n_teleport) do
		{
			es_xset knifep3n_early 1
			es_xdoblock knifep3n/moveposition
			es_xdelayed 2.8 es_xdoblock knifep3n/throwweapons
			es_xdelayed 3 es_xdoblock knifep3n/checkdelayed
		}
		else do
		{
			es_xdoblock knifep3n/knife_countdown
			es_xdoblock knifep3n/throwweapons
			ifx true(knifep3n_sounds_start) do
			{
				if ("," in server_var(knifep3n_sounds_start)) do
				{
					es_xset _i 0
					es_xset _rand 0
					es_rand _rand 1 server_var(knifep3n_start_count)
					es foreach token temptoken server_var(knifep3n_sounds_start) "," "es_xmath _i + 1; if (server_var(_i) == server_var(_rand)) then es_cexec_all play server_var(temptoken)"
				}
				else do
				{
					es_cexec_all play server_var(knifep3n_sounds_start)
				}
			}
			ifx true(knifep3n_beacon) do
			{
				foreach player knifep3n_userid1 #alive#t "es_xdoblock knifep3n/beacon"
				foreach player knifep3n_userid2 #alive#ct "es_xdoblock knifep3n/beacon"
			}
		}
	}
}

block moveposition
{
	es_centermsg server_var(knifep3n_play2name) will be teleported in 3 seconds!!!
	es_delayed 1 es_centermsg server_var(knifep3n_play2name) will be teleported in 2 seconds!!!
	es_delayed 2 es_centermsg server_var(knifep3n_play2name) will be teleported in 1 seconds!!!
	es_xdelayed 3 es_xcentermsg FINAL FIGHT!
	if (server_var(knifep3n_player_team) == "3") do
	{
		foreach player tempuserid #t "es_delayed 3 es_setpos server_var(tempuserid) server_var(knifep3n_fighter1_x) server_var(knifep3n_fighter1_y) server_var(knifep3n_fighter1_z)"
	}
	else do
	{
		foreach player tempuserid #ct "es_delayed 3 es_setpos server_var(tempuserid) server_var(knifep3n_fighter1_x) server_var(knifep3n_fighter1_y) server_var(knifep3n_fighter1_z)"
	}
	es_xdelayed 3.1 es playerset viewplayer server_var(knifep3n_player1) server_var(knifep3n_player2)
	es_xdelayed 3.1 es playerset viewplayer server_var(knifep3n_player2) server_var(knifep3n_player1)
}

block throwweapons
{
	foreach player tempuserid #alive "es_give server_var(tempuserid) player_weaponstrip"
	foreach player tempuserid #alive "es_fire server_var(tempuserid) player_weaponstrip Strip 1"
	foreach player tempuserid #alive "es_delayed 1 es_give server_var(tempuserid) item_assaultsuit"
	foreach player tempuserid #alive "es_delayed 1 es_give server_var(tempuserid) weapon_knife"
	foreach player tempuserid #alive "es_delayed 1 es_sexec server_var(tempuserid) use weapon_knife"
	foreach player tempuserid #alive "es playerset health server_var(tempuserid) server_var(knifep3n_fight_health)"
	es_xdelayed 0.1 es_xset knifep3n_done 1
	foreach player tempuserid #ct "es playerset defuser server_var(tempuserid) 1"
}

block checkdelayed
{
	es_xset knifep3n_early 0
	es_xset knifep3n_player_count 0
	es_xgetlivingplayercount knifep3n_player_count
	{
		if (server_var(knifep3n_player_count) == 2) do
		{
			ifx true(knifep3n_sounds_start) do
			{
				if ("," in server_var(knifep3n_sounds_start)) do
				{
					es_xset _i 0
					es_xset _rand 0
					es_rand _rand 1 server_var(knifep3n_start_count)
					es foreach token temptoken server_var(knifep3n_sounds_start) "," "es_xmath _i + 1; if (server_var(_i) == server_var(_rand)) then es_cexec_all play server_var(temptoken)"
				}
				else do
				{
					es_cexec_all play server_var(knifep3n_sounds_start)
				}
			}
			es_xdelayed 1 es_xdoblock knifep3n/knife_countdown
			es_set knifep3n_beacon server_var(knifep3n_beacon)
			ifx true(knifep3n_beacon) do
			{
				foreach player knifep3n_userid1 #alive#t "es_xdoblock knifep3n/beacon"
				foreach player knifep3n_userid2 #alive#ct "es_xdoblock knifep3n/beacon"
			}
		}
	}
}

block beacon
{
	if (server_var(knifep3n_acc) == 2) do
	{
		es_xset _rand 0
		es_xrand _rand 0 1
		ifx true(_rand) do
		{
			ifx true(knifep3n_beacon_sound) do
			{
				es_emitsound player server_var(knifep3n_userid1) server_var(knifep3n_beacon_sound) 1.0 0.7
				es_delayed 0.2 es_emitsound player server_var(knifep3n_userid2) server_var(knifep3n_beacon_sound) 1.0 0.7
			}
		}
		else do
		{
			ifx true(knifep3n_beacon_sound) do
			{
				es_delayed 0.2 es_emitsound player server_var(knifep3n_userid1) server_var(knifep3n_beacon_sound) 1.0 0.7
				es_emitsound player server_var(knifep3n_userid2) server_var(knifep3n_beacon_sound) 1.0 0.7
			}
		}
		ifx true(_check_est) do
		{
			es playerget location server_var(knifep3n_userid1) x1 y1 z1
			es_xmathparse z1 "z1+10"
			es est_effect 10 #a 0 "sprites/lgtning.vmt" server_var(x1) server_var(y1) server_var(z1) 1 server_var(knifep3n_beacon_size) 1 10 50 0 server_var(knifep3n_beacon_red_1) server_var(knifep3n_beacon_green_1) server_var(knifep3n_beacon_blue_1) 200 0
			
			es playerget location server_var(knifep3n_userid2) x2 y2 z2
			es_xmathparse z2 "z2+10"
			es est_effect 10 #a 0 "sprites/lgtning.vmt" server_var(x2) server_var(y2) server_var(z2) 1 server_var(knifep3n_beacon_size) 1 10 50 0 server_var(knifep3n_beacon_red_2) server_var(knifep3n_beacon_green_2) server_var(knifep3n_beacon_blue_2) 200 0
		}
		es_delayed server_var(knifep3n_beacon_rate) es_xdoblock knifep3n/beacon
	}
}

block slap
{
	es_xset knifep3n_slapping_now 1
	es_xset knifep3n_slap_health 0
	es playerget health knifep3n_slap_health server_var(knifep3n_player1)
	es_xset slaphoriz 0
	es_xset slapvert 0
	es_xrand slaphoriz 200 900
	es_xrand slapvert 200 400
	es playerset health server_var(knifep3n_player1) 500
	es playerset push server_var(knifep3n_player1) server_var(slaphoriz) server_var(slapvert) 1
	es_xdelayed 2 es playerset health server_var(knifep3n_player1) server_var(knifep3n_slap_health)
	es_xdelayed 2 es_xset knifep3n_slapping_now 0

}

block slapbot
{
	es_xset knifep3n_slapping_now 1
	es_xset knifep3n_slap_health 0
	es playerget health knifep3n_slap_health server_var(knifep3n_player1)
	es_xset slaphoriz 0
	es_xset slapvert 0
	es_xrand slaphoriz 200 900
	es_xrand slapvert 200 400
	es playerset health server_var(knifep3n_player1) 500
	es playerset push server_var(knifep3n_player1) server_var(slaphoriz) server_var(slapvert) 1
	es_xdelayed 2 es playerset health server_var(knifep3n_player1) server_var(knifep3n_slap_health)
	es_xdelayed 2 es_xset knifep3n_slapping_now 0
}

block knife_countdown
{
	es_xmath knifep3n_time_limitr - 1
	if (server_var(knifep3n_time_limitr) == 0) then es_xdoblock knifep3n/knife_over
	if (server_var(knifep3n_over) == 1) then es_xset knifep3n_time_limitr 0
	es_centermsg Knife Battle: server_var(knifep3n_time_limitr) seconds left
	if (server_var(knifep3n_time_limitr) > 0) then es_xdelayed 1 es_xdoblock knifep3n/knife_countdown
}

block knife_over
{
	es_xset knifep3n_f1_health 0
	es_xset knifep3n_f2_health 0
	es_xset _count 1
	es playerget health knifep3n_f1_health server_var(knifep3n_player1)
	es playerget health knifep3n_f2_health server_var(knifep3n_player2)
	if (server_var(knifep3n_f1_health) != server_var(knifep3n_f2_health)) do
	{
		if (server_var(knifep3n_f1_health) > server_var(knifep3n_f2_health)) do
		{
			es_xset _name 0
			es_getplayername _name server_var(knifep3n_player2)
			if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#green server_var(_name) #lightgreenis a chicken!
			es_sexec server_var(knifep3n_player2) kill
		}
		else do
		{
			es_xset _name 0
			es_getplayername _name server_var(knifep3n_player1)
			if (server_var(knifep3n_chat_filter) != 2) then es_msg #multi [#greenKnifeP3N#default]#green server_var(_name) #lightgreenis a chicken!
			es_sexec server_var(knifep3n_player1) kill
		}
	}
	else do
	{
		es_xdelayed 0.2 foreach player tempuserid #alive "es_sexec server_var(tempuserid) kill"
		if (server_var(knifep3n_chat_filter) != 2) then es_xmsg #multi [#greenKnifeP3N#default]#lightgreen Why don't you fight, chickens?
		es_xset knifep3n_chickens 1
	}
	ifx true(knifep3n_sounds_no) do
	{
		es_cexec_all play server_var(knifep3n_sounds_no)
	}
}

block lameplayer
{
	es_delayed 1.4 es playerset health event_var(userid) server_var(knifep3n_lame_health)
	es_tell event_var(userid) #multi #green[KnifeP3N]#lightgreen You won't do that again!
}

block playerknifespawn
{
	if (server_var(knifep3n_keep_weapons) == 1) do
	{
		es_xset knifep3n_bomb 0
		es_xset knifep3n_def 0
		es_delayed 1.1 es playerget c4 knifep3n_bomb event_var(userid)
		es_delayed 1.1 es playerget defuser knifep3n_def event_var(userid)
		es_delayed 1.2 es_give event_var(userid) player_weaponstrip
		es_delayed 1.2 es_fire event_var(userid) player_weaponstrip Strip 1
		es_delayed 1.4 es_give event_var(userid) item_assaultsuit
		es_delayed 1.4 es_give event_var(userid) weapon_knife
		if (server_var(knifep3n_f1_primary) != 0) then es_delayed 1.4 es_give event_var(userid) server_var(knifep3n_f1_primary)
		if (server_var(knifep3n_f1_secondary) != 0) then es_delayed 1.4 es_give event_var(userid) server_var(knifep3n_f1_secondary)
		if (server_var(knifep3n_f1_he) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_grenade
		if (server_var(knifep3n_f1_smoke) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_smokegrenade
		if (server_var(knifep3n_f1_flash) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_flashbang
		if (server_var(knifep3n_f2_primary) != 0) then es_delayed 1.4 es_give event_var(userid) server_var(knifep3n_f2_primary)
		if (server_var(knifep3n_f2_secondary) != 0) then es_delayed 1.4 es_give event_var(userid) server_var(knifep3n_f2_secondary)
		if (server_var(knifep3n_f2_he) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_grenade
		if (server_var(knifep3n_f2_smoke) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_smokegrenade
		if (server_var(knifep3n_f2_flash) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_flashbang
		if (server_var(knifep3n_def) == 1) then es_delayed 1.4 es playerset defuser event_var(userid) 1
		if (server_var(knifep3n_bomb) == 1) then es_delayed 1.4 es_give event_var(userid) weapon_c4
	}

	// Predator Skin
	if (server_var(knifep3n_skin) == 1) do
	{
		if (server_var(knifep3n_fighter_steamid) != "BOT") do
		{
			es_xcexec_all play ql/predator.mp3
			if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_username) is the#green Predator#lightgreen!
			es_delayed 3 es_centermsg Look out event_var(es_username) is the Predator!
			es_delayed 4 es_centermsg Look out event_var(es_username) is the Predator!
		}
	}

	es_xset _tmpcash 0
	es playerget cash _tmpcash event_var(userid)
	es_math _tmpcash + server_var(knifep3n_cash)
	if (server_var(_tmpcash) > 16000) then es_xset _tmpcash 16000
	if (server_var(knifep3n_award_money) == 1) then es_delayed 1.4 es playerset cash event_var(userid) server_var(_tmpcash)
	if (server_var(knifep3n_award_health) == 1) then es_delayed 1.4 es playerset health event_var(userid) server_var(knifep3n_health)
	if (server_var(knifep3n_award_speed) == 1) then es_delayed 1.4 es playerset speed event_var(userid) server_var(knifep3n_speed)
	if (server_var(knifep3n_chat_filter) == 0) then es_msg #multi [#greenKnifeP3N#default]#lightgreen event_var(es_username) has the powers of a knife fighter!!
	es_centermsg Look out, event_var(es_username) has the powers of a knife fighter!!
	es_delayed 1 es_centermsg Look out, event_var(es_username) has the powers of a knife fighter!!
	es_delayed 2 es_centermsg Look out, event_var(es_username) has the powers of a knife fighter!!
}

block resetplayer
{
	if (server_var(knifep3n_player1) != 0) then es playerset speed server_var(knifep3n_player1) 1
	if (server_var(knifep3n_player2) != 0) then es playerset speed server_var(knifep3n_player2) 1
}

block chickenout
{
	if (server_var(knifep3n_dec) > 0) do
	{
		es playerset color server_var(_popup_userid) server_var(knifep3n_chicken_red) server_var(knifep3n_chicken_green) server_var(knifep3n_chicken_blue) 255
		es playerset speed server_var(_popup_userid) server_var(knifep3n_chicken_speed)
		es_xdelayed 2 es_xdoblock knifep3n/chickenoutsound
	}
}

block chickenoutsound
{
	ifx true(knifep3n_sounds_no) do
	{
		es_emitsound player server_var(_popup_userid) server_var(knifep3n_sounds_no) 0.7 0.5
	}
	es_xset chirand 0
	es_xrand chirand 1 8
	if (server_var(knifep3n_dec) > 0) then es_delayed server_var(chirand) es_xdoblock knifep3n/chickenoutsound
}