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

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.