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

Автоудаление техники из торговых зон

Recommended Posts

Распаковываем файл dayz_server.pbo

 

Создаём файл с названием server_deleteObjInsafezone.sqf с таким содержимым:

_obj = _this select 0;

if (!isServer) exitWith {diag_log "Server_DeleteObjInsafezone.sqf - ERROR: NOT SERVER?"};

//\\\\\\\\\\\\\\\\\\\\ Setup Area ////////////////////\\

//vehicle types to Check for
_delVeh = ["Air","Landvehicle","Ship","Tank"];

//Action to take when vehicle is detected in a [VEHICLE CLEANUP ZONE]
//0 Delete vehicles ingame but keep in database. NOTE: This will stack vehicles in database if not cleaned propper
//1 Tp vehicles outside [VEHICLE CLEANUP ZONE] ("radius" + 50 meter to 4x "radius" from VEHICLE CLEANUP ZONE pos eg: if radius is 100 vehicles are moved 150-400 meter away)
//2 Tp vehicles to a position within 125m of _safespot (remember to set a position below)
//3 will delete vehicles completly from database
_Action = 1;

//if _Action = 2 then enter the position you desire here (default is by grozovoy pass around 022010)
_safespot = [2283.19,14255,0];
//how large radius to spread them in this area in meters (default 125m)
_radius = 125;

//damaged above this amoun, vehicle is deleted (set to 1 to only delete completely destroyed vehicles)
_dam = 0.90;

//if true will delete vehicles matching array below by default
_delbikmot = true;
//if above is true will delete these by default
_defdelar = ["Bicycle","Motorcycle","CSJ_GyroC","CSJ_GyroCover","CSJ_GyroP"];//,"ATV_Base_EP1"

//set to true, to unlock vehicles by default when TP'ed
_unlock = true;

//log text, this is what you want to look for in the logs, if you need to know something about a moved vehicle
_txt = "[VEHICLE CLEANUP ZONE]";

//Update vehicles to the hive, and make sure they are not moved each restart?
_updateHIVE = true;

//VEHICLE CLEANUP ZONE's/areas switch choosing the map name for cleanup location purposes
if(isNil "HALV_VEHICLE_CLEANUPZONES")then{
	diag_log format["%1: selecting world to cleanup ...",_txt];
	_WorldName = toLower format ["%1", worldName];
	switch (_WorldName)do {
//NAPF
		case "napf":{
//			diag_log format["%2: Cleanup zones for napf selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[8246.3184,15485.867,0],	125,		"Trader City Lenzburg"],
			[[15506.952,13229.368,0],	125,		"Trader city Emmen"],
			[[12399.751,5074.5273,0],	125,		"Trader City Schratten"],
			[[10398.626,8279.4619,0],	125,		"Bandit Vendor"],
			[[5149.9814,4864.1191,0],	125,		"Hero Vendor"],
			[[2122.7954,7807.9878,0],	100,		"West Wholesaler"],
			[[5379.0342,16103.187,0],	100,		"North Wholesaler"],
			[[6772.8877,16983.27,0],	100,		"Nordic Boats"],
			[[16839.973,5264.0566,0],	100,		"Pauls Boats"],
			[[15128.379,16421.879,0],	100,		"AWOLs Airfield"]
			];
		};
//chernarus
		case "chernarus":{
//			diag_log format["%2: Cleanup zones for chernarus selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					radius		cityname/text
			[[6325.6772,7807.7412,0],	125,		"Trader City Stary"],
			[[4063.4226,11664.19,0],	125,		"Trader City Bash"],
			[[11447.472,11364.504,0],	125,		"Trader City Klen"],
			[[1606.6443,7803.5156,0],	125,		"Bandit Camp"],
			[[12944.227,12766.889,0],	125,		"Hero Camp"],
			[[13441.16,5429.3013,0],	100,		"Wholesaler East"],
			[[4510.7773,10774.518,0],	100,		"Aircraft Dealer"],
			[[7989.3354,2900.9946,0],	100,		"Boat Dealer South"],
			[[13532.614,6355.9497,0],	100,		"Boat Dealer East"],
			[[4361.4937,2259.9526,0],	100,		"Wholesaler South"]
			];
		};
