This commit is contained in:
2026-07-12 17:45:29 -03:00
parent 9cd0cb33fd
commit 69974856ed
24 changed files with 375 additions and 23 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -342,6 +342,18 @@ class BRAF_Fennec_Base: Helicopter_Base_H
animPeriod=0; animPeriod=0;
initPhase=1; initPhase=1;
}; };
class EFS_Cover_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class EFS_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class door_l class door_l
{ {
source="user"; source="user";
@@ -403,6 +415,17 @@ class BRAF_Fennec_Base: Helicopter_Base_H
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)"; condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]"; statement="this animate ['NVG_Hide',1]";
}; };
class Deploy_EFS
{
displayname="<t color='#b31d00'> Deploy EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getText (configOf this >> 'faction') == 'BRAF_NAVY' AND this animationphase 'EFS_Hide' < 0.1 AND (player in crew this)";
statement="this execVM ""braf\braf_sar\Braf_Scripts\EFS_Esquilo.sqf""";
};
}; };
class Armory class Armory
{ {
@@ -1373,6 +1396,17 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)"; condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]"; statement="this animate ['NVG_Hide',1]";
}; };
class Deploy_EFS
{
displayname="<t color='#b31d00'> Deploy EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getText (configOf this >> 'faction') == 'BRAF_NAVY' AND this animationphase 'EFS_Hide' < 0.1 AND (player in crew this)";
statement="this execVM ""braf\braf_sar\Braf_Scripts\EFS_Esquilo.sqf""";
};
}; };
}; };
class BRAF_Fennec_SAR_base: BRAF_Fennec_Base class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
@@ -1730,6 +1764,17 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)"; condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]"; statement="this animate ['NVG_Hide',1]";
}; };
class Deploy_EFS
{
displayname="<t color='#b31d00'> Deploy EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getText (configOf this >> 'faction') == 'BRAF_NAVY' AND this animationphase 'EFS_Hide' < 0.1 AND (player in crew this)";
statement="this execVM ""braf\braf_sar\Braf_Scripts\EFS_Esquilo.sqf""";
};
class Open_Door_Right class Open_Door_Right
{ {
position="door_pos"; position="door_pos";
@@ -1820,6 +1865,17 @@ class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)"; condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]"; statement="this animate ['NVG_Hide',1]";
}; };
class Deploy_EFS
{
displayname="<t color='#b31d00'> Deploy EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getText (configOf this >> 'faction') == 'BRAF_NAVY' AND this animationphase 'EFS_Hide' < 0.1 AND (player in crew this)";
statement="this execVM ""braf\braf_sar\Braf_Scripts\EFS_Esquilo.sqf""";
};
}; };
}; };
class BRAF_Fennec_cargo_base: BRAF_Fennec_Base class BRAF_Fennec_cargo_base: BRAF_Fennec_Base
@@ -1900,6 +1956,8 @@ class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base
author="BRAF TEAM"; author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed_MB"; _generalMacro="BRAF_Fennec_Unarmed_MB";
faction="BRAF_NAVY"; faction="BRAF_NAVY";
canFloat=1;
waterLeakiness=10;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_MB.jpg";
scope=2; scope=2;
@@ -1919,6 +1977,11 @@ class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base
"HU61",0.25, "HU61",0.25,
"HU91",0.25 "HU91",0.25
}; };
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
}; };
class BRAF_Fennec_Unarmed_FAB: BRAF_Fennec_unarmed_base class BRAF_Fennec_Unarmed_FAB: BRAF_Fennec_unarmed_base
{ {
@@ -2000,6 +2063,8 @@ class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base
author="BRAF TEAM"; author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed_MB"; _generalMacro="BRAF_Fennec_Armed_MB";
faction="BRAF_NAVY"; faction="BRAF_NAVY";
canFloat=1;
waterLeakiness=10;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_MB.jpg";
scope=2; scope=2;
@@ -2018,6 +2083,11 @@ class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base
"HU61",0.25, "HU61",0.25,
"HU91",0.25 "HU91",0.25
}; };
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
}; };
class BRAF_Fennec_Armed_FAB: BRAF_Fennec_dynamicLoadout_base class BRAF_Fennec_Armed_FAB: BRAF_Fennec_dynamicLoadout_base
{ {
@@ -2061,6 +2131,8 @@ class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base
author="BRAF TEAM"; author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo_MB"; _generalMacro="BRAF_Fennec_Cargo_MB";
faction="BRAF_NAVY"; faction="BRAF_NAVY";
canFloat=1;
waterLeakiness=10;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_MB.jpg";
scope=2; scope=2;
@@ -2079,6 +2151,11 @@ class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base
"HU61",0.25, "HU61",0.25,
"HU91",0.25 "HU91",0.25
}; };
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
}; };
class BRAF_Fennec_Cargo_FAB: BRAF_Fennec_cargo_base class BRAF_Fennec_Cargo_FAB: BRAF_Fennec_cargo_base
{ {
@@ -2124,6 +2201,8 @@ class BRAF_Fennec_SAR_MB: BRAF_Fennec_SAR_base
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_MB.jpg";
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
faction="BRAF_NAVY"; faction="BRAF_NAVY";
canFloat=1;
waterLeakiness=10;
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2140,6 +2219,11 @@ class BRAF_Fennec_SAR_MB: BRAF_Fennec_SAR_base
"HU61",0.25, "HU61",0.25,
"HU91",0.25 "HU91",0.25
}; };
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
}; };
class BRAF_Fennec_SAR_FAB: BRAF_Fennec_SAR_base class BRAF_Fennec_SAR_FAB: BRAF_Fennec_SAR_base
{ {
+2
View File
@@ -11,6 +11,8 @@ class CfgPatches {
"BRAF_Insignia", "BRAF_Insignia",
"BRAF_Soft", "BRAF_Soft",
"BRAF_Optics_Air", "BRAF_Optics_Air",
"Braf_SAR",
"BRAF_Sounds",
}; };
requiredVersion = 0.1; requiredVersion = 0.1;
units[] = { units[] = {
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+7 -5
View File
@@ -1,8 +1,10 @@
// Declaração de variáveis
params ["_heli"]; params ["_heli"];
// Desatachar e apagar EFS private _efs = _heli getVariable ["efs", objNull];
private _EFS = _heli getVariable ["efs", objNull]; if (!isNull _efs) then {
if (!isNull _EFS) then { deleteVehicle _efs;
deleteVehicle _EFS;
}; };
_heli animate ["EFS_Hide", 0];
_heli setVariable ["efs", objNull, true];
_heli setVariable ["braf_efs_deployed", false, true];
+62 -4
View File
@@ -1,14 +1,72 @@
// Declaração de variáveis:
params ["_heli"]; params ["_heli"];
// Criação e posicionamento do EFS: private _currentEfs = _heli getVariable ["efs", objNull];
if (!isNull _currentEfs) exitWith {
_heli vehicleChat "Emergency Floating System already deployed.";
};
sleep 1; sleep 1;
_heli vehicleChat "Deploying Emergency Floating System!"; _heli vehicleChat "Deploying Emergency Floating System!";
_heli say3D "EFS";
_heli animate ["EFS_Cover_Hide", 1];
_heli animate ["EFS_Hide", 1];
private _efs = "BRAF_Esquilo_EFS" createVehicle [0, 0, 0]; private _efs = "BRAF_Esquilo_EFS" createVehicle [0, 0, 0];
_efs setDir (getDir _heli); _efs setDir (getDir _heli);
_efs setPosASL (_heli modelToWorld [0, 0, 0]); _efs setPosASL (_heli modelToWorld [0, 0, 0]);
_efs attachTo [_heli, [0, 0, 0], "efs_spawn"]; _efs attachTo [_heli, [0, 0, 0], "efs_spawn"];
_heli setVariable ["efs", _efs]; _heli setVariable ["efs", _efs, true];
_heli setVariable ["braf_efs_deployed", true, true];
_heli; if ((_heli getVariable ["braf_efs_engine_lock_eh", -1]) < 0) then {
private _engineLockEh = _heli addEventHandler ["Engine", {
params ["_vehicle", "_engineState"];
if (_engineState && {_vehicle getVariable ["braf_efs_water_landed", false]}) then {
_vehicle engineOn false;
_vehicle vehicleChat "Engine restart disabled after EFS water landing.";
};
}];
_heli setVariable ["braf_efs_engine_lock_eh", _engineLockEh];
};
if (!(_heli getVariable ["braf_efs_water_monitor", false])) then {
_heli setVariable ["braf_efs_water_monitor", true, true];
[_heli] spawn {
params ["_heli"];
private _waterContact = false;
while {
!isNull _heli
&& {_heli getVariable ["braf_efs_deployed", false]}
&& {!(_heli getVariable ["braf_efs_water_landed", false])}
&& {!_waterContact}
} do {
private _efsProbe = _heli getVariable ["efs", objNull];
private _waterProbeASL = if (isNull _efsProbe) then {getPosASL _heli} else {getPosASL _efsProbe};
_waterContact = (surfaceIsWater (getPosWorld _heli))
&& {(isTouchingGround _heli) || {(_waterProbeASL select 2) < 0.75}};
sleep 0.25;
};
_heli setVariable ["braf_efs_water_monitor", false, true];
if (isNull _heli || {!_waterContact}) exitWith {};
_heli setVariable ["braf_efs_water_landed", true, true];
_heli engineOn false;
_heli vehicleChat "EFS water landing complete. Engine restart disabled.";
while {!isNull _heli && {_heli getVariable ["braf_efs_water_landed", false]}} do {
if (isEngineOn _heli) then {
_heli engineOn false;
};
sleep 0.5;
};
};
};
+2 -1
View File
@@ -17,7 +17,8 @@ class CfgPatches
{ {
"BRAF_Rescue_Seat", "BRAF_Rescue_Seat",
"BRAF_Rescue_Basket", "BRAF_Rescue_Basket",
"BRAF_Rescue_Stretcher" "BRAF_Rescue_Stretcher",
"BRAF_Esquilo_EFS"
}; };
weapons[] = {}; weapons[] = {};
}; };
+51
View File
@@ -0,0 +1,51 @@
ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0};
forcedDiffuse[]={0.0,0.0,0.0,1.0};
emmisive[]={0.0,0.0,0.0,1.0};
specular[]={0.15,0.15,0.15,1.0};
specularPower=25;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_sar\data\BRAF_rescue_nohq.paa";
uvSource="tex";
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource="tex";
class uvTransform
{
aside[]={10,0,0};
up[]={0,10,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
};
class Stage4
{
texture="braf\braf_sar\data\BRAF_rescue_as.paa";
uvSource="tex";
};
class Stage5
{
texture="braf\braf_sar\data\BRAF_rescue_smdi.paa";
uvSource="tex";
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(4.7,1.2)";
uvSource="tex";
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
useWorldEnvMap="true";
uvSource="tex";
};
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+92
View File
@@ -0,0 +1,92 @@
ambient[]={1,1,1,1};
diffuse[]={0.2,0.2,0.2,1};
forcedDiffuse[]={0,0,0,1};
emmisive[]={0,0,0,0};
specular[]={0.89999998,0.89999998,0.89999998,1};
specularPower=100;
PixelShaderID="Super";
VertexShaderID="Super";
class Stage1
{
texture="braf\braf_sar\data\BRAF_rescue_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage2
{
texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage4
{
texture="braf\braf_sar\data\BRAF_rescue_as.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage5
{
texture="braf\braf_sar\data\BRAF_rescue_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage6
{
texture="#(ai,64,64,1)fresnel(4.6,6.5)";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,10,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
class Stage7
{
texture="a3\data_f\env_land_sea_co.paa";
uvSource="tex";
class uvTransform
{
aside[]={1,0,0};
up[]={0,1,0};
dir[]={0,0,0};
pos[]={0,0,0};
};
};
+32
View File
@@ -52,4 +52,36 @@ class CfgModels
}; };
}; };
}; };
class BRAF_Rescue_Stretcher
{
htMin=60;
htMax=1800;
afMax=200;
mfMax=100;
mFact=0;
tBody=0;
skeletonName="SAR_SEAT_Skeleton";
sectionsInherit="";
sections[]=
{
};
class Animations
{};
};
class BRAF_Rescue_Basket
{
htMin=60;
htMax=1800;
afMax=200;
mfMax=100;
mFact=0;
tBody=0;
skeletonName="SAR_SEAT_Skeleton";
sectionsInherit="";
sections[]=
{
};
class Animations
{};
};
}; };