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
ZerG

Анимация Сува/МВ-22/UH-1Y/AH-1Z

Recommended Posts

Доброго времени суток всем.

Лазил по форуму не нашел этот скрипт(доступа в приват пока нету, так что хз есть он там  или нет), перевел, доработал и выкладываю.

 

Что это?

Этот скрипт добавляет анимации к некоторой технике: Сув с миниганом, МВ-22, UH-1Y и AH-1Z.

 

Данная версия скрипта взята с Эпочкома и переработана мной(в оригинале нет анимации Z1 и действия есть не актуальные(Разложить скопу у мв при ее УЖЕ разложенном состоянии))

Скрины:

 

 

Сув арморед с опущенным пулеметом : 

suv.png

Мв со сложенной скопой и открытым люком:

22.jpg

AH1Z  со сложенными лопостями:

1z.jpg

UH-1Y со сложенными лопостями: 

1y.jpg

 

 

 

Для установки нам понадобится:

  1. Архив
  2. кастомный variables.sqf
  3. Кастомный compiles.sqf
  4. кастомный fn_selfActions.sqf

Установка:

  1. Кидаем файлы из архива в mpmissions(куда хотите)
  2. Открываем кастомный variables.sqf
  3. Находим кусок кода : 

    dayz_resetSelfActions = {

  4. Под ним вставляем: 

    mv22_fold = -1;
    mv22_unfold = -1;
    mv22_open = -1;
    mv22_close = -1;
    suv_close = -1;
    suv_open = -1;
    UH1Y_fold = -1;
    UH1Y_unfold = -1;
    AH1Z_fold = -1;
    AH1Z_unfold = -1;

  5. Открываем кастомный compiles.sqf
  6. Находим кусок кода: 

    if (!isDedicated) then {

  7. Под ним вставляем: 

    mv22_pack = compile preprocessFileLineNumbers "\ca\air2\mv22\scripts\pack.sqf";
    UH1Y_pack = compile preprocessFileLineNumbers "\ca\air2\UH1Y\scripts\fold.sqf";
    AH1Z_pack = compile preprocessFileLineNumbers "\ca\air\scripts\AH1Z_fold.sqf";

  8. Открываем кастомный fn_selfActions.sqf
  9. Находим кусок кода:

    if (_canPickLight && !dayz_hasLight && !_isPZombie) then {
    if (s_player_grabflare < 0) then {
    _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName");
    s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""];
    s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""];
    };
    } else {
    player removeAction s_player_grabflare;
    player removeAction s_player_removeflare;
    s_player_grabflare = -1;
    s_player_removeflare = -1;
    };

  10. Под ним вставляем:

    Для МВ

    /*mv*/
    if (_inVehicle && ((_vehicle isKindOf "MV22")or(_vehicle isKindOf "MV22_DZ"))) then {
    // при запуске двигателя принудительно разворачиваем скопу
    if (isEngineOn _vehicle) then {
    [_vehicle,0] call mv22_pack;
    };
    if ((mv22_fold < 0)and(!(isEngineOn _vehicle))) then {
    themv22 = _vehicle;
    if ((_vehicle animationPhase "pack_engine_1") < 1) then {
    mv22_fold = themv22 addAction ["Сложить скопу","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\mv22_fold.sqf","",5,false,true];
    themv22 removeAction mv22_unfold;
    mv22_unfold = -1;
    };
    };
    if ((mv22_unfold < 0)and(!(isEngineOn _vehicle))) then {
    themv22 = _vehicle;
    if ((_vehicle animationPhase "pack_engine_1") > 0) then {
    mv22_unfold = themv22 addAction ["Разложить скопу","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\mv22_unfold.sqf","",5,false,true];
    themv22 removeAction mv22_fold;
    mv22_fold = -1;
    };
    };
    if (mv22_open < 0) then {
    themv22 = _vehicle;
    if ((_vehicle animationPhase "ramp_bottom") < 1) then {
    mv22_open = themv22 addAction ["Открыть люк","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\mv22_open.sqf","",5,false,true];
    themv22 removeAction mv22_close;
    mv22_close = -1;
    };
    };
    if (mv22_close < 0) then {
    themv22 = _vehicle;
    if ((_vehicle animationPhase "ramp_bottom") > 0) then {
    mv22_close = themv22 addAction ["Закрыть люк","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\mv22_close.sqf","",5,false,true];
    themv22 removeAction mv22_open;
    mv22_open = -1;
    };
    };
    //отключаем действия с винтом (в коментах действия с рампой) если двигатель запущен
    if (isEngineOn _vehicle) then {
    themv22 removeAction mv22_fold;
    mv22_fold = -1;
    themv22 removeAction mv22_unfold;
    mv22_unfold = -1;
    // themv22 removeAction mv22_open;
    // mv22_open = -1;
    // themv22 removeAction mv22_close;
    // mv22_close = -1;

    };
    } else {
    //отключаем меню если игрок не в технике
    if (!isNil "_vehicle") then {
    themv22 removeAction mv22_fold;
    mv22_fold = -1;
    themv22 removeAction mv22_unfold;
    mv22_unfold = -1;
    themv22 removeAction mv22_open;
    mv22_open = -1;
    themv22 removeAction mv22_close;
    mv22_close = -1;
    };
    };


    Для Сува

    if (_inVehicle && ((_vehicle isKindOf "ArmoredSUV_PMC")or(_vehicle isKindOf "ArmoredSUV_PMC_DZ")or(_vehicle isKindOf "ArmoredSUV_PMC_DZe"))) then {

    if ((_vehicle animationPhase "HideGun_01") == 1) then {
    _unit = _vehicle turretUnit [0];
    if (!(isNull _unit)) then {
    _unit action ["moveToCargo",_vehicle,2];
    titleText ["\n\nYou must open the hatch first.","PLAIN DOWN"];titleFadeOut 4;
    };
    };
    if (suv_close < 0) then {
    thesuv = _vehicle;
    if ((_vehicle animationPhase "HideGun_01") < 1) then {
    suv_close = thesuv addAction ["Спрятать пулемет","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\suv_close.sqf","",5,false,true];
    thesuv removeAction suv_open;
    suv_open = -1;
    };
    };
    if (suv_open < 0) then {
    if ((_vehicle animationPhase "HideGun_01") > 0) then {
    suv_open = thesuv addAction ["Поднять пулемет","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\suv_open.sqf","",5,false,true];
    thesuv removeAction suv_close;
    suv_close = -1;
    };
    };
    } else {
    if (!isNil "thesuv") then {
    thesuv removeAction suv_close;
    suv_close = -1;
    thesuv removeAction suv_open;
    suv_open = -1;
    };
    };



    Для 1У

    /*1y*/
    if (_inVehicle && ((_vehicle isKindOf "UH1Y")or(_vehicle isKindOf "UH1Y_DZ")or(_vehicle isKindOf "UH1Y_DZE"))) then {
    if (isEngineOn _vehicle) then {
    [_vehicle,0] call UH1Y_pack;
    };

    if ((UH1Y_fold < 0)and(!(isEngineOn _vehicle))) then {
    theuh1y = _vehicle;
    if ((_vehicle animationPhase "mainrotor_folded") > 0) then {
    UH1Y_fold = theuh1y addAction ["Сложить винт","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\UH1Y_fold.sqf","",5,false,true];
    theuh1y removeAction UH1Y_unfold;
    UH1Y_unfold = -1;
    };
    };
    if ((UH1Y_unfold < 0)and(!(isEngineOn _vehicle))) then {
    theuh1y = _vehicle;
    if ((_vehicle animationPhase "mainrotor_folded") < 1) then {
    UH1Y_unfold = theuh1y addAction ["Разложить винт","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\UH1Y_unfold.sqf","",5,false,true];
    theuh1y removeAction UH1Y_fold;
    UH1Y_fold = -1;
    };
    };

    if (isEngineOn _vehicle) then {
    theuh1y removeAction UH1Y_fold;
    UH1Y_fold = -1;
    theuh1y removeAction UH1Y_unfold;
    UH1Y_unfold = -1;
    };
    } else {
    if (!isNil "_vehicle") then {
    theuh1y removeAction UH1Y_fold;
    UH1Y_fold = -1;
    theuh1y removeAction UH1Y_unfold;
    UH1Y_unfold = -1;
    };
    };



    Для 1Z

    /*1z*/
    if (_inVehicle && (_vehicle isKindOf "AH1Z")) then {
    if (isEngineOn _vehicle) then {
    [_vehicle,0] call AH1Z_pack;
    };
    if ((AH1Z_fold < 0)and(!(isEngineOn _vehicle))) then {
    theAH1Z = _vehicle;
    if ((_vehicle animationPhase "mainrotor_folded") > 0) then {
    AH1Z_fold = theAH1Z addAction ["Сложить винт","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\AH1Z_fold.sqf","",5,false,true];
    theAH1Z removeAction AH1Z_unfold;
    AH1Z_unfold = -1;
    };
    };
    if ((AH1Z_unfold < 0)and(!(isEngineOn _vehicle))) then {
    theAH1Z = _vehicle;
    if ((_vehicle animationPhase "mainrotor_folded") < 1) then {
    AH1Z_unfold = theAH1Z addAction ["Разложить винт","*ВАШ ПУТЬ, КУДА СКИНУЛИ ФАЙЛЫ ИЗ АРХИВА*\AH1Z_unfold.sqf","",5,false,true];
    theAH1Z removeAction AH1Z_fold;
    AH1Z_fold = -1;
    };
    };
    if (isEngineOn _vehicle) then {
    theAH1Z removeAction AH1Z_fold;
    AH1Z_fold = -1;
    theAH1Z removeAction AH1Z_unfold;
    AH1Z_unfold = -1;
    };
    } else {
    if (!isNil "_vehicle") then {
    theAH1Z removeAction AH1Z_fold;
    AH1Z_fold = -1;
    theAH1Z removeAction AH1Z_unfold;
    AH1Z_unfold = -1;
    };
    };


  11. Сохраняем, запаковываем, радуемся!

