Помогите Пожалуйста!

AVB

New Member
Всем Доброго дня! Помогите пожалуйста переделать код. Нужно чтобы когда игроку выдавалось оружие, то писалось в чат: [VIP MENU] %s взял M4A1 + набор гранат (P.S уже стоит) Только мне надо что бы на записи стоял определенный флаг. То есть допустим у игрока есть флаг "S" а у других нету, то только когда он будет брать оружие из оружейки, всем будет писаться в чат тот человек у которого есть этот флаг "S" А если другой VIP игрок берет оружия без флага "S" то ему просто выдается оружие, но не пишется всем в чат, какое оружие он взял. Думаю все понятно объяснил :) Пожалуйста, добрые люди помогите переделать плагин :) Жду Вашей помощи. Заранее ОГРОМНОЕ СПАСИБО И ВСЕМ УДАЧИ! :)
Вот код:
Код:
/* 
*-------------------Информация--------------------*
*
* Название: IDEAL VIP
* Автор: __valera__
* Версия: 1.1
* Последнее обновление: 23.10.2013
* Skype: valera_mozg
*-------------------------------------------------*
*----------------Доступное оружие-----------------*
* ВАРИАНТ 1
* M4A1 	+ Гранаты + Дигл
* АК47 	+ Гранаты + Дигл
* AWP  	+ Гранаты + Дигл
* FAMAS + Гранаты + Дигл
* SCOUT + гранаты + Дигл

* ВАРИАНТ 2
* M4A1 	+ Гранаты + USP
* АК47 	+ Гранаты + USP
* AWP  	+ Гранаты + USP
* FAMAS + Гранаты + USP
* SCOUT + гранаты + USP
*--------------------Описание---------------------*
*	Данный плагин отлично подойдет для public серверов. 
*	Это простая вип система, которая позволит быстро получить необходимое оружие с дополнительным комплектом.
*	Преимущество плагина в том, что при заходе на сервер задается вопрос о том, какой пистолет выдавать вместе с основным оружием(usp, dgl)
*	
*-------------------Функционал--------------------*
*
*	1. Можно открыть меню в любой момент 
*	2. VIP в таблице на TAB
*	3. При первом заходе на сервер VIP меню вас спрашивает
*	   какой пистолет будет даваться в комплекте ко всему (usp, dgl)
*	4. Меню доступно для випов с флагом t
*	5. Открыть может только живой
*	6. Перед выдачей оружия все оружие забирается (Чтобы не было по несколько оружий).
*	7. При взятии оружия всем игрокам в чат оповещается, кто и какой набор оружия взял.
*	8. В каждом раунде випу даются все гранаты и броня
*	9. Красивое оформление
*
*-------------------Настройки---------------------*
* 	
* 	amx_vipround [По умолчанию: 2]
* 		C какого раунда вип меню можно открыть
*
*	amx_vipzaround [По умолчанию: 0]
*		Сколько раз за раунд можно открыть меню (0 - хоть сколько)
*
*	amx_vipshow [По умолчанию: 1]
*		Автоматически открывать в начале рануда Вип меню: (1 - да; 0 - нет)
*
*-------------------------------------------------*
*
*----------------История изменений----------------*
*
* 1.0:
*	[!] Первый релиз
*
* 1.1:
*	[!] Полная оптимизация кода
*	[*] Фикс ошибок
* 	[+] Добавлен квар amx_vipround
* 	[+] Добавлен квар amx_vipzaround
* 	[+] Добавлен квар amx_vipshow
*
* 1.2:
*	[+] Добавлена надпись VIP в таблицу на TAB
*
*-------------------------------------------------*
*
*----------------------P.S------------------------*
*
* Пишу плагины на заказ. Skype: valera_mozg  (Писать сразу по делу)
*
*-------------------------------------------------*
*/

#include <amxmodx>
#include <cstrike>
#include <fun>


#define PLUGIN "IDEAL VIP by __valera__"
#define VERSION "1.1"
#define AUTHOR "__valera__"

