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

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

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

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

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

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

Представляю вашему вниманию скрипт, знакомый некоторым с DE1000! Суть его такова, берется рандомный игрок, вешается на него маркер с радиусом, тот игрок который убьет разыскиваемого получает награду, если разыскиваемый продержался он получает награду!

 

Автор: Donnovan

 

Установка: 

 

-Создать в серверной части файл с кодом внутри: 

//THE TIME THE FUGITIVE NEED TO RESIST ALIVE TO WIN *IN MINUTES*
_aliveTimeToWin = 20;

//THE TIME CYCLE THE FUGITIVE MARK WILL BE UPDATED *IN SECONDS*
_updateMark = 100;

//MAXIMUN TIME THE FUGITIVE IS ALLOWED TO BE IN A PLOT OR SAFEZONE RADIUS TO RECEIVE HIS REWARD IN CASE OF WIN (a percentage of _aliveTimeToWin)
_maxTimeNearPlot = 0.15;

//TIME CYCLE *IN SECONDS* TO CHECK FOR PLOTS NEAR THE FUGITIVE AND SAFEZONES
_onPlotCheckFrequency = 20;

//THE RADIUS OF THE POSITION HINT (FUGITIVE WILL BE SOMEWHERE INSIDE THE CIRCLE) *IN METERS*
_circleSize = 200;

//MINIMUM NUMBER OF PLAYERS TO RUN
_minPlayersToRun = 15;

//TIME TO WAIT BEFORE TRY TO RUN AGAIN *IN MINUTES*
_runTimeInter = 50;

//FIRST RUN DELAY *IN MINUTES*
_firstRunDelay = 30;

//FUGITIVE TIME REWARDS: [time in minutes to exec reward (in sequence),reward message,reward code where _this is the fugitive]
_fugitiveRewards = [
	[4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
];

//SAFE ZONES (READY FOR CHERNARUS)
_safezones = [
	[6325,7807,0],
	[4063,11664,0],
	[11447,11364,0],
	[1606,7803,0],
	[12944,12766,0], 
	[12060,12640,0]
];
_safezonesRad = 160;

//ADMINS STEAM ID (TO PREVENT THE SCRIPT TO SELECT ADMINS AS FUGITIVE)
_admins = ["0","0","0","0"];

//=====================
// FUNCTIONS ==========
//=====================

donn_fugitiveChoose = {
	_fugitive = objNull;
	_maxSumDist = -1;
	{
		_p = _x;
		if (damage _p < 0.2 && vehicle _p == _p) then {
			if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then {
				_pUID = getPlayerUID _p;
				if !(_pUID in _admins) then {
					_sumDist = 0;
					{_sumDist = _sumDist + (_p distance _x);} forEach playableUnits;
					if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;};
				};
			};
		};
	} forEach playableUnits;
	_fugitive
};

//=====================
// THE SCRIPT =========
//=====================

_aliveTimeToWin = round (_aliveTimeToWin*60);
_runTimeInter = round (_runTimeInter*60);
_firstRunDelay = round (_firstRunDelay*60);
_lastTimeConclude = time-_runTimeInter+_firstRunDelay;
while {true} do {
	waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter};
	_fugitive = call donn_fugitiveChoose;
	if (!isNull _fugitive) then {
		diag_log "[MOSTWA] Begin!";
		_fugitiveName = name _fugitive;
		_aliveTimeStart = time;
		_aliveTimePassed = 0;
		_timeCell = 2;
		_sleepAMark = round(_updateMark/_timeCell);
		_slepBIndex = 0;
		_sleepBMark = -1;
		if !(_slepBIndex == count _fugitiveRewards) then {
			_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
		};
		_sleepCMark = round(_onPlotCheckFrequency/_timeCell);
		_sleepDMark = round (10/_timeCell);
		//_sleepA = _sleepAMark;
		_sleepA = 0;
		_sleepB = 0; 
		_sleepC = 0;
		_sleepD = 0;
		_txt = ((name _fugitive)+" have a price on his head, kill hin to receive a reward.\n"+(name _fugitive)+", stay alive " +(str(round(_aliveTimeToWin/60)))+" minutes to receive the prize.\n\n");
		_timeInPlot = 0;
		while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin} do {
			if (_sleepA >= _sleepAMark) then {
				_txt = _txt + ((name _fugitive)+" mark updated on map.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" minutes to stop the hunt.\n\n");
				_sleepA = 0;
				_fPos = position _fugitive;
				_error = (_circleSize*2)/sqrt(2);
				_fPosBlur = [(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0];
				if (_aliveTimePassed > 0) then {deleteMarker "DONN_FUGITIVE";deleteMarker "DONN_FUGITIVE_DOT";};
				createMarker ["DONN_FUGITIVE",_fPosBlur];
				"DONN_FUGITIVE" setMarkerColor "ColorYellow";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize];
				createMarker ["DONN_FUGITIVE_DOT",_fPosBlur];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive!";
			};
			if (_sleepB == _sleepBMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole == 0 && !_inSafe) then {
					_txt = _txt + "Time Reward! " + (_fugitiveRewards select _slepBIndex select 1);
					_code = _fugitiveRewards select _slepBIndex select 2;
					_fugitive call _code;
				} else {
					_txt = _txt + "Time Reward! No reward... the fugitive is in a plot pole.";
				};
				_sleepB = 0;
				_slepBIndex = _slepBIndex + 1;
				_sleepBMark = -1;
				if !(_slepBIndex == count _fugitiveRewards) then {
					_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
				};
			};
			if (_sleepC == _sleepCMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole > 0 || _inSafe) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell};
				_sleepC = 0;
			};
			if (_sleepD == _sleepDMark) then {
				if (vehicle _fugitive == _fugitive) then {
					_sleepAMark = round(_updateMark/_timeCell);
				} else {
					if (vehicle _fugitive isKindOf "Air") then {
						_sleepAMark = round ((_updateMark/_timeCell)*0.25);
					} else {
						_sleepAMark = round ((_updateMark/_timeCell)*0.5);
					};
				};
				_sleepD = 0;
			};
			if (_txt != "" && _txt != "Time Reward! ") then {[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;};
			uiSleep _timeCell;
			_txt = "";
			_sleepA = _sleepA + 1;
			_sleepB = _sleepB + 1;
			_sleepC = _sleepC + 1;
			_sleepD = _sleepD + 1;
			_aliveTimePassed = (time - _aliveTimeStart);
		};
		deleteMarker "DONN_FUGITIVE";
		deleteMarker "DONN_FUGITIVE_DOT";
		if (!isNull _fugitive) then {
			if (alive _fugitive) then {
				if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then {
					[nil,nil,rTitleText,((name _fugitive)+", time over! The prize is yours!\nColect your reward near you."),"PLAIN",7.5] call RE;
					_veh = createVehicle ["CSJ_GyroC",[position _fugitive select 0,position _fugitive select 1,0],[],10,'NONE'];
					_veh setVariable ["ObjectID","0",true];
					_veh setVariable ["ObjectUID",str round random 9999999,true];
					_fugitive reveal [_veh,4];
					_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
					_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
					_fugitive reveal [_holder,4];
				} else {
					[nil,nil,rTitleText,("Hunt time over! "+(name _fugitive)+", you was too much near plot poles or safezones.\nNo pain no gain. No reward."),"PLAIN",10] call RE;
				};
				diag_log "[MOSTWA] Ending! Fugitive Win!";
			} else {
				[nil,nil,rTitleText,((name _fugitive)+", perished! Collect the prize on his body!\nMark is on map fo 45 seconds..."),"PLAIN",10] call RE;
				createMarker ["DONN_FUGITIVE",position _fugitive];
				"DONN_FUGITIVE" setMarkerColor "ColorRed";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [100,100];
				createMarker ["DONN_FUGITIVE_DOT",position _fugitive];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body...";
				_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
				_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
				_fugitive reveal [_holder,4];
				uiSleep 45;
				deleteMarker "DONN_FUGITIVE";
				deleteMarker "DONN_FUGITIVE_DOT";
				diag_log "[MOSTWA] Ending! Fugitive perished.";
			};
			_lastTimeConclude = time;
		} else {
			[nil,nil,rTitleText,("The hunt for "+_fugitiveName+" head is over... "+_fugitiveName+" disconnected."),"PLAIN",5] call RE;
			_lastTimeConclude = time-_runTimeInter*0.75;
			diag_log "[MOSTWA] Fugitive disconnected...";
		};
	} else {
		diag_log "[MOSTWA] Cant find an elegible fugitive...";
		_lastTimeConclude = time-_runTimeInter*0.75;
	};
};

-Подключать в миссии в init.sqf после строк if (isServer) then {

в таком виде execVM "\z\addons\dayz_server\скрипт.sqf";

 

Гайд окончен! 

Всем успеха!

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


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





Че-то с DE1000 много чего слилось. Даже АХ слили буквально неделю назад. Ломанули что-ли?

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


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

Че-то с DE1000 много чего слилось. Даже АХ слили буквально неделю назад. Ломанули что-ли?

Почему? это с паблика, на епох моде недавно выложили

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


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

Почему? это с паблика, на епох моде недавно выложили

Вот оно как, что ж спасибо что развеил сомнения :) Надо будет посидеть опять на epochmod.com посмотреть что нового, а то после смены фона на эпоче я там не бывал.

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


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

Представляю вашему вниманию скрипт, знакомый некоторым с DE1000! Суть его такова, берется рандомный игрок, вешается на него маркер с радиусом, тот игрок который убьет разыскиваемого получает награду, если разыскиваемый продержался он получает награду!

 

Автор: Donnovan

 

Установка: 

 

-Создать в серверной части файл с кодом внутри: 

//THE TIME THE FUGITIVE NEED TO RESIST ALIVE TO WIN *IN MINUTES*
_aliveTimeToWin = 20;

//THE TIME CYCLE THE FUGITIVE MARK WILL BE UPDATED *IN SECONDS*
_updateMark = 100;

//MAXIMUN TIME THE FUGITIVE IS ALLOWED TO BE IN A PLOT OR SAFEZONE RADIUS TO RECEIVE HIS REWARD IN CASE OF WIN (a percentage of _aliveTimeToWin)
_maxTimeNearPlot = 0.15;

//TIME CYCLE *IN SECONDS* TO CHECK FOR PLOTS NEAR THE FUGITIVE AND SAFEZONES
_onPlotCheckFrequency = 20;

//THE RADIUS OF THE POSITION HINT (FUGITIVE WILL BE SOMEWHERE INSIDE THE CIRCLE) *IN METERS*
_circleSize = 200;

//MINIMUM NUMBER OF PLAYERS TO RUN
_minPlayersToRun = 15;

//TIME TO WAIT BEFORE TRY TO RUN AGAIN *IN MINUTES*
_runTimeInter = 50;

//FIRST RUN DELAY *IN MINUTES*
_firstRunDelay = 30;

//FUGITIVE TIME REWARDS: [time in minutes to exec reward (in sequence),reward message,reward code where _this is the fugitive]
_fugitiveRewards = [
	[4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
];

//SAFE ZONES (READY FOR CHERNARUS)
_safezones = [
	[6325,7807,0],
	[4063,11664,0],
	[11447,11364,0],
	[1606,7803,0],
	[12944,12766,0], 
	[12060,12640,0]
];
_safezonesRad = 160;

//ADMINS STEAM ID (TO PREVENT THE SCRIPT TO SELECT ADMINS AS FUGITIVE)
_admins = ["0","0","0","0"];

//=====================
// FUNCTIONS ==========
//=====================

donn_fugitiveChoose = {
	_fugitive = objNull;
	_maxSumDist = -1;
	{
		_p = _x;
		if (damage _p < 0.2 && vehicle _p == _p) then {
			if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then {
				_pUID = getPlayerUID _p;
				if !(_pUID in _admins) then {
					_sumDist = 0;
					{_sumDist = _sumDist + (_p distance _x);} forEach playableUnits;
					if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;};
				};
			};
		};
	} forEach playableUnits;
	_fugitive
};

//=====================
// THE SCRIPT =========
//=====================

_aliveTimeToWin = round (_aliveTimeToWin*60);
_runTimeInter = round (_runTimeInter*60);
_firstRunDelay = round (_firstRunDelay*60);
_lastTimeConclude = time-_runTimeInter+_firstRunDelay;
while {true} do {
	waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter};
	_fugitive = call donn_fugitiveChoose;
	if (!isNull _fugitive) then {
		diag_log "[MOSTWA] Begin!";
		_fugitiveName = name _fugitive;
		_aliveTimeStart = time;
		_aliveTimePassed = 0;
		_timeCell = 2;
		_sleepAMark = round(_updateMark/_timeCell);
		_slepBIndex = 0;
		_sleepBMark = -1;
		if !(_slepBIndex == count _fugitiveRewards) then {
			_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
		};
		_sleepCMark = round(_onPlotCheckFrequency/_timeCell);
		_sleepDMark = round (10/_timeCell);
		//_sleepA = _sleepAMark;
		_sleepA = 0;
		_sleepB = 0; 
		_sleepC = 0;
		_sleepD = 0;
		_txt = ((name _fugitive)+" have a price on his head, kill hin to receive a reward.\n"+(name _fugitive)+", stay alive " +(str(round(_aliveTimeToWin/60)))+" minutes to receive the prize.\n\n");
		_timeInPlot = 0;
		while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin} do {
			if (_sleepA >= _sleepAMark) then {
				_txt = _txt + ((name _fugitive)+" mark updated on map.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" minutes to stop the hunt.\n\n");
				_sleepA = 0;
				_fPos = position _fugitive;
				_error = (_circleSize*2)/sqrt(2);
				_fPosBlur = [(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0];
				if (_aliveTimePassed > 0) then {deleteMarker "DONN_FUGITIVE";deleteMarker "DONN_FUGITIVE_DOT";};
				createMarker ["DONN_FUGITIVE",_fPosBlur];
				"DONN_FUGITIVE" setMarkerColor "ColorYellow";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize];
				createMarker ["DONN_FUGITIVE_DOT",_fPosBlur];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive!";
			};
			if (_sleepB == _sleepBMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole == 0 && !_inSafe) then {
					_txt = _txt + "Time Reward! " + (_fugitiveRewards select _slepBIndex select 1);
					_code = _fugitiveRewards select _slepBIndex select 2;
					_fugitive call _code;
				} else {
					_txt = _txt + "Time Reward! No reward... the fugitive is in a plot pole.";
				};
				_sleepB = 0;
				_slepBIndex = _slepBIndex + 1;
				_sleepBMark = -1;
				if !(_slepBIndex == count _fugitiveRewards) then {
					_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
				};
			};
			if (_sleepC == _sleepCMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole > 0 || _inSafe) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell};
				_sleepC = 0;
			};
			if (_sleepD == _sleepDMark) then {
				if (vehicle _fugitive == _fugitive) then {
					_sleepAMark = round(_updateMark/_timeCell);
				} else {
					if (vehicle _fugitive isKindOf "Air") then {
						_sleepAMark = round ((_updateMark/_timeCell)*0.25);
					} else {
						_sleepAMark = round ((_updateMark/_timeCell)*0.5);
					};
				};
				_sleepD = 0;
			};
			if (_txt != "" && _txt != "Time Reward! ") then {[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;};
			uiSleep _timeCell;
			_txt = "";
			_sleepA = _sleepA + 1;
			_sleepB = _sleepB + 1;
			_sleepC = _sleepC + 1;
			_sleepD = _sleepD + 1;
			_aliveTimePassed = (time - _aliveTimeStart);
		};
		deleteMarker "DONN_FUGITIVE";
		deleteMarker "DONN_FUGITIVE_DOT";
		if (!isNull _fugitive) then {
			if (alive _fugitive) then {
				if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then {
					[nil,nil,rTitleText,((name _fugitive)+", time over! The prize is yours!\nColect your reward near you."),"PLAIN",7.5] call RE;
					_veh = createVehicle ["CSJ_GyroC",[position _fugitive select 0,position _fugitive select 1,0],[],10,'NONE'];
					_veh setVariable ["ObjectID","0",true];
					_veh setVariable ["ObjectUID",str round random 9999999,true];
					_fugitive reveal [_veh,4];
					_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
					_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
					_fugitive reveal [_holder,4];
				} else {
					[nil,nil,rTitleText,("Hunt time over! "+(name _fugitive)+", you was too much near plot poles or safezones.\nNo pain no gain. No reward."),"PLAIN",10] call RE;
				};
				diag_log "[MOSTWA] Ending! Fugitive Win!";
			} else {
				[nil,nil,rTitleText,((name _fugitive)+", perished! Collect the prize on his body!\nMark is on map fo 45 seconds..."),"PLAIN",10] call RE;
				createMarker ["DONN_FUGITIVE",position _fugitive];
				"DONN_FUGITIVE" setMarkerColor "ColorRed";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [100,100];
				createMarker ["DONN_FUGITIVE_DOT",position _fugitive];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body...";
				_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
				_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
				_fugitive reveal [_holder,4];
				uiSleep 45;
				deleteMarker "DONN_FUGITIVE";
				deleteMarker "DONN_FUGITIVE_DOT";
				diag_log "[MOSTWA] Ending! Fugitive perished.";
			};
			_lastTimeConclude = time;
		} else {
			[nil,nil,rTitleText,("The hunt for "+_fugitiveName+" head is over... "+_fugitiveName+" disconnected."),"PLAIN",5] call RE;
			_lastTimeConclude = time-_runTimeInter*0.75;
			diag_log "[MOSTWA] Fugitive disconnected...";
		};
	} else {
		diag_log "[MOSTWA] Cant find an elegible fugitive...";
		_lastTimeConclude = time-_runTimeInter*0.75;
	};
};