Для владельцов Инфистара!!!

 

1)Открываем AHconfig/
2)Находим :
_dayzActions =
3) после него вставляем:
mv22_fold,mv22_unfold,mv22_open,mv22_close,suv_close,suv_open,UH1Y_fold,UH1Y_unfold,AH1Z_fold,AH1Z_unfold

 

 

P.S. Это мой первый пост, не судите строго. Поставьте + в репу, если не жалко

Edited by ZerG (see edit history)

Share this post


Link to post
Share on other sites







есть еше к с130

А оно надо кому-то??? С-130, вроде как, покупают разве что для покатушек или сбросить на кого-нибудь.

Share this post


Link to post
Share on other sites

@@ZerG, видосик бы ещё или скриншоты  :wink:  А так плюс. Давно как-то хотел выложить это, но руки не дошли  :wacko:

Share this post


Link to post
Share on other sites

@@ZerG, видосик бы ещё или скриншоты  :wink:  А так плюс. Давно как-то хотел выложить это, но руки не дошли  :wacko:

Прикрепил скрины=)

Share this post


Link to post
Share on other sites

 

Прикрепил скрины=)

Скрины прикрепи на сайт, размещение фото на фотохостингах/файлообмениках категорически запрещенно

Share this post


Link to post
Share on other sites