//tavi
		case "tavi":{
//			diag_log format["%2: Cleanup zones for tavi selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[11698.81,15210.121,0],	75,			"Trader City Lyepestok"],
			[[15309.663,9278.4912,0],	75,			"Trader City Sabina"],
			[[5538.7354,8762.2695,0],	75,			"Trader City Bilgrad"],
			[[7376.6084,4296.5879,0],	75,			"Trader City Branibor"],
			[[10948.426,654.90265,0],	75,			"Bandit Vendor"],
			[[15587.822,16394.049,0],	75,			"Hero Vendor"],
			[[16555.732,10159.68,0],	75,			"Aircraft Dealer"],
			[[6815.0776,8534.1504,0],	75,			"Aircraft Dealer 2"],
			[[4066.3528,7265.0024,0],	75,			"Misc. Vendor"],
			[[17497.631,7159.0879,0],	75,			"Misc. Vendor 2"],
			[[17332.115,12930.239,0],	75,			"Boat Dealer"],
			[[10570.494,16772.477,0],	75,			"Boat Dealer 2"],
			[[10698.463,5983.665,0],	75,			"Boat Dealer 3"],
			[[5419.2437,9503.5479,0],	75,			"Boat Dealer 4"],
			[[13342.758,8611.9932,0],	75,			"Wholesaler"],
			[[9859.4209,7471.5684,0],	75,			"Wholesaler"] // <-- no comma for last entry
			];
		};
/*
//myworldname
		case "myworldnameinlowercase":{
//			diag_log format["%2: Cleanup zones for myworldnameinlowercase selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[7839.60,8414.73,381.33],	150,		"my custom zone marker"],
			[[7839.60,8414.73,381.33],	75,			"my custom location"] // <-- no comma for last entry
			];
		};
*/
//default
		default{
			diag_log format["%2: Cleanup zones for %1 not availible ...",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position	//radius	//cityname/text
			[[0,0,0],	1,			"DEBUG"]
			];
		};
	};
};
//\\\\\\\\\\\\\\\\\\\\  End Setup Area ////////////////////\\

/////////////// dont touch anything below this line unless you know what you are doing \\\\\\\\\\\\\\\

