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

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

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

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

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

[Гaйд] Сейф-зоны от infiSTAR (владельцам антихака от infiSTAR)

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

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

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


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



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

 

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

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


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

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

Именно про него и имел в виду,спасибо. :)

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


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

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

Столкнулся с проблемой - не могу поставить данные сейф зоны на Epoch Origins, прописывал свои координаты, пробовал кидать в различные папки и использовать код с различных источников - итого один - сейф зон нет.

Кто может подсказать, в чём может заключаться проблема?

С уважением, Я)

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


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

Хрен его знает что у вас. Стоят последние зоны. Проблем нету.

 

 

USE_CANBUILD = false;
USE_TraderCity = false;
USE_POSITIONS = true;
USE_AI_REMOVER = true;
USE_AntiSteal = true;
USE_SPEEDLIMIT = false;
        SPEEDLIMIT = 20;
USE_SIGNS = false;
LOG_EnterLeave = true;


_infiSZ =
[
    [[7600,11720,0],250,true],         //Геройский Лагерь
    [[10390,8290,0],250,true],         //Бандитский Лагерь
    [[10390,9310,0],250,true],         //Черный торговец
    [[15130,16420,0],250,true],     //Trader Airfield
    [[15500,13250,0],300,true],     //Trader Zone Emmen
    [[8240,15485,0],300,true],         //Trader Zone Lenzburg
    [[12410,5060,0],300,true]         //Trader Zone Schratten
];
if (isServer) exitWith
{
        if (USE_SIGNS) then
        {
                {
                        _center = _x select 0;
                        _radius = _x select 1;
                        _lSign = _x select 2;
                        if (_lSign) then
                        {
                                for '_i' from 0 to 360 step (270 / _radius)*2 do
                                {
                                        _location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
                                        _dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
                                        _object = createVehicle ['Sign_sphere100cm_EP1', _location, [], 0, 'CAN_COLLIDE'];
                                        //      _object = createVehicle ['SignM_FARP_Winchester_EP1', _location, [], 0, 'CAN_COLLIDE'];
                                        //      _object setVehicleInit 'this setObjectTexture [0,''Addons\SafeZones\sign.paa''];';
                                        _object setDir _dir;
                                };
                        };
                } forEach _infiSZ;
        };
};
waitUntil {((!isNil 'dayz_animalCheck') || (!isNil 'dayz_medicalH') || (!isNil 'dayz_slowCheck') || (!isNil 'dayz_gui'))};
if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
[_infiSZ] spawn {
        _infiSZ = _this select 0;
        _startSafeZone =
        {
                if (isNil 'outNow') then
                {
                        _msg = 'Вы вошли в Торговую зону!';
                        hint _msg;
                        taskHint [_msg, [0,1,0,1], 'taskDone'];
                        inNow = nil;
                        outNow = true;
                       
                        if (LOG_EnterLeave) then
                        {
                                PVDZE_send = [player,'SafeZoneState',[1]];
                                publicVariableServer 'PVDZE_send';
                        };
                };
                player_fired = {
                        deleteVehicle (nearestObject [_this select 0,_this select 4]);
                        cutText ['Вы не можете стрелять в Торговой зоне!','WHITE IN'];
                };
                wild_spawnZombies = {};
                zombie_generate = {};
               
                fnc_usec_damageHandler = {};
                player removeAllEventHandlers 'handleDamage';
                player addEventHandler ['handleDamage', {false}];
                player allowDamage false;
                _veh = vehicle player;
                if (player != _veh) then
                {
                        _szs = _veh getVariable ['inSafeZone',0];
                        if (_szs == 0) then
                        {
                                _veh removeAllEventHandlers 'Fired';
                                _veh addEventHandler ['Fired', {_this call player_fired;}];
                                {
                                        _x removeAllEventHandlers 'Fired';
                                        _x addEventHandler ['Fired', {_this call player_fired;}];
                                } forEach (crew _veh);
                                _veh setVariable ['inSafeZone',1];
                                vehicle_handleDamage = {false};
                                _veh removeAllEventHandlers 'HandleDamage';
                                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                                _veh allowDamage false;
                        };
                };
                _notInSafeZone =
                [
                        'MAAWS','RPG7V','M136','RPG18','STINGER',
                        'MeleeHatchet_DZE','MeleeHatchet','MeleeCrowbar','MeleeMachete','MeleeFishingPole','MeleeSledge',
                        'MeleeBaseBallBatNails','MeleeBaseBallBatBarbed','MeleeBaseBallBat'
                ];
                _cwep = currentWeapon player;
                if (_cwep in _notInSafeZone) then
                {
                        _swep = '';
                        {
                                if ((getNumber (configFile >> 'CfgWeapons' >> _x >> 'Type')) == 2) exitWith
                                {
                                        _swep = _x;
                                };
                        } forEach (weapons player);
                        if (_swep == '') then
                        {
                                player playActionNow 'PutDown';
                                _iPos = getPosATL player;
                                _radius = 1;
                                _removed = ([player,_cwep,1] call BIS_fnc_invRemove);
                                if (_removed == 1) then
                                {
                                        _item = createVehicle ['WeaponHolder', _iPos, [], _radius, 'CAN_COLLIDE'];
                                        _item addWeaponCargoGlobal [_cwep,1];
                                };
                        }
                        else
                        {
                                player selectweapon _swep;
                        };
                };
        };
        _endSafeZone =
        {
                if (isNil 'inNow') then
                {
                        if (str fnc_usec_damageHandler == '{}') then
                        {
                                _msg = 'Вы покинули Торговую зону!';
                                hint _msg;
                                taskHint [_msg, [1,0,0.1,1], 'taskFailed'];
                        };
                        inNow = true;
                        outNow = nil;
                       
                        if (LOG_EnterLeave) then
                        {
                                PVDZE_send = [player,'SafeZoneState',[0]];
                                publicVariableServer 'PVDZE_send';
                        };
                };
                wild_spawnZombies = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\wild_spawnZombies.sqf';
                zombie_generate = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\zombie_generate.sqf';
               
                player_fired = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_fired.sqf';
                fnc_usec_unconscious = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_unconscious.sqf';
                object_monitorGear = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\object_monitorGear.sqf';
                vehicle_handleDamage = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\vehicle_handleDamage.sqf';
               
                _veh = vehicle player;
                if (player != _veh) then
                {
                        _szs = _veh getVariable ['inSafeZone',0];
                        if (_szs == 1) then
                        {
                                _veh setVariable ['inSafeZone',0];
                                _veh removeAllEventHandlers 'HandleDamage';
                                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                                _veh allowDamage true;
                        };
                };
               
                _end = false;
                if (isNil 'gmadmin') then
                {
                        _end = true;
                }
                else
                {
                        if (gmadmin == 0) then
                        {
                                _end = true;
                        };
                };
                if (_end) then
                {
                        player allowDamage true;
                        fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';
                        player removeAllEventHandlers 'HandleDamage';
                        player addeventhandler ['HandleDamage',{_this call fnc_usec_damageHandler;} ];
                };
        };
        while {1 == 1} do
        {
                if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
                _state = false;
                if (isNil 'USE_POSITIONS') then { USE_POSITIONS = false; } else { if (typename USE_POSITIONS != 'BOOL') then { USE_POSITIONS = false; }; };
                if (USE_POSITIONS) then
                {
                        {
                                _z = _x select 0;
                                _r = _x select 1;
                                if ((vehicle player) distance _z < _r) then {_state = true;};
                        } forEach _infiSZ;
                };
                if (isNil 'USE_CANBUILD') then { USE_CANBUILD = true; } else { if (typename USE_CANBUILD != 'BOOL') then { USE_CANBUILD = true; }; };
                if (USE_CANBUILD) then
                {
                        if (isNil 'canbuild') then { canbuild = true; } else { if (typename canbuild != 'BOOL') then { canbuild = true; }; };
                        if (!canbuild) then {_state = true;};
                };
                if (isNil 'USE_TraderCity') then { USE_TraderCity = true; } else { if (typename USE_TraderCity != 'BOOL') then { USE_TraderCity = true; }; };
                if (USE_TraderCity) then
                {
                        if (isNil 'isInTraderCity') then { isInTraderCity = false; } else { if (typename isInTraderCity != 'BOOL') then { isInTraderCity = false; }; };
                        if (isInTraderCity) then {_state = true;};
                };
                if (_state) then
                {
                        inSafeZone = true;
                        call _startSafeZone;
                        {
                                if (!isNull _x) then
                                {
                                        if !(isPlayer _x) then
                                        {
                                                deletevehicle _x;
                                        };
                                };
                        } forEach ((vehicle player) nearEntities ['zZombie_Base',50]);
                       
                        if (isNil 'USE_AI_REMOVER') then { USE_AI_REMOVER = false; } else { if (typename USE_AI_REMOVER != 'BOOL') then { USE_AI_REMOVER = false; }; };
                        if (USE_AI_REMOVER) then
                        {
                                {
                                        if ((!isNull group _x) && (getPlayerUID _x == '')) then
                                        {
                                                deleteVehicle _x;
                                        };
                                } forEach (player nearEntities ['Man',100]);
                        };
                }
                else
                {
                        inSafeZone = false;
                };
                uiSleep 2;
                if (!inSafeZone) then
                {
                        call _endSafeZone;
                };
        };
};
if ((USE_AntiSteal) || (USE_SPEEDLIMIT)) then
{
        [] spawn {
                _USE_AntiSteal = USE_AntiSteal;
                _USE_SPEEDLIMIT = USE_SPEEDLIMIT;
                _speedlimit = SPEEDLIMIT;
                while {1 == 1} do
                {
                        if (inSafezone) then
                        {
                                if (_USE_AntiSteal) then
                                {
                                        _cnt = {isPlayer _x && _x != player} count (player nearEntities [['CAManBase'], 3]);
                                        if ((_cnt > 0) && (!isNull (findDisplay 106))) then
                                        {
                                                (findDisplay 106) closedisplay 0;
                                                closeDialog 0;
                                                _log = format['%1 Вы не можете открыть инвентарь рядом с другим игроком!',name player];
                                                cutText [_log,'PLAIN'];
                                                hint _log;
                                        };
                                };
                                if (_USE_SPEEDLIMIT) then
                                {
                                        _obj = vehicle player;
                                        if !(_obj isKindOf 'Plane') then
                                        {
                                                _speed = abs speed _obj;
                                                if ((_obj != player) && (_speed > _speedlimit)) then
                                                {
                                                        _vel = velocity _obj;
                                                        _x = 0.8;
                                                        if (_speed > 50) then {_x = 0.1;};
                                                        _velNew = [(_vel select 0) * _x, (_vel select 1) * _x,(_vel select 2) * _x];
                                                        _obj SetVelocity _velNew;
                                                };
                                        };
                                };
                        }
                        else
                        {
                                uiSleep 2;
                        };
                        uiSleep 0.1;
                };
        };
};
 

 

 

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


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

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

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


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

 

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

