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

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

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

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

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

[Гайд/Ивент] [CRATEBOMB EVENT] - Взрывные ящики с лутом

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

Описание:
   Ивент спавнит ящик с бомбой (с таймером). Таймер активируется только когда игрок рядом с ящиком!

Автор:
   juandayz

Источник:

   https://epochmod.com/forum/topic/42571-cratebomb-event/

Пример:
  Картинка: 

Arm_A2_OA_2016_08_15_19_51_36_72.jpg
   


  Видео:
  



УСТАНОВКА:
1.
Распакуйте ваш dayz_server.pbo 

2. Создайте файл: bombcrate.sqf в папке @DayZ_Epoch_Server\addons\dayz_server\modules со следующим кодом:

 

private ["_timer","_spawnChance", "_spawnMarker", "_spawnRadius", "_markerRadius", "_item", "_debug", "_start_time", "_loot","_loot2", "_loot_amount", "_loot_box", "_wait_time", "_spawnRoll", "_position", "_event_marker", "_loot_pos", "_debug_marker","_loot_box", "_hint"];
_spawnChance 	=  	0.70; 	// Шанс спавна Ивента
_markerRadius 	= 	250; 	// Радиус маркера
_debug 		= 	true; 	// Откладка маркера
 
_loot_box = "USVehicleBox";	// ID Ящика

_loot_lists = 			// Поменяйте лут под себя, если нужно!
[
	[
		["M9SD","FN_FAL","M4A3_CCO_EP1","AKS_74_kobra","Sa58V_RCO_EP1","ItemEtool","ItemCrowbar","ItemKnife","ItemSledge","ItemCompass","Binocular","Binocular_Vector","NVGoggles","ItemGPS"],
		["ItemBriefcase100oz","150Rnd_127x107_DSHKM","20Rnd_762x51_FNFAL","20Rnd_762x51_FNFAL","20Rnd_762x51_FNFAL","30Rnd_762x39_SA58","30Rnd_762x39_SA58","30Rnd_762x39_SA58","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_545x39_AK","30Rnd_545x39_AK","30Rnd_545x39_AK","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD"]
	],
	[
		["M4A1_HWS_GL_SD_Camo","M16A2GL","M16A4","M16A4_GL","M16A4_ACG_GL","M16A4_ACG","M4A1","M4A1_HWS_GL","M4A1_HWS_GL_camo","M4A1_HWS_GL_SD_Camo","M4A1_RCO_GL","M4A1_Aim","M4A1_Aim_camo","M4A1_AIM_SD_camo"],
		["ItemBriefcase100oz","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor"]
	],
	[
		["ItemToolbox","M4A1_HWS_GL_SD_Camo","M16A2GL","M16A4","M16A4_GL","M16A4_ACG_GL","M16A4_ACG","M4A1","M4A1_HWS_GL","M4A1_HWS_GL_camo","M4A1_HWS_GL_SD_Camo","M4A1_RCO_GL","M4A1_Aim","M4A1_Aim_camo","M4A1_AIM_SD_camo"],
		["15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor","metal_floor_kit","ItemWoodFloor"]
	],
	[
		["ChainSaw"],
		["ItemBriefcase100oz","ItemBriefcase100oz","ItemCorrugated","ItemCorrugated","ItemCorrugated","ItemCorrugated","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemPole","ItemComboLock","ItemGenerator"]
	],
	[
		["m240_scoped_EP1_DZE","Mk_48_DZ","M240_DZ","RPK_74"],
		["ItemBriefcase100oz","100Rnd_762x51_M240","100Rnd_762x51_M240","200Rnd_556x45_M249","100Rnd_556x45_BetaCMag","100Rnd_762x51_M240","200Rnd_556x45_M249","100Rnd_556x45_BetaCMag","100Rnd_762x51_M240","200Rnd_556x45_M249","100Rnd_556x45_BetaCMag","100Rnd_762x51_M240","200Rnd_556x45_M249","100Rnd_556x45_BetaCMag","100Rnd_762x51_M240","200Rnd_556x45_M249","100Rnd_762x51_M240","100Rnd_762x51_M240","200Rnd_556x45_M249","2000Rnd_762x51_M134","2000Rnd_762x51_M134","ItemAVE","ItemLRK","ItemTNK","ItemARM","ItemORP","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked","ItemSeaBassCooked"]
	],
	[
		["M4A1_HWS_GL_SD_Camo","M16A2GL","M16A4","M16A4_GL","M16A4_ACG_GL","M16A4_ACG","M4A1","M4A1_HWS_GL","M4A1_HWS_GL_camo","M4A1_HWS_GL_SD_Camo","M4A1_RCO_GL","M4A1_Aim","M4A1_Aim_camo","M4A1_AIM_SD_camo"],
		["ItemBriefcase100oz","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","FoodCanFrankBeans","FoodCanFrankBeans","FoodCanBakedBeans","FoodMRE","HandGrenade_east","2000Rnd_762x51_M134","CinderBlocks","CinderBlocks","CinderBlocks","CinderBlocks"]
	],
	[
		["VSS_vintorez","Saiga12K","M8_compact"],
		["ItemBriefcase100oz","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_StanagSD","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag","HandGrenade_east","HandGrenade_east","FoodCanSardines","FoodMRE","FoodPistachio","FoodNutmix","FoodMRE","FoodPistachio","FoodNutmix","CinderBlocks","CinderBlocks","CinderBlocks","CinderBlocks","CinderBlocks"]
	]
];
_loot 	= 	_loot_lists call BIS_fnc_selectRandom;
_loot2 	= 	_loot_lists call BIS_fnc_selectRandom;

_loot_amount 	= 	75;		// Общее количество лута
_wait_time 	= 	900;		// Время работы ивента
_start_time 	= 	time;
_spawnRadius 	= 	5000;		// Радиус спавна ивента от центра карты
_spawnMarker 	= 	'center';
 
if (isNil "EPOCH_EVENT_RUNNING") then 
{
	EPOCH_EVENT_RUNNING = false;
};
 
// Проверка инвента
if (EPOCH_EVENT_RUNNING) exitWith 
{
	diag_log("[Сервер] - [Ивент] - [Взрывной ящик с лутом]: Ивент уже запущен!");
};

EPOCH_EVENT_RUNNING = true;

// Рандом для спавна ивента
_spawnRoll = random 1;
if (_spawnRoll > _spawnChance and !_debug) exitWith {};
 
// Получение случайной позиции спавна
_position = [getMarkerPos _spawnMarker,0,_spawnRadius,10,0,2000,0] call BIS_fnc_findSafePos;
 
diag_log(format["[Сервер] - [Ивент] - [Взрывной ящик с лутом]: Спавним ивент на позиции: %1", _position]);

_event_marker = createMarker [ format ["loot_event_marker_%1", _start_time], _position];
_event_marker setMarkerShape "ELLIPSE";
_event_marker setMarkerType "Cricle01";
_event_marker setMarkerColor "ColorBlack";
_event_marker setMarkerAlpha 0.8;
_event_marker setMarkerBrush "DiagGrid";
_event_marker setMarkerSize [(_markerRadius + 50), (_markerRadius + 50)];
 
_loot_pos = [_position,0,(_markerRadius - 100),10,0,2000,0] call BIS_fnc_findSafePos;
 
if (_debug) then 
{
	_debug_marker = createMarker [ format ["loot_event_debug_marker_%1", _start_time], _loot_pos];
	_debug_marker setMarkerText "BOMBCRATE";
	_debug_marker setMarkerShape "ICON";
	_debug_marker setMarkerType "SupplyVehicle";
	_debug_marker setMarkerColor "ColorRed";
	_debug_marker setMarkerAlpha 1;
	_debug_marker setMarkerSize [1,1];
};
 
