The Crazy Menu amxx


The Crazy Menu amxx
  • Обзор
  • Установка
  • Настройки
  • Код/Апи
  • Словарь
  • Команды
  • Обновления
  • Скриншоты/Видео
  • Благодарности


Автор ar222`

Совместимость с Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev

Плагин добавляет различные режимы в игру, например для тренировки или развлечения. Вводится команда в чат, открывается меню с функциями действующими на всех живых игроков на сервере.

Что входит в меню:

Выдать всем гравитацию.
Выдать всем скорость.
Выдать всем жизни.
Выдать всем невидимость.

Функционал:

В меню можно удобно включать или отключать каждую функцию. (вкл/выкл)
Если Вы что то активируете, то будет оповещение в HUD всем игрокам об этом режиме игры.
В каждом новом раунде идет сброс всех активаций функций, если вы отключите их в меню. (так как, кто-то может быть уже умершим)
Если у какой-то функции положение ВКЛ и начался новый раунд, то функция останется работать, активируется заново.
Все сообщения редактируется в LANG файле (меню и которые в HUD), по этому можете отредактировать их как хотите.
Доступ к меню по флагу. (настройка кваром)
Настройка значений к функциям с помощью кваров.
Функция "Скорость" не сбрасывается при смене оружия.
Возможно вкл/выкл уведомления через заданное время, пока активна какая-то функция (что она активна) в чат. (различные настройки, например только hud или чат, иначе все вместе)
Если игрок спавнится (только зашел на сервер или просто) и если работает какая то функция из меню, то будет оповещение в HUD.
Если игрок заспавнился при входе на сервер, в случае того если какая-то функция активна, то игроку сразу же она добавится.
Сделана возможность проверять каждый раунд, есть ли игроки с флагом от входа в меню (настройка кваром), если нету, то все функции из меню выключатся.
Сделана возможность постоянного кеширования (например для тестов), настройка дефайном.
Есть возможность сделать действия функций на ботов. (настройка кваром)
Установка: База знаний.

#define AUTO_CONFIG //Авто-создание конфига

#define PERSISTENT_CACHING //Постоянное кеширование (если Вам нужно закешировать флаги и другое только при старте карты, закомментруйте)

/*
 Плагин - The_Crazy_Menu | Rus: "Очумевшее меню".

 Требования: Reapi

 Совместимость с: AmxModX 1.9.0, 1.10.0

 Описание: 

 Плагин добавляет различные режимы в игру, например для тренировки или развлечения.
 Вводится команда в чат, открывается меню с функциями действующими на всех живых игроков на сервере.

 Что входит в меню:

 1. Выдать всем гравитацию.
 2. Выдать всем скорость.
 3. Выдать всем жизни.
 4. Выдать всем невидимость.

 Функционал:

 * - В меню можно удобно включать или отключать каждую функцию. (вкл/выкл)
 * - Если Вы что то активируете, то будет оповещение в HUD всем игрокам об этом режиме игры.
 * - В каждом новом раунде идет сброс всех активаций функций, если вы отключите их в меню. (так как, кто-то может быть уже умершим)
 * - Если у какой-то функции положение ВКЛ и начался новый раунд, то функция останется работать, активируется заново.
 * - Все сообщения редактируется в LANG файле (меню и которые в HUD), по этому можете отредактировать их как хотите.
 * - Доступ к меню по флагу. (настройка кваром)
 * - Настройка значений к функциям с помощью кваров.
 * - Функция "Скорость" не сбрасывается при смене оружия.
 * - Возможно вкл/выкл уведомления через заданное время, пока активна какая-то функция (что она активна) в чат. (различные настройки, например только hud или чат, иначе все вместе)
 * - Если игрок спавнится (только зашел на сервер или просто) и если работает какая то функция из меню, то будет оповещение в HUD.
 * - Если игрок заспавнился при входе на сервер, в случае того если какая-то функция активна, то игроку сразу же она добавится.
 * - Сделана возможность проверять каждый раунд, есть ли игроки с флагом от входа в меню (настройка кваром), если нету, то все функции из меню выключатся.
 * - Сделана возможность постоянного кеширования (например для тестов), настройка дефайном.
 * - Есть возможность сделать действия функций на ботов. (настройка кваром)

 Поддержка:

 Dev-Cs: @ar222`
 Telegram: @WellAsGood
