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

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

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

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

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

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

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

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

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

 

Что это?

Этот скрипт добавляет анимации к некоторой технике: Сув с миниганом, МВ-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. Это мой первый пост, не судите строго. Поставьте + в репу, если не жалко

Изменено пользователем ZerG (история изменений)

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


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





Молодец, Санёк. Лови +

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


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

есть еше к с130

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

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


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

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

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


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

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

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

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


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

 

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

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

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


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

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

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


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

перезалил

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


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

В оригинале этого скрипта есть анимация 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
Изменено пользователем rss_adm (история изменений)

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


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

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

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


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

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

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


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

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",

Изменено пользователем Sash96rus (история изменений)

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


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

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

А как ты сделал? Можешь помочь?

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


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

Все разобрался)) проблема была с моей стороны)) Спасибо)

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


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

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

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

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


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

Топай писать конфиг анимации, только так :)
Тут просто идет вызов самой анимации.

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


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

Топай писать конфиг анимации, только так :)

Тут просто идет вызов самой анимации.

а нельзя просто замедление как то написать?

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


Ссылка на сообщение
Поделиться на других сайтах
Анимации для 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",
];

 

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


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

Ссылка пустая,поправте.

 

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


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

Архив не качается((

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • Автор: 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: 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, с его помощью можно творить поистину интересные локации!
    • Автор: Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
  • Наш выбор

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

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

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