diag_log(format["[Сервер] - [Ивент] - [Взрывной ящик с лутом]: Создание ящика на позиции: %1", _loot_pos]);
 
// Создание ящика
_loot_box = createVehicle [_loot_box,_loot_pos,[], 0, "NONE"];
clearMagazineCargoGlobal _loot_box;
clearWeaponCargoGlobal _loot_box;
_loot_box setVariable ["permaLoot",true];
 
// Функция добавления травы возле ящика
_clutter = createVehicle ["ClutterCutter_small_2_EP1", _loot_pos, [], 0, "CAN_COLLIDE"];
_clutter setPos _loot_pos;
 
// Добавление лута
{
	_loot_box addWeaponCargoGlobal [_x,1];
} forEach (_loot select 0);
{
	_loot_box addMagazineCargoGlobal [_x,1];
} forEach (_loot select 1);
{
	_loot_box addWeaponCargoGlobal [_x,1];
} forEach (_loot2 select 0);
{
	_loot_box addMagazineCargoGlobal [_x,1];
} forEach (_loot2 select 1);
 
// Испльзуйте это оповещение, если используете Remote message script
//_hint = parseText format["<t align='center' color='#0D00FF' shadow='2' size='1.75'>Ящик с лутом</t><br/><t align='center' color='#ffffff'>Ящик с лутом!, Проверьте карту!</t>"];
//customRemoteMessage = ['hint', _hint];
//publicVariable "customRemoteMessage";

// Оповещения по центру. (Стандарт)
[nil,nil,rTitleText,"Ящик с лутом!, Проверьте карту!", "PLAIN",10] call RE;											// Если хотите убрать оповещение, то закомментируйте эту строчку!

diag_log(format["[Сервер] - [Ивент] - [Взрывной ящик с лутом]: Ивент установлен! Ожидаем %1 секунд", _wait_time]);

waitUntil {{isPlayer _x && _x distance _loot_box < 3} count playableunits > 0};
[nil,nil,rTitleText,"БОМБА АКТИВИРОВАНА У ВАС ~25 СЕКУНД ДО ВЗРЫВА! ТЫРЬ ЧТО МОЖЕШЬ!", "PLAIN",10] call RE;			// Если хотите убрать оповещение, то закомментируйте эту строчку!

_timer = 30;	// Время до взрыва ящика в секундах

//#############################ФУНКЦИЯ СОЗДАНИЯ БОМБЫ############################//
bombexp = 
{
	_bomb 		= 	["HelicopterExploSmall","HelicopterExploBig","Bo_GBU12_LGB"] call BIS_fnc_selectRandom;
	_dabomb 	= 	objNull;

	if (true) then
	{
		_this 		= 	createVehicle [_bomb,_positionobj, [], 2, "CAN_COLLIDE"];
		_dabomb 	= 	_this;
	};
};
//############################КОНЕЦ ФУНКЦИИ######################################//

sleep 1;

_mark 		= 	"RoadFlare" createVehicle getPosATL _loot_box;
_mark attachTo [_loot_box, [0,0,-1]];
_positionobj 	= 	getPosATL _loot_box;    

sleep _timer;
call bombexp;

EPOCH_EVENT_RUNNING = false;

deleteVehicle _mark;
deleteVehicle _loot_box;
deleteMarker _event_marker;

if (_debug) then 
{
	deleteMarker _debug_marker;
};

3. Запакуйте ваш dayz_server.pbo

4. Идем в вашу миссию, открываем файл init.sqf и в EpochEvents добавляем строчку:

["any","any","any","any",55,"bombcrate"]

Должно получиться так:

EpochEvents = 
[
    ["any","any","any","any",30,"crash_spawner"]
   ,["any","any","any","any",0,"crash_spawner"]
   ,["any","any","any","any",15,"supply_drop"]
   ,["any","any","any","any",55,"bombcrate"] 
];

