Merge branch 'master' into release-3.14.0

This commit is contained in:
PabstMirror
2021-10-18 19:17:49 -05:00
202 changed files with 1595 additions and 1414 deletions

82
.github/workflows/pboproject.yml vendored Normal file
View File

@ -0,0 +1,82 @@
name: pboProject
on:
push:
branches:
- master
pull_request_target:
jobs:
pboproject:
runs-on: windows-2019
steps:
- name: Install Arma 3 Tools
uses: arma-actions/arma3-tools@master
with:
toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }}
- name: Install Mikero Tools
uses: arma-actions/mikero-tools@2021-04-10
- name: Download game data
run: |
Invoke-WebRequest "$env:ARMA3_DATA_URL" -OutFile arma3.zip
Invoke-WebRequest "$env:RHSAFRF_URL" -OutFile rhsafrf.zip
Invoke-WebRequest "$env:RHSGREF_URL" -OutFile rhsgref.zip
Invoke-WebRequest "$env:RHSSAF_URL" -OutFile rhssaf.zip
Invoke-WebRequest "$env:RHSUSF_URL" -OutFile rhsusf.zip
$files = @("arma3.zip", "rhsafrf.zip", "rhsgref.zip", "rhssaf.zip", "rhsusf.zip")
ForEach ($file in $files) {
Extract-7Zip -Path $file -DestinationPath .
Remove-Item $file
}
env:
ARMA3_DATA_URL: ${{ secrets.ARMA3_DATA_URL }}
RHSAFRF_URL: ${{ secrets.RHSAFRF_URL }}
RHSGREF_URL: ${{ secrets.RHSGREF_URL }}
RHSSAF_URL: ${{ secrets.RHSSAF_URL }}
RHSUSF_URL: ${{ secrets.RHSUSF_URL }}
- name: Checkout CBA A3
uses: actions/checkout@v2
with:
path: x\cba
ref: master
repository: CBATeam/CBA_A3.git
- name: Checkout ACE3
uses: actions/checkout@v2
with:
path: z\ace
persist-credentials: false
- name: Checkout pull request
uses: actions/checkout@v2
if: ${{ github.event_name == 'pull_request_target' }}
with:
path: pullrequest
ref: 'refs/pull/${{ github.event.number }}/merge'
- name: Replace addons with pull request addons
if: ${{ github.event_name == 'pull_request_target' }}
run: |
rm -r z\ace\addons\
rm -r z\ace\optionals\
xcopy /e /h /q pullrequest\addons z\ace\addons\
xcopy /e /h /q pullrequest\optionals z\ace\optionals\
- name: Setup build environment
run: |
subst P: .
pboproject -P
xcopy /e /h /q z\ace\tools\pDummies\A3\ui_f_enoch a3\ui_f_enoch\
xcopy /e /h /q z\ace\tools\pDummies\gm gm\
xcopy /e /h /q z\ace\tools\pDummies\vn vn\
- name: Build
run: py P:\z\ace\tools\make.py ci
env:
PYTHONUNBUFFERED: 1
- name: Archive logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: logs
path: temp/*.log
- name: Archive @ace
uses: actions/upload-artifact@v2
with:
name: '@ace3-${{ github.sha }}'
path: z\ace\release\@ace

View File

@ -2761,15 +2761,19 @@
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_mag_Name">
<English>6.5x47 mm 30Rnd Sand Mag (HPBT Scenar)</English>
<Japanese>6.5x47 mm 30発入り サンド 弾倉 (HPBT Scenar)</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_msbs_mag_Name">
<English>6.5x47 mm 30Rnd Promet Mag (HPBT Scenar)</English>
<Japanese>6.5x47 mm 30発入り プロメット 弾倉 (HPBT Scenar)</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_black_mag_Name">
<English>6.5x47 mm 30Rnd Black Mag (HPBT Scenar)</English>
<Japanese>6.5x47 mm 30発入り ブラック 弾倉 (HPBT Scenar)</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_khaki_mag_Name">
<English>6.5x47 mm 30Rnd Khaki Mag (HPBT Scenar)</English>
<Japanese>6.5x47 mm 30発入り カーキ 弾倉 (HPBT Scenar)</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_mag_NameShort">
<English>6.5 mm Lapua</English>
@ -2824,15 +2828,19 @@
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_mag_Name">
<English>6.5 mm Creedmor 30Rnd Sand Mag</English>
<Japanese>6.5 mm クリードモア 30発入り サンド 弾倉</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_msbs_mag_Name">
<English>6.5 mm Creedmor 30Rnd Promet Mag</English>
<Japanese>6.5 mm クリードモア 30発入り プロメット 弾倉</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_black_mag_Name">
<English>6.5 mm Creedmor 30Rnd Black Mag</English>
<Japanese>6.5 mm クリードモア 30発入り ブラック 弾倉</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_khaki_mag_Name">
<English>6.5 mm Creedmor 30Rnd Khaki Mag</English>
<Japanese>6.5 mm クリードモア 30発入り カーキ 弾倉</Japanese>
</Key>
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_mag_NameShort">
<English>6.5 mm CM</English>

View File

@ -90,6 +90,7 @@ GVAR(vehicleAction) = [
GVAR(objectActions) = [
[QGVAR(renameObject), LELSTRING(common,rename), "", //TODO: add icon, maybe a pencil couldn't find it before.
{
//IGNORE_PRIVATE_WARNING ["_target", "_player"];
GVAR(interactionVehicle) = _target;
createDialog QGVAR(renameMenu);
},

View File

@ -98,7 +98,7 @@ if (_showHint) then {
[
[
LSTRING(UnloadedItem),
[_itemObject, true] call FUNC(getNameItem),
[_object, true] call FUNC(getNameItem),
getText (configOf _vehicle >> "displayName")
],
3

View File

@ -35,18 +35,23 @@
</Key>
<Key ID="STR_ACE_Cargo_renamedObject">
<English>Renamed to:&lt;br/&gt;%1</English>
<Japanese>名前を次に変更:&lt;br/&gt;%1</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_clearedCustomName">
<English>Custom name has been cleared.</English>
<Japanese>カスタム名が削除されました。</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_renameObjectUI">
<English>Set New Name:</English>
<Japanese>新しい名前:</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_ModuleSettings_enableRename">
<English>Enable Rename Action</English>
<Japanese>名前変更を有効化</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_ModuleSettings_enableRename_Description">
<English>Enables the rename action for renamable objects.</English>
<Japanese>名前変更が可能なオブジェクトに対して、名前変更動作を有効化します。</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_openMenu">
<English>Cargo</English>
@ -256,9 +261,11 @@
</Key>
<Key ID="STR_ACE_Cargo_customName_edenName">
<English>Custom Name</English>
<Japanese>カスタム名</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_customName_edenDesc">
<English>Set a custom cargo name used in the cargo interface.</English>
<Japanese>カーゴ欄で使われるカスタム名を設定します。</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_space_edenName">
<English>Cargo Space</English>
@ -411,10 +418,12 @@
<Key ID="STR_ACE_Cargo_openAfterUnload">
<English>Reopen Cargo Menu</English>
<Turkish>Kargo Menüsünü Tekrar Aç</Turkish>
<Japanese>カーゴ メニューを再度開く</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_openAfterUnload_description">
<English>Reopen the Cargo Menu after successful unload.</English>
<Turkish>Başarılı bir yük indirmeden sonra Kargo Menüsünü tekrar göster.</Turkish>
<Japanese>カーゴを降ろした後に再びカーゴ メニューを開きます。</Japanese>
</Key>
</Package>
</Project>

View File

@ -121,6 +121,7 @@ class CfgVehicles {
class Land_HelipadEmpty_F;
class ACE_LogicDummy: Land_HelipadEmpty_F {
scope = 1;
scopeCurator = 0;
SLX_XEH_DISABLED = 1;
author = CSTRING(ACETeam);
class EventHandlers {

View File

@ -72,4 +72,5 @@ class ACE_Extensions {};
class ACE_Tests {
vehicleTransportInventory = QPATHTOF(dev\test_vehicleInventory.sqf);
mapConfigs = QPATHTOF(dev\test_mapConfigs.sqf);
cfgPatches = QPATHTOF(dev\test_cfgPatches.sqf);
};

View File

@ -92,8 +92,7 @@ class ACE_gui_backgroundBase {
text = "";
sizeEx = 0.032;
};
class ACE_gui_editBase
{
class ACE_gui_editBase {
type = 2;
x = 0;
y = 0;
@ -379,8 +378,7 @@ class ACE_gui_comboBoxBase: RscCombo {
soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1};
soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1};
maxHistoryDelay = 1.0;
class ScrollBar
{
class ScrollBar {
color[] = {0.3,0.3,0.3,0.6};
colorActive[] = {0.3,0.3,0.3,1};
colorDisabled[] = {0.3,0.3,0.3,0.3};
@ -485,8 +483,7 @@ onMouseButtonDblClick = "";
color[] = {0.30, 0.10, 0.90, 1.00};
size = 50;
};
class Legend
{
class Legend {
x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)";
y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
@ -496,8 +493,7 @@ onMouseButtonDblClick = "";
colorBackground[] = {1,1,1,0.5};
color[] = {0,0,0,1};
};
class Task
{
class Task {
icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa";
iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa";
iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa";
@ -513,8 +509,7 @@ onMouseButtonDblClick = "";
coefMin = 1;
coefMax = 1;
};
class Waypoint
{
class Waypoint {
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
color[] = {0,0,0,1};
size = 20;
@ -522,8 +517,7 @@ onMouseButtonDblClick = "";
coefMin = 0.900000;
coefMax = 4;
};
class WaypointCompleted
{
class WaypointCompleted {
icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa";
color[] = {0,0,0,1};
size = 20;
@ -531,8 +525,7 @@ onMouseButtonDblClick = "";
coefMin = 0.900000;
coefMax = 4;
};
class CustomMark
{
class CustomMark {
icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa";
size = 24;
importance = 1;
@ -540,8 +533,7 @@ onMouseButtonDblClick = "";
coefMax = 1;
color[] = {0,0,0,1};
};
class Command
{
class Command {
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
size = 18;
importance = 1;
@ -549,8 +541,7 @@ onMouseButtonDblClick = "";
coefMax = 1;
color[] = {1,1,1,1};
};
class Bush
{
class Bush {
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
color[] = {0.45,0.64,0.33,0.4};
size = "14/2";
@ -558,8 +549,7 @@ onMouseButtonDblClick = "";
coefMin = 0.25;
coefMax = 4;
};
class Rock
{
class Rock {
icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa";
color[] = {0.1,0.1,0.1,0.8};
size = 12;
@ -567,8 +557,7 @@ onMouseButtonDblClick = "";
coefMin = 0.25;
coefMax = 4;
};
class SmallTree
{
class SmallTree {
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
color[] = {0.45,0.64,0.33,0.4};
size = 12;
@ -576,8 +565,7 @@ onMouseButtonDblClick = "";
coefMin = 0.25;
coefMax = 4;
};
class Tree
{
class Tree {
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
color[] = {0.45,0.64,0.33,0.4};
size = 12;
@ -585,8 +573,7 @@ onMouseButtonDblClick = "";
coefMin = 0.25;
coefMax = 4;
};
class busstop
{
class busstop {
icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa";
size = 24;
importance = 1;
@ -594,8 +581,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class fuelstation
{
class fuelstation {
icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa";
size = 24;
importance = 1;
@ -603,8 +589,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class hospital
{
class hospital {
icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa";
size = 24;
importance = 1;
@ -612,8 +597,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class church
{
class church {
icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa";
size = 24;
importance = 1;
@ -621,8 +605,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class lighthouse
{
class lighthouse {
icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa";
size = 24;
importance = 1;
@ -630,8 +613,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class power
{
class power {
icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa";
size = 24;
importance = 1;
@ -639,8 +621,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class powersolar
{
class powersolar {
icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa";
size = 24;
importance = 1;
@ -648,8 +629,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class powerwave
{
class powerwave {
icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa";
size = 24;
importance = 1;
@ -657,8 +637,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class powerwind
{
class powerwind {
icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa";
size = 24;
importance = 1;
@ -666,8 +645,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class quay
{
class quay {
icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa";
size = 24;
importance = 1;
@ -675,8 +653,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class shipwreck
{
class shipwreck {
icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa";
size = 24;
importance = 1;
@ -684,8 +661,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class transmitter
{
class transmitter {
icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa";
size = 24;
importance = 1;
@ -693,8 +669,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class watertower
{
class watertower {
icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa";
size = 24;
importance = 1;
@ -702,8 +677,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {1,1,1,1};
};
class Cross
{
class Cross {
icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa";
size = 24;
importance = 1;
@ -711,8 +685,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {0,0,0,1};
};
class Chapel
{
class Chapel {
icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa";
size = 24;
importance = 1;
@ -720,8 +693,7 @@ onMouseButtonDblClick = "";
coefMax = 1.0;
color[] = {0,0,0,1};
};
class Bunker
{
class Bunker {
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
size = 14;
importance = "1.5 * 14 * 0.05";
@ -729,8 +701,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class Fortress
{
class Fortress {
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
size = 16;
importance = "2 * 16 * 0.05";
@ -738,8 +709,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class Fountain
{
class Fountain {
icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa";
size = 11;
importance = "1 * 12 * 0.05";
@ -747,8 +717,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class Ruin
{
class Ruin {
icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa";
size = 16;
importance = "1.2 * 16 * 0.05";
@ -756,8 +725,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class Stack
{
class Stack {
icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa";
size = 20;
importance = "2 * 16 * 0.05";
@ -765,8 +733,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class Tourism
{
class Tourism {
icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa";
size = 16;
importance = "1 * 16 * 0.05";
@ -774,8 +741,7 @@ onMouseButtonDblClick = "";
coefMax = 4;
color[] = {0,0,0,1};
};
class ViewTower
{
class ViewTower {
icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa";
size = 16;
importance = "2.5 * 16 * 0.05";

View File

@ -0,0 +1,72 @@
#include "\z\ace\addons\common\script_component.hpp"
// PabstMirror
// ["cfgPatches"] call ace_common_fnc_runTests;
diag_log text format ["--- Checking CfgPatches --- "];
private _testPass = true;
// All ace cfgPatches
private _allPatches = "(configName _x) select [0,3] == 'ace'" configClasses (configFile >> "CfgPatches");
// Get all units[]
private _allUnits = [];
{
_allUnits append ((getArray (_x >> "units")) apply { toLower _x });
} forEach _allPatches;
{
private _class = configFile >> "CfgVehicles" >> _x;
if (isNull _class) then {
WARNING_1("in units[] but null - %1", _x);
_testPass = false;
} else {
// if (((getNumber (_class >> "scope")) != 2) && {((getNumber (_class >> "scopeCurator")) != 2)}) then {
// WARNING_2("in units[] but not public - %1 from %2", configName _class, configSourceMod _class);
// _testPass = false;
// };
};
} forEach _allUnits;
// Get all weapons[]
private _allWeapons = [];
{
_allWeapons append ((getArray (_x >> "weapons")) apply { toLower _x });
} forEach _allPatches;
{
private _class = configFile >> "CfgWeapons" >> _x;
if (isNull _class) then {
WARNING_1("in weapons[] but null - %1", _x);
_testPass = false;
} else {
// if (((getNumber (_class >> "scope")) != 2) && {((getNumber (_class >> "scopeCurator")) != 2)}) then {
// WARNING_2("in weapons[] but not public - %1 from %2", configName _class, configSourceMod _class);
// _testPass = false;
// };
};
} forEach _allWeapons;
// Check if all public vics are defined in a cfgPatch
private _vics = "(configName _x) select [0,3] == 'ace'" configClasses (configFile >> "CfgVehicles");
{
if (((getNumber (_x >> "scope")) == 2) || {((getNumber (_x >> "scopeCurator")) == 2)}) then {
if (!((toLower configName _x) in _allUnits)) then {
WARNING_2("Not in any units[] - %1 from %2", configName _x, configSourceMod _x);
_testPass = false;
};
};
} forEach _vics;
// Check if all public weapons are defined in a cfgPatch
private _weapons = "(configName _x) select [0,3] == 'ace'" configClasses (configFile >> "CfgWeapons");
{
private _type = toLower configName _x;
if (((getNumber (_x >> "scope")) == 2) || {((getNumber (_x >> "scopeCurator")) == 2)}) then {
if (!((toLower configName _x) in _allWeapons)) then {
WARNING_2("Not in any weapons[] - %1 from %2", configName _x, configSourceMod _x);
_testPass = false;
};
};
} forEach _weapons;
_testPass

View File

@ -14,7 +14,7 @@ private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x)
private _glassesConfig = configFile >> "CfgGlasses" >> _name;
if (((!isClass _weaponConfig) || {(getNumber (_weaponConfig >> "type")) in [1,2,4]}) && {!isClass _glassesConfig}) then {
diag_log text format ["%1 -> TransportItems -> %2 = Bad", _vehType, _name];
_testPass = false;
if ("ace" in toLower (_vehType + _name)) then { _testPass = false; };
};
};
} forEach (configProperties [_x >> "TransportItems", "isClass _x", true]);
@ -23,7 +23,7 @@ private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x)
private _weaponConfig = configFile >> "CfgWeapons" >> _name;
if ((!isClass _weaponConfig) || {!((getNumber (_weaponConfig >> "type")) in [1,2,4])}) then {
diag_log text format ["%1 -> TransportWeapons -> %2 = Bad", _vehType, _name];
_testPass = false;
if ("ace" in toLower (_vehType + _name)) then { _testPass = false; };
};
} forEach (configProperties [_x >> "TransportWeapons", "isClass _x", true]);
{
@ -31,7 +31,7 @@ private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x)
private _magConfig = configFile >> "CfgMagazines" >> _name;
if ((!isClass _magConfig)) then {
diag_log text format ["%1 -> TransportMagazines -> %2 = Bad", _vehType, _name];
_testPass = false;
if ("ace" in toLower (_vehType + _name)) then { _testPass = false; };
};
} forEach (configProperties [_x >> "TransportMagazines", "isClass _x", true]);
{
@ -39,7 +39,7 @@ private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x)
private _vehConfig = configFile >> "CfgVehicles" >> _name;
if ((!isClass _vehConfig)) then {
diag_log text format ["%1 -> TransportBackpacks -> %2 = Bad", _vehType, _name];
_testPass = false;
if ("ace" in toLower (_vehType + _name)) then { _testPass = false; };
};
} forEach (configProperties [_x >> "TransportBackpacks", "isClass _x", true]);
} forEach _vehicles;

View File

@ -21,10 +21,11 @@ params ["_unit", "_target", ["_exceptions", []]];
_exceptions = _exceptions apply {toLower _x};
private _owner = _target getVariable [QGVAR(owner), objNull];
// exit if the target is not free to interact
if (!isNull _owner && {_unit != _owner}) exitWith {false};
if ((!isNull _target) && {
private _owner = _target getVariable [QGVAR(owner), objNull];
(!isNull _owner) && {_unit != _owner}}
) exitWith {false};
// check general conditions
private _conditions = missionNamespace getVariable [QGVAR(InteractionConditions), [[],[]]];

View File

@ -1471,18 +1471,23 @@
<Key ID="STR_ACE_Common_both">
<English>Both</English>
<Turkish>İkisi de</Turkish>
<Japanese>両方</Japanese>
</Key>
<Key ID="STR_ACE_Common_progressBarInfoName">
<English>Additional progress bar information</English>
<Japanese>プログレス バー詳細情報</Japanese>
</Key>
<Key ID="STR_ACE_Common_progressBarInfoDesc">
<English>Controls extra information shown in progress bar.</English>
<Japanese>プログレス バーへ表示される情報量を決定します。</Japanese>
</Key>
<Key ID="STR_ACE_Common_progressBarInfoPercentage">
<English>Percentage</English>
<Japanese>パーセンテージ</Japanese>
</Key>
<Key ID="STR_ACE_Common_progressBarInfoTime">
<English>Time remaining</English>
<Japanese>残り時間</Japanese>
</Key>
<Key ID="STR_ACE_Common_None">
<English>None</English>
@ -1518,6 +1523,7 @@
</Key>
<Key ID="STR_ACE_Common_TimeLeft">
<English>Time left: %1s</English>
<Japanese>残り時間: %1 秒</Japanese>
</Key>
<Key ID="STR_ACE_Common_LocationsBoostTraining_DisplayName">
<English>Locations Boost Training</English>

View File

@ -1,5 +1,5 @@
PREP(handleDamage);
PREP(handleDamageBox);
PREP(engineFire);
PREP(cookOff);
PREP(smoke);

View File

@ -25,7 +25,7 @@ GVAR(cacheTankDuplicates) = call CBA_fnc_createNamespace;
["ReammoBox_F", "init", {
(_this select 0) addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enableAmmoCookoff), GVAR(enableAmmobox)]) then {
_this call FUNC(handleDamage);
_this call FUNC(handleDamageBox);
};
}];
}, nil, nil, true] call CBA_fnc_addClassEventHandler;

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {QGVAR(Sound),QGVAR(Turret_MBT_01),QGVAR(Turret_MBT_02)};
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};

View File

@ -1,7 +1,7 @@
#include "script_component.hpp"
/*
* Author: KoffeinFlummi, commy2
* Handles all incoming damage for tanks (including wheeled APCs).
* Handles all incoming damage for boxi
*
* Arguments:
* HandleDamage EH <ARRAY>
@ -10,7 +10,7 @@
* Damage to be inflicted. <NUMBER>
*
* Example:
* _this call ace_cookoff_fnc_handleDamage
* _this call ace_cookoff_fnc_handleDamageBox
*
* Public: No
*/
@ -23,13 +23,6 @@ if (damage _vehicle >= 1) exitWith {};
// If cookoff is disabled exit
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] in [0, false]) exitWith {};
// Check for players and exit if none found and the enable for players only setting is true
if (
_vehicle getVariable [QGVAR(enable), GVAR(enable)] isEqualTo 1
&& {fullCrew [_vehicle, "", false] findIf {isPlayer (_x select 0)} == -1}
&& {_simulationType isNotEqualTo "box"}
) exitWith {};
// get hitpoint name
private _hitpoint = "#structural";

