Перейти к содержимому


Фотография

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

- - - - -

Сообщений в теме: 34

  • Группа: Проверенные
  • Сообщений: 180

Отправлено 12 февраля 2014 - 01:46

1. Скачиваем архив с файлами и распаковываем его. Ссылка: 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

 

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: 19 февраля 2014 - 20:11

2




  • Группа: Активные
  • Сообщений: 644

Отправлено 13 февраля 2014 - 11:36

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


0

  • Группа: Проверенные
  • Сообщений: 180

Отправлено 13 февраля 2014 - 16:45

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


0

  • Группа: Проверенные
  • Сообщений: 181

Отправлено 19 февраля 2014 - 14:37

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

 

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


0

  • Группа: Администратор
  • Сообщений: 1 721

Отправлено 19 февраля 2014 - 16:14

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


0

  • Группа: Проверенные
  • Сообщений: 181

Отправлено 19 февраля 2014 - 17:32

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

 

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

 

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

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


0

  • Группа: Проверенные
  • Сообщений: 180

Отправлено 19 февраля 2014 - 20:12

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

 

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

 

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

 

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

 

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

 

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

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

 

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


0

  • Группа: Проверенные
  • Сообщений: 181

Отправлено 19 февраля 2014 - 20:26

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

 

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


0

  • Группа: Проверенные
  • Сообщений: 180

Отправлено 19 февраля 2014 - 20:49

Пробуй :)


0

  • Группа: Пользователи
  • Сообщений: 59

Отправлено 24 февраля 2014 - 12:01

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

 

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

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


0

  • Группа: Пользователи
  • Сообщений: 27

Отправлено 04 марта 2014 - 15:18

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


0

  • Группа: Пользователи
  • Сообщений: 22

Отправлено 05 марта 2014 - 03:41

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

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


0

  • Группа: Пользователи
  • Сообщений: 60

Отправлено 06 марта 2014 - 09:01

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


0

  • Группа: Пользователи
  • Сообщений: 42

Отправлено 07 марта 2014 - 16:04

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

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

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

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

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

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст


0

  • Группа: Пользователи
  • Сообщений: 58

Отправлено 14 марта 2014 - 16:37

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

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


0





Похожие темы

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных