Jump to content
ToxaSM

Вопросы по созданию МП-миссий

Recommended Posts

Как можно убрать барахло из рюкзака медика, которое появляется там, как я понял, из-за самого факта, что юнит - медик?

Хочу, чтобы в рюкзаке было только то, что я положил, но не получается. Моё содержимое плюсуется к десяткам бинтов, медкитов и жгутов.

Share this post


Link to post
Share on other sites

@crabe, значит в юнитпрцессоре это и прописано, может ты это где-нибудь и пропускаешь, первый раз про такое слышу 

Share this post


Link to post
Share on other sites

@crabe, у миба вот так:

       

case "M" : {// Санитарный инструктор.
            _unit setVariable ["ace_w_ismedic", true];

              ...всякое барахло...
            _unit setVariable ["ACE_weapononback", "ACE_Rucksack_MOLLE_Green_Medic"];
            _unit setVariable ["ACE_RuckMagContents", [["ACE_LargeBandage", 6, [1, 1, 1, 1, 1, 1]], ["ACE_Bandage", 8, [1, 1, 1, 1, 1, 1, 1, 1]], ["ACE_Morphine", 8, [1, 1, 1, 1, 1, 1, 1, 1]], ["ACE_Epinephrine", 8, [1, 1, 1, 1, 1, 1, 1, 1]], ["ACE_MedKit", 10, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]]];
        };

 

А в модуле "Ранения: Включить систему ранений" в ините прописано следующее:

if (isServer) then { ace_sys_wounds_no_medical_gear = true; publicVariable "ace_sys_wounds_no_medical_gear" };

Share this post


Link to post
Share on other sites

@ToxaSM,

вот процессор

 

case "MEDIC" : {//Медик
{_unit addMagazine "30Rnd_762x39_AK47"} forEach [0,0,0,0,0,0,0,0];
{_unit addMagazine "HandGrenade_East"} forEach [0,0];
{_unit addMagazine "ACE_Morphine"} forEach [0];
{_unit addMagazine "ACE_Epinephrine"} forEach [0];
_unit addWeapon "ACE_AKMS";
_unit addWeapon "ItemCompass";
_unit addWeapon "ItemWatch";
_unit addWeapon "ItemRadio";
_unit addWeapon "ACE_Map";
_unit addWeapon "ACE_Rucksack_EAST";

_unit setVariable ["ACE_RuckMagContents",[["ACE_Bandage",6],["ACE_LargeBandage",3],["ACE_Morphine",4],["ACE_Epinephrine",3],["ACE_Medkit",2]]]; 

 

а вот что получилось

 

http://prntscr.com/5ixdx9

Share this post


Link to post
Share on other sites

Как можно понять какие юниты и техника имеют теплокарты, а какие нет?

Всё OAшное имеет, а остальное без них? Или есть исключения?

Share this post


Link to post
Share on other sites

@crabe, вот тут все еще туманнее. Ванильная и АСЕсовская должны иметь. А вот из других аддонов - надо смотреть. В свое время смотрел тушки и там были только одни морпехи с теплокартами. У них еще штаны убогие, таких только ночью ставить, чтоб не позориться.

Edited by TRUE

Share this post


Link to post
Share on other sites

Подскажите пожалуйста у нас миску, где радар техники закрывается какой то картинкой.

Вопрос так же, возможно ли что бы только в этой технике закрывался радар, а если вылазишь из неё и садишься в другую то нет.

Share this post


Link to post
Share on other sites

Может кто сталкивался - как можно в ините артиллерии ограничить дальность стрельбы? Имеется ввиду ванильная артиллерия с арт компьютером. Хочу чтобы она покрывала не весь остров, а только часть. Можно ли это увязать с отключением режимов стрельбы "Далеко" и "Очень далеко" и оставить только "Близко" и "Средний"?

Share this post


Link to post
Share on other sites

В теории можно убрать режимы, для этого нужно:

1. Узнать IDD дисплея с арт компьютером
2. Узнать IDC листбокса c режимами
3. И удалить из списка не нужный режим https://community.bistudio.com/wiki/lbDelete
 

// код примерный прямиком с коленки

[] swapn {
   while {true} do {
      _disp = findDisplay <IDD>;
      if (isNil "_disp") then {     
         _ctrl = _disp displayCtrl <IDC>;
         if (<условие что бы повторно не удалять) then {
            _control lbDelete <индекс режима в списке>;
         };
      };
      sleep 0.1; 
   };   
};

Если получиться, то потом можно оптимизировать, что бы цикл не крутился.

 

Не зная первые два пункта не проверить, а узнать затратно или в pbo копаться или https://community.bistudio.com/wiki/allDisplays https://community.bistudio.com/wiki/allControls

 

Есть еще способы но это вроде самый адекватный и более менее простой, а так что бы просто скриптом настройки компьютера сменить - не видел.

Share this post


Link to post
Share on other sites

@Ezhuk, спасибо за ценную наводку :) Полчаса свободного времени и я нашел значения нужных элементов


Display #-1


Control #510

Вот рабочий скрипт (удаляются два последних пункта режима стрельбы):

_art1 = _this; //Object-caller

disableSerialization;
while {true} do {
waitUntil {(not (isNull (gunner _art1))) && (not (isNull (findDisplay -1)))}; //Ждать пока кто-то сядет на стрелка и включит арткомпьютер
_disp = findDisplay -1; //ID of Display
_ctrl = _disp displayCtrl 510; //ID of Cotrols; _ctrl type - Control
_ctrl lbDelete 4; //Индексы режимов, которые надо выключить
_ctrl lbDelete 3;
_ctrl lbDelete 2;
waitUntil {isNull (findDisplay -1)}; //ждать пока арткомпьютер будет выключен

sleep 0.1;
};

Я по оптимизации в этом огороде еще новичек, но вроде здоровых альтернатив waitUntil не нашел.

Эта штука локально выполняется? Или этот скрипт крутится на сервере, если он вызывается из инита арты?

 

UPD: Дорисовал немного. Теперь точно работает как надо. Только вот по умолчанию включен режим самый первый и убирание этого режима из списка проблему не решает - выбрать его повторно нельзя, но при каждом новом включении арткомпьютера режим по умолчанию включается. В моем случае это не смертельно.

Edited by Nickorr

Share this post


Link to post
Share on other sites

https://community.bistudio.com/wiki/lbSetCurSel - на счет выбора режима

_ctrl lbSetCurSel 1; 
waitUntil {(not (isNull (gunner _art1))) && (not (isNull (findDisplay -1)))};

лучше заменить на 

waitUntil {sleep 0.5; (player in crew _art1) && (not (isNull (findDisplay -1)))};

И в начало скрипта надо добавить, что бы на сервере не выполнялось 

if (isDedicated) exitWith {};

Share this post


Link to post
Share on other sites

@Ezhuk, спасибо за советы, сейчас подправлю.

 


И в начало скрипта надо добавить, что бы на сервере не выполнялось  if (isDedicated) exitWith {};

А если допустим скрипт (другой для другой миссии), который заряжает арту - он же должен быть серверным и на клиентах вообще пройдет вхолостую? Или в нем стоит прописать, соответственно:

if !(isDedicated) exitWith {}; 

?

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

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.