vitacite

добавляем аномалии и кровососа на любой сервер и карту.

59 сообщений в этой теме

Всем привет. Зарекался ну да ладно. Никто не хочет помогать с сталкером, все цепляются за умирающую эпоху. Пора внести свежую струю.

Делюсь. Если кто, захочет после этого участвовать....

 

Итак.
Шаг № 1 качаем с армаголика мод DAP STALKER 
http://www.armaholic.com/page.php?id=23442&highlight=STALKER
 

 

Шаг № 2 для искомого нам понадобятся несколько файлов, распаковшик-упаковщик.pbo немного терпения и голова.
Для начала делаем папку для нашего нового мода который будет содержать аномалии.
итак @DAYZ_ANOMALY/ADDONS/ в корне где у нас лежит мод @DAYZ_EPOCH 
Шаг № 3 копируем в эту папку следующие файлы:

 

dapanomalies.pbo // скрипты аномалий
dapartefacts.pbo // графика и скрипты артефактов
dapbloodsucker.pbo //AI и графика кровососа
dapitems.pbo // тут все для декторов
ns_mutants.pbo // этот файл нужен для кровососа.
распаковываем все файлы чтобы получились папки. После чего .pbo можно удалить
 

 

Шаг № 4
Теперь нам надо убрать зависимости, чтобы "не было сообщения об ошибках" ведь мы хотим добавить только аномалии и кровососа, а не делать собственную сборку сталкера :))) 
ищем в папках нашего мода файл 
config.cpp // конфигурация 
открываем и в самом верху видим кусок кода:

 

class CfgPatches 
{
    class DAPANOMALIES 
    {
        units[] = { };
        weapons[] = { };
        requiredVersion = 1.000000;
        requiredAddons[] = {
/* Эта строчка нас и интересует. Там будет указаны ссылки на .pbo, которых нет в нашем моде и мы будем постоянно славливать ошибки. Поэтому, либо вообще все удаляем получаем что-то типа requiredAddons[] = {); либо как я оставляем ссылку на файл dapartefacts либо на тот который есть в моде. */


                "DAPARTEFACTS"
        };
    };
};
Так же проверяем остальные файлы. Там будут ссылки на монолит ... уберите их.
 

 



Идем дальше:

Добавляем анимацию к аномалиям (у нас будут 3 аномалии), анимация не моя, ссылку на файлы я выложил ниже на яндекс диск (либо берите код отсюда).

Грави:

private ["_vfxstate","_dmg","_pdmg","_dstate","_epicenter","_chance","_objects","_DynamicBlur","_FilmGrain","_anomaly","_trg","_stone","_dust","_static"];
_anomaly = _this select 0;
_anomaly setPosATL [getPosATL _anomaly select 0,getPosATL _anomaly select 1,(getPosATL _anomaly select 2) - 2.5];
_epicenter = _this select 0;
_range = _this select 1;
_chance = _this select 2; 
_vfxstate=0;
_dstate=0;

/*if (isserver) exitwith {};

_light = "#lightpoint" createVehicleLocal getPosATL _anomaly;
_light setLightBrightness 0.05;
_light setLightColor[0,0.6,0];
_light lightAttachObject  [_anomaly, [0,0,2.5]];*/
_stone = "#particlesource" createVehicleLocal getPosATL _anomaly;
_stone setParticleCircle [1, [0, 0, 5]];
_stone setParticleRandom [0, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0];
_stone setParticleParams [["\Ca\Data\ParticleEffects\Pstone\Pstone.p3d", 8, 3, 1], "",
"SpaceObject",
2,
2,
[0, 0, 0],
[0, 0, 0],
0.5,4,1,0,
[1,1],
[[1, 1, 1 ,1],[1, 1, 1, 1],[1, 1, 1, 1]],
[0, 1],
1,
0,
"",
"",
_anomaly];
_stone setDropInterval 0.07;
_dust = "#particlesource" createVehicleLocal getPosATL _anomaly;
_dust setParticleParams [["\Ca\Data\ParticleEffects\Universal\universal.p3d", 16, 12, 48], "",
"Billboard",
5,
3,
[0, 0, 0.4],
[0, 0, 0],
1,1.4,1,1,
[9],
[[0.9, 0.9, 0.9 ,0.0],
[0.9, 0.8, 0.5, 0.4],[0.8, 0.8, 0.8, 0.0]],
[0.01],
1,
0,
"",
"",
_anomaly];
_dust setDropInterval 0.1;
_dust setParticleRandom [0, [3, 3, 0], [0, 0, 0], 1, 0, [0, 0, 0, 0.01], 0, 0];
_dust setParticleCircle [0, [0, 0, 0]];

//_static = createSoundSource ["Sound_Factory09", getPosATL _light, [], 0];

_artefacts = ["DAP_BLACKDRIP","DAP_GRAVI"];

if (isNil("_chance")) then {_chance=0.15;};

while {true} do {
		
	if ((isServer) or (isDedicated)) then 
	{	
		_objects=list _epicenter;

		{if ((!(alive _x)) or (_x isKindOf "DAP_ARTEFACT")) then {_objects=_objects-[_x];};}ForEach _objects;

		if (count _objects>0) then 
		{
			{
	
			_x setDammage 1;
		
			[nil, nil, rSPAWN, [_x,_epicenter], 
			{
				_victim = _this select 0;
				_anomaly = _this select 1;

 				_anomaly say "dap_gravi_blast";
				if (_victim isKindOf "MAN") then {[(getpos _victim select 0), (getpos _victim select 1), (getpos _victim select 2), 5] execvm "DAPANOMALIES\Scripts\Wave.sqf";_victim switchMove "AdthPpneMstpSlowWrflDf_1";};
				if ((_victim isKindOf "LAND") or (_victim isKindOf "THING")) then {[(getpos _victim select 0), (getpos _victim select 1), (getpos _victim select 2), 5] execvm "DAPANOMALIES\Scripts\Wave.sqf";};
				
			}] call RE;	
			
			if (!(_x isKindOf "HandRoadFlare")) then {[_epicenter,_range,_artefacts,_chance] execVM "DAPANOMALIES\Scripts\ArtefactSpawn.sqf";};
			
			}ForEach _objects;
		};
	};
	
_pos = (_epicenter modelToWorld [0,0,0]);
_manpos = (player modelToWorld [0,0,0]);
_dist=(player distance [_pos select 0, _pos select 1, _manpos select 2]);

if (_dist<=(_range+25) and (player hasWeapon "DAP_DETECTOR") and (_dstate==0)) then 
	{
	_epicenter setVariable ["DAP_DETECTOR_STATE",1]; 
	[_epicenter,_range,0] execVM "DAPANOMALIES\Scripts\Detector.sqf";
	_dstate=1;
	};
	
if (_dist>(_range+25) and (player hasWeapon "DAP_DETECTOR") and (_dstate==1)) then 
	{
	_epicenter setVariable ["DAP_DETECTOR_STATE",0];
	_dstate=0;
	};
	
if ((_dist<=(_range+25)) and (player isKindOf "bloodsucker")) then 
	{
		if (_vfxstate==0) then 
		{
			_DynamicBlur = ppEffectCreate ["dynamicBlur", 468];
			_FilmGrain = ppEffectCreate ["filmGrain", 2008];
			
			_DynamicBlur ppEffectEnable true;
			_FilmGrain ppEffectEnable true;
			_FilmGrain ppEffectCommit 0.5;
			
			_vfxstate=1;
		
		};
		_fxb=((((_range+25)-_dist)/10)*3);
		_DynamicBlur ppEffectAdjust [_fxb]; 
		_DynamicBlur ppEffectCommit 0.1;
		_FilmGrain ppEffectAdjust [0.1, -1, 0.1, 0.05, 2, false];
		
	};
	
	if ((_dist>(_range+25)) and (player isKindOf "bloodsucker") and (_vfxstate==1)) then 
	{
		ppEffectDestroy  _DynamicBlur;
		ppEffectDestroy  _FilmGrain;
		
		_vfxstate=0;
	};
sleep 1;
};



Электра:

private ["_vfxstate","_dmg","_pdmg","_dstate","_epicenter","_chance","_xpos","_xsize","_objects","_DynamicBlur","_FilmGrain","_anomaly","_trg","_light","_spark","_dust"];
_anomaly = _this select 0;
_anomaly setPosATL [getPosATL _anomaly select 0,getPosATL _anomaly select 1,(getPosATL _anomaly select 2) - 2.5];
_epicenter = _this select 0;
_range = _this select 1;
_chance = _this select 2; 
_vfxstate=0;
_dstate=0;



