Raised This Month: $51 Target: $400
 12% 

Solved Error in compiling.Error 54: unmatched closing brace


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Tatsuo
Member
Join Date: Dec 2017
Location: Secret
Old 03-27-2018 , 09:43   Error in compiling.Error 54: unmatched closing brace
Reply With Quote #1

I can not compile sma because this error 54: unmatched closing brace! Help

Last edited by Tatsuo; 03-27-2018 at 10:50.
Tatsuo is offline
E1_531G
Senior Member
Join Date: Dec 2017
Old 03-27-2018 , 09:50   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #2

And?
Just close the brace!
__________________
My English is A0
E1_531G is offline
Tatsuo
Member
Join Date: Dec 2017
Location: Secret
Old 03-27-2018 , 09:53   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #3

How close the brace?
Tatsuo is offline
Tatsuo
Member
Join Date: Dec 2017
Location: Secret
Old 03-27-2018 , 09:54   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #4

What brace?
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "DeathRun Duel"
#define VERSION "2.5.1"
#define AUTHOR "KoIIIak"
#define PREFIX "^1[^4Дуэль^1]"

#define is_valid_player(%1) (1 <= %1 <= 32)

#define GODTID 100500
#define TIMERTID 100501
#define TIMER2TID 100502
#define INFORMERTID 100503
#define WAITTIMERTID 100504
#define MCOUNT 6
#define DCOUNT 12
#define SCOUNT 20
#define DAMMO 1
#define DAMMO1 0
#define KWPN "world"
#define KHS 1
#define MENUBODY 1024
#define MAXORIGINS 2
#define MAXWORDS 100

new MyStavkaCt[33] = false
new MyStavkaTt[33] = false
new OpenMenuStavki[33] = false
new Ctdengi = 0
new Tdengi = 0
new Mydengi[33] = 0
new SecondTimerStavki[33]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

new AttackCt = 0
new AttackTt = 0
new TimerAutoBoom

new MaxPlayers
new ChoosedDuel
new DuelNum
new SayText
new BeaconSprite
new CounterID
new TerroristID
new MathAnswer
new RussianRouletteID
new RussianRouletteBullet
new Index
new Timer
new OriginsNum
new WordsNum

new g_MsgHud1
new g_MsgHud2
new g_MsgHud3

new PcvarDuels
new PcvarMusic
new PcvarTimer
new PcvarTimeLimit
new PcvarSpawnGod
new PcvarEffects
new PcvarInformer
new PcvarLastMenu
new PcvarWait
new PcvarMode
new PcvarTele

new MenuPosition[33]
new MenuTs[33]
new RussianRouletteName[64]
new MathTask[64]
new ConfigsDir[64]
new WordsFile[64]
new OriginsFile[128]
new WordAnswer[128]

new MenuBody[MENUBODY + 1]

new bool:Last
new bool:Duel
new bool:FPage
new bool:TouchWeapons[33]
new bool:Once[33]
new bool:InDuel[33]
new bool:Knife[33]
new bool:Deagle[33]
new bool:Grenade[33]
new bool:Scout[33]
new bool:Drob[33]
new bool:Awp[33]
new bool:Math[33]
new bool:Word[33]
new bool:RussianRoulette[33]
new bool:Used[33]
new bool:Boom[33]
new bool:NotYou[33]
new bool:DoIt[33]
new bool:Start[33]
new bool:Spray[33]
new bool:Guntoss[33]
new bool:Famas[33]
new bool:give_scout[33]
new timer[33]

new Origins[MAXORIGINS][128]
new Words[MAXWORDS][192]


new Duels[DCOUNT][] =
{
	"DUEL_1",
	"DUEL_2",
	"DUEL_3",
	"DUEL_4",
	"DUEL_5",
	"DUEL_6",
	"DUEL_7",
	"DUEL_8",
	"DUEL_9",
	"DUEL_10",
	"DUEL_11",
	"DUEL_12"
}