-Подключать в миссии в init.sqf после строк if (isServer) then {

в таком виде execVM "\z\addons\dayz_server\скрипт.sqf";

 

Гайд окончен! 

Всем успеха!

Отличный скрипт какой как внесёт разнообразие в игру я считаю, осталось только чтоб кто нибудь текст перевел на русский было бы вообще здорово.Я бы сам перевел если бы понимал по английский хорошо,пробовал через переводчик но он переводит как попало 

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


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

Крч как-то так. Сам не лады хорошо с Английским.

_aliveTimeToWin 		= 	20; 		//Сколько времени Цель должна жить чтобы выиграть? (В минутах)
_updateMark 			= 	100;		//Через какое обновить маркер на цели (В секундах)
_maxTimeNearPlot 		= 	0.15;		//Максимальное время для беглеца, чтобы выжить (Награды не будет!) если он находиться у Строй. столба (30м плот) или у Безопасной зоны (В проценте от _aliveTimeToWin)
_onPlotCheckFrequency 	        = 	20;			//Время проверки беглеца от позиций Строй. столба (30м Плот) и Безопасных зон (В секундах)
_circleSize 			= 	200;		//Радиус маркера на цели (В метрах)
_minPlayersToRun 		= 	15;			//Минимальное количество игроков для запуска скрипта
_runTimeInter 			= 	50;			//Через какое время запустить скрипт после завершения предыдущего (В минутах)
_firstRunDelay 			= 	30;			//Через какое время запустить скрипт первый раз (То бишь после рестарта).
 
//Награды для беглеца: ТИП: [Время в минутах чтобы выполнить код (В последовательности),Сообщение о награде,Код награды. Где _this - это беглец]
_fugitiveRewards = 
[
	[4,"Беглец получил MK 48 и боеприпасы.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"Беглец получил мотоцикл.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"Беглец получил ряд предметов.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"Беглец видит врага.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
];
 
//Безопасные зоны (Готовые для Черно!)
_safezones = 
[
	[6325,7807,0],
	[4063,11664,0],
	[11447,11364,0],
	[1606,7803,0],
	[12944,12766,0], 
	[12060,12640,0]
];
//Радиус от Безопасной зоны
_safezonesRad = 160;
 
//UID АДМИНОВ (Чтобы не выполнялся скрипт на Админов)
_admins = ["0","0","0","0"];



 
donn_fugitiveChoose = 
{
	_fugitive = objNull;
	
	_maxSumDist = -1;
	{
		_p = _x;
		
		if (damage _p < 0.2 && vehicle _p == _p) then 
		{
			if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then 
			{
				_pUID = getPlayerUID _p;
				
				if !(_pUID in _admins) then 
				{
					_sumDist = 0;
					{
						_sumDist = _sumDist + (_p distance _x);
					} forEach playableUnits;
					
					if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;};
				};
			};
		};
	} forEach playableUnits;
	_fugitive
};
 
 
_aliveTimeToWin 	= 	round (_aliveTimeToWin*60);
_runTimeInter 		= 	round (_runTimeInter*60);
_firstRunDelay 		= 	round (_firstRunDelay*60);
_lastTimeConclude 	= 	time-_runTimeInter+_firstRunDelay;

while {true} do 
{
	waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter};
	_fugitive = call donn_fugitiveChoose;
	
	if (!isNull _fugitive) then 
	{
		diag_log "[MOSTWA] Запуск скрипта!";
		
		_fugitiveName 		= 	name _fugitive;
		_aliveTimeStart 	= 	time;
		_aliveTimePassed 	= 	0;
		_timeCell 			= 	2;
		_sleepAMark 		= 	round(_updateMark/_timeCell);
		_slepBIndex 		= 	0;
		_sleepBMark 		= 	-1;
		
		if !(_slepBIndex == count _fugitiveRewards) then 
		{
			_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
		};
		
		_sleepCMark 	= 	round(_onPlotCheckFrequency/_timeCell);
		_sleepDMark 	= 	round (10/_timeCell);
		//_sleepA = _sleepAMark;
		
		_sleepA 	= 	0;
		_sleepB 	= 	0; 
		_sleepC 	= 	0;
		_sleepD 	= 	0;
		
		_txt = ((name _fugitive)+" является приоритетной целью, убейте его и получите свою награду.\n"+(name _fugitive)+", нужно выжить " +(str(round(_aliveTimeToWin/60)))+" минут, чтобы выиграть свою награду.\n\n");
		
		_timeInPlot = 0;
		
		while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin} do 
		{
			if (_sleepA >= _sleepAMark) then 
			{
				_txt = _txt + ((name _fugitive)+" метка обновлена.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" минут осталось.\n\n");
				
				_sleepA 	= 	0;
				_fPos 		= 	position _fugitive;
				_error	 	= 	(_circleSize*2)/sqrt(2);
				_fPosBlur 	= 	[(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0];
				
				if (_aliveTimePassed > 0) then 
				{
					deleteMarker "DONN_FUGITIVE";
					deleteMarker "DONN_FUGITIVE_DOT";
				};
				
				createMarker ["DONN_FUGITIVE",_fPosBlur];
				"DONN_FUGITIVE" setMarkerColor "ColorYellow";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize];
				
				createMarker ["DONN_FUGITIVE_DOT",_fPosBlur];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive!";
			};
			
			if (_sleepB == _sleepBMark) then 
			{
				_nearPlotPole 	= 	_fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe 		= 	false;
				{
					if (_fugitive distance _x < _safezonesRad) exitWith 
					{
						_inSafe = true;
					};
				} forEach _safezones;
				
				if (count _nearPlotPole == 0 && !_inSafe) then 
				{
					_txt = _txt + "Время награды! " + (_fugitiveRewards select _slepBIndex select 1);
					_code = _fugitiveRewards select _slepBIndex select 2;
					_fugitive call _code;
				} 
				else 
				{
					_txt = _txt + "Время награды! Не, не будет награды... беглец находиться в безопасной зоне или в радиусе 30м плот.";
				};
				
				_sleepB 		= 	0;
				_slepBIndex 	= 	_slepBIndex + 1;
				_sleepBMark 	=	-1;
				
				if !(_slepBIndex == count _fugitiveRewards) then 
				{
					_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
				};
			};
			
			if (_sleepC == _sleepCMark) then
			{
				_nearPlotPole 	=	 _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe 		=	 false;
				{
					if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};
				} forEach _safezones;
				
				if (count _nearPlotPole > 0 || _inSafe) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell};
				_sleepC = 0;
			};
			
			if (_sleepD == _sleepDMark) then 
			{
				if (vehicle _fugitive == _fugitive) then 
				{
					_sleepAMark = round(_updateMark/_timeCell);
				} 
				else 
				{
					if (vehicle _fugitive isKindOf "Air") then 
					{
						_sleepAMark = round ((_updateMark/_timeCell)*0.25);
					} 
					else 
					{
						_sleepAMark = round ((_updateMark/_timeCell)*0.5);
					};
				};
				_sleepD = 0;
			};
			
			if (_txt != "" && _txt != "Время награды! ") then 
			{
				[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;
			};
			uiSleep _timeCell;
			
			_txt 		= 	"";
			_sleepA 	= 	_sleepA + 1;
			_sleepB 	= 	_sleepB + 1;
			_sleepC 	= 	_sleepC + 1;
			_sleepD 	= 	_sleepD + 1;
			_aliveTimePassed = (time - _aliveTimeStart);
		};
		
		deleteMarker "DONN_FUGITIVE";
		deleteMarker "DONN_FUGITIVE_DOT";
		
		if (!isNull _fugitive) then 
		{
			if (alive _fugitive) then 
			{
				if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then 
				{
					[nil,nil,rTitleText,((name _fugitive)+", время вышло! Ты выиграл!\nПолучи свои призы прямо перед собой."),"PLAIN",7.5] call RE;
					
					_veh = createVehicle ["CSJ_GyroC",[position _fugitive select 0,position _fugitive select 1,0],[],10,'NONE'];
					_veh setVariable ["ObjectID","0",true];
					_veh setVariable ["ObjectUID",str round random 9999999,true];
					_fugitive reveal [_veh,4];
					_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
					_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
					_fugitive reveal [_holder,4];
				} 
				else 
				{
					[nil,nil,rTitleText,("Охота за беглецом завершена! "+(name _fugitive)+", ты был слишком близко к безопасной зоне или 30м плот.\nЗа это никакой награды не будет."),"PLAIN",10] call RE;
				};
				diag_log "[MOSTWA] Конец выполнения скрипта! Беглец победил!";
			} 
			else 
			{
				[nil,nil,rTitleText,((name _fugitive)+", был убит! Вся награда находиться в его трупе!\nМетка обновлена и остается еще 45 секунд..."),"PLAIN",10] call RE;
				
				createMarker ["DONN_FUGITIVE",position _fugitive];
				"DONN_FUGITIVE" setMarkerColor "ColorRed";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [100,100];
				
				createMarker ["DONN_FUGITIVE_DOT",position _fugitive];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body...";
				_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
				_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
				_fugitive reveal [_holder,4];
				uiSleep 45;
				
				deleteMarker "DONN_FUGITIVE";
				deleteMarker "DONN_FUGITIVE_DOT";
				
				diag_log "[MOSTWA] Конец выполнения скрипта! Беглец был убит.";
			};
			_lastTimeConclude = time;
		} 
		else 
		{
			[nil,nil,rTitleText,("Охота за "+_fugitiveName+" прекращена... "+_fugitiveName+" просто вышел с сервера."),"PLAIN",5] call RE;
			
			_lastTimeConclude = time-_runTimeInter*0.75;
			
			diag_log "[MOSTWA] Беглец отключился от сервера. Охота прекращена...";
		};
	} 
	else 
	{
		diag_log "[MOSTWA] Не могу обнаружить беглеца...";
		
		_lastTimeConclude = time-_runTimeInter*0.75;
	};
};

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


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