_possiblematch = false;
{if(_obj isKindOf _x)then{_possiblematch=true;};}forEach _delVeh;
if(_possiblematch)then{
	{
	_Spos = _x select 0;
	_Rad = _x select 1;
	_name = _x select 2;
	_radats = _Rad+50;
	_radx4 = _Rad+_Rad+_Rad+_Rad;
		if(_obj distance _Spos < _Rad)then{
			_defdel		= false;
			_typeOf		= typeOf _obj;
			_pos		= getpos _obj;
			_mags		= getmagazinecargo _obj;
			_weaps		= getweaponcargo _obj;
			_packs		= getbackpackcargo _obj;
			_objID		= _obj getVariable["ObjectID","0"];
			_objUID		= _obj getVariable["ObjectUID","0"];
			_objname	= (gettext (configFile >> 'CfgVehicles' >> _typeOf >> 'displayName'));
			diag_log format["%1: %2 (%3) by %4 @%5 %6 [ID:%7,UID:%8] Cargo: [%9,%10,%11]",_txt,_typeOf,_objname,_name,mapgridposition _pos,_pos,_objID,_objUID,_weaps,_mags,_packs];
			if(_delbikmot)then{{if(_obj isKindOf _x)then{_defdel = true};}forEach _defdelar;};
			if(_defdel)then{_Action=3;diag_log format["%2: %1 is Model to delete by default!",_typeOf,_txt];};
			if(getDammage _obj > _dam)then{_Action=3;diag_log format["%2: %1 too damaged",_typeOf,_txt];};
			if(_unlock and !_defdel and (locked _obj))then{_obj setVehicleLock "UNLOCKED";_obj setVariable ["R3F_LOG_disabled",false,true];diag_log format["%2: %1 Un-Locked",_typeOf,_txt];};
			switch(_Action)do{
				case 0:{deleteVehicle _obj;diag_log format["%2: %1 Deleted, but remains in DB (Dont forget to clean this up)",_typeOf,_txt];};
				case 1:{
					_newPos = [_Spos, _radats, _radx4, 10, 0, 2000, 0] call BIS_fnc_findSafePos;
					_obj setpos _newPos;
					//update to HIVE?
					if(_updateHIVE)then{
					private["_position","_worldspace","_fuel","_key"];
						_position = getPosATL _obj;
						_worldspace = [
							round(direction _obj),
							_position
						]; 
						_fuel = fuel _obj;
						_key = format["CHILD:305:%1:%2:%3:",_objID,_worldspace,_fuel];
						diag_log ("HIVE: WRITE: "+ str(_key));
						_key call server_hiveWrite;
					};
					diag_log format["%6: %5 TP from %1 %2 to %3 %4",_pos,mapgridposition _pos,_newPos,mapgridposition _newPos,_typeOf,_txt];
				};
				case 2:{
					_newPos = [_safespot, 0, _radius, 10, 0, 2000, 0] call BIS_fnc_findSafePos;
					_obj setpos _newPos;
					//update to HIVE?
					if(_updateHIVE)then{
					private["_position","_worldspace","_fuel","_key"];
						_position = getPosATL _obj;
						_worldspace = [
							round(direction _obj),
							_position
						];
						_fuel = fuel _obj;
						_key = format["CHILD:305:%1:%2:%3:",_objID,_worldspace,_fuel];
						diag_log ("HIVE: WRITE: "+ str(_key));
						_key call server_hiveWrite;
					};
					diag_log format["%6: %5 TP from %1 %2 to %3 %4",_pos,mapgridposition _pos,_newPos,mapgridposition _newPos,_typeOf,_txt];
				};
				default{_msg = format["%2: %1",_typeOf,_txt];deleteVehicle _obj;[_objID,_objUID,_msg] call server_deleteObj;};
			};
		};
	}forEach HALV_VEHICLE_CLEANUPZONES;
};

и кидаем его по пути: dayz_server >>>> compile

 

 

Далее открываем файл server_monitor.sqf и ищем такие строки:

// total each vehicle
                    serverVehicleCounter set [count serverVehicleCounter,_type];
                };

 

Нашли?

Молодцы!

Если нет то с вами что то не так!

 

Идём дальше: после этих строк добавляем эту строчку:

[_object] execVM "\z\addons\dayz_server\compile\Server_DeleteObjInsafezone.sqf";

 

Что бы получилось вот так:

  serverVehicleCounter set [count serverVehicleCounter,_type];
                };
                [_object] execVM "\z\addons\dayz_server\compile\Server_DeleteObjInsafezone.sqf";

 

Запаковываем наш dayz_server.pbo и вуаля! Техника сама будет удалятся! 

Share this post


Link to post
Share on other sites



Время на удаление техники можно выставить? И сколько сейчас стоит?

Share this post


Link to post
Share on other sites

Время на удаление техники можно выставить? И сколько сейчас стоит?

после каждого рестарта удаляется

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Техника не удаляется из базы данных,а смещается в разные стороны от сейф зон и становится открытой.

Share this post


Link to post
Share on other sites

Техника не удаляется из базы данных,а смещается в разные стороны от сейф зон и становится открытой.

 

//Action to take when vehicle is detected in a [VEHICLE CLEANUP ZONE] //0 Delete vehicles ingame but keep in database. NOTE: This will stack vehicles in database if not cleaned propper //1 Tp vehicles outside [VEHICLE CLEANUP ZONE] ("radius" + 50 meter to 4x "radius" from VEHICLE CLEANUP ZONE pos eg: if radius is 100 vehicles are moved 150-400 meter away) //2 Tp vehicles to a position within 125m of _safespot (remember to set a position below) //3 will delete vehicles completly from database _Action = 1;

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Скорее всего неверно написали координаты или криво.

Share this post


Link to post
Share on other sites

Скорее всего неверно написали координаты или криво.

координаты списал из дебагмонитора ([14600.4, 286.95, 107.84]), такое впечатление что кинул посредине карты

Share this post


Link to post
Share on other sites

