Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
NoNameUltima

Extra_RC дополнение для ключей.

Рекомендованные сообщения

Как то встала задача, чтобы в ExtraRC (ПКМ опциях), были кликабельны ВСЕ ключи.

т.е. - при клике на любой ключ, появлялись пункты меню...

Сам ExtraRC в том виде, в котором он есть, данного не позволяет, а ключей несколько сотен, и добавлять каждый это гиблое дело...

Но решить проблемку можно достаточно просто, - для этого дела, нам понадобится слегка модернизировать файл

ui_selectSlot.sqf

Сам файл теперь будет выглядеть так:

private ["_control","_button","_parent","_group","_pos","_item","_subItem","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType","_erc_cfgActions", "_erc_numActions"];
disableSerialization;
_control	=	(_this select 0);
_button		=	(_this select 1);
_parent		=	findDisplay 106;
if (_button == 1) then
	{
		_group	=	_parent displayCtrl 6902;
		_pos	=	ctrlPosition _group;
		_pos set [0, ((_this select 2) + 0.48)];
		_pos set [1, ((_this select 3) + 0.07)];
		_item	=	gearSlotData _control;
		_conf	=	configFile >> "cfgMagazines" >> _item;
		if (!isClass _conf) then
			{_conf	=	configFile >> "cfgWeapons" >> _item;};
		_name		=	getText(_conf >> "displayName");
		_cfgActions	=	_conf >> "ItemActions";
		_numActions	=	(count _cfgActions);
		_height		=	0;
		for "_i" from 0 to (_numActions - 1) do 
			{
				_menu			=	_parent displayCtrl (1600 + _i);
				_menu ctrlShow true;
				_config			=	(_cfgActions select _i);
				_type			=	getText	(_config >> "text");
				_script			=	getText	(_config >> "script");
				_outputOriented	=	getNumber	(_config >> "outputOriented") == 1;
				_height			=	_height + (0.025 * safezoneH);
				_compile		=	format["_id = '%2' %1;",_script,_item];
				uiNamespace setVariable ['uiControl', _control];
				if (_outputOriented) then
					{		
						_array			=	getArray (_config >> "output");
						_outputClass	=	(_array select 0);
						_outputType		=	(_array select 1);
						_name			=	getText (configFile >> _outputType >> _outputClass >> "displayName");
						_compile		=	 format["_id = ['%2',%3] %1;",_script,_item,_array];
					};
				_menu ctrlSetText format[_type, _name];
				_menu ctrlSetEventHandler ["ButtonClick", _compile];
			};
		//	Ключи
		_subItem	=	_item;
		_subItem	=	toArray _subItem;
		if ( (count _subItem) > 7 ) then
			{_subItem resize 7;};
		_subItem	=	toString _subItem;
		if (_subItem == "ItemKey") then
			{_erc_cfgActions	=	(missionConfigFile >> "ExtraRc" >> _subItem);}
		else
			{_erc_cfgActions	=	(missionConfigFile >> "ExtraRc" >> _item);};
		_erc_numActions	=	(count _erc_cfgActions);
		if (isClass _erc_cfgActions) then
			{
				for "_j" from 0 to (_erc_numActions - 1) do 
					{
						_menu	=	_parent displayCtrl (1600 + _j + _numActions);
						_menu ctrlShow true;
						_config	=	(_erc_cfgActions select _j);
						_text	=	getText	(_config >> "text");
						_script	=	getText	(_config >> "script");
						_height	=	_height + (0.025 * safezoneH);
						uiNamespace setVariable ['uiControl', _control];
						_menu ctrlSetText _text;
						_compile=	format["_item = '%2'; %1", _script, _item];
						_menu ctrlSetEventHandler ["ButtonClick", _compile];
					};
			};
		_pos set [3,_height];
		_group ctrlShow true;
		ctrlSetFocus _group;
		_group ctrlSetPosition _pos;
		_group ctrlCommit 0;
	};

А чтобы добавить пункты ко всем ключам, в самом ExtraRC прописываем так:

	class ItemKey
            {
                class Ultima_Client_ExtraRC_Vehicle_Find_By_Key
                    {
                        text = "Найти технику";
						script	=	"[] spawn Ultima_Client_Procedure_Vehicle_Find_By_Key;";
					};
                class Ultima_Client_ExtraRC_Vehicle_Set_Alarm
                    {
                        text = "Поставить на сигнализацию";
						script	=	"[] spawn Ultima_Client_Procedure_Vehicle_Set_Alarm;";
                    };
			};

*Пункты приведены для примера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Makliion
      Всем добрый вечер..
      У меня такой вопрос где найти или заказать скрипт для обыска зомбей & игроков 
      что-бы каждую вещь снимать через действие а не тупо через таб
      Шлем отдельно
      Рюкзак отдельно
      ну и на все остальные слоты
      искал долго не нашёл ничего
      есть мод на обыск но он просто открывает  инвентарь и все 
       
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка