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

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

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

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

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

[Гайд]Как добавить сэйв-зоны (год-мод, запрет стрельбы, нет агра зомби, скоростной лимит)

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

1. Скачиваем архив с файлами и распаковываем его. Ссылка: https://dl.dropboxusercontent.com/u/135243/dayz_epoch/safezone.zip

 

2. Папку safezone из архива кидаем в папку с вашей миссией (рядом с init.sqf)

 

3. Добавляем данный код в самый низ init.sqf

_nil = [] execVM "safezone\init.sqf";

4. Если хотите добавить сэйв-зону в какое-либо другое место (по умолчанию сэйв-зоны расположены в Старом Соборе, Клене, Баше), открываем добавленную папку safezone, в ней находим и открываем файл init.sqf. Там мы видим данный код:

_safezones = [
[[11447.91,11364.536],100, "Klen"], // Klen
[[4064.2258,11665.938],100, "Bash"], // Bash
[[6325.6772,7807.7412],100, "Stary"] // Stary
];

Чтобы добавить сэйв-зону, например, к бандит-трейдеру, копируем предпоследнюю строчку со Старым Собором, вставляем под нее же, не забывая поставить запятую после квадратных скобок в строке со Старым Собором и в каждой добавленной вами зоне, за исключением последних координат. Далее правим добавленную строку под себя. В первых квадратных скобках располагаются координаты трейдера в формате [x,y], которые можно узнать в файле mission.sqm в разделе // sensors.

Один нюанс: в файле mission.sqm координаты заданы в формате [x,y,z], где y означает высоту над уровнем моря. В нашем файле с сэйв-зонами нам высота не нужна, так что мы просто удаляем центральное значение при переносе координат. 

Далее, после квадратных скобок идет число 100, которое означает радиус безопасной зоны. Можете исправить под себя, если считаете зону слишком маленькой или большой.

В кавычках указываете название сэйв-зоны, которое возникает на экране при входе в нее. После знаков // можете ничего не указывать. Здесь названия для удобства редактирования кода. 

Для наглядности добавляю этот же код с уже добавленным бандит-трейдером.

Так выглядят координаты бандит-трейдера в файле mission.sqm на Чернарусии

class Item3
		{
			position[]={1606.6443,289.70795,7803.5156};
			a=100;
			b=100;
			activationBy="WEST";
			repeating=1;
			interruptable=1;
			age="UNKNOWN";
			name="zonebandit";
			expCond="(player distance zonebandit) < 100;";
			expActiv="canbuild = false; inTraderCity = ""Bandit Trader"";";
			expDesactiv="canbuild = true; inTraderCity = ""Any"";";
			class Effects
			{
			};

Из строки position[]= я забираю координаты, удаляю центральное значение и переношу в файл с сейв-зонами, который будет выглядеть так:

_safezones = [
[[11447.91,11364.536],100, "Klen"], // Klen
[[4064.2258,11665.938],100, "Bash"], // Bash
[[6325.6772,7807.7412],100, "Stary", // Stary
[[1606.6443,7803.5156],100, "Bandit"] // Bandit Trader
];

Данный метод пригоден для любой карты на моде Epoch. Просто мы меняем значения координат на координаты трейдеров из mission.sqm другой карты.

_________________________________________________________________________________________________________________

 

Также можно добавить защиту от воровства из рюкзаков.

Для этого мы копируем файл fn_gearMenuChecks.sqf отсюда:

/@Dayz_Epoch/addons/dayz_code/compile/fn_gearMenuChecks.sqf

в папку custom (создайте, если отсутствует) в папке с вашей миссией (рядом с init.sqf).

Добавьте данный код в самый низ скопированного файла:

if (!canbuild and _cTarget isKindOf "Man" and alive _cTarget and (((vehicle player) distance _cTarget) < 12)) then {
titleText["\n\nYou may only access your own gear in this area.", "PLAIN DOWN",0];
_display closeDisplay 1;
};

Далее, если у вас есть кастомный файл compiles.sqf, копируете данный код в конец секции с if (!isDedicated), над символами };

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

Если у вас нет кастомного файла compiles.sqf, то в папке custom создаем файл compiles.sqf и внутрь добавляем этот код:

if (!isDedicated) then { fn_gearMenuChecks =    compile preprocessFileLineNumbers "custom\fn_gearMenuChecks.sqf"; };

Далее в init.sqf добавляем под этой строкой

call compile preprocessFileLineNumbers "server_traders.sqf";

данный код 

call compile preprocessFileLineNumbers "custom\compiles.sqf";
Изменено пользователем maxpayne25 (история изменений)

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


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





Пороверял на защиту в Красно, Хиро и бандита?

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


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

Я добавлял вручную и Красно, и хиро, и бандита. Прекрасно работало все. И на Пантере тоже.

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


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

/@Dayz_Epoch/addons/dayz_code/compile/fn_menuGearCheck.sqf

 

Поправь на  fn_gearMenuChecks, а то замучаются искать )))

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


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

А запрет кражи из рюкзаков, мм? :wink:

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


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

А запрет кражи из рюкзаков, мм? :wink:

 

Так в гайде же описывается как. )))

 

Лучше подскажите как убрать сетчатый маркер над трейдами.

А то с миссиями он путается....

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


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

 

/@Dayz_Epoch/addons/dayz_code/compile/fn_menuGearCheck.sqf

 

Поправь на  fn_gearMenuChecks, а то замучаются искать )))

 

Спасибо, исправил.

 

 

А запрет кражи из рюкзаков, мм? :wink:

 

Так в гайде же описывается как. )))

 