координаты списал из дебагмонитора ([14600.4, 286.95, 107.84]), такое впечатление что кинул посредине карты

Высота 107? У вас техника в небе чтоль?

Share this post


Link to post
Share on other sites

Высота 107? У вас техника в небе чтоль?

) почти, платформа в воздухе, по жпс высота 16

Share this post


Link to post
Share on other sites

) почти, платформа в воздухе, по жпс высота 16

Ну судя по вашим координатам получается как. По х - 14600.4. По y - 286.95. По z - 107.

 

Собственно точка переноса техники у вас в если я правильно понимаю в правом верхнем углу.

 

Скорее всего Инфистар врет. Ну бред какой-то. 107 высота.

Share this post


Link to post
Share on other sites

Ну судя по вашим координатам получается как. По х - 14600.4. По y - 286.95. По z - 107.

 

Собственно точка переноса техники у вас в если я правильно понимаю в правом верхнем углу.

 

Скорее всего Инфистар врет. Ну бред какой-то. 107 высота.

нет, карта напф, точка. снизу, справа, над морем

Share this post


Link to post
Share on other sites

А можно как-то сделать так, чтобы техника не удалялась, а открывалась и переходила в разряд незакрываемых? Тех, которые на инфистаровской карте синим цветом обозначены.

Share this post


Link to post
Share on other sites

А можно как-то сделать так, чтобы техника не удалялась, а открывалась и переходила в разряд незакрываемых? Тех, которые на инфистаровской карте синим цветом обозначены.

Если не накосячил в скрипте.

BEGIN

	UPDATE Object_DATA
        SET Object_DATA.CharacterID = 0
        WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ')
            AND FindVehicleKeysCount(Object_DATA.CharacterID) = 0;

END

Скрипт открывает технику если к ней нету ключа. Такой хоть сойдет?

Share this post


Link to post
Share on other sites

Ну почти. Мне надо, чтобы действовал он только на территории сейв-зон.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Если не накосячил в скрипте.

BEGIN

	UPDATE Object_DATA
        SET Object_DATA.CharacterID = 0
        WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ')
            AND FindVehicleKeysCount(Object_DATA.CharacterID) = 0;

END

Скрипт открывает технику если к ней нету ключа. Такой хоть сойдет?

Подскажите как это использовать???

Share this post


Link to post
Share on other sites

Подскажите как это использовать???

в Бд в раздел функций

Share this post


Link to post
Share on other sites

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

Тоже интересно!

 

У меня почему то со временем перестает спавниться техника

Share this post


Link to post
Share on other sites

Распаковываем файл dayz_server.pbo

 

Создаём файл с названием server_deleteObjInsafezone.sqf с таким содержимым:

_obj = _this select 0;

if (!isServer) exitWith {diag_log "Server_DeleteObjInsafezone.sqf - ERROR: NOT SERVER?"};

//\\\\\\\\\\\\\\\\\\\\ Setup Area ////////////////////\\

//vehicle types to Check for
_delVeh = ["Air","Landvehicle","Ship","Tank"];

//Action to take when vehicle is detected in a [VEHICLE CLEANUP ZONE]
//0 Delete vehicles ingame but keep in database. NOTE: This will stack vehicles in database if not cleaned propper
//1 Tp vehicles outside [VEHICLE CLEANUP ZONE] ("radius" + 50 meter to 4x "radius" from VEHICLE CLEANUP ZONE pos eg: if radius is 100 vehicles are moved 150-400 meter away)
//2 Tp vehicles to a position within 125m of _safespot (remember to set a position below)
//3 will delete vehicles completly from database
_Action = 1;

//if _Action = 2 then enter the position you desire here (default is by grozovoy pass around 022010)
_safespot = [2283.19,14255,0];
//how large radius to spread them in this area in meters (default 125m)
_radius = 125;

//damaged above this amoun, vehicle is deleted (set to 1 to only delete completely destroyed vehicles)
_dam = 0.90;

//if true will delete vehicles matching array below by default
_delbikmot = true;
//if above is true will delete these by default
_defdelar = ["Bicycle","Motorcycle","CSJ_GyroC","CSJ_GyroCover","CSJ_GyroP"];//,"ATV_Base_EP1"