Проверь, стоит ли у тебя на карте триггер в Клене

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


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

Спасибо, все работает, но есть проблемка : когда патруль на авто(DZAI) заезжает в зону ,то обнаружив игрока останавливается, боты выходят и исчезают(норм), а машина остается. В нее можно сесть и тут же продать . Что и где нужно прописать чтобы патруль удалялся вместе с авто ? (частично решил ,заменил авто патрулей на те, которые торговцы не покупают)

 и еще, годмод стал криво работать это да (не принципиально но...) , а вот как быть с неубиваемой техникой вне сейф зон ? может кто решил эту проблему ?

С танка убивает рядом стоящих игроков...

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

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


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

Проверь, стоит ли у тебя на карте триггер в Клене

 

подскажите где посмотреть? еще заметил что купленная техника стала появляется в рандомном месте от продавца

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


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

Стоят эти сейф зоны, но в них транспорт можно иногда уничтожить с техники с пулеметом. Это как то фикситься?

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

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


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

Всем привет! Не так давно появились бесплатные, полностью переработанные сейф-зоны от infiSTAR, которые включают в себя и год мод транспорта, и анти-кражу из рюкзаков. Данные сейф-зоны можно использовать и на других картах, лишь переключив режим, изменив координаты и радиус.

 

Качаем https://yadi.sk/d/zhzPBliFdCUaU

 

 