Лучше подскажите как убрать сетчатый маркер над трейдами.

А то с миссиями он путается....

 

Там в скрипте со строчкой _setMarkers похимичить надо

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


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

Сетчатый маркер зарыт в init.sqf сейфзоны

 

} else {
		_trigger setTriggerStatements ["(vehicle player) in thisList", "call SafeZoneEnable", "call SafeZoneDisable"];

		_marker = createMarkerLocal [format["Safezone%1", _name], _pos];
		_marker setMarkerTextLocal format["Safezone%1", _name];
		_marker setMarkerShapeLocal "ELLIPSE";
		_marker setMarkerTypeLocal "Empty";
		_marker setMarkerColorLocal "ColorRed";
		_marker setMarkerBrushLocal "Grid";
		_marker setMarkerSizeLocal [_radius, _radius];
	};

 

Подозреваю что удалить весь этот кусок то маркеров и не будет...

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


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

Сетчатый маркер зарыт в init.sqf сейфзоны

 

} else {
		_trigger setTriggerStatements ["(vehicle player) in thisList", "call SafeZoneEnable", "call SafeZoneDisable"];

		_marker = createMarkerLocal [format["Safezone%1", _name], _pos];
		_marker setMarkerTextLocal format["Safezone%1", _name];
		_marker setMarkerShapeLocal "ELLIPSE";
		_marker setMarkerTypeLocal "Empty";
		_marker setMarkerColorLocal "ColorRed";
		_marker setMarkerBrushLocal "Grid";
		_marker setMarkerSizeLocal [_radius, _radius];
	};

 

Подозреваю что удалить весь этот кусок то маркеров и не будет...

Удалял! Защита перестает работать!

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


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

Все прекрасно работает. + добавил еще торговца на аэро красностава. а чтоб народ не путал миссии с торговцами (даже не представляю как их можно перепутать), я закрасил всех торговцев желтой сеточкой.

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


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

это цвет маркера wdtmarker setMarkerColorLocal "ColorRed";

что бы убрать сетку,удалите эту строку  _marker setMarkerBrushLocal "Grid";

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


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

Отличные сейвы, только вот год мода нет на них. Игрок не находящийся в сейв зоне может убить игрока находящегося в ней. Это так и должно быть или у меня руки кривоваты?

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


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

Отличные сейвы, только вот год мода нет на них. Игрок не находящийся в сейв зоне может убить игрока находящегося в ней. Это так и должно быть или у меня руки кривоваты?

Кстати да, присоединяюсь к вопросу. Пробовал добавлять вот такую строку в SafeZoneEnable :

{_x allowdamage false } foreach (nearestObjects [player,['building','LandVehicle','Air'], 400]);

но также, результат нулевой.  Правда пробовал только с ботами (думаю разницы нет), ты внутри зоны стрелять не можешь, но тебя шьют только так, и тоже самое снаружи.

Та строка взята отсюда:

http://epochmod.com/forum/index.php?/topic/4691-even-better-safezones/page-5

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


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

люди а что за скрипт где пишет типо agn no firing vehicles gun enabled?

а то тут таблички мешают(

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


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

люди а что за скрипт где пишет типо agn no firing vehicles gun enabled?

а то тут таблички мешают(

Это AlienX's Epoch Safe Zone Commander 

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


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

Если папка custom находится вот тут

ARMA2 DayZ Mod\MPMissions\DayZ_Epoch_11.Chernarus\Scripts\custom\snap_build

Можно ли этот пункт выполнить прямо в нем

 

Далее, если у вас есть кастомный файл compiles.sqf, копируете данный код в конец секции с if (!isDedicated), над символами };


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

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


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

В файлике Init в папке safezone замените строку :

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';

 

на

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";

 

 

и вообще после выхода из трейда нельзя стрелять и там гора апострофов

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

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


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

поправили проблему с возможностью убивать из за сейф зоны? Если нет, может ли кток другому скрипту сейф зон прикрутить такие маркеры? (сеточку и знаки)

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


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

В файлике Init в папке safezone замените строку :

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';

 

на 

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";

как бы 2 одинаковые строки

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


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

поправили проблему с возможностью убивать из за сейф зоны? Если нет, может ли кток другому скрипту сейф зон прикрутить такие маркеры? (сеточку и знаки)

Сделай файл маркеров да прикрути, там работы на 1 минуту.

Сейф зоны от AlienX поставь, там защита работает.

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


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

 

поправили проблему с возможностью убивать из за сейф зоны? Если нет, может ли кток другому скрипту сейф зон прикрутить такие маркеры? (сеточку и знаки)

Сделай файл маркеров да прикрути, там работы на 1 минуту.

Сейф зоны от AlienX поставь, там защита работает.

не забывай что тут не все гуру, я вообще про дейз узнал полтра месяца назад, для меня то что ты написал просто набор непонятных фраз, можно по подробней? =)

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


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

 

В файлике Init в папке safezone замените строку :

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';

 

на 

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";

как бы 2 одинаковые строки

внимательней

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


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

 

 

В файлике Init в папке safezone замените строку :

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';

 

на 

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";

как бы 2 одинаковые строки

внимательней

действительно разные кавычки =) Тут просто не видно =) А что даст замена этой строки?

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


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

 

 

 

В файлике Init в папке safezone замените строку :

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';

 

на 

 

fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";

как бы 2 одинаковые строки

внимательней

действительно разные кавычки =) Тут просто не видно =) А что даст замена этой строки?

ну как бы будет подыматься путь активации файла, да и вообще этот скрипт неактуален, там ошибка на ошибке, зауикливается нерест долбаный до 8 утра сидел

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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