*/

/*
 Журнал изменений:

 ver 0.0.2:

 1. Теперь отображение добавляемых жизней (+инфа) будет в соответствии значения квара 'cm_hp_on'. (ранее надо было править бы вручную)
 2. Изменен LANG файл.

 ver 0.0.3:

 1. Теперь невидимость для игрока сделана с использованием reapi. (спасибо: d3m37r4 за напутствие, malniata за готовый код -_-)
 2. Убран #include 
*/

#include 
#include 
#include 

#define MULTI_DESC(%0) fmt("%L", LANG_SERVER, %0)

#define AUTO_CONFIG //Авто-создание конфига

#define PERSISTENT_CACHING //Постоянное кеширование (если Вам нужно закешировать флаги и другое только при старте карты, закомментруйте)

new const PLUGIN[] = "The_Crazy_Menu";
new const VERSION[] = "0.0.3";
new const AUTHOR[] = "ar222`";

enum any:CVAR_DATA
{
	CM_FLAG_MENU[64],
	Float:CM_GRAVITY,
	Float:CM_SPEED,
	Float:CM_HP_ON,
	Float:CM_HP_OFF,
	CM_INFO_VALUE,
	Float:CM_TIME_INFO,
	CM_FLAG_CHECK,
	CM_BOT_ACTIVITY
};

enum _:MainCheckData
{
	bool:Check_gr,
	bool:Check_sp,
	bool:Check_hp,
	bool:Check_hd,
	bool:CheckRound
};

enum _:MenuCheckData
{
	Check_Gravity,
	Check_Speed,
	Check_HP,
	Check_Hide
};

enum _:SignData
{
	bool:Sign_Gravity,
	bool:Sign_HP,
	bool:Sign_Hide
};

enum
{
	ON,
	OFF
};

new eCvarData[CVAR_DATA], eMainCheckData[MainCheckData], eMenuCheckData[MAX_PLAYERS+1][MenuCheckData];
new bool:PlayerSpeed[MAX_PLAYERS+1], eSignData[MAX_PLAYERS+1][SignData], SaveFlags;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_dictionary("cm.txt");

	register_menu("NextMenuOpen", 1023, "@Handle_NextMenuOpen", 0);

	RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "@CBasePlayer_ResetMaxSpeed", true);
	RegisterHookChain(RG_CSGameRules_PlayerSpawn, "@CBasePlayer_PlayerSpawn", true);

	register_logevent("@round_start", 2, "0=World triggered", "1=Round_Start");

	register_clcmd("say /crazy-menu", "@OpenCrazyMenu");
	register_clcmd("say /cm", "@OpenCrazyMenu");

	CreateCvars();

	#if defined AUTO_CONFIG
	AutoExecConfig(true, "The_Crazy_Menu");
	#endif

	#if defined PERSISTENT_CACHING
	set_task_ex(10.0, "@StartCheck", .flags = SetTask_Repeat);
	#else
	set_task_ex(10.0, "@StartCheck");
	#endif
}

@StartCheck()
{
	SaveFlags = read_flags(eCvarData[CM_FLAG_MENU]);

	if(eCvarData[CM_INFO_VALUE])
	{
		new array[1];

		if(eCvarData[CM_INFO_VALUE] == 1)
		{
			array[0] = 1; //только инфа в чат
		}
		else if(eCvarData[CM_INFO_VALUE] == 2)
		{
			array[0] = 2; //только инфа в HUD
		}
		else if(eCvarData[CM_INFO_VALUE] == 3)
		{
			array[0] = 3; //инфа и в чат и в HUD
		}

		#if defined PERSISTENT_CACHING
		set_task_ex(eCvarData[CM_TIME_INFO], "@DataHandler", 0, array, sizeof array);
		#else
		set_task_ex(eCvarData[CM_TIME_INFO], "@DataHandler", 0, array, sizeof array, .flags = SetTask_Repeat);
		#endif
	}
}

public client_disconnected(PlayerID)
{
	if(PlayerSpeed[PlayerID])
	{
		PlayerSpeed[PlayerID] = false;
	}

	if(eSignData[PlayerID][Sign_Gravity])
	{
		eSignData[PlayerID][Sign_Gravity] = false;
	}

	if(eSignData[PlayerID][Sign_HP])
	{
		eSignData[PlayerID][Sign_HP] = false;
	}

	if(eSignData[PlayerID][Sign_Hide])
	{
		eSignData[PlayerID][Sign_Hide] = false;
	}
}

@round_start()
{
	eMainCheckData[CheckRound] = true;

	if(eCvarData[CM_FLAG_CHECK])
	{
		new ArrayID[MAX_PLAYERS], Count, bool:Check;
		get_players_ex(ArrayID, Count, GetPlayers_ExcludeBots|GetPlayers_ExcludeHLTV);

		for(new PlayerID, Flag, i; i < Count; i++)
		{
			PlayerID = ArrayID[i];
			Flag = get_user_flags(PlayerID);

			if(Flag & SaveFlags == SaveFlags)
			{
				Check = true;
			}
		}

		if(!Check)
		{
			eMainCheckData[Check_gr] = false;
			eMainCheckData[Check_sp] = false;
			eMainCheckData[Check_hp] = false;
			eMainCheckData[Check_hd] = false;
		}
	}

	eMainCheckData[Check_gr] ? Activation_Func(1, ON) : Activation_Func(1, OFF);
	eMainCheckData[Check_sp] ? Activation_Func(2, ON) : Activation_Func(2, OFF);

	if(eMainCheckData[Check_hp])
	{
		Activation_Func(3, ON);
	}

	eMainCheckData[Check_hd] ? Activation_Func(4, ON) : Activation_Func(4, OFF);

	eMainCheckData[CheckRound] = false;
}

@CBasePlayer_ResetMaxSpeed(PlayerID)
{
	if(PlayerSpeed[PlayerID])
	{
		set_entvar(PlayerID, var_maxspeed, eCvarData[CM_SPEED]);
	}

	return HC_SUPERCEDE;
}

@CBasePlayer_PlayerSpawn(PlayerID)
{
	new array[1];
	array[0] = 4;

	@DataHandler(array, PlayerID);
}

@OpenCrazyMenu(PlayerID)
{
	if(!(get_user_flags(PlayerID) & SaveFlags == SaveFlags))
	{
		return PLUGIN_HANDLED;
	}

	NextMenuOpen(PlayerID);

	return PLUGIN_HANDLED;
}

NextMenuOpen(PlayerID)
{
	new Menu[MAX_MENU_LENGTH], Keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0;
	new Len = formatex(Menu, charsmax(Menu), "%L^n^n", PlayerID, "CRAZY_MENU_TITLE");

	Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r[1] \y# \w%L \y[\r%L\y]^n", PlayerID, "CRAZY_MENU_ITEM1", PlayerID, eMenuCheckData[PlayerID][Check_Gravity] == 1 ? "CRAZY_MENU_ON" : "CRAZY_MENU_OFF");

	Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r[2] \y# \w%L \y[\r%L\y]^n", PlayerID, "CRAZY_MENU_ITEM2", PlayerID, eMenuCheckData[PlayerID][Check_Speed] == 1 ? "CRAZY_MENU_ON" : "CRAZY_MENU_OFF");

	Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r[3] \y# \w%L \y[\r%L\y]^n", PlayerID, "CRAZY_MENU_ITEM3", floatround(eCvarData[CM_HP_ON]), PlayerID, eMenuCheckData[PlayerID][Check_HP] == 1 ? "CRAZY_MENU_ON" : "CRAZY_MENU_OFF");

	Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r[4] \y# \w%L \y[\r%L\y]^n^n", PlayerID, "CRAZY_MENU_ITEM4", PlayerID, eMenuCheckData[PlayerID][Check_Hide] == 1 ? "CRAZY_MENU_ON" : "CRAZY_MENU_OFF");

	formatex(Menu[Len], charsmax(Menu) - Len, "\r[0] \y# \w%L", PlayerID, "CRAZY_MENU_EXIT");
	return show_menu(PlayerID, Keys, Menu, -1, "NextMenuOpen");
}

@Handle_NextMenuOpen(PlayerID, Keys)
{
	switch(Keys)
	{
		case 0:
			{
				eMenuCheckData[PlayerID][Check_Gravity] = (eMenuCheckData[PlayerID][Check_Gravity] + 1) % 2;

				if(eMenuCheckData[PlayerID][Check_Gravity] == 1)
				{
					Activation_Func(1, ON);
					eMainCheckData[Check_gr] = true;
				}
				else
				{
					Activation_Func(1, OFF);
					eMainCheckData[Check_gr] = false;
				}
			}
		case 1:
			{
				eMenuCheckData[PlayerID][Check_Speed] = (eMenuCheckData[PlayerID][Check_Speed] + 1) % 2;

				if(eMenuCheckData[PlayerID][Check_Speed] == 1)
				{
					Activation_Func(2, ON);
					eMainCheckData[Check_sp] = true;
				}
				else
				{
					Activation_Func(2, OFF);
					eMainCheckData[Check_sp] = false;
				}
			}
		case 2:
			{
				eMenuCheckData[PlayerID][Check_HP] = (eMenuCheckData[PlayerID][Check_HP] + 1) % 2;

				if(eMenuCheckData[PlayerID][Check_HP] == 1)
				{
					Activation_Func(3, ON);
					eMainCheckData[Check_hp] = true;
				}
				else
				{
					Activation_Func(3, OFF);
					eMainCheckData[Check_hp] = false;
				}
			}
		case 3:
			{
				eMenuCheckData[PlayerID][Check_Hide] = (eMenuCheckData[PlayerID][Check_Hide] + 1) % 2;

				if(eMenuCheckData[PlayerID][Check_Hide] == 1)
				{
					Activation_Func(4, ON);
					eMainCheckData[Check_hd] = true;
				}
				else
				{
					Activation_Func(4, OFF);
					eMainCheckData[Check_hd] = false;
				}
			}
		case 9:
			{
				return PLUGIN_HANDLED;
			}
	}

	NextMenuOpen(PlayerID);
	return PLUGIN_HANDLED;
}

Activation_Func(num, check)
{
	new ArrayID[MAX_PLAYERS], Count;

	if(num == 2)
	{
		!eCvarData[CM_BOT_ACTIVITY] ? get_players_ex(ArrayID, Count, GetPlayers_ExcludeBots|GetPlayers_ExcludeHLTV) : get_players_ex(ArrayID, Count, GetPlayers_ExcludeHLTV)
	}
	else
	{
		!eCvarData[CM_BOT_ACTIVITY] ? get_players_ex(ArrayID, Count, GetPlayers_ExcludeDead|GetPlayers_ExcludeBots|GetPlayers_ExcludeHLTV) : get_players_ex(ArrayID, Count, GetPlayers_ExcludeDead|GetPlayers_ExcludeHLTV);
	}

	for(new PlayerID, i; i < Count; i++)
	{
		PlayerID = ArrayID[i];

		switch(num)
		{
			case 1:
			{
				if(check == 0)
				{
					eSignData[PlayerID][Sign_Gravity] = true;
					set_entvar(PlayerID, var_gravity, eCvarData[CM_GRAVITY]);
				}
				else
				{
					set_entvar(PlayerID, var_gravity, 1.0);
				}
			}
			case 2:
			{
				if(check == 0)
				{
					PlayerSpeed[PlayerID] = true;
					set_entvar(PlayerID, var_maxspeed, eCvarData[CM_SPEED]);
				}
				else
				{
					PlayerSpeed[PlayerID] = false;
					rg_reset_maxspeed(PlayerID);
				}
			}
			case 3:
			{
				if(check == 0)
				{
					eSignData[PlayerID][Sign_HP] = true;
					set_entvar(PlayerID, var_health, eCvarData[CM_HP_ON]);
				}
				else
				{
					set_entvar(PlayerID, var_health, eCvarData[CM_HP_OFF]);
				}
			}
			case 4:
			{
				if(check == 0)
				{
					eSignData[PlayerID][Sign_Hide] = true;
					set_entvar(PlayerID, var_effects, get_entvar(PlayerID, var_effects) | EF_NODRAW);
				}
				else
				{
					set_entvar(PlayerID, var_effects, get_entvar(PlayerID, var_effects) & ~EF_NODRAW);
				}
			}
		}
	}

	if(check == 0)
	{
		if(!eMainCheckData[CheckRound])
		{
			set_hudmessage(random_num(100, 255), random_num(100, 255), random_num(100, 255), -1.0, -0.65, 0, _, 3.0, 0.5, 1.5, -1);

			if(num == 3)
			{
				show_hudmessage(0, "%L", LANG_PLAYER, "CRAZY_MENU_HUD3", floatround(eCvarData[CM_HP_ON]));
			}
			else
			{
				show_hudmessage(0, "%L", LANG_PLAYER, fmt("CRAZY_MENU_HUD%d", num));
			}
		}
	}
}