new Sound[SCOUNT][] =
{
	"fvox/one",
	"fvox/two",
	"fvox/three",
	"fvox/four",
	"fvox/five",
	"fvox/six",
	"fvox/seven",
	"fvox/eight",
	"fvox/nine",
	"fvox/ten",
	"fvox/eleven",
	"fvox/twelve",
	"fvox/thirteen",
	"fvox/fourteen",
	"fvox/fifteen",
	"fvox/sixteen",
	"fvox/seventeen",
	"fvox/eighteen",
	"fvox/nineteen",
	"fvox/twenty"
}
/*================================================================================
	Загрузка плагина
=================================================================================*/
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
	register_event("Damage","DamageEvent","b","2!0","3=0","4!0")
	register_logevent("RoundEnd", 2, "1=Round_End")
	RegisterHam(Ham_Touch, "weaponbox", "TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "TouchWeapon")
	RegisterHam(Ham_TakeDamage, "player", "UserTakeDamage")
	RegisterHam(Ham_Touch, "weapon_shield", "TouchWeapon")
	RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
	RegisterHam(Ham_Killed, "player", "PlayerKilled")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_m3","HamAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_famas","HamAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_deagle","HamAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_ak47","HamAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_awp","HamAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_scout","HamAttack")
	register_forward(FM_CmdStart,"CmdStart",1)
	register_forward(FM_UpdateClientData, "UpdateClientData", 1)
	register_clcmd("say /duel", "CmdDuelsMenu")
	register_clcmd("say /dd", "CmdDuelsMenu")
	register_clcmd("say_team /duel", "CmdDuelsMenu")
	register_clcmd("say_team /dd", "CmdDuelsMenu")
	register_clcmd("deathrun_duels", "CmdDuelsMenu")
	register_clcmd("say", "hooksay")
	register_clcmd("say_team", "hooksay_team")
	register_clcmd("say /scoutgsdfhdfhfgdhdf", "GiveScout")
	register_clcmd("drop", "HookDrop")
	register_concmd("dd_origin_menu", "CmdOriginsMenu", ADMIN_RCON)
	PcvarDuels = register_cvar("dd_duels", "abcdefg")
	PcvarMusic = register_cvar("dd_music", "1")
	PcvarTimer = register_cvar("dd_timer", "0")
	PcvarTimeLimit = register_cvar("dd_timelimit", "120")
	PcvarSpawnGod = register_cvar("dd_spawngod", "1")
	PcvarEffects = register_cvar("dd_effects", "3")
	PcvarWait = register_cvar("dd_wait", "5")
	PcvarInformer = register_cvar("dd_informer", "0")
	PcvarLastMenu = register_cvar("dd_lastmenu", "1")
	PcvarTele = register_cvar("dd_teleport", "1")
	PcvarMode = register_cvar("deathrun_mode", "NONE", FCVAR_SERVER)
	register_cvar("DeathRun Duel", "2.5.1", FCVAR_SERVER|FCVAR_SPONLY)
	register_menucmd(register_menuid("Duels Menu"), MENUBODY - 1, "ActionDuelsMenu")
	register_menucmd(register_menuid("Enemy Menu"), MENUBODY - 1, "ActionEnemyMenu")
	register_menucmd(register_menuid("Roulette Menu"), MENUBODY - 1, "ActionRussianRouletteMenu")
	register_menucmd(register_menuid("Last Menu"), MENUBODY - 1, "ActionLastMenu")
	register_menucmd(register_menuid("Origins Menu"), MENUBODY - 1, "ActionOriginsMenu")
	register_menu("Menu 1", keys, "menus1")
	SayText = get_user_msgid("SayText")
	MaxPlayers = get_maxplayers()
	g_MsgHud1 = CreateHudSyncObj()
	g_MsgHud2 = CreateHudSyncObj()
	g_MsgHud3 = CreateHudSyncObj()
	register_dictionary("deathrun_duels.txt")
	set_task(1.0, "Informer", INFORMERTID, "", 0, "b")
	server_cmd("dd_wait 20")
	server_cmd("dd_timer 1")
	return PLUGIN_CONTINUE
}
/*================================================================================
	Закачки плагина
=================================================================================*/
public plugin_precache() 
{
	BeaconSprite = precache_model("sprites/shockwave.spr")
	get_configsdir(ConfigsDir, charsmax(ConfigsDir))
	format(WordsFile, charsmax(WordsFile), "%s/deathrun_duels.ini", ConfigsDir)
	new cmap[32], Len, dddir[128]
	format(dddir, 127, "%s/deathrun_duels", ConfigsDir)
	if(!dir_exists(dddir))
	{
		mkdir(dddir)
	}
	get_mapname(cmap, 31)
	format(OriginsFile, charsmax(OriginsFile), "%s/deathrun_duels/%s.ini", ConfigsDir, cmap)
	new i = 0
	if(file_exists(WordsFile))
	{
		while(i < MAXWORDS && read_file(WordsFile, i , Words[WordsNum], 191, Len))
		{
			i++
			if(Words[WordsNum][0] == ';' || Len == 0)
			{
				continue
			}
			WordsNum++
		}
	}
	i = 0
	if(file_exists(OriginsFile))
	{
		while(i < MAXORIGINS && read_file(OriginsFile, i ,Origins[OriginsNum], 127, Len))
		{
			i++
			if(Origins[OriginsNum][0] == ';' || Len == 0)
			{
				continue
			}
			OriginsNum++
		}
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Начало раунда
=================================================================================*/
public RoundStart()
{
	for (new id = 1; id <= MaxPlayers; id++)
	{
		if(is_user_alive(id) && is_user_connected(id))
		{
			give_scout[id] = false
		}
	}

	Duel = false
	Last = false
	server_cmd("bh_enabled 1")
        server_cmd("vampir_regenhp 1")
        server_cmd("dr_rembo 1")
        server_cmd("drshop_enable 1")
	server_cmd("trigger_hurt 0")
	if(get_pcvar_num(PcvarTimer))
	{
		remove_task(TIMERTID)
	}
	remove_task(TIMER2TID)
	remove_task(WAITTIMERTID)
	return PLUGIN_CONTINUE
}

/*================================================================================
	Выбрасывание оружия
=================================================================================*/
public HookDrop(id)
{
	if(Duel)
	{
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}

/*================================================================================
	Конец раунда
=================================================================================*/
public RoundEnd()
{
	if(get_pcvar_num(PcvarMusic))
	{
		client_cmd(0, "cd fadeout")
	}
	if(get_pcvar_num(PcvarTimer))
	{
		remove_task(TIMERTID)
	}
	remove_task(TIMER2TID)
	remove_task(WAITTIMERTID)
	server_cmd("sm_enabled 1")
	server_cmd("trigger_hurt 0")
	remove_task(42314)
	return PLUGIN_CONTINUE
}

/*================================================================================
	Получение урона
=================================================================================*/

public UserTakeDamage ( victim, weapon, attacker, Float:damage, damagebits )
{
	if(get_user_team(attacker) == get_user_team(victim) || !is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
	return HAM_IGNORED
	
	if(Duel)
	{
		if((attacker == CounterID || attacker == TerroristID) && (victim == TerroristID || victim == CounterID))
		{
			return HAM_IGNORED
		}
		else if((attacker != CounterID || attacker != TerroristID) && (victim == TerroristID || victim == CounterID))
		{
			return HAM_SUPERCEDE
		}
	}
	return HAM_IGNORED
}
/*================================================================================
	Возрождение игрока
=================================================================================*/
public PlayerSpawn(id)
{
	if(!is_user_alive(id) || !cs_get_user_team(id) || is_user_bot(id))
	{
		return PLUGIN_CONTINUE
	}
	if(get_pcvar_num(PcvarSpawnGod))
	{
		set_pev(id, pev_takedamage, 0)
		set_task(3.0, "GodOff", id + GODTID)
	}
	set_user_rendering(id)
	remove_task(id)
	TouchWeapons[id] = false
	Once[id] = false
	Knife[id] = false
	Deagle[id] = false
	Grenade[id] = false
	Scout[id] = false
	Drob[id] = false
	Awp[id] = false
	Math[id] = false
	Word[id] = false
	RussianRoulette[id] = false
	Used[id] = false
	NotYou[id] = false
	DoIt[id] = false
	Start[id] = false
	Spray[id] = false
	Guntoss[id] = false
	InDuel[id] = false
	Famas[id] = false
	if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
	{
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}	
/*================================================================================
	Касание к оружию
=================================================================================*/
public TouchWeapon(weapon, id)
{
	if(!is_user_connected(id))
	{
		return HAM_IGNORED
	}
	if(TouchWeapons[id] || cs_get_user_team(id) == CS_TEAM_T)
	{
		return HAM_SUPERCEDE
	}
	return HAM_IGNORED
}
/*================================================================================
	Использование комманд (отлов выстрела)
=================================================================================*/
public CmdStart(player, uc_handle, random_seed)
{
	if(!is_user_alive(player) || player < 1 || player > 32)
	{
		return FMRES_IGNORED
	}
	new Buttons = get_uc(uc_handle, UC_Buttons)
	if(Buttons & IN_ATTACK && Used[player])
	{
		if(Famas[player] && get_user_weapon(player, _, _) == CSW_FAMAS)
		{
			new wEnt = fm_find_ent_by_owner(-1, "weapon_famas", player);
			cs_set_weapon_burst(wEnt, 1)
		}
		if(!NotYou[player])
		{
			if(player == RussianRouletteID && DoIt[player])
			{	
				new id = player
				get_user_name(id, RussianRouletteName, 63)
				set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
				ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
				set_task(3.0, "RussianRouletteStop", id)
				DoIt[id] = false
				Start[id] = true
			}
			else if(player == RussianRouletteID && Start[player])
			{
				client_print(player, print_center, "%L", LANG_PLAYER, "RRWAIT")
			}
			else
			{
				client_print(player, print_center, "%L", LANG_PLAYER, "RRNOTYOU")
			}
		}
		else if(Boom[player])
		{
			get_user_name(player, RussianRouletteName, 63)
			set_hudmessage(255, 0, 0, -1.0, 0.2, 1, 1.0, 5.0, 1.0, 1.0, 4)
			ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRBOOM", RussianRouletteName)
			client_cmd(0, "spk weapons/deagle-1")
			set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
			DeathMsg(player, player, KHS, KWPN)
			Kill(player)
			Used[CounterID] = false
			Used[TerroristID] = false
		}
		else if(!Boom[player])
		{
			if(player == CounterID)
			{
				get_user_name(TerroristID, RussianRouletteName, 63)
				RussianRouletteMenu(TerroristID)
				NotYou[player] = false
				DoIt[TerroristID] = true
				RussianRouletteID = TerroristID
			}
			else if(player == TerroristID)
			{
				get_user_name(CounterID, RussianRouletteName, 63)
				RussianRouletteMenu(CounterID)
				NotYou[player] = false
				DoIt[CounterID] = true
				RussianRouletteID = CounterID
			}
			set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 3.0, 0.5, 0.5, 4)
			ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRNOTBOOM", RussianRouletteName)
			client_cmd(0, "spk weapons/dryfire_pistol")
		}
		Buttons &= ~IN_ATTACK
		set_uc(uc_handle, UC_Buttons, Buttons)
	}
	return FMRES_HANDLED
}
public UpdateClientData(id, sendweapons, cd_handle)
{
	if(!is_user_alive(id))
	{
		return FMRES_IGNORED
	}
	if(Used[id] && InDuel[id])
	{
		set_cd(cd_handle, CD_ID, 0)
	}
	
	return FMRES_HANDLED
}
/*================================================================================
	Смерть игрока
=================================================================================*/
public PlayerKilled(victim, attacker)
{
	if(victim <= 0 || attacker <= 0 || victim >= 33 || attacker >= 33)
	{
		return PLUGIN_HANDLED
	}
	if(Duel)
	{
		remove_task(42314)
		if(cs_get_user_team(victim) == CS_TEAM_CT && InDuel[victim])
		{
			if(RussianRoulette[victim] || Math[victim] || Word[victim])
			{
				if(victim == CounterID)
				{
					attacker = TerroristID
				}
				else if(victim == TerroristID)
				{
					attacker = CounterID
				}
				TouchWeapons[attacker] = false
				Once[attacker] = false
				Knife[attacker] = false
				Deagle[attacker] = false
				Grenade[attacker] = false
				Scout[attacker] = false
				Drob[attacker] = false
				Awp[attacker] = false
				Math[attacker] = false
				Word[attacker] = false
				RussianRoulette[attacker] = false
				Used[attacker] = false
				NotYou[attacker] = false
				DoIt[attacker] = false
				Start[attacker] = false
				Spray[attacker] = false
				Guntoss[attacker] = false
				InDuel[attacker] = false
				Famas[attacker] = false
				Duel = false
			}
		}
		if(attacker == TerroristID && victim == CounterID)
		{
			for(new ii = 1; ii <= get_maxplayers(); ii++)
			{
				if(is_user_connected(ii) && !is_user_alive(ii))
				{
					go_present_tt_stavki(ii)
				}
			}
		}
		if(attacker == CounterID && victim == TerroristID)
		{
			for(new ii = 1; ii <= get_maxplayers(); ii++)
			{
				if(is_user_connected(ii) && !is_user_alive(ii))
				{
					go_present_ct_stavki(ii)
				}
			}
		}
	}
	remove_task(attacker)
	remove_task(victim)
	return PLUGIN_CONTINUE
}

public GiveScout(id)
{
	if(is_user_alive(id) && !give_scout[id] && !Duel)
    	{
        	strip_user_weapons(id)
        	give_item(id,"weapon_knife")
       
        	new weapon = give_item(id, "weapon_scout")
        	if(weapon > 0)
            	cs_set_weapon_ammo(weapon, 0)
       
        	give_scout[id] = true
    	}
	return PLUGIN_HANDLED
}

/*================================================================================
	Команда открытия меню дуэлей
=================================================================================*/
public CmdDuelsMenu(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED
	}
	if (!Once[id])
	{
		if(cs_get_user_team(id) == CS_TEAM_CT)
		{
			new CTsNum = GetCTsNum(1)
			new TsNum = GetTsNum(1)
			if(CTsNum == 1 && TsNum >= 1)
			{
				DuelsMenu(id, MenuPosition[id] = 0)
			}
			else if(TsNum < 1)
			{
				ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"NOT_TS")
			}
			else if(CTsNum > 1)
			{
				ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"ONLY_LAST")
			}
		}
		else
		{
			ChatColor(id, "%s %L", PREFIX, LANG_PLAYER, "ONLY_CTS")
		}
	}
	return PLUGIN_HANDLED
}

/*================================================================================
	Меню дуэлей
=================================================================================*/
public DuelsMenu(id, position)
{
	if(position < 0)
	{
		return
	}
	FPage = false
	new DuelsNum = GetFlagsNum(PcvarDuels)
	new Flags = GetFlags(PcvarDuels)
	new MenuStart = position * 8
	if(MenuStart >= DuelsNum)
	{
		MenuStart = position = MenuPosition[id]
	}
	new MenuEnd = position * 8 + 8
	if(MenuEnd >= DuelsNum && position != 0)
	{
		MenuEnd = DuelsNum
	}
	else if(MenuEnd >= DuelsNum && position == 0)
	{
		MenuEnd = DCOUNT
		FPage = true
	}
	new Keys = MENU_KEY_0
	new Len
	new b
	Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_DUEL")
	for(new a = MenuStart; a < MenuEnd; a++)
	{
		if(Flags & (1 << a))
		{
			Keys |= (1 << b)
			Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%L^n", ++b, LANG_PLAYER, Duels[a])
		}
		else
		{
			continue
		}
	}
	if(MenuEnd != DuelsNum && !FPage)
	{
		Keys |= MENU_KEY_9
		Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
	}
	else
	{
		Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
	}
	show_menu(id, Keys, MenuBody, -1, "Duels Menu")
}
/*================================================================================
	Действие меню дуэлей
=================================================================================*/
public ActionDuelsMenu(id, key)
{
	switch(key)
	{
		case 8:
		{
			DuelsMenu(id, ++MenuPosition[id])
		}
		case 9:
		{
			DuelsMenu(id, --MenuPosition[id])
		}
		default:
		{
			if(GetTsNum(1) || GetCTsNum(1) == 1|| is_user_alive(id))
			{
				ChoosedDuel = MenuPosition[id] * 8 + key
				EnemyMenu(id, MenuPosition[id] = 0)
			}
		}
	}	
}
/*================================================================================
	Меню выбора противника
=================================================================================*/
public EnemyMenu(id, position)
{
	if(position < 0)
	{
		return
	}
	new TsNum = 0
	for(new aid = 1; aid <= MaxPlayers; aid++)
	{
		if(is_user_connected(aid) && is_user_alive(aid) && cs_get_user_team(aid) == CS_TEAM_T && !is_user_bot(aid))
		{
			MenuTs[TsNum++] = aid
		}
	}
	new MenuStart = position * 8
	if(MenuStart >= TsNum)
	{
		MenuStart = position = MenuPosition[id]
	}
	new MenuEnd = position + 8
	if(MenuEnd > TsNum)
	{
		MenuEnd = TsNum
	}
	new Keys = MENU_KEY_0
	new Len
	new b = 0
	new Names[32]
	Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_ENEMY")
	for(new a = MenuStart; a < MenuEnd; a++)
	{
		get_user_name(MenuTs[a], Names, 31)
		Keys |= (1 << b)
		Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%s^n", ++b, Names)
	}
	if(MenuEnd != TsNum)
	{
		Keys |= MENU_KEY_9
		Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n\y%s v%s", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT", PLUGIN, VERSION, AUTHOR)
	}
	else
	{
		Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
	}
	show_menu(id, Keys, MenuBody, -1, "Enemy Menu")
}
/*================================================================================
	Действие выбора противника
=================================================================================*/
public ActionEnemyMenu(id, key)
{
	switch(key)
	{
		case 8:
		{
			EnemyMenu(id, ++MenuPosition[id])
		}
		case 9:
		{
			EnemyMenu(id, --MenuPosition[id])
		}
		default:
		{
			if(GetTsNum(1) || GetCTsNum(1) == 1 || is_user_alive(id))
			{
				new Choosed = MenuPosition[id] * 8 + key
				new Enemy = MenuTs[Choosed]
				StartDuel(id, Enemy)
                                server_cmd("bh_enabled 0")
                                server_cmd("vampir_regenhp 0")
                                server_cmd("dr_free 0")
                                server_cmd("dr_invis 0")
                                server_cmd("dr_kHonku 0")
                                server_cmd("dr_rembo 0")
                                server_cmd("drshop_enable 0")
			}
		}
	}	
}
#define authorstavok	BlackSmoke
public CmdOriginsMenu(id, level, cid)
{
	if(!cmd_access(id, level, cid, 1))
	{
		return PLUGIN_HANDLED
	}
	else
	{
		ShowOriginsMenu(id)
	}
	return PLUGIN_CONTINUE
}

public ShowOriginsMenu(id)
{
	new Keys = MENU_KEY_0
	new Len
	Len = format(MenuBody, MENUBODY, "\y%L^n^n", id, "ORIGINS_TITLE")
	Keys |= (1 << 0)
	Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", id, "SAVE_POSITION")
	Keys |= (1 << 1)
	Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", id, "DELETE_POSITIONS")
	Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", id, "DD_MENU_EXIT")
	show_menu(id, Keys, MenuBody, -1, "Origins Menu")
	return PLUGIN_CONTINUE
}

public ActionOriginsMenu(id, key)
{
	switch(key)
	{
		case 0:
		{
			new  vec[3]
			get_user_origin(id, vec)
			add_spawn(vec)
			client_print(id, print_center, "*** Сохраненно ***")
			ShowOriginsMenu(id)
		}
		case 1:
		{
			if(file_exists(OriginsFile))
			{
				delete_file(OriginsFile)
				client_print(id, print_center, "*** Удаленно ***")
				ShowOriginsMenu(id)
			}
		}
	}
	return PLUGIN_CONTINUE
}

public add_spawn(vecs[3])
{
	new Line[128]
	format(Line, 127, "%d %d %d",vecs[0], vecs[1], vecs[2])
	write_file(OriginsFile, Line)
	return PLUGIN_CONTINUE
}

