mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'upstream/master' into common-reload-mutex-event
This commit is contained in:
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -36,7 +36,7 @@ We welcome anyone to contribute to this repository. Issues that we are actively
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via issue or [Discord](https://acemod.org/discord) with the [ACE3 project maintainers](https://ace3.acemod.org/team.html) before making a change. This may not be necessary if you are contributing for something which has an existing issue in our repository already.
|
||||
|
||||
1. Please make a pull request (PR) as early as possible. This lets use help you in the proces of developing it. When opening a work in progress pull request, mark your PR with a `WIP:` prefix.
|
||||
1. Please make a pull request (PR) as early as possible. This lets use help you in the proces of developing it. When opening a work in progress pull request, use GitHub's draft feature. This will mark the PR as a work in progress and will prevent it from being merged until you mark it as ready for review.
|
||||
2. Describe what this pull request will do and how it solves this in the description of your PR. A clear intent and description of the way the issue is resolved will help us to review the PR more efficiently.
|
||||
3. Please follow our [Development Guidelines](https://ace3.acemod.org/wiki/development/).
|
||||
|
||||
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -4,6 +4,6 @@
|
||||
|
||||
### IMPORTANT
|
||||
|
||||
- [ ] If the contribution affects [the documentation](https://github.com/acemod/ACE3/tree/master/docs), please include your changes in this pull request so the documentation will appear on the [website](https://ace3.acemod.org/).
|
||||
- [ ] [Development Guidelines](https://ace3.acemod.org/wiki/development/) are read, understood and applied.
|
||||
- [ ] Title of this PR uses our standard template `Component - Add|Fix|Improve|Change|Make|Remove {changes}`.
|
||||
- If the contribution affects [the documentation](https://github.com/acemod/ACE3/tree/master/docs), please include your changes in this pull request so the documentation will appear on the [website](https://ace3.acemod.org/).
|
||||
- [Development Guidelines](https://ace3.acemod.org/wiki/development/) are read, understood and applied.
|
||||
- Title of this PR uses our standard template `Component - Add|Fix|Improve|Change|Make|Remove {changes}`.
|
||||
|
6
.github/release-drafter.yml
vendored
6
.github/release-drafter.yml
vendored
@ -21,6 +21,10 @@ categories:
|
||||
labels:
|
||||
- 'kind/cleanup'
|
||||
- 'area/compatibility'
|
||||
- 'kind/change'
|
||||
- title: '**SETTINGS:**'
|
||||
labels:
|
||||
- 'kind/setting'
|
||||
- title: '**TRANSLATIONS:**'
|
||||
labels:
|
||||
- 'area/translations'
|
||||
@ -39,5 +43,5 @@ template: |
|
||||
|
||||
replacers:
|
||||
# Category titles
|
||||
- search: '/\#\# (\*\*(ADDED|FIXED|IMPROVED|CHANGED|TRANSLATIONS):\*\*)/g'
|
||||
- search: '/\#\# (\*\*(ADDED|FIXED|IMPROVED|CHANGED|SETTINGS|TRANSLATIONS):\*\*)/g'
|
||||
replace: '$1'
|
||||
|
8
.github/workflows/arma.yml
vendored
8
.github/workflows/arma.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Validate SQF
|
||||
run: python3 tools/sqf_validator.py
|
||||
- name: Validate Config
|
||||
@ -22,6 +22,8 @@ jobs:
|
||||
run: python3 tools/check_strings.py
|
||||
- name: Check for BOM
|
||||
uses: arma-actions/bom-check@master
|
||||
with:
|
||||
path: 'addons'
|
||||
- name: Validate function headers
|
||||
run: python3 docs/tools/document_functions.py --debug
|
||||
|
||||
@ -29,7 +31,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Lint (sqflint)
|
||||
uses: arma-actions/sqflint@master
|
||||
continue-on-error: true # No failure due to many false-positives
|
||||
@ -38,7 +40,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup HEMTT
|
||||
uses: arma-actions/hemtt@v1
|
||||
- name: Run HEMTT build
|
||||
|
4
.github/workflows/documentation.yml
vendored
4
.github/workflows/documentation.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Python packages
|
||||
run: |
|
||||
pip3 install wheel
|
||||
@ -33,7 +33,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Extract Dependencies
|
||||
run: python3 tools/extract_dependencies.py --markdown
|
||||
|
2
.github/workflows/extensions.yml
vendored
2
.github/workflows/extensions.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Build
|
||||
shell: cmd
|
||||
run: |
|
||||
|
44
.github/workflows/hemtt.yml
vendored
Normal file
44
.github/workflows/hemtt.yml
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
name: HEMTT
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request_target:
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Install Arma 3 Tools
|
||||
uses: arma-actions/arma3-tools@master
|
||||
with:
|
||||
toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }}
|
||||
- name: Checkout the source code
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup HEMTT
|
||||
uses: arma-actions/hemtt@v1
|
||||
- name: Checkout pull request
|
||||
uses: actions/checkout@v4
|
||||
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 addons\
|
||||
rm -r optionals\
|
||||
rm -r include\
|
||||
xcopy /e /h /q pullrequest\addons addons\
|
||||
xcopy /e /h /q pullrequest\optionals optionals\
|
||||
xcopy /e /h /q pullrequest\include include\
|
||||
- name: Run HEMTT build
|
||||
run: hemtt build
|
||||
- name: Rename build folder
|
||||
run: mv .hemttout/build .hemttout/@ace
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ace3-${{ github.sha }}
|
||||
path: .hemttout/@*
|
7
.github/workflows/pboproject.yml
vendored
7
.github/workflows/pboproject.yml
vendored
@ -35,18 +35,18 @@ jobs:
|
||||
RHSSAF_URL: ${{ secrets.RHSSAF_URL }}
|
||||
RHSUSF_URL: ${{ secrets.RHSUSF_URL }}
|
||||
- name: Checkout CBA A3
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: x\cba
|
||||
ref: master
|
||||
repository: CBATeam/CBA_A3.git
|
||||
- name: Checkout ACE3
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: z\ace
|
||||
persist-credentials: false
|
||||
- name: Checkout pull request
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
if: ${{ github.event_name == 'pull_request_target' }}
|
||||
with:
|
||||
path: pullrequest
|
||||
@ -66,6 +66,7 @@ jobs:
|
||||
pboproject -P
|
||||
xcopy /e /h /q z\ace\tools\pDummies\gm gm\
|
||||
xcopy /e /h /q z\ace\tools\pDummies\vn vn\
|
||||
xcopy /e /h /q z\ace\tools\pDummies\WW2 WW2\
|
||||
- name: Build
|
||||
run: py P:\z\ace\tools\make.py ci
|
||||
env:
|
||||
|
@ -24,9 +24,10 @@ exclude = [
|
||||
"/initsettings.sqf",
|
||||
"/initkeybinds.sqf",
|
||||
"/xeh_prep.sqf",
|
||||
"dev",
|
||||
"/dev/",
|
||||
"medical_ai/statemachine.sqf",
|
||||
"common/functions/fnc_dummy.sqf",
|
||||
"zeus/functions/fnc_zeusAttributes.sqf",
|
||||
]
|
||||
|
||||
[hemtt.config]
|
||||
@ -34,7 +35,15 @@ preset = "Hemtt"
|
||||
|
||||
[hemtt.launch]
|
||||
workshop = [
|
||||
"450814997", # CBA_A3's Workshop ID
|
||||
"450814997", # CBA_A3
|
||||
]
|
||||
|
||||
[hemtt.launch.spe]
|
||||
workshop = [
|
||||
"450814997", # CBA_A3
|
||||
]
|
||||
dlc = [
|
||||
"spe"
|
||||
]
|
||||
|
||||
[hemtt.launch.vn]
|
||||
@ -44,3 +53,20 @@ workshop = [
|
||||
dlc = [
|
||||
"S.O.G. Prairie Fire",
|
||||
]
|
||||
|
||||
[hemtt.launch.ws]
|
||||
workshop = [
|
||||
"450814997", # CBA_A3's Workshop ID
|
||||
]
|
||||
dlc = [
|
||||
"Western Sahara",
|
||||
]
|
||||
|
||||
[hemtt.launch.rhs]
|
||||
workshop = [
|
||||
"450814997", # CBA_A3's Workshop ID
|
||||
"843425103", # RHS AFRF Workshop ID
|
||||
"843577117", # RHS USAF Workshop ID
|
||||
"843593391", # RHS GREF Workshop ID
|
||||
"843632231", # RHS SAF Workshop ID
|
||||
]
|
||||
|
@ -10,7 +10,7 @@ Brett Mayson
|
||||
bux578 <github@jonathandavid.de>
|
||||
commy2
|
||||
Dahlgren
|
||||
tcvm <baileydanyluk@gmail.com>
|
||||
Drofseh <drofseh.arma@gmail.com>
|
||||
esteldunedain <nicolas.d.badano@gmail.com>
|
||||
Felix Wiegand <koffeinflummi@gmail.com>
|
||||
Garth "L-H" de Wet <garthofhearts@gmail.com>
|
||||
@ -18,14 +18,17 @@ Giallustio
|
||||
Glowbal
|
||||
Grim
|
||||
Janus
|
||||
johnb43
|
||||
jokoho482 <jokoho482@gmail.com>
|
||||
Jonpas <jonpas33@gmail.com>
|
||||
Kieran
|
||||
kymckay
|
||||
mharis001 <mhariszakar@gmail.com>
|
||||
MikeMF
|
||||
NouberNou
|
||||
PabstMirror <pabstmirror@gmail.com>
|
||||
Ruthberg <ulteq@web.de>
|
||||
tcvm <baileydanyluk@gmail.com>
|
||||
tpM
|
||||
veteran29
|
||||
ViperMaul
|
||||
@ -79,7 +82,6 @@ diwako
|
||||
dixon13 <dixonbegay@gmail.com>
|
||||
Drift_91
|
||||
Drill <drill87@gmail.com>
|
||||
Drofseh <drofseh@gmail.com>
|
||||
Dslyecxi <dslyecxi@gmail.com>
|
||||
Dudakov aka [OMCB]Kaban <dudakov.s@gmail.com>
|
||||
Eclipser <jms@modeemi.fi>
|
||||
@ -113,6 +115,7 @@ havena <silveredenis@gmail.com>
|
||||
Hawkins
|
||||
Head <brobergsebastian@gmail.com>
|
||||
Hybrid V
|
||||
Hypoxic <martini_a@outlook.com>
|
||||
JasperRab <jasper@jasperrab.eu>
|
||||
JDT
|
||||
john681611 <john681611@hotmail.com>
|
||||
@ -122,6 +125,7 @@ Kavinsky <nmunozfernandez@gmail.com>
|
||||
Keithen <Keithen.Neu@gmail.com>
|
||||
Kllrt <kllrtik@gmail.com>
|
||||
KokaKolaA3
|
||||
Krzyciu
|
||||
legman <juicemelon@msn.com>
|
||||
Legolasindar "Viper" <legolasindar@gmail.com>
|
||||
licht-im-Norden87 <lichtimnorden87@gmail.com>
|
||||
@ -133,7 +137,6 @@ MarcBook
|
||||
meat <p.humberdroz@gmail.com>
|
||||
Michail Nikolaev
|
||||
MikeMatrix <m.braun92@gmail.com>
|
||||
MikeMF
|
||||
mjc4wilton <mjc4wilton@gmail.com>
|
||||
Mysteryjuju
|
||||
nic547 <nic547@outlook.com>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 133 KiB |
12
README.md
12
README.md
@ -1,10 +1,11 @@
|
||||
<p align="center">
|
||||
<img src="https://github.com/acemod/ACE3/raw/master/extras/assets/logo/black/ACE3-Logo.jpg" width="480">
|
||||
<img src="https://github.com/acemod/ACE3/raw/master/extras/assets/logo/black/ACE3-Logo.png#gh-light-mode-only" width="480">
|
||||
<img src="https://github.com/acemod/ACE3/raw/master/extras/assets/logo/white/ACE3-Logo.png#gh-dark-mode-only" width="480">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||
<img src="https://img.shields.io/badge/Version-3.15.2-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
<img src="https://img.shields.io/badge/Version-3.16.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||
@ -21,9 +22,6 @@
|
||||
<a href="https://acemod.org/discord">
|
||||
<img src="https://img.shields.io/badge/Discord-Join-darkviolet.svg?style=flat-square" alt="ACE3 Discord">
|
||||
</a>
|
||||
<a href="https://circleci.com/gh/acemod/ACE3">
|
||||
<img src="https://circleci.com/gh/acemod/ACE3.svg?style=svg" alt="ACE3 Build Status">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@ -97,9 +95,7 @@ Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report
|
||||
|
||||
### Testing & building
|
||||
|
||||
To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or [with git](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build:
|
||||
|
||||
- [Setting up the development environment](https://ace3.acemod.org/wiki/development/setting-up-the-development-environment.html) – step-by-step instructions on how to properly setup and build a version of ACE3 for testing purposes.
|
||||
To help us test the latest development changes, download the [artifact](https://github.com/acemod/ACE3/actions/workflows/arma.yml) of the branch you'd like to test or subscribe to "Anrop ACE3 Master" on the workshop to test `master` branch. Alternatively [build your own version](https://ace3.acemod.org/wiki/development/setting-up-the-development-environment.html).
|
||||
|
||||
### Get in touch
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg, MikeMatrix, joko // Jonas
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,5 +1,5 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: esteldunedain
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal, Ruthberg, joko // Jonas
|
||||
* Handle the PFH for Bullets
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal, Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal, Ruthberg
|
||||
* Module for adjusting the advanced ballistics settings
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
* Initializes the advanced ballistics extension with terrain data
|
||||
@ -19,7 +19,7 @@ if (!hasInterface) exitWith {};
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
private _initStartTime = diag_tickTime;
|
||||
private _mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
||||
private _mapSize = worldSize;
|
||||
|
||||
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
||||
INFO_1("Terrain already initialized [world: %1]", worldName);
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ruthberg
|
||||
*
|
||||
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\advanced_ballistics\script_component.hpp"
|
@ -17,7 +17,19 @@ if (!hasInterface) exitWith {};
|
||||
};
|
||||
}, QUOTE(ADDON)] call EFUNC(common,addSwayFactor);
|
||||
|
||||
["multiplier", {GVAR(swayFactor)}, QUOTE(ADDON)] call EFUNC(common,addSwayFactor);
|
||||
["multiplier", {
|
||||
switch (true) do {
|
||||
case (isWeaponRested ACE_player): {
|
||||
GVAR(swayFactor) * GVAR(restedSwayFactor)
|
||||
};
|
||||
case (isWeaponDeployed ACE_player): {
|
||||
GVAR(swayFactor) * GVAR(deployedSwayFactor)
|
||||
};
|
||||
default {
|
||||
GVAR(swayFactor)
|
||||
};
|
||||
};
|
||||
}, QUOTE(ADDON)] call EFUNC(common,addSwayFactor);
|
||||
|
||||
// recheck weapon inertia after weapon swap, change of attachments or switching unit
|
||||
["weapon", {[ACE_player] call FUNC(getWeaponInertia)}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Adds a duty factor.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Creates the stamina bar.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Calculates the duty of the current animation.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Calculates the current metabolic costs for a unit.
|
||||
@ -36,16 +36,19 @@ if (GVAR(isSwimming)) then {
|
||||
_terrainGradient = 0;
|
||||
};
|
||||
|
||||
// Metabolic cost for walking and running is different
|
||||
if (_velocity > 2) then {
|
||||
// Running
|
||||
(
|
||||
2.10 * SIM_BODYMASS
|
||||
+ 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2)
|
||||
+ (SIM_BODYMASS + _gearMass) * (0.90 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient)
|
||||
+ (SIM_BODYMASS + _gearMass) * (0.9 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient)
|
||||
) * 0.23 * _duty
|
||||
} else {
|
||||
// Walking
|
||||
(
|
||||
1.05 * SIM_BODYMASS
|
||||
+ 4 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2)
|
||||
+ 2 * (SIM_BODYMASS + _gearMass) * ((_gearMass / SIM_BODYMASS) ^ 2)
|
||||
+ (SIM_BODYMASS + _gearMass) * (1.15 * (_velocity ^ 2) + 0.66 * _velocity * _terrainGradient)
|
||||
) * 0.23 * _duty
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Pterolatypus
|
||||
* Calculates total weapon inertia, accounting for attachments.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Handles any audible, visual and physical effects of fatigue.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Handles switching units (once on init and afterwards via Zeus).
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Handles visual changes of the stamina bar.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Main looping function that updates fatigue values.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Initializes the module settings.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Removes a duty factor.
|
||||
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\advanced_fatigue\script_component.hpp"
|
@ -89,3 +89,21 @@
|
||||
[0, 5, 1, 1],
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(restedSwayFactor),
|
||||
"SLIDER",
|
||||
[LSTRING(RestedSwayFactor), LSTRING(RestedSwayFactor_Description)],
|
||||
LSTRING(DisplayName),
|
||||
[0, 5, 1, 2],
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(deployedSwayFactor),
|
||||
"SLIDER",
|
||||
[LSTRING(DeployedSwayFactor), LSTRING(DeployedSwayFactor_Description)],
|
||||
LSTRING(DisplayName),
|
||||
[0, 5, 1, 2],
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -172,8 +172,8 @@
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_SwayFactor_Description">
|
||||
<English>Influences the amount of weapon sway. Higher means more sway.</English>
|
||||
<Spanish>Afecta al la estabilidad de la mira. Más alto significa más balanceo</Spanish>
|
||||
<German>Beeinflusst den Faktor, wie ruhig man eine Waffe halten kann. Ein höherer Wert bedeutet weniger Stabilisierung</German>
|
||||
<Japanese>武器を持つ手のぶれ度合いを設定します。 値が高ければ高いほど、手ぶれが強くなります。</Japanese>
|
||||
<German>Beeinflusst, wie ruhig man eine Waffe halten kann. Ein höherer Wert bedeutet weniger Stabilisierung.</German>
|
||||
<Japanese>武器の手ぶれの量に影響します。値が高いほど、手ぶれが強くなります。</Japanese>
|
||||
<Chinesesimp>影响手持武器的晃动程度,数值越高,抖动的越厉害。</Chinesesimp>
|
||||
<Chinese>影響手持武器晃動程度,數值越高抖動越厲害</Chinese>
|
||||
<French>Influe sur l'amplitude du tremblement de l'arme. Une valeur plus élevée signifie plus de tremblement.</French>
|
||||
@ -184,6 +184,38 @@
|
||||
<Czech>Ovlivňuje množství kývání zbraní. Vyšší znamená více kývání.</Czech>
|
||||
<Korean>손떨림의 정도를 정합니다. 높을 수록 많이 휘적입니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_RestedSwayFactor">
|
||||
<English>Rested sway factor</English>
|
||||
<French>Facteur de balancement au repos</French>
|
||||
<Korean>휴식 시 손떨림 정도</Korean>
|
||||
<Portuguese>Fator de balanço de mira em repouso</Portuguese>
|
||||
<German>Verwacklungsfaktor, wenn aufgelegt</German>
|
||||
<Japanese>静止時の手ぶれ係数</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_RestedSwayFactor_Description">
|
||||
<English>Influences the amount of weapon sway while weapon is rested.</English>
|
||||
<French>Influence le degré de balancement de l'arme au repos.</French>
|
||||
<Korean>무기가 아무런 행동도 하지 않는 동안 무기가 흔들리는 정도를 정합니다.</Korean>
|
||||
<Portuguese>Influencia a quantidade de balanço de mira enquanto a arma está em repouso.</Portuguese>
|
||||
<German>Beeinflusst, wie ruhig man die Waffe hält, während sie aufgelegt ist.</German>
|
||||
<Japanese>静止している時の武器の手ぶれの量に影響します。</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_DeployedSwayFactor">
|
||||
<English>Deployed sway factor</English>
|
||||
<French>Facteur de balancement déployé</French>
|
||||
<Korean>거치 시 손떨림 정도</Korean>
|
||||
<Portuguese>Fator de balanço de mira em posição de tiro</Portuguese>
|
||||
<German>Verwacklungsfaktor, wenn Zweibein aufgestellt ist.</German>
|
||||
<Japanese>展開時の手ぶれ係数</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_DeployedSwayFactor_Description">
|
||||
<English>Influences the amount of weapon sway while weapon is deployed.</English>
|
||||
<French>Influence le degré de balancement de l'arme déployée.</French>
|
||||
<Korean>무기를 거치하는 동안 무기를 흔드는 정도를 정합니다.</Korean>
|
||||
<Portuguese>Influencia a quantidade de balanço de mira enquanto a arma está em posição de tiro.</Portuguese>
|
||||
<German>Beeinflusst, wie ruhig man die Waffen hält, während das Zweibein aufgestellt ist.</German>
|
||||
<Japanese>武器の展開(Cキー)時の武器の手ぶれの量に影響します。</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_Enabled">
|
||||
<English>Enabled</English>
|
||||
<Spanish>Activada</Spanish>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Fired XEH
|
||||
GVAR(ammoEventHandlers) = createHashMap;
|
||||
[QGVAR(throwFiredXEH), FUNC(throwFiredXEH)] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Exit on HC
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Checks if a throwable can be prepared.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Checks if a throwable can be thrown.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Zapat, Dslyecxi, Jonpas
|
||||
* Draws throw arc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas, kymckay
|
||||
* Handles drawing the currently selected or cooked throwable.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Exits throw mode.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Retrieve muzzle name from config.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Initializes the Advanced Throwing module.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Key down event.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Mouse button down event.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Mouse scroll wheel changed event.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Picks up a throwable from the ground.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Prepares throwable or selects the next.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Primes the throwable, creates global throwable vehicle and throws Fired XEH.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror, Jonpas
|
||||
* When interact_menu starts rendering (from "interact_keyDown" event).
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dslyecxi, Jonpas
|
||||
* Throw selected throwable.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: CBA Team
|
||||
* Throws Fired XEH.
|
||||
@ -20,14 +20,25 @@
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "", "_muzzle", "", "_ammo"];
|
||||
TRACE_1("Fired",_this);
|
||||
|
||||
{
|
||||
_this call _x;
|
||||
} forEach ((_this select 0) getVariable "cba_xeh_fired");
|
||||
} forEach (_unit getVariable "cba_xeh_fired");
|
||||
|
||||
// Call muzzle fired EH
|
||||
{
|
||||
_this call compile getText (_x >> "fired");
|
||||
} forEach (configProperties [configFile >> "CfgWeapons" >> "Throw" >> (_this select 2) >> "EventHandlers", "isClass _x", true]);
|
||||
} forEach (configProperties [configFile >> "CfgWeapons" >> "Throw" >> _muzzle >> "EventHandlers", "isClass _x", true]);
|
||||
|
||||
// Call ammo fired EH
|
||||
{ _this call _x } forEach (GVAR(ammoEventHandlers) getOrDefaultCall [_ammo, {
|
||||
private _cfg = configFile >> "CfgAmmo" >> _ammo >> "EventHandlers";
|
||||
private _eventHandlers = [];
|
||||
{
|
||||
private _eh = getText (_x >> "fired");
|
||||
if (_eh != "") then { _eventHandlers pushBack compile _eh };
|
||||
} forEach ([_cfg] + configProperties [_cfg, "isClass _x", true]);
|
||||
_eventHandlers
|
||||
}, true]);
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Updates controls hints based on current state.
|
||||
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\advanced_throwing\script_component.hpp"
|
@ -289,7 +289,7 @@
|
||||
<Italian>(Scorrere) Estendere</Italian>
|
||||
<Chinese>(滾輪) 延長</Chinese>
|
||||
<Chinesesimp>(滚轮)延长</Chinesesimp>
|
||||
<Portuguese>(Roda do Mouse) Extender</Portuguese>
|
||||
<Portuguese>(Roda do Mouse) Estender</Portuguese>
|
||||
<Czech>(Scrollovat) Oddálit</Czech>
|
||||
<Turkish>(Tekerlek) Uzat</Turkish>
|
||||
</Key>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Assigns AI first found NVG in their inventory during night time and unassigns it during day time.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* waitAndExecute Handler for periodic NVG assignment.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: alganthe
|
||||
* Draws AI garrison pathing while the Zeus display is open.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: alganthe
|
||||
* Garrison function used to garrison AI inside buildings.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: alganthe
|
||||
* Internal function used by ace_ai_fnc_garrison to make the units move to the positions it picked.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
* Initializes the Zeus display.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: alganthe
|
||||
* Used to un-garrison units.
|
||||
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\ai\script_component.hpp"
|
@ -83,9 +83,21 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_AI_AssignNVG_DisplayName">
|
||||
<English>Auto-Equip NVGs</English>
|
||||
<Polish>Automatyczne zakładanie NVG</Polish>
|
||||
<German>Automatisch NVGs ausrüsten</German>
|
||||
<Korean>야투경 자동 창착</Korean>
|
||||
<French>Equipement JVN automatique</French>
|
||||
<Portuguese>Equipar NVGs automaticamente</Portuguese>
|
||||
<Japanese>暗視装置の自動装備</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_AI_AssignNVG_Description">
|
||||
<English>Equips NVG in inventory during night time and unequips it during day time.\nDoes not add NVGs to inventory!</English>
|
||||
<Polish>Zakłada NVG w nocy i zdejmuje je w ciągu dnia.\nNie dodaje NVG do ekwipunku!</Polish>
|
||||
<German>Rüstet NVG nachts aus dem Inventar aus und entfernt es tagsüber.\nFügt keine NVGs zum Inventar hinzu!</German>
|
||||
<Korean>야간에는 야투경을 소지품에 장착하고 주간에는 장착을 해제합니다.\n주의! 소지품에 야투경을 추가하는 것이 아닙니다!</Korean>
|
||||
<French>Equipe des JVN pendant la nuit et les déséquipe le jour.\nN'ajoute pas les JVN dans l'intenvaire !</French>
|
||||
<Portuguese>Equipa o NVG do inventário durante a noite e desequipa durante o dia.\nNão adiciona NVGs ao inventário!</Portuguese>
|
||||
<Japanese>インベントリ内の暗視装置を夜間に装備し、日中は解除し収納します。\nこれはNVGをインベントリに追加しません。</Japanese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dystopian
|
||||
* Check if Eject action can be shown.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Adds actions to a drone
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Get drone's target location, if aimed at infinity it will return a virtual point
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Modify the current waypoint of a drone
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Set new waypoint of a drone
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Dystopian
|
||||
* Add Eject action to vehicle if needed.
|
||||
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\aircraft\script_component.hpp"
|
@ -65,6 +65,7 @@
|
||||
<Czech>30mm Tříštivo-trhavá zápalná střela</Czech>
|
||||
<Russian>30мм Осколочно-Фугасный Зажигательный</Russian>
|
||||
<Korean>30mm 고폭소이탄</Korean>
|
||||
<Portuguese>30mm Alto-Explosivo Incendiária</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortHEI">
|
||||
<English>30mm HEI</English>
|
||||
@ -79,6 +80,7 @@
|
||||
<Czech>30mm HEI</Czech>
|
||||
<Russian>30мм ОФЗ</Russian>
|
||||
<Korean>30mm HEI</Korean>
|
||||
<Portuguese>30mm AEI</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionAP">
|
||||
<English>30mm DU Armor Piercing</English>
|
||||
@ -93,6 +95,7 @@
|
||||
<Czech>30mm Protipancéřová střela z ochuzeného Uranu</Czech>
|
||||
<Russian>30мм ОУ Бронебойный Снаряд</Russian>
|
||||
<Korean>30mm 열화우라늄 철갑탄</Korean>
|
||||
<Portuguese>30mm DU Perfurante de Blindagem</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortAP">
|
||||
<English>30mm DU AP</English>
|
||||
@ -107,6 +110,7 @@
|
||||
<Czech>30 mm DU AP</Czech>
|
||||
<Russian>30мм ОУ БС</Russian>
|
||||
<Korean>30mm DU AP</Korean>
|
||||
<Portuguese>30mm DU AP</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionCM41">
|
||||
<English>30mm Combat Mix 4:1 DU:HEI</English>
|
||||
@ -121,6 +125,7 @@
|
||||
<Czech>30mm Bojový Mix 4:1 DU:HEI</Czech>
|
||||
<Russian>30мм Смешанное боепитание 4:1 ОУ:ОФЗ</Russian>
|
||||
<Korean>30mm 4:1 열화:고폭소이</Korean>
|
||||
<Portuguese>30mm Mix de Combate 4:1 DU:AEI</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortCM41">
|
||||
<English>30mm CM 4:1</English>
|
||||
|
@ -75,11 +75,11 @@ class GVAR(sorts) {
|
||||
scope = 2;
|
||||
displayName = CSTRING(sortByProtectionBallistic);
|
||||
tabs[] = {{3,4,6}, {}};
|
||||
statement = QUOTE([ARR_3(_this, 1000000, 1000)] call FUNC(sortStatement_protection));
|
||||
statement = QUOTE([ARR_3(_this,1000000,1000)] call FUNC(sortStatement_protection));
|
||||
};
|
||||
|
||||
class ACE_protectionExplosive: ACE_protectionBallistic {
|
||||
displayName = CSTRING(sortByProtectionExplosive);
|
||||
statement = QUOTE([ARR_3(_this, 1000, 1000000)] call FUNC(sortStatement_protection));
|
||||
statement = QUOTE([ARR_3(_this,1000,1000000)] call FUNC(sortStatement_protection));
|
||||
};
|
||||
};
|
||||
|
@ -24,7 +24,7 @@ class GVAR(stats) {
|
||||
priority = 1.5;
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_weight";
|
||||
showText = 1;
|
||||
textStatement = QUOTE([ARR_2(_this select 0, _this select 1)] call FUNC(statTextStatement_mass));
|
||||
textStatement = QUOTE([ARR_2(_this select 0,_this select 1)] call FUNC(statTextStatement_mass));
|
||||
tabs[] = {{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}, {0,1,2,3,4,5,6,7}};
|
||||
};
|
||||
class ACE_rateOfFire: statBase {
|
||||
@ -34,8 +34,8 @@ class GVAR(stats) {
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_rof";
|
||||
showBar = 1;
|
||||
showText = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)])])] call FUNC(statBarStatement_rateOfFIre));
|
||||
textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], false)])] call FUNC(statTextStatement_rateOfFire));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_2([ARR_2(-1.4,0.31)],[ARR_2(1,0.01)])])] call FUNC(statBarStatement_rateOfFIre));
|
||||
textStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_2([ARR_2(-1.4,0.31)],false)])] call FUNC(statTextStatement_rateOfFire));
|
||||
tabs[] = {{0,1}, {}};
|
||||
};
|
||||
class ACE_accuracy: statBase {
|
||||
@ -45,8 +45,8 @@ class GVAR(stats) {
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_dispersion";
|
||||
showBar = 1;
|
||||
showText = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-4, -1.7)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_accuracy));
|
||||
textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-4, -1.7)], false)])] call FUNC(statTextStatement_accuracy));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_3([ARR_2(-4,-1.7)],[ARR_2(1,0.01)],true)])] call FUNC(statBarStatement_accuracy));
|
||||
textStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_2([ARR_2(-4,-1.7)],false)])] call FUNC(statTextStatement_accuracy));
|
||||
tabs[] = {{0,1}, {}};
|
||||
};
|
||||
class ACE_maxZeroing: statBase {
|
||||
@ -55,7 +55,7 @@ class GVAR(stats) {
|
||||
stats[] = {"maxZeroing"};
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_range";
|
||||
showBar = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 2500)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_3([ARR_2(0,2500)],[ARR_2(0.01,1)],false)])] call FUNC(statBarStatement_default));
|
||||
tabs[] = {{0,1,2}, {}};
|
||||
};
|
||||
class ACE_impact: statBase {
|
||||
@ -64,7 +64,7 @@ class GVAR(stats) {
|
||||
stats[] = {"hit", "initSpeed"};
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_impact";
|
||||
showBar = 1;
|
||||
barStatement = QUOTE([ARR_3(_this select 0, _this select 1, [ARR_2([ARR_2(0, 3.2)], [ARR_2(-1, 1100)])])] call FUNC(statBarStatement_impact));
|
||||
barStatement = QUOTE([ARR_3(_this select 0,_this select 1,[ARR_2([ARR_2(0,3.2)],[ARR_2(-1,1100)])])] call FUNC(statBarStatement_impact));
|
||||
tabs[] = {{0,1,2}, {}};
|
||||
};
|
||||
class ACE_scopeMagnification: statBase {
|
||||
@ -105,7 +105,7 @@ class GVAR(stats) {
|
||||
stats[] = {"passthrough"};
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_passthrough";
|
||||
showBar = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 0.63)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_3([ARR_2(0,0.63)],[ARR_2(0.01,1)],false)])] call FUNC(statBarStatement_default));
|
||||
tabs[] = {{3,4,6}, {}};
|
||||
};
|
||||
class ACE_explosiveResistance: statBase {
|
||||
@ -114,7 +114,7 @@ class GVAR(stats) {
|
||||
stats[] = {"armor"};
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_armor";
|
||||
showBar = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 0.80)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_3([ARR_2(0,0.80)],[ARR_2(0.01,1)],false)])] call FUNC(statBarStatement_default));
|
||||
tabs[] = {{3,4,6}, {}};
|
||||
};
|
||||
class ACE_load: statBase {
|
||||
@ -123,7 +123,7 @@ class GVAR(stats) {
|
||||
stats[] = {"maximumLoad"};
|
||||
displayName = "$STR_a3_rscdisplayarsenal_stat_load";
|
||||
showBar = 1;
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 500)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default));
|
||||
barStatement = QUOTE([ARR_3((_this select 0) select 0,_this select 1,[ARR_3([ARR_2(0,500)],[ARR_2(0.01,1)],false)])] call FUNC(statBarStatement_default));
|
||||
tabs[] = {{3,4,5}, {}};
|
||||
};
|
||||
class ACE_smokeChemTTL: statBase {
|
||||
@ -133,7 +133,7 @@ class GVAR(stats) {
|
||||
displayName = CSTRING(statTTL);
|
||||
showText = 1;
|
||||
textStatement = QUOTE(call FUNC(statTextStatement_smokeChemTTL));
|
||||
condition = QUOTE((configName (_this select 1)) isKindOf [ARR_2('smokeShell', configFile >> 'CfgMagazines')]);
|
||||
condition = QUOTE((configName (_this select 1)) isKindOf [ARR_2('smokeShell',configFile >> 'CfgMagazines')]);
|
||||
tabs[] = {{}, {5}};
|
||||
};
|
||||
class ACE_explosionTime: statBase {
|
||||
@ -152,4 +152,13 @@ class GVAR(stats) {
|
||||
textStatement = QUOTE(call FUNC(statTextStatement_magCount));
|
||||
tabs[] = {{}, {4}};
|
||||
};
|
||||
class ACE_illuminators: statBase {
|
||||
scope = 2;
|
||||
priority = 1;
|
||||
stats[] = {};
|
||||
displayName = CSTRING(statIlluminators);
|
||||
showText = 1;
|
||||
textStatement = QUOTE(call FUNC(statTextStatement_illuminators));
|
||||
tabs[] = {{}, {1}};
|
||||
};
|
||||
};
|
||||
|
@ -28,7 +28,7 @@ class Cfg3DEN {
|
||||
w = QUOTE(130 * ATTRIBUTE_W);
|
||||
h = QUOTE(106.83 * ATTRIBUTE_H);
|
||||
attributeLoad = QUOTE([ARR_2(_this,+_value)] call FUNC(attributeLoad));
|
||||
attributeSave = QUOTE(uiNamespace getVariable [ARR_2(QQGVAR(attributeValue),[ARR_2([], 0)])]);
|
||||
attributeSave = QUOTE(uiNamespace getVariable [ARR_2(QQGVAR(attributeValue),[ARR_2([],0)])]);
|
||||
class controls {
|
||||
class ModeTitle: ctrlStatic {
|
||||
idc = -1;
|
||||
@ -40,7 +40,7 @@ class Cfg3DEN {
|
||||
};
|
||||
class Mode: ctrlToolbox {
|
||||
idc = IDC_ATTRIBUTE_MODE;
|
||||
onToolBoxSelChanged = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0), _this select 1)] call FUNC(attributeMode));
|
||||
onToolBoxSelChanged = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0),_this select 1)] call FUNC(attributeMode));
|
||||
x = QUOTE(5 * ATTRIBUTE_W);
|
||||
y = QUOTE(5 * ATTRIBUTE_H);
|
||||
w = QUOTE(125 * ATTRIBUTE_W);
|
||||
@ -55,7 +55,7 @@ class Cfg3DEN {
|
||||
};
|
||||
class Category: ctrlToolboxPictureKeepAspect {
|
||||
idc = IDC_ATTRIBUTE_CATEGORY;
|
||||
onToolBoxSelChanged = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0), _this select 1)] call FUNC(attributeCategory));
|
||||
onToolBoxSelChanged = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0),_this select 1)] call FUNC(attributeCategory));
|
||||
x = QUOTE(5 * ATTRIBUTE_W);
|
||||
y = QUOTE(15 * ATTRIBUTE_H);
|
||||
w = QUOTE(125 * ATTRIBUTE_W);
|
||||
@ -129,7 +129,8 @@ class Cfg3DEN {
|
||||
};
|
||||
class SearchButton: ctrlButtonPicture {
|
||||
idc = IDC_ATTRIBUTE_SEARCH_BUTTON;
|
||||
onButtonClick = QUOTE( \
|
||||
#pragma hemtt suppress pw3_padded_arg
|
||||
onButtonClick = QUOTE(\
|
||||
params ['_searchButton']; \
|
||||
private _controlsGroup = ctrlParentControlsGroup _searchButton; \
|
||||
private _searchBar = _controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_SEARCHBAR; \
|
||||
@ -147,7 +148,8 @@ class Cfg3DEN {
|
||||
class SearchBar: ctrlEdit {
|
||||
idc = IDC_ATTRIBUTE_SEARCHBAR;
|
||||
onKeyUp = QUOTE([ctrlParentControlsGroup (_this select 0)] call FUNC(attributeAddItems));
|
||||
onMouseButtonClick = QUOTE( \
|
||||
#pragma hemtt suppress pw3_padded_arg
|
||||
onMouseButtonClick = QUOTE(\
|
||||
params [ARR_2('_searchBar','_button')]; \
|
||||
if (_button != 1) exitWith {}; \
|
||||
_searchBar ctrlSetText ''; \
|
||||
|
@ -26,7 +26,7 @@ class Display3DEN {
|
||||
class GVAR(portVALoadouts) {
|
||||
text = CSTRING(portLoadoutsText);
|
||||
picture = QPATHTOEF(common,data\logo_ace3_ca.paa);
|
||||
action = QUOTE(call DFUNC(portVALoadouts););
|
||||
action = QUOTE(call DFUNC(portVALoadouts));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -39,11 +39,14 @@ PREP(fillLeftPanel);
|
||||
PREP(fillLoadoutsList);
|
||||
PREP(fillRightPanel);
|
||||
PREP(fillSort);
|
||||
PREP(getVirtualItems);
|
||||
PREP(handleActions);
|
||||
PREP(handleLoadoutsSearchbar);
|
||||
PREP(handleMouse);
|
||||
PREP(handleScrollWheel);
|
||||
PREP(handleSearchbar);
|
||||
PREP(handleSearchInputChanged);
|
||||
PREP(handleSearchModeToggle);
|
||||
PREP(handleStats);
|
||||
PREP(initBox);
|
||||
PREP(itemInfo);
|
||||
@ -92,6 +95,7 @@ PREP(statBarStatement_impact);
|
||||
PREP(statBarStatement_rateOfFIre);
|
||||
PREP(statTextStatement_accuracy);
|
||||
PREP(statTextStatement_explosionTime);
|
||||
PREP(statTextStatement_illuminators);
|
||||
PREP(statTextStatement_magCount);
|
||||
PREP(statTextStatement_mass);
|
||||
PREP(statTextStatement_rateOfFire);
|
||||
@ -102,4 +106,5 @@ PREP(updateCamPos);
|
||||
PREP(updateRightPanel);
|
||||
PREP(updateCurrentItemsList);
|
||||
PREP(updateUniqueItemsList);
|
||||
PREP(updateVirtualItemsFlat);
|
||||
PREP(verifyLoadout);
|
||||
|
@ -18,6 +18,15 @@ GVAR(lastSortDirectionRight) = DESCENDING;
|
||||
[QGVAR(removeDefaultLoadout), LINKFUNC(removeDefaultLoadout)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(renameDefaultLoadout), LINKFUNC(renameDefaultLoadout)] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(refresh), {
|
||||
params ["_object"];
|
||||
|
||||
// If the arsenal is already open, refresh arsenal display
|
||||
if (!isNil QGVAR(currentBox) && {GVAR(currentBox) isEqualTo _object}) then {
|
||||
[true, true] call FUNC(refresh);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(broadcastFace), {
|
||||
params ["_unit", "_face"];
|
||||
_unit setFace _face;
|
||||
@ -149,3 +158,25 @@ GVAR(lastSortDirectionRight) = DESCENDING;
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Compatibility for RHS attachment system. Also used by NIArms.
|
||||
// Will only work for ACE_player, different arsenal centers will be ignored. RHS limitation.
|
||||
if (!isNil "rhs_fnc_accGripod") then {
|
||||
[QEGVAR(arsenal,weaponItemChanged), {
|
||||
params ["_weapon", "_item", "_itemIndex"];
|
||||
if (EGVAR(arsenal,center) != ACE_player) exitWith {};
|
||||
|
||||
switch (_itemIndex) do {
|
||||
case ITEM_INDEX_SIDE: {
|
||||
call rhs_fnc_anpeq15_rail;
|
||||
};
|
||||
case ITEM_INDEX_BIPOD: {
|
||||
// Need this call to make sure RHS's functions are set
|
||||
call rhs_fnc_accGripod;
|
||||
if (getText (configFile >> "CfgWeapons" >> _item >> "rhs_grip_type") == "") then {
|
||||
call rhs_grip_deinitialize;
|
||||
};
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
@ -22,6 +22,14 @@
|
||||
// Favorites
|
||||
#define FAVORITES_COLOR (GVAR(favoritesColor) + [1])
|
||||
|
||||
// Attachments
|
||||
#define ITEM_INDEX_MUZZLE 0
|
||||
#define ITEM_INDEX_SIDE 1
|
||||
#define ITEM_INDEX_OPTIC 2
|
||||
#define ITEM_INDEX_BIPOD 3
|
||||
#define ITEM_INDEX_MAGAZINE 4
|
||||
#define ITEM_INDEX_MAGAZINE_SECONDARY 5
|
||||
|
||||
// IDCs
|
||||
#define IDD_ace_arsenal 1127001
|
||||
#define IDC_mouseArea 0
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Adds custom action buttons.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: 654wak654, johnb43
|
||||
* Adds a loadout to the "Default Loadouts" list.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: Dedmen, johnb43
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: shukari, Schwaggot, johnb43
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Brett Mayson, johnb43
|
||||
* Adds a custom sorting method.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Alganthe, johnb43, LinkIsGrim
|
||||
* Adds a stat to ACE Arsenal.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: Alganthe, Dedmen, johnb43
|
||||
@ -123,3 +123,10 @@ if (_items isEqualType true) then {
|
||||
};
|
||||
|
||||
_object setVariable [QGVAR(virtualItems), _cargo, _global];
|
||||
|
||||
// If the arsenal is already open, refresh arsenal display
|
||||
if (_global) then {
|
||||
[QGVAR(refresh), _object] call CBA_fnc_globalEvent;
|
||||
} else {
|
||||
[QGVAR(refresh), _object] call CBA_fnc_localEvent;
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: mharis001, johnb43
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: mharis001, johnb43
|
||||
@ -18,6 +18,8 @@
|
||||
|
||||
params ["_controlsGroup"];
|
||||
|
||||
forceUnicode 0; // handle non-ANSI characters
|
||||
|
||||
private _category = lbCurSel (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_CATEGORY);
|
||||
private _filter = ctrlText (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_SEARCHBAR);
|
||||
private _configItems = uiNamespace getVariable QGVAR(configItems);
|
||||
@ -28,7 +30,7 @@ _attributeValue params ["_attributeItems", "_attributeMode"];
|
||||
TRACE_3("Populating list",_category,_filter,_attributeValue);
|
||||
if (_filter != "") then {
|
||||
_filter = _filter call EFUNC(common,escapeRegex);
|
||||
_filter = ".*?" + (_filter splitString " " joinString ".*?" + ".*?/io");
|
||||
_filter = ".*?" + (_filter splitString " " joinString ".*?") + ".*?/io";
|
||||
} else {
|
||||
_filter = ".*?/io";
|
||||
};
|
||||
@ -139,3 +141,6 @@ private _config = _cfgClass;
|
||||
|
||||
// Sort alphabetically
|
||||
_listbox lnbSort [1, false];
|
||||
|
||||
// Reset unicode flag
|
||||
forceUnicode -1;
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
* Handles double clicking a row in 3DEN's ace arsenal attribute listbox.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: mharis001
|
||||
* Initializes the objects 3DEN's ace arsenal attribute at scenario start.
|
||||
@ -24,14 +24,12 @@ if (_mode > 0) then {
|
||||
// Blacklist: add full arsenal and take items away
|
||||
[_object, true, true] call FUNC(initBox);
|
||||
|
||||
// Need to delay removal by 2 frames
|
||||
// Wait until all items have been added, so that the blacklisted items can be removed
|
||||
[{
|
||||
[{
|
||||
params ["_object", "_items"];
|
||||
|
||||
[_object, _items, true] call FUNC(removeVirtualItems);
|
||||
}, _this] call CBA_fnc_execNextFrame;
|
||||
}, [_object, _items]] call CBA_fnc_execNextFrame;
|
||||
!isNil {(_this select 0) getVariable QGVAR(virtualItems)}
|
||||
}, {
|
||||
[_this select 0, _this select 1, true] call FUNC(removeVirtualItems);
|
||||
}, [_object, _items], 20] call CBA_fnc_waitUntilAndExecute; // 20s timeout in case of failure
|
||||
} else {
|
||||
// Exit on whitelist mode with no items
|
||||
if (_items isEqualTo []) exitWith {};
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\script_component.hpp"
|
||||
#include "\a3\ui_f\hpp\defineDIKCodes.inc"
|
||||
/*
|
||||
* Author: mharis001
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user