//set to true, to unlock vehicles by default when TP'ed
_unlock = true;

//log text, this is what you want to look for in the logs, if you need to know something about a moved vehicle
_txt = "[VEHICLE CLEANUP ZONE]";

//Update vehicles to the hive, and make sure they are not moved each restart?
_updateHIVE = true;

//VEHICLE CLEANUP ZONE's/areas switch choosing the map name for cleanup location purposes
if(isNil "HALV_VEHICLE_CLEANUPZONES")then{
	diag_log format["%1: selecting world to cleanup ...",_txt];
	_WorldName = toLower format ["%1", worldName];
	switch (_WorldName)do {
//NAPF
		case "napf":{
//			diag_log format["%2: Cleanup zones for napf selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[8246.3184,15485.867,0],	125,		"Trader City Lenzburg"],
			[[15506.952,13229.368,0],	125,		"Trader city Emmen"],
			[[12399.751,5074.5273,0],	125,		"Trader City Schratten"],
			[[10398.626,8279.4619,0],	125,		"Bandit Vendor"],
			[[5149.9814,4864.1191,0],	125,		"Hero Vendor"],
			[[2122.7954,7807.9878,0],	100,		"West Wholesaler"],
			[[5379.0342,16103.187,0],	100,		"North Wholesaler"],
			[[6772.8877,16983.27,0],	100,		"Nordic Boats"],
			[[16839.973,5264.0566,0],	100,		"Pauls Boats"],
			[[15128.379,16421.879,0],	100,		"AWOLs Airfield"]
			];
		};
//chernarus
		case "chernarus":{
//			diag_log format["%2: Cleanup zones for chernarus selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					radius		cityname/text
			[[6325.6772,7807.7412,0],	125,		"Trader City Stary"],
			[[4063.4226,11664.19,0],	125,		"Trader City Bash"],
			[[11447.472,11364.504,0],	125,		"Trader City Klen"],
			[[1606.6443,7803.5156,0],	125,		"Bandit Camp"],
			[[12944.227,12766.889,0],	125,		"Hero Camp"],
			[[13441.16,5429.3013,0],	100,		"Wholesaler East"],
			[[4510.7773,10774.518,0],	100,		"Aircraft Dealer"],
			[[7989.3354,2900.9946,0],	100,		"Boat Dealer South"],
			[[13532.614,6355.9497,0],	100,		"Boat Dealer East"],
			[[4361.4937,2259.9526,0],	100,		"Wholesaler South"]
			];
		};
//tavi
		case "tavi":{
//			diag_log format["%2: Cleanup zones for tavi selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[11698.81,15210.121,0],	75,			"Trader City Lyepestok"],
			[[15309.663,9278.4912,0],	75,			"Trader City Sabina"],
			[[5538.7354,8762.2695,0],	75,			"Trader City Bilgrad"],
			[[7376.6084,4296.5879,0],	75,			"Trader City Branibor"],
			[[10948.426,654.90265,0],	75,			"Bandit Vendor"],
			[[15587.822,16394.049,0],	75,			"Hero Vendor"],
			[[16555.732,10159.68,0],	75,			"Aircraft Dealer"],
			[[6815.0776,8534.1504,0],	75,			"Aircraft Dealer 2"],
			[[4066.3528,7265.0024,0],	75,			"Misc. Vendor"],
			[[17497.631,7159.0879,0],	75,			"Misc. Vendor 2"],
			[[17332.115,12930.239,0],	75,			"Boat Dealer"],
			[[10570.494,16772.477,0],	75,			"Boat Dealer 2"],
			[[10698.463,5983.665,0],	75,			"Boat Dealer 3"],
			[[5419.2437,9503.5479,0],	75,			"Boat Dealer 4"],
			[[13342.758,8611.9932,0],	75,			"Wholesaler"],
			[[9859.4209,7471.5684,0],	75,			"Wholesaler"] // <-- no comma for last entry
			];
		};