@DataHandler(num[], PlayerID)
{
	new Value = num[0];

	if(eMainCheckData[Check_gr])
	{
		if(Value == 1 || Value == 3)
		{
			ChatMessage(1);
		}
		else if(Value == 4)
		{
			if(!eSignData[PlayerID][Sign_Gravity])
			{
				set_entvar(PlayerID, var_gravity, eCvarData[CM_GRAVITY]);
			}
		}
	}

	if(eMainCheckData[Check_sp])
	{
		if(Value == 1 || Value == 3)
		{
			ChatMessage(2);
		}
	}

	if(eMainCheckData[Check_hp])
	{
		if(Value == 1 || Value == 3)
		{
			ChatMessage(3);
		}
		else if(Value == 4)
		{
			if(!eSignData[PlayerID][Sign_HP])
			{
				set_task_ex(3.0, "@FixActivateHP", PlayerID);
			}
		}
	}

	if(eMainCheckData[Check_hd])
	{
		if(Value == 1 || Value == 3)
		{
			ChatMessage(4);
		}
		else if(Value == 4)
		{
			if(!eSignData[PlayerID][Sign_Hide])
			{
				set_entvar(PlayerID, var_effects, get_entvar(PlayerID, var_effects) | EF_NODRAW);
			}
		}
	}

	if(eMainCheckData[Check_gr] || eMainCheckData[Check_sp] || eMainCheckData[Check_hp] || eMainCheckData[Check_hd])
	{
		new array[1];

		if(Value == 2 || Value == 3)
		{
			array[0] = 2;
			@HudMessage(array, 0);
		}
		else if(Value == 4 && (eCvarData[CM_INFO_VALUE] == 2 || eCvarData[CM_INFO_VALUE] == 3))
		{
			array[0] = 1;
			set_task_ex(5.0, "@HudMessage", PlayerID, array, sizeof array);
		}
	}
}

ChatMessage(num)
{
	if(num == 3)
	{
		client_print_color(0, print_team_default, "%l", "CRAZY_MENU_CHAT3", floatround(eCvarData[CM_HP_ON]));
	}
	else
	{
		client_print_color(0, print_team_default, "%l", fmt("CRAZY_MENU_CHAT%d", num));
	}
}

@HudMessage(num[], PlayerID)
{
	new Value = num[0];

	set_hudmessage(random_num(100, 255), random_num(100, 255), random_num(100, 255), -1.0, -0.50, 0, _, 5.0, 1.5, 3.5, -1);
	show_hudmessage(PlayerID, "%L", Value == 1 ? PlayerID : LANG_PLAYER, "CRAZY_MENU_NOTIFICATION_SPAWN");
}

@FixActivateHP(PlayerID)
{
	set_entvar(PlayerID, var_health, eCvarData[CM_HP_ON]);
}

