diff options
| author | hybrid <hybrid@hybridlabs.pro> | 2026-06-11 19:55:41 +0300 |
|---|---|---|
| committer | hybrid <hybrid@hybridlabs.pro> | 2026-06-11 19:55:41 +0300 |
| commit | dee52083d359434fc3ac51a871c1b836d092d2ac (patch) | |
| tree | 89bbb6326348a99bcf4a68761bd0c9628b80d4bb /Client/Module/Nuke | |
| download | a2wf_lingor-dee52083d359434fc3ac51a871c1b836d092d2ac.tar.gz a2wf_lingor-dee52083d359434fc3ac51a871c1b836d092d2ac.tar.bz2 a2wf_lingor-dee52083d359434fc3ac51a871c1b836d092d2ac.zip | |
init
Diffstat (limited to '')
| -rw-r--r-- | Client/Module/Nuke/damage.sqf | 30 | ||||
| -rw-r--r-- | Client/Module/Nuke/nuke.sqf | 146 | ||||
| -rw-r--r-- | Client/Module/Nuke/nukeincoming.sqf | 59 | ||||
| -rw-r--r-- | Client/Module/Nuke/radzone.sqf | 20 |
4 files changed, 255 insertions, 0 deletions
diff --git a/Client/Module/Nuke/damage.sqf b/Client/Module/Nuke/damage.sqf new file mode 100644 index 0000000..0b72bce --- /dev/null +++ b/Client/Module/Nuke/damage.sqf @@ -0,0 +1,30 @@ +//--- Nuke destruction.
+Private ["_array","_blackListed","_bo","_destroy","_target","_z"];
+
+private ["_destroy","_bo","_target","_array","_blackListed"];
+_target = _this select 0;
+_array = _target nearObjects ["All", 700];
+_blackListed = WFDEPOT + WFCAMP + ["land_nav_pier_c","land_nav_pier_c2","land_nav_pier_c2_end","land_nav_pier_c_270","land_nav_pier_c_90","land_nav_pier_c_big","land_nav_pier_C_L","land_nav_pier_C_L10","land_nav_pier_C_L30","land_nav_pier_C_R","land_nav_pier_C_R10","land_nav_pier_C_R30","land_nav_pier_c_t15","land_nav_pier_c_t20","land_nav_pier_F_17","land_nav_pier_F_23","land_nav_pier_m","land_nav_pier_m_1","land_nav_pier_m_end","land_nav_pier_M_fuel","land_nav_pier_pneu","land_nav_pier_uvaz"];
+_destroy = _array;
+{if ((typeOf _x) in _blackListed) then {_destroy = _destroy - [_x]}} forEach _array;
+{_bo = "BO_GBU12_LGB" createVehicle [random 1000,random 1000,500];_bo setPos [getPos _x select 0, getPos _x select 1, getPos _x select 2]} forEach _destroy;
+
+[_target] Spawn {
+ Private ["_array","_dammageable","_dammages","_range","_target"];
+ _target = _this select 0;
+ _dammageable = ["Man","Car","Motorcycle","Tank","Ship","Air","StaticWeapon"];
+ _range = 800;
+ _dammages = 1;
+ for [{_z = 0},{_z < 4},{_z = _z + 1}] do {
+ _array = _target nearEntities [_dammageable, _range];
+ {
+ _x setDammage (getDammage _x + _dammages);
+ {_x setDammage (getDammage _x + _dammages)} forEach crew _x;
+ } forEach _array;
+ _range = _range + 300;
+ _dammages = _dammages - 0.2;
+ sleep 3;
+ };
+ //--- Radiations.
+ [_target] Spawn NukeRadiation;
+};
\ No newline at end of file diff --git a/Client/Module/Nuke/nuke.sqf b/Client/Module/Nuke/nuke.sqf new file mode 100644 index 0000000..425272c --- /dev/null +++ b/Client/Module/Nuke/nuke.sqf @@ -0,0 +1,146 @@ +//--- Nuke blast.
+Private ['_Cone','_light','_smoke','_smoke2','_target','_top','_top2','_top3','_top4','_top5','_Wave','_xHandle'];
+
+_target = _this select 0;
+if (player distance _target < 4000) then {
+ "dynamicBlur" ppEffectEnable true;
+ "dynamicBlur" ppEffectAdjust [1];
+ "dynamicBlur" ppEffectCommit 1;
+};
+
+_Cone = "#particlesource" createVehicleLocal getPos _target;
+_Cone setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 10, [0, 0, 0],
+ [0, 0, 0], 0, 1.275, 1, 0, [40,80], [[0.25, 0.25, 0.25, 0], [0.25, 0.25, 0.25, 0.5],
+ [0.25, 0.25, 0.25, 0.5], [0.25, 0.25, 0.25, 0.05], [0.25, 0.25, 0.25, 0]], [0.25], 0.1, 1, "", "", _target];
+_Cone setParticleRandom [2, [1, 1, 30], [1, 1, 30], 0, 0, [0, 0, 0, 0.1], 0, 0];
+_Cone setParticleCircle [10, [-10, -10, 20]];
+_Cone setDropInterval 0.005;
+
+_top = "#particlesource" createVehicleLocal getPos _target;
+_top setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 48, 0], "", "Billboard", 1, 20, [0, 0, 0],
+ [0, 0, 80], 0, 1.7, 1, 0, [180,150,180], [[1, 1, 1, -10],[1, 1, 1, -7],[1, 1, 1, -4],[1, 1, 1, -0.5],[1, 1, 1, 0]], [0.05], 1, 1, "", "", _target];
+_top setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_top setDropInterval 0.001;
+
+_top2 = "#particlesource" createVehicleLocal getPos _target;
+_top2 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 112, 0], "", "Billboard", 1, 20, [0, 0, 0],
+ [0, 0, 20], 0, 1.7, 1, 0, [80,80,100], [[1, 1, 1, 0.5],[1, 1, 1, 0]], [0.07], 1, 1, "", "", _target];
+_top2 setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_top2 setDropInterval 0.002;
+
+_smoke = "#particlesource" createVehicleLocal getPos _target;
+_smoke setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 0],
+ [0, 0, 80], 0, 1.7, 1, 0, [40,50,60],
+ [[1, 1, 1, 0.2],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0]]
+ , [0.5, 0.1], 1, 1, "", "", _target];
+_smoke setParticleRandom [0, [10, 10, 15], [15, 15, 7], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_smoke setDropInterval 0.002;
+
+_Wave = "#particlesource" createVehicleLocal getPos _target;
+_Wave setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 20, [0, 0, 0],
+ [0, 0, 0], 0, 1.5, 1, 0, [50, 100], [[0.1, 0.1, 0.1, 0.5],
+ [0.5, 0.5, 0.5, 0.5], [1, 1, 1, 0.3], [1, 1, 1, 0]], [1,0.5], 0.1, 1, "", "", _target];
+_Wave setParticleRandom [2, [20, 20, 20], [5, 5, 0], 0, 0, [0, 0, 0, 0.1], 0, 0];
+_Wave setParticleCircle [50, [-80, -80, 2.5]];
+_Wave setDropInterval 0.0002;
+
+_light = "#lightpoint" createVehicleLocal [((getPos _target select 0)),(getPos _target select 1),((getPos _target select 2)+500)];
+_light setLightAmbient[1500, 1200, 1000];
+_light setLightColor[1500, 1200, 1000];
+_light setLightBrightness 100000.0;
+
+if (player distance _target < 4000) then {
+ "colorCorrections" ppEffectEnable true;
+ "colorCorrections" ppEffectAdjust [0.8, 15, 0, [0.5, 0.5, 0.5, 0], [0.0, 0.0, 0.6, 2],[0.3, 0.3, 0.3, 0.1]];"colorCorrections" ppEffectCommit 0.4;
+
+ "dynamicBlur" ppEffectAdjust [0.5];
+ "dynamicBlur" ppEffectCommit 3;
+
+ sleep 0.1;
+
+ _null = [] Spawn
+ {
+ Sleep 4;
+ "colorCorrections" ppEffectAdjust [1.0, 0.5, 0, [0.5, 0.5, 0.5, 0], [1.0, 1.0, 0.8, 0.4],[0.3, 0.3, 0.3, 0.1]];
+ "colorCorrections" ppEffectCommit 7;
+ };
+
+ "dynamicBlur" ppEffectAdjust [2];
+ "dynamicBlur" ppEffectCommit 1;
+
+ "dynamicBlur" ppEffectAdjust [0.5];
+ "dynamicBlur" ppEffectCommit 4;
+};
+_light setLightBrightness 100000.0;
+
+sleep 3.5;
+
+_Wave setDropInterval 0.001;
+deleteVehicle _top;
+deleteVehicle _top2;
+sleep 7;
+_top3 = "#particlesource" createVehicleLocal getPos _target;
+_top3 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 48, 0], "", "Billboard", 1, 20, [0, 0, 500],
+ [0, 0, 65], 0, 1.7, 1, 0, [200,200,200], [[1, 1, 1, -10],[1, 1, 1, -7],[1, 1, 1, -4],[1, 1, 1, -0.5],[1, 1, 1, 0]], [0.05], 1, 1, "", "", _target];
+_top3 setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_top3 setDropInterval 0.001;
+
+sleep 0.6;
+deleteVehicle _top3;
+
+sleep 3;
+
+if (player distance _target < 4000) then {
+ "colorCorrections" ppEffectAdjust [1, 1, 0, [0.5, 0.5, 0.5, 0], [1.0, 1.0, 0.8, 0.4],[0.3, 0.3, 0.3, 0.1]];"colorCorrections" ppEffectCommit 1; "colorCorrections" ppEffectEnable TRUE;
+ "dynamicBlur" ppEffectAdjust [0];
+ "dynamicBlur" ppEffectCommit 1;
+};
+
+_top4 = "#particlesource" createVehicleLocal getPos _target;
+_top4 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 48, 0], "", "Billboard", 1, 20, [0, 0, 800],
+ [0, 0, 55], 0, 1.7, 1, 0, [200,200,200], [[1, 1, 1, -10],[1, 1, 1, -7],[1, 1, 1, -4],[1, 1, 1, -0.5],[1, 1, 1, 0]], [0.05], 1, 1, "", "", _target];
+_top4 setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_top4 setDropInterval 0.001;
+
+sleep 0.6;
+deleteVehicle _light;
+deleteVehicle _top4;
+sleep 4;
+
+_top5 = "#particlesource" createVehicleLocal getPos _target;
+_top5 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 48, 0], "", "Billboard", 1, 20, [0, 0, 1000],
+ [0, 0, 20], 0, 1.7, 1, 0, [250,280,250], [[1, 1, 1, -10],[1, 1, 1, -7],[1, 1, 1, -4],[1, 1, 1, -0.5],[1, 1, 1, 0]], [0.05], 1, 1, "", "", _target];
+_top5 setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_top5 setDropInterval 0.001;
+
+_Cone setDropInterval 0.01;
+_Wave setDropInterval 0.001;
+
+_smoke setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 0],
+ [0, 0, 80], 0, 1.7, 1, 0, [150,150,150],
+ [[1, 1, 1, 0.2],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0]]
+ , [0.5, 0.1], 1, 1, "", "", _target];
+_smoke setDropInterval 0.01;
+
+_smoke2 = "#particlesource" createVehicleLocal getPos _target;
+_smoke2 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 900],
+ [0, 0, 25], 0, 1.7, 1, 0, [160,180,170],
+ [[1, 1, 1, 0.2],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0]]
+ , [0.5, 0.1], 1, 1, "", "", _target];
+_smoke2 setParticleRandom [0, [10, 10, 15], [15, 15, 7], 0, 0, [0, 0, 0, 0], 0, 0, 360];
+_smoke2 setDropInterval 0.01;
+
+sleep 5;
+deleteVehicle _top5;
+_Cone setDropInterval 0.02;
+_Wave setDropInterval 0.01;
+
+sleep 5;
+deleteVehicle _smoke2;
+sleep 10;
+deleteVehicle _Wave;
+deleteVehicle _cone;
+deleteVehicle _smoke;
+sleep 20;
+if (player distance _target < 4000) then {"colorCorrections" ppEffectEnable false};
+[currentFX] Spawn FX;
\ No newline at end of file diff --git a/Client/Module/Nuke/nukeincoming.sqf b/Client/Module/Nuke/nukeincoming.sqf new file mode 100644 index 0000000..e2a92f9 --- /dev/null +++ b/Client/Module/Nuke/nukeincoming.sqf @@ -0,0 +1,59 @@ +//--- Nuke launching.
+Private ['_cruise','_dropPosition','_dropPosX','_dropPosY','_dropPosZ','_misFlare','_nukeMarker','_path','_pathS','_planespawnpos','_target','_type'];
+_target = _this select 0;
+_nukeMarker = _this select 1;
+
+WFBE_LocalizeMessage = [nil,'CLTFNCLOCALIZEMESSAGE',['TacticalLaunch']];
+publicVariable 'WFBE_LocalizeMessage';
+if (isHostedServer || local player) then {[nil,'CLTFNCLOCALIZEMESSAGE',['TacticalLaunch']] Spawn HandlePVF};
+
+sleep 300;
+
+_path = "\ca\air2\cruisemissile\"; //";
+_pathS = _path + "data\scripts\"; //";
+
+_dropPosition = getpos _target;
+_type = if (WF_A2_Vanilla || WF_A2_CombinedOps) then {'Chukar'} else {'Chukar_EP1'};
+_cruise = createVehicle [_type,_dropPosition,[], 0, "FLY"];
+_cruise setVectorDir [ 0.1,- 1,+ 0.5];
+_cruise setPos [(getPos _cruise select 0),(getPos _cruise select 1),570];
+_cruise setVelocity [0,2,0];
+_cruise flyInHeight 570;
+_cruise setSpeedMode "FULL";
+
+WFBE_RequestSpecial = ['SRVFNCREQUESTSPECIAL',["ICBM",sideJoined,_target,_cruise,clientTeam]];
+publicVariable 'WFBE_RequestSpecial';
+if (isHostedServer) then {['SRVFNCREQUESTSPECIAL',["ICBM",sideJoined,_target,_cruise,clientTeam]] Spawn HandleSPVF};
+
+sleep 1.5;
+
+WFBE_DisplayICBM = [sideJoined,'CLTFNCDISPLAYICBM',[_target,_cruise]];
+publicVariable 'WFBE_DisplayICBM';
+if (isHostedServer || local player) then {[sideJoined,'CLTFNCDISPLAYICBM',[_target,_cruise]] Spawn HandlePVF};
+
+_misFlare = objNull;
+if (WF_A2_Vanilla || WF_A2_CombinedOps) then {
+ _dropPosX = _dropPosition select 0;
+ _dropPosY = _dropPosition select 1;
+ _dropPosZ = _dropPosition select 2;
+
+ _planespawnpos = [_dropPosX , _dropPosY , _dropPosZ + 600];
+
+ _misFlare = createVehicle ["cruiseMissileFlare1",_planespawnpos,[], 0, "NONE"];
+ _misFlare inflame true;
+ _cruise setVariable ["cruisemissile_level", false];
+ [_cruise, _misFlare] execVM (_pathS + "cruisemissileflare.sqf");
+ _cruise setObjectTexture [0, _path + "data\exhaust_flame_ca"];
+ [_cruise] execVM (_pathS + "exhaust1.sqf");
+};
+
+sleep 7;
+
+waitUntil {!alive _cruise};
+
+sleep 5;
+if (WF_A2_Vanilla || WF_A2_CombinedOps) then {deleteVehicle _misFlare};
+deleteVehicle _cruise;
+
+sleep 50;
+deleteMarkerLocal _nukeMarker;
diff --git a/Client/Module/Nuke/radzone.sqf b/Client/Module/Nuke/radzone.sqf new file mode 100644 index 0000000..084b66f --- /dev/null +++ b/Client/Module/Nuke/radzone.sqf @@ -0,0 +1,20 @@ +//--- Radiation
+Private ['_target','_z'];
+
+
+private ["_target"];
+_target = _this select 0;
+[_target] Spawn {
+ Private ["_array","_dammageable","_target"];
+ _target = _this select 0;
+ _dammageable = ["Man","Car","Motorcycle","Tank","Ship","Air","StaticWeapon"];
+ for [{_z = 0},{_z < 300},{_z = _z + 1}] do {
+ _array = _target nearEntities [_dammageable, 1000];
+ {
+ _x setDammage (getDammage _x + 0.03);
+ {_x setDammage (getDammage _x + 0.05)} forEach crew _x;
+ } forEach _array;
+ sleep (3 + random 3);
+ };
+ deleteVehicle _target;
+};
\ No newline at end of file |