ГОТОВО!

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


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





Видел на одном из серверов) годная штука :good: 

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


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

всё норм работает)))) 

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

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


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

Привет подскажи у меня в место оповещение а то есть в место русских букв (  !   !   )  что сделать чтоб писало ?

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


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

и вот Это за комментировал чтоб сложней ящик чтоб сложней ящик было найти 

 

f (_debug) then 
{
	_debug_marker = createMarker [ format ["loot_event_debug_marker_%1", _start_time], _loot_pos];
	_debug_marker setMarkerText "BOMBCRATE";
	_debug_marker setMarkerShape "ICON";
	_debug_marker setMarkerType "SupplyVehicle";
	_debug_marker setMarkerColor "ColorRed";
	_debug_marker setMarkerAlpha 1;
	_debug_marker setMarkerSize [1,1];
};
Изменено пользователем dima3659 (история изменений)

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, dima3659 сказал:

и вот Это за комментировал чтоб сложней ящик чтоб сложней ящик было найти 

 


f (_debug) then 
{
	_debug_marker = createMarker [ format ["loot_event_debug_marker_%1", _start_time], _loot_pos];
	_debug_marker setMarkerText "BOMBCRATE";
	_debug_marker setMarkerShape "ICON";
	_debug_marker setMarkerType "SupplyVehicle";
	_debug_marker setMarkerColor "ColorRed";
	_debug_marker setMarkerAlpha 1;
	_debug_marker setMarkerSize [1,1];
};



Как бы можно было просто c True на False поставить

_debug 		= 	true; 	// Откладка маркера

А во-вторых установить кодировку UTF-8 (Без BOM), тогда все отображаться нормально будет в тексте.

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


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

да нет  когда миссия начинается то буквы по средине экрана не пишет  то есть одни эти знаки ( !, ! ) в место названия  а где 25 секунд только цифру пишет

БА АКТИВИРОВАНА У ВАС ~25 СЕКУНД ДО ВЗРЫВА! ТЫРЬ ЧТО МОЖЕШЬ!
Ящик с лутом!, Проверьте карту!

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


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

Тебе ж сказали, сменить кодировку в файле на  UTF-8 (Без BOM) и будут русские буквы отображаться.

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


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

Тема годная, но с багом. Если аккуратно подойти к ящикам, так что бы появился значек снаряжения, но не ближе, то таймер не включается:cool:, бери сколько хочешь и что хочешь. 

ПС а для пущего веселья, я таймер на 15 сек установил, а предупреждение  на 25 оставил :wink:

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

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


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

если изменить тут 3 на 5, то хрен ты аккуратно подойдешь )))

 

waitUntil {{isPlayer _x && _x distance _loot_box < 3} count playableunits > 0};

 

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


Ссылка на сообщение
Поделиться на других сайтах
Только что, RedLink сказал:

если изменить тут 3 на 5, то хрен ты аккуратно подойдешь )))

 


waitUntil {{isPlayer _x && _x distance _loot_box < 3} count playableunits > 0};

 

спс, хотя мог и сам подумать и додуматься:) 

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

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


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

Установил все работает, но при зрыве игрока откидывает и не убивает не какого урона ему нету

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


Ссылка на сообщение
Поделиться на других сайтах
08.10.2020 в 15:01, Евгений35 сказал:

Установил все работает, но при зрыве игрока откидывает и не убивает не какого урона ему нету

++++
как это исправить ?

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


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

инфистар

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, MeJlo4 сказал:

инфистар

что инфистар?)

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, 123new сказал:

что инфистар?)

+++ 

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


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

@dayz6327 Конечно глупый вопрос, но гм отключен ?

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


Ссылка на сообщение
Поделиться на других сайтах
12.03.2021 в 12:41, Horus сказал:

@dayz6327 Конечно глупый вопрос, но гм отключен ?

естественно отключён

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


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

отключи проверку дамага ив инфистаре и будет щастие

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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