_light = "#lightpoint" createVehicleLocal getPosATL _anomaly;
_light setLightBrightness 0.05;
_light setLightColor[0.4,0.6,1];
_light lightAttachObject [_anomaly, [0,0,3]];
_spark = "#particlesource" createVehicleLocal getPosATL _anomaly;
_spark setParticleParams  [["ca\data\blesk2.p3d", 1, 0, 1],"",
"spaceObject",
1,
0.2,
[0,0,8],
[0,0,0],
15,0.3,0.2,0,
[0.05,0.0,0.0,0],
[[1,1,1,0.5],[1,1,1,0.5]],
[1.5,0.5],
0.1,
0.8,
"",
"",
_anomaly];
_spark setDropInterval 0.1;
_dust = "#particlesource" createVehicleLocal getPosATL _anomaly;
_dust setParticleParams [["\Ca\Data\ParticleEffects\Universal\universal.p3d", 16, 12, 48], "",
"Billboard",
5,
3,
[0, 0, 0.4],
[0, 0, 0],
1,1.4,1,1,
[9],
[[0.9, 0.9, 0.9 ,0.0],
[0.9, 0.8, 0.5, 0.4],[0.8, 0.8, 0.8, 0.0]],
[0.01],
1,
0,
"",
"",
_anomaly];
_dust setDropInterval 0.1;
_dust setParticleRandom [0, [3, 3, 0], [0, 0, 0], 1, 0, [0, 0, 0, 0.01], 0, 0];
_dust setParticleCircle [0, [0, 0, 0]];

//_static = createSoundSource ["Sound_Factory09", getPosATL _light, [], 0];

_artefacts = ["DAP_ELECTRA","DAP_BATTERY","DAP_EMPTY"];

if (isNil("_chance")) then {_chance=0.15;};

while {true} do 
{
	if ((isServer) or (isDedicated)) then 
	{
		_objects=list _epicenter;

		{if ((!(alive _x)) or (_x isKindOf "DAP_ARTEFACT")) then {_objects=_objects-[_x];};}ForEach _objects;

		if (count _objects>0) then 
		{
			{
			_xpos = _x modelToWorld [0,0,0];
			_xsize = [0.05];
			if (_x isKindOf "MAN") then 
			{
				_xpos = _x modelToWorld [0,0,1];
				_xsize = [0.045];
			};
			if (_x isKindOf "LandVehicle") then 
			{
				_xpos = _x modelToWorld [0,0,0];
				_xsize = [0.1];
			};
			if (_x isKindOf "Air") then 
			{
				_xpos = _x modelToWorld [0,0,0];
				_xsize = [0.25];
			};
			if (_x isKindOf "Thing") then 
			{
				_xpos = _x modelToWorld [0,0,0.15];
				_xsize = [0.035];
			};
			_x setDammage 1;
			
			[nil, nil, rSPAWN, [_x,_epicenter,_xpos,_xsize], 
			{
				_victim = _this select 0;
				_anomaly =  _this select 1;
				_victimpos =  _this select 2;
				_splashsize =  _this select 3;
  				
  				_anomaly say "dap_electro_strike";
			
 				drop ["\ca\data\blesk1", "", "spaceobject", 1, 0.05, [0,0,1], [0,0,0.1], 0, 18.275, 14.3, 0,_splashsize,[[0,1,0,1]],[0],3,0,"","",_victim];
 				drop ["\ca\data\blesk1", "", "spaceobject", 1, 0.05, [0,0,1], [0,0,0.1], 0, 18.0, 15, 0,_splashsize,[[0,1,0,1]],[0],3,0,"","",_victim];
				drop ["\ca\data\blesk1", "", "spaceobject", 1, 0.05, [0,0,1], [0,0,0.1], 0, 18.0, 12, 0,_splashsize,[[0,1,0,1]],[0],3,0,"","",_victim];
				_light = "#lightpoint" createVehicleLocal _victimpos;
				_light setLightAmbient[0.5, 0.5, 1];
				_light setLightColor[0.5, 0.5, 1];
				_light setLightBrightness 0.05;
	
				sleep 0.05;
				deleteVehicle _light;

			}] call RE;
			 		
			if (!(_x isKindOf "DAP_BOLT")) then {[_epicenter,_range,_artefacts,_chance] execVM "DAPANOMALIES\Scripts\ArtefactSpawn.sqf";};
			}ForEach _objects;
		};
	};
	
_pos = (_epicenter modelToWorld [0,0,0]);
_manpos = (player modelToWorld [0,0,0]);
_dist=(player distance [_pos select 0, _pos select 1, _manpos select 2]);

if (_dist<=(_range+25) and (player hasWeapon "DAP_DETECTOR") and (_dstate==0)) then 
	{
	_epicenter setVariable ["DAP_DETECTOR_STATE",1]; 
	[_epicenter,_range,0] execVM "DAPANOMALIES\Scripts\Detector.sqf";
	_dstate=1;
	};
	
if (_dist>(_range+25) and (player hasWeapon "DAP_DETECTOR") and (_dstate==1)) then 
	{
	_epicenter setVariable ["DAP_DETECTOR_STATE",0];
	_dstate=0;
	};
	
if ((_dist<=(_range+25)) and (player isKindOf "bloodsucker")) then 
	{
		if (_vfxstate==0) then 
		{
			_DynamicBlur = ppEffectCreate ["dynamicBlur", 466];
			_FilmGrain = ppEffectCreate ["filmGrain", 2006];
			
			_DynamicBlur ppEffectEnable true;
			_FilmGrain ppEffectEnable true;
			_FilmGrain ppEffectCommit 0.5;
			
			_vfxstate=1;
		
		};
		_fxb=((((_range+25)-_dist)/10)*3);
		_DynamicBlur ppEffectAdjust [_fxb]; 
		_DynamicBlur ppEffectCommit 0.1;
		_FilmGrain ppEffectAdjust [0.1, -1, 0.1, 0.05, 2, false];
		
	};
	
	if ((_dist>(_range+25)) and (player isKindOf "bloodsucker") and (_vfxstate==1)) then 
	{
		ppEffectDestroy  _DynamicBlur;
		ppEffectDestroy  _FilmGrain;
		
		_vfxstate=0;
	};
	sleep 1;
};


Жарка:

_victim = _this select 0;

if (!(isDedicated)) then 
{
						
	_flame = "#particlesource" createVehicleLocal getpos _victim;
	_flame setParticleCircle [0, [0, 0, 0]];
	_flame setParticleRandom [0.5, [1, .5, 0], [0.5, 0.5, 15], 0.2, 0.2, [0, 0, 0, 0], 0, 0];
	_flame setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 10, 32], "", "Billboard",1, 0.1, [0, 0, 0], [0, 0, 0.5], 1, 1, 0.9, 0.3, [1.5], [[1, 0.7, 0.7, 0.5]], [0], 0, 10, "", "", _victim];
	_flame setDropInterval 0.0005;

	_light = "#lightpoint" createVehicleLocal getpos _victim;

	_light setLightBrightness 0.025;
	_light setLightAmbient[1, 0.75, 0.75];
	_light setLightColor[1, 0.75, 0.75];
	_light lightAttachObject [_victim, [0,0,1]];
			
	sleep 1;

	deletevehicle _flame; 
	deletevehicle _light;

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

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


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


Итак убедились, что ссылок нет, добавили анимацию, но как же заставить это все работать (включая кровососа)?

Для начала надо все это запаковать в одноименные .pbo

 

Апосля чего двигаемся в файл mission.sqf

в раздел addons надо добавить соответствующие ссылки

version=11;
class Mission{
		addOns[]=
			{
...
			"ns_mutants",
			"dapbloodsucker",
			"dapanomalies",
			"dapartefacts",
....
	};
	addOnsAuto[]=
	{
			"ns_mutants",
			"dapbloodsucker",
			"dapanomalies",
			"dapartefacts",
....
	};

Шаг № 7. 

продолжаем редактировать mission.sqm

 

Добавляем объекты для наших артефактов (они должны совпадать с координатами аномалий)

 

 

                class Item93
                {
                    position[]={7717.65,0,4286.4};
                    azimut=295;
                    id=94;
                    side="EMPTY";
                    vehicle="DAP_GRAVI";
                    skill=0.60000002;
                    init="this setVariable [""DAP_ARTEFACT_RESPAWN"",[1800,5],true]";
                };
 

 

Шаг № 8 В сенсоры добавляем сами аномалии.
    class Sensors
    {
        items=20;
        class Item0
        {
            position[]={7722.8369,0,4275.6372};
            a=10;
            b=10;
            angle=14.143009;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,10]execvm ""DAPANOMALIES\Scripts\Gravi.sqf""";
            class Effects
            {
            };
        };
        class Item1
        {
            position[]={7619.2207,0,4431.7529};
            a=10;
            b=10;
            angle=14.143;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,10]execvm ""DAPANOMALIES\Scripts\Trampoline.sqf""";
            class Effects
            {
            };
        };
        class Item2
        {
            position[]={7787.769,0,4355.7666};
            a=10;
            b=10;
            angle=14.143;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,10]execvm ""DAPANOMALIES\Scripts\Burn.sqf""";
            class Effects
            {
            };
        };
        class Item3
        {
            position[]={7530.1104,0,4315.0122};
            a=15;
            b=15;
            angle=14.143;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,15]execvm ""DAPANOMALIES\Scripts\Electro.sqf""";
            class Effects
            {
            };
        };
        class Item4
        {
            position[]={8590.9414,0,5530.1279};
            a=15;
            b=15;
            angle=14.143;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,15]execvm ""DAPANOMALIES\Scripts\Electro.sqf""";
            class Effects
            {
            };
        };
        class Item5
        {
            position[]={8296.1523,0,4748.9219};
            a=10;
            b=10;
            angle=14.143009;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,10]execvm ""DAPANOMALIES\Scripts\Gravi.sqf""";
            class Effects
            {
            };
        };
        class Item6
        {
            position[]={7573.7788,0,5462.3096};
            a=10;
            b=10;
            angle=14.143;
            activationBy="ANY";
            interruptable=1;
            age="UNKNOWN";
            expCond="true";
            expActiv="XC=[thistrigger,10]execvm ""DAPANOMALIES\Scripts\Trampoline.sqf""";
            class Effects
            {
            };
        };
 

 

 

Шаг № 9 добавляем кровососа:
        class Item2
        {
            side="EAST";
            class Vehicles
            {
                items=1;
                class Item0
                {
                    position[]={7596.5498,0,8743.2148};
                    azimut=270;
                    id=103;
                    side="GUER";
                    vehicle="bloodsucker";
                    leader=1;
                    skill=0.60000002;
                    init="this setVariable [""DAP_BS_AREA"",100]; this setVariable [""DAP_BS_VIEWRANGE"",100]; this setVariable [""DAP_BS_RESPAWN"",[1800,500],true]";
                };
            };
        };
 

 

 


PS: Я принципиально не выкладываю файлов, потому что не хочу, чтобы люди просто так качали. Те, кто хотябы немного разбирается в скриптах, легко по этой инструкции все воспроизведут. Те кто привык качать все в кучу - работать скорее всего не будет :)

Координаты указаны для Подагорска. Не забудьте добавить мод везде где это требуется. 

Удачи.


 

Ах чуть не забыл. Детектор аномалий будет виден в инфи, как и все артефакты. Там вы можете взять называния и добавить соответственно их в лут (можно это делать через mission.sqm), а детектор аномалий торговцам.

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

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

Слепые псы думаю будут работать так же как и кровосос но не проверял. 

Удачи в попытках. У кровососа есть баг, при попытке полутать его конечность вылетает клиент, но думаю это решаемо... Если захотите конечно.



Ссылка на уже анимированные и пропатченные аномалии

https://yadi.sk/d/l5xjoqIMaLZdU

Ссылка на бункер сидора и некоторые объекты из сталкера:

https://yadi.sk/d/RVgdi1zLaLZrK



В продолжение сталкеризации эпохи :)

Рынок для подагорска (без торговцев), бункер сидора для x-ray.pbo и бункер янтаря опять же для подагорска, бункер янтарь находится на аномальном острове подагорска

// ********************************************************************************************* >> Объявляем приватную перменную стуктура для строений.
private ["_structure","_trader","_guard"];

if (isServer) then {

// ********************************************************************************************* >> Создаем декорации центрального рынка.

  _structure = createVehicle ["CDF_WarfareBContructionSite1", [7119.6836, 10919.202, 3.6239624e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir 27.8971;
  _structure setPos [7119.6836, 10919.202, 3.6239624e-005];

  _structure = createVehicle ["CDF_WarfareBContructionSite", [7122.8066, 10932.178, -9.5367432e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -4.0209947;
  _structure setPos [7122.8066, 10932.178, -9.5367432e-005];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7120.2466, 10915.109, -0.10293377], [], 0, "CAN_COLLIDE"];
  _structure setDir -239.98355;
  _structure setPos [7120.2466, 10915.109, -0.10293377];

  _structure = createVehicle ["CDF_WarfareBVehicleServicePoint", [7092.1221, 10901.386, -1.335144e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -12.386455;
  _structure setPos [7092.1221, 10901.386, -1.335144e-005];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7124.8086, 10935.29, -8.5830688e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -273.11642;
  _structure setPos [7124.8086, 10935.29, -8.5830688e-005];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7119.2319, 10949.24, 0.045673706], [], 0, "CAN_COLLIDE"];
  _structure setDir -130.63647;
  _structure setPos [7119.2319, 10949.24, 0.045673706];

  _structure = createVehicle ["CDF_WarfareBVehicleServicePoint", [7115.062, 10948.138, 4.5776367e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -126.42999;
  _structure setPos [7115.062, 10948.138, 4.5776367e-005];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7093.8174, 10898.889, -0.094337374], [], 0, "CAN_COLLIDE"];
  _structure setDir -193.05838;
  _structure setPos [7093.8174, 10898.889, -0.094337374];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7073.8301, 10916.894, 0.083794333], [], 0, "CAN_COLLIDE"];
  _structure setDir 70.799141;
  _structure setPos [7073.8301, 10916.894, 0.083794333];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7075.9707, 10931.343, 0.10832247], [], 0, "CAN_COLLIDE"];
  _structure setDir -49.832504;
  _structure setPos [7075.9707, 10931.343, 0.10832247];

  _structure = createVehicle ["Base_WarfareBBarrier10x", [7085.4663, 10943.761, 0.08197166], [], 0, "CAN_COLLIDE"];
  _structure setDir -53.001854;
  _structure setPos [7085.4663, 10943.761, 0.08197166];

  _structure = createVehicle ["CDF_WarfareBBarracks", [7104.5264, 10959.384, -0.5389111], [], 0, "CAN_COLLIDE"];
  _structure setDir 117.08312;
  _structure setPos [7104.5264, 10959.384, -0.5389111];

  _structure = createVehicle ["CDF_WarfareBHeavyFactory", [7078.377, 10897.927, -0.39529875], [], 0, "CAN_COLLIDE"];
  _structure setDir 229.45616;
  _structure setPos [7078.377, 10897.927, -0.39529875];

  _structure = createVehicle ["CDF_WarfareBAircraftFactory", [7090.1118, 10961.631, -0.53634435], [], 0, "CAN_COLLIDE"];
  _structure setDir -142.97929;
  _structure setPos [7090.1118, 10961.631, -0.53634435];

  _structure = createVehicle ["USMC_WarfareBLightFactory", [7106.8604, 10903.851, -0.41649598], [], 0, "CAN_COLLIDE"];
  _structure setDir 47.820774;
  _structure setPos [7106.8604, 10903.851, -0.41649598];

  _structure = createVehicle ["RU_WarfareBBarracks", [7082.269, 10926.914, -0.59960783], [], 0, "CAN_COLLIDE"];
  _structure setDir 37.02866;
  _structure setPos [7082.269, 10926.914, -0.59960783];

  _structure = createVehicle ["RU_WarfareBBarracks", [7091.7427, 10939.092, -0.63014752], [], 0, "CAN_COLLIDE"];
  _structure setDir 36.370518;
  _structure setPos [7091.7427, 10939.092, -0.63014752];

  _structure = createVehicle ["HeliHRescue", [7109.9526, 10938.518, -3.0517578e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -53.964008;
  _structure setPos [7109.9526, 10938.518, -3.0517578e-005];

  _structure = createVehicle ["HeliH", [7086.1001, 10911.011, -1.335144e-005], [], 0, "CAN_COLLIDE"];
  _structure setPos [7086.1001, 10911.011, -1.335144e-005];

  _structure = createVehicle ["Land_covering_hut_EP1", [7117.0415, 10914.42, 5.7220459e-006], [], 0, "CAN_COLLIDE"];
  _structure setDir -61.360214;
  _structure setPos [7117.0415, 10914.42, 5.7220459e-006];

  _structure = createVehicle ["Land_covering_hut_big_EP1", [7121.001, 10936.672, 7.6293945e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir 82.973396;
  _structure setPos [7121.001, 10936.672, 7.6293945e-005];

  _structure = createVehicle ["Misc_TyreHeapEP1", [7111.4312, 10905.21, 2.4795532e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -98.841072;
  _structure setPos [7111.4312, 10905.21, 2.4795532e-005];

  _structure = createVehicle ["Misc_palletsfoiled_heap", [7120.2471, 10940.52, 0.00031280518], [], 0, "CAN_COLLIDE"];
  _structure setDir -3.5188289;
  _structure setPos [7120.2471, 10940.52, 0.00031280518];

  _structure = createVehicle ["Land_Ind_TankSmall2_EP1", [7089.3408, 10895.105, 5.3405762e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -16.37266;
  _structure setPos [7089.3408, 10895.105, 5.3405762e-005];

  _structure = createVehicle ["Haystack_small", [7115.6016, 10911.817, 9.5367432e-006], [], 0, "CAN_COLLIDE"];
  _structure setDir 31.399694;
  _structure setPos [7115.6016, 10911.817, 9.5367432e-006];

  _structure = createVehicle ["Land_radar_EP1", [7068.105, 10926.545, 0.0002040863], [], 0, "CAN_COLLIDE"];
  _structure setDir 7.6075644;
  _structure setPos [7068.105, 10926.545, 0.0002040863];

  _structure = createVehicle ["MAP_mud_10_75", [7131.8511, 10921.434, -5.3405762e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -250.19125;
  _structure setPos [7131.8511, 10921.434, -5.3405762e-005];

  _structure = createVehicle ["MAP_mud_6konec", [7126.4761, 10923.228, 3.8146973e-006], [], 0, "CAN_COLLIDE"];
  _structure setDir 107.50972;
  _structure setPos [7126.4761, 10923.228, 3.8146973e-006];

// ********************************************************************************************* >> Конец блока центрального рынка.
// ********************************************************************************************* >> ДАС_БУНКЕР
  _structure = createVehicle ["underground_trader", [9529.7422, 9407.3867, 0.00072429911], [], 0, "CAN_COLLIDE"];
  _structure setDir -50.469486;
  _structure setPos [9529.7422, 9407.3867, 0.00072429911];

// ********************************************************************************************* >> ДАС_БУНКЕР
// ********************************************************************************************* >> ДАС_БУНКЕР ЯНТАРЬ

  _structure = createVehicle ["Land_Objekt8", [8333.3965, 5233.4634, 5.9127808e-005], [], 0, "CAN_COLLIDE"];
  _structure setDir -63.939907;
  _structure setPos [8333.3965, 5233.4634, 5.9127808e-005];

  _structure = createVehicle ["Land_Objekt4", [8346.0059, 5226.5522, -0.66706699], [], 0, "CAN_COLLIDE"];
  _structure setDir 208.10071;
  _structure setPos [8346.0059, 5226.5522, -0.66706699];

  _structure = createVehicle ["Land_Objekt22", [8319.3945, 5254.6172, -0.1950343], [], 0, "CAN_COLLIDE"];
  _structure setDir -244.58727;
  _structure setPos [8319.3945, 5254.6172, -0.1950343];

  _structure = createVehicle ["Land_Objekt23", [8323.0361, 5212.2471, -0.56846005], [], 0, "CAN_COLLIDE"];
  _structure setDir -154.48476;
  _structure setPos [8323.0361, 5212.2471, -0.56846005];

  _structure = createVehicle ["Land_Objekt23", [8342.79, 5253.9033, -0.54002446], [], 0, "CAN_COLLIDE"];
  _structure setDir 28.918249;
  _structure setPos [8342.79, 5253.9033, -0.54002446];

// ********************************************************************************************* >> ДАС_БУНКЕР
// ********************************************************************************************* >> ДАС_БУНКЕР ЯНТАРЬ
};
processInitCommands;

Даю так же ссылку на сам подагорск: http://www.armaholic.com/page.php?id=8791&highlight=PODAGORSK

почему была выбрана эта карта?

Ее резмер 10 с копейками кв. км (чернорусь 12), т.е. она больше и намальска и тирска, но сохраняет их атмосферу, так же имеет шикарный остров с аэро, где у нас и будут аномалии, и пару островов поменьше, где любители острых ощущений смогут встретить кровососа

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

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

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


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

Продолжаем сталкеризацию. Делаем свой "продвинутый" конфиг для Подагорска с атмосферой.

 

Шаг № 1. подготовительный. Устанавливаем начальные файлы сервера под подагорск (они идут вместе с эпохой инстанс 19)

Шаг № 2. Заходим в MPmissions/DayZ_Epoch_19.FDF_Isle1_a/ и создаем там папку (в моем варианте olke) вы можете как угодно, но нужно будет менять пути....) 

Шаг № 3. Создаем в новой папке    MPmissions/DayZ_Epoch_19.FDF_Isle1_a/olke/ два пустых файла: 

config.sqf //конфигурация эпохи версии 1.5.0.1
DynamicWeatherEffects.sqf // наш файл погоды
Шаг № 4. Заполняем приложенным содержимым, специально подробные комментарии, что и где на русском
 

 

// Конфиг эпохи от OLKE руссифицированный.
// Параметры сервера
dayZ_instance =	19; //Сюда пишем инстанс
dayzHiveRequest = [];
initialized = false;
dayz_previousID = 0;
CanDeployBike = true;
// Атмосфера игры и запуск модуля погоды по умолчанию.

execVM "olke\DynamicWeatherEffects.sqf";

// Africa preset: 
// colortheme = ppEffectCreate ["colorCorrections", 1501];
// colortheme ppEffectEnable true;
// colortheme ppEffectAdjust [ 1, 1.3, 0.001, [-0.11, -0.65, -0.76, 0.015],[-5, -1.74, 0.09, 0.86],[-1.14, -0.73, 1.14, -0.09]];
// colortheme ppEffectCommit 0;

// Powinggrund preset:
// colortheme = ppEffectCreate ["colorCorrections", 1501];
// colortheme ppEffectEnable true;
// colortheme ppEffectAdjust [1, 1, 0, [0.0, 0.0, 0.0, 0.0], [0.8*2, 0.5*2, 0.0, 0.7], [0.9, 0.9, 0.9, 0.0]];
// colortheme ppEffectCommit 0;

// Clear preset:
// colortheme = ppEffectCreate ["colorCorrections", 1501];
// colortheme ppEffectEnable true;
// colortheme ppEffectAdjust [ 1, 1, 0, [0, 0, 0, -0.31],[1.9, 1.9, 1.73, 0.7],[0.2, 1.1, -1.5, 1.64]];
// colortheme ppEffectCommit 0;

// DarkDrake preset:
colortheme = ppEffectCreate ["colorCorrections", 1501];
colortheme ppEffectEnable true;
colortheme ppEffectAdjust [ 1, 0.21, 0, [0.1, 0, 0, 0],[3.59, 3.49, 3.78, 0.83],[-0.31, 0.08, 3.79, 5]];
colortheme ppEffectCommit 0;

EpochEvents = [
	["any","any","any","any",0,"Construction"],
	["any","any","any","any",5,"Military"],
	["any","any","any","any",10,"Supplyitems"],
	["any","any","any","any",12,"Military2"],
	["any","any","any","any",15,"Treasure"],
	["any","any","any","any",20,"Construction"],
	["any","any","any","any",25,"Military"],
	["any","any","any","any",30,"Supplyitems"],
	["any","any","any","any",35,"Treasure"],
	["any","any","any","any",40,"Construction"],
	["any","any","any","any",45,"Military"],
	["any","any","any","any",50,"Supplyitems"],
	["any","any","any","any",55,"Treasure"]
];
// Конфигурация связанная с игроком.

// Лут после респавна игрока.
DefaultMagazines = ["ItemBandage","ItemBandage","ItemPainkiller"]; // два бинта и обезбол
DefaultWeapons = ["ItemHatchet_DZE","ItemFlashlight","ItemKnife","ItemMap","ItemMatchbox","ItemToolbox"]; //топор, фонарик, ножик, карта, списчки, ящик с инструментами
DefaultBackpack = "DZ_ALICE_Pack_EP1"; //рюкзак - учитывая обилие лута да еще и хабар добавляем рюкзак с средним кол-вом слотов

// Параметры респавна.
spawnShoremode = 0; // Default = 1 появляться на берегу или нет (0) 
spawnArea= 1500; // Default = 1500  разброс от точки респавна в метрах 
dayz_paraSpawn = false; // Новый игрок или прерождение начинается с спуска на парашюте.

// Конфигурация связанная с транспортом

MaxVehicleLimit = 10; // Default = 50  маскимальное кол-во техники которое спавиться за раз
MaxDynamicDebris = 100; // Default = 100 останки машин и мусор на/у дорог.
DynamicVehicleDamageLow = 0; // Default: 0 мин
DynamicVehicleDamageHigh = 100; // Default: 100 макс повреждение у машин при респе
MaxHeliCrashes= 5; // Default = 5 Максимальное кол-во хеликрашей
MaxMineVeins = 5; // Максимальные параметры лута на дропах
MaxAmmoBoxes = 3; // Максимальные параметры лута на дропах

// Конфигурация карты и строительства.

dayz_MapArea = 7000; // Default = 10000 границы за которыми радиация
dayz_paraSpawn = false;
// dayz_minpos = -1;  работает неправильно на подагорске.
// dayz_maxpos = 7000;


DZE_BuildOnRoads = true; // Default: False можно строит на дороге да или нет.
dayz_fullMoonNights = true; // Ночью всегда светит луна
dayz_maxLocalZombies = 40; // Default = 40  макс. число зомби.

dayz_maxAnimals = 5; // Default: сколько животных одновременно
dayz_tameDogs = false; //Включить или нет собак на сервере

DZE_PlotPole = [30,45];	 //Радиус действия столба 
DZE_BuildingLimit = 100; //Сколько объектов можно построить на 1 столб
MaintainCost = 1000; //Затраты на строительство
MaintainTax = 0.1; 
DZE_DamageBeforeMaint = 0.09;

// Конфигурация связанная с торговлей

dayz_sellDistance_vehicle = 10; // Дистанция для продажи авто
dayz_sellDistance_boat = 30; //Дистанция для продажи лодки
dayz_sellDistance_air = 40; //Дистанция для продажи авиа
DZE_DiagFpsSlow = true; // Автоматические снижение ФПС при диалогах с торговцами

 

 

 

 

 



/* DynamicWeatherEffects.sqf version 1.01 by Engima of Ostgota Ops коменты от olke
 * Описание:
 *   Скрипт генерирует динамически случайную погоду. Работает как в одиночном так и в многопользовательских режимах. 
 * Аргументы:
 *   [_initialFog]: Опционально. Сообщает игре наличие тумана при старте миссии может быть = 0 или 1 (нет тумана или максимальной туман, в случае - 1 слуачйно).
 *   [_initialOvercast]: Опционально Сообщает игре состояние неба при начиле миссии. Параметры (от 0 ясное небо до 1 пасмурно, 1 максимальная облачность, 1 случайно).
 *   [_initialRain]: Опционально. Параметр дождя на старте мимиии. Параметры (от 0 нет дождя, 1 сильный дождь, -1 рандом в случае с дождем облачность должна быть больше 0.75). 
 *   [_initialWind]: Опционально. Наличие ветра при старте мисии. Должен быть в виде массива [x, z], где х это сила ветра, z направление эти параметры могут менять от 0 до 1 [-1, -1] = случайное направление и сила ветра.).
 *   [_debug]: Опционально. true показывать дебаг информацию, false не показывать. 
 */

private ["_initialFog", "_initialOvercast", "_initialRain", "_initialWind", "_debug"];
private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_rainIntervalRainProbability", "_windChangeProbability"];
private ["_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumRain", "_maximumRain", "_minimumWind", "_maximumWind", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_forceRainToStopAfterOneRainInterval", "_maxWind"];

if (isNil "_this") then { _this = []; };
if (count _this > 0) then { _initialFog = _this select 0; } else { _initialFog = -1; };
if (count _this > 1) then { _initialOvercast = _this select 1; } else { _initialOvercast = -1; };
if (count _this > 2) then { _initialRain = _this select 2; } else { _initialRain = -1; };
if (count _this > 3) then { _initialWind = _this select 3; } else { _initialWind = [-1, -1]; };
if (count _this > 4) then { _debug = _this select 4; } else { _debug = false; };

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Ниже переменные которые вы можете менять по своему усмотрению 

//  Минимальный интервал времени в минутах для погоды (это либо туман либо пасмурно (вместе не бывает) Может меняться от 0 до 1, но при этом меньше или равно 
// _maxWeatherChangeTimeMin. (Реккомендумый параметр: 10).
_minWeatherChangeTimeMin = 10;

//  Максимальный интервал времени в минутах для погоды (это либо туман либо пасмурно (вместе не бывает) Может меняться от 0 до 1, но при этом больше или равно 
// _minWeatherChangeTimeMin. (Реккомендумый параметр: 20).
_maxWeatherChangeTimeMin = 20;

// Минимальное время в минутах, когда туман или облачность, остается в без изменений. Может быть меньше или равно 0 но в любом случае больше или равно 
// _minWeatherChangeTimeMin. (Реккомендумый параметр: 10).
_minTimeBetweenWeatherChangesMin = 10;

// Максимальное время в минутах, когда туман или облачность, остается в без изменений. Может быть меньше или равно 0 но в любом случае больше или равно 
// _minWeatherChangeTimeMin. (Реккомендумый параметр: 60).
_maxTimeBetweenWeatherChangesMin = 60;

// Минимальная интенсивность тумана может быть 0 или 1 но не может быть больше чем _maximumFog
// (0 = нет тумана, 1 = 0 нулевая видимость). (Реккомендумый параметр: 0.8).
_minimumFog = 0.8;

// Максимальная интенсивность тумана не может привышать это значение. Должно быть выставлено в 0 или 1 (включая десятые доли) 
// (0 = нет тумана, 1 = 0 нулевая видимость). (Реккомендумый параметр: 0.8).
_maximumFog = 0.8;

// Интенсивность значения облачно, не может быть ниже этого значения , быть от 0 до 1 (включая десятые доли), но в любом случае не выше _maximumOvercast
// (0 = no overcast, 1 = maximum overcast). (Реккомендумый параметр:  0).
_minimumOvercast = 0.4;

// Максимальный параметр значения облачно может быть от 0 до 1 (включая десятые доли), но в любом случае не ниже чем _minimumOvercast
// (0 = no overcast, 1 = maximum overcast). (Реккомендумый параметр: 1).
_maximumOvercast = 1;

// Минимальный параметр интенсиваность дождя, может быть от 0 до 1 (включая десятые доли) но в любом случае не выше чем _maximumRain
// (0 = no rain, 1 = maximum rain intensity). (Реккомендумый параметр:  0.8);
_minimumRain = 0.2;

// Максимальный параметр интенсиваность дождя, может быть от 0 до 1 (включая десятые доли) но в любом случае не ниже чем _minimumRain
// (0 = no rain, 1 = maximum rain intensity). (Реккомендумый параметр: 0.8);
_maximumRain = 0.8;

// Сила ветра, минимальное значене больше или равно нулю но не выше чем _maximumWind.
// (Реккомендумый параметр: 0);
_minimumWind = 0;

// Сила ветра, должен быть больше или равен  _minimumWind.
// (Реккомендумый параметр: 8).
_maximumWind = 8;

// Вероятность в процентах, для изменений ветра, вместе с погодой, если 0 то ветер не изменяется, если 100 то вы получите стену дождя. . Если 100 то постоянный для
// вероятность этого значения срабатывает  когда у вас туман или пасмурно, ветер начинает меняться. 
_windChangeProbability = 55;

// Вероятность в процентах (0-100) для начала должадя в каждый интервал когда дожь идет. Если вы установите 0, то дождя не будет вообще. Если 100 
// то у вас будет постоянно должеть. Если вы хотите очень частый дождь, ставьте 0.75 
// (Реккомендумый параметр: 50).
_rainIntervalRainProbability = 80;

//  Минимальное время интервалов дождя, должно быть выше или равно 0 и ниже чем _maxRainIntervalTimeMin.
// (Реккомендумый параметр: 0).
_minRainIntervalTimeMin = 0;

// Максимально в минутах время интервалов дождя, должно быть больше или равно минимальному _minRainIntervalTimeMin. (Реккомендумый параметр:
// (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2).
_maxRainIntervalTimeMin = (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2;

// Если стоит параметр true, то дожеть должен оставиться посл 1 интервала дождя. Если стоит false дождь может оставиться, а может изменить свою интенсивность. 
// это нужно если вы хоити сделать малые, редкие осадки к пример. Если стоит false, то дождь может полностью пройти,  а может изменить свою интенсивность 
// - это можно использовать чтобы показать затяжной дождь.
// (Реккомендумый параметр:  false).
_forceRainToStopAfterOneRainInterval = false;


///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Не трогайте ничего ниже этой линии, если вы не уверены в том, что делаете.

drn_DynamicWeather_DebugTextEventArgs = []; // Empty

"drn_DynamicWeather_DebugTextEventArgs" addPublicVariableEventHandler {
    drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal;
};

/*
 * Суммарно: Показывает дебаг текст на локальном клиенте..
 * Аргументы:
 *   _text: Debug text.
 */
drn_fnc_DynamicWeather_ShowDebugTextLocal = {
    private ["_minutes", "_seconds"];
    
    if (!isNull player) then {
        player sideChat (_this select 0);
    };
    
    _minutes = floor (time / 60);
    _seconds = floor (time - (_minutes * 60));
    diag_log ((str _minutes + ":" + str _seconds) + " Debug: " + (_this select 0));
};

/*
 * Суммарно: Показывает дебаг текст на локальном клиенте..
 * Аргументы:
 *   _text: Debug text.
 */
drn_fnc_DynamicWeather_ShowDebugTextAllClients = {
    drn_DynamicWeather_DebugTextEventArgs = _this;
    publicVariable "drn_DynamicWeather_DebugTextEventArgs";
    drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal;
};

if (_debug) then {
    ["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal;
};

drn_DynamicWeatherEventArgs = []; // Формат [облачность, туман, дождь, текуший вариант изменения погоды, напрвление изменения погоды, время в которое будет меняться погода в секундах, текущая сила ветра (x), текущее направление ветра (z).]
drn_AskServerDynamicWeatherEventArgs = []; // []

drn_fnc_DynamicWeather_SetWeatherLocal = {
    private ["_currentOvercast", "_currentFog", "_currentRain", "_currentWeatherChange", "_targetWeatherValue", "_timeUntilCompletion", "_currentWindX", "_currentWindZ"];

    _currentOvercast = _this select 0;
    _currentFog = _this select 1;
    _currentRain = _this select 2;
    _currentWeatherChange = _this select 3;
    _targetWeatherValue = _this select 4;
    _timeUntilCompletion = _this select 5;
    _currentWindX = _this select 6;
    _currentWindZ = _this select 7;
    
    // Set current weather values
    0 setOvercast _currentOvercast;
    0 setFog _currentFog;
    drn_var_DynamicWeather_Rain = _currentRain;
    setWind [_currentWindX, _currentWindZ, true];
    
    // Set forecast
    if (_currentWeatherChange == "OVERCAST") then {
        _timeUntilCompletion setOvercast _targetWeatherValue;
    };
    if (_currentWeatherChange == "FOG") then {
        _timeUntilCompletion setFog _targetWeatherValue;
    };
};

if (!isServer) then {
    "drn_DynamicWeatherEventArgs" addPublicVariableEventHandler {
        drn_DynamicWeatherEventArgs call drn_fnc_DynamicWeather_SetWeatherLocal;
    };

    waitUntil {!isNil "drn_var_DynamicWeather_ServerInitialized"};
    
    drn_AskServerDynamicWeatherEventArgs = [true];
    publicVariable "drn_AskServerDynamicWeatherEventArgs";
};

if (isServer) then {
    drn_fnc_DynamicWeather_SetWeatherAllClients = {
        private ["_timeUntilCompletion", "_currentWeatherChange"];
        
        _timeUntilCompletion = drn_DynamicWeather_WeatherChangeCompletedTime - drn_DynamicWeather_WeatherChangeStartedTime;
        if (_timeUntilCompletion > 0) then {
            _currentWeatherChange = drn_DynamicWeather_CurrentWeatherChange;
        }
        else {
            _currentWeatherChange = "";
        };
        
        drn_DynamicWeatherEventArgs = [overcast, fog, drn_var_DynamicWeather_Rain, _currentWeatherChange, drn_DynamicWeather_WeatherTargetValue, _timeUntilCompletion, drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ];
        publicVariable "drn_DynamicWeatherEventArgs";
        drn_DynamicWeatherEventArgs call drn_fnc_DynamicWeather_SetWeatherLocal;
    };
    
    "drn_AskServerDynamicWeatherEventArgs" addPublicVariableEventHandler {
        call drn_fnc_DynamicWeather_SetWeatherAllClients;
    };
    
    drn_DynamicWeather_CurrentWeatherChange = "";
    drn_DynamicWeather_WeatherTargetValue = 0;
    drn_DynamicWeather_WeatherChangeStartedTime = time;
    drn_DynamicWeather_WeatherChangeCompletedTime = time;
    drn_DynamicWeather_WindX = _initialWind select 0;
    drn_DynamicWeather_WindZ = _initialWind select 1;
    
    if (_initialFog == -1) then {
        _initialFog = (_minimumFog + random (_maximumFog - _minimumFog));
    }
    else {
        if (_initialFog < _minimumFog) then {
            _initialFog = _minimumFog;
        };
        if (_initialFog > _maximumFog) then {
            _initialFog = _maximumFog;
        };
    };
    
    0 setFog _initialFog;
    
    if (_initialOvercast == -1) then {
        _initialOvercast = (_minimumOvercast + random (_maximumOvercast - _minimumOvercast));
    }
    else {
        if (_initialOvercast < _minimumOvercast) then {
            _initialOvercast = _minimumOvercast;
        };
        if (_initialOvercast > _maximumOvercast) then {
            _initialOvercast = _maximumOvercast;
        };
    };
    
    0 setOvercast _initialOvercast;
    
    if (_initialOvercast >= 0.75) then {
        if (_initialRain == -1) then {
            _initialRain = (_minimumRain + random (_minimumRain - _minimumRain));
        }
        else {
            if (_initialRain < _minimumRain) then {
                _initialRain = _minimumRain;
            };
            if (_initialRain > _maximumRain) then {
                _initialRain = _maximumRain;
            };
        };
    }
    else {
        _initialRain = 0;
    };
    
    drn_var_DynamicWeather_Rain = _initialRain;
    0 setRain drn_var_DynamicWeather_Rain;
    
    _maxWind = _minimumWind + random (_maximumWind - _minimumWind);
    
    if (drn_DynamicWeather_WindX == -1) then {
        if (random 100 < 50) then {
            drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind);
        }
        else {
            drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind);
        };
    };
    
    if (drn_DynamicWeather_WindZ == -1) then {
        if (random 100 < 50) then {
            drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind);
        }
        else {
            drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind);
        };
    };
    
    setWind [drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ, true];
    
    sleep 0.05;
    
    publicVariable "drn_var_DynamicWeather_Rain";
    drn_var_DynamicWeather_ServerInitialized = true;
    publicVariable "drn_var_DynamicWeather_ServerInitialized";
    
    // Start weather thread
    [_minWeatherChangeTimeMin, _maxWeatherChangeTimeMin, _minTimeBetweenWeatherChangesMin, _maxTimeBetweenWeatherChangesMin, _minimumFog, _maximumFog, _minimumOvercast, _maximumOvercast, _minimumWind, _maximumWind, _windChangeProbability, _debug] spawn {
        private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumWind", "_maximumWind", "_windChangeProbability", "_debug"];
        private ["_weatherType", "_fogLevel", "_overcastLevel", "_oldFogLevel", "_oldOvercastLevel", "_weatherChangeTimeSek"];
        
        _minWeatherChangeTimeMin = _this select 0;
        _maxWeatherChangeTimeMin = _this select 1;
        _minTimeBetweenWeatherChangesMin = _this select 2;
        _maxTimeBetweenWeatherChangesMin = _this select 3;
        _minimumFog = _this select 4;
        _maximumFog = _this select 5;
        _minimumOvercast = _this select 6;
        _maximumOvercast = _this select 7;
        _minimumWind = _this select 8;
        _maximumWind = _this select 9;
        _windChangeProbability = _this select 10;
        _debug = _this select 11;
        
        // Set initial fog level
        _fogLevel = 2;
        _overcastLevel = 2;
        _weatherType = "";
        
        while {true} do {
            // Sleep a while until next weather change
            sleep floor (_minTimeBetweenWeatherChangesMin * 60 + random ((_maxTimeBetweenWeatherChangesMin - _minTimeBetweenWeatherChangesMin) * 60));
            
            if (_minimumFog == _maximumFog && _minimumOvercast != _maximumOvercast) then {
                _weatherType = "OVERCAST";
            };
            if (_minimumFog != _maximumFog && _minimumOvercast == _maximumOvercast) then {
                _weatherType = "FOG";
            };
            if (_minimumFog != _maximumFog && _minimumOvercast != _maximumOvercast) then {
                
                // Select type of weather to change
                if ((random 100) < 50) then {
                    _weatherType = "OVERCAST";
                }
                else {
                    _weatherType = "FOG";
                };
            };
            
            // DEBUG
            //_weatherType = "OVERCAST";
            
            if (_weatherType == "FOG") then {
                
                drn_DynamicWeather_CurrentWeatherChange = "FOG";
                
                // Select a new fog level
                _oldFogLevel = _fogLevel;
                _fogLevel = floor ((random 100) / 25);
                
                while {_fogLevel == _oldFogLevel} do {
                    _fogLevel = floor ((random 100) / 25);
                };
                
                if (_fogLevel == 0) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumFog + (_maximumFog - _minimumFog) * random 0.05;
                };
                if (_fogLevel == 1) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumFog + (_maximumFog - _minimumFog) * (0.05 + random 0.2);
                };
                if (_fogLevel == 2) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumFog + (_maximumFog - _minimumFog) * (0.25 + random 0.3);
                };
                if (_fogLevel == 3) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumFog + (_maximumFog - _minimumFog) * (0.55 + random 0.45);
                };
                
                drn_DynamicWeather_WeatherChangeStartedTime = time;
                _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60);
                drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek;
                
                if (_debug) then {
                    ["Weather forecast: Fog " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients;
                };
            };
            
            if (_weatherType == "OVERCAST") then {
                
                drn_DynamicWeather_CurrentWeatherChange = "OVERCAST";
                
                // Select a new overcast level
                _oldOvercastLevel = _overcastLevel;
                //_overcastLevel = floor ((random 100) / 25);
                _overcastLevel = 3;
                
                while {_overcastLevel == _oldOvercastLevel} do {
                    _overcastLevel = floor ((random 100) / 25);
                };
                
                if (_overcastLevel == 0) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * random 0.05;
                };
                if (_overcastLevel == 1) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.05 + random 0.3);
                };
                if (_overcastLevel == 2) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.35 + random 0.35);
                };
                if (_overcastLevel == 3) then {
                    drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.7 + random 0.3);
                };
                
                // DEBUG
                /*
                if (overcast > 0.8) then {
                    drn_DynamicWeather_WeatherTargetValue = 0.5;
                }
                else {
                    drn_DynamicWeather_WeatherTargetValue = 0.85;
                };
                */
                
                drn_DynamicWeather_WeatherChangeStartedTime = time;
                _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60);
                drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek;
                
                if (_debug) then {
                    ["Weather forecast: Overcast " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients;
                };
            };
            
            // On average every one fourth of weather changes, change wind too
            if (random 100 < _windChangeProbability) then {
                private ["_maxWind"];
                
                _maxWind = _minimumWind + random (_maximumWind - _minimumWind);
                
                if (random 100 < 50) then {
                    drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind);
                }
                else {
                    drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind);
                };
                if (random 100 < 50) then {
                    drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind);
                }
                else {
                    drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind);
                };
                
                if (_debug) then {
                    ["Wind changes: [" + str drn_DynamicWeather_WindX + ", " + str drn_DynamicWeather_WindZ + "]."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients;
                };
            };
            
            call drn_fnc_DynamicWeather_SetWeatherAllClients;
            
            sleep _weatherChangeTimeSek;
        };
    };
    
    // Start rain thread
    if (_rainIntervalRainProbability > 0) then {
        [_minimumRain, _maximumRain, _forceRainToStopAfterOneRainInterval, _minRainIntervalTimeMin, _maxRainIntervalTimeMin, _rainIntervalRainProbability, _debug] spawn {
            private ["_minimumRain", "_maximumRain", "_forceRainToStopAfterOneRainInterval", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_rainIntervalRainProbability", "_debug"];
            private ["_nextRainEventTime", "_forceStop"];
            
            _minimumRain = _this select 0;
            _maximumRain = _this select 1;
            _forceRainToStopAfterOneRainInterval = _this select 2;
            _minRainIntervalTimeMin = _this select 3;
            _maxRainIntervalTimeMin = _this select 4;
            _rainIntervalRainProbability = _this select 5;
            _debug = _this select 6;
            
            if (rain > 0) then {
                drn_var_DynamicWeather_Rain = rain;
                publicVariable "drn_var_DynamicWeather_Rain";
            };
            
            _nextRainEventTime = time;
            _forceStop = false;
            
            while {true} do {
                
                if (overcast > 0.75) then {
                    
                    if (time >= _nextRainEventTime) then {
                        private ["_rainTimeSec"];
                        
                        // At every rain event time, start or stop rain with 50% probability
                        if (random 100 < _rainIntervalRainProbability && !_forceStop) then {
                            drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain);
                            publicVariable "drn_var_DynamicWeather_rain";
                            
                            _forceStop = _forceRainToStopAfterOneRainInterval;
                        }
                        else {
                            drn_var_DynamicWeather_rain = 0;
                            publicVariable "drn_var_DynamicWeather_rain";
                            
                            _forceStop = false;
                        };
                        
                        // Pick a time for next rain change
                        _rainTimeSec = _minRainIntervalTimeMin * 60 + random ((_maxRainIntervalTimeMin - _minRainIntervalTimeMin) * 60);
                        _nextRainEventTime = time + _rainTimeSec;
                        
                        if (_debug) then {
                            ["Rain set to " + str drn_var_DynamicWeather_rain + " for " + str (_rainTimeSec / 60) + " minutes"] call drn_fnc_DynamicWeather_ShowDebugTextAllClients;
                        };
                    };
                }
                else {
                    if (drn_var_DynamicWeather_rain != 0) then {
                        drn_var_DynamicWeather_rain = 0;
                        publicVariable "drn_var_DynamicWeather_rain";
                        
                        if (_debug) then {
                            ["Rain stops due to low overcast."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients;
                        };
                    };
                    
                    _nextRainEventTime = time;
                    _forceStop = false;
                };
                
                if (_debug) then {
                    sleep 1;
                }
                else {
                    sleep 10;
                };
            };
        };
    };
};

[_rainIntervalRainProbability, _debug] spawn {
    private ["_rainIntervalRainProbability", "_debug"];
    private ["_rain", "_rainPerSecond"];
    
    _rainIntervalRainProbability = _this select 0;
    _debug = _this select 1;
    
    if (_debug) then {
        _rainPerSecond = 0.2;
    }
    else {
        _rainPerSecond = 0.03;
    };
    
    if (_rainIntervalRainProbability > 0) then {
        _rain = drn_var_DynamicWeather_Rain;
    }
    else {
        _rain = 0;
    };
    
    0 setRain _rain;
    sleep 0.1;
    
    while {true} do {
        if (_rainIntervalRainProbability > 0) then {
            if (_rain < drn_var_DynamicWeather_Rain) then {
                _rain = _rain + _rainPerSecond;
                if (_rain > 1) then { _rain = 1; };
            };
            if (_rain > drn_var_DynamicWeather_Rain) then {
                _rain = _rain - _rainPerSecond;
                if (_rain < 0) then { _rain = 0; };
            };
        }
        else {
            _rain = 0;
        };
        
        3 setRain _rain;
        
        sleep 3;
    };
};
	systemChat ('<RU.DynamicWeatherEffects>: Successfully Loaded In.');



Шаг № 6 теперь нам надо подключить наши конфиги. Для этого заходим в  MPmissions/DayZ_Epoch_19.FDF_Isle1_a/init.sqf и редактируем его.

 

 