1) Кидаем в любую папку, в папке с вашей миссией (либо в корень миссии)

 

2)В конец init.sqf добавляем

[] execVM "ваша_папка\infistar_safezone.sqf";

 

 3) Сохраняем.

 

 

  Готово.

 

 

Внимание! Ссылка обновлена 07.12.2014, сейфзоны от 30.11.2014

сейф зона работает все отлично!!но есть одно но!подскажите пожалуйста как прописать настройки так чтоб игроки могли убивать ботов в этой сейф зоне.с начальными настройками это не возможно.стреляешь моргает белый экран.

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


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

подскажите где посмотреть? еще заметил что купленная техника стала появляется в рандомном месте от продавца

не решил вопрос? таже байда случилась (

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


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

не решил вопрос? таже байда случилась (

 

в редакторе установил невидимую вертолетную площадку рядом с продавцом. Транспорт появляется на ней. Можно и обычную площадку поставить, не обязательно не видимую

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

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


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

в редакторе установил невидимую вертолетную площадку рядом с продавцом. Транспорт появляется на ней. Можно и обычную площадку поставить, не обязательно не видимую

Для новых торгашей я ставил эти площадки. На эпоховских торгашей они уже стоят и почему не работают?

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


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

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

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


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

А можно как то запретить ботам стрелять из зон? Как и игрокам. Ну или удалять их вместе с техникой.

А то у меня стал УАЗ ДШКМ прям в зоне на трейде и разносит всё вокруг в щипари :biggrin:

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

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


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

Сейф зоны которые в архиве отнимают год мод у адмиистрации. И работают не корректно. 
Вот полностью рабочие сейф зоны https://yadi.sk/d/NpyD02j9eptPG

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


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

Вот полностью рабочие сейф зоны

Щас затестим) если всё действительно так, то с меня жирный плюсище))

 