/*
//myworldname
		case "myworldnameinlowercase":{
//			diag_log format["%2: Cleanup zones for myworldnameinlowercase selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					//radius	//cityname/text
			[[7839.60,8414.73,381.33],	150,		"my custom zone marker"],
			[[7839.60,8414.73,381.33],	75,			"my custom location"] // <-- no comma for last entry
			];
		};
*/
//default
		default{
			diag_log format["%2: Cleanup zones for %1 not availible ...",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position	//radius	//cityname/text
			[[0,0,0],	1,			"DEBUG"]
			];
		};
	};
};
//\\\\\\\\\\\\\\\\\\\\  End Setup Area ////////////////////\\

/////////////// dont touch anything below this line unless you know what you are doing \\\\\\\\\\\\\\\

_possiblematch = false;
{if(_obj isKindOf _x)then{_possiblematch=true;};}forEach _delVeh;
if(_possiblematch)then{
	{
	_Spos = _x select 0;
	_Rad = _x select 1;
	_name = _x select 2;
	_radats = _Rad+50;
	_radx4 = _Rad+_Rad+_Rad+_Rad;
		if(_obj distance _Spos < _Rad)then{
			_defdel		= false;
			_typeOf		= typeOf _obj;
			_pos		= getpos _obj;
			_mags		= getmagazinecargo _obj;
			_weaps		= getweaponcargo _obj;
			_packs		= getbackpackcargo _obj;
			_objID		= _obj getVariable["ObjectID","0"];
			_objUID		= _obj getVariable["ObjectUID","0"];
			_objname	= (gettext (configFile >> 'CfgVehicles' >> _typeOf >> 'displayName'));
			diag_log format["%1: %2 (%3) by %4 @%5 %6 [ID:%7,UID:%8] Cargo: [%9,%10,%11]",_txt,_typeOf,_objname,_name,mapgridposition _pos,_pos,_objID,_objUID,_weaps,_mags,_packs];
			if(_delbikmot)then{{if(_obj isKindOf _x)then{_defdel = true};}forEach _defdelar;};
			if(_defdel)then{_Action=3;diag_log format["%2: %1 is Model to delete by default!",_typeOf,_txt];};
			if(getDammage _obj > _dam)then{_Action=3;diag_log format["%2: %1 too damaged",_typeOf,_txt];};
			if(_unlock and !_defdel and (locked _obj))then{_obj setVehicleLock "UNLOCKED";_obj setVariable ["R3F_LOG_disabled",false,true];diag_log format["%2: %1 Un-Locked",_typeOf,_txt];};
			switch(_Action)do{
				case 0:{deleteVehicle _obj;diag_log format["%2: %1 Deleted, but remains in DB (Dont forget to clean this up)",_typeOf,_txt];};
				case 1:{
					_newPos = [_Spos, _radats, _radx4, 10, 0, 2000, 0] call BIS_fnc_findSafePos;
					_obj setpos _newPos;
					//update to HIVE?
					if(_updateHIVE)then{
					private["_position","_worldspace","_fuel","_key"];
						_position = getPosATL _obj;
						_worldspace = [
							round(direction _obj),
							_position
						]; 
						_fuel = fuel _obj;
						_key = format["CHILD:305:%1:%2:%3:",_objID,_worldspace,_fuel];
						diag_log ("HIVE: WRITE: "+ str(_key));
						_key call server_hiveWrite;
					};
					diag_log format["%6: %5 TP from %1 %2 to %3 %4",_pos,mapgridposition _pos,_newPos,mapgridposition _newPos,_typeOf,_txt];
				};
				case 2:{
					_newPos = [_safespot, 0, _radius, 10, 0, 2000, 0] call BIS_fnc_findSafePos;
					_obj setpos _newPos;
					//update to HIVE?
					if(_updateHIVE)then{
					private["_position","_worldspace","_fuel","_key"];
						_position = getPosATL _obj;
						_worldspace = [
							round(direction _obj),
							_position
						];
						_fuel = fuel _obj;
						_key = format["CHILD:305:%1:%2:%3:",_objID,_worldspace,_fuel];
						diag_log ("HIVE: WRITE: "+ str(_key));
						_key call server_hiveWrite;
					};
					diag_log format["%6: %5 TP from %1 %2 to %3 %4",_pos,mapgridposition _pos,_newPos,mapgridposition _newPos,_typeOf,_txt];
				};
				default{_msg = format["%2: %1",_typeOf,_txt];deleteVehicle _obj;[_objID,_objUID,_msg] call server_deleteObj;};
			};
		};
	}forEach HALV_VEHICLE_CLEANUPZONES;
};