startLoadingScreen ["","RscDisplayLoadCustom"];cutText ["","BLACK OUT"];
enableSaving [false, false];

 

Эту часть оставляем... 

#include "olke\config.sqf" // подключаем наш конфиг погода уже заплена в него
 

 

// Удаляем содержимое init.sqf до строчки где грузятся компиляции
//Load in compiled functions
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";                //Initilize the Variables (IMPORTANT: Must happen very early)
дальше ваши отдельные настройки.
 

Регулируя глубину и длительность дождя и тумана, а так же окрас атмосферы создаем атмосферу мрачности из сталкера для нашего сервера эпохи..  Скрипт подходит для любого сервера измените параметры по вкусу и № инстанса. Размеры карты можно взять из вашего старого init.

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

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


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

Так вроде проблем с подключением мода ни каких и не было - проблема в том, чтоб заставить народ СКАЧАТЬ мод себе)

Большинство заходят на сервер со стандартной эпохой, предварительно(если новичек) наковырявшись с установкой часа полтора - два.

И если будет какая то надпись про недостающий мод - нафиг оно ему надо?)

Второе - в ДейзКомандере, который так распиарен, что юзают почти все - мода этого нет. => В поиске и не будет.

Ну и как следствие всего этого вопрос-

А народ то откуда на сервер придет ?

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


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