CreateCvars()
{
	bind_pcvar_string(create_cvar(
		.name = "cm_flagmenu",
		.string = "b",
		.description = MULTI_DESC("CM_DESC_FLAGMENU")),
		eCvarData[CM_FLAG_MENU],
		charsmax(eCvarData[CM_FLAG_MENU])
	);

	bind_pcvar_num(create_cvar(
		.name = "cm_flag_check",
		.string = "1",
		.description = MULTI_DESC("CM_DESC_FLAG_CHECK"),
		.has_min = true,
		.min_val = 0.0,
		.has_max = true,
		.max_val = 1.0),
		eCvarData[CM_FLAG_CHECK]
	);

	bind_pcvar_float(create_cvar(
		.name = "cm_gravity",
		.string = "0.3",
		.description = MULTI_DESC("CM_DESC_GRAVITY")),
		eCvarData[CM_GRAVITY]
	);

	bind_pcvar_float(create_cvar(
		.name = "cm_speed",
		.string = "1000.0",
		.description = MULTI_DESC("CM_DESC_SPEED")),
		eCvarData[CM_SPEED]
	);

	bind_pcvar_float(create_cvar(
		.name = "cm_hp_on",
		.string = "250.0",
		.description = MULTI_DESC("CM_DESC_HP_ON")),
		eCvarData[CM_HP_ON]
	);

	bind_pcvar_float(create_cvar(
		.name = "cm_hp_off",
		.string = "100.0",
		.description = MULTI_DESC("CM_DESC_HP_OFF")),
		eCvarData[CM_HP_OFF]
	);

	bind_pcvar_num(create_cvar(
		.name = "cm_info_value",
		.string = "1",
		.description = MULTI_DESC("CM_DESC_INFO_VALUE"),
		.has_min = true,
		.min_val = 0.0,
		.has_max = true,
		.max_val = 3.0),
		eCvarData[CM_INFO_VALUE]
	);

	bind_pcvar_float(create_cvar(
		.name = "cm_time_info",
		.string = "50.0",
		.description = MULTI_DESC("CM_DESC_TIME_INFO")),
		eCvarData[CM_TIME_INFO]
	);

	bind_pcvar_num(create_cvar(
		.name = "cm_bot_activity",
		.string = "0",
		.description = MULTI_DESC("CM_DESC_BOT_ACTIVITY"),
		.has_min = true,
		.min_val = 0.0,
		.has_max = true,
		.max_val = 1.0),
		eCvarData[CM_BOT_ACTIVITY]
	);
}

Мультиязычность RU, EN

[en]
CM_DESC_FLAGMENU = Flag for accessing the menu.
CM_DESC_FLAG_CHECK = On/off (1/0) player search system with the menu access flag every round. (if there are no such players, the functions from the menu will be disabled)
CM_DESC_GRAVITY = Value for the function from the menu: "Gravity" (standard for the player 1.0 == 800)
CM_DESC_SPEED = Value for a function from the menu: "Speed"
CM_DESC_HP_ON = Value for the function from the menu: "Life" (when enabled, when the function is activated)
CM_DESC_HP_OFF = Value for the function from the menu: "Lives" (if disabled, return lives to default value)
CM_DESC_INFO_VALUE = System for displaying info about enabled modes from the menu. Possible values: 0-off; 1-chat only; 2-hud only; 3-chat and hud
CM_DESC_TIME_INFO = The time Interval for cm_info_value. (after this time interval, notifications will be displayed)
CM_DESC_BOT_ACTIVITY = On/off (1/0) actions of functions from the menu on bots.

CRAZY_MENU_TITLE = \w[\rСrazy menu\w]

CRAZY_MENU_ITEM1 = All gravity
CRAZY_MENU_ITEM2 = All speed
CRAZY_MENU_ITEM3 = All %dhp
CRAZY_MENU_ITEM4 = Invisibility to all

CRAZY_MENU_ON = ON
CRAZY_MENU_OFF = OFF

CRAZY_MENU_EXIT = Exit

CRAZY_MENU_HUD1 = [Special mode] - all players are given gravity!
CRAZY_MENU_HUD2 = [Special mode] - all players are given speed!
CRAZY_MENU_HUD3 = [Special mode] - all players are given %d HP!
CRAZY_MENU_HUD4 = [Special mode] - all players are given invisibility!

CRAZY_MENU_NOTIFICATION_SPAWN = Dear Player! Special modes are currently available on the server!