и кидаем его по пути: dayz_server >>>> compile

 

 

Далее открываем файл server_monitor.sqf и ищем такие строки:

// total each vehicle
                    serverVehicleCounter set [count serverVehicleCounter,_type];
                };

 

Нашли?

Молодцы!

Если нет то с вами что то не так!

 

Идём дальше: после этих строк добавляем эту строчку:

[_object] execVM "\z\addons\dayz_server\compile\Server_DeleteObjInsafezone.sqf";

 

Что бы получилось вот так:

  serverVehicleCounter set [count serverVehicleCounter,_type];
                };
                [_object] execVM "\z\addons\dayz_server\compile\Server_DeleteObjInsafezone.sqf";

 

Запаковываем наш dayz_server.pbo и вуаля! Техника сама будет удалятся! 

Все работало...но после того,как удалил R3F_ARTY_AND_LOG,и поставил mf-tow и =BTC=_Logistic ,перестала удаляться на штрафстоянку....Можно ли как то привязать данный скрипт к этим буксировкам?

Share this post


Link to post
Share on other sites

Автор может шапку поправить? В этой части кода можно менять радиус:

//chernarus
		case "chernarus":{
//			diag_log format["%2: Cleanup zones for chernarus selected! (check: %1)",_WorldName,_txt]; //logging if right worldname was selected, if uncommented
			HALV_VEHICLE_CLEANUPZONES = [
			//position					radius		cityname/text
			[[6325.6772,7807.7412,0],	125,		"Trader City Stary"],
			[[4063.4226,11664.19,0],	125,		"Trader City Bash"],
			[[11447.472,11364.504,0],	125,		"Trader City Klen"],
			[[1606.6443,7803.5156,0],	125,		"Bandit Camp"],
			[[12944.227,12766.889,0],	125,		"Hero Camp"],
			[[13441.16,5429.3013,0],	100,		"Wholesaler East"],
			[[4510.7773,10774.518,0],	100,		"Aircraft Dealer"],
			[[7989.3354,2900.9946,0],	100,		"Boat Dealer South"],
			[[13532.614,6355.9497,0],	100,		"Boat Dealer East"],
			[[4361.4937,2259.9526,0],	100,		"Wholesaler South"]
			];

Это для тех у кого сейф зоны от infiSTAR! Для этих зон радиус 150м для городов.

Edited by stspartak (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

После рестарта здесь осталась техника

//chernarus
	[[4510.7773,10774.518,0],	100,		"Aircraft Dealer"],
		

Видимо неправильные координаты. Никто не подскажет?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • By Loker
      При покупке/продаже техники валюту за технику снимает/начисляет, но сама техника не появляется. 
      В логе возникает следующая ошибка: 
      15:04:28 "Server_PublishVehicle2 error: CLIENT AUTH KEY INCORRECT OR UNRECOGNIZED. PV ARRAY: [[323,[4037.27,11673.5,0.00289917]],"Ural_TK_CIV_EP1",false,"ItemKeyRed1798",B 1-1-B:1 (Player) REMOTE,""]" Как я понял новая проверка в версии мода 1.0.6.2 не может считать какой-то ключ пользователя. Может кто сталкивался с такой ошибкой. Буду рад любому совету. Заранее спасибо.
    • By Akie
      Проблема вот в чем, просто выкидывает из техники через короткое время после залезания в нее и не важно на ходу или нет, на каком месте в ней ты сидишь, просто пофигу, выкидывает и всё, в логах и на сервере, и на клиенте чисто подскажите куда копать пожалуйста
    • By Jdinovich
      Добрый день,кто подскажет как сделать так,чтобы в виртуальном гараже каждый рестарт спавнилась техника,но продавать ее нельзя было бы. Будет выглядеть на сервере как"покупка техники на месяц. Респавн каждый рестарт,даже если техника не уничтожена" надеюсь понятно объяснил?))
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.