mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'release'
This commit is contained in:
commit
f86d8d113c
@ -1,7 +1,3 @@
|
||||
|
||||
class Single;
|
||||
class Burst;
|
||||
class FullAuto;
|
||||
class Mode_SemiAuto;
|
||||
class Mode_Burst;
|
||||
class Mode_FullAuto;
|
||||
@ -90,7 +86,10 @@ class CfgWeapons {
|
||||
|
||||
/* MX */
|
||||
|
||||
class arifle_MX_Base_F: Rifle_Base_F {};
|
||||
class arifle_MX_Base_F: Rifle_Base_F {
|
||||
class Single: Mode_SemiAuto {};
|
||||
class FullAuto: Mode_FullAuto {};
|
||||
};
|
||||
class arifle_MX_SW_F: arifle_MX_Base_F {
|
||||
magazines[] = {
|
||||
"100Rnd_65x39_caseless_mag_Tracer",
|
||||
|
@ -28,3 +28,30 @@ if (isNil "ACE_maxWeightCarry") then {
|
||||
["ace_unconscious", {_this call FUNC(handleUnconscious)}] call CBA_fnc_addEventHandler;
|
||||
|
||||
//@todo Captivity?
|
||||
|
||||
//Add Keybind:
|
||||
["ACE3 Common", QGVAR(drag), (localize LSTRING(DragKeybind)),
|
||||
{
|
||||
if (!alive ACE_player) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
// If we are drag/carrying something right now then just drop it:
|
||||
if (ACE_player getVariable [QGVAR(isDragging), false]) exitWith {
|
||||
[ACE_player, ACE_player getVariable [QGVAR(draggedObject), objNull]] call FUNC(dropObject);
|
||||
false
|
||||
};
|
||||
if (ACE_player getVariable [QGVAR(isCarrying), false]) exitWith {
|
||||
[ACE_player, ACE_player getVariable [QGVAR(carriedObject), objNull]] call FUNC(dropObject_carry);
|
||||
false
|
||||
};
|
||||
|
||||
private _cursor = cursorObject;
|
||||
if ((isNull _cursor) || {(_cursor distance ACE_player) > 2.6}) exitWith {false};
|
||||
if (!([ACE_player, _cursor] call FUNC(canDrag))) exitWith {false};
|
||||
|
||||
[ACE_player, _cursor] call FUNC(startDrag);
|
||||
false
|
||||
},
|
||||
{false},
|
||||
[-1, [false, false, false]]] call CBA_fnc_addKeybind; // UNBOUND
|
||||
|
||||
|
@ -25,6 +25,18 @@
|
||||
<Italian>Lascia</Italian>
|
||||
<Hungarian>Elengedés</Hungarian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_DragKeybind">
|
||||
<English>Drag/Release Object</English>
|
||||
<Russian>Тащить/Отпустить Объекты</Russian>
|
||||
<Spanish>Arrastrar/Soltar Objeto</Spanish>
|
||||
<Polish>Ciągnij/Puść Obiekt</Polish>
|
||||
<Czech>Táhnout/Položit Objekt</Czech>
|
||||
<French>Trainer/Lâcher Objets</French>
|
||||
<German>Objekt ziehen/loslassen</German>
|
||||
<Portuguese>Arrastar/Soltar Objeto</Portuguese>
|
||||
<Italian>Trascina/Lascia Oggetto</Italian>
|
||||
<Hungarian>Húzás/Elengedés Objektum</Hungarian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_UnableToDrag">
|
||||
<English>Item too heavy</English>
|
||||
<German>Gegenstand ist zu schwer</German>
|
||||
|
@ -286,7 +286,7 @@ class CfgVehicles {
|
||||
class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_02_f; class B_CTRG_soldier_engineer_exp_F:B_Soldier_02_f {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
|
@ -1,7 +1,7 @@
|
||||
class ACE_UI {
|
||||
class gunnerZeroing {
|
||||
class conditions {
|
||||
ADDON = "false";
|
||||
ADDON = "(false)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -19,11 +19,6 @@ class CfgWeapons {
|
||||
class UGL_F: GrenadeLauncher {
|
||||
magazines[] += {"ACE_HuntIR_M203"};
|
||||
};
|
||||
class GL_3GL_F: UGL_F {
|
||||
//magazines[] += {"ACE_HuntIR_M203"};
|
||||
magazines[] = {"1Rnd_HE_Grenade_shell","UGL_FlareWhite_F","UGL_FlareGreen_F","UGL_FlareRed_F","UGL_FlareYellow_F","UGL_FlareCIR_F","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeRed_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeYellow_Grenade_shell","1Rnd_SmokePurple_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","3Rnd_HE_Grenade_shell","3Rnd_UGL_FlareWhite_F","3Rnd_UGL_FlareGreen_F","3Rnd_UGL_FlareRed_F","3Rnd_UGL_FlareYellow_F","3Rnd_UGL_FlareCIR_F","3Rnd_Smoke_Grenade_shell","3Rnd_SmokeRed_Grenade_shell","3Rnd_SmokeGreen_Grenade_shell","3Rnd_SmokeYellow_Grenade_shell","3Rnd_SmokePurple_Grenade_shell","3Rnd_SmokeBlue_Grenade_shell","3Rnd_SmokeOrange_Grenade_shell","ACE_HuntIR_M203"};
|
||||
};
|
||||
|
||||
class Rifle_Base_F;
|
||||
class arifle_MX_Base_F: Rifle_Base_F {
|
||||
class GL_3GL_F: UGL_F {
|
||||
|
@ -159,7 +159,7 @@ if (count GVAR(collectedActionPoints) > 1) then {
|
||||
private _delta = vectorNormalized ((GVAR(collectedActionPoints) select _i select 1) vectorDiff (GVAR(collectedActionPoints) select _j select 1));
|
||||
|
||||
// If _i is inside a cone with 20º half angle with origin on _j
|
||||
if (_delta select 2 > 0.94) exitWith {
|
||||
if ((_delta select 2 > 0.94) && {((GVAR(collectedActionPoints) select _i select 1) distance2d (GVAR(collectedActionPoints) select _j select 1)) < 0.1}) exitWith {
|
||||
GVAR(collectedActionPoints) deleteAt _i;
|
||||
};
|
||||
};
|
||||
|
@ -38,6 +38,9 @@ class CfgWeapons {
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
lockedTargetSound[] = {"",0,1};
|
||||
};
|
||||
class launch_B_Titan_short_tna_F: launch_B_Titan_short_F {
|
||||
GVAR(enabled) = 1;
|
||||
};
|
||||
class launch_I_Titan_short_F: launch_Titan_short_base {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
@ -59,6 +62,9 @@ class CfgWeapons {
|
||||
lockingTargetSound[] = {"",0,1};
|
||||
lockedTargetSound[] = {"",0,1};
|
||||
};
|
||||
class launch_O_Titan_short_ghex_F: launch_O_Titan_short_F {
|
||||
GVAR(enabled) = 1;
|
||||
};
|
||||
class launch_Titan_short_F: launch_Titan_short_base {
|
||||
GVAR(enabled) = 1;
|
||||
weaponInfoType = "ACE_RscOptics_javelin";
|
||||
|
@ -2,12 +2,12 @@
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
private["_player", "_currentFireMode"];
|
||||
private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player};
|
||||
private _currentFireMode = _currentShooter getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
|
||||
|
||||
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
|
||||
if(_currentFireMode == "JAV_DIR") then {
|
||||
_currentFireMode = "JAV_TOP";
|
||||
} else {
|
||||
_currentFireMode = "JAV_DIR";
|
||||
};
|
||||
ACE_player setVariable["ace_missileguidance_attackProfile", _currentFireMode, false];
|
||||
_currentShooter setVariable["ace_missileguidance_attackProfile", _currentFireMode, false];
|
||||
|
@ -11,7 +11,7 @@ private["_firedEH", "_fov", "_lastTick", "_lockTime", "_maxX", "_maxY", "_minX",
|
||||
private["_offsetX", "_offsetY", "_pos", "_randomLockInterval", "_randomPosWithinBounds", "_range"];
|
||||
private["_runTime", "_soundTime", "_targetArray", "_zamerny", "_currentShooter"];
|
||||
|
||||
_currentShooter = (vehicle ACE_player);
|
||||
_currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player};
|
||||
|
||||
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
|
||||
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
|
||||
|
@ -2,13 +2,15 @@
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
#define __LOCKONTIMERANDOM 2 // Deviation in lock on time
|
||||
#define __LOCKONTIMERANDOM 1 // Deviation in lock on time
|
||||
|
||||
if((count _this) > 0) then {
|
||||
uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0];
|
||||
};
|
||||
|
||||
ACE_player setVariable ["ace_missileguidance_target",nil, false];
|
||||
private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player};
|
||||
TRACE_2("shooter",_currentShooter,typeOf _currentShooter);
|
||||
_currentShooter setVariable ["ace_missileguidance_target", nil, false];
|
||||
|
||||
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
|
||||
|
@ -2,13 +2,13 @@
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
private["_player", "_currentFireMode"];
|
||||
private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player};
|
||||
private _currentFireMode = _currentShooter getVariable ["ace_missileguidance_attackProfile", "JAV_TOP"];
|
||||
|
||||
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
|
||||
if(_currentFireMode == "JAV_TOP") then {
|
||||
__JavelinIGUITop ctrlSetTextColor __ColorGreen;
|
||||
__JavelinIGUIDir ctrlSetTextColor __ColorGray;
|
||||
} else {
|
||||
__JavelinIGUITop ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUIDir ctrlSetTextColor __ColorGreen;
|
||||
};
|
||||
};
|
||||
|
@ -84,6 +84,7 @@
|
||||
#define TYPE_BACKPACK 901
|
||||
|
||||
#ifdef DISABLE_COMPILE_CACHE
|
||||
#undef PREP
|
||||
#define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QPATHTOF(functions\DOUBLES(fnc,fncName).sqf)
|
||||
#else
|
||||
#undef PREP
|
||||
|
@ -21,13 +21,6 @@ if (!local _unit) exitWith {};
|
||||
|
||||
private _startTime = _unit getVariable [QGVAR(reviveStartTime), 0];
|
||||
|
||||
// Remove heartbeat
|
||||
if (GVAR(level) >= 2) then {
|
||||
if (_unit getVariable [QGVAR(heartRate), 60] > 0) then {
|
||||
_unit setVariable [QGVAR(heartRate), 0];
|
||||
};
|
||||
};
|
||||
|
||||
// If we are in revive state in a blown up vehicle, try to unload so that people can access the body
|
||||
if ((alive _unit) && {(vehicle _unit) != _unit} && {!alive (vehicle _unit)}) then {
|
||||
TRACE_2("Unloading", _unit, vehicle _unit);
|
||||
@ -52,5 +45,12 @@ if !(_unit getVariable [QGVAR(inReviveState), false]) exitwith {
|
||||
_unit setVariable [QGVAR(reviveStartTime), nil];
|
||||
};
|
||||
|
||||
// Remove heartbeat
|
||||
if (GVAR(level) >= 2) then {
|
||||
if (_unit getVariable [QGVAR(heartRate), 60] > 0) then {
|
||||
_unit setVariable [QGVAR(heartRate), 0];
|
||||
};
|
||||
};
|
||||
|
||||
// Schedule the loop to be executed again 1 sec later
|
||||
[DFUNC(reviveStateLoop), [_unit], 1] call CBA_fnc_waitAndExecute;
|
||||
|
@ -70,12 +70,6 @@ if(isNil "_target") then {
|
||||
};
|
||||
};
|
||||
|
||||
//ToDo: Add correct configs for new apex titans (in ace_javelin)
|
||||
if ((isNil "_target") && {(_weapon == "launch_B_Titan_short_tna_F") || {_weapon == "launch_O_Titan_short_ghex_F"}}) then {
|
||||
ACE_LOGWARNING_1("APEX Launcher [%1] not supported - Wait for ACE 3.6.1",_weapon);
|
||||
if (!isNull cursorObject) then {_target = cursorObject;}; //Attempt to give some kind of target or it will
|
||||
};
|
||||
|
||||
TRACE_4("Beginning ACE guidance system",_target,_ammo,_seekerType,_attackProfile);
|
||||
_args = [_this,
|
||||
[_shooter,
|
||||
|
BIN
addons/optionsmenu/gui/aceMenuIcon_ca.paa
Normal file
BIN
addons/optionsmenu/gui/aceMenuIcon_ca.paa
Normal file
Binary file not shown.
@ -12,6 +12,11 @@ class RscHTML;
|
||||
class RscText;
|
||||
|
||||
|
||||
class RscControlsGroupNoHScrollbars;
|
||||
class RscPicture;
|
||||
class RscButtonMenu;
|
||||
|
||||
|
||||
#ifndef ACE_DEFINE_H
|
||||
#define ACE_DEFINE_H
|
||||
|
||||
|
@ -108,62 +108,90 @@ class RscDisplayMain: RscStandardDisplay {
|
||||
idc = 80085;
|
||||
};
|
||||
|
||||
class ACE_news: RscControlsGroupNoScrollbars {
|
||||
idc = 80086;
|
||||
x = "safezoneX + safezoneW - (16 *(((safezoneW / safezoneH) min 1.2) / 40))";
|
||||
y = "safezoneY + (18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))";
|
||||
w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "4.95 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
class controls {
|
||||
class ACE_NewsTitle: RscText {
|
||||
text = CSTRING(aceNews);
|
||||
colorBackground[] = {(162/255),(28/255),(28/255),0.8};
|
||||
idc = -1;
|
||||
x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "15 *(((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
};
|
||||
class ACE_VersionInfo: RscText {
|
||||
idc = 68;
|
||||
x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "1.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
colorBackground[] = {0,0,0,0.5};
|
||||
};
|
||||
class ACE_NewsBackground: RscText {
|
||||
idc = -1;
|
||||
x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "2.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "5.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
colorBackground[] = {0,0,0,0.5};
|
||||
};
|
||||
class ACE_NewsText: RscHTML {
|
||||
idc = 69;
|
||||
x = "0.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "2.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "14 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "2.75 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
|
||||
class ACE_news_apex: RscControlsGroupNoHScrollbars {
|
||||
idc = 80090;
|
||||
x = "safezoneX + safezoneW - 10 * (pixelW * pixelGrid * 2) - (4 * pixelH)";
|
||||
y = "safezoneY + safezoneH - (3 * 2 + 1) * (pixelH * pixelGrid * 2) - 3 * (4 * pixelH)";
|
||||
w = "10 * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 2)";
|
||||
class Controls {
|
||||
class Background: RscPicture {
|
||||
idc = 80091;
|
||||
text = "\a3\Ui_f\data\GUI\Rsc\RscDisplayMain\gradientMods_ca.paa";
|
||||
colorText[] = {0,0,0,0.75};
|
||||
x = "(10 - 4 * 2) * (pixelW * pixelGrid * 2)";
|
||||
y = 0;
|
||||
w = "4 * 2 * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 2)";
|
||||
angle = 180;
|
||||
};
|
||||
class BackgroundIcon: RscPicture {
|
||||
idc = 80092;
|
||||
text = "\a3\Ui_f\data\GUI\Rsc\RscDisplayMain\backgroundModsIcon_ca.paa";
|
||||
colorText[] = {0,0,0,0.75};
|
||||
x = "(10 - 2 * 2) * (pixelW * pixelGrid * 2)";
|
||||
y = 0;
|
||||
w = "2 * 2 * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 2)";
|
||||
angle = 180;
|
||||
};
|
||||
class Icon: RscPicture {
|
||||
idc = 80093;
|
||||
text = QPATHTOF(gui\aceMenuIcon_ca.paa);
|
||||
colorText[] = {1,1,1,0.5};
|
||||
x = "(10 - 2) * (pixelW * pixelGrid * 2)";
|
||||
y = 0;
|
||||
w = "2 * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 2)";
|
||||
};
|
||||
class CurrentVersionInfo: RscText {
|
||||
idc = 80094;
|
||||
style = 1;
|
||||
text = "";
|
||||
sizeEx = "(pixelH * pixelGrid * 1.5)";
|
||||
font = "RobotoCondensedLight";
|
||||
shadow = 1;
|
||||
colorBackground[] = {0,0,0,0};
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = "(10 - 1.25 * 2) * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 1)";
|
||||
onLoad = "(_this select 0) ctrlenable false;";
|
||||
};
|
||||
class HTTPVersionInfo: RscHTML {
|
||||
idc = 80095;
|
||||
shadow = 0;
|
||||
class H1 {
|
||||
font = "RobotoCondensed";
|
||||
sizeEx = "(pixelH * pixelGrid * 1.5)";
|
||||
font = "RobotoCondensedLight";
|
||||
fontBold = "RobotoCondensedLight";
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
|
||||
align = "right";
|
||||
};
|
||||
class H2: H1 {
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
|
||||
font = "RobotoCondensedLight";
|
||||
sizeEx = "(pixelH * pixelGrid * 1.5)";
|
||||
};
|
||||
class P: H1 {
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
fontBold = "RobotoCondensedLight";
|
||||
sizeEx = "(pixelH * pixelGrid * 1.5)";
|
||||
};
|
||||
colorBold[] = {0.6,0.6,0.6,1};
|
||||
colorLink[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])",1};
|
||||
colorLinkActive[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])",1};
|
||||
x = 0;
|
||||
y = "2 * (pixelH * pixelGrid * 1)";
|
||||
w = "(10 - 1.25 * 2) * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 1)";
|
||||
onLoad = "(_this select 0) ctrlenable false;";
|
||||
};
|
||||
class Button: RscButtonMenu {
|
||||
idc = 80096;
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorBackgroundFocused[] = {0,0,0,0};
|
||||
colorBackground2[] = {0,0,0,0};
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = "10 * (pixelW * pixelGrid * 2)";
|
||||
h = "2 * (pixelH * pixelGrid * 2)";
|
||||
|
||||
tooltip = "Download latest and report issues:";
|
||||
url = "https://github.com/acemod/ACE3";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -15,17 +15,18 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (missionNamespace getVariable [QGVAR(newsLoaded), false]) exitWith {};
|
||||
GVAR(newsLoaded) = true;
|
||||
|
||||
//Need to load from profileNamespace because ace_settings might not be init if world = empty
|
||||
if (profileNamespace getVariable [QGVAR(showNewsOnMainMenu), true]) then {
|
||||
((_this select 0) displayCtrl 80086) ctrlShow true;
|
||||
((_this select 0) displayCtrl 80090) ctrlShow true;
|
||||
|
||||
private ["_version"];
|
||||
_version = getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr");
|
||||
((_this select 0) displayCtrl 68) ctrlSetText format ["Installed Version: %1", _version];
|
||||
((_this select 0) displayCtrl 69) htmlLoad "http://ace3mod.com/version.html";
|
||||
private _ace3VersionStr = (getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr")) select [0,5];
|
||||
((_this select 0) displayCtrl 80094) ctrlSetText format ["Version: %1", _ace3VersionStr];
|
||||
((_this select 0) displayCtrl 80095) htmlLoad "http://ace3mod.com/version.html";
|
||||
} else {
|
||||
((_this select 0) displayCtrl 80086) ctrlShow false;
|
||||
((_this select 0) displayCtrl 80090) ctrlShow false;
|
||||
};
|
||||
|
||||
/*
|
||||
Note: switch version.html to simpler format and right align
|
||||
<h1 align="right">Latest: {{site.ace.version.major}}.{{site.ace.version.minor}}.{{site.ace.version.patch}}</h1>
|
||||
*/
|
||||
|
@ -2,17 +2,6 @@ class CfgWeapons {
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
class ACE_SpareBarrel: ACE_ItemCore {
|
||||
displayname = CSTRING(SpareBarrelName);
|
||||
descriptionshort = CSTRING(SpareBarrelDescription);
|
||||
//model = "";
|
||||
picture = QPATHTOF(UI\spare_barrel_ca.paa);
|
||||
scope = 2;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 30;
|
||||
};
|
||||
};
|
||||
|
||||
class RifleCore;
|
||||
class Rifle: RifleCore {
|
||||
//Mean Rounds Between Stoppages (this will be scaled based on the barrel temp)
|
||||
|
@ -4,16 +4,4 @@ ADDON = false;
|
||||
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
if (isNil "CBA_fnc_getMagazineIndex") then {
|
||||
CBA_fnc_getMagazineIndex = {
|
||||
params [["_unit", objNull, [objNull]], ["_magazine", "", [""]]];
|
||||
|
||||
private _displayName = getText (configFile >> "CfgMagazines" >> _magazine >> "displayName");
|
||||
|
||||
if (_displayName isEqualTo "") exitWith {[]};
|
||||
|
||||
(magazinesDetail _unit select {_x find _displayName == 0}) apply {_x = _x splitString "[:]"; _x select (count _x - 1)};
|
||||
};
|
||||
};
|
||||
|
||||
ADDON = true;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Displays the weapon temperature
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Player <OBJECT>
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Weapon <STRING>
|
||||
*
|
||||
* Return Values:
|
||||
@ -16,11 +16,13 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_player", "_weapon"];
|
||||
TRACE_2("params",_player,_weapon);
|
||||
params ["_unit", "_weapon"];
|
||||
TRACE_2("params",_unit,_weapon);
|
||||
|
||||
// Get unit's weapon's temperature:
|
||||
private _tempVarName = format [QGVAR(%1_temp), _weapon];
|
||||
private _temperature = _unit getVariable [_tempVarName, 0];
|
||||
|
||||
// Calculate cool down of weapon since last shot
|
||||
private _temperature = [_player, _weapon, 0] call FUNC(updateTemperature);
|
||||
private _scaledTemperature = (_temperature / 1000) min 1;
|
||||
|
||||
private _color = [
|
||||
@ -41,6 +43,8 @@ for "_a" from (_count + 1) to 12 do {
|
||||
_string = _string + "|";
|
||||
};
|
||||
|
||||
TRACE_3("",_temperature,_color,_string);
|
||||
|
||||
_text = composeText [_text, [_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)];
|
||||
|
||||
private _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture");
|
||||
|
@ -50,4 +50,4 @@ _gunner setVariable [format [QGVAR(%1_temp), _weapon], _coolestTemp, true];
|
||||
[GVAR(storedSpareBarrels), _coolestMag, [_weaponTemp, CBA_missionTime, _barrelMass]] call CBA_fnc_hashSet;
|
||||
|
||||
// Send an event so the machines of the assistant and gunner can show the hint
|
||||
[QGVAR(showWeaponTemperature), _gunner], [_gunner, _weapon], [_assistant] call CBA_fnc_targetEvent;
|
||||
[QGVAR(showWeaponTemperature), [_gunner, _weapon], [_assistant, _gunner]] call CBA_fnc_targetEvent;
|
||||
|
@ -52,21 +52,13 @@
|
||||
#define MACRO_CONNECT_ACTIONS \
|
||||
class ACE_Actions { \
|
||||
class ACE_MainActions { \
|
||||
class GVAR(Refuel) { \
|
||||
displayName = CSTRING(Refuel); \
|
||||
class GVAR(Connect) { \
|
||||
displayName = CSTRING(Connect); \
|
||||
distance = REFUEL_ACTION_DISTANCE; \
|
||||
condition = "true"; \
|
||||
statement = ""; \
|
||||
showDisabled = 0; \
|
||||
priority = 2; \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canConnectNozzle)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(connectNozzle)); \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
class GVAR(Connect) { \
|
||||
displayName = CSTRING(Connect); \
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canConnectNozzle)); \
|
||||
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(connectNozzle)); \
|
||||
exceptions[] = {"isNotInside"}; \
|
||||
icon = QPATHTOF(ui\icon_refuel_interact.paa); \
|
||||
}; \
|
||||
exceptions[] = {"isNotInside"}; \
|
||||
}; \
|
||||
}; \
|
||||
};
|
||||
@ -76,6 +68,7 @@
|
||||
class ACE_MainActions { \
|
||||
displayName = CSTRING(Refuel); \
|
||||
distance = REFUEL_ACTION_DISTANCE; \
|
||||
position = "[0,-0.025,0.125]"; \
|
||||
condition = "true"; \
|
||||
statement = ""; \
|
||||
showDisabled = 0; \
|
||||
@ -319,12 +312,17 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
class Van_01_fuel_base_F: Van_01_base_F {
|
||||
transportFuel = 0; //1k
|
||||
MACRO_REFUEL_ACTIONS
|
||||
GVAR(hooks)[] = {{0.38,-3.17,-.7},{-0.41,-3.17,-.7}};
|
||||
GVAR(fuelCargo) = 2000;
|
||||
};
|
||||
|
||||
class C_Van_01_fuel_F: Van_01_fuel_base_F {
|
||||
transportFuel = 0; //1k
|
||||
};
|
||||
class I_G_Van_01_fuel_F: Van_01_fuel_base_F {
|
||||
transportFuel = 0; //1k
|
||||
};
|
||||
|
||||
class Tank_F: Tank {
|
||||
GVAR(fuelCapacity) = 1200;
|
||||
};
|
||||
|
@ -9,3 +9,16 @@ if (isServer) then {
|
||||
[QGVAR(resetLocal), {
|
||||
_this call FUNC(resetLocal);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
diag_log text format ["[ACE-refuel] Showing CfgVehicles with vanilla transportFuel"];
|
||||
private _fuelTrucks = configProperties [configFile >> "CfgVehicles", "(isClass _x) && {(getNumber (_x >> 'transportFuel')) > 0}", true];
|
||||
{
|
||||
if ((configName _x) isKindOf "Car") then {
|
||||
diag_log text format ["Car [%1] needs config [fuel: %2]", configName _x, getNumber (_x >> 'transportFuel')];
|
||||
} else {
|
||||
diag_log text format ["Non-car? [%1] needs config [fuel: %2]", configName _x, getNumber (_x >> 'transportFuel')];
|
||||
};
|
||||
} forEach _fuelTrucks;
|
||||
#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
class ACE_UI {
|
||||
class ammoCount {
|
||||
class conditions {
|
||||
ADDON = "false";
|
||||
ADDON = "(false)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -25,5 +25,5 @@ class ACE_newEvents {
|
||||
setWheelHitPointDamage = QGVAR(setWheelHitPointDamage);
|
||||
setVehicleHitPointDamage = QGVAR(setVehicleHitPointDamage);
|
||||
setVehicleDamage = QGVAR(setVehicleDamage);
|
||||
AddCargoByClass = "ace_addCargoByClass";
|
||||
AddCargoByClass = "ace_addCargo";
|
||||
};
|
||||
|
@ -33,4 +33,4 @@ if (!EGVAR(common,settingsInitFinished)) exitWith {
|
||||
if (!_force && !GVAR(addSpareParts)) exitWith {};
|
||||
|
||||
// Load
|
||||
["ace_addCargoByClass", [_part, _vehicle, _amount]] call CBA_fnc_localEvent;
|
||||
["ace_addCargo", [_part, _vehicle, _amount]] call CBA_fnc_localEvent;
|
||||
|
@ -1,49 +1,10 @@
|
||||
class Mode_SemiAuto;
|
||||
class Mode_Burst;
|
||||
class Mode_FullAuto;
|
||||
class MuzzleSlot;
|
||||
|
||||
// config inheritance of weapon slot info v1.32
|
||||
class SlotInfo;
|
||||
class CowsSlot: SlotInfo {};
|
||||
class PointerSlot: SlotInfo {
|
||||
//compatibleItems[] = {"acc_flashlight","acc_pointer_IR", "ACE_acc_flashlight_tls"};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
|
||||
// config inheritance of weapon slot info v1.32 for launchers
|
||||
class Launcher;
|
||||
class Launcher_Base_F: Launcher {
|
||||
class WeaponSlotsInfo {};
|
||||
};
|
||||
|
||||
// config inheritance of weapon slot info v1.32 for assault rifles
|
||||
class RifleCore;
|
||||
class Rifle: RifleCore {
|
||||
class WeaponSlotsInfo {
|
||||
class MuzzleSlot: MuzzleSlot {};
|
||||
class CowsSlot: CowsSlot {};
|
||||
class PointerSlot: PointerSlot {};
|
||||
};
|
||||
};
|
||||
class Rifle_Base_F: Rifle {};
|
||||
class Rifle_Long_Base_F: Rifle_Base_F {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {};
|
||||
};
|
||||
|
||||
// config inheritance of weapon slot info v1.32 for handguns
|
||||
class PistolCore;
|
||||
class Pistol: PistolCore {
|
||||
class WeaponSlotsInfo {
|
||||
class CowsSlot: SlotInfo {};
|
||||
};
|
||||
};
|
||||
class Pistol_Base_F: Pistol {
|
||||
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||
class MuzzleSlot: SlotInfo {};
|
||||
};
|
||||
};
|
||||
class Rifle_Base_F;
|
||||
class Rifle_Long_Base_F;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//////////// SMALL ARMS WEAPONS ///////////////////////////////////////////////
|
||||
|
@ -70,8 +70,8 @@ class CfgVehicles {
|
||||
model = QPATHTOF(data\ace_spottingscope.p3d);
|
||||
mapSize = 0.5;
|
||||
transportSoldier = 0;
|
||||
getInAction = "GetInLow";
|
||||
getOutAction = "GetOutLow";
|
||||
getInAction = "PlayerProne";
|
||||
getOutAction = "PlayerProne";
|
||||
editorSubcategory = "EdSubcat_Turrets";
|
||||
|
||||
class Turrets: Turrets {
|
||||
@ -115,8 +115,8 @@ class CfgVehicles {
|
||||
gunnerOutOpticsShowCursor = 0;
|
||||
gunnerOpticsShowCursor = 0;
|
||||
gunnerAction = "ACE_SpottingScope";
|
||||
gunnerGetInAction = "GetInLow";
|
||||
gunnerGetOutAction = "GetOutLow";
|
||||
gunnerGetInAction = "PlayerProne";
|
||||
gunnerGetOutAction = "PlayerProne";
|
||||
gunnerForceOptics = 0;
|
||||
ejectDeadGunner = 0;
|
||||
turretInfoType = QGVAR(RscUnitInfo);
|
||||
|
Binary file not shown.
@ -83,7 +83,7 @@ class ACE_Settings {
|
||||
displayName = CSTRING(AmmoCount);
|
||||
description = CSTRING(RequiresSoldierVehicleWeaponInfo);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
value = 0;
|
||||
isClientSettable = 1;
|
||||
};
|
||||
class GVAR(magCount) {
|
||||
|
@ -73,7 +73,7 @@ class CfgVehicles {
|
||||
displayName = CSTRING(AmmoCount);
|
||||
description = CSTRING(RequiresSoldierVehicleWeaponInfo);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
defaultValue = 0;
|
||||
};
|
||||
class magCount {
|
||||
displayName = CSTRING(MagCount);
|
||||
|
@ -58,5 +58,5 @@ class ACE_newEvents {
|
||||
zeusUnitAssigned = QGVAR(zeusUnitAssigned);
|
||||
SetSurrendered = QEGVAR(captives,setSurrendered);
|
||||
SetHandcuffed = QEGVAR(captives,setHandcuffed);
|
||||
AddCargoByClass = "ace_addCargoByClass";
|
||||
AddCargoByClass = "ace_addCargo";
|
||||
};
|
||||
|
@ -32,7 +32,7 @@ if !(["ace_cargo"] call EFUNC(common,isModLoaded) && ["ace_repair"] call EFUNC(c
|
||||
if (getNumber (configFile >> "CfgVehicles" >> "ACE_Track" >> QEGVAR(cargo,size)) > [_mouseOverUnit] call EFUNC(cargo,getCargoSpaceLeft)) then {
|
||||
[LSTRING(OnlyEnoughCargoSpace)] call EFUNC(common,displayTextStructured);
|
||||
} else {
|
||||
["ace_addCargoByClass", ["ACE_Track", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent;
|
||||
["ace_addCargo", ["ACE_Track", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -32,7 +32,7 @@ if !(["ace_cargo"] call EFUNC(common,isModLoaded) && ["ace_repair"] call EFUNC(c
|
||||
if (getNumber (configFile >> "CfgVehicles" >> "ACE_Wheel" >> QEGVAR(cargo,size)) > [_mouseOverUnit] call EFUNC(cargo,getCargoSpaceLeft)) then {
|
||||
[LSTRING(OnlyEnoughCargoSpace)] call EFUNC(common,displayTextStructured);
|
||||
} else {
|
||||
["ace_addCargoByClass", ["ACE_Wheel", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent;
|
||||
["ace_addCargo", ["ACE_Wheel", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user