Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
Oakling

Как расширить меню на ПКМ?

Здравствуйте! Проблема собственно в том, что русский перевод опций на пкм занимает гораздо больше места чем английский. В результате иногда вообще непонятно что можно сделать с этим предметом. Вопрос в том как расширить меню, в идеале оно должно подстраиваться под ширину текста.



Извините, не там создал, переместите пожалуйста в помощь

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts






  • 0

в кастомном ui_selectslot.sqf найти _group ctrlSetPosition _pos;

чуть выше вставить

 

_delta = 0.2;
_pos set [2,(_pos select 2) + _delta];

Подобрать _delta эксперементальным путем, увеличивая или уменьшая по 0.05.

Share this post


Link to post
Share on other sites
  • 0

Не работает, пытался вставлять и выше и ниже переменной _pos которая в файле, комментировал ее, просто пропадает меню(((

Share this post


Link to post
Share on other sites
  • 0

Не работает, пытался вставлять и выше и ниже переменной _pos которая в файле, комментировал ее, просто пропадает меню(((

Шта?

 

Найди кусок кода

	_pos set [3,_height];
	//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];		

	_group ctrlShow true;
	ctrlSetFocus _group;
	_group ctrlSetPosition _pos;
	_group ctrlCommit 0;

Вставить нужно перед _group ctrlSetPosition _pos; должно было было получиться так

 

_pos set [3,_height];
//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];		

_group ctrlShow true;
ctrlSetFocus _group;
_delta = 0.2;
_pos set [2,(_pos select 2) + _delta];
_group ctrlSetPosition _pos;
_group ctrlCommit 0;

Share this post


Link to post
Share on other sites
  • 0

Я так и делал, даже 0.9 ставил, никаких изменений. Вот весь кастомный файл ui_selectSlot.sqf из скрипта click_actions

 

 

 

 

private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control =  _this select 0;
_button =   _this select 1;
_parent =   findDisplay 106;
//if ((time - dayzClickTime) < 1) exitWith {};
if (!DZE_SelfTransfuse && ((gearSlotData _control) == "ItemBloodBag")) exitWith {};
if (_button == 1) then {
    //dayzClickTime = time;
    _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;
   
    //Populate Menu
    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 {
            /*
                This flag means that the action is output oriented
                the output class will then be transferred to the script
                && the type used for the name
            */         
            _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];
    };    //### BEGIN MODIFIED CODE: extra click actions
    {
        private["_classname","_text","_execute","_condition"];
        _classname   = _x select 0;
        _text        = _x select 1;
        _execute     = _x select 2;
        _condition   = _x select 3;
        // if the clicked item matches, then assign the script call and display text
        if(_item == _classname && (call compile _condition)) then {
            _menu = _parent displayCtrl (1600 + _numActions);
            _menu ctrlShow true;
            _height = _height + (0.025 * safezoneH);
            uiNamespace setVariable ['uiControl', _control];
            _menu ctrlSetText _text;
            _menu ctrlSetEventHandler ["ButtonClick",_execute];
            _numActions = _numActions + 1;
        };
    } forEach DZE_CLICK_ACTIONS;
    //### END MODIFIED CODE: extra click actions    _pos set
[3,_height];
//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos]; 
_group ctrlShow true;
ctrlSetFocus _group;
_delta = 0.9;
_pos set [2,(_pos select 2) + _delta];
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};
 

 

 

 

Share this post


Link to post
Share on other sites
  • 0

 

Вот весь кастомный файл ui_selectSlot.sqf из скрипта click_actions

 

 

Если изменения не отображаются, можно предположить что кастомный файл не используется. Проверь:

    player_selectSlot =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";

в файле compiles.sqf. Должен быть путь до твоего файла, примерно так:

    player_selectSlot =            compile preprocessFileLineNumbers "custom\ui_selectSlot.sqf";

А также кастомный compiles.sqf в init.sqf:

progressLoadingScreen 0.4;
call compile preprocessFileLineNumbers "custom\compiles.sqf";                //Compile regular functions

Проверить лишним не будет.

Share this post


Link to post
Share on other sites
  • 0

В compiles.sqf кастомный ui_selectSlot не был подключен, хотя как ни странно, все скрипты навешанные на click_actions работали нормально, подключил, но все равно никакой реакции. Кастомный compiles.sqf в init.sqf конечно подключен.

Share this post


Link to post
Share on other sites
  • 0

Только что попробовал на тестовом сервере. Действительно не работает. Странно...

Share this post


Link to post
Share on other sites
  • 0

Было немного времени потестить, придумал такое решение, правда ширина меню будет зависеть от разрешения и указанного размера интерфейса:

 

В ui_selectslot.sqf найти _menu ctrlShow true; вставить !!!ПЕРЕД!!! ним следующий кусок кода

_mpos =  ctrlPosition _menu;
_mpos set [2, 0.15 * SafeZoneW ];
_menu ctrlSetPosition _mpos;
_menu ctrlCommit 0;   

 

     Если стоит скрипт от Маки на ПКМ, то найти второе вхождение _menu ctrlShow true;

Share this post


Link to post
Share on other sites
  • 0

Большое спасибо за ответ, и проделанную работу, меню действительно стало шире на нормальном интерфейсе, на других не могу пока проверить адекватно, у меня  сгорел рабочий 24' монитор, сейчас работаю на вспомогательной пятнашке 4:3. Кое где края текста к сожалению обрезаются, но по крайней мере сейчас можно понять что написано), А а какие значения надо менять чтобы еще поэкспериментировать?

Share this post


Link to post
Share on other sites
  • 0
_mpos set [2, 0.15 * SafeZoneW ];

Если сильно не вдаваться в подробности, то меняй 0.15 на более высокое значение. Но я не рекомендую, ибо у меня на 1920*1080 и меленьком интерфейсе эта менюшка шире стандартной в более чем в 2 раза. Если смотреть конфиги idc 1600+ то там вообще 0.058. Так, что думаю увеличение будет лишним.

Share this post


Link to post
Share on other sites
  • 0

Спасибо большое, нашел оптимальный вариант, теперь все читается!  Но совершенству нет предела, ведь можно же сделать чтобы оно подстраивалось под текст. Если будете еще экспериментировать и у Вас что-то получится, пожалуйста, дайте знать.

Share this post


Link to post
Share on other sites
  • 0

У меня другой вопрос. Как перевести опции на пкм?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • By fedotovyasha
      Хочу немного изменить сообщения перед отправкой клиенту
    • By fedotovyasha
      Пишу свой лаунчер на c#. Скачал клиент в котором был loader.exe. С ним работает норм, но я хочу без него запускать игру. Как это сделать? (Пиратка)
    • By Miduznya
      Собственно как, как отключить battleye на сервере античит

      параметр BattlEye=0; не работает я так понял 
    • By DrTauren
      На нашем сайте предусмотрена возможность рекламирования вашего игрового сервера/сайта/програмного обеспечения при помощи баннеров и ссылок.
       
      Баннеры под первым сообщением темы ↓
       
      Баннер на главной странице (над чатом) ↓
       
      Ссылки над первым сообщением темы ↓
       
      Ссылка на главной странице (над чатом) ↓
       
       

      Заявку вы можете заполнить в этой же теме, либо написать мне в ЛС.
      Любые сообщения не по теме запрещены.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.