View File

@ -162,9 +162,11 @@
</Key>
<Key ID="STR_ACE_CookOff_enableFire_name">
<English>Enable Cook-Off Vehicle Fire</English>
<Japanese>誘爆火災を有効化</Japanese>
</Key>
<Key ID="STR_ACE_CookOff_enableFire_tooltip">
<English>Whether or not vehicles will catch on fire during cook-off</English>
<Japanese>誘爆により車両が炎上するかどうかを設定します。</Japanese>
</Key>
</Package>
</Project>

View File

@ -4,8 +4,8 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {"ace_csw_carryTripod", "ace_csw_staticATWeapon"};
units[] = {QGVAR(m3Tripod),QGVAR(m3TripodLow),QGVAR(kordTripod),QGVAR(kordTripodLow),QGVAR(sag30Tripod),QGVAR(m220Tripod),QGVAR(spg9Tripod),QGVAR(mortarBaseplate)};
weapons[] = {QGVAR(m3CarryTripod),QGVAR(m3CarryTripodLow),QGVAR(kordCarryTripod),QGVAR(kordCarryTripodLow),QGVAR(m220CarryTripod),QGVAR(spg9CarryTripod),QGVAR(sag30CarryTripod),QGVAR(carryMortarBaseplate),QGVAR(staticATCarry),QGVAR(staticAACarry),QGVAR(staticHMGCarry),QGVAR(staticM2ShieldCarry),QGVAR(staticGMGCarry),QGVAR(staticMortarCarry)};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);

