- Создайте файл в блокноте: safe_clear_vehicles.sqf
- Скопируйте в него код ниже:
if (isNil "Ultima_Diag_Level") then {Ultima_Diag_Level = 3;};
if (Ultima_Diag_Level > 0) then
{diag_log("[#Ultima]: [Чистка техники в секторах]: Старт скрипта");};
sleep 20;
[nil,nil,rTitleText,"Техника в торговых зонах, будет телепортирована через 3 минуты!", "PLAIN",10] call RE;
sleep 60;
[nil,nil,rTitleText,"Техника в торговых зонах, будет телепортирована через 2 минуты!", "PLAIN",10] call RE;
sleep 60;
[nil,nil,rTitleText,"Техника в торговых зонах, будет телепортирована через 1 минуту!", "PLAIN",10] call RE;
sleep 50;
[nil,nil,rTitleText,"Техника в торговых зонах, будет телепортирована через 10 секунд!", "PLAIN",10] call RE;
sleep 10;
private ["_typeOf","_ObjName","_VehType","_Radius","_aTradeZones","_Coord","_Pos","_SafeSpot","_NearObjs","_i","_NewPos","_vehDelete","_vehTP","_vehUnlock","_vehDelInventory","_Obj"];
_vehDelete = false; // Удалять технику
_vehTP = true; // Телепортировать технику
_vehTPUpdate = true; // Записывать в БД новые координаты полсе телепорта
_vehUnlock = false; // Открывать технику
_vehDelInventory = false; // Удалять инвентарь в технике
_vehType = [
"Air"
,"LandVehicle"
,"Ship"
];
_Radius = 100;
_aTradeZones = [
[6337,7690,6555,7734] // Старый собор
,[4063,11664,4135,10999] // Баш
,[11468,11345,10989,11501] // Клен
];
{
_Coord = _x;
_Pos = [(_Coord select 0), (_Coord select 1), 0];
_SafeSpot = [(_Coord select 2), (_Coord select 3), 0];
_NearObjs = nearestObjects [_Pos, _VehType, _Radius];
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: В секторе: %1, найдено %2 объектов.",str(_Coord), count (_NearObjs)]);};
for "_i" from 0 to count _NearObjs - 1 do
{
_Obj = (_NearObjs select _i);
_typeOf = typeOf _Obj;
_ObjName = (gettext (configFile >> "CfgVehicles" >> _typeOf >> "displayName"));
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: Выбран объект: %1", _ObjName]);};
if (_vehDelInventory) then
{
clearWeaponCargoGlobal _Obj;
clearMagazineCargoGlobal _Obj;
clearBackpackCargoGlobal _Obj;
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: Объекту: %1, удален инвентарь.", _ObjName]);};
};
if ((_vehUnlock) && (locked _obj)) then
{
_Obj setVehicleLock "UNLOCKED";
_Obj setVariable ["R3F_LOG_disabled",false,true];
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: Объект: %1, открыт.", _ObjName]);};
};
if (_vehTP) then
{
_NewPos = [_SafeSpot, 0, _Radius, 10, 0, 2000, 0] call BIS_fnc_findSafePos;
_Obj setpos _NewPos;
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: Объект: %1, телепортирован в координаты: %2", _ObjName, str(_NewPos)]);};
if (_vehTPUpdate) then
{
private["_position","_worldspace","_fuel","_key","_ObjID"];
_ObjID = _Obj getVariable["ObjectID","0"];
_position = getPosATL _Obj;
_worldspace = [round(direction _Obj),_position];
_fuel = fuel _Obj;
_key = format["CHILD:305:%1:%2:%3:",_ObjID,_worldspace,_fuel];
if (Ultima_Diag_Level > 1) then
{diag_log ("[#Ultima]: [Чистка техники в секторах]: [БД]: Запись: "+ str(_key));};
_key call server_hiveWrite;
};
};
if (_vehDelete) then
{
deleteVehicle _Obj;
if (Ultima_Diag_Level > 1) then
{diag_log(format["[#Ultima]: [Чистка техники в секторах]: Объект: %1, удален.", _ObjName]);};
};
};
} forEach _aTradeZones;
[nil,nil,rTitleText,"Вся техника в торговых зонах, телепортирована за их пределы!", "PLAIN",10] call RE;
if (Ultima_Diag_Level > 0) then
{diag_log("[#Ultima]: [Чистка техники в секторах]: Чистка завершена.");};
- На стороне сервера, разместите файл: safe_clear_vehicles.sqf, в папке: @DayZ_Epoch_Server_work\addons\dayz_server\missions\ВАША_МИССИЯ\
- В файл mission.sqf на сервере, в самый низ, добавьте:
execVM "\z\addons\dayz_server\missions\ВАША_МИССИЯ\safe_clear_vehicles.sqf";
*Все настройки, указаны в шапке файла.











