Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • OPG PROJECT

    Группа ВК

    По-настоящему хороший сервер с уникальным модом! 
     Заходи к нам,тебе тут понравится!
maxpayne25

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

Recommended Posts

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";
Edited by maxpayne25 (see edit history)

Share this post


Link to post
Share on other sites



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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

 

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

 

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

 

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

 

 

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

 

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

Сетчатый маркер зарыт в 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];
	};

 

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

Share this post


Link to post
Share on other sites

Сетчатый маркер зарыт в 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];
	};

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Если папка 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";

Share this post


Link to post
Share on other sites

В файлике 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";

 

 

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

Edited by Fiwko1988 (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

В файлике 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 одинаковые строки

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

 

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

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

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

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

Share this post


Link to post
Share on other sites

 

В файлике 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 одинаковые строки

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

Share this post


Link to post
Share on other sites

 

 

В файлике 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 одинаковые строки

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

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

Share this post


Link to post
Share on other sites

 

 

 

В файлике 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 утра сидел

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

×
×
  • 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.