Еще бы чтоб админ мог выбрать цели или цель бралась из определенных игроков

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


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

Классная тема. Помню обсуждали мы её в старом приватном разделе годик назад.

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


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

Классная тема. Помню обсуждали мы её в старом приватном разделе годик назад.

Тема мб и хорошая, но не реальная.

Помню еще тогда обсуждали призы, и уязвимости...

За большой куш за килл, - убьет друг.

За маленький куш, - игроку нахрен не надо быть мишенью.

За большой куш по времени проведенному в виде мишени - сядет в верт\лодку\засядет в приватке\засядет в трейде... крч там море вариантов...

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


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

Тема мб и хорошая, но не реальная.

Помню еще тогда обсуждали призы, и уязвимости...

За большой куш за килл, - убьет друг.

За маленький куш, - игроку нахрен не надо быть мишенью.

За большой куш по времени проведенному в виде мишени - сядет в верт\лодку\засядет в приватке\засядет в трейде... крч там море вариантов...

Ну, на серверах с епочем это так, а вот где чистый пвп, то очень даже подойдет

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


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

Инфи определяет мотоцикл как читерский и  при попытке на него сесть получаем взрыв и труп беглеца =)

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


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

Инфи определяет мотоцикл как читерский и  при попытке на него сесть получаем взрыв и труп беглеца =)

лол, в вариаблес в исключения, в инфи из фильтров убери) изи же)

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


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

лол, в вариаблес в исключения, в инфи из фильтров убери) изи же)

Поподробнее бы

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


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

Поподробнее бы

DZE_safeVehicle

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


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

DZE_safeVehicle

а еще подробнее?) 

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


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

а еще подробнее?) 

Тебе и так ответили открой variables.sqf там найди DZE_safeVehicle ["....","клас нейм добавляешь"]

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


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

Представляю вашему вниманию скрипт, знакомый некоторым с DE1000! Суть его такова, берется рандомный игрок, вешается на него маркер с радиусом, тот игрок который убьет разыскиваемого получает награду, если разыскиваемый продержался он получает награду!

 

Автор: Donnovan

 

Установка: 

 

-Создать в серверной части файл с кодом внутри: 

//THE TIME THE FUGITIVE NEED TO RESIST ALIVE TO WIN *IN MINUTES*
_aliveTimeToWin = 20;

//THE TIME CYCLE THE FUGITIVE MARK WILL BE UPDATED *IN SECONDS*
_updateMark = 100;

//MAXIMUN TIME THE FUGITIVE IS ALLOWED TO BE IN A PLOT OR SAFEZONE RADIUS TO RECEIVE HIS REWARD IN CASE OF WIN (a percentage of _aliveTimeToWin)
_maxTimeNearPlot = 0.15;

//TIME CYCLE *IN SECONDS* TO CHECK FOR PLOTS NEAR THE FUGITIVE AND SAFEZONES
_onPlotCheckFrequency = 20;

//THE RADIUS OF THE POSITION HINT (FUGITIVE WILL BE SOMEWHERE INSIDE THE CIRCLE) *IN METERS*
_circleSize = 200;

//MINIMUM NUMBER OF PLAYERS TO RUN
_minPlayersToRun = 15;

//TIME TO WAIT BEFORE TRY TO RUN AGAIN *IN MINUTES*
_runTimeInter = 50;

//FIRST RUN DELAY *IN MINUTES*
_firstRunDelay = 30;

