mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Working save.
This commit is contained in:
parent
6deff125ce
commit
2ea7ecdbf7
@ -9,3 +9,11 @@ class Extended_PostInit_EventHandlers {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_post_init));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Init_EventHandlers {
|
||||
class LaserTargetBase {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(laser_init));
|
||||
};
|
||||
};
|
||||
};
|
@ -14,13 +14,11 @@ PREP(translateToWeaponSpace);
|
||||
|
||||
PREP(laser_init);
|
||||
|
||||
GVAR(laser) = nil; // a single hud draws 1 laser at a time
|
||||
|
||||
PREP(laserTargetPFH);
|
||||
|
||||
ACE_LASERS = [];
|
||||
|
||||
ACE_DEFAULT_LASER_CODE = 1000;
|
||||
ACE_DEFAULT_LASER_CODE = 1001;
|
||||
ACE_DEFAULT_FIRE_SELECTION = [FIREMODE_DIRECT_LOAL, ACE_DEFAULT_LASER_CODE];
|
||||
|
||||
FUNC(getPosASL) = {visiblePositionASL (_this select 0)};
|
@ -16,9 +16,9 @@ REM(ACE_LASERS, objNull);
|
||||
if(!(local _laserTarget)) exitWith { };
|
||||
// The target is local, so its on this client
|
||||
if(!isDedicated) then {
|
||||
_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", player, true];
|
||||
_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", ACE_player, true];
|
||||
|
||||
[FUNC(laserTargetPFH), 0, [_laserTarget, player]] call cba_fnc_addPerFrameHandler;
|
||||
//[FUNC(laserTargetPFH), 0, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler;
|
||||
} else {
|
||||
// server side ownership of laser
|
||||
//_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", nil, false];
|
||||
|
@ -6,6 +6,6 @@ PREP(laserHudDesignateOff);
|
||||
PREP(unitTurretHasDesignator);
|
||||
|
||||
GVAR(laser) = nil;
|
||||
GVAR(laserActive) = false;
|
||||
GVAR(active) = false;
|
||||
|
||||
FUNC(getPosASL) = {visiblePositionASL (_this select 0)};
|
||||
|
@ -28,7 +28,7 @@ GVAR(initializedClasses) = _initializedClasses;
|
||||
|
||||
if (getNumber (_turretConfig >> QGVAR(Enabled)) == 1) exitWith {
|
||||
// @todo: Add the state variables to the vehicle, instead of to the client
|
||||
// e.g.: _vehicle setVariable [format ["%1_%2", QGVAR(laserActive), _x], false];
|
||||
// e.g.: _vehicle setVariable [format ["%1_%2", QGVAR(active), _x], false];
|
||||
|
||||
// Add actions
|
||||
_onAction = [QGVAR(LaserOn), localize "STR_ACE_Laser_SelfDesignate_DesignatorOn", "",
|
||||
@ -38,7 +38,7 @@ GVAR(initializedClasses) = _initializedClasses;
|
||||
},
|
||||
{
|
||||
// Condition
|
||||
!GVAR(laserActive) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
!GVAR(active) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
_offAction = [QGVAR(LaserOff), localize "STR_ACE_Laser_SelfDesignate_DesignatorOff", "",
|
||||
@ -48,7 +48,7 @@ GVAR(initializedClasses) = _initializedClasses;
|
||||
},
|
||||
{
|
||||
// Condition
|
||||
GVAR(laserActive) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
GVAR(active) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
[_type, 1, ["ACE_SelfActions"], _onAction] call EFUNC(interact_menu,addActionToClass);
|
||||
|
@ -1,8 +1,11 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if( (count _this) > 2) then {
|
||||
EXPLODE_3_PVT((_this select 0),_vehicle,_shooter,_laserTarget);
|
||||
_vehicle setVariable[QGVAR(currentTarget), [], true];
|
||||
if(!isNil "_this") then {
|
||||
if( (count _this) > 2) then {
|
||||
EXPLODE_3_PVT((_this select 0),_vehicle,_shooter,_laserTarget);
|
||||
// We got the optional vehicle list, clear the parameters
|
||||
_vehicle setVariable[QGVAR(currentTarget), [], true];
|
||||
};
|
||||
};
|
||||
|
||||
if(isNil QGVAR(laser)) exitWith {
|
||||
@ -17,10 +20,9 @@ if(!isNil "_handle") then {
|
||||
[_handle] call cba_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
REM(ACE_LASERS, GVAR(laser));
|
||||
deleteVehicle GVAR(laser);
|
||||
GVAR(laser) = nil;
|
||||
GVAR(laserActive) = false;
|
||||
GVAR(active) = false;
|
||||
|
||||
|
||||
|
||||
|
@ -23,7 +23,16 @@ FUNC(laserHudDesignatePFH) = {
|
||||
_args = _this select 0;
|
||||
_laserTarget = _args select 0;
|
||||
_shooter = _args select 1;
|
||||
|
||||
TRACE_1("", _args);
|
||||
|
||||
if(!alive _shooter || isNull _vehicle || isNull _laserTarget || !GVAR(active) ) exitWith {
|
||||
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff);
|
||||
};
|
||||
if(!([ACE_player] call FUNC(unitTurretHasDesignator)) ) exitWith {
|
||||
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff);
|
||||
};
|
||||
|
||||
if( (count _args) < 3) then {
|
||||
_args set[2, diag_tickTime + FCS_UPDATE_DELAY];
|
||||
};
|
||||
@ -32,15 +41,6 @@ FUNC(laserHudDesignatePFH) = {
|
||||
_vehicle = vehicle _shooter;
|
||||
_weapon = currentWeapon _vehicle;
|
||||
|
||||
TRACE_1("", _args);
|
||||
|
||||
if(!alive _shooter || isNull _vehicle || isNull _laserTarget || !GVAR(laserActive) ) exitWith {
|
||||
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff);
|
||||
};
|
||||
if(!([ACE_player] call FUNC(unitTurretHasDesignator)) ) exitWith {
|
||||
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff);
|
||||
};
|
||||
|
||||
// Retrieve the gunner and turret memory point information
|
||||
_gunnerInfo = [_vehicle, _weapon] call CBA_fnc_getFirer;
|
||||
_turretInfo = [_vehicle, _gunnerInfo select 1] call EFUNC(common,getTurretDirection);
|
||||
@ -106,14 +106,16 @@ private "_laserTarget";
|
||||
private "_handle";
|
||||
|
||||
if(isNil QGVAR(laser)) then {
|
||||
|
||||
_laserTarget = "LaserTargetW" createVehicle (getpos ACE_player);
|
||||
|
||||
GVAR(laserActive) = true;
|
||||
GVAR(active) = true;
|
||||
|
||||
_handle = [FUNC(laserHudDesignatePFH), 0.1, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler;
|
||||
_laserTarget setVariable ["ACE_PFH_HANDLE", _handle, false];
|
||||
|
||||
// Clear the vehicle parameters
|
||||
_vehicle setVariable[QGVAR(currentTarget), [], true];
|
||||
|
||||
GVAR(laser) = _laserTarget;
|
||||
} else {
|
||||
[] call FUNC(laserHudDesignateOff);
|
||||
|
@ -18,6 +18,17 @@ class CfgAmmo {
|
||||
maxspeed = 1030;
|
||||
maneuvrability = 8;
|
||||
sideairfriction = 0.065;
|
||||
|
||||
ACE_maxDeflection = 0.15; // Maximum flap deflection for guidance
|
||||
ACE_minDeflection = 0.005; // Minium flap deflection for guidance
|
||||
ACE_incDeflection = 0.005; // The incrmeent in which deflection adjusts.
|
||||
|
||||
ACE_seekerTypes = [ "SALH" ]; // {"SALH", "LIDAR", "BeamRide", "SARH", "Optic", "Thermal"};
|
||||
ACE_seekerAngle = 90; // Angle in front of the missile which can be searched
|
||||
ACE_seekerAccuracy = 1; // seeker accuracy multiplier
|
||||
ACE_seekerMaxRange = 2500; // Range from the missile which the seeker can visually search
|
||||
|
||||
ACE_attackProfiles = [ "LOAL-LIN", "LOAL-DIR", "LOAL-MID", "LOAL-HI"];
|
||||
};
|
||||
|
||||
class ACE_Hydra70_DAGR : M_PG_AT {
|
||||
|
Loading…
Reference in New Issue
Block a user