@@ZerG, да. На сайт выложи. + 3 из 4х ссылок не действительны  :blink:  

Share this post


Link to post
Share on other sites

В оригинале этого скрипта есть анимация AH1Z 

http://opendayz.net/threads/release-animated-vehicles.20108/

 

Скрипт работает. Спасибо! 

Но жутко спамит на стороне клиента в рпт

 

if (!isNil "_vehicle") then {
themv22 removeAction mv22_fold;
mv22_fol>
  Error position: <themv22 removeAction mv22_fold;
mv22_fol>
  Error Undefined variable in expression: themv22

Error in expression <
} else {
if (!isNil "_vehicle") then {
theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error position: <theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error Undefined variable in expression: theuh1y

Error in expression <
} else {
if (!isNil "_vehicle") then {
theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error position: <theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error Undefined variable in expression: theah1z

Error in expression <} else {

if (!isNil "_vehicle") then {
themv22 removeAction mv22_fold;
mv22_fol>
  Error position: <themv22 removeAction mv22_fold;
mv22_fol>
  Error Undefined variable in expression: themv22

Error in expression <
} else {
if (!isNil "_vehicle") then {
theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error position: <theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error Undefined variable in expression: theuh1y

Error in expression <
} else {
if (!isNil "_vehicle") then {
theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error position: <theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error Undefined variable in expression: theah1z

Error in expression <} else {

if (!isNil "_vehicle") then {
themv22 removeAction mv22_fold;
mv22_fol>
  Error position: <themv22 removeAction mv22_fold;
mv22_fol>
  Error Undefined variable in expression: themv22

Error in expression <
} else {
if (!isNil "_vehicle") then {
theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error position: <theuh1y removeAction UH1Y_fold;
UH1Y_fol>
  Error Undefined variable in expression: theuh1y

Error in expression <
} else {
if (!isNil "_vehicle") then {
theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error position: <theAH1Z removeAction AH1Z_fold;
AH1Z_fol>
  Error Undefined variable in expression: theah1z
Edited by rss_adm (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Заработал только для сува, с воздушной техникой никак не хочет

Share this post


Link to post
Share on other sites

mv22_pack = compile preprocessFileLineNumbers "\ca\air2\mv22\scripts\pack.sqf"; UH1Y_pack = compile preprocessFileLineNumbers "\ca\air2\UH1Y\scripts\fold.sqf"; AH1Z_pack = compile preprocessFileLineNumbers "\ca\air\scripts\AH1Z_fold.sqf";

 

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

\ca\air2\mv22\scripts\pack.sqf" Может нужно такой mv22_fold.sqf

 

 

 

1)Открываем AHconfig/ 2)Находим : _dayzActions = 3) после него вставляем: mv22_fold,mv22_unfold,mv22_open,mv22_close,suv_close,suv_open,UH1Y_fold,UH1Y_unfold,AH1Z_fold,AH1Z_unfold

 

Ну и тут тоже

 Разве не так нужно??? 

"mv22_fold","mv22_unfold","mv22_open","mv22_close","suv_close","suv_open","UH1Y_fold","UH1Y_unfold","AH1Z_fold","AH1Z_unfold",

Edited by Sash96rus (see edit history)

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

В целом работает, только есть недочеты: Анимация сворачивания у МВ-22 на мой взгляд слишком быстрая, у UH1Y винт сворачивается вовсе без анимации)

Может кто знает как поправить?)

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
Анимации для C130J, Merlin, Mi24
Установка идентична первому посту из этой темы.
 

variables.sqf

    c130d_open = -1;
    c130d_close = -1;
    c130r_open = -1;
    c130r_close = -1;
    mi24r_open = -1;
    mi24r_close = -1;
    mi24l_open = -1;
    mi24l_close = -1;
    merlinr_open = -1;
    merlinr_close = -1;
    merlinl_open = -1;
    merlinl_close = -1;

 

fn_selfActions.sqf

if (_inVehicle && {_vehicle isKindOf "C130J_US_EP1"}) then {
   if (c130d_open < 0) then {
     thec130 = _vehicle;
     if !(isEngineOn thec130) then {
       c130d_open = thec130 addAction ["Open Door","custom\animate\c130d_open.sqf","",-12,false,true];
       c130d_close = thec130 addAction ["Close Door","custom\animate\c130d_close.sqf","",-13,false,true];
       c130r_open = thec130 addAction ["Open Ramp","custom\animate\c130r_open.sqf","",-14,false,true];
       c130r_close = thec130 addAction ["Close Ramp","custom\animate\c130r_close.sqf","",-15,false,true];
     };
   };
} else {
    if (!isNil "thec130") then {
       thec130 removeAction c130d_open;
       c130d_open = -1;
       thec130 removeAction c130d_close;
       c130d_close = -1;
       thec130 removeAction c130r_open;
       c130r_open = -1;
       thec130 removeAction c130r_close;
       c130r_close = -1;
   };
};


if (_inVehicle && {_vehicle isKindOf "Mi24_Base"}) then {
   if (mi24r_open < 0) then {
     themi24 = _vehicle;
      if !(isEngineOn themi24) then {
      mi24r_open = themi24 addAction ["RDoor Open","custom\animate\mi24r_open.sqf","",-12,false,true];
       mi24r_close = themi24 addAction ["RDoor Close","custom\animate\mi24r_close.sqf","",-13,false,true];
       mi24l_open = themi24 addAction ["LDoor Open","custom\animate\mi24l_open.sqf","",-14,false,true];
       mi24l_close = themi24 addAction ["LDoor Close","custom\animate\mi24l_close.sqf","",-15,false,true];
     };
   };
} else {
    if (!isNil "themi24") then {
       themi24 removeAction mi24r_open;
       mi24r_open = -1;
       themi24 removeAction mi24r_close;
       mi24r_close = -1;
       themi24 removeAction mi24l_open;
       mi24l_open = -1;
       themi24 removeAction mi24l_close;
       mi24l_close = -1;
   };
};


if (_inVehicle && {_vehicle isKindOf "BAF_Merlin_HC3_D"}) then {
   if (merlinr_open < 0) then {
     themerlin = _vehicle;
      if !(isEngineOn themerlin) then {
       merlinr_open = themerlin addAction ["RDoor Open","custom\animate\merlinr_open.sqf","",-12,false,true];
       merlinr_close = themerlin addAction ["RDoor Close","custom\animate\merlinr_close.sqf","",-13,false,true];
       merlinl_open = themerlin addAction ["LDoor Open","custom\animate\merlinl_open.sqf","",-14,false,true];
       merlinl_close = themerlin addAction ["LDoor Close","custom\animate\merlinl_close.sqf","",-15,false,true];
     };
   };
} else {
    if (!isNil "themerlin") then {
       themerlin removeAction merlinr_open;
       merlinr_open = -1;
       themerlin removeAction merlinr_close;
       merlinr_close = -1;
       themerlin removeAction merlinl_open;
       merlinl_open = -1;
       themerlin removeAction merlinl_close;
       merlinl_close = -1;
   };
};

 

custom\animate\c130d_close.sqf

thec130 animate ["door_2_1",0];
thec130 animate ["door_1",0];

 

custom\animate\c130d_open.sqf
thec130 animate ["door_2_1",1];
thec130 animate ["door_1",1];

 

custom\animate\c130r_close.sqf

thec130 animate ["ramp_top",0];
thec130 animate ["ramp_bottom",0];

 

custom\animate\c130r_open.sqf
thec130 animate ["ramp_top",1];
thec130 animate ["ramp_bottom",1];

 

custom\animate\merlinl_close.sqf

themerlin animate ["DVERE_L",1];
themerlin animate ["DVERE_L_POP",1];

 

custom\animate\merlinl_open.sqf

themerlin animate ["DVERE_L",0];
themerlin animate ["DVERE_L_POP",0];

 

custom\animate\merlinr_close.sqf

themerlin animate ["DVERE_P",1];
themerlin animate ["DVERE_P_POP",1];

 

custom\animate\mi24l_close.sqf

themi24 animate ["dvere_l_vrch",0];
themi24 animate ["dvere_l_spod",0];

 

custom\animate\mi24l_open.sqf

themi24 animate ["dvere_l_vrch",1];
themi24 animate ["dvere_l_spod",1];

 

custom\animate\mi24r_close.sqf

themi24 animate ["dvere_p_vrch",0];
themi24 animate ["dvere_p_spod",0];

 

custom\animate\mi24r_open.sqf

themi24 animate ["dvere_p_vrch",1];
themi24 animate ["dvere_p_spod",1];

 

Если установлен infistar:

AHconfig.sqf

_dayzActions =
[
"c130d_open","c130d_close","c130r_open","c130r_close",
"merlinl_close","merlinl_open","merlinr_close","merlinr_open",
"mi24l_close","mi24l_open","mi24r_close","mi24r_open",
];

 

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 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Сразу делаю пометку, метод, который добавили нам разработчики игры в патче 1.15, очень хорошо описал наш товарищ в сообщении форума:
      Рекоммендую вам использовать именно его!
      Ниже опубликованы старые методы.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • By Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • By CubeIn
      Здарова, уважаемые знатоки, вопрос.
      Мне скриптер скинул скрипт и сказал закинуть её в северную часть, но не указал куда именно. Подскажите пожалуйста, куда мне её деть? 
    • By CubeIn
      Здарова всем!
      У меня срочный вопрос опытным хозяинам серверостроения. Есть ли возможность настроить холод на карте Namalsk? А то слишком холодновато игрокам, а где это настраивать...
  • 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.