//FUGITIVE TIME REWARDS: [time in minutes to exec reward (in sequence),reward message,reward code where _this is the fugitive]
_fugitiveRewards = [
	[4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
];

//SAFE ZONES (READY FOR CHERNARUS)
_safezones = [
	[6325,7807,0],
	[4063,11664,0],
	[11447,11364,0],
	[1606,7803,0],
	[12944,12766,0], 
	[12060,12640,0]
];
_safezonesRad = 160;

//ADMINS STEAM ID (TO PREVENT THE SCRIPT TO SELECT ADMINS AS FUGITIVE)
_admins = ["0","0","0","0"];

//=====================
// FUNCTIONS ==========
//=====================

donn_fugitiveChoose = {
	_fugitive = objNull;
	_maxSumDist = -1;
	{
		_p = _x;
		if (damage _p < 0.2 && vehicle _p == _p) then {
			if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then {
				_pUID = getPlayerUID _p;
				if !(_pUID in _admins) then {
					_sumDist = 0;
					{_sumDist = _sumDist + (_p distance _x);} forEach playableUnits;
					if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;};
				};
			};
		};
	} forEach playableUnits;
	_fugitive
};

//=====================
// THE SCRIPT =========
//=====================

_aliveTimeToWin = round (_aliveTimeToWin*60);
_runTimeInter = round (_runTimeInter*60);
_firstRunDelay = round (_firstRunDelay*60);
_lastTimeConclude = time-_runTimeInter+_firstRunDelay;
while {true} do {
	waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter};
	_fugitive = call donn_fugitiveChoose;
	if (!isNull _fugitive) then {
		diag_log "[MOSTWA] Begin!";
		_fugitiveName = name _fugitive;
		_aliveTimeStart = time;
		_aliveTimePassed = 0;
		_timeCell = 2;
		_sleepAMark = round(_updateMark/_timeCell);
		_slepBIndex = 0;
		_sleepBMark = -1;
		if !(_slepBIndex == count _fugitiveRewards) then {
			_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
		};
		_sleepCMark = round(_onPlotCheckFrequency/_timeCell);
		_sleepDMark = round (10/_timeCell);
		//_sleepA = _sleepAMark;
		_sleepA = 0;
		_sleepB = 0; 
		_sleepC = 0;
		_sleepD = 0;
		_txt = ((name _fugitive)+" have a price on his head, kill hin to receive a reward.\n"+(name _fugitive)+", stay alive " +(str(round(_aliveTimeToWin/60)))+" minutes to receive the prize.\n\n");
		_timeInPlot = 0;
		while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin} do {
			if (_sleepA >= _sleepAMark) then {
				_txt = _txt + ((name _fugitive)+" mark updated on map.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" minutes to stop the hunt.\n\n");
				_sleepA = 0;
				_fPos = position _fugitive;
				_error = (_circleSize*2)/sqrt(2);
				_fPosBlur = [(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0];
				if (_aliveTimePassed > 0) then {deleteMarker "DONN_FUGITIVE";deleteMarker "DONN_FUGITIVE_DOT";};
				createMarker ["DONN_FUGITIVE",_fPosBlur];
				"DONN_FUGITIVE" setMarkerColor "ColorYellow";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize];
				createMarker ["DONN_FUGITIVE_DOT",_fPosBlur];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive!";
			};
			if (_sleepB == _sleepBMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole == 0 && !_inSafe) then {
					_txt = _txt + "Time Reward! " + (_fugitiveRewards select _slepBIndex select 1);
					_code = _fugitiveRewards select _slepBIndex select 2;
					_fugitive call _code;
				} else {
					_txt = _txt + "Time Reward! No reward... the fugitive is in a plot pole.";
				};
				_sleepB = 0;
				_slepBIndex = _slepBIndex + 1;
				_sleepBMark = -1;
				if !(_slepBIndex == count _fugitiveRewards) then {
					_sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell);
				};
			};
			if (_sleepC == _sleepCMark) then {
				_nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0];
				_inSafe = false;
				{if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones;
				if (count _nearPlotPole > 0 || _inSafe) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell};
				_sleepC = 0;
			};
			if (_sleepD == _sleepDMark) then {
				if (vehicle _fugitive == _fugitive) then {
					_sleepAMark = round(_updateMark/_timeCell);
				} else {
					if (vehicle _fugitive isKindOf "Air") then {
						_sleepAMark = round ((_updateMark/_timeCell)*0.25);
					} else {
						_sleepAMark = round ((_updateMark/_timeCell)*0.5);
					};
				};
				_sleepD = 0;
			};
			if (_txt != "" && _txt != "Time Reward! ") then {[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;};
			uiSleep _timeCell;
			_txt = "";
			_sleepA = _sleepA + 1;
			_sleepB = _sleepB + 1;
			_sleepC = _sleepC + 1;
			_sleepD = _sleepD + 1;
			_aliveTimePassed = (time - _aliveTimeStart);
		};
		deleteMarker "DONN_FUGITIVE";
		deleteMarker "DONN_FUGITIVE_DOT";
		if (!isNull _fugitive) then {
			if (alive _fugitive) then {
				if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then {
					[nil,nil,rTitleText,((name _fugitive)+", time over! The prize is yours!\nColect your reward near you."),"PLAIN",7.5] call RE;
					_veh = createVehicle ["CSJ_GyroC",[position _fugitive select 0,position _fugitive select 1,0],[],10,'NONE'];
					_veh setVariable ["ObjectID","0",true];
					_veh setVariable ["ObjectUID",str round random 9999999,true];
					_fugitive reveal [_veh,4];
					_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
					_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
					_fugitive reveal [_holder,4];
				} else {
					[nil,nil,rTitleText,("Hunt time over! "+(name _fugitive)+", you was too much near plot poles or safezones.\nNo pain no gain. No reward."),"PLAIN",10] call RE;
				};
				diag_log "[MOSTWA] Ending! Fugitive Win!";
			} else {
				[nil,nil,rTitleText,((name _fugitive)+", perished! Collect the prize on his body!\nMark is on map fo 45 seconds..."),"PLAIN",10] call RE;
				createMarker ["DONN_FUGITIVE",position _fugitive];
				"DONN_FUGITIVE" setMarkerColor "ColorRed";
				"DONN_FUGITIVE" setMarkerShape "ELLIPSE";
				"DONN_FUGITIVE" setMarkerBrush "SolidBorder";
				"DONN_FUGITIVE" setMarkerSize [100,100];
				createMarker ["DONN_FUGITIVE_DOT",position _fugitive];
				"DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack";
				"DONN_FUGITIVE_DOT" setMarkerType "Vehicle";
				"DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body...";
				_holder = createVehicle ["Weaponholder",[position _fugitive select 0,position _fugitive select 1,0],[],0,"NONE"];
				_holder addMagazineCargoGlobal ["ItemBriefCase100oz",4];
				_fugitive reveal [_holder,4];
				uiSleep 45;
				deleteMarker "DONN_FUGITIVE";
				deleteMarker "DONN_FUGITIVE_DOT";
				diag_log "[MOSTWA] Ending! Fugitive perished.";
			};
			_lastTimeConclude = time;
		} else {
			[nil,nil,rTitleText,("The hunt for "+_fugitiveName+" head is over... "+_fugitiveName+" disconnected."),"PLAIN",5] call RE;
			_lastTimeConclude = time-_runTimeInter*0.75;
			diag_log "[MOSTWA] Fugitive disconnected...";
		};
	} else {
		diag_log "[MOSTWA] Cant find an elegible fugitive...";
		_lastTimeConclude = time-_runTimeInter*0.75;
	};
};

-Подключать в миссии в init.sqf после строк if (isServer) then {

в таком виде execVM "\z\addons\dayz_server\скрипт.sqf";

 

Гайд окончен! 

Всем успеха!

Игроки начали жаловаться что если игрок на базе и на него маркер показывает это выдает место нахождения его базы,вот бы в этом скрипте запретить чтоб выбирало игрока который находиться в сейф зоне или в зоне радиуса 30 метров плот было бы идеально

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


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

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

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


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

сюда пишешь уиды тех, кого нужно дичью делать

_admins = ["0","0","0","0"];

а эту строку 

if !(_pUID in _admins) then {

меняешь на

if (_pUID in _admins) then {

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

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


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

RedLink, хм.... Спасибище тебе, опробую!

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


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

каким макаром заставить сообщения с скрипта работать не по центру экрана а с верху с права? может переделанный у кого скрипт есть поделитесь? 

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


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

 

ты его сам пробовал применить к этому?

[4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}],
	[4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}],
	[4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}],
	[4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}],
	[1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}]
Изменено пользователем Lucian (история изменений)

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


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

В миссии(MPMissions\Dayz_Epoch.Chernarus) создать файл remote_message.sqf

fnc_remote_message = {

	private["_type","_message"];

	_type    = _this select 0;
	_message = _this select 1;

	call {
		if(_type == "radio") exitWith { 
			if(player hasWeapon "ItemRadio") then { 
				if(player getVariable["radiostate",true]) then {
					systemChat _message;
					[objNull,player,rSAY,"Radio_Message_Sound",30] call RE;
				};
			}; 
		};
		if (_type == "private") exitWith {
			if(getPlayerUID player == (_message select 0)) then {
				titleText [(_message select 1), "PLAIN DOWN",3];
				//systemChat (_message select 1);
			};
		};
		if(_type == "global") exitWith {
			systemChat _message;
		};
		if(_type == "hint") exitWith {
			hint _message;
		};
		if(_type == "titleCut") exitWith {
			titleCut [_message,"Plain Down",5];
		};
		if(_type == "titleText") exitWith {
			titleText [_message, "PLAIN DOWN"]; titleFadeOut 10;
		};
		if (_type == "rollingMessages") exitWith {
			_message call dayz_rollingMessages;
		};
		if(_type == "dynamic_text")	exitWith { 
			[
				format["%1",_message],
				0,
				0,
				10,
				0.5
			] spawn BIS_fnc_dynamicText; 
		};
	};
};

"RemoteMessage" addPublicVariableEventHandler {(_this select 1) spawn fnc_remote_message;};

Подключить его в init.sqf 

execVM "remote_message.sqf";

В миссиях, эвентах, где надо выводить сообщение на экран дописываешь:

_message = format["<t align='center' color='#7CFC00' shadow='2' size='1.25'>Курьер</t><br/><t align='center' color='#ffffff'>Элис потеряла очень редкую книгу. Найдите её и верните владельцу!</t>"];
RemoteMessage = ['dynamic_text', _message];
publicVariable "RemoteMessage";

Это выведет сообщение по середине экрана вверху.

Или

_message = format["<t align='center' color='#7CFC00' shadow='2' size='1.25'>Курьер</t><br/><t align='center' color='#ffffff'>Элис потеряла очень редкую книгу. Найдите её и верните владельцу!</t>"];
RemoteMessage = ['hint', _message];
publicVariable "RemoteMessage";

Это выведет справа в окошке(hint)

_message = "ЯЩИК ЗАМИНИРОВАН! Таймер включен = 30 сек! Бери что сможешь и убегай!";
RemoteMessage = ["rollingMessages",_message];
publicVariable "RemoteMessage";

Это выведет сообщение внизу экрана по центру.

PS. переменную _message добавить в секцию private

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


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

В миссии(MPMissions\Dayz_Epoch.Chernarus) создать файл remote_message.sqf


fnc_remote_message = {

	private["_type","_message"];

	_type    = _this select 0;
	_message = _this select 1;

	call {
		if(_type == "radio") exitWith { 
			if(player hasWeapon "ItemRadio") then { 
				if(player getVariable["radiostate",true]) then {
					systemChat _message;
					[objNull,player,rSAY,"Radio_Message_Sound",30] call RE;
				};
			}; 
		};
		if (_type == "private") exitWith {
			if(getPlayerUID player == (_message select 0)) then {
				titleText [(_message select 1), "PLAIN DOWN",3];
				//systemChat (_message select 1);
			};
		};
		if(_type == "global") exitWith {
			systemChat _message;
		};
		if(_type == "hint") exitWith {
			hint _message;
		};
		if(_type == "titleCut") exitWith {
			titleCut [_message,"Plain Down",5];
		};
		if(_type == "titleText") exitWith {
			titleText [_message, "PLAIN DOWN"]; titleFadeOut 10;
		};
		if (_type == "rollingMessages") exitWith {
			_message call dayz_rollingMessages;
		};
		if(_type == "dynamic_text")	exitWith { 
			[
				format["%1",_message],
				0,
				0,
				10,
				0.5
			] spawn BIS_fnc_dynamicText; 
		};
	};
};

"RemoteMessage" addPublicVariableEventHandler {(_this select 1) spawn fnc_remote_message;};

Подключить его в init.sqf 

execVM "remote_message.sqf";

В миссиях, эвентах, где надо выводить сообщение на экран дописываешь:


_message = format["<t align='center' color='#7CFC00' shadow='2' size='1.25'>Курьер</t><br/><t align='center' color='#ffffff'>Элис потеряла очень редкую книгу. Найдите её и верните владельцу!</t>"];
RemoteMessage = ['dynamic_text', _message];
publicVariable "RemoteMessage";