public SetOrigins(ctid, terid)
{
	if(!file_exists(OriginsFile) || !get_pcvar_num(PcvarTele))
	{
		return PLUGIN_CONTINUE
	}
	new pos[4][8]
	parse(Origins[0], pos[1], 7, pos[2], 7, pos[3], 7)
	new Vec[3]
	Vec[0] = str_to_num(pos[1])
	Vec[1] = str_to_num(pos[2])
	Vec[2] = str_to_num(pos[3])
	set_user_origin(ctid, Vec)
	parse(Origins[1], pos[1], 7, pos[2], 7, pos[3], 7)
	Vec[0] = str_to_num(pos[1])
	Vec[1] = str_to_num(pos[2])
	Vec[2] = str_to_num(pos[3])
	set_user_origin(terid, Vec)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Начало дуэли
=================================================================================*/
public StartDuel(id, tempid)
{
	if(!GetTsNum(1) || GetCTsNum(1) > 1|| !is_user_alive(tempid) || !is_user_alive(id) || cs_get_user_team(tempid) != CS_TEAM_T || cs_get_user_team(id) != CS_TEAM_CT || !is_user_connected(tempid) || !is_user_connected(id) || is_user_bot(id) || is_user_bot(tempid))
	{
		return PLUGIN_HANDLED
	}
        server_cmd("deathrun_shop 0")
	new challenger[32], challenged[32]
	get_user_name(id, challenger, 31)
	get_user_name(tempid, challenged, 31)
	strip_user_weapons(id)
	strip_user_weapons(tempid)
	set_user_health(id, 100)
	set_user_health(tempid, 100)
	set_user_gravity(id, 1.0)
	set_user_gravity(tempid, 1.0)
	set_user_maxspeed(id, 0.0)
	set_user_maxspeed(tempid, 0.0)
	cs_reset_user_model(id)
	cs_reset_user_model(tempid)
	switch(get_pcvar_num(PcvarEffects))
	{
		case 1:
		{
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)	
			set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
		}
		case 2:
		{
			set_task(1.0, "Beacon", id)
			set_task(1.0, "Beacon", tempid)
		}
		case 3:
		{
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)	
			set_task(1.0, "Beacon", id)
			set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
			set_task(1.0, "Beacon", tempid)
		}
	}
	SettingStavki()
	InDuel[tempid] = true
	InDuel[id] = true
	Once[id] = true 
	set_lights("#OFF")
	TouchWeapons[id] = true
	TouchWeapons[tempid] = true
	CounterID = id
	TerroristID = tempid
	Timer = get_pcvar_num(PcvarWait)
	Index = get_pcvar_num(PcvarTimeLimit) + 1
	set_pcvar_string(PcvarMode, "DUEL")
	new Flags = GetFlags(PcvarDuels)
	DuelNum = 0
	new DuelIndex
	while(DuelIndex <= ChoosedDuel)
	{
		if(Flags & (1 << DuelNum))
		{
			DuelIndex++
		}
		DuelNum ++
	}
	SetOrigins(id, tempid)
	switch(DuelNum)
	{
		case 1:
		{
			Knife[id] = true
			Knife[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Резать можно без очереди");
                        set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 2:
		{
			Deagle[id] = true
			Deagle[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED 
		}
		case 3:
		{
			Grenade[id] = true
			Grenade[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Кидать можно без очереди");
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 4:
		{
			Scout[id] = true
			Scout[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!"); 
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 5:
		{
			Drob[id] = true
			Drob[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!"); 
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 6:
		{
			Awp[id] = true
			Awp[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!"); 
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 7:
		{
			Famas[id] = true
			Famas[tempid] = true
			Duel = true
			set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5); 
			show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
			set_task(0.1, "StartWait", WAITTIMERTID)
			return PLUGIN_HANDLED
		}
		case 8:
		{
			RussianRoulette[id] = true
			RussianRoulette[tempid] = true
			Duel = true
			RussianRouletteBullet = random_num(1, 3)
			StartRussianRoulette(id, tempid)
			if(get_pcvar_num(PcvarMusic))
			{
				client_cmd(0, "mp3volume 0.5")
			}
			return PLUGIN_HANDLED
		}
		case 9:
		{
			Math[id] = true
			Math[tempid] = true
			Duel = true
			StartMathDuel(id, tempid)
			return PLUGIN_HANDLED
		}
		case 10:
		{
			Word[id] = true
			Word[tempid] = true
			Duel = true
			StartWordDuel(id, tempid)
			return PLUGIN_HANDLED
		}
		case 11:
		{
			Spray[id] = true
			Spray[tempid] = true
			Duel = true
			give_item(id, "weapon_knife")	
			give_item(tempid, "weapon_knife")
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY1", challenger, challenged) 
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY2") 
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY3", challenger) 
		}
		case 12:
		{
			Guntoss[id] = true
			Guntoss[tempid] = true
			Duel = true
			give_item(id, "weapon_knife")	
			give_item(tempid, "weapon_knife")
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS1", challenger, challenged) 
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS2") 
			ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS3", challenger) 
		}
	}
	if(get_pcvar_num(PcvarMusic))
	{
		client_cmd(0, "mp3volume 0.5")
	}
	if(get_pcvar_num(PcvarTimer))
	{
		set_task(0.2, "DuelTimer", TIMERTID)
	}
	Duel = true
	return PLUGIN_HANDLED
}
/*================================================================================
	Таймер
=================================================================================*/
public DuelTimer()
{
	new t_name[33], ct_name[33]
	get_user_name(CounterID, ct_name, 31)
	get_user_name(TerroristID, t_name, 31)
	Index--
	if(Index > 60)
	{
		set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
		if(Math[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
		}
		else if(Word[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
		}
		else 
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
		}
		set_task(1.0, "DuelTimer", TIMERTID)
	}
	else if(60 >= Index >= 46)
	{
		set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
		if(Math[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
		}
		else if(Word[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
		}
		else 
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
		}
		set_task(1.0, "DuelTimer", TIMERTID)
	}
	else if(45 >= Index >= 31)
	{
		set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
		if(Math[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
		}
		else if(Word[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
		}
		else 
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
		}
		set_task(1.0, "DuelTimer", TIMERTID)
	}
	else if(30 >= Index >= 16)
	{
		set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
		if(Math[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
		}
		else if(Word[CounterID])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
		}
		else 
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
		}
		set_task(1.0, "DuelTimer", TIMERTID)
	}
	else if(Index <= 15)
	{
		set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
		if(Index > 0)
		{
			if(Math[CounterID])
			{
				ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
			}
			else if(Word[CounterID])
			{
				ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
			}
			else 
			{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
			}
		}
		else if(Index < 0)
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "NO_WINNER")
			Kill(CounterID)
			Kill(TerroristID)
			remove_task(TIMERTID)
			if(get_pcvar_num(PcvarMusic))
			{
				client_cmd(0, "cd fadeout")
			}
		}
		set_task(1.0, "DuelTimer", TIMERTID)
	}
	if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
	{
		remove_task(TIMERTID)
		if(get_pcvar_num(PcvarMusic))
		{
			client_cmd(0, "cd fadeout")
		}
	}
	return PLUGIN_CONTINUE
}

public DuelTimer2()
{
	set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 2)
	if(Math[CounterID])
	{
		ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", MathTask)
	}
	if(Word[TerroristID])
	{
		ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", WordAnswer)
	}
	set_task(1.0, "DuelTimer2", TIMER2TID)
	if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
	{
		remove_task(TIMER2TID)
		if(get_pcvar_num(PcvarMusic))
		{
			client_cmd(0, "cd fadeout")
		}
	}
}
/*================================================================================
	Математическая дуэль
=================================================================================*/
public StartMathDuel(ct, ter)
{
	new num1,num2,num3,num4,mode, ctname[64], tername[64]
	mode = random_num(0, 6)
	num1 = random_num(1, 100)
	num2 = random_num(1, 10)
	num3 = random_num(1, 100)
	num4 = random_num(1, 10)
	get_user_name(ct, ctname, 63)
	get_user_name(ter, tername, 63)
	switch(mode)
	{
		case 0:
		{
			format(MathTask, 63, "%d + %d + %d + %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 + num2 + num3 + num4
		}
		case 1:
		{
			format(MathTask, 63, "%d + %d + %d - %d = ?", num1,num2,num3,num4)
			MathAnswer = num1 + num2 + num3 - num4
		}
		case 2:
		{
			format(MathTask, 63, "%d + %d - %d + %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 + num2 - num3 + num4
		}
		case 3:
		{
			format(MathTask, 63, "%d - %d + %d + %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 - num2 + num3 + num4
		}
		case 4:
		{
			format(MathTask, 63, "%d + %d - %d - %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 + num2 - num3 - num4
		}
		case 5:
		{
			format(MathTask, 63, "%d - %d + %d - %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 - num2 + num3 - num4
		}
		case 6:
		{
			format(MathTask, 63, "%d - %d - %d + %d = ?", num1, num2, num3, num4)
			MathAnswer = num1 - num2 - num3 + num4
		}
	}
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH1", ctname, tername)
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH2")
	set_task(0.0, "StartWait", WAITTIMERTID)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Словесная дуэль
=================================================================================*/
public StartWordDuel(ct, ter)
{
	new ctname[64], tername[64]
	format(WordAnswer, charsmax(WordAnswer), "%s", Words[random_num(0, WordsNum)])
	get_user_name(ct, ctname, 63)
	get_user_name(ter, tername, 63)
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD1", ctname, tername)
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD2")
	set_task(0.0, "StartWait", WAITTIMERTID)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Ожидание дуэли
=================================================================================*/
public StartWait()
{
	set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 1.0, 1.0, _, _, 2)
	switch(DuelNum)
	{
		case 1:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "KNIFE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 2:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DEAGLE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 3:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "GRENADE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 4:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "SCOUT_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 5:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DROB_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 6:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "AWP_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 7:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "FAMAS_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 9:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "MATH_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
		case 10:
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "WORD_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
		}
	}
	Timer--
	client_cmd(0, "spk %s", Sound[Timer])
	if(Timer <= 0)
	{
		set_task(1.0, "StartGo")
	}
	else
	{
		set_task(1.0, "StartWait", WAITTIMERTID)
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Дуэль началась
=================================================================================*/
public StartGo()
{
	if(!is_user_alive(TerroristID) || !is_user_alive(CounterID) || !is_user_connected(TerroristID) || !is_user_connected(CounterID) || !is_valid_player(CounterID) || !is_valid_player(TerroristID))
	{
		return PLUGIN_HANDLED
	}
	switch(DuelNum)
	{
		case 1:
		{
			give_item(CounterID, "weapon_knife")
			give_item(TerroristID, "weapon_knife")	
		}
		case 2:
		{
			cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), DAMMO)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), DAMMO1)
		}
		case 3:
		{
			give_item(CounterID, "weapon_hegrenade")
			give_item(TerroristID, "weapon_hegrenade")
			cs_set_user_bpammo(CounterID, CSW_HEGRENADE, 100)		
			cs_set_user_bpammo(TerroristID, CSW_HEGRENADE, 100)
		}
		case 4:
		{
			cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), DAMMO)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), DAMMO1)
		}
		case 5:
		{
			cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), DAMMO)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), DAMMO1)
		}
		case 6:
		{
			cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), DAMMO)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), DAMMO1)
		}
		case 7:
		{
			cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), DAMMO)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), DAMMO1)
		}       
        }    
	if(get_pcvar_num(PcvarMusic))
	{
		client_cmd(0, "mp3volume 0.5")
	}
	if(get_pcvar_num(PcvarTimer))
	{
		set_task(0.2, "DuelTimer", TIMERTID)
	}
	else if(Math[CounterID] || Word[CounterID])
	{
		set_task(0.0, "DuelTimer2", TIMER2TID)
	}       
	SettingTurn()
        
	return PLUGIN_CONTINUE
}
/*================================================================================
	Старт русской рулетки
=================================================================================*/
public StartRussianRoulette(ct, ter)
{
	new ctname[64], tername[64]
	get_user_name(ct, ctname, 63)
	get_user_name(ter, tername, 63)
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR1", ctname, tername)
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR2")
	ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR3", ctname)
	set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 2.0, 0.5, 0.5, 4)
	ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRSTART", ctname, RussianRouletteBullet)
	RussianRouletteMenu(ct)
	Used[ct] = true
	Used[ter] = true
	NotYou[ct] = false
	NotYou[ter] = false
	RussianRouletteID = ct
	return PLUGIN_CONTINUE
}
/*================================================================================
	Меню русской рулетки
=================================================================================*/
public RussianRouletteMenu(id)
{
	new Len
	new Keys = MENU_KEY_0
	Len = format(MenuBody, MENUBODY - 1, "\y%L\w^n^n", LANG_PLAYER, "RRTITLE")
	Keys |= (1 << 0)
	Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n^n\y%s v%s", LANG_PLAYER, "RRDO", PLUGIN, VERSION, AUTHOR)
	DoIt[id] = true
	show_menu(id, Keys, MenuBody, -1, "Roulette Menu")
	return PLUGIN_CONTINUE
}
/*================================================================================
	Запуск барабана
=================================================================================*/
public ActionRussianRouletteMenu(id, Key)
{
	if(!DoIt[id])
	{
		return PLUGIN_HANDLED
	}
	get_user_name(id, RussianRouletteName, 63)
	set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
	ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
	set_task(3.0, "RussianRouletteStop", id)
	DoIt[id] = false
	Start[id] = true
	return PLUGIN_HANDLED
}
/*================================================================================
	Остановка барабана
=================================================================================*/
public RussianRouletteStop(id)
{
	new RuletteRandom
	RuletteRandom = random_num(1, 7)
	get_user_name(id, RussianRouletteName, 63)
	if(RussianRouletteBullet == 1 && RuletteRandom == 1)
	{
		Boom[id] = true
	}
	else if(RussianRouletteBullet == 2 && RuletteRandom == 2)
	{
		Boom[id] = true
	}
	else if(RussianRouletteBullet == 3 && RuletteRandom == 3)
	{
		Boom[id] = true
	}
	else
	{
		Boom[id] = false
	}
	NotYou[id] = true
	Start[id] = false
	set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
	ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRPRESS", RussianRouletteName)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Проверка ответа в общем чате
=================================================================================*/
public hooksay(id)
{
	if(!Math[id] && !Word[id])
	{
		return PLUGIN_CONTINUE
	}
	new Msg[256], smanswer[32], wname[32]
	read_args(Msg, 255)
	remove_quotes(Msg)
	num_to_str(MathAnswer, smanswer, 31)
	if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
	{
		if(get_pcvar_num(PcvarTimer))
		{
			remove_task(TIMERTID)
		}
		if(get_pcvar_num(PcvarMusic))
		{
			client_cmd(0, "cd fadeout")
		}
		get_user_name(id, wname, 31)
		//set_user_lifes(id, 1)
		set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
		if(Math[id])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
		}
		else if(Word[id])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
		}
		if(id == CounterID)
		{
			set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
			DeathMsg(CounterID, TerroristID, 1, KWPN)
			Kill(TerroristID)
		}
		else if(id == TerroristID)
		{
			set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
			DeathMsg(CounterID, TerroristID, 1, KWPN)
			Kill(CounterID)
		}
		Math[CounterID] = false
		Math[TerroristID] = false
		Word[CounterID] = false
		Word[TerroristID] = false
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Проверка ответа в командном чате
=================================================================================*/
public hooksay_team(id)
{
	if(!Math[id] && !Word[id])
	{
		return PLUGIN_CONTINUE
	}
	new Msg[256], smanswer[32], wname[32]
	read_args(Msg, 255)
	remove_quotes(Msg)
	num_to_str(MathAnswer, smanswer, 31)
	if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
	{
		if(get_pcvar_num(PcvarTimer))
		{
			remove_task(TIMERTID)
		}
		if(get_pcvar_num(PcvarMusic))
		{
			client_cmd(0, "cd fadeout")
		}
		get_user_name(id, wname, 31)
		//set_user_lifes(id, 1)
		set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
		if(Math[id])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
		}
		else if(Word[id])
		{
			ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
		}
		if(id == CounterID)
		{
			set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
			DeathMsg(CounterID, TerroristID, 1, KWPN)
			Kill(TerroristID)
		}
		else if(id == TerroristID)
		{
			set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
			DeathMsg(CounterID, TerroristID, 1, KWPN)
			Kill(CounterID)
		}
		Math[CounterID] = false
		Math[TerroristID] = false
		Word[CounterID] = false
		Word[TerroristID] = false
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Игрок покинул сервер
=================================================================================*/
public client_disconnect(id)
{
	remove_task(id)
	TouchWeapons[id] = false
	Once[id] = false
	Knife[id] = false
	Deagle[id] = false
	Grenade[id] = false
	Scout[id] = false
	Drob[id] = false
	Awp[id] = false
	Math[id] = false
	Word[id] = false
	RussianRoulette[id] = false
	Used[id] = false
	NotYou[id] = false
	DoIt[id] = false
	Start[id] = false
	Spray[id] = false
	Guntoss[id] = false
	InDuel[id] = false
	Famas[id] = false
	return PLUGIN_CONTINUE
}
/*================================================================================
	Выключение неуязвимости
=================================================================================*/
public GodOff(tskid)
{
	new id = tskid - GODTID
	set_pev(id, pev_takedamage, 1)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Информер
=================================================================================*/
public Informer()
{
	if(!get_pcvar_num(PcvarInformer))
	{
		remove_task(INFORMERTID)
		return PLUGIN_HANDLED
	}
	new id, LastID, acts, cts, all, CurrentTime[32], NextMap[32], Terrorist[32], names[33][32], Message[512]
	for(id = 1; id <= MaxPlayers; id++)
	{
		if(!is_user_connected(id))
		{
			continue
		}
		else if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
		{
			acts++
			cts++
			all ++
			LastID = id
			get_user_name(id, names[acts], 31)
		}
		else if(!is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
		{
			cts++
			all++
		}
		else if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
		{
			get_user_name(id, Terrorist, 63)
			all++
		}
		else
		{
			all++
		}
	}
	if(acts == 1 && !Last && get_pcvar_num(PcvarLastMenu))
	{
		LastMenu(LastID)
		Last = true
	}
	for(id = 1; id <= MaxPlayers; id++)
	{
		new Len, Mode[32]
		get_pcvar_string(PcvarMode, Mode, 31)
		Len = format(Message, 511, "%L: %L", LANG_PLAYER, "CURRENTMODE", LANG_PLAYER, Mode)
		get_time("%H:%M:%S", CurrentTime, 31)
		Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME", CurrentTime)
		if(get_cvar_float("mp_timelimit"))
		{
			new a = get_timeleft()
			Len += format(Message[Len], 511 - Len, "^n%L: %d:%02d", LANG_PLAYER, "TLEFT", (a / 60), (a % 60))
		}
		else
		{
			Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "TLEFT", LANG_PLAYER, "LASTR")
		}
		get_cvar_string("amx_nextmap", NextMap, 31)
		Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "NMAP", NextMap)
		if(GetTsNum(0))
		{
			Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CTER", Terrorist)
		}
		else
		{
			Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "CTER", LANG_PLAYER, "TNONE")
		}
		Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "ALIVECTS", acts,cts)
		Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "APLAYERS", all, MaxPlayers)
		if(acts > 3)
		{
			set_hudmessage(255, 117, 24, 0.01, 0.18, 0, 1.0, 1.0)
		}
		else if(acts == 3)
		{
			set_hudmessage(0, 255, 255, 0.01, 0.18, 0, 1.0, 1.0)
			Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s^n3. %s", names[1], names[2], names[3])
		}
		else if(acts == 2)
		{
			set_hudmessage(137, 42, 220, 0.01, 0.18, 0, 1.0, 1.0)
			Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s", names[1], names[2])
		}
		else
		{
			set_hudmessage(255, 0, 255, 0.01, 0.18, 0, 1.0, 1.0)
			Len += format(Message[Len], 511 - Len, "^n^n1. %s", names[1])
		}
		ShowSyncHudMsg(id, g_MsgHud1, "%s", Message)	
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Меню последнего КТ
=================================================================================*/
public LastMenu(id)
{
	new Len
	new Keys = MENU_KEY_0
	Len = format(MenuBody, MENUBODY - 1, "\yТы \rпоследний! \yЖелаешь \yсыграть \rдуэль?\w^n^n", LANG_PLAYER)
	Keys |= (1 << 0)
	Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", LANG_PLAYER, "LASTYES")
	Keys |= (1 << 1)
	Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", LANG_PLAYER, "LASTNO")
	show_menu(id, Keys, MenuBody, -1, "Last Menu")
	return PLUGIN_CONTINUE
}
/*================================================================================
	Действие меню последнего КТ
=================================================================================*/
public ActionLastMenu(id, key)
{
	switch(key)
	{
		case 0:
		{
			client_cmd(id, "deathrun_duels")
		}
		case 1:
		{
			client_print(id, print_center, "%L", LANG_PLAYER, "FDUEL")
		}
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Эффект волны
=================================================================================*/
public Beacon(id)
{
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
		static origin[3]
		get_user_origin(id, origin)
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMCYLINDER)
		write_coord(origin[0])
		write_coord(origin[1])
		write_coord(origin[2]-20)	
		write_coord(origin[0]) 
		write_coord(origin[1]) 
		write_coord(origin[2]+200)
		write_short(BeaconSprite)
		write_byte(0)
		write_byte(1)
		write_byte(6)
		write_byte(2) 
		write_byte(205) 
		write_byte(205) 
		write_byte(255) 
		write_byte(0) 
		write_byte(149)
		write_byte(0)
		message_end()
	}
	else
	{
		static origin[3]
		get_user_origin(id, origin)
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_BEAMCYLINDER)
		write_coord(origin[0])
		write_coord(origin[1])
		write_coord(origin[2]-20)	
		write_coord(origin[0]) 
		write_coord(origin[1])
		write_coord(origin[2]+200)
		write_short(BeaconSprite)
		write_byte(0)
		write_byte(1)
		write_byte(6)
		write_byte(2) 
		write_byte(205) 
		write_byte(205) 
		write_byte(149) 
		write_byte(0) 
		write_byte(255)
		write_byte(0)
		message_end()
	}
	set_task(1.0, "Beacon", id)	
	return PLUGIN_CONTINUE
}
/*================================================================================
	Стоки...
	Цветной чат
=================================================================================*/
stock ChatColor(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)
	replace_all(msg, 190, "!g", "^4")
	replace_all(msg, 190, "!y", "^1")
	replace_all(msg, 190, "!team", "^3")
	if (id) players[0] = id
	else get_players(players, count, "ch")
	for (new i = 0; i < count; i++)
	{
		if (is_user_connected(players[i]))
		{
			message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
			write_byte(players[i])
			write_string(msg)
			message_end()
		}
	}
	return PLUGIN_CONTINUE
}
/*================================================================================
	Сообщение о смерти
=================================================================================*/
stock DeathMsg(killer_id, victim_id, headshot, weaponname[])
{
	message_begin(MSG_ALL, get_user_msgid("DeathMsg"))
	write_byte(killer_id)
	write_byte(victim_id)
	write_byte(headshot)
	write_string(weaponname)
	message_end()
	return PLUGIN_CONTINUE
}
/*================================================================================
	Взять количество флагов
=================================================================================*/
stock GetFlagsNum(pcvar)
{
	new Duels = GetFlags(pcvar)
	new DuelsNum = 0
	for(new a = 0; a < DCOUNT; a++)
	{
		if(Duels & (1 << a))
		{
			DuelsNum++
		}
	}
	return DuelsNum
}
/*================================================================================
	Взять флаги
=================================================================================*/
stock GetFlags(pcvar)
{
	new Flags[32]
	get_pcvar_string(pcvar, Flags, 31)
	return read_flags(Flags)
}
/*================================================================================
	Количество спецназа
=================================================================================*/
stock GetCTsNum(alive)
{
	new CTsNum = 0
	for (new id = 1; id <= MaxPlayers; id++)
	{
		if(!is_user_connected(id))
		{ 
			continue
		}
		if(alive)
		{
			if(cs_get_user_team(id) == CS_TEAM_CT && is_user_alive(id))
			{ 
				CTsNum++
			} 
		}
		else
		{
			if(cs_get_user_team(id) == CS_TEAM_CT)
			{ 
				CTsNum++
			} 
		}
	}
	return CTsNum
}
/*================================================================================
	Количество террористов
=================================================================================*/
stock GetTsNum(alive)
{
	new TsNum = 0
	for (new id = 1; id <= MaxPlayers; id++)
	{
		if(!is_user_connected(id) || is_user_bot(id))
		{ 
			continue
		}
		if(alive)
		{
			if(cs_get_user_team(id) == CS_TEAM_T && is_user_alive(id))
			{ 
				TsNum++
			} 
		}
		else
		{
			if(cs_get_user_team(id) == CS_TEAM_T)
			{ 
				TsNum++
			} 
		}
	}
	return TsNum
}
/*================================================================================
	Убить игрока
=================================================================================*/
stock Kill(id)
{
	user_kill(id, 1)
	return PLUGIN_CONTINUE
}
/*================================================================================
	Очередь в дуэли
=================================================================================*/
	
