_epicenter = _this select 0;
_range = _this select 1;
_chance = _this select 2;
_vfxstate=0;
_dstate=0;
_artefacts = ["DAP_STONEBLOOD","DAP_MEAT","DAP_SOUL"];
if (isNil("_chance")) then {_chance=0.15;};
_null = [_epicenter,_range,_artefacts,_chance,player] spawn {
_epicenter = _this select 0;
_range = _this select 1;
_artefacts = _this select 2;
_chance = _this select 3;
_x = _this select 4;
while {true} do {
if (!(_x isKindOf "SmokeShellGreen")) then {[_epicenter,_range,_artefacts,_chance] execVM "addons\Scripts\ArtefactSpawn.sqf";};
sleep 300;
};
};
_victims=[];
while {true} do
{
if (!isDedicated) then
{
_objects=list _epicenter;
{if ((!(alive _x)) or (_x isKindOf "DAP_ARTEFACT") or (_x isKindOf "Air")) then {_objects=_objects-[_x];};}ForEach _objects;
if (count _objects>0) then
{
{
_meters = _x distance _epicenter;
if (_meters < 5) then {
_mincer1 = "#particlesource" createVehicleLocal getPos _epicenter;
_mincer2 = "#particlesource" createVehicleLocal getPos _epicenter;
_mincer3 = "#particlesource" createVehicleLocal getPos _epicenter;
_mincer1 setParticleCircle [3, [0, 2, 1]];
_mincer1 setParticleRandom [0, [0.25, 0.25, 0], [0.175, 0.175, 0], 0, 0.25, [0, 0, 0, 0.1], 0, 0];
_mincer1 setParticleParams [["\A3\data_f\ParticleEffects\Universal\smoke.p3d", 1, 0, 1], "", "Billboard", 0.05, 1, [0, 0, 0], [0, 0, 0], 0, 16, 2, 0, [0.005, 2, 4], [[0.1, 0.1, 0.1, 1], [0.25, 0.25, 0.25, 0.5], [0.5, 0.5, 0.5, 0]], [0], 1, 0, "", "", ""];
_mincer1 setDropInterval 0.01;
_mincer2 setParticleCircle [2, [1, 2, 0]];
_mincer2 setParticleRandom [0, [0.25, 0.25, 0], [0.175, 0.175, 0], 0, 0.25, [0, 0, 0, 0.1], 0, 0];
_mincer2 setParticleParams [["\A3\data_f\Cl_fire", 16, 0, 16], "", "Billboard", 1, 1, [0, 0, 0], [0, 0, 0], 0, 10, 7.9, 0, [0.5, 2, 4], [[0.1, 0.1, 0.1, 1], [0.25, 0.25, 0.25, 0.5], [0.5, 0.5, 0.5, 0]], [0.08], 1, 0, "", "", ""];
_mincer2 setDropInterval 0.01;
_mincer3 setParticleCircle [1, [0, 0, 0]];
_mincer3 setParticleRandom [0, [0.25, 0.25, 0], [0.175, 0.175, 0], 0, 0.25, [0, 0, 0, 0.1], 0, 0];
_mincer3 setParticleParams [["\A3\data_f\cl_rock1", 1, 0, 1], "", "SpaceObject", 1, 5, [0, 0, 0], [0, 0, 0.25], 0, 10, 7.9, 0, [10, 2, 4], [[0.1, 0.1, 0.1, 1], [0.25, 0.25, 0.25, 0.5], [0.5, 0.5, 0.5, 0]], [0.08], 1, 0, "", "", ""];
_mincer3 setDropInterval 0.1;
if (_epicenter distance (Player) < 200) then {
_gravisound = [_epicenter] spawn {
_anomaly = _this select 0;
[_Anomaly, Player] say3D "gravi_rumble";
};
};
_meters = _x distance _epicenter;
if (_meters < 3) then {
if ((!(_x in _victims))) then
{
_victims = _victims + [_x];
null = [_x,_epicenter] spawn
{
_victim = _this select 0;
_anomaly = _this select 1;
_anomaly say "mincer_wind";
};
null = [_x,_epicenter] spawn
{
_body = _this select 0;
_anomaly = _this select 1;
[_anomaly,_body] execVM "addons\Scripts\Tornado.sqf";
};
};
};
if (_meters > 5) then {
sleep 1;
deleteVehicle _mincer1;
deleteVehicle _mincer2;
deleteVehicle _mincer3;
} else
{
sleep 1;
deleteVehicle _mincer1;
deleteVehicle _mincer2;
deleteVehicle _mincer3;
};
};
}ForEach _objects;
};
};
_pos = (_epicenter modelToWorld [0,0,0]);
_manpos = (player modelToWorld [0,0,0]);
_dist=(player distance [_pos select 0, _pos select 1, _manpos select 2]);
if (_dist<=(_range+25) and ("ItemGPS" in assignedItems player) and (_dstate==0)) then
{
_epicenter setVariable ["DAP_DETECTOR_STATE",1];
[_epicenter,_range,0] execVM "addons\Scripts\Detector.sqf";
_dstate=1;
};
if (_dist>(_range+25) and ("ItemGPS" in assignedItems player) and (_dstate==1)) then
{
_epicenter setVariable ["DAP_DETECTOR_STATE",0];
_dstate=0;
};
};
Если триггер создавать через редактор, то он работает корректно, но если создавать через скрипт, то скрипт работает, но не работают функции которые должны быть только у клиента if (!isDedicated) then {}; Например в данном скрипте есть: _mincer1 = "#particlesource" createVehicleLocal getPos _epicenter; - через редактор работает, если триггер создан сервером, то нет.