Это выведет сообщение по середине экрана вверху.

Или


_message = format["<t align='center' color='#7CFC00' shadow='2' size='1.25'>Курьер</t><br/><t align='center' color='#ffffff'>Элис потеряла очень редкую книгу. Найдите её и верните владельцу!</t>"];
RemoteMessage = ['hint', _message];
publicVariable "RemoteMessage";

Это выведет справа в окошке(hint)


_message = "ЯЩИК ЗАМИНИРОВАН! Таймер включен = 30 сек! Бери что сможешь и убегай!";
RemoteMessage = ["rollingMessages",_message];
publicVariable "RemoteMessage";

Это выведет сообщение внизу экрана по центру.

PS. переменную _message добавить в секцию private

а вы на 100% уверены что с мост вандтедом это сработает? я вот вам гарантирую что нет! скрипт даже работать перестанет. 

4 переменные из строк считываются с скрипта по необходимости по формуле. в мисии ваи вашь ответ подойдет но вроде как не сюда.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: AMER
      1)Андрей Васильев
      2)BigCrazyCat
      3)https://vk.com/id205136817
      4)Нет информации
      Итак предыстория: Началось все в ноябре 2015года. Изначально искал кто сделает сервер под тавиану. Договорились что будет все потом доделано, Окей, купил ЭКСКЛЮЗИВНУЮ ПРОТЕСТИРОВАННУЮ =2000,сначала была временно Чернорусь, стали периодически проявляться проблемы со скриптами. Через какое то время попросил либо давайте вернемся к теме доделанной тавианы, либо рабочего NAPFa. Был выдан и установлен NAPF. Опять же ПРОТЕСТИРОВАННЫЙ с кучей ошибок. Просил помочь, помощь оказывалась, иногда отправляли читать форум чтобы найти лечение всплывшей проблемы. Задавал албанские вопросы и много ибо опыта у меня было крайне мало. Потом умер хост и летом уже 2016 снова запросил сборку и обговорили доработки. Установка на хост уже стала платной, хотя в теме установка бесплатно( и не написано какое количество раз), Окей за доработки с установкой доплачено еще 850р.
      И снова куча албанских вопросов о том как лечить сборку, что как настраивать и подключать. Иногда оказывалось что у других работает,а у меня почему то нет.
      В общем то все было не плохо, но лечить от проблем сборку которою якобы протестировали было забавно, конструктор =)
      И вот устав бороться с проблемами, 24 января спросил про обновления.
      Обновления есть и скинули. Задал вопросы по скриптам интересующим скриптам,модам,а они есть только в расширенной сборке. Окей для сервера не жалко 600рублей, по ошибке кинул 700, ну не страшно.
      И вот после оплаты все позитивное общение сошло на нет:
      Попросил установить на хост обновленную сборку( дабы не было разговоров, что что-то не работает ибо у меня руки кривые) получил отказ. Что как подключать из дополнительного был вежливо отправлен на форум.
      Как оказалось позже услуга установки на хост бесплатна, только один раз. - Попросил указать на данную информацию в теме продаж сборок.
      Поспорил с наполнением сборки (обновленная сборка включала в себя не такие уж и значительные изменения которые на тот момент я даже посмотреть не мог).
      Стал задавать вопросы почему же эксклюзивная сборка (самая дорогая) и обновление платное? За что я заплатил? Почему указано обновления бесплатны? Был спор по этому поводу, даже сравнение ПО с телевизором, который устарел а покупатель хочет его обменять на новый
      Попросил указать что конкретно работает, а что написано в посте только для рекламы.
      Продолжился спор. Вышли к решению что я снова доплачу и тогда получу установленную сборку на сервер и будут подключены нужные моды.
      Апогей:
      Итого что нужно было сделать: Установка сборки с переносом БД, администрации и настроек. Заменой меток чужого проекта на наш. установка аддона на кровососа и пояснение по настройке сего чуда. пояснения по настройке особенностей сборки.

      получил такой ответ:
      1. Установка - бесплатно.
      2.Перенос построек - 200
      3. Замена меток - 150
      4.Кровосос + пояснение 350
      5. Тут нужна конкретика ( За консультации по настройке наполнения сборки?!!!!)

      Указал, что 5 пункт понадобится после установки и как полазаю по сборке.
      Ответ реально удивил - цена 800 выполняю 4 пункта и больше не поддерживаю ваш сервер.
      А вот тут то как говорится у меня и припекло. Ну предположим я заплачу, а все кривости я буду ловить и потом делать что угодно с ними? Насколько сборка протестирована и баги пофикшены я убедился еще в прошлых версиях.
      Пункт 2 обновления. Остаться без обнов дело грустное это факт.
      Пытался пойти на контакт и объяснить что без тех поддержки и обнов, я получаю лего без инструкции.
      Все сводилось к вопросу согласен ли я на его условия -что ставится сборка и я никаких претензий не имею и вопросов не задаю.
      Стали ставить сборку (хотя говорилось эта сборка только под лицензию) -поставили, перенесли БД. спасибо добрым людям.
      Вроде потом договорились о сотрудничестве. Но оказался заклин у продавца вышел потом.

      Вот установили и беда. 1) Не работают сейфы 2) Проблемы с плотом. Скинул логи.
      На что мне дается веселый ответ. Я же с вами не сотрудничаю. Поскольку у вас пиратка P4L у вас работать не будет. И расширенная сборка нормально будет работать на лицензии.
      Вот вам экслюзивная сборка. Я с вами больше не сотрудничаю. И добавил в ЧС.

      Ну вот что делать с данным продаваном? Заявлено одно, а на деле какая то IKEA без инструкции и кучей багов.
      Всем желающим могу скинуть историю переписки с продавцом в вк. И уже решите я неадекват или продавец какой то мутный.
      Ссылочка на мою страницу ВК: https://vk.com/amercom
    • Автор: FerrariF9000
      Ребята подскажите как сделать на сервере 1.0.5.1 Dayz Epoch (карта неважна) туман почти постоянный как днём так и ночью, разве только ночь сделать на небольшой промежуток времени просвет. Не трогая инфистор, кстате в нём есть такая функция видимость 1 м но лучшебы чтобы видимость была "0" и кол-во лута большое не считая миссии . ???
       
       
      P.S. По всем ссылкам смотрел тема актуальна.
  • Наш выбор

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

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

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