2 вопроса, как уменьшить радиус удаления зомби? и как убрать моргание экрана при стрельбе в сейве.

 

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

Ну и еще небольшой визуальный баг, когда бъет зомби то анимация крови есть но урон не наносится.

 

Боты все равно убивают, короче глюк на глюке у этого инфистара :biggrin: правили правили и нифига толком не поправили))

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

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


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

Внимание! Ссылка обновлена 26.02.2015, сейфзоны от 24.12.2014

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


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

Видел такие же сейф-зоны там сама зона отмечена красными кругами здесь такое возможно включить или надо другие?заранее спасибо :smile:

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


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

Можно так сделать в новых сейф.зонах.

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


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

Можно так сделать в новых сейф.зонах.

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

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


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

У меня есть переработанный скрипт сейф - зон, при выходе из сейф зоны оружие отключено + действует еще 1 минуту, кому нужен - могу выложить

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


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

У меня есть переработанный скрипт сейф - зон, при выходе из сейф зоны оружие отключено + действует еще 1 минуту, кому нужен - могу выложить

а красными кругами у тебя не обозначен  диаметр безопасной зоны?я видел такие сейф зоны но как это включается не знаю

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


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

а красными кругами у тебя не обозначен  диаметр безопасной зоны?я видел такие сейф зоны но как это включается не знаю

там во конфиге вроде был параметр, сейчас гляну, точно помню там таблички были по кругу, а вот круги...

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 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, в противном случае мы будем считать, что вы согласны с этим.