View File

@ -4,7 +4,7 @@ class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {"ACE_launch_NLAW_loaded_F","ACE_launch_NLAW_used_F"};
weapons[] = {"ACE_launch_NLAW_ready_F","ACE_launch_NLAW_used_F"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author = ECSTRING(common,ACETeam);

View File

@ -4,7 +4,7 @@ class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {"ACE_fastropingSupplyCrate"};
weapons[] = {"ACE_rope12","ACE_rope15","ACE_rope18","ACE_rope27","ACE_rope36"};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction","ace_logistics_rope"};
author = ECSTRING(common,ACETeam);

View File

@ -167,6 +167,7 @@
<Czech>Připravit 3m lana</Czech>
<Turkish>3m halat sal</Turkish>
<Spanish>Desplegar cuerdas de 3m</Spanish>
<Japanese>3m ロープを展開</Japanese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes6">
<English>Deploy 6m ropes</English>
@ -179,6 +180,7 @@
<Czech>Připravit 6m lana</Czech>
<Turkish>6m halat sal</Turkish>
<Spanish>Desplegar cuerdas de 6m</Spanish>
<Japanese>6m ロープを展開</Japanese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes12">
<English>Deploy 12m ropes</English>

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -3,3 +3,11 @@ ace_field_rations
Provides a survival style, hunger and thirst system.
Adds consumable items such as MREs.
## ACEX Conversion - things still using acex prefix
- All settings
- CfgUIGrids Entry
- CfgWeapon Configs (e.g. `acex_field_rations_thirstQuenched`)
- CfgVehicles Configs (e.g. `acex_field_rations_waterSupply`)
- Events (`acex_rationConsumed`, `acex_rationRefilled`)
- Player setVars for thirst/hunger (e.g. `player getVariable "acex_field_rations_thirst"`)

View File

@ -21,7 +21,7 @@ if !(hasInterface) exitWith {};
QPATHTOF(ui\icon_water_tap.paa),
{true},
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
alive _waterSource
&& {XGVAR(waterSourceActions) != 0}
@ -29,7 +29,7 @@ if !(hasInterface) exitWith {};
&& {[_player, _waterSource] call EFUNC(common,canInteractWith)}
},
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
[_waterSource, _player] call FUNC(getRefillChildren);
},
[],
@ -44,11 +44,11 @@ if !(hasInterface) exitWith {};
LLSTRING(CheckWater),
QPATHTOF(ui\icon_water_tap.paa),
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
[_player, _waterSource] call FUNC(checkWater);
},
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
(_waterSource call FUNC(getRemainingWater)) != REFILL_WATER_INFINITE
}
] call EFUNC(interact_menu,createAction),
@ -57,11 +57,11 @@ if !(hasInterface) exitWith {};
LLSTRING(DrinkFromSource),
QPATHTOF(ui\icon_water_tap.paa),
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
[_player, _waterSource] call FUNC(drinkFromSource);
},
{
private _waterSource = _target getVariable [QXGVAR(waterSource), objNull];
private _waterSource = _target getVariable [QGVAR(waterSource), objNull];
[_player, _waterSource] call FUNC(canDrinkFromSource);
}
] call EFUNC(interact_menu,createAction)
@ -70,7 +70,7 @@ if !(hasInterface) exitWith {};
// Add water source actions to helper
[QGVAR(helper), 0, [], _mainAction] call EFUNC(interact_menu,addActionToClass);
{
[QGVAR(helper), 0, [QXGVAR(waterSource)], _x] call EFUNC(interact_menu,addActionToClass);
[QGVAR(helper), 0, [QGVAR(waterSource)], _x] call EFUNC(interact_menu,addActionToClass);
} forEach _subActions;
// Add inventory context menu option to consume items

View File

@ -51,7 +51,7 @@ class CfgPatches {
VERSION_CONFIG;
};
class XADDON: ADDON {};
BWC_CONFIG(XADDON);
};
#include "CfgEventHandlers.hpp"

View File

@ -50,7 +50,7 @@ TRACE_1("Starting interact PFH",_interactionType);
if (_waterRemaining != REFILL_WATER_DISABLED) then {
private _offset = [_x] call FUNC(getActionOffset);
private _helper = QGVAR(helper) createVehicleLocal [0, 0, 0];
_helper setVariable [QXGVAR(waterSource), _x];
_helper setVariable [QGVAR(waterSource), _x];
_helper attachTo [_x, _offset];
_addedHelpers pushBack _helper;

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -3,21 +3,27 @@
<Package name="Fire">
<Key ID="STR_ACE_Fire_category_displayName">
<English>ACE Fire</English>
<Japanese>ACE 火災</Japanese>
</Key>
<Key ID="STR_ACE_Fire_Actions_PatDown">
<English>Pat Down Fire</English>
<Japanese>火を叩き消す</Japanese>
</Key>
<Key ID="STR_ACE_Fire_Actions_PerformingPatDown">
<English>Patting Down Fire</English>
<Japanese>火を叩き消しています</Japanese>
</Key>
<Key ID="STR_ACE_Fire_setting_description">
<English>Allow units to catch fire</English>
<Japanese>ユニットへ着火を許可</Japanese>
</Key>
<Key ID="STR_ACE_Fire_setting_flareEnable">
<English>Enable fire-flare at night</English>
<Japanese>夜間にフレア効果を有効化</Japanese>
</Key>
<Key ID="STR_ACE_Fire_setting_flareDescription">
<English>Uses a flare effect to increase fire intensity at night</English>
<Japanese>夜間に火災の強さを上昇させるフレア効果を有効化します。</Japanese>
</Key>
</Package>
</Project>

View File

@ -59,8 +59,8 @@ class CfgVehicles {
editorSubcategory = "EdSubcat_InventoryItems";
vehicleClass = "Items";
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,1);
class TransportWeapons {
MACRO_ADDWEAPON(ACE_Flashlight_Maglite_ML300L,1);
};
};
@ -97,7 +97,9 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,2);
};
class TransportWeapons {
MACRO_ADDWEAPON(ACE_Flashlight_Maglite_ML300L,2);
};
};
};

View File

@ -1,23 +1,23 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};
class Extended_DisplayLoad_EventHandlers {
class RscDisplayMission {
ADDON = QUOTE(_this call COMPILE_FILE(XEH_missionDisplayLoad));
ADDON = QUOTE(_this call COMPILE_SCRIPT(XEH_missionDisplayLoad));
};
};

View File

@ -2,3 +2,9 @@ ace_fortify
============
Allows quick placement of fortifications.
## ACEX Conversion - things still using acex prefix
- **Some** settings
- CfgVehicles Module Classnames
- `ACEX_Fortify_Presets` config
- Events (`acex_fortify_objectPlaced`, `acex_fortify_objectDeleted`, `acex_fortify_onDeployStart`)

View File