Так вроде проблем с подключением мода ни каких и не было - проблема в том, чтоб заставить народ СКАЧАТЬ мод себе)

Большинство заходят на сервер со стандартной эпохой, предварительно(если новичек) наковырявшись с установкой часа полтора - два.

И если будет какая то надпись про недостающий мод - нафиг оно ему надо?)

Второе - в ДейзКомандере, который так распиарен, что юзают почти все - мода этого нет. => В поиске и не будет.

Ну и как следствие всего этого вопрос-

А народ то откуда на сервер придет ?

1) Я может удивлю, но достаточно много игроков даже не слышали о дейз-командере, и однако в epoch играют. Причем это более качественный онлайн чем дети 12 лет из России. Качественный, как по донату, так и по поведению на сервере.

2) Меня мало волнует, как он придет, это задачи владельцев сервера. Как народ например играет на Тушино, качая массу модов для Арма 2? Причем онлайн там такой, который не сниться серверам с дейз.  Будет правильный пиар и тд пойдет.  Если у сервера нормальное коммунити, и мод скачают без проблем и играть будут. 

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

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

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


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

Поддерживаю, народ видит сервак и хочет зайти и тут на тебе, надо еще что то качать, вот в этом вся и соль, надо делать так что бы игрок не качая ничего мог зайти и все это увидеть

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


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

У игрока просто есть выбор. Либо он хочет играть в мод. со сталкером и качает. Или, если ему в ломы, лень, нет мозгов и тд. сидит на опостылевшем napf и чернорусии и не жужжит.  При таких серьезных модификациях в любом случае придется качать, модели, текстуры и тд.  

Касательно установки мода S.T.A.L.K.E.R. - первое нет смысла качать лишнее, второе нет нормального сохранения, третье интеграция с эпочем делает его интереснее, чем мод в чистом виде и отдельно и позволяет реализовать нормальное сохранение.

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

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


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

У игрока просто есть выбор. Либо он хочет играть в мод. со сталкером и качает. Или, если ему в ломы, лень, нет мозгов и тд. сидит на опостылевшем napf и чернорусии и не жужжит.  При таких серьезных модификациях в любом случае придется качать, модели, текстуры и тд.  

Касательно установки мода S.T.A.L.K.E.R. - первое нет смысла качать лишнее, второе нет нормального сохранения, третье интеграция с эпочем делает его интереснее, чем мод в чистом виде и отдельно и позволяет реализовать нормальное сохранение.

Всем привет.

Частично согласен со всеми, ставил доп мод на карту Напф, 80% скачала мод, остальная сказал нам не надо, можно конечно задаться целью и сделать свой лаунчер, который бы решил эти задачи. Но в целом да, было бы проще, если бы это можно было засунуть в Миссию. 

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


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

Ничего серьезного не запихаешь. Кроме аномалий. Там на 300 мб никто качать каждый раз по 300 мб не будет тем более. Аномалии написаны скриптами распакуй пбо переделай скрипты и заработает. Но кровососы и тд.... L*(

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


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

1) Я может удивлю, но достаточно много игроков даже не слышали о дейз-командере, и однако в epoch играют. Причем это более качественный онлайн чем дети 12 лет из России. Качественный, как по донату, так и по поведению на сервере.

2) Меня мало волнует, как он придет, это задачи владельцев сервера. Как народ например играет на Тушино, качая массу модов для Арма 2? Причем онлайн там такой, который не сниться серверам с дейз.  Будет правильный пиар и тд пойдет.  Если у сервера нормальное коммунити, и мод скачают без проблем и играть будут. 

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

По п.1. без вариантов, в любом гайде - дейз командер фигурирует, 90% его качают и юзают.

По п.2 - Ну тебя мало волнует) А владельцев вот волнует) А про пиар, - конечно, при правильном пиаре... Но это или стоит денег, либо колосальных усилий, что не оправдывает сервера которые не держат многотысячный онлайн. - Как сказал один человек, - "Представь, что у тебя есть завод по производству лимонада. И он самый вкусный - вкуснее всего что есть в магазинах. Ты это знаешь, ну и еще человек 10. инфа 146%))) А теперь вопрос - через сколько часов, дней, недель, месяцев, лет, - ты побьеш рекорды продаж Кока-Колы?"

)

ну а 3, - выбросы и т.п., это и так понятно - можно в миску пихнуть, можно и скины туда пихнуть со сталкера... Но выбросы, аномалии и т.п., - именно визуально, зависят от настроек графики в дейз, а у многих там все на минимуме, в итоге получаем геймплей, без визуальной составляющей, - сомнительно... Хотя мне нравится)))

 

За гайд, однозначно плюс.

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

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

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


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

А что переделывать, вот ребята запилил свое, сталка на DayZ Epoch, и по ходу супер получается , вот группа в контакте, там видео есть, посмотрите, мод есть и ихний лаунчер, заходи и играй. как по мне то хотелось бы свой сервак такой иметь https://vk.com/adx_team

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


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

Уважаемые. Вы можете фантазировать сколько угодно в любом случае добавление любых новых графических объектов повлечет за собой добавление мода. Следовательно сталкер не в тему к дейзкомандеру совсем. 

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


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

Добрый день, прошу помощи, именно по этому моду и скрипту сталкерскому, мне удалось подключить мод к базе данных, теперь сохранение работают,вроде бы все хорошо, но некоторые моменты остались под вопросом,

 

1. вопрос:

 

После смерти и возраждения остается вот такая ерунда на экране с лева в низу

95cf906a40be257b2c4e2bc142f68c28.png

 

2. вопрос:

 

Пропадает звук музыки и выстрелов

 

А вот видео работы сервера

 

http://youtu.be/vA4GYKa6M4I

 

http://youtu.be/rpMeSO3Fiw0

 

http://youtu.be/CB3HxJlcss0

 

http://youtu.be/IchXw8gspvc

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

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: Guliashik
      Подскажите люди добрые как добавить кровососа и выброс на сервер dayz epoch namalsk! А то все гайды устарели а версия сейчас 1.0.6.2
    • Автор: Serdce
      Читал тему про добавления кровососа на любой сервер подключением аддонов, а так как аддон самого кровососа в намальсе в стоке, то можно и не подключать аддоны. Потом наткнусля на сборку эпоча 1.0.5.1 + намальск, в котором были кровососы, что подтвердило мои догадки. Я скачал сборку, посмотрел как это запилено, копирнул это всё дело на свой 1061, проверил переменые ( не нашёл не одной для изменения ) запустил иииии нечего((( как я понял из коментариев автора сборки, кровососы спавнятся как зомби в близь военных объектов ( для этого наверно и нужен файл building_spawnZombies с изменениями ). Так вот в чём вопрос, где я ошибся, или может что то не учёл? помогите пожалуйста(((
      Автор сборки с кровососами -  DimitriPokki
    • Автор: vitacite
      Квест на аномалии. Участники - любые игроки. 3 НПС, 3 Анимированных аномалии (пока без дамага), 3 квестовых предмета - детектор аномалий, карта сокровищь и журнал с девчонками :)
      Выглядит это так...
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
      Мануаль по установке тут....
      Обновление от 19.01.2016
      Качаем все отсюда https://github.com/olkeakavitacite/EQP_Anomaly/blob/master/Readme_RUS.txt
      Так же находится описание, как и чего делать.
       
    • Автор: BigCrazyCat
      Установил аномалии гайду на форуме,кикает Батлай с ошибкой Script Restriction #1.
      Лог батлая:
       
      25.01.2015 17:17:05: Nick (127.0.0.1:2304) d7b50ae48e9d54a9d80c9d85261ccaba - #1 "hen  { { if ((_x distance _epicenter)<_range)then  {  _x setDammage 1; [nil, nil, rSPAWN, [_x,_epicenter],  { _victim = _this"    
    • Автор: vitacite
      Привет всем. Стоит ли выкладывать модификацию dayz_epoch следующего содержимого. Вам надоели дети на вашем сервере? раскрашенные тачки с бабами на копоте? вы считаете, что нельзя превращать гениальный сурвив мод в сбор и подажу лута и пушек с длинными стволами компенсирующие короткие стволы их владельцев? Модификация с HARDCORE выживанием для вас . :) Никаких оверпохов и телок на капотах тачек. Никаких бонусов для пятилетней школоты. Чистая жесть. Небольшой остров с аномалиями, которые охраняют киборги, и морпехи бывшего СССР. Атмосферный остров PODAGORSK, на котором вас ждут бандиты и другие выживающие. Торговцы которым плевать на ваш лут, если это не артефакты, крафт артефактов одни в другие и доп свойства? 
      Верный партнер - калашников и его модификации, SVD, печенег, пистолет макарова ТТ.  Возможность модифицировать однотипное оружие (частично). 
       
       
      1) Карта PADAGORSK  10 кв. км (Чернорусь 12 кв .км.) с атмосферой NAMALSKA
       
      2) Система deploy on mouse click (байк и куча всего) 
       
      3) Полностью переделанная система торговли - деньги (gold coin) вместо слитков.
       
      4) Система модификации оружия глушитель и оптика , и тд одевается и снимается однотипное оружие на часть одевается камуфляж.
       
      5) Аномальный остров - грави, электра, трамплин, жарка - с образованием артефактов (их скупают торговцы) остров охраняют люди и киборги.
       
      6) Таинственный остров с находящимся там страшным монстром (кровосос) который будет охотится там на вас... 
       
      7) Таинственная башня у которой можно услышать таинственные координаты, таинственных мест.
       
      Атмосфера сталкера, помноженная на Survival dayz_epoch.
       
      При создании использованы моды:
      Overpoch - анимация, звуки, частично физика, Gaz TIGR, VAC, и тд. моды техники Arma 3 и Arma 1, ZIL, UAZ - зил и уаз буханка GSC - stalker  и dap stalker - для создания атмосферы и взятия AI для кровососа. 
      а так же множество модов с оф.форума dayz_epoch и собственно dayz_epoch.  Коды написаны таким образом, что загружаются поверх кодов dayz_epoch. 
       
      Разработка мода завершена на 80%. Все вышеуказанное работает, осталось прописать правильное оружие и лут на карте.  Желающие помочь пишите в личку, участвующие получат модификацию раньше остальных на свои сервера.