public ammotct()
{
	if(AttackCt == 1)
	{
		if(DuelNum == 2)
		{
			strip_user_weapons(TerroristID)
			strip_user_weapons(CounterID)
			cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
		}
		else if(DuelNum == 4)
		{
			strip_user_weapons(TerroristID)
			strip_user_weapons(CounterID)
			cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
		}
		else if(DuelNum == 5)
		{
			strip_user_weapons(TerroristID)
			strip_user_weapons(CounterID)
			cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
		}
		else if(DuelNum == 6)
		{
		strip_user_weapons(TerroristID)
		strip_user_weapons(CounterID)
		cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
		}
		else if(DuelNum == 7)
		{
		strip_user_weapons(TerroristID)
		strip_user_weapons(CounterID)
		cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
		}
	}
	else if(AttackTt == 1)
	{
		if(DuelNum == 2)
		{
			strip_user_weapons(TerroristID)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), 1)
			strip_user_weapons(CounterID)
		}
		else if(DuelNum == 4)
		{
			strip_user_weapons(TerroristID)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), 1)
			strip_user_weapons(CounterID)
		}
		else if(DuelNum == 5)
		{
			strip_user_weapons(TerroristID)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), 1)
			strip_user_weapons(CounterID)
		}
		else if(DuelNum == 6)
		{
			strip_user_weapons(TerroristID)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), 1)
			strip_user_weapons(CounterID)
		}
		else if(DuelNum == 7)
		{
			strip_user_weapons(TerroristID)
			cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), 1)
			strip_user_weapons(CounterID)
		}
	}
}