new g_Round, g_Weapon 
new cvar_round, cvar_open, cvar_show
new vip_opened

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("ResetHUD", "ResetHUD", "be")
	register_event("HLTV", "round_start", "a", "1=0", "2=0")
	register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");

	register_clcmd("say /vipmenu", "distributor")
	
	cvar_round = register_cvar("amx_vipround", "2")
	cvar_open = register_cvar("amx_vipzaround", "0")
	cvar_show = register_cvar("amx_vipshow","0")
}

public client_putinserver(id)
{
	set_task(2.0, "first_menu", id)
}

public round_start()	
{
	g_Round++
	vip_opened = 0
	for(new id;id<=get_maxplayers();id++)
	{
		if(get_user_flags(id) & ADMIN_LEVEL_H && is_user_connected(id))
		{
			set_task(1.0, "task_funk", id);
			if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round))
				set_task(1.0, "distributor", id);
		}
	}
}

public round_restart()
{
	g_Round = 0
}

public task_funk(id)
{
	give_item(id, "weapon_knife")
	give_item(id, "item_thighpack") 
	give_item(id, "weapon_hegrenade")
	give_item(id, "weapon_flashbang")
	give_item(id, "weapon_flashbang")
	give_item(id, "weapon_smokegrenade")
	give_item(id, "item_assaultsuit") 
}

public vip_menu_dgl(id)
{
	if(vip_opened < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
	{
		if(!is_user_alive(id) && !is_user_connected(id))
			return PLUGIN_HANDLED
			
		if(g_Round < get_pcvar_num(cvar_round))
		{
			ChatColor (id, "^1[^4VIP MENU^1] ^3Использовать можно только с %d-го раунда!", get_pcvar_num(cvar_round))
			return PLUGIN_HANDLED
		}

		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			ChatColor (id, "^1[^4VIP MENU^1] ^3У вас нет доступа для открытия этого меню!")
			return PLUGIN_HANDLED
		}

		new i_Menu = menu_create("\rVIP MENU by __valera__", "menu_handler_dgl")

		menu_additem(i_Menu, "\dDeagle \y+ \dГранаты +  \rM4A1  ", "1", 0)
		menu_additem(i_Menu, "\dDeagle \y+ \dГранаты +  \rAK47  ", "2", 0)
		menu_additem(i_Menu, "\dDeagle \y+ \dГранаты +  \rAWP  ", "3", 0)
		menu_additem(i_Menu, "\dDeagle \y+ \dГранаты +  \rFamas  ", "4", 0)
		menu_additem(i_Menu, "\dDeagle \y+ \dГранаты +  \rScout  ", "5", 0)

		menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
		menu_display(id, i_Menu, 0)
	}
	else
	{
		ChatColor (id, "^1[^4VIP MENU^1] ^3Вип меню больше нельзя открыть! Ждите нового раунда!")
		return PLUGIN_HANDLED
	}
	return PLUGIN_HANDLED
}

public menu_handler_dgl(id, menu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		
		return PLUGIN_HANDLED
	}
	
	new s_Data[6], s_Name[60], i_Access, i_Callback
	
	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	
	new i_Key = str_to_num(s_Data)
	new name[32]
    if(get_user_flags(id) & ADMIN_LEVEL_G)
	get_user_name(id, name, charsmax(name))
	
	
	switch(i_Key)
	{
		case 1:
		{
		    if(get_user_flags(id) & ADMIN_LEVEL_G)
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			

			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4M4A1 + набор", name)
		}
		case 2:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4AK47 + набор", name)
		}
		case 3:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 30)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4AWP + набор", name)
		}
		case 4:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_famas")
			cs_set_user_bpammo(id, CSW_FAMAS, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4FAMAS + набор", name)
		}
		case 5:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_scout")
			cs_set_user_bpammo(id, CSW_SCOUT, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4SCOUT + набор", name)
		}
		case 0: 
		{
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_HANDLED
}