@ -2,7 +2,7 @@
if (isServer) then {
[QGVAR(registerObjects), LINKFUNC(registerObjects)] call CBA_fnc_addEventHandler;
[QGVAR(objectPlaced), {
[QXGVAR(objectPlaced), {
params ["_unit", "_side", "_object"];
TRACE_3("objectPlaced",_unit,_side,_object);
private _jipID = [QGVAR(addActionToObject), [_side, _object]] call CBA_fnc_globalEventJIP;
@ -49,7 +49,7 @@ GVAR(objectRotationZ) = 0;
params ["_target", "_player", "_params"];
_params params ["_side"];
TRACE_2("deleting placed object",_target,_params);
[QGVAR(objectDeleted), [_player, _side, _target]] call CBA_fnc_globalEvent;
[QXGVAR(objectDeleted), [_player, _side, _target]] call CBA_fnc_globalEvent;
deleteVehicle _target;
_params call FUNC(updateBudget);
},

View File

@ -2,8 +2,8 @@
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {};
units[] = {QXGVAR(setupModule), QXGVAR(buildLocationModule)};
weapons[] = {"ACE_Fortify"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);
@ -12,7 +12,7 @@ class CfgPatches {
VERSION_CONFIG;
};
class XADDON: ADDON {};
BWC_CONFIG(XADDON);
};
#include "Cfg3DEN.hpp"

View File

@ -35,7 +35,7 @@ _newObject setPosASL _posASL;
_newObject setVectorDirAndUp [_vectorDir, _vectorUp];
// Server will use this event to run the jip compatible QGVAR(addActionToObject) event
[QGVAR(objectPlaced), [_unit, _side, _newObject]] call CBA_fnc_globalEvent;
[QXGVAR(objectPlaced), [_unit, _side, _newObject]] call CBA_fnc_globalEvent;
if (cba_events_control) then {
// Re-run if ctrl key held

View File

@ -43,7 +43,7 @@ private _icons = [["alt", localize "str_3den_display3den_entitymenu_movesurface_
[_lmb, _rmb, _wheel, _icons] call EFUNC(interaction,showMouseHint);
private _mouseClickID = [_player, "DefaultAction", {GVAR(isPlacing) == PLACE_WAITING}, {GVAR(isPlacing) = PLACE_APPROVE}] call EFUNC(common,addActionEventHandler);
[QGVAR(onDeployStart), [_player, _object, _cost]] call CBA_fnc_localEvent;
[QXGVAR(onDeployStart), [_player, _object, _cost]] call CBA_fnc_localEvent;
[{
params ["_args", "_pfID"];

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -7,3 +7,8 @@ Adds automatic passing of AI groups to (up to 3) Headless Clients.
- Round-robin transferring when more than 1 Headless Client is present
- Mission makers can use the following to prevent a group from transferring to a Headless Client:
`this setVariable ["acex_headless_blacklist", true, true];`
## ACEX Conversion - things still using acex prefix
- All settings
- 3DEN attribute config name
- Object SetVar (`acex_headless_blacklist`)

View File

@ -13,7 +13,7 @@ class CfgPatches {
VERSION_CONFIG;
};
class XADDON: ADDON {};
BWC_CONFIG(XADDON);
};
#include "ACE_Settings.hpp"

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {"ACE_HuntIR", "ACE_HuntIRBox"};
units[] = {"ACE_HuntIR", "ACE_HuntIR_Box", "ACE_Item_HuntIR_monitor"};
weapons[] = {"ACE_HuntIR_monitor"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -2,3 +2,6 @@ ace_intelitems
===============
Implements an intel system with unique items.
## ACEX Conversion - things still using acex prefix
- All CfgWeapon Items (e.g. `acex_intelitems_notepad`)

View File

@ -17,7 +17,7 @@ class CfgPatches {
VERSION_CONFIG;
};
class XADDON: ADDON {};
BWC_CONFIG(XADDON);
};
#include "CfgEventHandlers.hpp"

View File

@ -30,6 +30,6 @@
#define IDC_MOUSEHINT_EXTRA_NAME 2510
#define IDC_MOUSEHINT_EXTRA_TEXT 2520
#define MACRO_DOOR_REACH_DISTANCE (AGLToASL positionCameraToWorld [0,0,0] vectorDistance ACE_player modelToWorldWorld (ACE_player selectionPosition "Head")) + 2
#define MACRO_DOOR_REACH_DISTANCE ((AGLToASL positionCameraToWorld [0, 0, 0]) vectorDistance (ACE_player modelToWorldWorld (ACE_player selectionPosition "Head"))) + 2
#define DISABLED_LAMP_DAMAGE 0.95

View File

@ -325,12 +325,15 @@
</Key>
<Key ID="STR_ACE_Interaction_RenameGroup">
<English>Rename Group</English>
<Japanese>グループ名変更</Japanese>
</Key>
<Key ID="STR_ACE_Interaction_RenameGroupAlreadyExists">
<English>This group name is already in use.</English>
<Japanese>このグループ名は既に使われています。</Japanese>
</Key>
<Key ID="STR_ACE_Interaction_RenameGroupInput">
<English>NEW GROUP NAME:</English>
<Japanese>新しいグループ名:</Japanese>
</Key>
<Key ID="STR_ACE_Interaction_Dance">
<English>DANCE!</English>
@ -1238,13 +1241,16 @@
</Key>
<Key ID="STR_ACE_Interaction_enableRenameGroup_DisplayName">
<English>Allow group rename</English>
<Japanese>グループ名変更を許可</Japanese>
</Key>
<Key ID="STR_ACE_Interaction_enableRenameGroup_Description">
<English>Allows a group leader to rename their group if the name is not already taken.</English>
<Japanese>グループ リーダーによるグループ名の変更を許可します。</Japanese>
</Key>
<Key ID="STR_ACE_Interaction_interactWithTerrainObjects_Description">
<English>Warning: can cause some objects to collide with others.</English>
<Russian>Внимание: может вызвать отталкивание некоторых объектов друг от друга.</Russian>
<Japanese>警告: 一部のオブジェクトが干渉する可能性があります。</Japanese>
</Key>
</Package>
</Project>

View File

@ -1,37 +1,30 @@
class CfgSounds
{
class kestrel4500_center_button_click
{
class CfgSounds {
class kestrel4500_center_button_click {
name="kestrel4500_center_button_click";
sound[]={PATHTOF(sound\kestrel_center_button_click.wav),1,1};
titles[]={};
};
class kestrel4500_top_button_click
{
class kestrel4500_top_button_click {
name="kestrel4500_top_button_click";
sound[]={PATHTOF(sound\kestrel_top_button_click.wav),1,1};
titles[]={};
};
class kestrel4500_right_button_click
{
class kestrel4500_right_button_click {
name="kestrel4500_right_button_click";
sound[]={PATHTOF(sound\kestrel_right_button_click.wav),1,1};
titles[]={};
};
class kestrel4500_bottom_button_click
{
class kestrel4500_bottom_button_click {
name="kestrel4500_bottom_button_click";
sound[]={PATHTOF(sound\kestrel_bottom_button_click.wav),1,1};
titles[]={};
};
class kestrel4500_left_button_click
{
class kestrel4500_left_button_click {
name="kestrel4500_left_button_click";
sound[]={PATHTOF(sound\kestrel_left_button_click.wav),1,1};
titles[]={};
};
class kestrel4500_exit_button_click
{
class kestrel4500_exit_button_click {
name="kestrel4500_exit_button_click";
sound[]={PATHTOF(sound\kestrel_exit_button_click.wav),1,1};
titles[]={};

View File

@ -1,5 +1,5 @@
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -4,3 +4,7 @@ ace_killtracker
Tracks deaths/kills and logs to the end mission disaplay. Attemps to log kills from Medical by using `ace_medical_lastDamageSource`.
Note: Requires config setup in a mission, see `killtracker.inc` - has no effect if mission is not setup correctly.
## ACEX Conversion - things still using acex prefix
- Global Var `acex_killTracker_outputText`
- `acex_killTracker` classname for `CfgDebriefingSections`

View File

@ -3,6 +3,7 @@
<Package name="KillTracker">
<Key ID="STR_ACE_KillTracker_Title">
<English>ACE Killed Events</English>
<Japanese>ACE キルトラッカー</Japanese>
</Key>
<Key ID="STR_ACE_KillTracker_TotalKills">
<English>Total Kills:</English>

View File

@ -95,7 +95,7 @@ private _finalOwner = objNull;
};
};
};
} forEach (GVAR(laserEmitters) select 2); // Go through all values in hash
} forEach (values GVAR(laserEmitters)); // Go through all values in hash
TRACE_2("",count _spots, _spots);
@ -164,8 +164,8 @@ if ((count _spots) > 0) then {
{
_x params ["_xPos", "_owner"];
_finalPos = _finalPos vectorAdd _xPos;
private _count = _ownersHash getOrDefault [_owner, 0];
_ownersHash set [_owner, _count + 1];
private _count = _ownersHash getOrDefault [hashValue _owner, 0];
_ownersHash set [hashValue _owner, _count + 1];
} forEach _finalBucket;
_finalPos = _finalPos vectorMultiply (1 / (count _finalBucket));

View File

@ -2,10 +2,3 @@ ace_logistics_rope
===================
Adds ropes.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Brandon (TCVM)](https://github.com/TheCandianVendingMachine)

View File

@ -4,7 +4,7 @@ class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
weapons[] = {"ACE_rope3","ACE_rope6","ACE_rope12","ACE_rope15","ACE_rope18","ACE_rope27","ACE_rope36"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author = ECSTRING(common,ACETeam);

View File

@ -3,6 +3,7 @@
<Package name="Logistics_Rope">
<Key ID="STR_ACE_Logistics_Rope_descriptionShort">
<English>A twisted braid of fibers. Usually used for rappelling or towing.</English>
<Japanese>組み紐されたロープ。ラペリングやけん引に使用されます。</Japanese>
</Key>
<Key ID="STR_ACE_Logistics_Rope_Rope_3_Display">
<English>Rope 3.2 meters</English>
@ -15,6 +16,7 @@
<Czech>Lano 3.2 metrů</Czech>
<Turkish>3.2 metre halat</Turkish>
<Spanish>Cuerda de 3.2 metros</Spanish>
<Japanese>ロープ (3.2 メートル)</Japanese>
</Key>
<Key ID="STR_ACE_Logistics_Rope_Rope_6_Display">
<English>Rope 6.2 meters</English>
@ -27,6 +29,7 @@
<Czech>Lano 6.2 metrů</Czech>
<Turkish>6.2 metre halat</Turkish>
<Spanish>Cuerda de 6.2 metros</Spanish>
<Japanese>ロープ (6.2 メートル)</Japanese>
</Key>
<Key ID="STR_ACE_Logistics_Rope_Rope_12_Display">
<English>Rope 12.2 meters</English>

View File

@ -168,9 +168,11 @@
</Key>
<Key ID="STR_ACE_MagazineRepack_repackLoadedMagazines">
<English>Repack Loaded Magazines</English>
<Japanese>装填済み弾倉を詰め替え</Japanese>
</Key>
<Key ID="STR_ACE_MagazineRepack_repackLoadedMagazinesHint">
<English>Repacking magazines, weapon unloaded</English>
<Japanese>弾倉を詰め替えし、&lt;br /&gt;非装填状態です</Japanese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,11 @@ class CfgPatches {
url = CSTRING(URL);
VERSION_CONFIG;
};
class XADDON: ADDON { // just in-case anything requires "acex_main"
units[] = {};
weapons[] = {};
};
};
class CfgMods {

View File

@ -43,9 +43,12 @@
#define ACEX_PREFIX acex
#define XADDON DOUBLES(ACEX_PREFIX,COMPONENT)
#define XGVAR(var) DOUBLES(XADDON,var)
#define EXGVAR(var1,var2) TRIPLES(ACEX_PREFIX,var1,var2)
#define QXGVAR(var) QUOTE(XGVAR(var))
#define QEXGVAR(var1,var2) QUOTE(EXGVAR(var1,var2))
#define QQXGVAR(var) QUOTE(QXGVAR(var))
#define ACEX_PREP(func) PREP(func); OBSOLETE_SYS(TRIPLES(XADDON,fnc,func),DFUNC(func))
#define QQEXGVAR(var1,var2) QUOTE(QEXGVAR(var1,var2))
#define ACEX_PREP(func) PREP(func); TRIPLES(XADDON,fnc,func) = DFUNC(func)
#define MACRO_ADDWEAPON(WEAPON,COUNT) class _xx_##WEAPON { \

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
units[] = {QGVAR(moduleGroupSettings)};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};

View File

@ -1,7 +1,4 @@
class ACE_Settings {
class GVAR(movableMarkersEnabled) {
movedToSQF = 1;
};
class GVAR(moveRestriction) {
movedToSQF = 1;
};

View File

@ -669,15 +669,19 @@
</Key>
<Key ID="STR_ACE_Medical_Damage_ThermalBurn">
<English>Thermal Burn</English>
<Japanese>熱傷</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Damage_ThermalBurn_Minor">
<English>Minor Thermal Burn</English>
<Japanese>小さな熱傷</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Damage_ThermalBurn_Medium">
<English>Medium Thermal Burn</English>
<Japanese>中くらいの熱傷</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Damage_ThermalBurn_Large">
<English>Major Thermal Burn</English>
<Japanese>大きな熱傷</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Damage_Eden_threshold_DisplayName">
<English>Unit Damage Threshold</English>

View File

@ -19,10 +19,10 @@
params ["_enable", "_intensity"];
if (!_enable || {_intensity == 0}) exitWith {
GVAR(ppPain) ppEffectEnable false;
if (GVAR(ppPain) != -1) then { GVAR(ppPain) ppEffectEnable false; };
GVAR(ppPainBlur) ppEffectEnable false;
};
GVAR(ppPain) ppEffectEnable true;
if (GVAR(ppPain) != -1) then { GVAR(ppPain) ppEffectEnable true; };
GVAR(ppPainBlur) ppEffectEnable true;
// Trigger effect every 2s

View File

@ -33,7 +33,7 @@ private _fnc_createEffect = {
// - Pain ---------------------------------------------------------------------
if (!isNil QGVAR(ppPain)) then {
TRACE_1("delete pain",GVAR(ppPain));
ppEffectDestroy GVAR(ppPain)
if (GVAR(ppPain) != -1) then { ppEffectDestroy GVAR(ppPain); };
};
switch (GVAR(painEffectType)) do {
case FX_PAIN_WHITE_FLASH: {
@ -57,6 +57,7 @@ switch (GVAR(painEffectType)) do {
[0, 0, false]
] call _fnc_createEffect;
};
default { GVAR(ppPain) = -1; };
};
// Base blur on high pain
if (isNil QGVAR(ppPainBlur)) then {

View File

@ -192,10 +192,12 @@
<Key ID="STR_ACE_Medical_Feedback_EnableHUDIndicators_DisplayName">
<English>Enable Fracture/Tourniquet/Splint Indicators</English>
<Russian>Включить индикаторы переломов/жгутов/шин</Russian>
<Japanese>骨折/止血帯の表記を有効化</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Feedback_EnableHUDIndicators_Description">
<English>Enables indicators for fractures and applied tourniquets and splints over the Stance Indicator.</English>
<Russian>Включает индикацию переломов, наложенных шин и жгутов поверх индикатора положения тела.</Russian>
<Japanese>体勢インジケータに骨折や添え木、止血帯の有無を表示するかどうかを設定できます。</Japanese>
</Key>
</Container>
</Package>

View File

@ -1129,26 +1129,32 @@
<Key ID="STR_ACE_Medical_GUI_BloodLossColors">
<English>Blood Loss Colors</English>
<Russian>Цвета кровопотери</Russian>
<Japanese>失血量カラー</Japanese>
</Key>
<Key ID="STR_ACE_Medical_GUI_BloodLossColor_Description">
<English>Blood Loss Colors, That Used in Medical GUI. 10 Color Gradient.</English>
<Russian>Цвета кровопотери, которые используются в Медицинском интерфейсе. Градиент из 10 цветов.</Russian>
<Japanese>医療 GUI 内で失血量を 10 段階のカラーで表します。</Japanese>
</Key>
<Key ID="STR_ACE_Medical_GUI_BloodLossColorX_DisplayName">
<English>Blood Loss Color %1</English>
<Russian>Цвет кровопотери %1</Russian>
<Japanese>失血量カラー %1</Japanese>
</Key>
<Key ID="STR_ACE_Medical_GUI_DamageColors">
<English>Damage Colors</English>
<Russian>Цвета урона</Russian>
<Japanese>負傷カラー</Japanese>
</Key>
<Key ID="STR_ACE_Medical_GUI_DamageColor_Description">
<English>Damage Colors, That Used in Medical GUI. 10 Color Gradient.</English>
<Russian>Цвета урона, которые используются в Медицинском интерфейсе. Градиент из 10 цветов.</Russian>
<Japanese>医療 GUI 内で負傷を 10 段階のカラーで表します。</Japanese>
</Key>
<Key ID="STR_ACE_Medical_GUI_DamageColorX_DisplayName">
<English>Damage Color %1</English>
<Russian>Цвет урона %1</Russian>
<Japanese>負傷カラー %1</Japanese>
</Key>
</Package>
</Project>

View File

@ -152,15 +152,19 @@
</Key>
<Key ID="STR_ACE_Medical_Treatment_ClearTrauma_DisplayName">
<English>Clear Trauma</English>
<Japanese>外傷の削除</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Treatment_ClearTrauma_Description">
<English>Controls when hitpoint damage from wounds is healed.</English>
<Japanese>治療後に負傷箇所にある外傷の状態を決定できます。</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Treatment_ClearTrauma_AfterBandage">
<English>After Bandage</English>
<Japanese>包帯を巻いた後</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Treatment_ClearTrauma_AfterStitch">
<English>After Stitch</English>
<Japanese>縫合後</Japanese>
</Key>
<Key ID="STR_ACE_Medical_Treatment_LocationsBoostTraining_Description">
<English>Boost medical training when in medical vehicles or facilities. Untrained becomes medic, medic becomes doctor.</English>

View File

@ -23,7 +23,9 @@ if (isNull _unit) exitWith {};
private _virtualLoad = 0;
{
if (!isNull _x) then {
_virtualLoad = _virtualLoad + (_x getVariable [QGVAR(vLoad), 0]);
};
} forEach [
_unit,
uniformContainer _unit,

View File

@ -68,7 +68,7 @@
QGVAR(tagSize), "LIST",
[LSTRING(TagSize_Name), LSTRING(TagSize_Description)],
format ["ACE %1", localize LSTRING(Module_DisplayName)],
[[0, 1, 2, 3, 4], ["str_very_small", "str_small", "str_medium", "str_large", "str_very_large"], 1],
[[0, 1, 2, 3, 4], ["str_very_small", "str_small", "str_medium", "str_large", "str_very_large"], 2],
0
] call CBA_fnc_addSetting;

View File

@ -527,10 +527,12 @@
<Key ID="STR_ACE_NameTags_AmbientBrightnessAffectsViewDist_DisplayName">
<English>Nametag Ambient Brightness Coefficient</English>
<Russian>Коэффициент окружающего освещения для меток игроков</Russian>
<Japanese>環境名札明るさ係数</Japanese>
</Key>
<Key ID="STR_ACE_NameTags_AmbientBrightnessAffectsViewDist_Description">
<English>Adjusts how strongly ambient brightness affects nametag view distance.</English>
<Russian>Определяет как сильно окружающее освещение влияет на дальность отображения меток игроков.</Russian>
<Japanese>環境光の強さによって名札の描画距離を調整します。</Japanese>
</Key>
</Package>
</Project>

View File

@ -8,10 +8,10 @@ class CfgWeapons {
class Pistol_Base_F: Pistol {};
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
GVAR(jamTypesAllowed) = ["Fire","Dud"];
GVAR(jamTypesAllowed)[] = {"Fire", "Dud"};
};
class hgun_Pistol_Signal_F: Pistol_Base_F {
GVAR(jamTypesAllowed) = ["Fire","Dud"];
GVAR(jamTypesAllowed)[] = {"Fire", "Dud"};
};
class RifleCore;
@ -95,7 +95,7 @@ class CfgWeapons {
};
class sgun_HunterShotgun_01_base_F: Rifle_Long_Base_F {
GVAR(closedBolt) = 1;
GVAR(jamTypesAllowed) = ["Fire","Dud"];
GVAR(jamTypesAllowed)[] = {"Fire", "Dud"};
};
class ACE_ItemCore;
class CBA_MiscItem_ItemInfo;

View File

@ -84,25 +84,25 @@ if (hasInterface) then {
// Add an action to allow hot weapons to be cooled off in AceX Field Rations water sources
if (isClass (configfile >> "CfgPatches" >> "acex_field_rations")) then {
[
{acex_field_rations_enabled || CBA_missionTime > 1},
{EXGVAR(field_rations,enabled) || CBA_missionTime > 1},
{
if (!acex_field_rations_enabled) exitWith {};
if (!EXGVAR(field_rations,enabled)) exitWith {};
_CoolWeaponWithWaterSourceAction = [
private _coolWeaponWithWaterSourceAction = [
QGVAR(CoolWeaponWithWaterSource),
LLSTRING(CoolWeaponWithWaterSource),
"\z\acex\addons\field_rations\ui\icon_water_tap.paa",
QPATHTOEF(field_rations,ui\icon_water_tap.paa),
{
private _waterSource = _target getVariable ["acex_field_rations_waterSource", objNull];
private _waterSource = _target getVariable [QEGVAR(field_rations,waterSource), objNull];
[_player, _waterSource] call FUNC(coolWeaponWithWaterSource);
},
{
private _waterSource = _target getVariable ["acex_field_rations_waterSource", objNull];
[_player, _waterSource] call acex_field_rations_fnc_canDrinkFromSource;
private _waterSource = _target getVariable [QEGVAR(field_rations,waterSource), objNull];
[_player, _waterSource] call EFUNC(field_rations,canDrinkFromSource);
}
] call EFUNC(interact_menu,createAction);
["acex_field_rations_helper", 0, ["acex_field_rations_waterSource"], _CoolWeaponWithWaterSourceAction] call EFUNC(interact_menu,addActionToClass);
[QEGVAR(field_rations,helper), 0, [QEGVAR(field_rations,waterSource)], _coolWeaponWithWaterSourceAction] call EFUNC(interact_menu,addActionToClass);
},
[]
] call CBA_fnc_waitUntilAndExecute;

View File

@ -4,7 +4,7 @@ class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
weapons[] = {"ACE_SpareBarrel_Item"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);

View File

@ -25,8 +25,8 @@ private _config = configFile >> "CfgWeapons" >> _item;
private _weapon = currentWeapon _target;
private _tempVarName = format [QGVAR(%1_temp), _weapon];
private _temperature = _target getVariable [_tempVarName, 0];
private _replacementItem = getText (_config >> "acex_field_rations_replacementItem");
private _liquidAmount = getNumber (_config >> "acex_field_rations_thirstQuenched");
private _replacementItem = getText (_config >> QEXGVAR(field_rations,replacementItem));
private _liquidAmount = getNumber (_config >> QEXGVAR(field_rations,thirstQuenched));
private _consumeText = format [LLSTRING(CoolingWeaponWithItem), getText (configFile >> "CfgWeapons" >> _weapon >> "displayName"), getText (_config >> "displayName")];
/* // to be added when licence compatible audio can be found or recorded

View File

@ -28,7 +28,7 @@ private _fnc_onFinish = {
params ["_args"];
_args params ["_player", "_target", "_weapon", "_tempVarName"];
private _water = _target call acex_field_rations_fnc_getRemainingWater;
private _water = _target call EFUNC(field_rations,getRemainingWater);
if (_water <= 0 && {_water != -10}) exitWith {
[
@ -46,7 +46,7 @@ private _fnc_condition = {
_args params ["_player", "_target", "_weapon", "_tempVarName"];
private _temperature = _player getVariable [_tempVarName, 0];
private _water = _target call acex_field_rations_fnc_getRemainingWater;
private _water = _target call EFUNC(field_rations,getRemainingWater);
if (_water <= 0 && {_water != -10}) exitWith {false};
@ -55,7 +55,7 @@ private _fnc_condition = {
//Remove water from the source, unless it's unlimited
if (_water != -10) then {
[_target, _water - 1] call acex_field_rations_fnc_setRemainingWater;
[_target, _water - 1] call EFUNC(field_rations,setRemainingWater);
};
//Cool the weapon down

View File

@ -25,7 +25,7 @@ private _fnc_getActions = {
{
private _config = _cfgWeapons >> _x;
if (getNumber (_config >> "acex_field_rations_thirstQuenched") > 0) then {
if (getNumber (_config >> QEXGVAR(field_rations,thirstQuenched)) > 0) then {
private _displayName = getText (_config >> "displayName");
private _picture = getText (_config >> "picture");

View File

@ -32,9 +32,9 @@ _unit setVariable [QGVAR(jammedWeapons), _jammedWeapons];
// Cookoffs only happen on Fire and Dud, dud rounds are lost on jam clear.
// Reduce chance of duds as temp increases (functionally increasing the chance of the others but with fewer commands)
private _temp = 1 max (_unit getVariable [format [QGVAR(%1_temp), _weapon], 0]);
private _jamTypesAllowed = getArray (configFile >> 'CfgWeapons' >> currentWeapon _player >> QGVAR(jamTypesAllowed));
private _jamTypesAllowed = getArray (configFile >> 'CfgWeapons' >> currentWeapon _unit >> QGVAR(jamTypesAllowed));
if (_jamTypesAllowed == []) then {
if (_jamTypesAllowed isEqualTo []) then {
_jamTypesAllowed = ["Eject", 1, "Extract", 1, "Feed", 1, "Fire", 1, "Dud", (5 / (_temp / 5))];
} else {
for "_i" from count _jamTypesAllowed to 1 step -1 do {

View File

@ -75,7 +75,7 @@ private _category = format ["ACE %1", localize LSTRING(DisplayName)];
[LSTRING(jamChanceCoef_displayName), LSTRING(jamChanceCoef_description)],
_category,
[0, 5, 1, 2],
0
1
] call CBA_fnc_addSetting;
[

View File

@ -48,9 +48,11 @@
</Key>
<Key ID="STR_ACE_Overheating_heatCoef_displayName">
<English>Heating Coefficient</English>
<Japanese>過熱係数</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_heatCoef_description">
<English>Coefficient for the amount of heat a weapon generates per shot.\nHigher value increases heat.</English>
<Japanese>射撃毎に武器が生み出す熱量の係数を設定します。\n高い値であるほど熱量が増加します。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_DisplayTextOnJam_displayName">
<English>Display Text on Jam</English>
@ -182,21 +184,27 @@
</Key>
<Key ID="STR_ACE_Overheating_particleEffectsAndDispersionDistance_displayName">
<English>Distance for Effects and Dispersion</English>
<Japanese>エフェクトと分散用距離</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_particleEffectsAndDispersionDistance_description">
<English>The distance, in meters, from the player within which overheating particle effects and dispersion are visible.</English>
<Japanese>プレイヤーが過熱パーティクル エフェクトと分散を見えるようになる距離 (m) を設定します。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_overheatingRateOfFire_displayName">
<English>Heat Increases Fire Rate</English>
<Japanese>熱による連射速度上昇</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_overheatingRateOfFire_description">
<English>As weapons heat up, their rate of fire increases by up to 10%.</English>
<Japanese>武器が熱を帯び始めると、連射速度が 10% 上昇します。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_jamChanceCoef_displayName">
<English>Jam Chance Coefficient</English>
<Japanese>弾詰まり係数</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_jamChanceCoef_description">
<English>Coefficient for the chance that a weapon will jam from overheating.\nHigher value make jams more likely.\nSet to 0 to disable jamming.</English>
<Japanese>武器が過熱によって弾詰まりする確立係数を設定します。\n高い値では弾詰まりが起こりやすくなり、0 で弾詰まりが無効化されます。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_unJamOnReload_displayName">
<English>Unjam Weapon on Reload</English>
@ -232,9 +240,11 @@
</Key>
<Key ID="STR_ACE_Overheating_unJamOnSwapBarrel_displayName">
<English>Unjam on Barrel Swap</English>
<Japanese>銃身交換で弾詰まり解消</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_unJamOnSwapBarrel_description">
<English>Controls whether swapping barrels clears a weapon jam.</English>
<Japanese>銃身を交換して弾詰まりの解消をできるようにします。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_unJamFailChance_displayName">
<English>Chance of Unjam Failing</English>
@ -270,9 +280,11 @@
</Key>
<Key ID="STR_ACE_Overheating_cookoffCoef_displayName">
<English>Overheating Cookoff Coefficient</English>
<Japanese>過熱誘爆係数</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_cookoffCoef_description">
<English>Coefficient for the heat required for cookoffs to occur.\nHigher values require more heat to cookoff.\nSet to 0 to disable cookoff.</English>
<Japanese>過熱によって誘爆が起きる確立係数を設定します。\n高い値では誘爆までに必要な過熱量が増加し、0 で誘爆が無効化されます。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_SpareBarrelName">
<English>Spare barrel</English>
@ -324,18 +336,23 @@
</Key>
<Key ID="STR_ACE_Overheating_WeaponCookedOff">
<English>Weapon cooked off!</English>
<Japanese>武器が誘爆した!</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_FailureToEject">
<English>Failure to eject.</English>
<Japanese>排莢に失敗しました。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_FailureToExtract">
<English>Failure to extract.</English>
<Japanese>排出に失敗しました。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_FailureToFeed">
<English>Failure to feed.</English>
<Japanese>給弾に失敗しました。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_FailureToFire">
<English>Failure to fire.</English>
<Japanese>撃発に失敗しました。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_UnjamWeapon">
<English>Clear jam</English>
@ -512,21 +529,27 @@
</Key>
<Key ID="STR_ACE_Overheating_CoolWeaponWithItem">
<English>Cool weapon with...</English>
<Japanese>次で武器を冷ます・・・</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_CoolingWeaponWithItem">
<English>Cooling %1 with %2.</English>
<Japanese>%1 を %2 で冷ましています。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_CoolWeaponWithWaterSource">
<English>Cool weapon in water source.</English>
<Japanese>水源で武器を冷ます</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_CoolingWeaponWithWaterSource">
<English>Cooling weapon in water source.</English>
<Japanese>水源で武器を冷ましています・・・</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_CoolWeaponNotEnoughWater">
<English>Container doesn't have enough water.</English>
<Japanese>水源には十分な水量がありません。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_CoolWeaponIsCool">
<English>Weapon is cool enough the water has stopped boiling.</English>
<Japanese>武器が冷まりきり、水が沸騰していません。</Japanese>
</Key>
<Key ID="STR_ACE_Overheating_Temperature">
<English>Temperature</English>

View File

@ -1656,7 +1656,7 @@
<Portuguese>FNX-45 Tactical (Verde)</Portuguese>
<Italian>FNX-45 Tactical (Verde)</Italian>
<Turkish>FNX-45 Tactical (Yeşil)</Turkish>
<Japanese>FNX-45 タクティカル ()</Japanese>
<Japanese>FNX-45 タクティカル (グリーン)</Japanese>
<Korean>FNX-45 Tactical (초록)</Korean>
<Chinese>FNX-45戰術型手槍 (綠色)</Chinese>
<Chinesesimp>FNX-45战术型手枪 (绿色)</Chinesesimp>
@ -1741,7 +1741,7 @@
<Portuguese>RPG-32 (Verde)</Portuguese>
<Italian>RPG-32 (Verde)</Italian>
<Turkish>RPG-32 (Yeşil)</Turkish>
<Japanese>RPG-32 ()</Japanese>
<Japanese>RPG-32 (グリーン)</Japanese>
<Korean>RPG-32 (초록)</Korean>
<Chinese>RPG-32"哈希姆"火箭發射器 (綠色)</Chinese>
<Chinesesimp>RPG-32"哈希姆"火箭发射器 (绿色)</Chinesesimp>
@ -1803,7 +1803,7 @@
<Chinese>"麥士蒂索人"-M型反坦克導彈(棕色)</Chinese>
<Chinesesimp>"麦士蒂索人"-M型反坦克导弹(棕色)</Chinesesimp>
<Italian>Metis-M (Marrone)</Italian>
<Japanese>メチス-M ()</Japanese>
<Japanese>メチス-M (ブラウン)</Japanese>
<Polish>Metis-M (Brązowy)</Polish>
<Portuguese>Metis-M (Marrom)</Portuguese>
<Czech>Metis-M (hnědý)</Czech>
@ -1818,7 +1818,7 @@
<Chinese>"麥士蒂索人"-M型反坦克導彈(綠色)</Chinese>
<Chinesesimp>"麦士蒂索人"-M型反坦克导弹(绿色)</Chinesesimp>
<Italian>Metis-M (Verde)</Italian>
<Japanese>メチス-M ()</Japanese>
<Japanese>メチス-M (グリーン)</Japanese>
<Polish>Metis-M (Zielony)</Polish>
<Portuguese>Metis-M (Verde)</Portuguese>
<Czech>Metis-M (zelený)</Czech>
@ -1853,7 +1853,7 @@
<Russian>MX (Чёрный)</Russian>
<Portuguese>MX (Preto)</Portuguese>
<Italian>MX (Nero)</Italian>
<Japanese>MX ()</Japanese>
<Japanese>MX (ブラック)</Japanese>
<Korean>MX (검정)</Korean>
<Chinese>MX突擊步槍 (黑色)</Chinese>
<Chinesesimp>MX突击步枪 (黑色)</Chinesesimp>
@ -1903,7 +1903,7 @@
<Russian>MXC (Чёрный)</Russian>
<Portuguese>MXC (Preto)</Portuguese>
<Italian>MXC (Nero)</Italian>
<Japanese>MXC ()</Japanese>
<Japanese>MXC (ブラック)</Japanese>
<Korean>MXC (검정)</Korean>
<Chinese>MXC卡賓步槍 (黑色)</Chinese>
<Chinesesimp>MXC卡宾步枪 (黑色)</Chinesesimp>
@ -1953,7 +1953,7 @@
<Russian>MX 3GL (Чёрный)</Russian>
<Portuguese>MX 3GL (Preto)</Portuguese>
<Italian>MX 3GL (Nero)</Italian>
<Japanese>MX 3GL ()</Japanese>
<Japanese>MX 3GL (ブラック)</Japanese>
<Korean>MX 3GL (검정)</Korean>
<Chinese>MX突擊步槍 (3連裝榴彈-黑色)</Chinese>
<Chinesesimp>MX突击步枪 (3连装榴弹-黑色)</Chinesesimp>
@ -2003,7 +2003,7 @@
<Russian>MX LSW (Чёрный)</Russian>
<Portuguese>MX LSW (Preto)</Portuguese>
<Italian>MX LSW (Nero)</Italian>
<Japanese>MX LSW ()</Japanese>
<Japanese>MX LSW (ブラック)</Japanese>
<Korean>MX LSW (검정)</Korean>
<Chinese>MX輕型機槍 (黑色)</Chinese>
<Chinesesimp>MX轻型机枪 (黑色)</Chinesesimp>
@ -2171,7 +2171,7 @@
<Russian>F2000 Tactical (Камо)</Russian>
<Portuguese>F2000 Tactical (Camo)</Portuguese>
<Italian>F2000 Tactical (Camo)</Italian>
<Japanese>F2000 タクティカル (迷彩)</Japanese>
<Japanese>F2000 タクティカル (カモフラージュ)</Japanese>
<Korean>F2000 Tactical (위장)</Korean>
<Chinese>F2000戰術型突擊步槍 (迷彩)</Chinese>
<Chinesesimp>F2000战术型突击步枪 (迷彩)</Chinesesimp>
@ -3946,22 +3946,27 @@
<Key ID="STR_ACE_RealisticNames_optic_arco_lush">
<English>ELCAN SpecterOS (Lush)</English>
<Polish>ELCAN SpecterOS (Leśny)</Polish>
<Japanese>ELCAN SpecterOS (緑地)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_arco_arid">
<English>ELCAN SpecterOS (Arid)</English>
<Polish>ELCAN SpecterOS (Jałowy)</Polish>
<Japanese>ELCAN SpecterOS (乾燥地帯)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_arco_ak_blk">
<English>ELCAN SpecterOS 7.62 (Black)</English>
<Polish>ELCAN SpecterOS 7.62 (Czarny)</Polish>
<Japanese>ELCAN SpecterOS 7.62 (ブラック)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_arco_ak_lush">
<English>ELCAN SpecterOS 7.62 (Lush)</English>
<Polish>ELCAN SpecterOS 7.62 (Leśny)</Polish>
<Japanese>ELCAN SpecterOS 7.62 (緑地)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_arco_ak_arid">
<English>ELCAN SpecterOS 7.62 (Arid)</English>
<Polish>ELCAN SpecterOS 7.62 (Jałowy)</Polish>
<Japanese>ELCAN SpecterOS 7.62 (乾燥地帯)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_erco_blk">
<English>SIG BRAVO4 / ROMEO3 (Black)</English>
@ -4208,10 +4213,12 @@
<Key ID="STR_ACE_RealisticNames_optic_dms_weathered">
<English>Burris XTR II (Old)</English>
<Polish>Burris XTR II (Stary)</Polish>
<Japanese>Burris XTR II (使い古し)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_dms_weathered_kir">
<English>Burris XTR II (ASP-1 Kir)</English>
<Polish>Burris XTR II (ASP-1 Kir)</Polish>
<Japanese>Burris XTR II (ASP-1 Kir)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_holosight">
<English>EOTech XPS3 (Tan)</English>
@ -4261,10 +4268,12 @@
<Key ID="STR_ACE_RealisticNames_optic_holosight_lush">
<English>EOTech XPS3 (Lush)</English>
<Polish>EOTech XPS3 (Leśny)</Polish>
<Japanese>EOTech XPS3 (緑地)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_holosight_arid">
<English>EOTech XPS3 (Arid)</English>
<Polish>EOTech XPS3 (Jałowy)</Polish>
<Japanese>EOTech XPS3 (乾燥地帯)</Japanese>
</Key>
<Key ID="STR_ACE_RealisticNames_optic_holosight_smg">
<English>EOTech XPS3 SMG (Tan)</English>
@ -4372,7 +4381,7 @@
<German>C-More Railway (Rot)</German>
<Chinese>C-More Railway (紅色)</Chinese>
<Chinesesimp>C-More Railway (红色)</Chinesesimp>
<Japanese>C-More レイルウェイ ()</Japanese>
<Japanese>C-More レイルウェイ (レッド)</Japanese>
<Italian>C-More Railway (Rosso)</Italian>
<Polish>C-More Railway (Czerwony)</Polish>
<Russian>C-More Railway (Красный)</Russian>
@ -4387,7 +4396,7 @@
<German>C-More Railway (Grün)</German>
<Chinese>C-More Railway (綠色)</Chinese>
<Chinesesimp>C-More Railway (绿色)</Chinesesimp>
<Japanese>C-More レイルウェイ ()</Japanese>
<Japanese>C-More レイルウェイ (グリーン)</Japanese>
<Italian>C-More Railway (Verde)</Italian>
<Polish>C-More Railway (Zielony)</Polish>
<Russian>C-More Railway (Зеленый)</Russian>
@ -4402,7 +4411,7 @@
<German>C-More Railway SMG (Rot)</German>
<Chinese>C-More Railway SMG (紅色)</Chinese>
<Chinesesimp>C-More Railway SMG (红色)</Chinesesimp>
<Japanese>C-More レイルウェイ SMG ()</Japanese>
<Japanese>C-More レイルウェイ SMG (レッド)</Japanese>
<Italian>C-More Railway SMG (Rosso)</Italian>
<Polish>C-More Railway SMG (Czerwony)</Polish>
<Russian>C-More Railway SMG (Красный)</Russian>
@ -4417,7 +4426,7 @@
<German>C-More Railway SMG (Grün)</German>
<Chinese>C-More Railway SMG (綠色)</Chinese>
<Chinesesimp>C-More Railway SMG (绿色)</Chinesesimp>
<Japanese>C-More レイルウェイ SMG ()</Japanese>
<Japanese>C-More レイルウェイ SMG (グリーン)</Japanese>
<Italian>C-More Railway SMG (Verde)</Italian>
<Polish>C-More Railway SMG (Zielony)</Polish>
<Russian>C-More Railway SMG (Зеленый)</Russian>
@ -5018,7 +5027,7 @@
<Portuguese>MSBS Grot</Portuguese>
<Korean>MSBS Grot</Korean>
<Chinesesimp>MSBS Grot</Chinesesimp>
<Japanese>MSBS Grot</Japanese>
<Japanese>MSBS グロート</Japanese>
<Turkish>MSBS Grot</Turkish>
<Hungarian>MSBS Grot</Hungarian>
</Key>
@ -5035,7 +5044,7 @@
<Portuguese>MSBS Grot (Preto)</Portuguese>
<Korean>MSBS Grot (검정)</Korean>
<Chinesesimp>MSBS Grot(黑色)</Chinesesimp>
<Japanese>MSBS Grot(ブラック)</Japanese>
<Japanese>MSBS グロート (ブラック)</Japanese>
<Turkish>MSBS Grot (Siyah)</Turkish>
<Hungarian>MSBS Grot (Fekete)</Hungarian>
</Key>
@ -5052,7 +5061,7 @@
<Portuguese>MSBS Grot (Camo)</Portuguese>
<Korean>MSBS Grot (위장)</Korean>
<Chinesesimp>MSBS Grot(迷彩)</Chinesesimp>
<Japanese>MSBS Grot (カモフラージュ)</Japanese>
<Japanese>MSBS グロート (カモフラージュ)</Japanese>
<Turkish>MSBS Grot (Kamuflaj)</Turkish>
<Hungarian>MSBS Grot (Terepmintás)</Hungarian>
</Key>
@ -5069,7 +5078,7 @@
<Portuguese>MSBS Grot (Deserto)</Portuguese>
<Korean>MSBS Grot (모래)</Korean>
<Chinesesimp>MSBS Grot(沙色)</Chinesesimp>
<Japanese>MSBS Grot (サンド)</Japanese>
<Japanese>MSBS グロート (サンド)</Japanese>
<Turkish>MSBS Grot (Kum)</Turkish>
<Hungarian>MSBS Grot (Homok)</Hungarian>
</Key>
@ -5086,7 +5095,7 @@
<Portuguese>MSBS Grot GL</Portuguese>
<Korean>MSBS Grot GL</Korean>
<Chinesesimp>MSBS Grot GL</Chinesesimp>
<Japanese>MSBS Grot GL</Japanese>
<Japanese>MSBS グロート GL</Japanese>
<Turkish>MSBS Grot GL</Turkish>
<Hungarian>MSBS Grot GL</Hungarian>
</Key>
@ -5103,7 +5112,7 @@
<Portuguese>MSBS Grot GL (Preto)</Portuguese>
<Korean>MSBS Grot GL (검정)</Korean>
<Chinesesimp>MSBS Grot GL(黑色)</Chinesesimp>
<Japanese>MSBS Grot GL(ブラック)</Japanese>
<Japanese>MSBS グロート GL(ブラック)</Japanese>
<Turkish>MSBS Grot GL (Siyah)</Turkish>
<Hungarian>MSBS Grot GL (Fekete)</Hungarian>
</Key>
@ -5120,7 +5129,7 @@
<Portuguese>MSBS Grot GL (Camo)</Portuguese>
<Korean>MSBS Grot GL (위장)</Korean>
<Chinesesimp>MSBS Grot GL(迷彩)</Chinesesimp>
<Japanese>MSBS Grot GL (カモフラージュ)</Japanese>
<Japanese>MSBS グロート GL (カモフラージュ)</Japanese>
<Turkish>MSBS Grot GL (Kamuflaj)</Turkish>
<Hungarian>MSBS Grot GL (Terepmintás)</Hungarian>
</Key>
@ -5137,7 +5146,7 @@
<Portuguese>MSBS Grot GL (Deserto)</Portuguese>
<Korean>MSBS Grot GL (모래)</Korean>
<Chinesesimp>MSBS Grot GL(沙色)</Chinesesimp>
<Japanese>MSBS Grot GL (サンド)</Japanese>
<Japanese>MSBS グロート GL (サンド)</Japanese>
<Turkish>MSBS Grot GL (Kum)</Turkish>
<Hungarian>MSBS Grot GL (Homok)</Hungarian>
</Key>
@ -5154,7 +5163,7 @@
<Portuguese>MSBS Grot MR</Portuguese>
<Korean>MSBS Grot MR</Korean>
<Chinesesimp>MSBS Grot MR</Chinesesimp>
<Japanese>MSBS Grot MR</Japanese>
<Japanese>MSBS グロート MR</Japanese>
<Turkish>MSBS Grot MR</Turkish>
<Hungarian>MSBS Grot MR</Hungarian>
</Key>
@ -5171,7 +5180,7 @@
<Portuguese>MSBS Grot MR (Preto)</Portuguese>
<Korean>MSBS Grot MR (검정)</Korean>
<Chinesesimp>MSBS Grot MR(黑色)</Chinesesimp>
<Japanese>MSBS Grot MR (ブラック)</Japanese>
<Japanese>MSBS グロート MR (ブラック)</Japanese>
<Turkish>MSBS Grot MR (Siyah)</Turkish>
<Hungarian>MSBS Grot MR (Fekete)</Hungarian>
</Key>
@ -5188,7 +5197,7 @@
<Portuguese>MSBS Grot MR (Camo)</Portuguese>
<Korean>MSBS Grot MR (위장)</Korean>
<Chinesesimp>MSBS Grot MR(迷彩)</Chinesesimp>
<Japanese>MSBS Grot MR (カモフラージュ)</Japanese>
<Japanese>MSBS グロート MR (カモフラージュ)</Japanese>
<Turkish>MSBS Grot MR (Kamuflaj)</Turkish>
<Hungarian>MSBS Grot MR (Terepmintás)</Hungarian>
</Key>
@ -5205,7 +5214,7 @@
<Portuguese>MSBS Grot MR (Deserto)</Portuguese>
<Korean>MSBS Grot MR (모래)</Korean>
<Chinesesimp>MSBS Grot MR(沙色)</Chinesesimp>
<Japanese>MSBS Grot MR (サンド)</Japanese>
<Japanese>MSBS グロート MR (サンド)</Japanese>
<Turkish>MSBS Grot MR (Kum)</Turkish>
<Hungarian>MSBS Grot MR (Homok)</Hungarian>
</Key>
@ -5222,7 +5231,7 @@
<Portuguese>MSBS Grot SG</Portuguese>
<Korean>MSBS Grot SG</Korean>
<Chinesesimp>MSBS Grot SG</Chinesesimp>
<Japanese>MSBS Grot SG</Japanese>
<Japanese>MSBS グロート SG</Japanese>
<Turkish>MSBS Grot SG</Turkish>
<Hungarian>MSBS Grot SG</Hungarian>
</Key>
@ -5239,7 +5248,7 @@
<Portuguese>MSBS Grot SG (Preto)</Portuguese>
<Korean>MSBS Grot SG (검정)</Korean>
<Chinesesimp>MSBS Grot SG(黑色)</Chinesesimp>
<Japanese>MSBS Grot SG(ブラック)</Japanese>
<Japanese>MSBS グロート SG (ブラック)</Japanese>
<Turkish>MSBS Grot SG (Siyah)</Turkish>
<Hungarian>MSBS Grot SG (Fekete)</Hungarian>
</Key>
@ -5256,7 +5265,7 @@
<Portuguese>MSBS Grot SG (Camo)</Portuguese>
<Korean>MSBS Grot SG (위장)</Korean>
<Chinesesimp>MSBS Grot SG(迷彩)</Chinesesimp>
<Japanese>MSBS Grot SG (カモフラージュ)</Japanese>
<Japanese>MSBS グロート SG (カモフラージュ)</Japanese>
<Turkish>MSBS Grot SG (Kamuflaj)</Turkish>
<Hungarian>MSBS Grot SG (Terepmintás)</Hungarian>
</Key>
@ -5273,7 +5282,7 @@
<Portuguese>MSBS Grot SG (Deserto)</Portuguese>
<Korean>MSBS Grot SG (모래)</Korean>
<Chinesesimp>MSBS Grot SG(沙色)</Chinesesimp>
<Japanese>MSBS Grot SG (サンド)</Japanese>
<Japanese>MSBS グロート SG (サンド)</Japanese>
<Turkish>MSBS Grot SG (Kum)</Turkish>
<Hungarian>MSBS Grot SG (Homok)</Hungarian>
</Key>

View File

@ -158,6 +158,10 @@ class CfgVehicles {
transportAmmo = 0;
GVAR(defaultSupply) = 1200;
};
class Box_IND_AmmoOrd_F;
class Box_IDAP_AmmoOrd_F: Box_IND_AmmoOrd_F {
transportAmmo = 0; // not sure why this one has 240
};
// Dummy Vehicles
class ThingX;

View File

@ -485,6 +485,11 @@ class CfgVehicles {
GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}};
GVAR(fuelCargo) = REFUEL_INFINITE_FUEL;
};
class Land_FuelStation_03_pump_F: House_F { // Enoch
transportFuel = 0; //50k
GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}};
GVAR(fuelCargo) = REFUEL_INFINITE_FUEL;
};
// Helper object for non-AllVehicles objects
class GVAR(helper): Helicopter_Base_F {

View File

@ -3,8 +3,8 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {QGVAR(fuelNozzle)};
units[] = {QGVAR(fuelNozzle)};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);

View File

@ -263,6 +263,7 @@
</Key>
<Key ID="STR_ACE_Repair_LocationsBoostTraining_Description">
<English>Boost engineer training when in repair vehicles or facilities. Untrained becomes engineer, engineer becomes advanced engineer.</English>
<Japanese>修理車両か施設内では工兵能力を上昇させます。兵士は工兵になり、工兵は上級工兵になります。</Japanese>
</Key>
<Key ID="STR_ACE_Repair_fullRepairLocation">
<English>Full Repair Locations</English>

View File

@ -3,8 +3,8 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {"ACE_Rallypoint_West", "ACE_Rallypoint_East", "ACE_Rallypoint_Independent", "ACE_Rallypoint_West_Base", "ACE_Rallypoint_East_Base", "ACE_Rallypoint_Independent_Base"};
units[] = {"ACE_Rallypoint_West", "ACE_Rallypoint_East", "ACE_Rallypoint_Independent", "ACE_Rallypoint_West_Base", "ACE_Rallypoint_East_Base", "ACE_Rallypoint_Independent_Base"};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = { "ace_common" };
author = ECSTRING(common,ACETeam);

View File

@ -3,8 +3,8 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {"ACE_Item_Sandbag", "ACE_Item_Sandbag_empty"};
weapons[] = {"ACE_Sandbag", "ACE_Sandbag_empty"};
units[] = {"ACE_Item_Sandbag_empty"};
weapons[] = {"ACE_Sandbag_empty"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);

View File

@ -64,6 +64,14 @@ private _category = format ["ACE %1", localize LSTRING(DisplayName)];
1
] call CBA_fnc_addSetting;
[
QGVAR(deduceBarometricPressureFromTerrainAltitude), "CHECKBOX",
[LSTRING(deduceBarometricPressureFromTerrainAltitude_displayName), LSTRING(deduceBarometricPressureFromTerrainAltitude_description)],
_category,
false,
1
] call CBA_fnc_addSetting;
[
QGVAR(useLegacyUI), "CHECKBOX",
[LSTRING(useLegacyUI_displayName), LSTRING(useLegacyUI_description)],
@ -73,7 +81,7 @@ private _category = format ["ACE %1", localize LSTRING(DisplayName)];
] call CBA_fnc_addSetting;
[
QGVAR(simplifedZeroing), "CHECKBOX",
QGVAR(simplifiedZeroing), "CHECKBOX",
[LSTRING(simplifiedZeroing_displayName), LSTRING(simplifiedZeroing_description)],
_category,
false,

View File

@ -1,18 +1,18 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
clientInit = QUOTE(call COMPILE_SCRIPT(XEH_clientInit));
};
};

View File

@ -2,3 +2,7 @@ ace_sitting
===============
The Sitting module introduces ability to sit on chairs.
## ACEX Conversion - things still using acex prefix
- All settings
- CfgVehicles Config Entries (e.g. `acex_sitting_canSit`)

View File

@ -13,7 +13,7 @@ class CfgPatches {
VERSION_CONFIG;
};
class XADDON: ADDON {};
BWC_CONFIG(XADDON);
};
#include "ACE_Settings.hpp"

View File

@ -10,7 +10,7 @@
* None
*
* Example:
* player call acex_sitting_fnc_stand
* player call ace_sitting_fnc_stand
*
* Public: No
*/

View File

@ -1,10 +1,10 @@
[
QXGVAR(enabled),
QXGVAR(enable),
"CHECKBOX",
[LSTRING(Enable), LSTRING(ModuleDescription)],
format ["ACE %1", LLSTRING(ModuleDisplayName)],
true,
true,
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
{[QGVAR(enable), _this] call EFUNC(common,cbaSettings_settingChanged)},
true
] call CBA_fnc_addSetting;

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
units[] = {QGVAR(module)};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
units[] = {QGVAR(virtual)};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};

View File

@ -2,10 +2,3 @@ ace_towing
===================
Adds the ability to tow vehicles.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Brandon (TCVM)](https://github.com/TheCandianVendingMachine)

View File

@ -20,7 +20,7 @@ _args params ["_state", "_unit", "_parent", "_rope", "_length", "_ropeClass"];
private _exitCondition = !(
(alive GVAR(attachHelper)) &&
{ alive _target } &&
{ alive _parent } &&
{ alive _unit } &&
{ "" isEqualTo currentWeapon _unit || { _unit call EFUNC(common,isSwimming) }} &&
{ [_unit, objNull, [INTERACTION_EXCEPTIONS]] call EFUNC(common,canInteractWith) } &&

View File

@ -3,36 +3,47 @@
<Package name="Towing">
<Key ID="STR_ACE_Towing_displayName">
<English>Towing</English>
<Japanese>けん引</Japanese>
</Key>
<Key ID="STR_ACE_Towing_attach">
<English>Attach Tow Rope</English>
<Japanese>けん引ロープを取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_canceled">
<English>Attaching Cancelled</English>
<Japanese>取り付けを中止しました</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start3">
<English>Attach Tow Rope (3.2m)</English>
<Japanese>けん引ロープ (3.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start6">
<English>Attach Tow Rope (6.2m)</English>
<Japanese>けん引ロープ (6.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start12">
<English>Attach Tow Rope (12.2m)</English>
<Japanese>けん引ロープ (12.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start15">
<English>Attach Tow Rope (15.2m)</English>
<Japanese>けん引ロープ (15.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start18">
<English>Attach Tow Rope (18.2m)</English>
<Japanese>けん引ロープ (18.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start27">
<English>Attach Tow Rope (27.2m)</English>
<Japanese>けん引ロープ (28.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_start36">
<English>Attach Tow Rope (36.2m)</English>
<Japanese>けん引ロープ (36.2m) を取り付け</Japanese>
</Key>
<Key ID="STR_ACE_Towing_detach">
<English>Detach Tow Rope</English>
<Japanese>けん引ロープを外す</Japanese>
</Key>
</Package>
</Project>

View File

@ -40,7 +40,7 @@ GVAR(elementsSet) = call CBA_fnc_createNamespace;
if (_name in ELEMENTS_BASIC) then {
[true] call FUNC(setElements);
} else {
private _nameNoPrefix = toLower (_name select [_delimPos]);
private _nameNoPrefix = toLower (_name select [7]);
private _cachedElement = GVAR(configCache) getVariable _nameNoPrefix;
if (!isNil "_cachedElement") then {
[_nameNoPrefix, _value, true] call FUNC(setAdvancedElement);

View File

@ -23,7 +23,7 @@ class CfgAmmo {
class ACE_G_40mm_HE;
CREATE_INCENDIARY_AMMO(BulletBase, BulletCore, 0.5);
CREATE_INCENDIARY_AMMO(BulletBase, BulletCore, 0.1);
CREATE_INCENDIARY_AMMO(ShellBase, ShellCore, 1.0);
CREATE_INCENDIARY_AMMO(ammo_Penetrator_Base, ShellBase, 1.0);
CREATE_INCENDIARY_AMMO(MissileBase, MissileCore, 1.0);

View File

@ -1,19 +1,19 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};

View File

@ -2,10 +2,3 @@ ace_vehicle_damage
===================
Adds enhanced vehicle damage. Primary goal is to remove global vehicle health and instead opt for a "component based" health system.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Brandon TCVM)](https://github.com/TheCandianVendingMachine)

View File

@ -3,21 +3,27 @@
<Package name="Vehicle_Damage">
<Key ID="STR_ACE_Vehicle_Damage_category_displayName">
<English>ACE Advanced Vehicle Damage</English>
<Japanese>ACE 拡張車両ダメージ</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_setting_description">
<English>Enable/Disable advanced vehicle damage</English>
<Japanese>拡張車両ダメージの使用を設定します。</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_carDamage_setting_description">
<English>Enable/Disable advanced car damage (Experimental)</English>
<Japanese>拡張車ダメージ (試験的)</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_carDamage_setting_enable">
<English>Enable/Disable advanced Car Damage</English>
<Japanese>拡張車ダメージの使用を設定します。</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_removeAmmoAfterCookoff_setting_description">
<English>Removes all vehicle ammo after cook-off</English>
<Japanese>誘爆後は車両から全ての弾薬を削除します。</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_removeAmmoAfterCookoff_setting_enable">
<English>Enable/Disable Ammo Removal During Cook-Off</English>
<Japanese>誘爆後の弾薬処理</Japanese>
</Key>
<Key ID="STR_ACE_Vehicle_Damage_generic_turret_wreck">
<English>Wreck (Turret)</English>

View File

@ -1,17 +1,17 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
clientInit = QUOTE(call COMPILE_SCRIPT(XEH_clientInit));
};
};

Some files were not shown because too many files have changed in this diff Show More