public SettingTurn()
{
	AttackCt = 1
	AttackTt = 0
	SettingBoomAuto()
	if(DuelNum == 2)
	{
		strip_user_weapons(TerroristID)
		strip_user_weapons(CounterID)
		cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
	}
	else if(DuelNum == 4)
	{
		strip_user_weapons(TerroristID)
		strip_user_weapons(CounterID)
		cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
	}
	else if(DuelNum == 5)
	{
		strip_user_weapons(TerroristID)
		strip_user_weapons(CounterID)
		cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
	}
	else if(DuelNum == 6)
	{
	strip_user_weapons(TerroristID)
	strip_user_weapons(CounterID)
	cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
	}
	else if(DuelNum == 7)
	{
	strip_user_weapons(TerroristID)
	strip_user_weapons(CounterID)
	cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
	}
}
	
public HamAttack(weapon)
{
	new id = pev(weapon,pev_owner)
	
	if(Duel)
	{
		if(AttackCt == 1 && id == CounterID)
		{
			
				AttackCt = 0
				AttackTt = 1
				remove_task(42314)
				ammotct()
				SettingBoomAuto()
		}
		else if(AttackTt == 1 && id == TerroristID)
		{
				AttackCt = 1
				AttackTt = 0
				remove_task(42314)
				ammotct()
				SettingBoomAuto()
		}
	}
}