public vip_menu_usp(id)
{
	if(vip_opened < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
	{
		if(!is_user_alive(id) && !is_user_connected(id))
			return PLUGIN_HANDLED
			
		if(g_Round < get_pcvar_num(cvar_round))
		{
			ChatColor (id, "^1[^4VIP MENU^1] ^3Использовать можно только с %d-го раунда!", get_pcvar_num(cvar_round))
			return PLUGIN_HANDLED
		}

		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			ChatColor (id, "^1[^4VIP MENU^1] ^3У вас нет доступа для открытия этого меню!")
			return PLUGIN_HANDLED
		}

		new i_Menu = menu_create("\rVIP MENU by __valera__", "menu_handler_usp")

		menu_additem(i_Menu, "\dUsp \y+ \dГранаты +  \rM4A1  ", "1", 0)
		menu_additem(i_Menu, "\dUsp \y+ \dГранаты +  \rAK47  ", "2", 0)
		menu_additem(i_Menu, "\dUsp \y+ \dГранаты +  \rAWP  ", "3", 0)
		menu_additem(i_Menu, "\dUsp \y+ \dГранаты +  \rFamas  ", "4", 0)
		menu_additem(i_Menu, "\dUsp \y+ \dГранаты +  \rScout  ", "5", 0)


		menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее")
		menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
		menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
		menu_display(id, i_Menu, 0)
	}
	else
	{
		ChatColor (id, "^1[^4VIP MENU^1] ^3Вип меню больше нельзя открыть! Ждите нового раунда!")
		return PLUGIN_HANDLED
	}
	return PLUGIN_HANDLED
}

public menu_handler_usp(id, menu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		
		return PLUGIN_HANDLED
	}
	
	new s_Data[6], s_Name[60], i_Access, i_Callback
	
	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	
	new i_Key = str_to_num(s_Data)
	new name[32] 
	get_user_name(id, name, charsmax(name))
	
	
	switch(i_Key)
	{
		case 1:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100)
			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4M4A1 + набор", name)
		}
		case 2:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100)
			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4AK47 + набор", name)
		}
		case 3:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100)
			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 30)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4AWP + набор", name)
		}
		case 4:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100)
			give_item(id, "weapon_famas")
			cs_set_user_bpammo(id, CSW_FAMAS, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4FAMAS + набор", name)
		}
		case 5:
		{
			vip_opened++
			strip_user_weapons(id)
			task_funk(id)
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100)
			give_item(id, "weapon_scout")
			cs_set_user_bpammo(id, CSW_SCOUT, 90)
			
			ChatColor (id, "^1[^4VIP MENU^1] ^3%s ^1взял ^4SCOUT + набор", name)
		}
		case 0: 
		{
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_HANDLED
}

public first_menu(id)
{
	new i_Menu = menu_create("\rЧто вы препочитаете?", "first_menu_handler")

	menu_additem(i_Menu, "\yDeagle", "1", 0)
	menu_additem(i_Menu, "\yUsp", "2", 0)
	
	menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
	menu_display(id, i_Menu, 0)
}

public first_menu_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		
		return PLUGIN_HANDLED
	}
	
	new s_Data[6], s_Name[60], i_Access, i_Callback
	
	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	
	new i_Key = str_to_num(s_Data)
	
	switch(i_Key)
	{
		case 1:	g_Weapon = 1
		
		case 2:	g_Weapon = 2
	}
	return PLUGIN_CONTINUE
}

public distributor(id)
{
	if(get_user_flags(id) & ADMIN_LEVEL_H && is_user_connected(id))
	{
		switch(g_Weapon)
		{
			case 1: vip_menu_dgl(id)
			
			case 2: vip_menu_usp(id)
			
			default: first_menu(id)
		}
	}
}

public ResetHUD(id)
{
    set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
    new id = TaskID - 6910
    
    if (get_user_flags(id) & ADMIN_IMMUNITY)
    {
        message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
        write_byte(id)
        write_byte(4)
        message_end()
    }
    return PLUGIN_HANDLED
}

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") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color
	replace_all(msg, 190, "!team", "^3") // Team Color
	replace_all(msg, 190, "!team2", "^0") // Team2 Color
	
	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, get_user_msgid("SayText"), _, players[i])
				write_byte(players[i]);
				write_string(msg);
				message_end();
			}
		}
	}
}
 
Сверху