CRAZY_MENU_CHAT1 = ^3[^4Special regime^3] ^1There is a special ^3mode^1! All players are given ^4gravity^1!
CRAZY_MENU_CHAT2 = ^3[^4Special regime^3] ^1There is a special ^3mode^1! All players are given ^4speed^1!
CRAZY_MENU_CHAT3 = ^3[^4Special regime^3] ^1There is a special ^3mode^1! All players are issued ^4%d ^3HP^1!
CRAZY_MENU_CHAT4 = ^3[^4Special regime^3] ^1There is a special ^3mode^1! All players are given ^4invisibility^1!

[ru]
CM_DESC_FLAGMENU = Флаг доступа к меню.
CM_DESC_FLAG_CHECK = Вкл/выкл (1/0) систему поиска игроков с флагом доступа к меню каждый раунд. (если не будет таких игроков, то функции из меню выключатся)
CM_DESC_GRAVITY = Значение для функции из меню: "Гравити" (стандарт у игрока 1.0 == 800)
CM_DESC_SPEED = Значение для функции из меню: "Скорость"
CM_DESC_HP_ON = Значение для функции из меню: "Жизни" (при включении, когда активируется функция)
CM_DESC_HP_OFF = Значение для функции из меню: "Жизни" (при отключении, возвращение жизней на дефолт.значение)
CM_DESC_INFO_VALUE = Система вывода инфо о включенных режимах из меню. Возможные значения: 0-выкл; 1-только чат; 2-только hud; 3-чат и hud
CM_DESC_TIME_INFO = Интервал времени для cm_info_value. (через этот промежуток времени будет вызван показ уведомлений)
CM_DESC_BOT_ACTIVITY = Вкл/выкл (1/0) действия функций из меню на ботов.

CRAZY_MENU_TITLE = \w[\rОчумевшее меню\w]

CRAZY_MENU_ITEM1 = Всем гравити
CRAZY_MENU_ITEM2 = Всем скорость
CRAZY_MENU_ITEM3 = Всем %dхп
CRAZY_MENU_ITEM4 = Всем невидимость

CRAZY_MENU_ON = ВКЛ
CRAZY_MENU_OFF = ВЫКЛ

CRAZY_MENU_EXIT = Выход

CRAZY_MENU_HUD1 = [Особый режим] - Всем игрокам выдана гравитация!
CRAZY_MENU_HUD2 = [Особый режим] - Всем игрокам выдана скорость!
CRAZY_MENU_HUD3 = [Особый режим] - Всем игрокам выдано %d ХП!
CRAZY_MENU_HUD4 = [Особый режим] - Всем игрокам выдана невидимость!

CRAZY_MENU_NOTIFICATION_SPAWN = Ув. Игрок! Сейчас на сервере действуют особые режимы!

CRAZY_MENU_CHAT1 = ^3[^4Особый режим^3] ^1Действует особый ^3режим^1! Всем игрокам выдана ^4гравитация^1!
CRAZY_MENU_CHAT2 = ^3[^4Особый режим^3] ^1Действует особый ^3режим^1! Всем игрокам выдана ^4скорость^1!
CRAZY_MENU_CHAT3 = ^3[^4Особый режим^3] ^1Действует особый ^3режим^1! Всем игрокам выдано ^4%d ^3ХП^1!
CRAZY_MENU_CHAT4 = ^3[^4Особый режим^3] ^1Действует особый ^3режим^1! Всем игрокам выдана ^4невидимость^1!

Открытие меню управления:


say /crazy-menu
say /cm

[Обновление без изменения версии]:
[Added]:
Добавлена новая информация контактов поддержки.
Исходный код еще раз проверен на пригодность и успешное компилирование.
Пересобран архив.

__________________

Благодарности malniata, d3m37r4



[скачан: 1 раз(а)]

Комментарии к ресурсу

Комментариев пока нет. Будь первым!

Внимание! В комментариях запрещен мат, оскорбления, спам, флуд. Запрещены те комментарии, которые не относятся к тематике сайта в целом! Если будет обнаружено, то будет бан аккаунта. Оставлять комментарий к конкретному ресурсу можно только 1 раз на 1 аккаунт.

Вам необходима регистрация для отправки!