public SettingBoomAuto()
{
	TimerAutoBoom = 5
	set_task(1.0, "AutoBoom", 42314, _, _, "a", TimerAutoBoom + 2)
}

public AutoBoom()
{
	if(!Duel)
	return PLUGIN_CONTINUE
	
	new t_name[32], ct_name[32]
	get_user_name(CounterID, ct_name, 31)
	get_user_name(TerroristID, t_name, 31)
	if(AttackCt == 1)
	{
		client_print(0, print_center, "Стреляет: %s | Осталось: %d", ct_name, TimerAutoBoom)
	}
	else if(AttackTt == 1)
	{
		client_print(0, print_center, "Стреляет: %s | Осталось: %d", t_name, TimerAutoBoom)
	}
	if(TimerAutoBoom == 0 && AttackCt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID)) 
	{
		client_cmd(CounterID, "+attack;wait;-attack")
		if(TimerAutoBoom < 0)
		{
		AttackCt = 0
		AttackTt = 1
		remove_task(42314)
		SettingBoomAuto()
		ammotct()
		}
		
	}
	else if(TimerAutoBoom == 0 && AttackTt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID))
	{
		client_cmd(TerroristID, "+attack;wait;-attack")
		if(TimerAutoBoom < 0)
		{
		AttackCt = 1
		AttackTt = 0
		remove_task(42314)
		SettingBoomAuto()
		ammotct()
		}
	}
	TimerAutoBoom--
	
	return PLUGIN_CONTINUE
}
	

/*================================================================================
	Ставки
=================================================================================*/

public MenuStavki(id)
{
static menu[650], iLen
new MaxMoney = cs_get_user_money(id)
new t_name[33], ct_name[33]
get_user_name(TerroristID, t_name, 31)
get_user_name(CounterID, ct_name, 31)
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\dВаши деньги: \y(\r%d\y)^n\dВаша ставка: \y(\r%d\y)^n\dОсталось: \y%d^n^n", MaxMoney, Mydengi[id], SecondTimerStavki[id]);
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dПоставить на \yТ:\r%s^n", t_name);
keys &= ~MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wПоставить на \yТ:\r%s^n", t_name);
keys |= MENU_KEY_1
}
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dПоставить на \yКТ:\r%s^n", ct_name);
keys &= ~MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wПоставить на \yКТ:\r%s^n", ct_name);
keys |= MENU_KEY_2
}
if(MaxMoney >= 100 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \wПовысить ставку на \r100$^n");
keys |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \dПовысить ставку на \r100$^n");
keys &= ~MENU_KEY_3
}
if(MaxMoney >= 1000 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wПовысить ставку на \r1000$^n");
keys |= MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dПовысить ставку на \r1000$^n");
keys &= ~MENU_KEY_4
}
if(MaxMoney != 0 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys |= MENU_KEY_5
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys &= ~MENU_KEY_5
}
if(Mydengi[id] != 0 && Mydengi[id] > 100)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys &= ~MENU_KEY_6
}
if(Mydengi[id] != 0 && Mydengi[id] > 1000)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys &= ~MENU_KEY_6
}
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wВыход");
keys |= MENU_KEY_0
}

show_menu(id, keys, menu, -1, "Menu 1");
return PLUGIN_HANDLED
}

