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

    Create a theme in the appropriate section
    No need to write everything in the chat!
  • Sell or buy?

    Use the services of a guarantor
    We will make your transaction safe
  • Don't want a BAN?

    Please read our rules
    Don't disturb the order
  • Visit the market

    There you can sell or buy
    Everything related to game servers
  • 0
pekar0201

Как уменьшить дамаг по постройкам.

Можно-ли как-то уменьшить дамаг по постройкам? Т.е. постройкам игроков, базы и т.д., без редактирования мода?
Если да - как можно это всё провернуть!?

Edited by FROZ (see edit history)

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Так же в интернете нашёл способ как изменить сам получаемый урон для построек, как ты и просил. Но лично не тестировал:
 

Цитата

 

В папке с миссией создаем папку Custom, создаем в ней файл cinder_handleDamage.sqf. Вставляем в него следующий код:


private["_unit","_selection","_strH","_total","_damage","_needUpdate"];
_unit = _this select 0;
_selection = _this select 1;
_dammage = _this select 2;
_old_dammage = getdammage _unit;
_delta = abs (_old_dammage - _dammage);
_total = _old_dammage + _delta * 0.1; // 0.1 - множитель на сколько уменьшаем дамаг. 0.1 = в 10 раз
                                      // 0.5 = 2 раза
                                      // и тд.
if (_selection != "") then {
    _strH = "hit_" + _selection;
} else {
    _strH = "totalDmg";
};
if (_total >= 0.98) then {
        _total = 1.0;
};
if (local _unit) then {
    if (_total > 0) then {
        _unit setVariable [_strH, _total, true];
        _unit setHit [_selection, _total];
                if (isServer) then {
            [_unit, "damage"] call server_updateObject;
        } else {
            PVDZE_veh_Update = [_unit,"damage"];
            publicVariableServer "PVDZE_veh_Update";
        };
    };
} else {
    PVDZE_send = [_unit,"VehHandleDam",_this];
    publicVariableServer "PVDZE_send";
};
_total

В вашем кастомном compiles.sqf ищем


vehicle_handleDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf";

Добавляем ниже


cinder_handleDamage = compile preprocessFileLineNumbers "custom\cinder_handleDamage.sqf";

Далее в серверном pbo ищем server_monitor.sqf, в нем ищем блок


f ((typeOf _object) in dayz_allowedObjects) then {
    if (DZE_GodModeBase) then {
       _object setVariable["memDir",_dir,true];
       _object addEventHandler ["HandleDamage", {false}];
    } else {
       _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
    };
    // Test disabling simulation server side on buildables only.
    _object enableSimulation false;
    // used for inplace upgrades && lock/unlock of safe
    _object setVariable ["OEMPos", _pos, true];
};

Выше


_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];

Вставляем:


if (typeof _object in ["MetalFloor_DZ", "CinderWall_DZ", "CinderWallDoorLocked_DZ", "CinderWallDoorSmallLocked_DZ"]) then {
     _object removeAllEventHandlers "HandleDamage";
     _object setDamage 0;
     _object addEventHandler ["HandleDamage", {_this call cinder_handleDamage;}];
};

Массив ["MetalFloor_DZ", "CinderWall_DZ", "CinderWallDoorLocked_DZ", "CinderWallDoorSmallLocked_DZ"] отвечает за то к каким объектам будет добавлен новый обработчик событий, у меня это бетонные стены, металлические полы и закрытые двери и гаражные ворота. Если хотите добавляете свои классы сюда.
Пересобираем PBO, запускаем сервер и радуемся.
Что касается новых построек, они будут со старым обработчиком получения дамага, вернее у них не будет его вообще, дамаг обрабатывает движек армы. Если вам нужно обрабатывать новые постройки, то добавляем код (см. выше) в server_publishObject.sqf и server_swapObject.sqf в аналогичные блоки.

 

 

Share this post


Link to post
Share on other sites

  • 0

Можно просто отключить получаемый постройками урон, да и всё. Вроде бы команда DZE_GodModeBase = true;  в init.sqf

Share this post


Link to post
Share on other sites
  • 0
В 17.02.2018 в 02:45, DrTauren сказал:

Можно просто отключить получаемый постройками урон, да и всё. Вроде бы команда DZE_GodModeBase = true;  в init.sqf

Подскажите пожж, а где данный файл расположен?

Share this post


Link to post
Share on other sites
  • 0
48 минут назад, DrTauren сказал:

zamorochilo в папке миссии

Там нет такого файла init.sqf, прикрепил скрин.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by zamorochilo
Поправка (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, DrTauren сказал:

zamorochilo У вас установлен сервер Dayz, а это раздел для DayZ мода....

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • 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
      На нашем сайте предусмотрена возможность рекламирования вашего игрового сервера/сайта/програмного обеспечения при помощи баннеров и ссылок.
       
      Баннеры под первым сообщением темы ↓
       
      Баннер на главной странице (над чатом) ↓
       
      Ссылки над первым сообщением темы ↓
       
      Ссылка на главной странице (над чатом) ↓
       
       

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