public OffMenu(id) 	show_menu(id, 0, "^n", 1)

public menus1(id, key)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)
switch(key)
{
	case 0:
	{
		if(Mydengi[id] <= 0)
		{
		ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
		return PLUGIN_CONTINUE
		}
		Tdengi += Mydengi[id]
		ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gтеррориста", name, Mydengi[id])
		MyStavkaCt[id] = false
		MyStavkaTt[id] = true
		OpenMenuStavki[id] = false
		timer[id] = false
		remove_task ( id + 41292 );
		show_menu(id, 0, "^n", 1)
	}

	case 1:
	{
		if(Mydengi[id] <= 0)
		{
		ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
		return PLUGIN_CONTINUE
		}
		Ctdengi += Mydengi[id]
		ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gконтер-террориста", name, Mydengi[id])
		MyStavkaCt[id] = true
		MyStavkaTt[id] = false
		OpenMenuStavki[id] = false
		timer[id] = false
		remove_task ( id + 41292 );
		show_menu(id, 0, "^n", 1)
	}
	
	case 2:
	{
		if(MaxMoney <= 0)
		{
			ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
			return PLUGIN_CONTINUE
		}
		Mydengi[id] += 100
		cs_set_user_money(id, MaxMoney - 100)
	}
	
	case 3:
	{
		if(MaxMoney <= 0)
		{
			ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
			return PLUGIN_CONTINUE
		}
		Mydengi[id] += 1000
		cs_set_user_money(id, MaxMoney - 1000)
	}
	
	case 4:
	{
		if(MaxMoney <= 0)
		{
			ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
			return PLUGIN_CONTINUE
		}
		Mydengi[id] += MaxMoney
		cs_set_user_money(id, 0)
	}
	case 5:
	{
		if(Mydengi[id] != 0 && Mydengi[id] < 100)
		{
			ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g100$")
			return PLUGIN_CONTINUE
		}
		Mydengi[id] -= 100
		cs_set_user_money(id, MaxMoney + 100)
	}
	case 6:
	{
		if(Mydengi[id] != 0 && Mydengi[id] < 1000)
		{
			ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g1000$")
			return PLUGIN_CONTINUE
		}
		Mydengi[id] -= 1000
		cs_set_user_money(id, MaxMoney + 1000)
	}
	case 9:
	{
		timer[id] = false
                remove_task ( id + 41292 );
		show_menu(id, 0, "^n", 1)
	}		
	
}
return PLUGIN_CONTINUE
}
		
public SettingStavki()
{
	for(new id = 1; id <= get_maxplayers(); id++)
	{
		if(is_user_connected(id) && !is_user_alive(id))
		{
			SecondTimerStavki[id] = 20
			Ctdengi = 0
			Tdengi = 0
			Mydengi[id] = 0
			set_task ( 1.0, "T_Menu_Try", id + 41292, _, _, "a", SecondTimerStavki[id] );
			MyStavkaCt[id] = false
			MyStavkaTt[id] = false
			OpenMenuStavki[id] = true
		}
	}
}
public T_Menu_Try( id )
{
		if ( id > 41292 )
				id -= 41292
               
		SecondTimerStavki[ id ] -= 1;
               
		if ( SecondTimerStavki[id] < 1 )
		{
			if ( task_exists ( id + 41292 ) )
				remove_task ( id + 41292 );    
                       
			cleardhud(id)
			set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
			show_dhudmessage(id, "Ставки сделаны!^n**Начнём мочилово!!**")
			set_task ( 1.1, "Hide_Menu", id + 41293 );
                       
			timer[ id ] = true
		}
		MenuStavki( id )
        }
}
public Hide_Menu(id)
{
		if ( id > 41293 )
			id -= 41293

		client_cmd(id, "slot10")
}

public go_present_ct_stavki(id)
{
	new name[32]
	new MaxMoney = cs_get_user_money(id)
	get_user_name(id, name, 31)
	
	if(MyStavkaCt[id]&& id != CounterID && id != TerroristID)
	{
		new CoffPresentCt = Mydengi[id] * 2
		cs_set_user_money(id, MaxMoney + CoffPresentCt)
		ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentCt)
	}
}

public go_present_tt_stavki(id)
{
	new name[32]
	new MaxMoney = cs_get_user_money(id)
	get_user_name(id, name, 31)
	
	if(MyStavkaTt[id] && id != TerroristID && id != CounterID)
	{
		new CoffPresentTt = Mydengi[id] * 2
		cs_set_user_money(id, MaxMoney + CoffPresentTt)
		ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentTt)
	}
}

/*================================================================================
	Событие получение урона, (Дамагер при дуели)
=================================================================================*/

public DamageEvent(victim)
{
	new attacker = get_user_attacker(victim), damage = read_data(2), hp = get_user_health(victim), at_name[32], vi_name[32]
	get_user_name(victim, vi_name, 31)
	get_user_name(attacker, at_name, 31)
	
	if(!Duel || attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim) || get_user_team(attacker) == get_user_team(victim) || !is_user_alive(attacker) || !is_user_alive(victim))
		return PLUGIN_CONTINUE
		
	if(CounterID == victim || CounterID == attacker || TerroristID == victim || TerroristID == attacker)
	{
	cleardhud(attacker)
	cleardhud(victim)
	
	set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
	show_dhudmessage(attacker, "Вы нанесли: %d", damage)
	ChatColor(0, "!g%s !teamНанёс !g%d !teamУрона игроку !g%s", at_name, damage, vi_name)
	ChatColor(0, "!team у игрока !g%s !teamосталось !g%d !teamЗдоровья", vi_name, hp)
	set_dhudmessage( 255, 0, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
	show_dhudmessage(victim, "Вам нанесли: %d", damage)
	}
	
	return PLUGIN_CONTINUE
}
	
	
/*================================================================================
	Убрать с экрана все дхуд сообщения
=================================================================================*/
	
public cleardhud(pId)
{
	ClearDHUDMessages(pId);
}
	
stock ClearDHUDMessages(pId, iClear = 8)
{
	for (new iDHUD = 0; iDHUD < iClear; iDHUD++)
	show_dhudmessage(pId, "");
}
Tatsuo is offline
marcelowzd
Senior Member
Join Date: Feb 2011
Location: São Paulo, Brazil
Old 03-27-2018 , 09:58   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #5

It would be easier if you just highlited the line containing the problem.
marcelowzd is offline
Old 03-27-2018, 10:05
Tatsuo
This message has been deleted by Tatsuo.
Tatsuo
Member
Join Date: Dec 2017
Location: Secret
Old 03-27-2018 , 10:07   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #6

https://ibb.co/cMND27 this link

Last edited by Tatsuo; 03-27-2018 at 10:08.
Tatsuo is offline
marcelowzd
Senior Member
Join Date: Feb 2011
Location: São Paulo, Brazil
Old 03-27-2018 , 10:45   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #7

Quote:
Originally Posted by Tatsuo View Post
No, i told you to point in that giant code where the problem was with something like -> // HERE IS THE PROBLEM or THIS FUNCTION IS THE PROBLEM.

Anyway, i copied the code myself and the problem is there is a } without a { in here.
Replace this entire function with the one you see here.

Code:
public T_Menu_Try( id )
{
	if ( id > 41292 )
		id -= 41292
               
	SecondTimerStavki[ id ] -= 1;
               
	if ( SecondTimerStavki[id] < 1 )
	{
		if ( task_exists ( id + 41292 ) )
			remove_task ( id + 41292 );    
                       
		cleardhud(id)
		set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
		show_dhudmessage(id, "?????? ???????!^n**?????? ????????!!**")
		set_task ( 1.1, "Hide_Menu", id + 41293 );
                       
		timer[ id ] = true
	}
	
	MenuStavki( id )
}
marcelowzd is offline
Tatsuo
Member
Join Date: Dec 2017
Location: Secret
Old 03-27-2018 , 10:50   Re: Error in compiling.Error 54: unmatched closing brace
Reply With Quote #8

You're a dude top. Thank you for helping me and not sending me)
Tatsuo is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:50.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode