mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'upstream/master' into patch-3
This commit is contained in:
commit
5cbe1201de
6
.github/CONTRIBUTING.md
vendored
6
.github/CONTRIBUTING.md
vendored
@ -34,11 +34,11 @@ We welcome anyone to contribute to this repository. Issues that we are actively
|
||||
|
||||
## Pull Request process
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via issue or [Slack](https://slackin.ace3mod.com/) with the [ACE3 project maintainers](https://ace3mod.com/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.
|
||||
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.
|
||||
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://ace3mod.com/wiki/development/).
|
||||
3. Please follow our [Development Guidelines](https://ace3.acemod.org/wiki/development/).
|
||||
|
||||
|
||||
### Notes
|
||||
@ -47,4 +47,4 @@ Please note that all contributors to this project are volunteers and do this in
|
||||
|
||||
## Assistance with contributing
|
||||
|
||||
If you require assistance with contributing, check out the #dev channel on our [Slack](https://slackin.ace3mod.com/). Additional documentation can be found on our [Development wiki](https://ace3mod.com/wiki/development/).
|
||||
If you require assistance with contributing, check out the #dev channel on our [Discord](https://acemod.org/discord). Additional documentation can be found on our [Development wiki](https://ace3.acemod.org/wiki/development/).
|
||||
|
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -30,7 +30,7 @@ All good? Then proceed and fill out the items below.
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Steps to reproduce:**
|
||||
_Follow [https://ace3mod.com/img/wiki/user/issue_flowchart.png](this flowchart)!_
|
||||
_Follow [https://ace3.acemod.org/img/wiki/user/issue_flowchart.webp](this flowchart)!_
|
||||
|
||||
1. _Go to ..._
|
||||
2. _Click ..._
|
||||
|
20
.github/ISSUE_TEMPLATE/enhancement-request.md
vendored
20
.github/ISSUE_TEMPLATE/enhancement-request.md
vendored
@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Enhancement request
|
||||
about: Suggest an improvement for this project
|
||||
title: ''
|
||||
labels: kind/enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your enhancement related to a problem?**
|
||||
A clear and concise description of what the enhancement entails. Ex. [...] would improve user experience.
|
||||
|
||||
**Solution you'd like:**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Alternatives you've considered:**
|
||||
A clear and concise description of any alternative solutions or ideas you've considered.
|
||||
|
||||
**Additional context:**
|
||||
Add any other context or screenshots about the enhancement here.
|
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -9,4 +9,4 @@ assignees: ''
|
||||
|
||||
### Do not post feature requests here!
|
||||
|
||||
Learn how to make a feature request [here](https://ace3mod.com/wiki/user/how-to-make-a-feature-request.html).
|
||||
Learn how to make a feature request [here](https://ace3.acemod.org/wiki/user/how-to-make-a-feature-request.html).
|
||||
|
13
.github/PULL_REQUEST_TEMPLATE.md
vendored
13
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,6 +1,9 @@
|
||||
**When merged this pull request will:**
|
||||
- Describe what this pull request will do
|
||||
- Each change in a separate line
|
||||
- Include documentation if applicable
|
||||
- Respect the [Development Guidelines](https://ace3mod.com/wiki/development/)
|
||||
- Follow title standard `Component - Add|Fix|Improve|Change|Make|Remove bananas`
|
||||
- _Describe what this pull request will do_
|
||||
- _Each change in a separate line_
|
||||
|
||||
### 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}`.
|
||||
|
4
.github/workflows/pboproject.yml
vendored
4
.github/workflows/pboproject.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
with:
|
||||
toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }}
|
||||
- name: Install Mikero Tools
|
||||
uses: arma-actions/mikero-tools@2021-04-10
|
||||
uses: arma-actions/mikero-tools@2021-11-06
|
||||
- name: Download game data
|
||||
run: |
|
||||
Invoke-WebRequest "$env:ARMA3_DATA_URL" -OutFile arma3.zip
|
||||
@ -56,8 +56,10 @@ jobs:
|
||||
run: |
|
||||
rm -r z\ace\addons\
|
||||
rm -r z\ace\optionals\
|
||||
rm -r z\ace\tools\pDummies\
|
||||
xcopy /e /h /q pullrequest\addons z\ace\addons\
|
||||
xcopy /e /h /q pullrequest\optionals z\ace\optionals\
|
||||
xcopy /e /h /q pullrequest\tools\pDummies z\ace\tools\pDummies\
|
||||
- name: Setup build environment
|
||||
run: |
|
||||
subst P: .
|
||||
|
10
AUTHORS.txt
10
AUTHORS.txt
@ -6,10 +6,10 @@
|
||||
# request, preferably including an email address.
|
||||
|
||||
# CORE TEAM
|
||||
Brandon (TCVM) <brandondanyluk366@gmail.com>
|
||||
bux578 <github@jonathandavid.de>
|
||||
commy2
|
||||
Dahlgren
|
||||
Dani (TCVM) <baileydanyluk@gmail.com>
|
||||
esteldunedain <nicolas.d.badano@gmail.com>
|
||||
Felix Wiegand <koffeinflummi@gmail.com>
|
||||
Garth "L-H" de Wet <garthofhearts@gmail.com>
|
||||
@ -35,7 +35,7 @@ Walter Pearce <jaynus@gmail.com>
|
||||
11RDP-LoupVert <loupvert@11rdp.fr>
|
||||
654wak654 <ozanegitmen@gmail.com>
|
||||
[BIG]Bull
|
||||
ACCtomeek <tomeek99@gmail.com>
|
||||
ACCtomeek
|
||||
adam3adam <br.ada@seznam.cz>
|
||||
Adanteh
|
||||
aeroson
|
||||
@ -68,6 +68,7 @@ Clon1998 <ps.patti1998@gmail.com>
|
||||
Codingboy
|
||||
Coren <coren4@gmail.com>
|
||||
Crusty
|
||||
Cyruz143
|
||||
dabako <dabako@dabakoworld.de>
|
||||
dgibso29 <gibson@earringpranks.com>
|
||||
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
|
||||
@ -130,6 +131,7 @@ meat <p.humberdroz@gmail.com>
|
||||
Michail Nikolaev
|
||||
MikeMatrix <m.braun92@gmail.com>
|
||||
mjc4wilton <mjc4wilton@gmail.com>
|
||||
Mysteryjuju
|
||||
nic547 <nic547@outlook.com>
|
||||
nikolauska <nikolauska1@gmail.com>
|
||||
nomisum <nomisum@gmail.com>
|
||||
@ -147,12 +149,14 @@ QuickDagger
|
||||
rakowozz
|
||||
ramius86 <pasini86@hotmail.com>
|
||||
Raspu86
|
||||
RcINS
|
||||
Riccardo Petricca <petriccarcc@gmail.com>
|
||||
Robert Boklahánics <bokirobi@gmail.com>
|
||||
ruPaladin <happyworm24@rambler.ru>
|
||||
Rutger "RedBery" Meijering <c.redbery@gmail.com>
|
||||
sancron
|
||||
Schwaggot <tom.ryan@posteo.de>
|
||||
Seb <sebsmith90@gmail.com>
|
||||
shukari
|
||||
simon84 <badguy360th@gmail.com>
|
||||
Skengman2
|
||||
@ -161,6 +165,7 @@ Sniperwolf572 <tenga6@gmail.com>
|
||||
System98
|
||||
SzwedzikPL <szwedzikpl@gmail.com>
|
||||
Tachi <zaveruha007@gmail.com>
|
||||
tbeswick96
|
||||
Tessa Elieff <Fastroping Sound - CreativeCommons Attributions 3.0>
|
||||
Timi007 <timi007@gmx.net>
|
||||
Toaster <jonathan.pereira@gmail.com>
|
||||
@ -174,6 +179,7 @@ VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||
Walthzer <walthzer.69@gmail.com>
|
||||
Winter <simon@agius-muscat.net>
|
||||
wizpig64
|
||||
YetheSamartaka
|
||||
xrufix
|
||||
Zakant <Zakant@gmx.de>
|
||||
zGuba
|
||||
|
22
README.md
22
README.md
@ -4,7 +4,7 @@
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||
<img src="https://img.shields.io/badge/Version-3.14.0-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
<img src="https://img.shields.io/badge/Version-3.15.0-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">
|
||||
@ -18,8 +18,8 @@
|
||||
<a href="https://github.com/acemod/ACE3/blob/master/LICENSE">
|
||||
<img src="https://img.shields.io/badge/License-GPLv2-red.svg?style=flat-square" alt="ACE3 License">
|
||||
</a>
|
||||
<a href="https://slackin.ace3mod.com/">
|
||||
<img src="https://img.shields.io/badge/Slack-Join-darkviolet.svg?style=flat-square" alt="ACE3 Slack">
|
||||
<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">
|
||||
@ -78,8 +78,8 @@ The mod is **built modularly**, so almost any included PBO can be easily removed
|
||||
|
||||
ACE3 requires Arma 3 and the latest version of <a href="https://github.com/CBATeam/CBA_A3/releases">CBA A3</a>. See the following pages for help and information on how to get started with ACE3:
|
||||
|
||||
- [Installation guide](https://ace3mod.com/wiki/user/installation-guide.html)
|
||||
- [Information center](https://ace3mod.com/wiki/user/information-center.html)
|
||||
- [Installation guide](https://ace3.acemod.org/wiki/user/installation-guide.html)
|
||||
- [Information center](https://ace3.acemod.org/wiki/user/information-center.html)
|
||||
|
||||
## Contributing
|
||||
|
||||
@ -87,26 +87,26 @@ You can help out with the ongoing development by looking for potential bugs in o
|
||||
|
||||
### Contribution guidelines
|
||||
|
||||
To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. See [the pull request guidelines](https://ace3mod.com/wiki/development/merging-pull-requests.html) for further information on this process.
|
||||
To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. See [the pull request guidelines](https://ace3.acemod.org/wiki/development/merging-pull-requests.html) for further information on this process.
|
||||
|
||||
### Submitting issues and requesting features
|
||||
|
||||
Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest changes to the existing ones. See also:
|
||||
- [How to report an issue](https://ace3mod.com/wiki/user/how-to-report-an-issue.html)
|
||||
- [How to make a feature request](https://ace3mod.com/wiki/user/how-to-make-a-feature-request.html)
|
||||
- [How to report an issue](https://ace3.acemod.org/wiki/user/how-to-report-an-issue.html)
|
||||
- [How to make a feature request](https://ace3.acemod.org/wiki/user/how-to-make-a-feature-request.html)
|
||||
|
||||
### 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://ace3mod.com/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.
|
||||
- [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.
|
||||
|
||||
### Get in touch
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="https://slackin.ace3mod.com/">Slack</a></td>
|
||||
<td>We have a public Slack team that anyone can join. This is where all our developers and contributors hang out and where we make announcements</td>
|
||||
<td><a href="https://acemod.org/discord">Discord</a></td>
|
||||
<td>We have a public Discord server that anyone can join. This is where all our developers and contributors hang out and where we make announcements</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -28,7 +28,7 @@ if (!hasInterface) exitWith {};
|
||||
//Add warnings for missing compat PBOs (only if AB is on)
|
||||
{
|
||||
_x params ["_modPBO", "_compatPBO"];
|
||||
if ((isClass (configFile >> "CfgPatches" >> _modPBO)) && {!isClass (configFile >> "CfgPatches" >> _compatPBO)}) then {
|
||||
if ([_modPBO] call EFUNC(common,isModLoaded) && {!([_compatPBO] call EFUNC(common,isModLoaded))}) then {
|
||||
WARNING_2("Weapon Mod [%1] missing ace compat pbo [%2] (from @ace\optionals)",_modPBO,_compatPBO);
|
||||
};
|
||||
} forEach [
|
||||
|
@ -49,7 +49,7 @@
|
||||
<Japanese>アドバンスド バリスティックス</Japanese>
|
||||
<Korean>고급 탄도학</Korean>
|
||||
<Chinese>先進彈道系統</Chinese>
|
||||
<Chinesesimp>先进弹道系统</Chinesesimp>
|
||||
<Chinesesimp>进阶弹道系统</Chinesesimp>
|
||||
<Turkish>Gelişmiş Balistik</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
|
||||
@ -66,7 +66,7 @@
|
||||
<Japanese>アドバンスド バリスティックスを有効化</Japanese>
|
||||
<Korean>고급 탄도학</Korean>
|
||||
<Chinese>先進彈道系統</Chinese>
|
||||
<Chinesesimp>先进弹道系统</Chinesesimp>
|
||||
<Chinesesimp>进阶弹道系统</Chinesesimp>
|
||||
<Turkish>Gelişmiş Balistik</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
|
||||
@ -83,7 +83,7 @@
|
||||
<Japanese>アドバンスド バリスティックスを有効化します。</Japanese>
|
||||
<Korean>고급 탄도학을 적용합니다</Korean>
|
||||
<Chinese>啟用先進彈道系統</Chinese>
|
||||
<Chinesesimp>启用先进弹道系统</Chinesesimp>
|
||||
<Chinesesimp>启用进阶弹道系统</Chinesesimp>
|
||||
<Turkish>Gelişmiş balistiği etkinleştir</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_muzzleVelocityVariationEnabled_DisplayName">
|
||||
@ -200,7 +200,7 @@
|
||||
<Japanese>弾丸の軌跡エフェクトを有効化</Japanese>
|
||||
<Korean>예광탄 효과 적용</Korean>
|
||||
<Chinese>啟用曳光彈效果</Chinese>
|
||||
<Chinesesimp>启用曳光弹效果</Chinesesimp>
|
||||
<Chinesesimp>启用子弹尾迹效果</Chinesesimp>
|
||||
<Turkish>İzli Mermi Etkisini Etkinleştir</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
|
||||
@ -217,7 +217,7 @@
|
||||
<Japanese>大口径弾の軌跡エフェクトを有効化します。 (高性能光学機器を介してのみ見ることができます)</Japanese>
|
||||
<Korean>대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다)</Korean>
|
||||
<Chinese>啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到)</Chinese>
|
||||
<Chinesesimp>启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到)</Chinesesimp>
|
||||
<Chinesesimp>给大口径子弹启用子弹尾迹效果(只有透过高倍率光学瞄镜才能看到)</Chinesesimp>
|
||||
<Turkish>Yüksek kalibreli mermilere mermi izleme efekti sağlar (yalnızca yüksek güçlü optiklerden bakıldığında görülebilir)</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
|
||||
@ -250,7 +250,7 @@
|
||||
<Japanese>各シミュレーション毎の間隔を定義します。</Japanese>
|
||||
<Korean>각 계산 단위의 간격을 정의합니다</Korean>
|
||||
<Chinese>定義每個模擬計算之間的時間間隔</Chinese>
|
||||
<Chinesesimp>定义每个模拟计算之间的时间间隔</Chinesesimp>
|
||||
<Chinesesimp>定义每个计算步骤之间的间隔</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
|
||||
<English>Simulation Radius</English>
|
||||
@ -283,7 +283,7 @@
|
||||
<Japanese>アドバンスド バリスティックスの適用半径範囲 (プレイヤー中心、メートル単位) を定義します。</Japanese>
|
||||
<Korean>플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터)</Korean>
|
||||
<Chinese>以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍</Chinese>
|
||||
<Chinesesimp>以玩家的半径距离(公尺)定义先进弹道系统启用范围</Chinesesimp>
|
||||
<Chinesesimp>定义玩家周围的半径(米),在这个半径内,进阶弹道系统会被启用</Chinesesimp>
|
||||
<Turkish>Mermilere gelişmiş balistik uygulandığı oyuncunun etrafındaki yarıçapı (metre cinsinden) tanımlar</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_Description">
|
||||
@ -300,7 +300,7 @@
|
||||
<Japanese>アドバンスド バリスティックスのシミュレーションを有効化します。 弾道は気温・気圧・湿度・重力・弾薬の種類・発射する武器などの変化による影響を受けるようになります。</Japanese>
|
||||
<Korean>이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다.</Korean>
|
||||
<Chinese>該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響</Chinese>
|
||||
<Chinesesimp>该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响</Chinesesimp>
|
||||
<Chinesesimp>该模块实现增强的弹道模拟—子弹的轨迹由空气温度、大气压力、湿度、重力、弹药类型和射击的武器等变量所影响</Chinesesimp>
|
||||
<Turkish>Bu modül gelişmiş balistik simülasyonunu etkinleştirir - yani mermilerin gidişatını hava sıcaklığı, atmosfer basıncı, nem, yerçekimi, mühimmat türü ve ateşlendiği silah gibi durumlar etkiler.</Turkish>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -30,7 +30,7 @@ if (!hasInterface) exitWith {};
|
||||
GVAR(ppeBlackout) ppEffectCommit 0.4;
|
||||
|
||||
// - GVAR updating and initialization -----------------------------------------
|
||||
["unit", FUNC(handlePlayerChanged), true] call CBA_fnc_addPlayerEventHandler;
|
||||
["unit", LINKFUNC(handlePlayerChanged), true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
["visibleMap", {
|
||||
params ["", "_visibleMap"]; // command visibleMap is updated one frame later
|
||||
@ -56,7 +56,8 @@ if (!hasInterface) exitWith {};
|
||||
[1, 3] select (_this getVariable [QEGVAR(dragging,isCarrying), false]);
|
||||
}] call FUNC(addDutyFactor);
|
||||
};
|
||||
if (["ACE_Weather"] call EFUNC(common,isModLoaded)) then {
|
||||
// Weather has an off switch, Dragging & Medical don't.
|
||||
if (missionNamespace getVariable [QEGVAR(weather,enabled), false]) then {
|
||||
[QEGVAR(weather,temperature), { // 35->1, 45->2
|
||||
linearConversion [35, 45, (missionNamespace getVariable [QEGVAR(weather,currentTemperature), 25]), 1, 2, true];
|
||||
}] call FUNC(addDutyFactor);
|
||||
|
@ -9,7 +9,7 @@ PREP_RECOMPILE_END;
|
||||
#include "initSettings.sqf"
|
||||
|
||||
GVAR(staminaBarWidth) = 10 * (((safezoneW / safezoneH) min 1.2) / 40);
|
||||
GVAR(dutyList) = [[], []];
|
||||
GVAR(dutyList) = createHashMap;
|
||||
GVAR(setAnimExclusions) = [];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -18,6 +18,4 @@
|
||||
params [["_id", "", [""]], ["_factor", 1, [0, {}]]];
|
||||
if (_id == "" || {_factor isEqualTo 1}) exitWith {};
|
||||
|
||||
GVAR(dutyList) params ["_idList", "_factorList"];
|
||||
_idList pushBack _id;
|
||||
_factorList pushBack _factor,
|
||||
GVAR(dutyList) set [_id, _factor];
|
||||
|
@ -30,7 +30,7 @@ private _duty = GVAR(animDuty);
|
||||
} else {
|
||||
_duty = _duty * (_unit call _x);
|
||||
};
|
||||
} forEach (GVAR(dutyList) select 1);
|
||||
} forEach (values GVAR(dutyList));
|
||||
|
||||
if (GVAR(isSwimming)) then {
|
||||
_terrainGradient = 0;
|
||||
|
@ -31,6 +31,8 @@ if (GVAR(fadeStaminaBar)) then {
|
||||
} else {
|
||||
_staminaBarContainer ctrlSetFade (0.9 * _stamina / 0.8);
|
||||
};
|
||||
} else {
|
||||
_staminaBarContainer ctrlSetFade 0;
|
||||
};
|
||||
|
||||
// - Color --------------------------------------------------------------------
|
||||
|
@ -14,7 +14,9 @@
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
if (!alive ACE_player) exitWith { // Dead people don't breath, Will also handle null (Map intros)
|
||||
|
||||
// Dead people don't breathe, will also handle null (map intros)
|
||||
if (!alive ACE_player) exitWith {
|
||||
[FUNC(mainLoop), [], 1] call CBA_fnc_waitAndExecute;
|
||||
private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
|
||||
_staminaBarContainer ctrlSetFade 1;
|
||||
|
@ -16,10 +16,4 @@
|
||||
*/
|
||||
params [["_id", "", [""]]];
|
||||
|
||||
GVAR(dutyList) params ["_idList", "_factorList"];
|
||||
private _index = _idList find _id;
|
||||
|
||||
if (_index != -1) then {
|
||||
_idList deleteAt _index;
|
||||
_factorList deleteAt _index;
|
||||
};
|
||||
GVAR(dutyList) deleteAt _id;
|
||||
|
@ -6,7 +6,7 @@
|
||||
<Spanish>ACE Fatiga Avanzada</Spanish>
|
||||
<German>ACE Erweiterte Ausdauer</German>
|
||||
<Chinese>ACE 進階疲勞</Chinese>
|
||||
<Chinesesimp>ACE 进阶疲劳</Chinesesimp>
|
||||
<Chinesesimp>ACE 进阶体力</Chinesesimp>
|
||||
<Japanese>ACE アドバンスド ファティーグ</Japanese>
|
||||
<Italian>ACE Fatica Avanzata</Italian>
|
||||
<Korean>ACE 고급 피로도</Korean>
|
||||
@ -73,7 +73,7 @@
|
||||
<French>Facteur de récupération</French>
|
||||
<Italian>Fattore Recupero</Italian>
|
||||
<Chinese>回復值</Chinese>
|
||||
<Chinesesimp>回复值</Chinesesimp>
|
||||
<Chinesesimp>恢复系数</Chinesesimp>
|
||||
<Russian>Фактор восстановления</Russian>
|
||||
<Portuguese>Fator de Recuperação</Portuguese>
|
||||
<Czech>Faktor zotavení</Czech>
|
||||
@ -89,7 +89,7 @@
|
||||
<French>Modifie la vitesse à laquelle le joueur récupère lorsqu'il se repose.\nPlus la valeur est élevée, plus la récupération est rapide.</French>
|
||||
<Italian>Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore.</Italian>
|
||||
<Chinese>決定玩家休息多久就能回復體力,值越高恢復越快</Chinese>
|
||||
<Chinesesimp>决定玩家休息多久就能回复体力,值越高恢复越快</Chinesesimp>
|
||||
<Chinesesimp>决定玩家休息多久就能恢复体力,值越高恢复越快</Chinesesimp>
|
||||
<Russian>Изменяет скорость восстановления игрока во время отдыха. Чем выше, тем быстрее.</Russian>
|
||||
<Portuguese>Altera o quão rápido um jogador recupera quando descansando. Quanto maior, mais rápido.</Portuguese>
|
||||
<Czech>Mění, jak rychle se hráč zotaví, když odpočívá. Vyšší je rychlejší.</Czech>
|
||||
@ -104,7 +104,7 @@
|
||||
<French>Facteur de charge</French>
|
||||
<Italian>Fattore Caricamento</Italian>
|
||||
<Chinese>負重量</Chinese>
|
||||
<Chinesesimp>负重量</Chinesesimp>
|
||||
<Chinesesimp>重量系数</Chinesesimp>
|
||||
<Russian>Фактор нагрузки</Russian>
|
||||
<Portuguese>Fator de Carga</Portuguese>
|
||||
<Czech>Faktor zatížení</Czech>
|
||||
@ -119,7 +119,7 @@
|
||||
<French>Augmente ou diminue l'influence du poids sur les performances du joueur.\nUne valeur nulle indique que le poids de l'équipement n'a aucun impact sur les performances.</French>
|
||||
<Italian>Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni.</Italian>
|
||||
<Chinese>增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現</Chinese>
|
||||
<Chinesesimp>增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现</Chinesesimp>
|
||||
<Chinesesimp>增加或降低玩家所能承受的负重量。如设定值为0,代表装备的重量将不会影响到玩家的体力表现</Chinesesimp>
|
||||
<Russian>Увеличивает или уменьшает вес, влияющий на производительность игроков. Ноль означает, что вес снаряжения не влияет на производительность</Russian>
|
||||
<Portuguese>Aumenta ou diminui o quanto o peso influencia a performance do jogador. Zero significa que o peso não tem impacto algum na performance.</Portuguese>
|
||||
<Czech>Zvyšuje nebo snižuje, jak velká váha ovlivňuje výkon hráče. Nulová hodnota znamená, že hmotnost zařízení nemá žádný vliv na výkon.</Czech>
|
||||
@ -134,7 +134,7 @@
|
||||
<French>Facteur d'inclinaison du terrain</French>
|
||||
<Italian>Fattore Pendenza Terreno</Italian>
|
||||
<Chinese>地形陡峭影響值</Chinese>
|
||||
<Chinesesimp>地形陡峭影响值</Chinesesimp>
|
||||
<Chinesesimp>地形陡峭系数</Chinesesimp>
|
||||
<Russian>Фактор местности</Russian>
|
||||
<Portuguese>Fator de Inclinação do Terreno</Portuguese>
|
||||
<Czech>Faktor stoupání terénu</Czech>
|
||||
@ -149,7 +149,7 @@
|
||||
<French>Définit à quel point un terrain escarpé réduit l'endurance du joueur.\nPlus la valeur est élevée, moins le joueur est endurant.</French>
|
||||
<Italian>Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa.</Italian>
|
||||
<Chinese>設定陡峭的地形將會影響多少體力的流失,值越高代表體力流失越快</Chinese>
|
||||
<Chinesesimp>设定陡峭的地形将会影响多少体力的流,失值越高代表体力流失越快</Chinesesimp>
|
||||
<Chinesesimp>设定陡峭的地形将会影响多少体力的流失速度,值越高代表体力流失越快</Chinesesimp>
|
||||
<Russian>Устанавливает, насколько крутая местность увеличивает потерю выносливости. Чем выше, тем быстрее теряется выносливость.</Russian>
|
||||
<Portuguese>Define o quanto que um terreno íngrime aumenta na perda de estamina. Quanto maior, maior a perda de estamina.</Portuguese>
|
||||
<Czech>Nastavuje, o kolik strmý terén zvyšuje ztrátu výdrže. Vyšší znamená vyšší ztrátu výdrže.</Czech>
|
||||
@ -159,7 +159,7 @@
|
||||
<Spanish>Factor de balanceo de mira</Spanish>
|
||||
<German>Verwacklungsfaktor</German>
|
||||
<Japanese>手ぶれ因数</Japanese>
|
||||
<Chinesesimp>抖动因数</Chinesesimp>
|
||||
<Chinesesimp>抖动系数</Chinesesimp>
|
||||
<Chinese>抖動因素</Chinese>
|
||||
<French>Facteur de tremblement</French>
|
||||
<Italian>Fattore di oscillazione</Italian>
|
||||
@ -167,13 +167,14 @@
|
||||
<Russian>Фактор колебания прицела</Russian>
|
||||
<Portuguese>Fator de Balanço de Mira</Portuguese>
|
||||
<Czech>Faktor kývání</Czech>
|
||||
<Korean>손떨림 정도</Korean>
|
||||
</Key>
|
||||
<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>
|
||||
<Chinesesimp>影响手持武器的晃动程度,数值越高,抖动的越厉害.</Chinesesimp>
|
||||
<Chinesesimp>影响手持武器的晃动程度,数值越高,抖动的越厉害。</Chinesesimp>
|
||||
<Chinese>影響手持武器晃動程度,數值越高抖動越厲害</Chinese>
|
||||
<French>Influe sur l'amplitude du tremblement de l'arme. Une valeur plus élevée signifie plus de tremblement.</French>
|
||||
<Italian>Influenza l'ammontare di oscillazione dell'arma. Maggiore significa più oscillazione.</Italian>
|
||||
@ -181,6 +182,7 @@
|
||||
<Russian>Влияет на колебания прицела оружия. Чем выше - тем больше.</Russian>
|
||||
<Portuguese>Influencia a quantidade de balanço da mira da arma. Quanto maior, mais balanço.</Portuguese>
|
||||
<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_Enabled">
|
||||
<English>Enabled</English>
|
||||
@ -207,7 +209,7 @@
|
||||
<French>Active/Désactive la fatigue avancée.</French>
|
||||
<Italian>Abilita/disabilita la Fatica Avanzata.</Italian>
|
||||
<Chinese>啟用/關閉進階體力.</Chinese>
|
||||
<Chinesesimp>启用/关闭进阶体力.</Chinesesimp>
|
||||
<Chinesesimp>启用/关闭进阶体力。</Chinesesimp>
|
||||
<Russian>Включает / Отключает Продвинутую усталость</Russian>
|
||||
<Portuguese>Ativa/Desativa Fadiga Avançada.</Portuguese>
|
||||
<Czech>Aktivuje / deaktivuje Pokročilou únavu.</Czech>
|
||||
@ -248,6 +250,7 @@
|
||||
<Russian>Скрыть шкалу усталости автоматически</Russian>
|
||||
<German>Blende Ausdauerleiste automatisch aus</German>
|
||||
<Chinese>體力條自動淡去</Chinese>
|
||||
<Chinesesimp>自动淡化体力条</Chinesesimp>
|
||||
<Italian>Dissolvenza automatica della barra della stamina</Italian>
|
||||
<Czech>Automaticky schovat lištu výdrže</Czech>
|
||||
<French>Fondu automatique de la barre d'endurance</French>
|
||||
@ -255,6 +258,7 @@
|
||||
<Polish>Chowaj pasek wytrzymałości automatycznie</Polish>
|
||||
<Portuguese>Barra de stamina some automaticamente</Portuguese>
|
||||
<Turkish>Dayanıklılık çubuğunu otomatik olarak soldur</Turkish>
|
||||
<Korean>자동으로 피로도 막대 숨기기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_FadeStaminaBar_Description">
|
||||
<English>Adjusts transparency of the bar based on stamina status.</English>
|
||||
@ -262,12 +266,14 @@
|
||||
<Russian>Регулирует прозрачность шкалы в зависимости от статуса выносливости.</Russian>
|
||||
<German>Passt die Transparenz der Ausdauerleiste abhängig vom Ausdauerstatus an.</German>
|
||||
<Chinese>依照目前的體力程度調整體力條之透明度</Chinese>
|
||||
<Chinesesimp>根据体力状况调整体力条的透明度</Chinesesimp>
|
||||
<Italian>Regola la trasparenza della barra in base allo stato di affaticamento.</Italian>
|
||||
<Czech>Upravuje průhlednost lišty v závislosti na současném stavu výdrže</Czech>
|
||||
<French>Règle la transparence de la barre en fonction de l'état d'endurance.</French>
|
||||
<Japanese>スタミナの状態に応じて、自動的にバーの透明度を調整します。</Japanese>
|
||||
<Polish>Dostosowuje przezroczystość paska na podstawie stanu wytrzymałości.</Polish>
|
||||
<Portuguese>Ajusta a transparência da barra baseado no status da stamina</Portuguese>
|
||||
<Korean>피로도에 따라 피로도 막대의 투명도를 조절합니다.</Korean>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -75,7 +75,7 @@
|
||||
<French>Afficher l'arc de lancé</French>
|
||||
<Italian>Mostra Arco di Tiro</Italian>
|
||||
<Chinese>顯示投擲軌道</Chinese>
|
||||
<Chinesesimp>显示投掷轨道</Chinesesimp>
|
||||
<Chinesesimp>显示投掷弧线</Chinesesimp>
|
||||
<Portuguese>Mostrar o Arco de Arremesso</Portuguese>
|
||||
<Czech>Zobrazit oblouk vrhu </Czech>
|
||||
<Turkish>Atış Yayını Göster</Turkish>
|
||||
@ -91,7 +91,7 @@
|
||||
<French>Active la visualisation de l'arc de lancé (la trajectoire de vol de l'objet).</French>
|
||||
<Italian>Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà).</Italian>
|
||||
<Chinese>顯示投擲軌道幫助投擲</Chinese>
|
||||
<Chinesesimp>显示投掷轨道帮助投掷</Chinesesimp>
|
||||
<Chinesesimp>显示投掷弧线帮助投掷</Chinesesimp>
|
||||
<Portuguese>Permite a visualização do Arco de Arremesso por onde o objeto será jogado.</Portuguese>
|
||||
<Czech>Zapíná vizualizaci oblouku vrhu (kam bude předmět hozen).</Czech>
|
||||
</Key>
|
||||
@ -106,7 +106,7 @@
|
||||
<French>Afficher les contrôles à la souris du lancé</French>
|
||||
<Italian>Mostra Comandi Mouse Lancio</Italian>
|
||||
<Chinese>顯示滑鼠投擲控制提示</Chinese>
|
||||
<Chinesesimp>显示滑鼠投掷控制提示</Chinesesimp>
|
||||
<Chinesesimp>显示鼠标投掷控制提示</Chinesesimp>
|
||||
<Portuguese>Mostrar os controles de mouse para Arremesso</Portuguese>
|
||||
<Czech>Zobrazit ovládání házení myší</Czech>
|
||||
</Key>
|
||||
@ -121,7 +121,7 @@
|
||||
<French>Active les aides visuelles pour les contrôles à la souris lorsqu'un lancé est préparé.</French>
|
||||
<Italian>Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto.</Italian>
|
||||
<Chinese>開啟後會在準備投擲時, 顯示滑鼠相關操作</Chinese>
|
||||
<Chinesesimp>开启后会在准备投掷时, 显示滑鼠相关操作</Chinesesimp>
|
||||
<Chinesesimp>开启后会在准备投掷时,显示鼠标相关操作</Chinesesimp>
|
||||
<Portuguese>Ativa as dicas visuais dos controles do mouse quando um arremessável é preparado.</Portuguese>
|
||||
<Czech>Zapíná popisky pro ovládání myší, když je házený předmět připraven.</Czech>
|
||||
</Key>
|
||||
@ -136,7 +136,7 @@
|
||||
<French>Permettre le ramassage d'objets lançables</French>
|
||||
<Italian>Abilita Raccogli Oggetti</Italian>
|
||||
<Chinese>啟用可撿取地面投擲物</Chinese>
|
||||
<Chinesesimp>启用可捡取地面投掷物</Chinesesimp>
|
||||
<Chinesesimp>启用捡取地面投掷物</Chinesesimp>
|
||||
<Portuguese>Permitir pegar arremessáveis</Portuguese>
|
||||
<Czech>Zapnout zdvihání házených předmětů</Czech>
|
||||
</Key>
|
||||
@ -151,7 +151,7 @@
|
||||
<French>Active la possibilité de ramasser des objets lançables du sol.</French>
|
||||
<Italian>Abilita la possibilità di raccogliere un oggetto lanciabile da terra.</Italian>
|
||||
<Chinese>啟用後, 可撿取地面上的投擲物</Chinese>
|
||||
<Chinesesimp>启用后, 可捡取地面上的投掷物</Chinesesimp>
|
||||
<Chinesesimp>启用后,可捡取地面上的投掷物</Chinesesimp>
|
||||
<Portuguese>Permite que objetos arremessados sejam pegos do chão. (ACE Menu de Interação)</Portuguese>
|
||||
<Czech>Zapíná schopnost zvednutí házených předmětů ze země.</Czech>
|
||||
</Key>
|
||||
@ -166,7 +166,7 @@
|
||||
<French>Activer le ramassage d'objets lançables attachés</French>
|
||||
<Italian>Abilita Raccogli Oggetti Lanciabili da altri Oggetti</Italian>
|
||||
<Chinese>啟用可撿取附著投擲物</Chinese>
|
||||
<Chinesesimp>启用可捡取附着投掷物</Chinesesimp>
|
||||
<Chinesesimp>启用捡取附着投掷物</Chinesesimp>
|
||||
<Portuguese>Permitir pegar arremessáveis fixados</Portuguese>
|
||||
<Czech>Zapnout zdvihání připnutých předmětů.</Czech>
|
||||
</Key>
|
||||
@ -181,7 +181,7 @@
|
||||
<French>Active la possibilité de ramasser des objets lançables attachés à d'autres objets.</French>
|
||||
<Italian>Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. </Italian>
|
||||
<Chinese>啟用後, 可撿取附著在物件上的投擲物</Chinese>
|
||||
<Chinesesimp>启用后, 可捡取附着在物件上的投掷物</Chinesesimp>
|
||||
<Chinesesimp>启用后,可捡取附着在物体上的投掷物</Chinesesimp>
|
||||
<Portuguese>Permite que arremessáveis fixados em objetos sejam pegos.</Portuguese>
|
||||
<Czech>Zapíná schopnost zvednutí předmětů z objektů ke kterým jsou připnuté.</Czech>
|
||||
</Key>
|
||||
@ -211,7 +211,7 @@
|
||||
<French>Mode de lancé de l'objet (Tenir)</French>
|
||||
<Italian>Modalità Oggetto Gettabile (Mantenere)</Italian>
|
||||
<Chinese>投擲模式 (按住)</Chinese>
|
||||
<Chinesesimp>投掷模式 (按住)</Chinesesimp>
|
||||
<Chinesesimp>投掷模式(按住)</Chinesesimp>
|
||||
<Portuguese>Modo de Arremesso (Segurar)</Portuguese>
|
||||
<Czech>Mód puštění (Držet)</Czech>
|
||||
</Key>
|
||||
@ -226,7 +226,7 @@
|
||||
<French>Mode de lancé de l'objet (Basculer)</French>
|
||||
<Italian>Modalità Oggetto lanciabile Gettabile (Interruttore)</Italian>
|
||||
<Chinese>投擲模式 (切換)</Chinese>
|
||||
<Chinesesimp>投掷模式 (切换)</Chinesesimp>
|
||||
<Chinesesimp>投掷模式(切换)</Chinesesimp>
|
||||
<Portuguese>Modo de Arremesso (Alternar)</Portuguese>
|
||||
<Czech>Mód puštění (Přepnout)</Czech>
|
||||
</Key>
|
||||
@ -241,7 +241,7 @@
|
||||
<French>amorcée</French>
|
||||
<Italian>Armato</Italian>
|
||||
<Chinese>引信開始燃燒</Chinese>
|
||||
<Chinesesimp>引信开始燃烧</Chinesesimp>
|
||||
<Chinesesimp>已开引信</Chinesesimp>
|
||||
<Portuguese>Preparado</Portuguese>
|
||||
<Czech>Odjištěný</Czech>
|
||||
</Key>
|
||||
@ -272,7 +272,7 @@
|
||||
<French>(Défilement) Changer de mode</French>
|
||||
<Italian>(Scorrere) Cambio Modalità</Italian>
|
||||
<Chinese>(滾輪) 變更模式</Chinese>
|
||||
<Chinesesimp>(滚轮) 变更模式</Chinesesimp>
|
||||
<Chinesesimp>(滚轮)变更模式</Chinesesimp>
|
||||
<Portuguese>(Roda do Mouse) Alternar modo</Portuguese>
|
||||
<Czech>(Scrollovat) Změnit mód</Czech>
|
||||
<Turkish>(Tekerlek) Modu Değiştir</Turkish>
|
||||
@ -288,7 +288,7 @@
|
||||
<French>(Défilement) Étendre</French>
|
||||
<Italian>(Scorrere) Estendere</Italian>
|
||||
<Chinese>(滾輪) 延長</Chinese>
|
||||
<Chinesesimp>(滚轮) 延长</Chinesesimp>
|
||||
<Chinesesimp>(滚轮)延长</Chinesesimp>
|
||||
<Portuguese>(Roda do Mouse) Extender</Portuguese>
|
||||
<Czech>(Scrollovat) Oddálit</Czech>
|
||||
<Turkish>(Tekerlek) Uzat</Turkish>
|
||||
@ -304,7 +304,7 @@
|
||||
<French>(Clique) Dégoupiller</French>
|
||||
<Italian>(Click) Arma</Italian>
|
||||
<Chinese>(點擊) 提早拉開引信</Chinese>
|
||||
<Chinesesimp>(点击) 提早拉开引信</Chinesesimp>
|
||||
<Chinesesimp>(点击)提早拉开引信</Chinesesimp>
|
||||
<Portuguese>(Clique) Cozinhar</Portuguese>
|
||||
<Czech>(Klik) Odjistit</Czech>
|
||||
<Turkish>(Tıkla) Cook</Turkish>
|
||||
|
@ -9,3 +9,9 @@ class Extended_PreInit_EventHandlers {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
};
|
||||
|
@ -1,2 +1,6 @@
|
||||
PREP(initEjectAction);
|
||||
PREP(canShowEject);
|
||||
PREP(droneAddActions);
|
||||
PREP(droneGetTurretTargetPos);
|
||||
PREP(droneModifyWaypoint);
|
||||
PREP(droneSetWaypoint);
|
||||
PREP(initEjectAction);
|
||||
|
8
addons/aircraft/XEH_postInit.sqf
Normal file
8
addons/aircraft/XEH_postInit.sqf
Normal file
@ -0,0 +1,8 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
[QGVAR(droneModifyWaypoint), LINKFUNC(droneModifyWaypoint)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(droneSetWaypoint), LINKFUNC(droneSetWaypoint)] call CBA_fnc_addEventHandler;
|
||||
|
||||
if (hasInterface) then {
|
||||
["ACE_controlledUAV", LINKFUNC(droneAddActions)] call CBA_fnc_addEventHandler;
|
||||
};
|
121
addons/aircraft/functions/fnc_droneAddActions.sqf
Normal file
121
addons/aircraft/functions/fnc_droneAddActions.sqf
Normal file
@ -0,0 +1,121 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Adds actions to a drone
|
||||
*
|
||||
* Arguments:
|
||||
* 0: vehicle <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [v] call ace_aircraft_fnc_droneAddActions
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle"];
|
||||
TRACE_1("droneAddActions",_vehicle);
|
||||
|
||||
if (!alive _vehicle) exitWith {};
|
||||
if (_vehicle getVariable [QGVAR(droneActionsAdded), false]) exitWith {};
|
||||
_vehicle setVariable [QGVAR(droneActionsAdded), true];
|
||||
|
||||
// move to location
|
||||
private _condition = {
|
||||
params ["_vehicle"];
|
||||
(missionNamespace getVariable [QGVAR(droneWaypoints), true]) && {waypointsEnabledUAV _vehicle} && {(ACE_controlledUAV select 2) isEqualTo [0]}
|
||||
};
|
||||
private _statement = {
|
||||
params ["_vehicle"];
|
||||
private _group = group driver _vehicle;
|
||||
private _pos = ([_vehicle, [0]] call FUNC(droneGetTurretTargetPos)) select 0;
|
||||
[QGVAR(droneSetWaypoint), [_vehicle, _group, _pos, "MOVE"], _group] call CBA_fnc_targetEvent;
|
||||
};
|
||||
private _action = [QGVAR(droneSetWaypointMove), localize "$STR_AC_MOVE",
|
||||
"\a3\3DEN\Data\CfgWaypoints\Move_ca.paa", _statement, _condition] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
|
||||
|
||||
if (_vehicle isKindOf "Air") then {
|
||||
// loiter at location
|
||||
_condition = {
|
||||
params ["_vehicle"];
|
||||
(missionNamespace getVariable [QGVAR(droneWaypoints), true]) && {waypointsEnabledUAV _vehicle} && {(ACE_controlledUAV select 2) isEqualTo [0]}
|
||||
};
|
||||
_statement = {
|
||||
params ["_vehicle"];
|
||||
private _group = group driver _vehicle;
|
||||
private _pos = ([_vehicle, [0]] call FUNC(droneGetTurretTargetPos)) select 0;
|
||||
[QGVAR(droneSetWaypoint), [_vehicle, _group, _pos, "LOITER"], _group] call CBA_fnc_targetEvent;
|
||||
};
|
||||
_action = [QGVAR(droneSetWaypointLoiter), localize "$STR_AC_LOITER",
|
||||
"\a3\3DEN\Data\CfgWaypoints\Loiter_ca.paa", _statement, _condition] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
|
||||
|
||||
// set height
|
||||
_condition = {
|
||||
params ["_vehicle"];
|
||||
(missionNamespace getVariable [QGVAR(droneWaypoints), true]) && {waypointsEnabledUAV _vehicle} && {(ACE_controlledUAV select 2) isEqualTo [0]}
|
||||
};
|
||||
_statement = {
|
||||
params ["_vehicle", "", "_args"];
|
||||
private _group = group driver _vehicle;
|
||||
[QGVAR(droneModifyWaypoint), [_vehicle, _group, "height", _args], _group] call CBA_fnc_targetEvent;
|
||||
};
|
||||
_action = [QGVAR(setAltitude), localize "$STR_3den_waypoint_attribute_loiteraltitude_displayname",
|
||||
"", {}, _condition] call EFUNC(interact_menu,createAction);
|
||||
private _base = [_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
{
|
||||
_action = [str _x, str _x, "", _statement, { true }, {}, _x] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, _base, _action] call EFUNC(interact_menu,addActionToObject);
|
||||
} forEach [20, 50, 200, 500, 2000];
|
||||
|
||||
|
||||
// set loiter radius
|
||||
_condition = {
|
||||
params ["_vehicle"];
|
||||
private _group = group driver _vehicle;
|
||||
private _index = (currentWaypoint _group) min count waypoints _group;
|
||||
private _waypoint = [_group, _index];
|
||||
(missionNamespace getVariable [QGVAR(droneWaypoints), true]) && {waypointsEnabledUAV _vehicle} && {(ACE_controlledUAV select 2) isEqualTo [0]}
|
||||
&& {(waypointType _waypoint) == "LOITER"}
|
||||
};
|
||||
_statement = {
|
||||
params ["_vehicle", "", "_args"];
|
||||
private _group = group driver _vehicle;
|
||||
[QGVAR(droneModifyWaypoint), [_vehicle, _group, "radius", _args], _group] call CBA_fnc_targetEvent;
|
||||
};
|
||||
_action = [QGVAR(lotierRadius), localize "$STR_3den_waypoint_attribute_loiterradius_displayname",
|
||||
"", {}, _condition] call EFUNC(interact_menu,createAction);
|
||||
_base = [_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
{
|
||||
_action = [str _x, str _x, "", _statement, { true }, {}, _x] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, _base, _action] call EFUNC(interact_menu,addActionToObject);
|
||||
} forEach [500, 750, 1000, 1250, 1500];
|
||||
|
||||
|
||||
// set loiter direction
|
||||
_condition = {
|
||||
params ["_vehicle", "", "_args"];
|
||||
private _group = group driver _vehicle;
|
||||
private _index = (currentWaypoint _group) min count waypoints _group;
|
||||
private _waypoint = [_group, _index];
|
||||
|
||||
(missionNamespace getVariable [QGVAR(droneWaypoints), true]) && {waypointsEnabledUAV _vehicle} && {(ACE_controlledUAV select 2) isEqualTo [0]}
|
||||
&& {(waypointType _waypoint) == "LOITER"} && {(waypointLoiterType _waypoint) != _args}
|
||||
};
|
||||
_statement = {
|
||||
params ["_vehicle", "", "_args"];
|
||||
private _group = group driver _vehicle;
|
||||
[QGVAR(droneModifyWaypoint), [_vehicle, _group, "dir", _args], _group] call CBA_fnc_targetEvent;
|
||||
};
|
||||
_action = [QGVAR(lotierTypeR), localize "$STR_3den_waypoint_attribute_loiterdirection_displayname",
|
||||
"\a3\3DEN\Data\Attributes\LoiterDirection\cw_ca.paa", _statement, _condition, {}, "CIRCLE"] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
_action = [QGVAR(lotierTypeR), localize "$STR_3den_waypoint_attribute_loiterdirection_displayname",
|
||||
"\a3\3DEN\Data\Attributes\LoiterDirection\ccw_ca.paa", _statement, _condition, {}, "CIRCLE_L"] call EFUNC(interact_menu,createAction);
|
||||
[_vehicle, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToObject);
|
||||
};
|
46
addons/aircraft/functions/fnc_droneGetTurretTargetPos.sqf
Normal file
46
addons/aircraft/functions/fnc_droneGetTurretTargetPos.sqf
Normal file
@ -0,0 +1,46 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Get drone's target location, if aimed at infinity it will return a virtual point
|
||||
*
|
||||
* Arguments:
|
||||
* 0: vehicle <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* [PosASL <ARRAY>, Real <BOOL>]
|
||||
*
|
||||
* Example:
|
||||
* [v] call ace_aircraft_fnc_droneGetTurretTargetPos
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle"];
|
||||
private _turret = [0];
|
||||
TRACE_2("droneGetTurretTargetPos",_vehicle,_turret);
|
||||
|
||||
private _turretConfig = [_vehicle, _turret] call CBA_fnc_getTurret;
|
||||
|
||||
private _gunBeg = _vehicle selectionPosition getText (_turretConfig >> "gunBeg");
|
||||
private _gunEnd = _vehicle selectionPosition getText (_turretConfig >> "gunEnd");
|
||||
|
||||
if (_gunEnd isEqualTo _gunBeg) then {
|
||||
// e.g. Darter doesn't have valid gunBeg/gunEnd
|
||||
private _vehicleConfig = configOf _vehicle;
|
||||
_gunBeg = _vehicle selectionPosition getText (_vehicleConfig >> "uavCameraGunnerDir");
|
||||
_gunEnd = _vehicle selectionPosition getText (_vehicleConfig >> "uavCameraGunnerPos");
|
||||
};
|
||||
|
||||
_gunBeg = AGLToASL (_vehicle modelToWorld _gunBeg);
|
||||
_gunEnd = AGLToASL (_vehicle modelToWorld _gunEnd);
|
||||
private _turretDir = _gunEnd vectorFromTo _gunBeg;
|
||||
private _farPoint = _gunEnd vectorAdd (_turretDir vectorMultiply 4999);
|
||||
|
||||
private _intersections = lineIntersectsSurfaces [_gunEnd, _farPoint, _vehicle, objNull, true, 1];
|
||||
if (_intersections isNotEqualTo []) then {
|
||||
[_intersections select 0 select 0, true]
|
||||
} else {
|
||||
// Not looking at anything, just get a virtual point where the camera is pointing
|
||||
_farPoint set [2, 0 max getTerrainHeightASL _farPoint];
|
||||
[_farPoint, false]
|
||||
};
|
36
addons/aircraft/functions/fnc_droneModifyWaypoint.sqf
Normal file
36
addons/aircraft/functions/fnc_droneModifyWaypoint.sqf
Normal file
@ -0,0 +1,36 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Modify the current waypoint of a drone
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Group <GROUP>
|
||||
* 2: Type <STRING>
|
||||
* 3: Value <ANY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [v, group v, "height", 2000] call ace_aircraft_fnc_droneModifyWaypoint
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_group", "_type", "_value"];
|
||||
TRACE_4("droneModifyWaypoint",_vehicle,_group,_type,_value);
|
||||
|
||||
private _index = (currentWaypoint _group) min count waypoints _group;
|
||||
private _waypoint = [_group, _index];
|
||||
switch (toLower _type) do {
|
||||
case ("height"): {
|
||||
private _pos = waypointPosition _waypoint;
|
||||
_pos set [2, _value];
|
||||
_waypoint setWaypointPosition [_pos, 0];
|
||||
_vehicle flyInHeight _value;
|
||||
};
|
||||
case ("radius"): { _waypoint setWaypointLoiterRadius _value; };
|
||||
case ("dir"): { _waypoint setWaypointLoiterType _value; };
|
||||
};
|
||||
_group setCurrentWaypoint _waypoint;
|
43
addons/aircraft/functions/fnc_droneSetWaypoint.sqf
Normal file
43
addons/aircraft/functions/fnc_droneSetWaypoint.sqf
Normal file
@ -0,0 +1,43 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Set new waypoint of a drone
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Group <GROUP>
|
||||
* 2: Pos 2D <ARRAY>
|
||||
* 3: Type <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [v, group v, [2000,5000], "LOITER"] call ace_aircraft_fnc_droneSetWaypoint
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_group", "_pos", "_type"];
|
||||
TRACE_4("droneSetWaypoint",_vehicle,_group,_pos,_type);
|
||||
|
||||
private _index = (currentWaypoint _group) min count waypoints _group;
|
||||
private _waypoint = [_group, _index];
|
||||
// Try to save attributes from existing waypoint
|
||||
private _currentHeight = round ((waypointPosition _waypoint) select 2);
|
||||
private _currentLoiterRadius = waypointLoiterRadius _waypoint;
|
||||
private _currentLoiterType = waypointLoiterType _waypoint;
|
||||
|
||||
// Set pos to ATL
|
||||
_pos set [2, if (_currentHeight >= 50) then { _currentHeight } else { 0 }];
|
||||
|
||||
// [_group] call CBA_fnc_clearWaypoints;
|
||||
_waypoint = _group addWaypoint [_pos, 0];
|
||||
_waypoint setWaypointType _type;
|
||||
|
||||
TRACE_3("",_currentHeight,_currentLoiterRadius,_currentLoiterType);
|
||||
if (_currentHeight > 1) then { _vehicle flyInHeight _currentHeight; };
|
||||
if (_currentLoiterRadius > 1) then { _waypoint setWaypointLoiterRadius _currentLoiterRadius; };
|
||||
if (_currentLoiterType != "") then { _waypoint setWaypointLoiterType _currentLoiterType; };
|
||||
|
||||
_group setCurrentWaypoint _waypoint;
|
@ -56,6 +56,7 @@
|
||||
<English>30mm High-Explosive Incendiary</English>
|
||||
<Spanish>30mm Alto Explosivo Incendiaria</Spanish>
|
||||
<Chinese>30毫米高爆燃燒彈</Chinese>
|
||||
<Chinesesimp>30 mm 高爆燃烧</Chinesesimp>
|
||||
<French>30 mm High-Explosive Incendiary</French>
|
||||
<Polish>30mm Odłamkowo-Burzące - Zapalające</Polish>
|
||||
<Turkish>30mm Yüksek Patlayıcı </Turkish>
|
||||
@ -63,11 +64,13 @@
|
||||
<Japanese>30mm 焼夷りゅう弾</Japanese>
|
||||
<Czech>30mm Tříštivo-trhavá zápalná střela</Czech>
|
||||
<Russian>30мм Осколочно-Фугасный Зажигательный</Russian>
|
||||
<Korean>30mm 고폭소이탄</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortHEI">
|
||||
<English>30mm HEI</English>
|
||||
<Spanish>30mm AEI</Spanish>
|
||||
<Chinese>30毫米高爆燃燒</Chinese>
|
||||
<Chinesesimp>30mm 高爆燃烧</Chinesesimp>
|
||||
<French>30 mm HEI</French>
|
||||
<Polish>30mm OB-Z</Polish>
|
||||
<Turkish>30mm HEI</Turkish>
|
||||
@ -75,11 +78,13 @@
|
||||
<Japanese>30mm HEI</Japanese>
|
||||
<Czech>30mm HEI</Czech>
|
||||
<Russian>30мм ОФЗ</Russian>
|
||||
<Korean>30mm HEI</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionAP">
|
||||
<English>30mm DU Armor Piercing</English>
|
||||
<Spanish>30mm UE Perforante de Blindaje</Spanish>
|
||||
<Chinese>30毫米貧化鈾穿甲彈 </Chinese>
|
||||
<Chinesesimp>30 mm 贫铀穿甲</Chinesesimp>
|
||||
<French>30 mm UA Armor Piercing</French>
|
||||
<Polish>30mm Zubożony Uran - Przebijające</Polish>
|
||||
<Turkish>30mm DU Zırh Delici</Turkish>
|
||||
@ -87,11 +92,13 @@
|
||||
<Japanese>30mm DU 徹甲弾</Japanese>
|
||||
<Czech>30mm Protipancéřová střela z ochuzeného Uranu</Czech>
|
||||
<Russian>30мм ОУ Бронебойный Снаряд</Russian>
|
||||
<Korean>30mm 열화우라늄 철갑탄</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortAP">
|
||||
<English>30mm DU AP</English>
|
||||
<Spanish>30mm UE AP</Spanish>
|
||||
<Chinese>30毫米貧鈾穿甲</Chinese>
|
||||
<Chinesesimp>30mm 贫铀穿甲</Chinesesimp>
|
||||
<French>30 mm UA AP</French>
|
||||
<Polish>30mm ZU-P</Polish>
|
||||
<Turkish>30mm DU AP</Turkish>
|
||||
@ -99,11 +106,13 @@
|
||||
<Japanese>30mm DU AP</Japanese>
|
||||
<Czech>30 mm DU AP</Czech>
|
||||
<Russian>30мм ОУ БС</Russian>
|
||||
<Korean>30mm DU AP</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionCM41">
|
||||
<English>30mm Combat Mix 4:1 DU:HEI</English>
|
||||
<Spanish>30mm Mezcla de Combate 4:1 UE:AEI</Spanish>
|
||||
<Chinese>30毫米戰鬥混合彈4:1 穿甲:高爆</Chinese>
|
||||
<Chinesesimp>30mm 战斗混合 穿甲/高爆 4:1</Chinesesimp>
|
||||
<French>30 mm Mix de Combat 4:1 UA:HEI</French>
|
||||
<Polish>30mm Mieszanka bojowa 4:1 ZU:OB-Z</Polish>
|
||||
<Turkish>30mm Combat Mix 4:1 DU:HEI</Turkish>
|
||||
@ -111,11 +120,13 @@
|
||||
<Japanese>30mm コンバット ミックス 4:1 DU:HEI</Japanese>
|
||||
<Czech>30mm Bojový Mix 4:1 DU:HEI</Czech>
|
||||
<Russian>30мм Смешанное боепитание 4:1 ОУ:ОФЗ</Russian>
|
||||
<Korean>30mm 4:1 열화:고폭소이</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortCM41">
|
||||
<English>30mm CM 4:1</English>
|
||||
<Spanish>30mm MC 4:1</Spanish>
|
||||
<Chinese>30毫米 穿高混合 4:1</Chinese>
|
||||
<Chinesesimp>30mm 穿爆混合 4:1</Chinesesimp>
|
||||
<French>30 mm MdC 4:1</French>
|
||||
<Polish>30mm MB 4:1</Polish>
|
||||
<Turkish>30mm CM 4:1</Turkish>
|
||||
@ -123,11 +134,13 @@
|
||||
<Japanese>30mm CM 4:1</Japanese>
|
||||
<Czech>30mm BM 4:1</Czech>
|
||||
<Russian>30мм СБ 4:1</Russian>
|
||||
<Korean>30mm CM 4:1</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionCM51">
|
||||
<English>30mm Combat Mix 5:1 DU:HEI</English>
|
||||
<Spanish>30mm Mezcla de Combate 5:1 UE:AEI</Spanish>
|
||||
<Chinese>30毫米戰鬥混合彈5:1 穿甲:高爆</Chinese>
|
||||
<Chinesesimp>30 mm 战斗混合 穿甲/高爆 5:1</Chinesesimp>
|
||||
<French>30 mm Mix de Combat 5:1 UA:HEI</French>
|
||||
<Polish>30mm Mieszanka bojowa 5:1 ZU:OB-Z</Polish>
|
||||
<Turkish>30mm Combat Mix 5:1 DU:HEI</Turkish>
|
||||
@ -135,11 +148,13 @@
|
||||
<Japanese>30mm コンバット ミックス 5:1 DU:HEI</Japanese>
|
||||
<Czech>30mm Bojový Mix 5:1 DU:HEI</Czech>
|
||||
<Russian>30мм Смешанное боепитание 5:1 ОУ:ОФЗ</Russian>
|
||||
<Korean>30mm 5:1 열화:고폭소이</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_GatlingDescriptionShortCM51">
|
||||
<English>30mm CM 5:1</English>
|
||||
<Spanish>30mm MC 5:1</Spanish>
|
||||
<Chinese>30毫米 穿高混合 5:1</Chinese>
|
||||
<Chinesesimp>30mm 穿爆混合 5:1</Chinesesimp>
|
||||
<French>30 mm MdC 5:1</French>
|
||||
<Polish>30mm MB 5:1</Polish>
|
||||
<Turkish>30mm CM 5:1</Turkish>
|
||||
@ -147,6 +162,7 @@
|
||||
<Japanese>30mm CM 5:1</Japanese>
|
||||
<Czech>30mm BM 5:1</Czech>
|
||||
<Russian>30мм СБ 5:1</Russian>
|
||||
<Korean>30mm CM 5:1</Korean>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -18,11 +18,14 @@ class CfgModels {
|
||||
skeletonName = "";
|
||||
};
|
||||
class ace_entrchtool: Default {};
|
||||
class ace_envelope_big: Default {};
|
||||
class ace_envelope_big4: Default {};
|
||||
class ace_envelope_big4_nogeo: Default {};
|
||||
class ace_envelope_small: Default {};
|
||||
class ace_envelope_small4: Default {};
|
||||
class ace_envelope_small4_nogeo: Default {};
|
||||
class ace_envelope: Default {
|
||||
sections[] = {"velka"};
|
||||
};
|
||||
class ace_envelope_big: ace_envelope {};
|
||||
class ace_envelope_big4: ace_envelope {};
|
||||
class ace_envelope_big4_nogeo: ace_envelope {};
|
||||
class ace_envelope_small: ace_envelope {};
|
||||
class ace_envelope_small4: ace_envelope {};
|
||||
class ace_envelope_small4_nogeo: ace_envelope {};
|
||||
class LWTS_optic: Default {};
|
||||
};
|
||||
};
|
||||
|
@ -34,6 +34,7 @@ PREP(fillLeftPanel);
|
||||
PREP(fillLoadoutsList);
|
||||
PREP(fillRightPanel);
|
||||
PREP(fillSort);
|
||||
PREP(getLoadout);
|
||||
PREP(handleLoadoutsSearchbar);
|
||||
PREP(handleMouse);
|
||||
PREP(handleScrollWheel);
|
||||
|
@ -59,10 +59,11 @@ GVAR(lastSortRight) = "";
|
||||
if (!isNil QGVAR(currentLoadoutsTab) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then {
|
||||
|
||||
private _curSelData =_contentPanelCtrl lnbData [(lnbCurSelRow _contentPanelCtrl), 1];
|
||||
([_loadoutData] call FUNC(verifyLoadout)) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount"];
|
||||
([_loadoutData] call FUNC(verifyLoadout)) params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount"];
|
||||
|
||||
private _newRow = _contentPanelCtrl lnbAddRow [_playerName, _loadoutName];
|
||||
|
||||
_extendedLoadout params ["_loadout"];
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
_contentPanelCtrl lnbSetData [[_newRow, 1], _playerName + _loadoutName];
|
||||
@ -85,3 +86,20 @@ GVAR(lastSortRight) = "";
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
["CBA_loadoutSet", {
|
||||
params ["_unit", "_loadout", "_extendedInfo"];
|
||||
private _face = _extendedInfo getOrDefault [QGVAR(face), ""];
|
||||
if (_face != "") then {
|
||||
_unit setFace _face;
|
||||
};
|
||||
private _voice = _extendedInfo getOrDefault [QGVAR(voice), ""];
|
||||
if (_voice != "") then {
|
||||
_unit setSpeaker _voice;
|
||||
};
|
||||
private _insignia = _extendedInfo getOrDefault [QGVAR(insignia), ""];
|
||||
if (_insignia != "") then {
|
||||
_unit setVariable ["BIS_fnc_setUnitInsignia_class", nil];
|
||||
[_unit, _insignia] call bis_fnc_setUnitInsignia;
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
@ -14,9 +14,13 @@ PREP_RECOMPILE_END;
|
||||
[QGVAR(enableIdentityTabs), "CHECKBOX", localize LSTRING(enableIdentityTabsSettings), localize LSTRING(settingCategory), true, true] call CBA_fnc_addSetting;
|
||||
|
||||
// Arsenal loadouts
|
||||
[QGVAR(allowDefaultLoadouts), "CHECKBOX", [LSTRING(allowDefaultLoadoutsSetting), LSTRING(defaultLoadoutsTooltip)], localize LSTRING(settingCategory), true, true] call CBA_fnc_addSetting;
|
||||
[QGVAR(allowSharedLoadouts), "CHECKBOX", localize LSTRING(allowSharingSetting), localize LSTRING(settingCategory), true, true] call CBA_fnc_addSetting;
|
||||
[QGVAR(EnableRPTLog), "CHECKBOX", [LSTRING(printToRPTSetting), LSTRING(printToRPTTooltip)], localize LSTRING(settingCategory), false, false] call CBA_fnc_addSetting;
|
||||
[QGVAR(allowDefaultLoadouts), "CHECKBOX", [LSTRING(allowDefaultLoadoutsSetting), LSTRING(defaultLoadoutsTooltip)], [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], true, true] call CBA_fnc_addSetting;
|
||||
[QGVAR(allowSharedLoadouts), "CHECKBOX", localize LSTRING(allowSharingSetting), [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], true, true] call CBA_fnc_addSetting;
|
||||
[QGVAR(EnableRPTLog), "CHECKBOX", [LSTRING(printToRPTSetting), LSTRING(printToRPTTooltip)], [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], false, false] call CBA_fnc_addSetting;
|
||||
|
||||
[QGVAR(loadoutsSaveFace), "CHECKBOX", localize LSTRING(loadoutsSaveFaceSetting), [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], false] call CBA_fnc_addSetting;
|
||||
[QGVAR(loadoutsSaveVoice), "CHECKBOX", localize LSTRING(loadoutsSaveVoiceSetting), [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], false] call CBA_fnc_addSetting;
|
||||
[QGVAR(loadoutsSaveInsignia), "CHECKBOX", localize LSTRING(loadoutsSaveInsigniaSetting), [localize LSTRING(settingCategory), localize LSTRING(loadoutSubcategory)], true] call CBA_fnc_addSetting;
|
||||
|
||||
[QGVAR(statsToggle), {
|
||||
params ["_display", "_showStats"];
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Name of loadout <STRING>
|
||||
* 1: getUnitLoadout array <ARRAY>
|
||||
* 1: CBA extended loadout or getUnitLoadout array <ARRAY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -17,7 +17,15 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_name", "", [""]], ["_loadout", [], [[]], 10]];
|
||||
params [["_name", "", [""]], ["_loadout", [], [[]]]];
|
||||
|
||||
private _extendedInfo = createHashMap;
|
||||
if (count _loadout == 2) then {
|
||||
_extendedInfo = _loadout select 1;
|
||||
_loadout = _loadout select 0;
|
||||
};
|
||||
|
||||
if (count _loadout != 10) exitWith {};
|
||||
|
||||
if (isNil QGVAR(defaultLoadoutsList)) then {
|
||||
GVAR(defaultLoadoutsList) = [];
|
||||
@ -36,7 +44,7 @@ for "_dataIndex" from 0 to 10 do {
|
||||
if (_weapon != "") then {
|
||||
|
||||
private _baseWeapon = _weapon call BIS_fnc_baseWeapon;
|
||||
if (_weapon != _baseWeapon) then {
|
||||
if (_weapon != _baseWeapon) then {
|
||||
(_loadout select _dataIndex) set [0, _baseWeapon];
|
||||
};
|
||||
};
|
||||
@ -71,7 +79,7 @@ for "_dataIndex" from 0 to 10 do {
|
||||
|
||||
private _baseWeapon = _weapon call BIS_fnc_baseWeapon;
|
||||
if (_weapon != _baseWeapon) then {
|
||||
(_x select 0)set [0, _baseWeapon];
|
||||
(_x select 0) set [0, _baseWeapon];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -100,7 +108,7 @@ for "_dataIndex" from 0 to 10 do {
|
||||
|
||||
private _loadoutIndex = (+(GVAR(defaultLoadoutsList))) findIf {(_x select 0) == _name};
|
||||
if (_loadoutIndex == -1) then {
|
||||
GVAR(defaultLoadoutsList) pushBack [_name, _loadout];
|
||||
GVAR(defaultLoadoutsList) pushBack [_name, [_loadout, _extendedInfo]];
|
||||
} else {
|
||||
GVAR(defaultLoadoutsList) set [_loadoutIndex, [_name, _loadout]];
|
||||
GVAR(defaultLoadoutsList) set [_loadoutIndex, [_name, [_loadout, _extendedInfo]]];
|
||||
};
|
||||
|
@ -9,10 +9,10 @@
|
||||
* 0: items only misc items <ARRAY of STRING>
|
||||
* 1: tooltip <STRING> (Optional)
|
||||
* 2: picture path <STRING> (Optional)
|
||||
* 3: override a spezific button (0-9) <NUMBER> (Optional)
|
||||
* 3: override a specific button (0-9) <NUMBER> (Optional)
|
||||
*
|
||||
* Return Value:
|
||||
* successful: number of the slot; error: -1 <NUMBER>
|
||||
* successful: number of the slot (0-9); error: -1 <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* [["ACE_bloodIV_500", "ACE_Banana"], "MedicalStuff", "\z\ace\addons\arsenal\data\iconCustom.paa", 5] call ace_arsenal_fnc_addRightPanelButton
|
||||
|
@ -43,7 +43,7 @@ if (GVAR(shiftState)) then {
|
||||
[_display, localize LSTRING(exportDefault)] call FUNC(message);
|
||||
} else {
|
||||
|
||||
private _export = str getUnitLoadout GVAR(center);
|
||||
private _export = str ([GVAR(center)] call FUNC(getLoadout));
|
||||
"ace_clipboard" callExtension (_export + ";");
|
||||
"ace_clipboard" callExtension "--COMPLETE--";
|
||||
|
||||
|
@ -39,8 +39,9 @@ if (GVAR(shiftState) && {is3DEN}) then {
|
||||
set3DENMissionAttributes [[QGVAR(DummyCategory), QGVAR(DefaultLoadoutsListAttribute), GVAR(defaultLoadoutsList)]];
|
||||
|
||||
} else {
|
||||
if (count _data == 10) then {
|
||||
GVAR(center) setUnitLoadout _data;
|
||||
private _count = count _data;
|
||||
if (_count == 10 || { _count == 2 }) then {
|
||||
[GVAR(center), _data] call CBA_fnc_setLoadout;
|
||||
|
||||
GVAR(currentItems) = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", [], [], [], [], [], []];
|
||||
for "_index" from 0 to 15 do {
|
||||
@ -92,8 +93,19 @@ if (GVAR(shiftState) && {is3DEN}) then {
|
||||
call FUNC(updateUniqueItemsList);
|
||||
|
||||
// Reapply insignia
|
||||
[GVAR(center), ""] call bis_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia;
|
||||
if (QGVAR(insignia) in _loadout#1) then {
|
||||
GVAR(currentInsignia) = _loadout#1 getOrDefault [QGVAR(insignia), ""];
|
||||
} else {
|
||||
[GVAR(center), ""] call bis_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia;
|
||||
};
|
||||
|
||||
if (QGVAR(face) in _loadout#1) then {
|
||||
GVAR(currentFace) = _loadout#1 getOrDefault [QGVAR(face), GVAR(currentFace)];
|
||||
};
|
||||
if (QGVAR(voice) in _loadout#1) then {
|
||||
GVAR(currentVoice) = _loadout#1 getOrDefault [QGVAR(voice), GVAR(currentVoice)];
|
||||
};
|
||||
|
||||
[_display, _display displayCtrl GVAR(currentLeftPanel)] call FUNC(fillLeftPanel);
|
||||
|
||||
|
@ -34,7 +34,7 @@ private _loadout = switch GVAR(currentLoadoutsTab) do {
|
||||
};
|
||||
};
|
||||
|
||||
GVAR(center) setUnitLoadout [_loadout, true];
|
||||
[GVAR(center), _loadout, true] call CBA_fnc_setLoadout;
|
||||
|
||||
GVAR(currentItems) = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", [], [], [], [], [], []];
|
||||
for "_index" from 0 to 15 do {
|
||||
@ -91,9 +91,21 @@ for "_index" from 0 to 15 do {
|
||||
call FUNC(updateUniqueItemsList);
|
||||
|
||||
// Reapply insignia
|
||||
[GVAR(center), ""] call bis_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia;
|
||||
if (QGVAR(insignia) in _loadout#1) then {
|
||||
GVAR(currentInsignia) = _loadout#1 getOrDefault [QGVAR(insignia), ""];
|
||||
} else {
|
||||
[GVAR(center), ""] call bis_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia;
|
||||
};
|
||||
|
||||
if (QGVAR(face) in _loadout#1) then {
|
||||
GVAR(currentFace) = _loadout#1 getOrDefault [QGVAR(face), GVAR(currentFace)];
|
||||
};
|
||||
if (QGVAR(voice) in _loadout#1) then {
|
||||
GVAR(currentVoice) = _loadout#1 getOrDefault [QGVAR(voice), GVAR(currentVoice)];
|
||||
};
|
||||
|
||||
[(findDisplay IDD_ace_arsenal), [localize LSTRING(loadoutLoaded), _loadoutName] joinString " "] call FUNC(message);
|
||||
|
||||
[QGVAR(onLoadoutLoad), [_loadout, _loadoutName]] call CBA_fnc_localEvent;
|
||||
[QGVAR(onLoadoutLoad), [_loadout#0, _loadoutName]] call CBA_fnc_localEvent;
|
||||
[QGVAR(onLoadoutLoadExtended), [_loadout, _loadoutName]] call CBA_fnc_localEvent;
|
||||
|
@ -35,16 +35,17 @@ if (count _similarLoadouts > 0) exitWith {
|
||||
|
||||
// Update loadout info in profile / 3DEN and list namespaces
|
||||
private _loadoutToRename = (_data select {_x select 0 == _loadoutName}) select 0;
|
||||
(_contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab))) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"];
|
||||
(_contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab))) params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"];
|
||||
|
||||
_data set [_data find _loadoutToRename, [_editBoxContent, (_loadoutToRename select 1)]];
|
||||
_contentPanelCtrl setVariable [_loadoutName + str GVAR(currentLoadoutsTab), nil];
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_loadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]];
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_extendedLoadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]];
|
||||
|
||||
// Add new row
|
||||
_contentPanelCtrl lnbDeleteRow _curSelRow;
|
||||
private _newRow = _contentPanelCtrl lnbAddRow ["",_editBoxContent];
|
||||
|
||||
_extendedLoadout params ["_loadout"];
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
if (_nullItemsAmount > 0) then {
|
||||
|
@ -31,7 +31,8 @@ private _cursSelRow = lnbCurSelRow _contentPanelCtrl;
|
||||
|
||||
private _loadoutName = _contentPanelCtrl lnbText [_cursSelRow, 1];
|
||||
private _curSelLoadout = (_contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab))) select 0;
|
||||
private _loadout = getUnitLoadout GVAR(center);
|
||||
private _extendedLoadout = GVAR(center) call FUNC(getLoadout);
|
||||
private _loadout = _loadout select 0;
|
||||
|
||||
private _loadoutIndex = _data findIf {(_x select 0) == _editBoxContent};
|
||||
private _sharedLoadoutsVars = GVAR(sharedLoadoutsNamespace) getVariable QGVAR(sharedLoadoutsVars);
|
||||
@ -62,7 +63,7 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
if (_weapon != "") then {
|
||||
|
||||
private _baseWeapon = _weapon call BIS_fnc_baseWeapon;
|
||||
if (_weapon != _baseWeapon) then {
|
||||
if (_weapon != _baseWeapon) then {
|
||||
(_loadout select _dataIndex) set [0, _baseWeapon];
|
||||
};
|
||||
};
|
||||
@ -135,9 +136,9 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
};
|
||||
|
||||
if (_loadoutIndex isEqualto -1) then {
|
||||
_data pushBack [_editBoxContent, _loadout];
|
||||
_data pushBack [_editBoxContent, _extendedLoadout];
|
||||
} else {
|
||||
_data set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]];
|
||||
_data set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _extendedLoadout]];
|
||||
};
|
||||
|
||||
// Delete "old" loadout row
|
||||
@ -149,7 +150,7 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_loadout] call FUNC(verifyLoadout)];
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_extendedLoadout] call FUNC(verifyLoadout)];
|
||||
|
||||
_contentPanelCtrl lnbSort [1, false];
|
||||
|
||||
@ -243,9 +244,9 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
};
|
||||
|
||||
if (_loadoutIndex == -1) then {
|
||||
GVAR(defaultLoadoutsList) pushBack [_editBoxContent, _loadout];
|
||||
GVAR(defaultLoadoutsList) pushBack [_editBoxContent, _extendedLoadout];
|
||||
} else {
|
||||
GVAR(defaultLoadoutsList) set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]];
|
||||
GVAR(defaultLoadoutsList) set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _extendedLoadout]];
|
||||
};
|
||||
|
||||
for '_i' from 0 to (((lnbsize _contentPanelCtrl) select 0) - 1) do {
|
||||
@ -256,7 +257,7 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_loadout] call FUNC(verifyLoadout)];
|
||||
_contentPanelCtrl setVariable [_editBoxContent + str GVAR(currentLoadoutsTab), [_extendedLoadout] call FUNC(verifyLoadout)];
|
||||
|
||||
_contentPanelCtrl lnbSort [1, false];
|
||||
|
||||
@ -295,4 +296,5 @@ switch (GVAR(currentLoadoutsTab)) do {
|
||||
};
|
||||
[(findDisplay IDD_ace_arsenal), [localize LSTRING(loadoutSaved), _editBoxContent] joinString " "] call FUNC(message);
|
||||
private _savedLoadout = (_data select {_x select 0 == _editBoxContent}) select 0;
|
||||
[QGVAR(onLoadoutSave), [_data find _savedLoadout, _savedLoadout]] call CBA_fnc_localEvent;
|
||||
[QGVAR(onLoadoutSave), [_data find _savedLoadout, _savedLoadout#0]] call CBA_fnc_localEvent;
|
||||
[QGVAR(onLoadoutSaveExtended), [_data find _savedLoadout, _savedLoadout]] call CBA_fnc_localEvent;
|
||||
|
@ -44,7 +44,7 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
|
||||
[_loadoutData] call FUNC(verifyLoadout)
|
||||
} else {
|
||||
_loadoutCachedInfo
|
||||
} params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"];
|
||||
} params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"];
|
||||
|
||||
// Log missing / nil items to RPT
|
||||
if (GVAR(EnableRPTLog) && {isNil "_loadoutCachedInfo"} && {(_nullItemsAmount > 0) || {_unavailableItemsAmount > 0}}) then {
|
||||
@ -64,6 +64,7 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
|
||||
|
||||
private _newRow = _contentPanelCtrl lnbAddRow ["",_loadoutName];
|
||||
|
||||
_extendedLoadout params ["_loadout"];
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
if (_nullItemsAmount > 0) then {
|
||||
@ -76,7 +77,7 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
|
||||
};
|
||||
};
|
||||
|
||||
_contentPanelCtrl setVariable [_loadoutName + str GVAR(currentLoadoutsTab), [_loadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]];
|
||||
_contentPanelCtrl setVariable [_loadoutName + str GVAR(currentLoadoutsTab), [_extendedLoadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]];
|
||||
|
||||
if ((profileName + _loadoutName) in _sharedLoadoutsVars && {GVAR(currentLoadoutsTab) == IDC_buttonMyLoadouts}) then {
|
||||
_contentPanelCtrl lnbSetPicture [[_newRow, 0], QPATHTOF(data\iconPublic.paa)];
|
||||
@ -99,11 +100,12 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
|
||||
[QGVAR(loadoutUnshared), [_contentPanelCtrl, profileName, _loadoutName]] call CBA_fnc_remoteEvent;
|
||||
} else {
|
||||
|
||||
([_loadoutData] call FUNC(verifyLoadout)) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount"];
|
||||
([_loadoutData] call FUNC(verifyLoadout)) params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount"];
|
||||
|
||||
_contentPanelCtrl lnbSetColumnsPos [0, 0.15, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90];
|
||||
private _newRow = _contentPanelCtrl lnbAddRow [_playerName, _loadoutName];
|
||||
|
||||
_extendedLoadout params ["_loadout"];
|
||||
ADD_LOADOUTS_LIST_PICTURES
|
||||
|
||||
_contentPanelCtrl lnbSetData [[_newRow, 1], _playerName + _loadoutName];
|
||||
|
@ -89,7 +89,7 @@ private _compatibleMagazines = [[[], []], [[], []], [[], []]];
|
||||
|
||||
// Magazine groups
|
||||
{
|
||||
private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups),["#CBA_HASH#",[],[],[]]];
|
||||
private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups), createHashMap];
|
||||
private _magArray = _magazineGroups get (toLower _x);
|
||||
{((_compatibleMagazines select _index) select _subIndex) pushBackUnique _x} forEach _magArray;
|
||||
} foreach ([getArray (_weaponConfig >> _x >> "magazineWell"), getArray (_weaponConfig >> "magazineWell")] select (_x == "this"));
|
||||
|
37
addons/arsenal/functions/fnc_getLoadout.sqf
Normal file
37
addons/arsenal/functions/fnc_getLoadout.sqf
Normal file
@ -0,0 +1,37 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: Brett Mayson
|
||||
* Get the extended loadout of a unit, including identity options if enabled
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* CBA Extended Loadout <ARRAY>
|
||||
*
|
||||
* Example:
|
||||
* [_unit] call ace_arsenal_fnc_getLoadout
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
if (isNull _unit) exitWith {};
|
||||
|
||||
([_unit] call CBA_fnc_getLoadout) params ["_loadout", "_extendedInfo"];
|
||||
|
||||
if (GVAR(loadoutsSaveFace)) then {
|
||||
_extendedInfo set [QGVAR(face), face _unit];
|
||||
};
|
||||
if (GVAR(loadoutsSaveVoice)) then {
|
||||
_extendedInfo set [QGVAR(voice), speaker _unit];
|
||||
};
|
||||
if (GVAR(loadoutsSaveInsignia)) then {
|
||||
private _insignia = _unit getVariable ["BIS_fnc_setUnitInsignia_class", ""];
|
||||
if (_insignia != "") then {
|
||||
_extendedInfo set [QGVAR(insignia), _insignia];
|
||||
};
|
||||
};
|
||||
|
||||
[_loadout, _extendedInfo]
|
@ -32,7 +32,7 @@ if (is3DEN) then {
|
||||
// Apply the loadout from the dummy to all selected units
|
||||
if (_exitCode == 1) then {
|
||||
{
|
||||
_x setUnitLoadout (getUnitLoadout GVAR(center));
|
||||
[_x, GVAR(center) call FUNC(getLoadout)] call CBA_fnc_setLoadout;
|
||||
} foreach (get3DENSelected "object");
|
||||
|
||||
save3DENInventory (get3DENSelected "object");
|
||||
|
@ -79,7 +79,7 @@ for "_index" from 0 to 14 do {
|
||||
};
|
||||
|
||||
if ((_array select 2) isNotEqualTo "") then {
|
||||
((GVAR(virtualItems) select _index) select 2) pushBackUnique (_array select 2);
|
||||
((GVAR(virtualItems) select _index) select 2) pushBackUnique (_array select 2);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -29,10 +29,15 @@ private _containerDefaultRightPanel = _display displayCtrl IDC_buttonMisc;
|
||||
private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!isNil QGVAR(currentRightPanel) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]});
|
||||
|
||||
private _fnc_clearPreviousWepMags = {
|
||||
private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines");
|
||||
private _compatibleMagsBaseWeapon = [_baseWeapon, true] call CBA_fnc_compatibleMagazines;
|
||||
|
||||
if (_item != "") then {
|
||||
_compatibleMagsBaseWeapon = _compatibleMagsBaseWeapon select {!(_x in _compatibleMags)};
|
||||
};
|
||||
|
||||
{
|
||||
GVAR(center) removeMagazines _x;
|
||||
} foreach _compatibleMags;
|
||||
} foreach _compatibleMagsBaseWeapon;
|
||||
|
||||
GVAR(currentItems) set [15, uniformItems GVAR(center)];
|
||||
GVAR(currentItems) set [16, vestItems GVAR(center)];
|
||||
@ -54,14 +59,15 @@ switch (GVAR(currentLeftPanel)) do {
|
||||
TOGGLE_RIGHT_PANEL_HIDE
|
||||
} else {
|
||||
if ((GVAR(currentItems) select 0) != _item && {_baseWeapon != _item}) then {
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x};
|
||||
private _cfgMags = configFile >> "CfgMagazines";
|
||||
private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 };
|
||||
GVAR(center) addWeapon _item;
|
||||
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
[GVAR(center), _item] call CBA_fnc_addWeaponWithoutItems;
|
||||
if (_compatibleMags isNotEqualTo []) then {
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]];
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0], true];
|
||||
};
|
||||
|
||||
{
|
||||
@ -96,14 +102,15 @@ switch (GVAR(currentLeftPanel)) do {
|
||||
TOGGLE_RIGHT_PANEL_HIDE
|
||||
} else {
|
||||
if ((GVAR(currentItems) select 2) != _item && {_baseWeapon != _item}) then {
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x};
|
||||
private _cfgMags = configFile >> "CfgMagazines";
|
||||
private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 };
|
||||
GVAR(center) addWeapon _item;
|
||||
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
[GVAR(center), _item] call CBA_fnc_addWeaponWithoutItems;
|
||||
if (_compatibleMags isNotEqualTo []) then {
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]];
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0], true];
|
||||
};
|
||||
|
||||
{
|
||||
@ -137,14 +144,15 @@ switch (GVAR(currentLeftPanel)) do {
|
||||
TOGGLE_RIGHT_PANEL_HIDE
|
||||
} else {
|
||||
if ((GVAR(currentItems) select 1) != _item && {_baseWeapon != _item}) then {
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x};
|
||||
private _cfgMags = configFile >> "CfgMagazines";
|
||||
private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 };
|
||||
GVAR(center) addWeapon _item;
|
||||
|
||||
call _fnc_clearPreviousWepMags;
|
||||
|
||||
[GVAR(center), _item] call CBA_fnc_addWeaponWithoutItems;
|
||||
if (_compatibleMags isNotEqualTo []) then {
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]];
|
||||
GVAR(center) addWeaponItem [_item, [_compatibleMags select 0], true];
|
||||
};
|
||||
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ private _fnc_selectItem = {
|
||||
private _primaryMags = primaryWeaponMagazine GVAR(center);
|
||||
GVAR(currentItems) set [18, (primaryWeaponItems GVAR(center)) + ([_primaryMags + [""], _primaryMags] select (count _primaryMags > 1))];
|
||||
} else {
|
||||
GVAR(center) addPrimaryWeaponItem _item;
|
||||
GVAR(center) addWeaponItem [primaryWeapon GVAR(center), _item, true];
|
||||
private _primaryMags = primaryWeaponMagazine GVAR(center);
|
||||
GVAR(currentItems) set [18, (primaryWeaponItems GVAR(center)) + ([_primaryMags + [""], _primaryMags] select (count _primaryMags > 1))];
|
||||
};
|
||||
@ -47,7 +47,7 @@ private _fnc_selectItem = {
|
||||
private _secondaryMags = secondaryWeaponMagazine GVAR(center);
|
||||
GVAR(currentItems) set [19, (secondaryWeaponItems GVAR(center)) + ([_secondaryMags + [""], _secondaryMags] select (count _secondaryMags > 1))];
|
||||
} else {
|
||||
GVAR(center) addSecondaryWeaponItem _item;
|
||||
GVAR(center) addWeaponItem [secondaryWeapon GVAR(center), _item, true];
|
||||
private _secondaryMags = secondaryWeaponMagazine GVAR(center);
|
||||
GVAR(currentItems) set [19, (secondaryWeaponItems GVAR(center)) + ([_secondaryMags + [""], _secondaryMags] select (count _secondaryMags > 1))];
|
||||
};
|
||||
@ -60,7 +60,7 @@ private _fnc_selectItem = {
|
||||
private _handgunMags = handgunMagazine GVAR(center);
|
||||
GVAR(currentItems) set [20, (handgunItems GVAR(center)) + ([_handgunMags + [""], _handgunMags] select (count _handgunMags > 1))];
|
||||
} else {
|
||||
GVAR(center) addHandgunItem _item;
|
||||
GVAR(center) addWeaponItem [handgunWeapon GVAR(center), _item, true];
|
||||
private _handgunMags = handgunMagazine GVAR(center);
|
||||
GVAR(currentItems) set [20, (handgunItems GVAR(center)) + ([_handgunMags + [""], _handgunMags] select (count _handgunMags > 1))];
|
||||
};
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Verify the provided loadout.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Loadout <ARRAY> (getUnitLoadout format)
|
||||
* 0: Loadout <ARRAY> (CBA Extended Loadout or getUnitLoadout format)
|
||||
*
|
||||
* Return Value:
|
||||
* Verified loadout and missing / unavailable items list and count <ARRAY>
|
||||
@ -15,6 +15,14 @@
|
||||
|
||||
params ["_loadout"];
|
||||
|
||||
private _extendedInfo = createHashMap;
|
||||
|
||||
// Check if the provided loadout is a CBA extended loadout
|
||||
if (count _loadout == 2) then {
|
||||
_extendedInfo = _loadout select 1;
|
||||
_loadout = _loadout select 0;
|
||||
};
|
||||
|
||||
private _weaponCfg = configFile >> "CfgWeapons";
|
||||
private _magCfg = configFile >> "CfgMagazines";
|
||||
private _vehcCfg = configFile >> "CfgVehicles";
|
||||
@ -236,4 +244,4 @@ for "_dataIndex" from 0 to 9 do {
|
||||
};
|
||||
};
|
||||
|
||||
[_loadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]
|
||||
[[_loadout, _extendedInfo], _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]
|
||||
|
@ -54,7 +54,7 @@ cba_diagnostic_projectileMaxLines = 10;
|
||||
] call BIS_fnc_GUImessage;
|
||||
|
||||
if (_return) then {
|
||||
profileNamespace setVariable [QGVAR(missionLastLoadout), getUnitLoadout player];
|
||||
profileNamespace setVariable [QGVAR(missionLastLoadout), [player] call CBA_fnc_getLoadout];
|
||||
_display closeDisplay 2;
|
||||
findDisplay 46 closeDisplay 0;
|
||||
};
|
||||
|
@ -5,7 +5,7 @@ params ["_unit"];
|
||||
private _loadout = profileNamespace getVariable QGVAR(missionLastLoadout);
|
||||
|
||||
if (!isNil "_loadout") then {
|
||||
_unit setUnitLoadout _loadout;
|
||||
[_unit, _loadout] call CBA_fnc_setLoadout;
|
||||
};
|
||||
|
||||
_unit allowDamage false;
|
||||
|
@ -27,7 +27,7 @@
|
||||
<Italian>Nascondi interfaccia</Italian>
|
||||
<Korean>인터페이스 숨기기</Korean>
|
||||
<Chinese>隱藏介面</Chinese>
|
||||
<Chinesesimp>隐藏介面</Chinesesimp>
|
||||
<Chinesesimp>隐藏界面</Chinesesimp>
|
||||
<Russian>Скрыть интерфейс</Russian>
|
||||
<Portuguese>Oculta a Interface</Portuguese>
|
||||
<Czech>Skrýt rozhraní</Czech>
|
||||
@ -43,7 +43,7 @@
|
||||
<Italian>Equipaggiamenti</Italian>
|
||||
<Korean>로드아웃</Korean>
|
||||
<Chinese>裝備</Chinese>
|
||||
<Chinesesimp>装备</Chinesesimp>
|
||||
<Chinesesimp>负载</Chinesesimp>
|
||||
<Russian>Комплекты</Russian>
|
||||
<Portuguese>Loadouts</Portuguese>
|
||||
<Czech>Sady vybavení</Czech>
|
||||
@ -59,7 +59,7 @@
|
||||
<Italian>Esporta</Italian>
|
||||
<Korean>내보내기</Korean>
|
||||
<Chinese>匯出</Chinese>
|
||||
<Chinesesimp>汇出</Chinesesimp>
|
||||
<Chinesesimp>导出</Chinesesimp>
|
||||
<Russian>Экспорт</Russian>
|
||||
<Portuguese>Exportar</Portuguese>
|
||||
<Czech>Export</Czech>
|
||||
@ -75,7 +75,7 @@
|
||||
<Italian>Importa</Italian>
|
||||
<Korean>가져오기</Korean>
|
||||
<Chinese>匯入</Chinese>
|
||||
<Chinesesimp>汇入</Chinesesimp>
|
||||
<Chinesesimp>导入</Chinesesimp>
|
||||
<Russian>Импорт</Russian>
|
||||
<Portuguese>Importar</Portuguese>
|
||||
<Czech>Import</Czech>
|
||||
@ -139,7 +139,7 @@
|
||||
<Italian>Salva l'equipaggiamento corrente</Italian>
|
||||
<Korean>현재 로드아웃 저장</Korean>
|
||||
<Chinese>保存當前的裝備</Chinese>
|
||||
<Chinesesimp>保存当前的装备</Chinesesimp>
|
||||
<Chinesesimp>保存当前的负载</Chinesesimp>
|
||||
<Russian>Сохранить текущий комплект экипировки</Russian>
|
||||
<Portuguese>Salva o loadout atual</Portuguese>
|
||||
<Czech>Uložit současnou sadu vybavení</Czech>
|
||||
@ -155,9 +155,11 @@
|
||||
<Portuguese>[Shift+Clique para salvar nos padrões da missão]</Portuguese>
|
||||
<French>[Shift+Clic pour enregistrer en tant qu'équipement prédéfini.]</French>
|
||||
<Chinese>[Shift+左鍵來保存至任務預設]</Chinese>
|
||||
<Chinesesimp>[Shift+左鍵 以保存至任务默认值]</Chinesesimp>
|
||||
<Italian>[Shift+Click per salvare la missione con gli equipaggiamenti predefiniti]</Italian>
|
||||
<Czech>[Shift+Klik pro uložení jako standardního vybavení pro misi]</Czech>
|
||||
<Turkish>[Shift+Click varsayılan kıyafetlere kaydet]</Turkish>
|
||||
<Korean>[쉬프트+클릭 하여 임무 기본으로 설정]</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonRenameTooltip">
|
||||
<English>Rename the selected loadout</English>
|
||||
@ -169,7 +171,7 @@
|
||||
<Italian>Rinomina l'equipaggiamento selezionato</Italian>
|
||||
<Korean>선택한 로드아웃의 이름 바꾸기</Korean>
|
||||
<Chinese>重新命名當前選擇的裝備</Chinese>
|
||||
<Chinesesimp>重新命名当前选择的装备</Chinesesimp>
|
||||
<Chinesesimp>重命名当前选择的负载</Chinesesimp>
|
||||
<Russian>Переименовать выбранный комплект экипировки</Russian>
|
||||
<Portuguese>Renomeia o loadout selecionado</Portuguese>
|
||||
<Czech>Přejmenovat vybranou sadu vybavení</Czech>
|
||||
@ -201,7 +203,7 @@
|
||||
<Italian>Carica l'equipaggiamento selezionato</Italian>
|
||||
<Korean>선택한 로드아웃 불러오기</Korean>
|
||||
<Chinese>載入當前選擇的裝備</Chinese>
|
||||
<Chinesesimp>载入当前选择的装备</Chinesesimp>
|
||||
<Chinesesimp>载入当前选择的负载</Chinesesimp>
|
||||
<Russian>Загрузить выбранный комплект экипировки</Russian>
|
||||
<Portuguese>Carrega o loadout selecionado</Portuguese>
|
||||
<Czech>Nahrát vybranou sadu vybavení</Czech>
|
||||
@ -233,7 +235,7 @@
|
||||
<Italian>Elimina l'equipaggiamento selezionato</Italian>
|
||||
<Korean>선택한 로드아웃 삭제하기</Korean>
|
||||
<Chinese>刪除當前選擇的裝備</Chinese>
|
||||
<Chinesesimp>删除当前选择的装备</Chinesesimp>
|
||||
<Chinesesimp>删除当前选择的负载</Chinesesimp>
|
||||
<Russian>Удалить выбранный комплект экипировки</Russian>
|
||||
<Portuguese>Apaga o loadout selecionado</Portuguese>
|
||||
<Czech>Smazat vybranou sadu vybavení</Czech>
|
||||
@ -249,7 +251,7 @@
|
||||
<Italian>I miei equipaggiamenti</Italian>
|
||||
<Korean>내 로드아웃</Korean>
|
||||
<Chinese>我的裝備</Chinese>
|
||||
<Chinesesimp>我的装备</Chinesesimp>
|
||||
<Chinesesimp>我的负载</Chinesesimp>
|
||||
<Russian>Мои комплекты</Russian>
|
||||
<Portuguese>Meus loadouts</Portuguese>
|
||||
<Czech>Moje sady vybavení</Czech>
|
||||
@ -265,7 +267,7 @@
|
||||
<Italian>Gli equipaggiamenti salvati nel tuo profilo</Italian>
|
||||
<Korean>프로필에 저장된 로드아웃</Korean>
|
||||
<Chinese>裝備已保存到你的設定檔中</Chinese>
|
||||
<Chinesesimp>装备已保存到你的设定档中</Chinesesimp>
|
||||
<Chinesesimp>负载已保存到你的档案中</Chinesesimp>
|
||||
<Russian>Комплекты экипировки, сохраненные в вашем профиле</Russian>
|
||||
<Portuguese>Loadouts salvos em seu perfil</Portuguese>
|
||||
<Czech>Sadz vybavení uložené ve vašem profilu</Czech>
|
||||
@ -281,7 +283,7 @@
|
||||
<Italian>Equipaggiamenti standard</Italian>
|
||||
<Korean>기본 로드아웃</Korean>
|
||||
<Chinese>預設裝備</Chinese>
|
||||
<Chinesesimp>预设装备</Chinesesimp>
|
||||
<Chinesesimp>默认负载</Chinesesimp>
|
||||
<Russian>По умолчанию</Russian>
|
||||
<Portuguese>Loadouts padrões</Portuguese>
|
||||
<Czech>Standardní sady vybavení</Czech>
|
||||
@ -297,7 +299,7 @@
|
||||
<Italian>Equipaggiamenti resi disponibili dal creatore della missione</Italian>
|
||||
<Korean>미션메이커가 허용한 로드아웃</Korean>
|
||||
<Chinese>任務作者提供的預設裝備</Chinese>
|
||||
<Chinesesimp>任务作者提供的预设装备</Chinesesimp>
|
||||
<Chinesesimp>任务作者提供的负载</Chinesesimp>
|
||||
<Russian>Комплекты экипировки, предоставляемые создателем миссии</Russian>
|
||||
<Portuguese>Loadouts definidos pelo criador da missão</Portuguese>
|
||||
<Czech>Sady vybavení od autora mise</Czech>
|
||||
@ -313,7 +315,7 @@
|
||||
<Italian>Equipaggiamenti pubblici</Italian>
|
||||
<Korean>공용 로드아웃</Korean>
|
||||
<Chinese>公用裝備</Chinese>
|
||||
<Chinesesimp>公用装备</Chinesesimp>
|
||||
<Chinesesimp>公用负载</Chinesesimp>
|
||||
<Russian>Публичные комплекты</Russian>
|
||||
<Portuguese>Loadouts públicos</Portuguese>
|
||||
<Czech>Veřejné sady vybavení</Czech>
|
||||
@ -329,7 +331,7 @@
|
||||
<Italian>Equipaggiamenti condivisi da te e da altri giocatori</Italian>
|
||||
<Korean>플레이어들이 공유하는 로드아웃</Korean>
|
||||
<Chinese>由你與其他玩家分享的裝備配置</Chinese>
|
||||
<Chinesesimp>由你与其他玩家分享的装备配置</Chinesesimp>
|
||||
<Chinesesimp>你和其他玩家分享的负载配置</Chinesesimp>
|
||||
<Russian>Комплекты экипировки, опубликованные вами и другими игроками</Russian>
|
||||
<Portuguese>Loadouts compartilhados por você ou outros jogadores</Portuguese>
|
||||
<Czech>Sady vybavení sdílené vámi a ostatními hráči</Czech>
|
||||
@ -343,7 +345,7 @@
|
||||
<Polish>Sortuj wg wagi</Polish>
|
||||
<Japanese>重量で並び替え</Japanese>
|
||||
<Italian>Ordina per peso</Italian>
|
||||
<Korean>무게로 정렬</Korean>
|
||||
<Korean>무게 순서로 정렬</Korean>
|
||||
<Chinese>以重量排序</Chinese>
|
||||
<Chinesesimp>以重量排序</Chinesesimp>
|
||||
<Russian>Сортировка по весу</Russian>
|
||||
@ -359,7 +361,7 @@
|
||||
<Polish>Sortuj wg ilości</Polish>
|
||||
<Japanese>量で並び替え</Japanese>
|
||||
<Italian>Ordina per quantitativo</Italian>
|
||||
<Korean>갯수로 정렬</Korean>
|
||||
<Korean>갯수 순서로 정렬</Korean>
|
||||
<Chinese>以數量排序</Chinese>
|
||||
<Chinesesimp>以数量排序</Chinesesimp>
|
||||
<Russian>Сортировка по количеству</Russian>
|
||||
@ -375,6 +377,8 @@
|
||||
<Spanish>Ordenar por capacidad</Spanish>
|
||||
<Russian>Сортировка по вместимости</Russian>
|
||||
<Polish>Sortuj po rozmiarze</Polish>
|
||||
<Korean>공간 순서로 정렬</Korean>
|
||||
<Chinesesimp>以容量排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByAccuracyText">
|
||||
<English>Sort by accuracy</English>
|
||||
@ -385,6 +389,8 @@
|
||||
<Spanish>Ordenar por precisión</Spanish>
|
||||
<Russian>Сортировка по точности</Russian>
|
||||
<Polish>Sortuj po celności</Polish>
|
||||
<Korean>정확도 순서로 정렬</Korean>
|
||||
<Chinesesimp>以精度排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByRateOfFireText">
|
||||
<English>Sort by rate of fire</English>
|
||||
@ -395,6 +401,8 @@
|
||||
<Spanish>Ordenar por cadencia de tiro</Spanish>
|
||||
<Russian>Сортировка по темпу стрельбы</Russian>
|
||||
<Polish>Sortuj po szybkostrzelności</Polish>
|
||||
<Korean>발사속도 순서로 정렬</Korean>
|
||||
<Chinesesimp>以射速排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByMagnificationText">
|
||||
<English>Sort by magnification</English>
|
||||
@ -404,6 +412,8 @@
|
||||
<Spanish>Ordenar por magnificación</Spanish>
|
||||
<Russian>Сортировка по кратности приближения</Russian>
|
||||
<Polish>Sortuj po przybliżeniu</Polish>
|
||||
<Korean>배율 순서로 정렬</Korean>
|
||||
<Chinesesimp>以放大倍数排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByMagCountText">
|
||||
<English>Sort by ammo count</English>
|
||||
@ -414,6 +424,8 @@
|
||||
<Spanish>Ordenar por cantidad de munición</Spanish>
|
||||
<Russian>Сортировка по количеству боеприпасов</Russian>
|
||||
<Polish>Sortuj po ilości amunicji</Polish>
|
||||
<Korean>총알 갯수 순서롤 정렬</Korean>
|
||||
<Chinesesimp>以弹量排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByProtectionBallistic">
|
||||
<English>Sort by ballistic protection</English>
|
||||
@ -423,6 +435,8 @@
|
||||
<Russian>Сортировка по баллистической защите</Russian>
|
||||
<Polish>Sortuj po ochronie balistycznej</Polish>
|
||||
<German>Nach ballistischem Schutz sortieren</German>
|
||||
<Korean>방탄 성능 순서로 정렬</Korean>
|
||||
<Chinesesimp>以防弹性能排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortByProtectionExplosive">
|
||||
<English>Sort by explosive protection</English>
|
||||
@ -432,6 +446,8 @@
|
||||
<Russian>Сортировка по защите от взрывов</Russian>
|
||||
<Polish>Sortuj po ochronie przeciw wybuchom</Polish>
|
||||
<German>Nach Explosionsschutz sortieren</German>
|
||||
<Korean>방폭 성능 순서로 정렬</Korean>
|
||||
<Chinesesimp>以防爆性能排序</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonShareTooltip">
|
||||
<English>Share or stop sharing the selected loadout</English>
|
||||
@ -441,9 +457,9 @@
|
||||
<Polish>Udostępnij lub przestań udostępniać wybrany zestaw</Polish>
|
||||
<Japanese>選択した装備の共有設定</Japanese>
|
||||
<Italian>Condividi o smetti di condividere l'equipaggiamento selezionato</Italian>
|
||||
<Korean>선택한 로드아웃 공유 혹은 공유중지</Korean>
|
||||
<Korean>선택한 로드아웃 공유 혹은 공유 중지</Korean>
|
||||
<Chinese>開始/停止分享當前選擇的裝備</Chinese>
|
||||
<Chinesesimp>开始/停止分享当前选择的装备</Chinesesimp>
|
||||
<Chinesesimp>开始/停止分享当前选择的负载</Chinesesimp>
|
||||
<Russian>Открыть или закрыть общий доступ к комплекту экипировки</Russian>
|
||||
<Portuguese>Compartilhar ou parar de compartilhar o loadout selecionado</Portuguese>
|
||||
<Czech>Sdílet nebo přestat sdílet vybranou sadu vybavení</Czech>
|
||||
@ -491,7 +507,7 @@
|
||||
<Italian>La lista degli equipaggiamenti standard è vuota!</Italian>
|
||||
<Korean>기본 로드아웃 목록이 비어있습니다!</Korean>
|
||||
<Chinese>沒有預設的裝備清單!</Chinese>
|
||||
<Chinesesimp>没有预设的装备清单!</Chinesesimp>
|
||||
<Chinesesimp>没有默认负载清单!</Chinesesimp>
|
||||
<Russian>Список комплекта экипировки пуст!</Russian>
|
||||
<Portuguese>A lista de loadouts padrões está vazia!</Portuguese>
|
||||
<Czech>Seznam standardních sad vybavení je prázdný!</Czech>
|
||||
@ -507,7 +523,7 @@
|
||||
<Italian>La lista degli equipaggiamenti standard è stata esportata negli appunti</Italian>
|
||||
<Korean>클립보드에 기본 로드아웃 목록 내보내기</Korean>
|
||||
<Chinese>預設的裝備清單已匯出到剪貼簿中</Chinese>
|
||||
<Chinesesimp>预设的装备清单已汇出到剪贴簿中</Chinesesimp>
|
||||
<Chinesesimp>默认负载清单已导出到剪贴板</Chinesesimp>
|
||||
<Russian>Список комплекта экипировки по умолчанию экспортирован в буфер</Russian>
|
||||
<Portuguese>A lista de loadouts padrões foi exportada pra área de transferência</Portuguese>
|
||||
<Czech>Seznam standardních sad vybavení byl exportován do schránky</Czech>
|
||||
@ -523,7 +539,7 @@
|
||||
<Italian>Equipaggiamento corrente esportato negli appunti</Italian>
|
||||
<Korean>현재 로드아웃을 클립보드로 내보냈습니다.</Korean>
|
||||
<Chinese>當前的裝備已匯出到剪貼簿中</Chinese>
|
||||
<Chinesesimp>当前的装备已汇出到剪贴簿中</Chinesesimp>
|
||||
<Chinesesimp>当前负载已导出到剪贴板</Chinesesimp>
|
||||
<Russian>Текущий список комплекта экипировки экспортирован в буфер</Russian>
|
||||
<Portuguese>Loadout atual foi exportado pra área de transferência</Portuguese>
|
||||
<Czech>Současná sada vybavení byla exportována do schránky</Czech>
|
||||
@ -555,7 +571,7 @@
|
||||
<Italian>La lista degli equipaggiamenti standard è stata importata dagli appunti</Italian>
|
||||
<Korean>클립보드에서 기본 로드아웃 가져오기</Korean>
|
||||
<Chinese>預設的裝備清單已從剪貼簿中匯入</Chinese>
|
||||
<Chinesesimp>预设的装备清单已从剪贴簿中汇入</Chinesesimp>
|
||||
<Chinesesimp>默认负载已从剪贴板导入</Chinesesimp>
|
||||
<Russian>Список комплекта экипировки по умолчанию импортирован из буфера</Russian>
|
||||
<Portuguese>A lista de loadouts padrões foi importada da área de transferência</Portuguese>
|
||||
<Czech>Seznam standardních sad vybavení byl importován ze schránky</Czech>
|
||||
@ -571,7 +587,7 @@
|
||||
<Italian>Equipaggiamento importato dagli appunti</Italian>
|
||||
<Korean>클립보드에서 로드아웃을 가져왔습니다.</Korean>
|
||||
<Chinese>裝備已從剪貼簿中匯入</Chinese>
|
||||
<Chinesesimp>装备已从剪贴簿中汇入</Chinesesimp>
|
||||
<Chinesesimp>负载已从剪贴板中导入</Chinesesimp>
|
||||
<Russian>Список комплекта экипировки импортирован из буфера</Russian>
|
||||
<Portuguese>Loadout importado da área de transferência</Portuguese>
|
||||
<Czech>Sada vybavení byla importována ze schránky</Czech>
|
||||
@ -587,7 +603,7 @@
|
||||
<Italian>Il seguente equipaggiamento è stato eliminato:</Italian>
|
||||
<Korean>다음 로드아웃이 삭제됨 :</Korean>
|
||||
<Chinese>以下的裝備已被刪除:</Chinese>
|
||||
<Chinesesimp>以下的装备已被删除:</Chinesesimp>
|
||||
<Chinesesimp>以下的负载已被删除:</Chinesesimp>
|
||||
<Russian>Удален комплект экипировки:</Russian>
|
||||
<Portuguese>O seguinte loadout foi apagado:</Portuguese>
|
||||
<Czech>Tato sada vybavení byla smazána:</Czech>
|
||||
@ -603,7 +619,7 @@
|
||||
<Italian>Il seguente equipaggiamento non è più pubblico:</Italian>
|
||||
<Korean>다음 로드아웃이 더이상 공용이 아님:</Korean>
|
||||
<Chinese>以下的裝備已不再被分享:</Chinese>
|
||||
<Chinesesimp>以下的装备已不再被分享:</Chinesesimp>
|
||||
<Chinesesimp>以下的负载已不再被分享:</Chinesesimp>
|
||||
<Russian>Этот комплект экипировки больше не публичный:</Russian>
|
||||
<Portuguese>O seguinte loadout não é mais público:</Portuguese>
|
||||
<Czech>Tato sada vybavení již není veřejná:</Czech>
|
||||
@ -619,7 +635,7 @@
|
||||
<Italian>Il campo del nome è vuoto!</Italian>
|
||||
<Korean>이름칸이 비었습니다!</Korean>
|
||||
<Chinese>名稱欄位為空!</Chinese>
|
||||
<Chinesesimp>名称栏位为空!</Chinesesimp>
|
||||
<Chinesesimp>名称栏位为空!</Chinesesimp>
|
||||
<Russian>Поле имени пустое!</Russian>
|
||||
<Portuguese>O nome não pode estar vazio!</Portuguese>
|
||||
<Czech>Pole "Jméno" je prázdné!</Czech>
|
||||
@ -635,7 +651,7 @@
|
||||
<Italian>Sei l'autore di questo equipaggiamento</Italian>
|
||||
<Korean>이 로드아웃의 제작자입니다.</Korean>
|
||||
<Chinese>你是這個裝備的作者</Chinese>
|
||||
<Chinesesimp>你是这个装备的作者</Chinesesimp>
|
||||
<Chinesesimp>你是这个负载的作者</Chinesesimp>
|
||||
<Russian>Вы автор этого комплекта экипировки</Russian>
|
||||
<Portuguese>Você é o autor desse loadout</Portuguese>
|
||||
<Czech>Jste autorem této sady vybavení</Czech>
|
||||
@ -651,7 +667,7 @@
|
||||
<Italian>Un tuo equipaggiamento con lo stesso nome è pubblico</Italian>
|
||||
<Korean>같은 이름의 로드아웃이 공용에 있습니다.</Korean>
|
||||
<Chinese>已有相同名稱的裝備在公用分享區</Chinese>
|
||||
<Chinesesimp>已有相同名称的装备在公用分享区</Chinesesimp>
|
||||
<Chinesesimp>已有相同名称的负载在公用分享区</Chinesesimp>
|
||||
<Russian>Ваш комплект экипировки с таким же именем является публичным</Russian>
|
||||
<Portuguese>Um loadout seu com o mesmo nome é público</Portuguese>
|
||||
<Czech>Vaše sada vybavení se stejným jménem je veřejná</Czech>
|
||||
@ -667,7 +683,7 @@
|
||||
<Italian>Il seguente equipaggiamento è stato salvato:</Italian>
|
||||
<Korean>다음 로드아웃이 저장됨:</Korean>
|
||||
<Chinese>以下的裝備已被保存:</Chinese>
|
||||
<Chinesesimp>以下的装备已被保存:</Chinesesimp>
|
||||
<Chinesesimp>以下的负载已被保存:</Chinesesimp>
|
||||
<Russian>Сохранен комплект экипировки:</Russian>
|
||||
<Portuguese>O seguinte loadout foi salvo:</Portuguese>
|
||||
<Czech>Tato sada vybavení byla uložena:</Czech>
|
||||
@ -683,7 +699,7 @@
|
||||
<Italian>Il seguente equipaggiamento è stato caricato:</Italian>
|
||||
<Korean>다음 로드아웃을 불러옴:</Korean>
|
||||
<Chinese>以下的裝備已被載入:</Chinese>
|
||||
<Chinesesimp>以下的装备已被载入:</Chinesesimp>
|
||||
<Chinesesimp>以下的负载已被载入:</Chinesesimp>
|
||||
<Russian>Загружен комплект экипировки:</Russian>
|
||||
<Portuguese>O seguinte loadout foi carregado:</Portuguese>
|
||||
<Czech>Tato sada vybavení byla načtena:</Czech>
|
||||
@ -699,7 +715,7 @@
|
||||
<Italian>Un equipaggiamento con lo stesso nome è gia esistente!</Italian>
|
||||
<Korean>같은 이름의 로드아웃이 이미 존재합니다!</Korean>
|
||||
<Chinese>已有相同名稱的裝備!</Chinese>
|
||||
<Chinesesimp>已有相同名称的装备!</Chinesesimp>
|
||||
<Chinesesimp>已有相同名称的负载!</Chinesesimp>
|
||||
<Russian>Комплект с таким именем уже существует!</Russian>
|
||||
<Portuguese>Um loadout com o mesmo nome já existe!</Portuguese>
|
||||
<Czech>Již existuje sada vybavení se stejným jménem!</Czech>
|
||||
@ -779,7 +795,7 @@
|
||||
<Italian>Consenti equipaggiamenti standard</Italian>
|
||||
<Korean>기본 로드아웃 허용</Korean>
|
||||
<Chinese>允許預設裝備</Chinese>
|
||||
<Chinesesimp>允许预设装备</Chinesesimp>
|
||||
<Chinesesimp>允许默认负载</Chinesesimp>
|
||||
<Russian>Разрешить комплекты по умолчанию</Russian>
|
||||
<Portuguese>Permitir loadouts padrões</Portuguese>
|
||||
<Czech>Povolit standardní sady vybavení</Czech>
|
||||
@ -795,7 +811,7 @@
|
||||
<Italian>Consenti condivisione equipaggiamenti</Italian>
|
||||
<Korean>로드아웃 공유 허용</Korean>
|
||||
<Chinese>允許分享裝備</Chinese>
|
||||
<Chinesesimp>允许分享装备</Chinesesimp>
|
||||
<Chinesesimp>允许分享负载</Chinesesimp>
|
||||
<Russian>Разрешить публикацию комплектов</Russian>
|
||||
<Portuguese>Permitir compartilhar loadouts</Portuguese>
|
||||
<Czech>Povolit sdílení sad vybavení</Czech>
|
||||
@ -827,7 +843,7 @@
|
||||
<Korean>주무기 탄약</Korean>
|
||||
<German>Primärmagazin</German>
|
||||
<Chinese>主要武器彈匣</Chinese>
|
||||
<Chinesesimp>主要武器弹匣</Chinesesimp>
|
||||
<Chinesesimp>主武器弹匣</Chinesesimp>
|
||||
<Russian>Основной магазин</Russian>
|
||||
<Portuguese>Carregador Primário</Portuguese>
|
||||
<Czech>Hlavní zásobník</Czech>
|
||||
@ -843,7 +859,7 @@
|
||||
<Korean>보조무기 탄약</Korean>
|
||||
<German>Sekundärmagazin</German>
|
||||
<Chinese>次要武器彈匣</Chinese>
|
||||
<Chinesesimp>次要武器弹匣</Chinesesimp>
|
||||
<Chinesesimp>副武器弹匣</Chinesesimp>
|
||||
<Russian>Вторичный магазин</Russian>
|
||||
<Portuguese>Carregador Secundário</Portuguese>
|
||||
<Czech>Vedlejší zásobník</Czech>
|
||||
@ -857,14 +873,30 @@
|
||||
<Polish>ACE Arsenał</Polish>
|
||||
<Japanese>ACE 武器庫</Japanese>
|
||||
<Italian>ACE Arsenale</Italian>
|
||||
<Korean>ACE 아스날</Korean>
|
||||
<Korean>ACE 무기고</Korean>
|
||||
<Chinese>ACE虛擬軍火庫</Chinese>
|
||||
<Chinesesimp>ACE虚拟军火库</Chinesesimp>
|
||||
<Chinesesimp>ACE 虚拟军火库</Chinesesimp>
|
||||
<Russian>ACE Арсенал</Russian>
|
||||
<Portuguese>ACE Arsenal</Portuguese>
|
||||
<Czech>ACE Arzenál</Czech>
|
||||
<Turkish>ACE Arsenal</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_loadoutSubcategory">
|
||||
<English>Loadouts</English>
|
||||
<Spanish>Equipamiento</Spanish>
|
||||
<French>Sets d'équipement</French>
|
||||
<German>Ausrüstungen</German>
|
||||
<Polish>Zestawy wyposażenia</Polish>
|
||||
<Japanese>装備</Japanese>
|
||||
<Italian>Equipaggiamenti</Italian>
|
||||
<Korean>로드아웃</Korean>
|
||||
<Chinese>裝備</Chinese>
|
||||
<Chinesesimp>负载</Chinesesimp>
|
||||
<Russian>Комплекты</Russian>
|
||||
<Portuguese>Loadouts</Portuguese>
|
||||
<Czech>Sady vybavení</Czech>
|
||||
<Turkish>Kıyafetler</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_defaultLoadoutsTooltip">
|
||||
<English>Allow the use of the default loadouts tab</English>
|
||||
<Spanish>Permitir el uso de la pestaña de equipamientos por defecto</Spanish>
|
||||
@ -875,7 +907,7 @@
|
||||
<Korean>기본 로드아웃 탭 사용 허가</Korean>
|
||||
<German>Erlaube die Nutzung des Standardausrüstungsreiters</German>
|
||||
<Chinese>允許使用預設的裝備</Chinese>
|
||||
<Chinesesimp>允许使用预设的装备</Chinesesimp>
|
||||
<Chinesesimp>允许使用默认的负载</Chinesesimp>
|
||||
<Russian>Разрешить использование вкладки комплектов экипировки по умолчанию</Russian>
|
||||
<Portuguese>Permite o uso da aba de loadouts padrões</Portuguese>
|
||||
<Czech>Povolit používání záložky standardních sad vybavení</Czech>
|
||||
@ -923,7 +955,7 @@
|
||||
<Korean>RPT에 누락 된 항목 / 사용할 수없는 항목 기록</Korean>
|
||||
<German>Fehlende Gegenstände werden in der RPT aufgezeichnet</German>
|
||||
<Chinese>記錄遺失/無法使用的項目到RPT檔案中</Chinese>
|
||||
<Chinesesimp>记录遗失/无法使用的项目到RPT档案中</Chinesesimp>
|
||||
<Chinesesimp>记录遗失/无法使用的项目到 RPT</Chinesesimp>
|
||||
<Russian>Вести журнал отсутствующих / недоступных предметов в RPT</Russian>
|
||||
<Portuguese>Registrar em log itens indisponíveis no RPT</Portuguese>
|
||||
<Czech>Zalogovat chybějící/nedostupné předměty do RPT logu</Czech>
|
||||
@ -938,7 +970,7 @@
|
||||
<Japanese>ACE 武器庫を開けません</Japanese>
|
||||
<Korean>ACE 아스날을 열 수 없음</Korean>
|
||||
<Chinese>無法開啟ACE虛擬軍火庫</Chinese>
|
||||
<Chinesesimp>无法开启ACE虚拟军火库</Chinesesimp>
|
||||
<Chinesesimp>无法开启 ACE 虚拟军火库</Chinesesimp>
|
||||
<Polish>Nie można otworzyć arsenału ACE</Polish>
|
||||
<Russian>Невозможно открыть ACE Арсенал</Russian>
|
||||
<Portuguese>Não foi possível abrir o ACE Arsenal</Portuguese>
|
||||
@ -951,9 +983,9 @@
|
||||
<French>Importer les sets BI VA dans l'arsenal ACE</French>
|
||||
<German>Importiert die BI-VA-Ausrüstungen in das ACE-Arsenal</German>
|
||||
<Japanese>標準の VA 装備から ACE 武器庫へ取り込み</Japanese>
|
||||
<Korean>바닐라 로드아웃을 ace 아스날로 가져오기</Korean>
|
||||
<Korean>바닐라 로드아웃을 ACE 아스날로 가져오기</Korean>
|
||||
<Chinese>匯入BI原廠虛擬軍火庫的裝備到ACE虛擬軍火庫中</Chinese>
|
||||
<Chinesesimp>汇入BI原厂虚拟军火库的装备到ACE虚拟军火库中</Chinesesimp>
|
||||
<Chinesesimp>导入 BI 原版虚拟军火库的负载到 ACE 虚拟军火库中</Chinesesimp>
|
||||
<Italian>Importa l'arsenale virtuale BI nell'arsenale ACE</Italian>
|
||||
<Polish>Importuj zestawy wyposażenia z wirtualnego arsenału BI do arsenału ACE</Polish>
|
||||
<Russian>Импорт комплектов из Арсенала BI в Арсенал ACE</Russian>
|
||||
@ -968,7 +1000,7 @@
|
||||
<Japanese>プレイヤー ユニットがありません!ユニットを設置し"Player"と名付けてください。</Japanese>
|
||||
<Korean>플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오.</Korean>
|
||||
<Chinese>沒有可用的玩家單位!請擺放一個單位並設定成"玩家"</Chinese>
|
||||
<Chinesesimp>没有可用的玩家单位!请摆放一个单位并设定成"玩家"。</Chinesesimp>
|
||||
<Chinesesimp>没有可用的玩家单位!请摆放一个单位并设定成“玩家”。</Chinesesimp>
|
||||
<Italian>Non ci sono giocatori! Poisziona una unità e impostala come "Giocatore".</Italian>
|
||||
<Polish>Brak dostępnych jednostek gracza! Postaw jednostkę i oznacz ją jako "Gracz".</Polish>
|
||||
<Russian>Нет доступных игроков! Разместите юнит и отметьте его как «Игрок»</Russian>
|
||||
@ -981,9 +1013,9 @@
|
||||
<French>Aucun équipement à importer.</French>
|
||||
<German>Keine Ausrüstungen zum Importieren</German>
|
||||
<Japanese>インポートする装備がありません。</Japanese>
|
||||
<Korean>가져올 로드 아웃이 없습니다.</Korean>
|
||||
<Korean>가져올 로드아웃이 없습니다.</Korean>
|
||||
<Chinese>沒有裝備被匯入</Chinese>
|
||||
<Chinesesimp>没有装备被汇入。</Chinesesimp>
|
||||
<Chinesesimp>没有负载被导入。</Chinesesimp>
|
||||
<Italian>Non ci sono equipaggiamenti da importare.</Italian>
|
||||
<Polish>Brak zestawów wyposażenia do zaimportowania.</Polish>
|
||||
<Russian>Нет комплектов для импорта</Russian>
|
||||
@ -996,9 +1028,9 @@
|
||||
<Spanish>ACE Arsenal</Spanish>
|
||||
<German>ACE-Arsenal</German>
|
||||
<Japanese>ACE 武器庫</Japanese>
|
||||
<Korean>ACE 아스날</Korean>
|
||||
<Korean>ACE 무기고</Korean>
|
||||
<Chinese>ACE虛擬軍火庫</Chinese>
|
||||
<Chinesesimp>ACE虚拟军火库</Chinesesimp>
|
||||
<Chinesesimp>ACE 虚拟军火库</Chinesesimp>
|
||||
<Italian>Arsenale ACE</Italian>
|
||||
<Polish>Arsenał ACE</Polish>
|
||||
<Russian>ACE Арсенал</Russian>
|
||||
@ -1012,9 +1044,9 @@
|
||||
<Spanish>Volver al arsenal de ACE</Spanish>
|
||||
<German>Zurück zum ACE-Arsenal.</German>
|
||||
<Japanese>ACE 武器庫へ戻ります。</Japanese>
|
||||
<Korean>ACE 아스날로 돌아가기</Korean>
|
||||
<Korean>ACE 무기고로 돌아가기</Korean>
|
||||
<Chinese>返回到ACE虛擬軍火庫</Chinese>
|
||||
<Chinesesimp>返回到ACE虚拟军火库。</Chinesesimp>
|
||||
<Chinesesimp>返回到 ACE 虚拟军火库。</Chinesesimp>
|
||||
<Italian>Torna all'arsenale ACE</Italian>
|
||||
<Polish>Wróć do arsenału ACE.</Polish>
|
||||
<Russian>Вернуться в ACE Арсенал</Russian>
|
||||
@ -1028,9 +1060,9 @@
|
||||
<Spanish>Usar el arsenal de ACE para probar diferentes armas y equipamiento.</Spanish>
|
||||
<German>Verwende ACE-Arsenal und sieh dir verschiedene Waffen und Ausrüstung an und probiere sie aus.</German>
|
||||
<Japanese>様々な武器と装備を試せるよう ACE 武器庫を使用します。</Japanese>
|
||||
<Korean>ACE Arsenal을 사용하여 다른 무기와 장비를 시험해보십시오.</Korean>
|
||||
<Korean>ACE 무기고를 사용하여 다른 무기와 장비를 시험해보십시오.</Korean>
|
||||
<Chinese>使用ACE虛擬軍火庫來嘗試不同的武器與裝備</Chinese>
|
||||
<Chinesesimp>使用ACE虚拟军火库来尝试不同的武器与装备。</Chinesesimp>
|
||||
<Chinesesimp>使用 ACE 虚拟军火库来尝试不同的武器与装备。</Chinesesimp>
|
||||
<Italian>Usa l'arsenale ACE per provare armi ed equipaggiamenti vari.</Italian>
|
||||
<Polish>Skorzystaj z arsenału ACE by wypróbować broń i ekwipunek.</Polish>
|
||||
<Russian>Используйте ACE Arsenal, чтобы опробовать различное оружие и снаряжение.</Russian>
|
||||
@ -1045,7 +1077,7 @@
|
||||
<Japanese>様々な武器と装備を試して、あなただけの装備を作成してください。</Japanese>
|
||||
<Korean>무기와 장비를 사용해보고 자신의 로드아웃을 만듭니다.</Korean>
|
||||
<Chinese>嘗試不同的武器與裝備來組合你個人的裝備配置</Chinese>
|
||||
<Chinesesimp>尝试不同的武器与装备来组合你个人的装备配置。</Chinesesimp>
|
||||
<Chinesesimp>尝试不同的武器与装备来组合你个人的负载配置。</Chinesesimp>
|
||||
<Italian>Prova armi ed equipaggiamenti e creai i tuoi equipaggiamenti personalizzati.</Italian>
|
||||
<Polish>Wypróbuj broń i ekwipunek i stwórz swoje własne zestawy wyposażenia.</Polish>
|
||||
<Russian>Опробуйте оружие и снаряжение, создавайте собственные комплекты экипировки.</Russian>
|
||||
@ -1059,7 +1091,7 @@
|
||||
<German>Öffnet das Ausrüstungsmenü</German>
|
||||
<French>Affiche les sets d'équipement.</French>
|
||||
<Chinese>開啟裝備選單</Chinese>
|
||||
<Chinesesimp>开启装备选单</Chinesesimp>
|
||||
<Chinesesimp>开启负载菜单</Chinesesimp>
|
||||
<Japanese>装備画面を開く</Japanese>
|
||||
<Italian>Apri la pagina degli equipaggiamenti</Italian>
|
||||
<Polish>Otwórz ekran zestawów</Polish>
|
||||
@ -1067,6 +1099,7 @@
|
||||
<Portuguese>Abre a tela de loadouts</Portuguese>
|
||||
<Czech>Otevřít obrazovku se sadami vybavení</Czech>
|
||||
<Turkish>Kıyafetler ekranını aç</Turkish>
|
||||
<Korean>로드아웃 화면 열기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonExportTooltip">
|
||||
<English>Export current / default loadouts</English>
|
||||
@ -1074,13 +1107,14 @@
|
||||
<German>Exportiert aktuelles / standard Loadout</German>
|
||||
<French>Exporte le set d'équipement actuel/les sets prédéfinis.</French>
|
||||
<Chinese>匯出當前/預設的裝備</Chinese>
|
||||
<Chinesesimp>汇出当前/预设的装备</Chinesesimp>
|
||||
<Chinesesimp>导出当前/预设的装备</Chinesesimp>
|
||||
<Japanese>現在/標準装備をエクスポートします</Japanese>
|
||||
<Italian>Esporta l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base</Italian>
|
||||
<Polish>Eksportuj obecne / domyślne zestawy wyposażenia </Polish>
|
||||
<Russian>Экспорт комплектов экипировки</Russian>
|
||||
<Portuguese>Exporta loadout atual / loadouts padrões</Portuguese>
|
||||
<Czech>Exportovat současný/standardní sady vybavení</Czech>
|
||||
<Korean>현재/기본 로드아웃을 내보냅니다</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonImportTooltip">
|
||||
<English>Import current / default loadouts</English>
|
||||
@ -1088,13 +1122,14 @@
|
||||
<German>Importiert aktuelles / standard Loadout</German>
|
||||
<French>Importe le set d'équipement actuel/les sets prédéfinis.</French>
|
||||
<Chinese>匯入當前/預設的裝備</Chinese>
|
||||
<Chinesesimp>汇入当前/预设的装备</Chinesesimp>
|
||||
<Chinesesimp>导入当前/预设的负载</Chinesesimp>
|
||||
<Japanese>現在/標準装備をインポートします</Japanese>
|
||||
<Italian>Importa l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base</Italian>
|
||||
<Polish>Importuj obecne / domyślne zestawy wyposażenia</Polish>
|
||||
<Russian>Импорт комплектов экипировки</Russian>
|
||||
<Portuguese>Importa loadout atual / loadouts padrões</Portuguese>
|
||||
<Czech>Importovat současný/standardní sady vybavení</Czech>
|
||||
<Korean>현재/기본 로드아웃 을 불러옵니다</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statPotassium">
|
||||
<English>Potassium levels</English>
|
||||
@ -1110,6 +1145,7 @@
|
||||
<Czech>Úrovně draslíku</Czech>
|
||||
<Turkish>Potasyum seviyeleri</Turkish>
|
||||
<Japanese>カリウム含有量</Japanese>
|
||||
<Korean>칼륨 레벨</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statMagnification">
|
||||
<English>Magnification</English>
|
||||
@ -1138,8 +1174,10 @@
|
||||
<Portuguese>Suporte de Visão Noturna</Portuguese>
|
||||
<French>Support JVN</French>
|
||||
<Chinese>夜視鏡支援</Chinese>
|
||||
<Chinesesimp>支持夜视仪</Chinesesimp>
|
||||
<Czech>Podpora nočního vidění</Czech>
|
||||
<Turkish>Gece Görüş Desteği</Turkish>
|
||||
<Korean>야간투시 지원여부</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_supPrim">
|
||||
<English>Primary supported</English>
|
||||
@ -1152,7 +1190,9 @@
|
||||
<Portuguese>Primária suportada</Portuguese>
|
||||
<French>Primaire supportée</French>
|
||||
<Chinese>主武器支援</Chinese>
|
||||
<Chinesesimp>主镜支持</Chinesesimp>
|
||||
<Czech>Hlavní část hledí podporuje</Czech>
|
||||
<Korean>주무기 지원여부</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_supSec">
|
||||
<English>Secondary supported</English>
|
||||
@ -1165,7 +1205,9 @@
|
||||
<Portuguese>Secundária suportada</Portuguese>
|
||||
<French>Secondaire supportée</French>
|
||||
<Chinese>次要武器支援</Chinese>
|
||||
<Chinesesimp>副镜支持</Chinesesimp>
|
||||
<Czech>Vedlejší část hledí podporuje</Czech>
|
||||
<Korean>보조무기 지원여부</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_IntPrim">
|
||||
<English>Primary integrated</English>
|
||||
@ -1178,7 +1220,9 @@
|
||||
<Portuguese>Primária integrada</Portuguese>
|
||||
<French>Primaire intégrée</French>
|
||||
<Chinese>整合主武器</Chinese>
|
||||
<Chinesesimp>主镜内置</Chinesesimp>
|
||||
<Czech>Integrováno do hlavní části hledí</Czech>
|
||||
<Korean>주무기 내장여부</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
||||
<English>Not Supported</English>
|
||||
@ -1191,8 +1235,10 @@
|
||||
<Portuguese>Não suportado</Portuguese>
|
||||
<French>Non supporté</French>
|
||||
<Chinese>不支援</Chinese>
|
||||
<Chinesesimp>不支持</Chinesesimp>
|
||||
<Czech>Není podporováno</Czech>
|
||||
<Turkish>Desteklenmiyor</Turkish>
|
||||
<Korean>지원되지 않음</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_page">
|
||||
<English>Page</English>
|
||||
@ -1208,6 +1254,7 @@
|
||||
<Portuguese>Página</Portuguese>
|
||||
<Czech>Stránka</Czech>
|
||||
<Turkish>Sayfa</Turkish>
|
||||
<Korean>페이지</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_enableIdentityTabsSettings">
|
||||
<English>Enable the faces / voices / insignias tabs</English>
|
||||
@ -1215,7 +1262,7 @@
|
||||
<German>Aktiviere die Gesichter-, Stimmen- und Abzeichenübersicht</German>
|
||||
<French>Activer les onglets visages/voix/insignes</French>
|
||||
<Japanese>顔 / 声 / 記章タブを有効化</Japanese>
|
||||
<Chinesesimp>启用脸谱/声音/徽章/选项 </Chinesesimp>
|
||||
<Chinesesimp>启用脸谱/语音/徽章选项</Chinesesimp>
|
||||
<Chinese>啟用臉譜/聲音/徽章選項</Chinese>
|
||||
<Italian>Abilita volti, voci e insegne</Italian>
|
||||
<Polish>Aktywuj zakładki twarz / głos / insygnia</Polish>
|
||||
@ -1223,6 +1270,7 @@
|
||||
<Portuguese>Ativar as abas de rostos / vozes / insígnias</Portuguese>
|
||||
<Czech>Povolit záložky s tvářemi, hlasy a insigniemi</Czech>
|
||||
<Turkish>Yüzler/sesler/peçler bölmelerini etkinleştir</Turkish>
|
||||
<Korean>얼굴/음성/부대마크 탭 활성화</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonClearContainerTooltip">
|
||||
<English>Empty the selected container</English>
|
||||
@ -1230,13 +1278,14 @@
|
||||
<German>Aktuellen Container leeren</German>
|
||||
<French>Vider le conteneur selectionné</French>
|
||||
<Japanese>選択されたコンテナは空です</Japanese>
|
||||
<Chinesesimp>选择的箱子是空的</Chinesesimp>
|
||||
<Chinesesimp>选择的容器是空的</Chinesesimp>
|
||||
<Chinese>清空選擇的箱子</Chinese>
|
||||
<Italian>Svuota il contenitore selezionato</Italian>
|
||||
<Polish>Opróżnij wybrany pojemnik</Polish>
|
||||
<Russian>Очистить контейнер</Russian>
|
||||
<Portuguese>Esvaziar o cointâiner selecionado</Portuguese>
|
||||
<Czech>Vyprázdnit vybraný nosič</Czech>
|
||||
<Korean>선택한 보관함 비우기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_exportedClassnameText">
|
||||
<English>Exported class name to clipboard</English>
|
||||
@ -1244,13 +1293,14 @@
|
||||
<German>Der Klassenname wurde in die Zwischenablage exportiert</German>
|
||||
<French>Nom de classe exporté dans le presse papier.</French>
|
||||
<Japanese>クリップボードへクラスネームをエクスポート</Japanese>
|
||||
<Chinesesimp>将种类复制到剪贴板</Chinesesimp>
|
||||
<Chinesesimp>将类名复制到剪贴板</Chinesesimp>
|
||||
<Chinese>輸出 class name 到剪貼簿上</Chinese>
|
||||
<Italian>Copiato il nome della classe negli appunti</Italian>
|
||||
<Polish>Wyeksportowano nazwę klasy do schowka</Polish>
|
||||
<Russian>Имя класса, экспортированного в буфер</Russian>
|
||||
<Portuguese>O nome da classe foi exportado para a área de transferência</Portuguese>
|
||||
<Czech>Jméno třídy exportováno do schránky</Czech>
|
||||
<Korean>클래스 이름 복사하기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_Mode">
|
||||
<English>Mode</English>
|
||||
@ -1296,8 +1346,10 @@
|
||||
<Portuguese>Lista Negra</Portuguese>
|
||||
<French>Liste noire</French>
|
||||
<Chinese>黑名單</Chinese>
|
||||
<Chinesesimp>黑名单</Chinesesimp>
|
||||
<Czech>Seznam zakázaných</Czech>
|
||||
<Turkish>Kara Liste</Turkish>
|
||||
<Korean>블랙리스트</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_Items">
|
||||
<English>Items</English>
|
||||
@ -1326,7 +1378,9 @@
|
||||
<Russian>Экспорт текущего списка предметов в виде массива для использования в скриптах</Russian>
|
||||
<French>Exporte l'équipement actuel dans le presse-papier, sous la forme d'un tableau à utiliser dans les scripts.</French>
|
||||
<Chinese>匯出目前的物品列表為陣列用於腳本編寫</Chinese>
|
||||
<Chinesesimp>导出目前的物品列表为排列以用于脚本编写</Chinesesimp>
|
||||
<Czech>Exportovat současný seznam předmětů jako pole pro použití ve skriptech</Czech>
|
||||
<Korean>스크립트에서 사용을 위해 현재 항목 목록을 배열로 내보내기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_AttributeImport_Tooltip">
|
||||
<English>Import items list array from clipboard (should be the same format as export)</English>
|
||||
@ -1338,8 +1392,10 @@
|
||||
<Portuguese>Importar lista de itens da área de transferência (deve estar no mesmo formato que uma lista exportada)</Portuguese>
|
||||
<French>Importe un tableau d'équipements depuis le presse-papier (le format doit être identique à celui de l'exportation).</French>
|
||||
<Chinese>從剪貼簿匯入物品列表之陣列(應該與匯出的格式一樣)</Chinese>
|
||||
<Chinesesimp>从剪贴板导入物品列表排列(应与导出的格式一样)</Chinesesimp>
|
||||
<Italian>Importa elenco appunti (deve essere nello stesso formato di un elenco esportato)</Italian>
|
||||
<Czech>Importovat pole se seznamem předmětů ze schránky (měl by být ve stejném formátu jako export)</Czech>
|
||||
<Korean>클립보드에서 항목 목록을 배열로 가져옵니다(내보내기와 동일한 형식이어야 함).</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_AttributeAddCompatible_DisplayName">
|
||||
<English>Add Compatible Items</English>
|
||||
@ -1351,8 +1407,10 @@
|
||||
<Portuguese>Adicionar itens compatíveis</Portuguese>
|
||||
<French>Ajouter des objets compatibles</French>
|
||||
<Chinese>增加相容的物品</Chinese>
|
||||
<Chinesesimp>添加兼容物品</Chinesesimp>
|
||||
<Italian>Aggiungi Oggetti Compatibili</Italian>
|
||||
<Czech>Přidat kompatibilní předměty</Czech>
|
||||
<Korean>호환 아이템 추가</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_AttributeAddCompatible_Tooltip">
|
||||
<English>Will automatically add compatible attachments or magazines (based on selected category) for all weapons in current items list</English>
|
||||
@ -1364,8 +1422,10 @@
|
||||
<Portuguese>Irá automaticamente adicionar acessórios ou carregadores (baseado na categoria selecionada) para todas as armas na lista de itens atual</Portuguese>
|
||||
<French>Ajoute automatiquement des accessoires ou des chargeurs compatibles (en fonction de la catégorie sélectionnée), pour toutes les armes de la liste actuelle.</French>
|
||||
<Chinese>將會自動增加相容的配件以及彈匣(基於選擇的類型)至妳目前物品列表中的全部武器</Chinese>
|
||||
<Chinesesimp>将自动为当前物品列表中的所有武器添加兼容的配件或弹匣(基于选定的类别)</Chinesesimp>
|
||||
<Italian>Aggiungerà automaticamente accessori o caricatori (in base alla categoria selezionata) per tutte le armi nell'elenco degli oggetti correnti</Italian>
|
||||
<Czech>Automaticky přídá kompatibilní zásobníky (na základě vybrané kategorie) ro všechny zbraně v současném seznamu předmětů</Czech>
|
||||
<Korean>현재 아이템 목록에 있는 모든 무기에 해당하는부착물과 탄창(선택한 카테고리에 따라)을 자동으로 추가합니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statTTL">
|
||||
<English>Time to live</English>
|
||||
@ -1378,8 +1438,10 @@
|
||||
<Russian>Время действия</Russian>
|
||||
<Portuguese>Time to live</Portuguese>
|
||||
<Chinese>有效時間</Chinese>
|
||||
<Chinesesimp>有效时间</Chinesesimp>
|
||||
<Czech>Time to live</Czech>
|
||||
<Turkish>Bitme Süresi</Turkish>
|
||||
<Korean>유효 시간</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_StatExplosionTime">
|
||||
<English>Fuse Time</English>
|
||||
@ -1389,6 +1451,8 @@
|
||||
<Japanese>信管設定時間</Japanese>
|
||||
<Spanish>Tiempo de espoleta</Spanish>
|
||||
<German>Detonationsverzögerung</German>
|
||||
<Chinesesimp>引信时间</Chinesesimp>
|
||||
<Korean>신관 시간</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_DetonatesOnImpact">
|
||||
<English>Detonates on impact</English>
|
||||
@ -1398,6 +1462,17 @@
|
||||
<Polish>Detonuj przy uderzeniu</Polish>
|
||||
<Japanese>着発信管</Japanese>
|
||||
<Spanish>Detona mediante impacto</Spanish>
|
||||
<Chinesesimp>碰炸引信</Chinesesimp>
|
||||
<Korean>충격 신관</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_loadoutsSaveFaceSetting">
|
||||
<English>Save Face</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_loadoutsSaveVoiceSetting">
|
||||
<English>Save Voice</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_loadoutsSaveInsigniaSetting">
|
||||
<English>Save Insignia</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -19,7 +19,7 @@
|
||||
params ["_player", "_turret"];
|
||||
private _vehicle = vehicle _player;
|
||||
private _typeOf = typeOf _vehicle;
|
||||
private _vehicleCfg = configFile >> "CfgVehicles" >> _typeOf;
|
||||
private _vehicleCfg = configOf _vehicle;
|
||||
|
||||
// config "ace_artillerytables_showGunLaying" [0 disabled, 1 enabled, 2 enabled w/ alt elevationMode] falls back to artilleryScanner
|
||||
private _showGunLaying = if (isNumber (_vehicleCfg >> QGVAR(showGunLaying))) then {
|
||||
|
@ -5,6 +5,7 @@
|
||||
<English>Artillery Rangetable</English>
|
||||
<German>Artillerieschusstafel</German>
|
||||
<Chinese>火炮射程表</Chinese>
|
||||
<Chinesesimp>火炮射表</Chinesesimp>
|
||||
<Italian>Tavola balistica per artigliria </Italian>
|
||||
<Czech>Dělostřelecké tabulky střelby</Czech>
|
||||
<Japanese>火砲射表</Japanese>
|
||||
@ -14,11 +15,13 @@
|
||||
<Spanish>Tabla de distancias de artillería</Spanish>
|
||||
<Turkish>Topçu Menzil Tablosu</Turkish>
|
||||
<Russian>Артиллерийская баллистическая таблица</Russian>
|
||||
<Korean>포병 사격거리표</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ArtilleryTables_rangetable_description">
|
||||
<English>Universal Artillery Rangetable</English>
|
||||
<German>Universale Artillerieschusstafel</German>
|
||||
<Chinese>通用的火炮射程表</Chinese>
|
||||
<Chinesesimp>通用火炮射表</Chinesesimp>
|
||||
<Italian>Tavola balistica universale per artiglieria</Italian>
|
||||
<Czech>Univerzální dělostřelecká tabulka střelby</Czech>
|
||||
<Japanese>汎用の火砲用射程表</Japanese>
|
||||
@ -28,6 +31,7 @@
|
||||
<Spanish>Tabla de distancias universal de artillería</Spanish>
|
||||
<Turkish>Uluslar arası Topçu Menzil Tablosu</Turkish>
|
||||
<Russian>Универсальная артиллерийская баллистическая таблица</Russian>
|
||||
<Korean>범용 포병 사격거리표</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ArtilleryTables_advancedCorrections_displayName">
|
||||
<English>Air Resistance</English>
|
||||
@ -59,7 +63,7 @@
|
||||
<Italian>Per Proiettili dei Giocatori, simula la Resistenza dell'Aria e gli Effetti del Vento</Italian>
|
||||
<Japanese>プレイヤが射撃すると、空気抵抗モデルと風による影響を与えます。</Japanese>
|
||||
<Korean>플레이어 사격시 공기저항과 바람에 영향을 받습니다</Korean>
|
||||
<Chinesesimp>设定由玩家射击的迫击炮,将会受到空气阻力与风力的影响</Chinesesimp>
|
||||
<Chinesesimp>设定由玩家射击的炮弹是否受到空气阻力与风力的影响</Chinesesimp>
|
||||
<Chinese>設定由玩家射擊的迫擊砲,將會受到空氣阻力與風力的影響</Chinese>
|
||||
<Turkish>Oyuncu atışları, hava direnci ve rüzgar efektleri için</Turkish>
|
||||
</Key>
|
||||
@ -67,6 +71,7 @@
|
||||
<English>Artillery Computer Disabled</English>
|
||||
<German>Artilleriecomputer ausgeschaltet</German>
|
||||
<Chinese>停用火炮電腦</Chinese>
|
||||
<Chinesesimp>停用弹道计算机</Chinesesimp>
|
||||
<Italian>Computer artiglieria disattivato</Italian>
|
||||
<Czech>Zakázat používání dělostřeleckého počítače</Czech>
|
||||
<Japanese>砲撃コンピュータ無効化</Japanese>
|
||||
@ -76,11 +81,13 @@
|
||||
<Spanish>Computadora de artillería deshabilitada</Spanish>
|
||||
<Turkish>Topçu Bilgisayarı Devre Dışı</Turkish>
|
||||
<Russian>Артиллерийский Компьютер Отключён</Russian>
|
||||
<Korean>탄도계산컴퓨터 비활성화</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ArtilleryTables_disableArtilleryComputer_description">
|
||||
<English>Disable the vanilla artillery computers</English>
|
||||
<German>Deaktiviert die Vanilla-Artilleriecomputer</German>
|
||||
<Chinese>停用原本的火炮控制電腦</Chinese>
|
||||
<Chinesesimp>禁用游戏自带的弹道计算机</Chinesesimp>
|
||||
<Italian>Disattiva il computer artiglieria vanilla</Italian>
|
||||
<Czech>Zakázat používání dělostřeleckého počítače základní hry</Czech>
|
||||
<Japanese>ゲームの砲撃コンピュータを無効化します。</Japanese>
|
||||
@ -90,6 +97,7 @@
|
||||
<Spanish>Deshabilita la computadora de artillería por defecto de Arma 3</Spanish>
|
||||
<Turkish>Topçu bilgisayarını devre dışı bırak</Turkish>
|
||||
<Russian>Отключить ванильный артиллерийский компьютер</Russian>
|
||||
<Korean>바닐라 탄도계산컴퓨터를 비활성화 합니다.</Korean>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -32,7 +32,7 @@
|
||||
<Japanese>ATragMX を開く</Japanese>
|
||||
<Korean>ATragMX 열기</Korean>
|
||||
<Chinese>開啟ATragMX</Chinese>
|
||||
<Chinesesimp>开启ATragMX</Chinesesimp>
|
||||
<Chinesesimp>开启 ATragMX</Chinesesimp>
|
||||
<Turkish>ATragMX'i aç</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ATragMX_Description">
|
||||
@ -49,7 +49,7 @@
|
||||
<Japanese>ATragMX 付きの携行型端末</Japanese>
|
||||
<Korean>ATragMX가 달린 PDA</Korean>
|
||||
<Chinese>裝有軍用PDA的ATragMX</Chinese>
|
||||
<Chinesesimp>装有军用PDA的ATragMX</Chinesesimp>
|
||||
<Chinesesimp>装有 ATragMX 的军用 PDA</Chinesesimp>
|
||||
<Turkish>Rugged PDA with ATragMX</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
|
||||
@ -66,7 +66,7 @@
|
||||
<Japanese>ATragMX を開く</Japanese>
|
||||
<Korean>ATragMX 열기</Korean>
|
||||
<Chinese>開啟ATragMX</Chinese>
|
||||
<Chinesesimp>开启ATragMX</Chinesesimp>
|
||||
<Chinesesimp>开启 ATragMX</Chinesesimp>
|
||||
<Turkish>ATragMX'i aç</Turkish>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -13,7 +13,7 @@
|
||||
<Hungarian>Tárgy hozzácsatolása</Hungarian>
|
||||
<Russian>Прикрепить предмет</Russian>
|
||||
<Japanese>アイテムを取り付ける</Japanese>
|
||||
<Korean>물건 부착</Korean>
|
||||
<Korean>아이템 부착</Korean>
|
||||
<Chinese>附掛裝備>></Chinese>
|
||||
<Chinesesimp>附挂装备>></Chinesesimp>
|
||||
<Turkish>Eşyayı bağla</Turkish>
|
||||
@ -47,7 +47,7 @@
|
||||
<Hungarian>Tárgy lecsatolása</Hungarian>
|
||||
<Russian>Отсоединить</Russian>
|
||||
<Japanese>アイテムを外す</Japanese>
|
||||
<Korean>분리</Korean>
|
||||
<Korean>떼내기</Korean>
|
||||
<Chinese>取下裝備</Chinese>
|
||||
<Chinesesimp>取下装备</Chinesesimp>
|
||||
<Turkish>Eşyayı sök</Turkish>
|
||||
@ -66,7 +66,7 @@
|
||||
<Japanese>赤外線ストロボを取り付けました</Japanese>
|
||||
<Korean>적외선 스트로브 부착됨</Korean>
|
||||
<Chinese>已附掛紅外線頻閃器</Chinese>
|
||||
<Chinesesimp>已附挂红外线频闪器</Chinesesimp>
|
||||
<Chinesesimp>已附挂红外频闪器</Chinesesimp>
|
||||
<Turkish>IR Strobe Bağlandı</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_IrStrobe_Detached">
|
||||
@ -81,9 +81,9 @@
|
||||
<Hungarian>Infravörös jeladó lecsatolva</Hungarian>
|
||||
<Russian>ИК-маяк отсоединён</Russian>
|
||||
<Japanese>赤外線ストロボを外しました</Japanese>
|
||||
<Korean>적외선 스트로브 분리됨</Korean>
|
||||
<Korean>적외선 스트로브 떼어냄</Korean>
|
||||
<Chinese>已取下紅外線頻閃器</Chinese>
|
||||
<Chinesesimp>已取下红外线频闪器</Chinesesimp>
|
||||
<Chinesesimp>已取下红外频闪器</Chinesesimp>
|
||||
<Turkish>IR Strobe Söküldü</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_IrGrenade_Attached">
|
||||
@ -100,7 +100,7 @@
|
||||
<Japanese>赤外線グレネードを取り付けました</Japanese>
|
||||
<Korean>적외선 수류탄 부착됨</Korean>
|
||||
<Chinese>已附掛紅外線手榴彈</Chinese>
|
||||
<Chinesesimp>已附挂红外线手榴弹</Chinesesimp>
|
||||
<Chinesesimp>已附挂红外手雷</Chinesesimp>
|
||||
<Turkish>IR Bombası Bağlandı</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_IrGrenade_Detached">
|
||||
@ -115,9 +115,9 @@
|
||||
<Hungarian>Infravörös gránát lecsatolva</Hungarian>
|
||||
<Russian>ИК-граната отсоединена</Russian>
|
||||
<Japanese>赤外線グレネードを外しました</Japanese>
|
||||
<Korean>적외선 수류탄 분리됨</Korean>
|
||||
<Korean>적외선 수류탄 떼어냄</Korean>
|
||||
<Chinese>已取下紅外線手榴彈</Chinese>
|
||||
<Chinesesimp>已取下红外线手榴弹</Chinesesimp>
|
||||
<Chinesesimp>已取下红外手雷</Chinesesimp>
|
||||
<Turkish>IR Bombası Söküldü</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_Chemlight_Attached">
|
||||
@ -134,7 +134,7 @@
|
||||
<Japanese>ケミライトを取り付けました</Japanese>
|
||||
<Korean>켐라이트 부착됨</Korean>
|
||||
<Chinese>已附掛螢光棒</Chinese>
|
||||
<Chinesesimp>已附挂萤光棒</Chinesesimp>
|
||||
<Chinesesimp>已附挂荧光棒</Chinesesimp>
|
||||
<Turkish>Işık Çubuğu Bağlandı</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_Chemlight_Detached">
|
||||
@ -149,9 +149,9 @@
|
||||
<Hungarian>Chemlight hozzácsatolva</Hungarian>
|
||||
<Russian>Химсвет отсоединён</Russian>
|
||||
<Japanese>ケミライトを外しました</Japanese>
|
||||
<Korean>켐라이트 분리됨</Korean>
|
||||
<Korean>켐라이트 떼어냄</Korean>
|
||||
<Chinese>已取下螢光棒</Chinese>
|
||||
<Chinesesimp>已取下萤光棒</Chinesesimp>
|
||||
<Chinesesimp>已取下荧光棒</Chinesesimp>
|
||||
<Turkish>Işık Çubuğu Söküldü</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_IrStrobe_Name">
|
||||
@ -168,7 +168,7 @@
|
||||
<Japanese>赤外線ストロボ</Japanese>
|
||||
<Korean>적외선 스트로브</Korean>
|
||||
<Chinese>紅外線頻閃器</Chinese>
|
||||
<Chinesesimp>红外线频闪器</Chinesesimp>
|
||||
<Chinesesimp>红外频闪器</Chinesesimp>
|
||||
<Turkish>IR Stroboskop</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_IrStrobe_Description">
|
||||
@ -185,7 +185,7 @@
|
||||
<Japanese>赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。</Japanese>
|
||||
<Korean>적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다.</Korean>
|
||||
<Chinese>紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號</Chinese>
|
||||
<Chinesesimp>红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号</Chinesesimp>
|
||||
<Chinesesimp>红外频闪器制造只有用夜视仪才能看到的频闪信标,发出一个位置信号。</Chinesesimp>
|
||||
<Turkish>IR Stroboskop, yalnızca gece görüşlerinden gözükebilen titreşimli bir ışık aracılığıyla konumunuzu gösterir.</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_PlaceAction">
|
||||
@ -200,7 +200,7 @@
|
||||
<Hungarian>Elhelyez</Hungarian>
|
||||
<Russian>Установить</Russian>
|
||||
<Japanese>置く</Japanese>
|
||||
<Korean>두기</Korean>
|
||||
<Korean>놓기</Korean>
|
||||
<Chinese>放置</Chinese>
|
||||
<Chinesesimp>放置</Chinesesimp>
|
||||
<Turkish>Yerleştir</Turkish>
|
||||
@ -268,7 +268,7 @@
|
||||
<Hungarian>%1<br/>lecsatolva</Hungarian>
|
||||
<Russian>%1<br/>отсоединен(-а)</Russian>
|
||||
<Japanese>%1<br/>を外しました</Japanese>
|
||||
<Korean>%1<br/>분리됨</Korean>
|
||||
<Korean>%1<br/>떼어냄</Korean>
|
||||
<Chinese>%1<br/>已取下</Chinese>
|
||||
<Chinesesimp>%1<br/>已取下</Chinesesimp>
|
||||
<Turkish>%1<br/>Söküldü</Turkish>
|
||||
|
@ -17,10 +17,10 @@
|
||||
|
||||
params [["_backpack", objNull, [objNull, ""]]];
|
||||
|
||||
if (_backpack isEqualType objNull) then {
|
||||
_backpack = typeOf _backpack;
|
||||
private _config = if (_backpack isEqualType objNull) then {
|
||||
configOf _backpack
|
||||
} else {
|
||||
configFile >> "CfgVehicles" >> _backpack
|
||||
};
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _backpack;
|
||||
|
||||
getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0} // return
|
||||
|
@ -101,7 +101,7 @@ class CfgWeapons {
|
||||
// Rifle_Long_Base_F MG
|
||||
// Stoner 99 LMG
|
||||
class LMG_Mk200_F: Rifle_Long_Base_F {
|
||||
ACE_barrelLength = 317.5;
|
||||
ACE_barrelLength = 381;
|
||||
ACE_barrelTwist = 177.8;
|
||||
initSpeed = -0.999327;
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ class CfgVehicles {
|
||||
class ACE_ApplyHandcuffs {
|
||||
displayName = CSTRING(SetCaptive);
|
||||
selection = "righthand";
|
||||
distance = 2;
|
||||
distance = HANDCUFFS_DISTANCE;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
@ -16,7 +16,7 @@ class CfgVehicles {
|
||||
class ACE_RemoveHandcuffs {
|
||||
displayName = CSTRING(ReleaseCaptive);
|
||||
selection = "righthand";
|
||||
distance = 2;
|
||||
distance = HANDCUFFS_DISTANCE;
|
||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
|
@ -41,7 +41,7 @@ if (!hasInterface) exitWith {};
|
||||
private _target = cursorObject;
|
||||
if !([ACE_player, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !(_target isKindOf "CAManBase") exitWith {false};
|
||||
if ((_target distance ACE_player) > getNumber (configFile >> "CfgVehicles" >> "CAManBase" >> "ACE_Actions" >> "ACE_ApplyHandcuffs" >> "distance")) exitWith {false};
|
||||
if ((_target distance ACE_player) > getNumber (configOf ACE_player >> "ACE_Actions" >> "ACE_ApplyHandcuffs" >> "distance")) exitWith {false};
|
||||
|
||||
if ([ACE_player, _target] call FUNC(canApplyHandcuffs)) exitWith {
|
||||
[ACE_player, _target] call FUNC(doApplyHandcuffs);
|
||||
|
@ -20,18 +20,21 @@ TRACE_1("params", _vehicle);
|
||||
|
||||
scopeName "main";
|
||||
|
||||
private _seats = fullCrew [_vehicle, "", true];
|
||||
reverse _seats;
|
||||
|
||||
{
|
||||
_x params ["_unit", "_role", "_cargoIndex", "_turretPath", "_isPersonTurret"];
|
||||
if (isNull _unit && {_role == "cargo"} && {_cargoIndex > -1} && {!_isPersonTurret}) then {
|
||||
[_cargoIndex, false] breakOut "main";
|
||||
};
|
||||
} forEach (fullCrew [_vehicle, "", true]);
|
||||
} forEach _seats;
|
||||
|
||||
{
|
||||
_x params ["_unit", "_role", "_cargoIndex", "_turretPath", "_isPersonTurret"];
|
||||
if (isNull _unit && {_cargoIndex > -1}) then {
|
||||
[_cargoIndex, true] breakOut "main";
|
||||
};
|
||||
} forEach (fullCrew [_vehicle, "", true]);
|
||||
} forEach _seats;
|
||||
|
||||
[-1, false]
|
||||
|
@ -15,3 +15,5 @@
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define HANDCUFFS_DISTANCE 2
|
||||
|
@ -8,7 +8,7 @@
|
||||
<Chinese>俘虜</Chinese>
|
||||
<Chinesesimp>俘虏</Chinesesimp>
|
||||
<Japanese>捕虜</Japanese>
|
||||
<Korean>포로설정</Korean>
|
||||
<Korean>포로</Korean>
|
||||
<Polish>Jeńcy</Polish>
|
||||
<Russian>Пленные</Russian>
|
||||
<Portuguese>Prisioneiros</Portuguese>
|
||||
@ -31,7 +31,7 @@
|
||||
<Japanese>捕虜にする</Japanese>
|
||||
<Korean>포박하기</Korean>
|
||||
<Chinese>逮捕俘虜</Chinese>
|
||||
<Chinesesimp>逮捕俘虏</Chinesesimp>
|
||||
<Chinesesimp>俘获</Chinesesimp>
|
||||
<Turkish>Kelepçele</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_ReleaseCaptive">
|
||||
@ -99,7 +99,7 @@
|
||||
<Japanese>捕虜を取っている必要があります!</Japanese>
|
||||
<Korean>먼저 포로로 만들어야합니다!</Korean>
|
||||
<Chinese>你必須先逮捕他!</Chinese>
|
||||
<Chinesesimp>你必须先逮捕他!</Chinesesimp>
|
||||
<Chinesesimp>你必须先俘获他!</Chinesesimp>
|
||||
<Turkish>Önce onu tutuklamalısın!</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_LoadCaptive">
|
||||
@ -362,7 +362,7 @@
|
||||
<Japanese>プレイヤーは拘束される前に、投降する必要があります。</Japanese>
|
||||
<Korean>체포하기 전에 먼저 플레이어가 투항을 해야만 합니다</Korean>
|
||||
<Chinese>玩家須先要求目標投降,才可以進行逮捕</Chinese>
|
||||
<Chinesesimp>玩家须先要求目标投降,才可以进行逮捕</Chinesesimp>
|
||||
<Chinesesimp>玩家须先要求目标投降,才可以进行俘获</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_SurrenderOnly">
|
||||
<English>Surrendering only</English>
|
||||
@ -432,7 +432,7 @@
|
||||
<Italian>Necessita arresa AI</Italian>
|
||||
<Japanese>AI の投降を必要とする</Japanese>
|
||||
<Chinese>需要AI先行投降</Chinese>
|
||||
<Chinesesimp>需要AI先行投降</Chinesesimp>
|
||||
<Chinesesimp>需要 AI 先行投降</Chinesesimp>
|
||||
<Korean>AI 항복 필요</Korean>
|
||||
<Polish>Wymaga poddania się przez SI</Polish>
|
||||
<Russian>Требовать ИИ сдаться для ареста</Russian>
|
||||
@ -447,7 +447,7 @@
|
||||
<Italian>Necessita che le AI si arrendano prima di essere arrestate</Italian>
|
||||
<Japanese>AI の拘束は AI が投降している場合に限り可能にします。</Japanese>
|
||||
<Chinese>在逮捕AI之前該AI必須先進入投降狀態</Chinese>
|
||||
<Chinesesimp>在逮捕AI之前该AI必须先进入投降状态。</Chinesesimp>
|
||||
<Chinesesimp>在俘获 AI 之前该 AI 必须先进入投降状态。</Chinesesimp>
|
||||
<Korean>포박하기 전에 먼저 AI가 투항해야만 합니다.</Korean>
|
||||
<Polish>Wymaga poddania się przez SI zanim aresztowanie będzie możliwe</Polish>
|
||||
<Russian>Требовать для ареста, чтобы ИИ вначале сдавались</Russian>
|
||||
@ -462,7 +462,7 @@
|
||||
<Japanese>カーソル先のユニットを拘束</Japanese>
|
||||
<Italian>Imposta l'unità nello stato di prigioniero.</Italian>
|
||||
<Chinese>設置在游標下的單位成俘虜狀態</Chinese>
|
||||
<Chinesesimp>设置在游标下的单位成俘虏状态。</Chinesesimp>
|
||||
<Chinesesimp>设置在光标下的单位成俘虏状态。</Chinesesimp>
|
||||
<Korean>커서의 병력을 포박합니다.</Korean>
|
||||
<Polish>Ustawia jednostkę pod kursorem jako jeniec.</Polish>
|
||||
<Russian>Арестовывает указанный курсором юнит</Russian>
|
||||
|
@ -322,6 +322,11 @@ class CfgVehicles {
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
|
||||
// Invisible Target Soldier
|
||||
class TargetSoldierBase: StaticWeapon {
|
||||
GVAR(canLoad) = 0;
|
||||
};
|
||||
|
||||
class StaticMortar;
|
||||
class Mortar_01_base_F: StaticMortar {
|
||||
GVAR(size) = 2; // 1 = small, 2 = large
|
||||
@ -426,41 +431,43 @@ class CfgVehicles {
|
||||
class Land_CanisterFuel_F: Items_base_F {
|
||||
GVAR(size) = 1;
|
||||
GVAR(canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
|
||||
// Flexible Fuel tanks, 300L
|
||||
class FlexibleTank_base_F: ThingX {
|
||||
GVAR(size) = 3;
|
||||
GVAR(canLoad) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
|
||||
// objects
|
||||
class RoadCone_F: ThingX {
|
||||
GVAR(size) = 1;
|
||||
GVAR(canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
class RoadBarrier_F: RoadCone_F {
|
||||
GVAR(size) = 2;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
|
||||
class Lamps_base_F;
|
||||
class Land_PortableLight_single_F: Lamps_base_F {
|
||||
GVAR(size) = 2;
|
||||
GVAR(canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
class FloatingStructure_F;
|
||||
class Land_Camping_Light_F: FloatingStructure_F {
|
||||
GVAR(size) = 0.2;
|
||||
GVAR(canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
class Land_Camping_Light_off_F: ThingX {
|
||||
GVAR(size) = 0.2;
|
||||
GVAR(canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
GVAR(noRename) = 1;
|
||||
};
|
||||
|
||||
|
||||
|
@ -25,5 +25,6 @@ PREP(startLoadIn);
|
||||
PREP(startUnload);
|
||||
PREP(unload);
|
||||
PREP(unloadAllVehicles);
|
||||
PREP(unloadCarryItem);
|
||||
PREP(unloadItem);
|
||||
PREP(validateCargoSpace);
|
||||
|
@ -50,8 +50,6 @@
|
||||
GVAR(interactionParadrop) = false;
|
||||
createDialog QGVAR(menu);
|
||||
};
|
||||
|
||||
// TOOO maybe drag/carry the unloaded item?
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(serverUnload), {
|
||||
@ -101,7 +99,7 @@ GVAR(objectActions) = [
|
||||
{(_target getVariable [QGVAR(canLoad), getNumber (configOf _target >> QGVAR(canLoad))]) in [true, 1]} &&
|
||||
{alive _target} &&
|
||||
{[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} &&
|
||||
{(getNumber ((configOf _target) >> QGVAR(noRename))) == 0}
|
||||
{(_target getVariable [QGVAR(noRename), getNumber (configOf _target >> QGVAR(noRename))]) in [false, 0]}
|
||||
}
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[QGVAR(load), localize LSTRING(loadObject), "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa",
|
||||
|
@ -35,7 +35,8 @@ if (_item isEqualType "") then {
|
||||
} else {
|
||||
_validItem =
|
||||
(alive _item) &&
|
||||
{_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}};
|
||||
{_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}} &&
|
||||
{!(_item getVariable [QEGVAR(cookoff,isCookingOff), false])};
|
||||
};
|
||||
|
||||
_validItem &&
|
||||
|
@ -18,8 +18,11 @@
|
||||
|
||||
params ["_object", ["_addCustomPart", false]];
|
||||
|
||||
private _class = if (_object isEqualType "") then {_object} else {typeOf _object};
|
||||
private _displayName = getText (configFile >> "CfgVehicles" >> _class >> "displayName");
|
||||
private _displayName = if (_object isEqualType "") then {
|
||||
getText (configFile >> "CfgVehicles" >> _object >> "displayName")
|
||||
} else {
|
||||
getText ((configOf _object) >> "displayName")
|
||||
};
|
||||
|
||||
if (_addCustomPart && {!(_object isEqualType "")}) then {
|
||||
private _customPart = _object getVariable [QGVAR(customName), ""];
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
params ["_object"];
|
||||
private _type = typeOf _object;
|
||||
private _config = configOf _object;
|
||||
TRACE_2("params",_object,_type);
|
||||
|
||||
// If object had size given to it via eden/public then override config canLoad setting
|
||||
@ -24,7 +25,7 @@ private _canLoadPublic = _object getVariable [QGVAR(canLoad), false];
|
||||
if (!(_canLoadPublic isEqualType false)) then {
|
||||
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_object,_type,QGVAR(canLoad),_canLoadPublic);
|
||||
};
|
||||
private _canLoadConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canLoad)) == 1;
|
||||
private _canLoadConfig = getNumber (_config >> QGVAR(canLoad)) == 1;
|
||||
|
||||
// Nothing to do here if object can't be loaded
|
||||
if !(_canLoadConfig || {_canLoadPublic in [true, 1]}) exitWith {};
|
||||
|
@ -19,10 +19,11 @@ params ["_vehicle"];
|
||||
TRACE_1("params", _vehicle);
|
||||
|
||||
private _type = typeOf _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
// If vehicle had space given to it via eden/public then override config hasCargo setting
|
||||
private _hasCargoPublic = _vehicle getVariable [QGVAR(hasCargo), false];
|
||||
private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1;
|
||||
private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1;
|
||||
|
||||
// Nothing to do here if vehicle has no cargo space
|
||||
if !(_hasCargoConfig || _hasCargoPublic) exitWith {};
|
||||
@ -40,13 +41,11 @@ if (_addCargoType) then {
|
||||
// Vehicle can have default ace cargo in its config
|
||||
if (isServer) then {
|
||||
{
|
||||
if (isClass _x) then {
|
||||
private _cargoClassname = getText (_x >> "type");
|
||||
private _cargoCount = getNumber (_x >> "amount");
|
||||
TRACE_3("adding ACE_Cargo", (configName _x), _cargoClassname, _cargoCount);
|
||||
["ace_addCargo", [_cargoClassname, _vehicle, _cargoCount]] call CBA_fnc_localEvent;
|
||||
};
|
||||
} count ("true" configClasses (configFile >> "CfgVehicles" >> _type >> "ACE_Cargo" >> "Cargo"));
|
||||
private _cargoClassname = getText (_x >> "type");
|
||||
private _cargoCount = getNumber (_x >> "amount");
|
||||
TRACE_3("adding ACE_Cargo", (configName _x), _cargoClassname, _cargoCount);
|
||||
["ace_addCargo", [_cargoClassname, _vehicle, _cargoCount]] call CBA_fnc_localEvent;
|
||||
} forEach ("true" configClasses (_config >> QUOTE(ADDON) >> "Cargo"));
|
||||
};
|
||||
|
||||
// Servers and HCs do not require action menus (beyond this point)
|
||||
|
@ -19,6 +19,7 @@ private _display = uiNamespace getVariable QGVAR(menuDisplay);
|
||||
if (isNil "_display") exitWith {};
|
||||
|
||||
private _ctrlEditText = ctrlText 100;
|
||||
_ctrlEditText = _ctrlEditText select [0,32];
|
||||
if (_ctrlEditText isEqualTo "") then { // custom name has been removed
|
||||
[LSTRING(clearedCustomName), 3] call EFUNC(common,displayTextStructured);
|
||||
} else {
|
||||
|
40
addons/cargo/functions/fnc_unloadCarryItem.sqf
Normal file
40
addons/cargo/functions/fnc_unloadCarryItem.sqf
Normal file
@ -0,0 +1,40 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: GhostIsSpooky
|
||||
* Dragging integration. Unloader starts carrying unloaded object.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unloader <OBJECT>
|
||||
* 1: Item <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, object] call ace_cargo_fnc_unloadCarryItem
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
params ["_unloader", "_object"];
|
||||
TRACE_2("unloadCarryItem-start",_unloader,_object);
|
||||
|
||||
if !(["ace_dragging"] call EFUNC(common,isModLoaded)) exitWith {};
|
||||
if (!GVAR(carryAfterUnload) || {getNumber (configOf _object >> QGVAR(blockUnloadCarry)) > 0}) exitWith {};
|
||||
|
||||
// When unloading attached objects, this code will run before server has finished moving object to the safe position
|
||||
[{
|
||||
params ["_unloader", "_object"];
|
||||
(_unloader distance _object) < 10
|
||||
}, {
|
||||
params ["_unloader", "_object"];
|
||||
TRACE_2("unloadCarryItem-unloaded",_unloader,_object);
|
||||
if ([_unloader, _object] call EFUNC(dragging,canCarry)) exitWith {
|
||||
[_unloader, _object] call EFUNC(dragging,startCarry);
|
||||
};
|
||||
if ([_unloader, _object] call EFUNC(dragging,canDrag)) exitWith {
|
||||
[_unloader, _object] call EFUNC(dragging,startDrag);
|
||||
};
|
||||
}, _this, 1.0, { // delay is based on how long it will take server event to trigger and take effect
|
||||
// not a hard error if this fails, could have just unloaded to other side of vehicle because of findSafePos
|
||||
TRACE_1("unloadCarryItem-failed to unload nearby player",_this);
|
||||
}] call CBA_fnc_waitUntilAndExecute;
|
@ -42,6 +42,9 @@ if !(_item in _loaded) exitWith {
|
||||
|
||||
private _object = [_item, _emptyPosAGL, _loaded, _vehicle] call FUNC(unload);
|
||||
|
||||
// Dragging integration
|
||||
[_unloader, _object] call FUNC(unloadCarryItem);
|
||||
|
||||
// Invoke listenable event
|
||||
["ace_cargoUnloaded", [_object, _vehicle, "unload"]] call CBA_fnc_globalEvent;
|
||||
true
|
||||
|
@ -43,6 +43,15 @@
|
||||
{[QGVAR(enableRename), _this, true] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(carryAfterUnload), "CHECKBOX",
|
||||
[LSTRING(carryAfterUnload), LSTRING(carryAfterUnload_description)],
|
||||
[LELSTRING(OptionsMenu,CategoryLogistics), LLSTRING(openMenu)],
|
||||
true,
|
||||
false,
|
||||
{[QGVAR(carryAfterUnload), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(cargoNetType), "LIST",
|
||||
[LSTRING(cargoNetType), LSTRING(cargoNetType_description)],
|
||||
|
@ -40,6 +40,8 @@
|
||||
<Russian>Переименовано в:</Russian>
|
||||
<German>Neu Bewaffnet: <br/>%1</German>
|
||||
<Polish>Nazwa zmieniona na:<br/>%1</Polish>
|
||||
<Chinesesimp>重命名为:<br/>%1</Chinesesimp>
|
||||
<Korean>%1<br/>으로 명칭을 바꿈</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_clearedCustomName">
|
||||
<English>Custom name has been cleared.</English>
|
||||
@ -48,6 +50,8 @@
|
||||
<Russian>Пользовательское название удалено.</Russian>
|
||||
<German>Eigener Name wurde gelöscht.</German>
|
||||
<Polish>Własna nazwa została usunięta</Polish>
|
||||
<Chinesesimp>自定义名称已被清除。</Chinesesimp>
|
||||
<Korean>임의로 지은 명칭을 지웠습니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_renameObjectUI">
|
||||
<English>Set New Name:</English>
|
||||
@ -56,6 +60,8 @@
|
||||
<Russian>Задать новое название:</Russian>
|
||||
<German>Neuen Namen setzen:</German>
|
||||
<Polish>Ustaw nową nazwę:</Polish>
|
||||
<Chinesesimp>设定新名称:</Chinesesimp>
|
||||
<Korean>새로운 명칭 설정:</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enableRename">
|
||||
<English>Enable Rename Action</English>
|
||||
@ -64,6 +70,8 @@
|
||||
<Russian>Включить возможность переименования</Russian>
|
||||
<German>Aktiviere Umbenennungs-Aktion</German>
|
||||
<Polish>Włącz możliwość zmiany nazwy</Polish>
|
||||
<Chinesesimp>启用重命名动作</Chinesesimp>
|
||||
<Korean>새로 명칭짓기 행동 활성화</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enableRename_Description">
|
||||
<English>Enables the rename action for renamable objects.</English>
|
||||
@ -72,6 +80,8 @@
|
||||
<Russian>Включает переименование для объектов, допускающих переименование.</Russian>
|
||||
<German>Aktiviert die Umbenennungs-Aktion für neu benennbare Objekte.</German>
|
||||
<Polish>Włącza akcję zmiany nazwy dla obiektów z możliwością zmiany nazwy.</Polish>
|
||||
<Chinesesimp>启用可重命名物体的重命名动作。</Chinesesimp>
|
||||
<Korean>개체의 명칭을 새로 짓는 것을 허가합니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_openMenu">
|
||||
<English>Cargo</English>
|
||||
@ -102,7 +112,7 @@
|
||||
<Japanese>カーゴ メニュー</Japanese>
|
||||
<Korean>화물 메뉴</Korean>
|
||||
<Chinese>貨物選單</Chinese>
|
||||
<Chinesesimp>货物选单</Chinesesimp>
|
||||
<Chinesesimp>货物菜单</Chinesesimp>
|
||||
<Turkish>Kargo Menüsü</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_labelSpace">
|
||||
@ -118,7 +128,7 @@
|
||||
<Japanese>カーゴの空き容量: %1</Japanese>
|
||||
<Korean>선적 공간 남음: %1</Korean>
|
||||
<Chinese>貨物剩餘空間: %1</Chinese>
|
||||
<Chinesesimp>货物剩余空间: %1</Chinesesimp>
|
||||
<Chinesesimp>货物剩余空间:%1</Chinesesimp>
|
||||
<Turkish>Kargo Alanı Kaldı: %1</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable">
|
||||
@ -148,7 +158,7 @@
|
||||
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
||||
<French>Active la possibilité de charger du matériel dans un module de fret (véhicule/container).</French>
|
||||
<Japanese>カーゴ モジュールで積み込みを有効化</Japanese>
|
||||
<Korean>화물 모듈에 싣기를 활성화합니다</Korean>
|
||||
<Korean>화물 모듈을 활성화합니다</Korean>
|
||||
<Chinese>啟用貨物裝載功能</Chinese>
|
||||
<Chinesesimp>启用货物装载功能</Chinesesimp>
|
||||
</Key>
|
||||
@ -285,6 +295,8 @@
|
||||
<French>Nom personnalisé</French>
|
||||
<German>Eigener Name</German>
|
||||
<Polish>Własna nazwa</Polish>
|
||||
<Chinesesimp>自定义名称</Chinesesimp>
|
||||
<Korean>임의 명칭</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_customName_edenDesc">
|
||||
<English>Set a custom cargo name used in the cargo interface.</English>
|
||||
@ -293,6 +305,8 @@
|
||||
<Russian>Установить пользовательское имя груза, используемое в интерфейсе погрузки.</Russian>
|
||||
<German>Definiere eigenen Frachtnamen, welcher im Frachtraum genutzt wird.</German>
|
||||
<Polish>Ustaw własną nazwę ładunku, używaną w menu ładunku.</Polish>
|
||||
<Chinesesimp>设置货物界面中使用的一个自定义货物名称。</Chinesesimp>
|
||||
<Korean>화물 인터페이스에 쓰일 화물의 명칭을 설정합니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_space_edenName">
|
||||
<English>Cargo Space</English>
|
||||
@ -347,7 +361,7 @@
|
||||
<Italian>Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile)</Italian>
|
||||
<Japanese>オブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可)</Japanese>
|
||||
<Chinese>此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載)</Chinese>
|
||||
<Chinesesimp>此货物会占掉多少空间(设定-1的话此货物就不能被装载)</Chinesesimp>
|
||||
<Chinesesimp>此货物会占掉多少空间(设定 -1 的话此货物就不能被装载)</Chinesesimp>
|
||||
<Polish>Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania)</Polish>
|
||||
<Korean>이 화물을 적재하는데 필요한 공간 (-1=무조건 적재가능)</Korean>
|
||||
<Russian>Грузовое пространство, необходимое для размещения этого объекта (-1 для незагружаемого)</Russian>
|
||||
@ -408,9 +422,9 @@
|
||||
<Italian>Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo.</Italian>
|
||||
<French>Modifie le temps nécessaire au paralargage d'une cargaison.</French>
|
||||
<Chinese>設定空投所需消耗的時間</Chinese>
|
||||
<Chinesesimp>设定空投所需消耗的时间.</Chinesesimp>
|
||||
<Chinesesimp>设定空投所需消耗的时间。</Chinesesimp>
|
||||
<Polish>Modyfikator wskazujący jak dużo czasu potrzeba by zrzucić przedmiot na spadochronie.</Polish>
|
||||
<Korean>화물을 공중 투하 하는데 얼마나 걸리는 시간 설정</Korean>
|
||||
<Korean>화물을 공중 투하 하는데 걸리는 시간을 설정합니다</Korean>
|
||||
<Russian>Модификатор времени, необходимого для десантирования груза</Russian>
|
||||
<Portuguese>Coeficiente de quanto tempo leva para soltar uma carga de paraquedas</Portuguese>
|
||||
<Czech>Upravuje jak dlouho výsadek trvá pro náklad.</Czech>
|
||||
@ -428,6 +442,8 @@
|
||||
<Chinese>裝載時間係數</Chinese>
|
||||
<Czech>Koeficient času nákládání</Czech>
|
||||
<Spanish>Coeficiente de tiempo para cargar</Spanish>
|
||||
<Chinesesimp>装载时间系数</Chinesesimp>
|
||||
<Korean>적재 시간 계수</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_loadTimeCoefficient_description">
|
||||
<English>Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value.</English>
|
||||
@ -441,6 +457,8 @@
|
||||
<Chinese>修改要花多長時間來裝載/卸載物品。\n時間,以秒為單位,而物品的大小數值與這個係數成比。</Chinese>
|
||||
<Czech>Upravuje jak dlouho nakládají/vykládání trvá.\nVýsledkem je čas v sekundách - velikost objektu vynásobená touto hodnotou.</Czech>
|
||||
<Spanish>Modifica el tiempo de carga/descarga de objetos.\n El Tiempo en segundos, es el tamño del objeto multiplicado por este valor.</Spanish>
|
||||
<Chinesesimp>修改装载/卸载物体所需的时间。\n时间,单位:秒,物体的大小乘以该系数值。</Chinesesimp>
|
||||
<Korean>화물의 적재/하역 시 걸리는 시간을 설정합니다.\n초 단위로 물건의 크기에 곱셈하여 계산합니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_openAfterUnload">
|
||||
<English>Reopen Cargo Menu</English>
|
||||
@ -450,6 +468,8 @@
|
||||
<Russian>Переоткрыть меню погрузки</Russian>
|
||||
<German>Frachtmenü erneut öffnen</German>
|
||||
<Polish>Ponownie otwórz menu załadunku</Polish>
|
||||
<Chinesesimp>重新打开货物菜单</Chinesesimp>
|
||||
<Korean>화물 메뉴 다시 열기</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_openAfterUnload_description">
|
||||
<English>Reopen the Cargo Menu after successful unload.</English>
|
||||
@ -459,6 +479,14 @@
|
||||
<Russian>Переоткрыть меню погрузки после успешной выгрузки.</Russian>
|
||||
<German>Frachtmenü erneut öffnen, nach erfolgreichen Entladen.</German>
|
||||
<Polish>Ponownie otwórz menu załadunku po udanym wyładowaniu.</Polish>
|
||||
<Chinesesimp>成功卸货后,重新打开货物菜单。</Chinesesimp>
|
||||
<Korean>화물을 성공적으로 내리고 난 다음 화물 메뉴를 열지 결정합니다.</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_carryAfterUnload">
|
||||
<English>Carry After Unload</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_carryAfterUnload_description">
|
||||
<English>Controls whether cargo items are carried or dragged after unloading.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_cargoNetType">
|
||||
<English>Type of cargo</English>
|
||||
|
1
addons/casings/$PBOPREFIX$
Normal file
1
addons/casings/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\casings
|
17
addons/casings/CfgEventHandlers.hpp
Normal file
17
addons/casings/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,17 @@
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
|
||||
};
|
||||
};
|
4
addons/casings/README.md
Normal file
4
addons/casings/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
ace_casings
|
||||
===============
|
||||
|
||||
Create persistent empty casing when bullets are fired by infantry weapons.
|
1
addons/casings/XEH_PREP.hpp
Normal file
1
addons/casings/XEH_PREP.hpp
Normal file
@ -0,0 +1 @@
|
||||
PREP(createCasing);
|
7
addons/casings/XEH_postInit.sqf
Normal file
7
addons/casings/XEH_postInit.sqf
Normal file
@ -0,0 +1,7 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!hasInterface || !GVAR(enabled)) exitWith {};
|
||||
|
||||
GVAR(cachedCasings) = createHashMap;
|
||||
GVAR(casings) = [];
|
||||
["CAManBase", "FiredMan", {call FUNC(createCasing)}] call CBA_fnc_addClassEventHandler;
|
11
addons/casings/XEH_preInit.sqf
Normal file
11
addons/casings/XEH_preInit.sqf
Normal file
@ -0,0 +1,11 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
#include "initSettings.sqf"
|
||||
|
||||
ADDON = true;
|
3
addons/casings/XEH_preStart.sqf
Normal file
3
addons/casings/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
17
addons/casings/config.cpp
Normal file
17
addons/casings/config.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"esteldunedain","Cyruz","diwako"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
68
addons/casings/functions/fnc_createCasing.sqf
Normal file
68
addons/casings/functions/fnc_createCasing.sqf
Normal file
@ -0,0 +1,68 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: esteldunedain / Cyruz / diwako
|
||||
* Produces a casing matching the fired weapons caliber on the ground around the unit
|
||||
*
|
||||
* Arguments:
|
||||
* 0: unit - Object the event handler is assigned to <OBJECT>
|
||||
* 1: ammo - Ammo used <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "", "","", "B_556x45_Ball"] call ace_casings_fnc_createCasing
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "", "", "", "_ammo"];
|
||||
|
||||
if (!isNull objectParent _unit) exitWith {};
|
||||
|
||||
private _modelPath = GVAR(cachedCasings) get _ammo;
|
||||
|
||||
if (isNil "_modelPath") then {
|
||||
private _cartridge = getText (configFile >> "CfgAmmo" >> _ammo >> "cartridge");
|
||||
//Default cartridge is a 5.56mm model
|
||||
_modelPath = switch (_cartridge) do {
|
||||
case "FxCartridge_9mm": { "A3\Weapons_f\ammo\cartridge_small.p3d" };
|
||||
case "FxCartridge_65": { "A3\weapons_f\ammo\cartridge_65.p3d" };
|
||||
case "FxCartridge_762": { "A3\weapons_f\ammo\cartridge_762.p3d" };
|
||||
case "FxCartridge_127": { "A3\weapons_f\ammo\cartridge_127.p3d" };
|
||||
case "FxCartridge_slug": { "A3\weapons_f\ammo\cartridge_slug.p3d" };
|
||||
case "": { "" };
|
||||
default { "A3\Weapons_f\ammo\cartridge.p3d" };
|
||||
};
|
||||
GVAR(cachedCasings) set [_ammo, _modelPath];
|
||||
};
|
||||
|
||||
if (_modelPath isEqualTo "") exitWith {};
|
||||
|
||||
private _unitPos = getposASL _unit;
|
||||
// Distant shooters don't produce as many cases
|
||||
if ((AGLToASL positionCameraToWorld [0,0,0]) vectorDistance _unitPos > 100 && {random 1 < 0.9}) exitWith {};
|
||||
|
||||
private _weapDir = _unit weaponDirection currentWeapon _unit;
|
||||
private _ejectDir = _weapDir vectorCrossProduct [0, 0, 1];
|
||||
private _pos = _unitPos
|
||||
vectorAdd (_weapDir vectorMultiply (-0.5 + random 2))
|
||||
vectorAdd (_ejectDir vectorMultiply (0.2 + random 2));
|
||||
|
||||
[
|
||||
{
|
||||
params ["_modelPath", "_pos"];
|
||||
|
||||
private _lisPos = (lineIntersectsSurfaces [_pos, _pos vectorAdd [0,0,-1e11], objNull, objNull, true, 1, "ROADWAY", "FIRE"]) #0;
|
||||
private _casing = createSimpleObject [_modelPath, (_lisPos #0 vectorAdd [0,0,0.005]), true];
|
||||
_casing setDir (random 360);
|
||||
_casing setVectorUp _lisPos #1;
|
||||
private _idx = GVAR(casings) pushBack _casing;
|
||||
|
||||
for "_" from 0 to (_idx - GVAR(maxCasings)) do {
|
||||
deleteVehicle (GVAR(casings) deleteAt 0);
|
||||
};
|
||||
},
|
||||
[_modelPath,_pos],
|
||||
0.4
|
||||
] call CBA_fnc_waitAndExecute;
|
1
addons/casings/functions/script_component.hpp
Normal file
1
addons/casings/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
||||
#include "\z\ace\addons\casings\script_component.hpp"
|
17
addons/casings/initSettings.sqf
Normal file
17
addons/casings/initSettings.sqf
Normal file
@ -0,0 +1,17 @@
|
||||
[
|
||||
QGVAR(enabled), "CHECKBOX",
|
||||
[LSTRING(displayName), LSTRING(description)],
|
||||
LSTRING(Settings_DisplayName),
|
||||
true,
|
||||
false,
|
||||
{},
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(maxCasings), "SLIDER",
|
||||
[LSTRING(maxCasings_displayName), LSTRING(maxCasings_description)],
|
||||
LSTRING(Settings_DisplayName),
|
||||
[100, 500, 250, -1],
|
||||
false
|
||||
] call CBA_fnc_addSetting;
|
17
addons/casings/script_component.hpp
Normal file
17
addons/casings/script_component.hpp
Normal file
@ -0,0 +1,17 @@
|
||||
#define COMPONENT casings
|
||||
#define COMPONENT_BEAUTIFIED Casings
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_CASINGS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_CASINGS
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_CASINGS
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
40
addons/casings/stringtable.xml
Normal file
40
addons/casings/stringtable.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Casings">
|
||||
<Key ID="STR_ACE_Casings_Settings_DisplayName">
|
||||
<English>ACE Casings</English>
|
||||
<Japanese>ACE 薬莢</Japanese>
|
||||
<Polish>ACE Łuski</Polish>
|
||||
<Korean>ACE 탄피</Korean>
|
||||
<Chinesesimp>ACE 弹壳</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Casings_displayName">
|
||||
<English>Casings Enabled</English>
|
||||
<Japanese>薬莢の有効化</Japanese>
|
||||
<Polish>Łuski włączone</Polish>
|
||||
<Korean>탄피 활성화</Korean>
|
||||
<Chinesesimp>开启弹壳生成</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Casings_description">
|
||||
<English>Enable persistent casings (POTENTIAL performance impact on old/weak systems)</English>
|
||||
<Japanese>永続的な薬莢を有効にする (古い/弱いシステムに対する潜在的なパフォーマンスの影響)</Japanese>
|
||||
<Polish>Włącz pozostawanie łusek (MOŻLIWY wpływ na wydajność na starych/słabych komputerach)</Polish>
|
||||
<Korean>영구적으로 남는 탄피를 활성화합니다(오래되고 취약한 시스템에 잠재적인 성능에 영향을 미칩니다.)</Korean>
|
||||
<Chinesesimp>开启生成持续存在的弹壳(可能对较老和性能不行的系统有影响)</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Casings_maxCasings_displayName">
|
||||
<English>Maximum casings</English>
|
||||
<Japanese>薬莢の最大量</Japanese>
|
||||
<Polish>Maksymalna liczba łusek</Polish>
|
||||
<Korean>탄피 최대 갯수</Korean>
|
||||
<Chinesesimp>最大弹壳量</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Casings_maxCasings_description">
|
||||
<English>Maximum amount of casings to display</English>
|
||||
<Japanese>表示される薬莢の最大の数</Japanese>
|
||||
<Polish>Maksymalna liczba wyświetlanych łusek</Polish>
|
||||
<Korean>표시할 최대 탄피 갯수</Korean>
|
||||
<Chinesesimp>显示的最大弹壳数量</Chinesesimp>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -6,11 +6,11 @@
|
||||
<Japanese>ケミライト</Japanese>
|
||||
<Polish>Świetliki</Polish>
|
||||
<German>Knicklichter</German>
|
||||
<Korean>켐라이트</Korean>
|
||||
<Korean>화학조명</Korean>
|
||||
<French>Cyalumes</French>
|
||||
<Italian>Luce chimica</Italian>
|
||||
<Chinese>螢光棒</Chinese>
|
||||
<Chinesesimp>萤光棒</Chinesesimp>
|
||||
<Chinesesimp>荧光棒</Chinesesimp>
|
||||
<Russian>Химсвет</Russian>
|
||||
<Portuguese>Bastões de Luz</Portuguese>
|
||||
<Czech>Chemická světla</Czech>
|
||||
@ -54,11 +54,11 @@
|
||||
<Japanese>[ACE] ケミライト</Japanese>
|
||||
<Polish>[ACE] Świetliki</Polish>
|
||||
<German>[ACE] Knicklichter</German>
|
||||
<Korean>[ACE] 켐라이트</Korean>
|
||||
<Korean>[ACE] 화학조명</Korean>
|
||||
<French>[ACE] Cyalumes</French>
|
||||
<Italian>[ACE] Luci chimiche</Italian>
|
||||
<Chinese>[ACE] 螢光棒</Chinese>
|
||||
<Chinesesimp>[ACE] 萤光棒</Chinesesimp>
|
||||
<Chinesesimp>[ACE] 荧光棒</Chinesesimp>
|
||||
<Russian>[ACE] Химсвет</Russian>
|
||||
<Portuguese>[ACE] Bastões de Luz</Portuguese>
|
||||
<Czech>[ACE] Chemická světla</Czech>
|
||||
@ -74,7 +74,7 @@
|
||||
<French>Cyalume (orange)</French>
|
||||
<Italian>Luce chimica (Arancione)</Italian>
|
||||
<Chinese>螢光棒 (橘色)</Chinese>
|
||||
<Chinesesimp>萤光棒 (橘色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(橘色)</Chinesesimp>
|
||||
<Russian>Химсвет (Оранжевый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Laranja)</Portuguese>
|
||||
<Czech>Chemické světlo (Oranžové)</Czech>
|
||||
@ -106,7 +106,7 @@
|
||||
<French>Type : lumière - Orange<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 橘色<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 橘色<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—橘色<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Оранжевый<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Laranja<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Oranžové<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -118,11 +118,11 @@
|
||||
<Japanese>ケミライト (白)</Japanese>
|
||||
<Polish>Świetlik (biały)</Polish>
|
||||
<German>Knicklicht (weiß)</German>
|
||||
<Korean>켐라이트 (하양)</Korean>
|
||||
<Korean>화학조명 (하양)</Korean>
|
||||
<French>Cyalume (blanc)</French>
|
||||
<Italian>Luce chimica (Bianca)</Italian>
|
||||
<Chinese>螢光棒 (白色)</Chinese>
|
||||
<Chinesesimp>萤光棒 (白色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(白色)</Chinesesimp>
|
||||
<Russian>Химсвет (Белый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Branco)</Portuguese>
|
||||
<Czech>Chemické světlo (Bílé)</Czech>
|
||||
@ -154,7 +154,7 @@
|
||||
<French>Type : lumière - Blanche<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 白色<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 白色<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—白色<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Белый<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Branco<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Bílé<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -166,11 +166,11 @@
|
||||
<Japanese>ケミライト (高輝度 赤)</Japanese>
|
||||
<Polish>Świetlik (jaskrawy czerwony)</Polish>
|
||||
<German>Knicklicht (rot, hell)</German>
|
||||
<Korean>켐라이트 (밝은 빨간색)</Korean>
|
||||
<Korean>화학조명 (밝은 빨간색)</Korean>
|
||||
<French>Cyalume HL (rouge)</French>
|
||||
<Italian>Luce chimica (Hi Rossa)</Italian>
|
||||
<Chinese>螢光棒 (超亮紅色)</Chinese>
|
||||
<Chinesesimp>萤光棒 (超亮红色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(高亮红色)</Chinesesimp>
|
||||
<Russian>Химсвет (Ярко-Красный)</Russian>
|
||||
<Portuguese>Bastão de Luz (Vermelho Forte)</Portuguese>
|
||||
<Czech>Chemické světlo (Červené jasné)</Czech>
|
||||
@ -186,7 +186,7 @@
|
||||
<French>Lum. rouge HL</French>
|
||||
<Italian>Luce Hi Rossa</Italian>
|
||||
<Chinese>超亮紅色光</Chinese>
|
||||
<Chinesesimp>超亮红色光</Chinesesimp>
|
||||
<Chinesesimp>高亮红色光</Chinesesimp>
|
||||
<Russian>Яркий Красный свет</Russian>
|
||||
<Portuguese>Luz forte vermelha</Portuguese>
|
||||
<Czech>Červené jasné světlo</Czech>
|
||||
@ -202,7 +202,7 @@
|
||||
<French>Type : lumière HL (30 minutes) - Rouge<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Rossa Hi (30 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 超亮紅色 (30分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 超亮红色 (30分钟)<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—高亮红色(30分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Ярко-Красный (30 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Vermelho Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Červené jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -214,11 +214,11 @@
|
||||
<Japanese>ケミライト (高輝度 黄)</Japanese>
|
||||
<Polish>Świetlik (jaskrawy żółty)</Polish>
|
||||
<German>Knicklicht (gelb, hell)</German>
|
||||
<Korean>켐라이트 (밝은 노란색)</Korean>
|
||||
<Korean>화학조명 (밝은 노란색)</Korean>
|
||||
<French>Cyalume HL (jaune)</French>
|
||||
<Italian>Luce chimica (Hi Gialla)</Italian>
|
||||
<Chinese>螢光棒 (超亮黃色)</Chinese>
|
||||
<Chinesesimp>萤光棒 (超亮黄色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(高亮黄色)</Chinesesimp>
|
||||
<Russian>Химсвет (Ярко-Желтый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Amarelo Forte)</Portuguese>
|
||||
<Czech>Chemické světlo (Žluté jasné)</Czech>
|
||||
@ -234,7 +234,7 @@
|
||||
<French>Lum. jaune HL</French>
|
||||
<Italian>Luce Hi Gialla</Italian>
|
||||
<Chinese>超亮黃色光</Chinese>
|
||||
<Chinesesimp>超亮黄色光</Chinesesimp>
|
||||
<Chinesesimp>高亮黄色光</Chinesesimp>
|
||||
<Russian>Яркий Желтый свет</Russian>
|
||||
<Portuguese>Luz forte amarela</Portuguese>
|
||||
<Czech>Žluté jasné světlo</Czech>
|
||||
@ -250,7 +250,7 @@
|
||||
<French>Type : lumière HL (30 minutes) - Jaune<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Gialla Hi (30 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 超亮黃色 (30分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 超亮黄色 (30分钟)<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—高亮黄色(30分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Ярко-Желтый (30 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Amarelo Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Žluté jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -262,11 +262,11 @@
|
||||
<Japanese>ケミライト (高輝度 白)</Japanese>
|
||||
<Polish>Świetlik (jaskrawy biały)</Polish>
|
||||
<German>Knicklicht (weiß, hell)</German>
|
||||
<Korean>켐라이트 (밝은 하얀색)</Korean>
|
||||
<Korean>화학조명 (밝은 하얀색)</Korean>
|
||||
<French>Cyalume HL (blanc)</French>
|
||||
<Italian>Luce chimica (Hi Bianca)</Italian>
|
||||
<Chinese>螢光棒 (超亮白色)</Chinese>
|
||||
<Chinesesimp>萤光棒 (超亮白色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(高亮白色)</Chinesesimp>
|
||||
<Russian>Химсвет (Ярко-Белый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Branco Forte)</Portuguese>
|
||||
<Czech>Chemické světlo (Bílé jasné)</Czech>
|
||||
@ -282,7 +282,7 @@
|
||||
<French>Lum. blanche HL</French>
|
||||
<Italian>Luce Hi Bianca</Italian>
|
||||
<Chinese>超亮白色光</Chinese>
|
||||
<Chinesesimp>超亮白色光</Chinesesimp>
|
||||
<Chinesesimp>高亮白色光</Chinesesimp>
|
||||
<Russian>Яркий Белый свет</Russian>
|
||||
<Portuguese>Luz forte branca</Portuguese>
|
||||
<Czech>Bílé jasné světlo</Czech>
|
||||
@ -298,7 +298,7 @@
|
||||
<French>Type : lumière HL (30 minutes) - Blanche<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Bianca Hi (30 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 超亮白色 (30分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 超亮白色 (30分钟)<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—高亮白色(30分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Ярко-Белый (30 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Branco Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Bílé jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -315,9 +315,11 @@
|
||||
<Russian>Химсвет (Ярко-Синий)</Russian>
|
||||
<Portuguese>Bastão de Luz (Azul Forte)</Portuguese>
|
||||
<Chinese>螢光棒(超亮藍色)</Chinese>
|
||||
<Chinesesimp>荧光棒(高亮蓝色)</Chinesesimp>
|
||||
<Czech>Chemické světlo (Modré jasné)</Czech>
|
||||
<Spanish>Luz química (Azul Hi)</Spanish>
|
||||
<Turkish>Işık Çubuğu (Mavi)</Turkish>
|
||||
<Korean>화학조명 (밝은 파란색)</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiBlue_DisplayNameShort">
|
||||
<English>Blue Hi Light</English>
|
||||
@ -329,9 +331,11 @@
|
||||
<Russian>Яркий Синий свет</Russian>
|
||||
<Portuguese>Luz forte azul</Portuguese>
|
||||
<Chinese>超亮藍色光</Chinese>
|
||||
<Chinesesimp>高亮蓝色光</Chinesesimp>
|
||||
<Czech>Modré jasné světlo</Czech>
|
||||
<Spanish>Luz azul Hi</Spanish>
|
||||
<Turkish>Mavi Yüksek Işık</Turkish>
|
||||
<Korean>밝은 파란색</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiBlue_DescriptionShort">
|
||||
<English>Type: Light - Blue Hi (30 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
@ -343,9 +347,11 @@
|
||||
<Russian>Тип: Свет - Ярко-Синий (30 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Azul Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Chinese>類型: 光 - 超亮藍色 (30分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型:光—高亮蓝色(30分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Czech>Typ: Světlo - Modré jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
<Spanish>Tipo: Luz - Azul Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano</Spanish>
|
||||
<Turkish>Type: Light - Blue Hi (30 minute)<br />Rounds: 1<br />Used in: Hand</Turkish>
|
||||
<Korean>종류: 밝은 파란색 (30분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayName">
|
||||
<English>Chemlight (Hi Green)</English>
|
||||
@ -357,9 +363,11 @@
|
||||
<Russian>Химсвет (Ярко-Зеленый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Verde Forte)</Portuguese>
|
||||
<Chinese>螢光棒(超亮綠色)</Chinese>
|
||||
<Chinesesimp>荧光棒(高亮绿色)</Chinesesimp>
|
||||
<Czech>Chemické světlo (Zelené jasné)</Czech>
|
||||
<Spanish>Luz química (Verde Hi)</Spanish>
|
||||
<Turkish>Işık Çubuğu (Yeşil)</Turkish>
|
||||
<Korean>화학조명 (밝은 초록색)</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayNameShort">
|
||||
<English>Green Hi Light</English>
|
||||
@ -371,9 +379,11 @@
|
||||
<Russian>Яркий Зеленый свет</Russian>
|
||||
<Portuguese>Luz forte verde</Portuguese>
|
||||
<Chinese>超亮綠色光</Chinese>
|
||||
<Chinesesimp>高亮绿色光</Chinesesimp>
|
||||
<Czech>Zelené jasné světlo</Czech>
|
||||
<Spanish>Luz verde Hi</Spanish>
|
||||
<Turkish>Yeşil Yüksek Işık</Turkish>
|
||||
<Korean>밝은 초록색</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiGreen_DescriptionShort">
|
||||
<English>Type: Light - Green Hi (30 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
@ -385,9 +395,11 @@
|
||||
<Russian>Тип: Свет - Ярко-Зеленый (30 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Verde Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Chinese>類型: 光 - 超亮綠色 (30分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型:光—高亮绿色(30分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Czech>Typ: Světlo - Zelené jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
<Spanish>Tipo: Luz - Verde Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano</Spanish>
|
||||
<Turkish>Type: Light - Green Hi (30 minute)<br />Rounds: 1<br />Used in: Hand</Turkish>
|
||||
<Korean>종류: 밝은 초록색 (30분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayName">
|
||||
<English>Chemlight (Ultra-Hi Orange)</English>
|
||||
@ -399,9 +411,11 @@
|
||||
<Russian>Химсвет (Ультраяркий Оранжевый)</Russian>
|
||||
<Portuguese>Bastão de Luz (Laranja Ultra Forte)</Portuguese>
|
||||
<Chinese>螢光棒(極亮橘色)</Chinese>
|
||||
<Chinesesimp>荧光棒(高亮橘色)</Chinesesimp>
|
||||
<Czech>Chemické světlo (Oranžové velmi jasné)</Czech>
|
||||
<Spanish>Luz química (Naranja Ultra-Hi)</Spanish>
|
||||
<Turkish>Işık Çubuğu (Turuncu)</Turkish>
|
||||
<Korean>화학조명 (밝은 주황색)</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayNameShort">
|
||||
<English>Orange Ultra-Hi Light</English>
|
||||
@ -413,9 +427,11 @@
|
||||
<Russian>Ультраяркий Оранжевый свет</Russian>
|
||||
<Portuguese>Luz ultra forte laranja</Portuguese>
|
||||
<Chinese>極亮橘色光</Chinese>
|
||||
<Chinesesimp>高亮橘色光</Chinesesimp>
|
||||
<Czech>Oranžové velmi jasné světlo</Czech>
|
||||
<Spanish>Luz naranja Ultra-Hi</Spanish>
|
||||
<Turkish>Turuncu Yüksek Işık</Turkish>
|
||||
<Korean>밝은 주황색</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DescriptionShort">
|
||||
<English>Type: Light - Orange Ultra-Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
@ -427,20 +443,22 @@
|
||||
<Russian>Тип: Свет - Ультраяркий Оранжевый (5 минут)<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Laranja Ultra Forte (5 minutos)<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Chinese>類型: 光 - 極亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型:光—高亮橘色(5分钟)<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Czech>Typ: Světlo - Oranžové velmi jasné<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
<Spanish>Tipo: Luz - Naranja Ultra-Hi (5 minutos)<br />Cantidad: 1<br />Usado en: Mano</Spanish>
|
||||
<Turkish>Type: Light - Orange Ultra-Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</Turkish>
|
||||
<Korean>종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_IR_DisplayName">
|
||||
<English>Chemlight (IR)</English>
|
||||
<Japanese>ケミライト (IR)</Japanese>
|
||||
<Polish>Świetlik (podczerwony)</Polish>
|
||||
<German>Knicklicht (IR)</German>
|
||||
<Korean>켐라이트 (적외선)</Korean>
|
||||
<Korean>화학조명 (적외선)</Korean>
|
||||
<French>Cyalume (IR)</French>
|
||||
<Italian>Luce chimica (IR)</Italian>
|
||||
<Chinese>螢光棒 (紅外線)</Chinese>
|
||||
<Chinesesimp>萤光棒 (红外线)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒(红外线)</Chinesesimp>
|
||||
<Russian>Химсвет (Инфракрасный)</Russian>
|
||||
<Portuguese>Bastão de Luz (IV)</Portuguese>
|
||||
<Czech>Chemické světlo (Infračervené)</Czech>
|
||||
@ -452,7 +470,7 @@
|
||||
<Japanese>赤外線光</Japanese>
|
||||
<Polish>Światło podczerwone</Polish>
|
||||
<German>IR-Knicklicht</German>
|
||||
<Korean>적외선 켐라이트</Korean>
|
||||
<Korean>적외선 화학조명</Korean>
|
||||
<French>Lum. IR</French>
|
||||
<Italian>Luce IR</Italian>
|
||||
<Chinese>紅外線光</Chinese>
|
||||
@ -472,7 +490,7 @@
|
||||
<French>Type: lumière - Infrarouge<br />Munitions : 1<br />Application : main</French>
|
||||
<Italian>Tipo: Luce - Infrarossi<br />Usata in: Mano</Italian>
|
||||
<Chinese>類型: 光 - 紅外線<br />發數: 1<br />使用於: 手</Chinese>
|
||||
<Chinesesimp>类型: 光 - 红外线<br />发数: 1<br />使用于: 手</Chinesesimp>
|
||||
<Chinesesimp>类型:光—红外线<br />发数:1<br />使用于:手</Chinesesimp>
|
||||
<Russian>Тип: Свет - Инфракрасный<br />1 штука<br />В руках</Russian>
|
||||
<Portuguese>Tipo: Luz - Infravermelho<br/>Usos: 1<br/>Usado em: Mão</Portuguese>
|
||||
<Czech>Typ: Světlo - Infračervené<br/>Počet použití: 1<br/>Použít v ruce</Czech>
|
||||
@ -484,11 +502,11 @@
|
||||
<Japanese>ケミライト シールド (空)</Japanese>
|
||||
<Polish>Osłona na świetlik (pusta)</Polish>
|
||||
<German>Knicklicht-Abschirmung (leer)</German>
|
||||
<Korean>켐라이트 쉴드 (비어있음)</Korean>
|
||||
<Korean>화학조명 가림막 (비어있음)</Korean>
|
||||
<French>Etui cyalume (vide)</French>
|
||||
<Italian>Scudo Luce chimica (Vuoto)</Italian>
|
||||
<Chinese>螢光棒保護殼 (空)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (空)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(空)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Пуст)</Russian>
|
||||
<Portuguese>Estojo de Luz (Vazio)</Portuguese>
|
||||
<Czech>Clona na chemické světlo</Czech>
|
||||
@ -500,11 +518,11 @@
|
||||
<Japanese>ケミライトを入れられます。シールドとケミライトを組み合わせることで、照明にもなりえます。</Japanese>
|
||||
<Polish>Osłona na świetliki. Połącz ją ze świetlikiem by stworzyć lampkę do czytania.</Polish>
|
||||
<German>Abschirmung für Knicklichter. Mit Knicklicht kombinieren, um Leselicht zu erhalten.</German>
|
||||
<Korean>켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다.</Korean>
|
||||
<Korean>화학조명을 위한 가림막입니다. 화학조명과 같이 사용하여 읽을 때 씁니다.</Korean>
|
||||
<French>Étui pour cyalume. Le combiner avec un cyalume pour obtenir une lampe de lecture.</French>
|
||||
<Italian>Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura.</Italian>
|
||||
<Chinese>螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈</Chinese>
|
||||
<Chinesesimp>萤光棒的保护壳. 与萤光棒结合后可充当阅读灯.</Chinesesimp>
|
||||
<Chinesesimp>荧光棒的保护壳。与萤光棒结合后可充当阅读灯。</Chinesesimp>
|
||||
<Russian>Защитный контейнер для Химсвета. Объедините с Химсветом, чтобы подготовить Свет для чтения</Russian>
|
||||
<Portuguese>Estojo para os bastões de luz. Combine com o bastão de luz para preparar luz de leitura.</Portuguese>
|
||||
<Czech>Clona na chemické světlo. Při vložení chemického světla vznikne praktické světlo na čtení.</Czech>
|
||||
@ -516,11 +534,11 @@
|
||||
<Japanese>ケミライト シールド (緑)</Japanese>
|
||||
<Polish>Osłona na świetlik (zielona)</Polish>
|
||||
<German>Knicklicht-Abschirmung (grün)</German>
|
||||
<Korean>켐라이트 쉴드 (초록)</Korean>
|
||||
<Korean>화학조명 가림막 (초록)</Korean>
|
||||
<French>Etui avec cyalume (vert)</French>
|
||||
<Italian>Scudo Luce Chimica (Verde)</Italian>
|
||||
<Chinese>螢光棒保護殼 (綠色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (绿色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(绿色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Зел)</Russian>
|
||||
<Portuguese>Estojo de Luz (Verde)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Zelené)</Czech>
|
||||
@ -548,11 +566,11 @@
|
||||
<Japanese>ケミライト シールド (赤)</Japanese>
|
||||
<Polish>Osłona na świetlik (czerwona)</Polish>
|
||||
<German>Knicklicht-Abschirmung (rot)</German>
|
||||
<Korean>켐라이트 쉴드 (빨강)</Korean>
|
||||
<Korean>화학조명 가림막 (빨강)</Korean>
|
||||
<French>Etui avec cyalume (rouge)</French>
|
||||
<Italian>Scudo Luce Chimica (Rossa)</Italian>
|
||||
<Chinese>螢光棒保護殼 (紅色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (红色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(红色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Красн)</Russian>
|
||||
<Portuguese>Estojo de Luz (Vermelho)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Červené)</Czech>
|
||||
@ -580,11 +598,11 @@
|
||||
<Japanese>ケミライト シールド (青)</Japanese>
|
||||
<Polish>Osłona na świetlik (niebieska)</Polish>
|
||||
<German>Knicklicht-Abschirmung (blau)</German>
|
||||
<Korean>켐라이트 쉴드 (파랑)</Korean>
|
||||
<Korean>화학조명 가림막 (파랑)</Korean>
|
||||
<French>Etui avec cyalume (bleu)</French>
|
||||
<Italian>Scudo Luce Chimica (Blu)</Italian>
|
||||
<Chinese>螢光棒保護殼 (藍色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (蓝色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(蓝色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Син)</Russian>
|
||||
<Portuguese>Estojo de Luz (Azul)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Modré)</Czech>
|
||||
@ -612,11 +630,11 @@
|
||||
<Japanese>ケミライト シールド (黄)</Japanese>
|
||||
<Polish>Osłona na świetlik (żółta)</Polish>
|
||||
<German>Knicklicht-Abschirmung (gelb)</German>
|
||||
<Korean>켐라이트 쉴드 (노랑)</Korean>
|
||||
<Korean>화학조명 가림막 (노랑)</Korean>
|
||||
<French>Etui avec cyalume (jaune)</French>
|
||||
<Italian>Scudo Luce Chimica (Gialla)</Italian>
|
||||
<Chinese>螢光棒保護殼 (黃色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (黄色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(黄色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Желт)</Russian>
|
||||
<Portuguese>Estojo de Luz (Amarelo)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Žluté)</Czech>
|
||||
@ -644,11 +662,11 @@
|
||||
<Japanese>ケミライト シールド (オレンジ)</Japanese>
|
||||
<Polish>Osłona na świetlik (pomarańczowa)</Polish>
|
||||
<German>Knicklicht-Abschirmung (orange)</German>
|
||||
<Korean>켐라이트 쉴드 (주황)</Korean>
|
||||
<Korean>화학조명 가림막 (주황)</Korean>
|
||||
<French>Etui avec cyalume (orange)</French>
|
||||
<Italian>Scudo Luce Chimica (Arancione)</Italian>
|
||||
<Chinese>螢光棒保護殼 (橘色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (橘色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(橘色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Оранж)</Russian>
|
||||
<Portuguese>Estojo de Luz (Laranja)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Oranžové)</Czech>
|
||||
@ -676,11 +694,11 @@
|
||||
<Japanese>ケミライト シールド (白)</Japanese>
|
||||
<Polish>Osłona na świetlik (biała)</Polish>
|
||||
<German>Knicklicht-Abschirmung (weiß)</German>
|
||||
<Korean>켐라이트 쉴드 (하양)</Korean>
|
||||
<Korean>화학조명 가림막 (하양)</Korean>
|
||||
<French>Etui avec cyalume (blanc)</French>
|
||||
<Italian>Scudo Luce Chimica (Bianca)</Italian>
|
||||
<Chinese>螢光棒保護殼 (白色)</Chinese>
|
||||
<Chinesesimp>萤光棒保护壳 (白色)</Chinesesimp>
|
||||
<Chinesesimp>荧光棒保护壳(白色)</Chinesesimp>
|
||||
<Russian>Контейнер для Химсвета (Белый)</Russian>
|
||||
<Portuguese>Estojo de Luz (Branco)</Portuguese>
|
||||
<Czech>Clona s vloženým chemickým světlem (Bílé)</Czech>
|
||||
|
@ -111,7 +111,6 @@ PREP(inTransitionAnim);
|
||||
PREP(isAwake);
|
||||
PREP(isEngineer);
|
||||
PREP(isEOD);
|
||||
PREP(isFeatureCameraActive);
|
||||
PREP(isInBuilding);
|
||||
PREP(isMedic);
|
||||
PREP(isModLoaded);
|
||||
@ -127,7 +126,6 @@ PREP(muteUnitHandleInitPost);
|
||||
PREP(muteUnitHandleRespawn);
|
||||
PREP(nearestVehiclesFreeSeat);
|
||||
PREP(numberToDigits);
|
||||
PREP(numberToDigitsString);
|
||||
PREP(numberToString);
|
||||
PREP(onAnswerRequest);
|
||||
PREP(owned);
|
||||
@ -145,6 +143,7 @@ PREP(removeSpecificMagazine);
|
||||
PREP(requestCallback);
|
||||
PREP(resetAllDefaults);
|
||||
PREP(restoreVariablesJIP);
|
||||
PREP(rscObjectHelper);
|
||||
PREP(runAfterSettingsInit);
|
||||
PREP(runTests);
|
||||
PREP(sanitizeString);
|
||||
@ -187,6 +186,7 @@ PREP(uniqueElements);
|
||||
PREP(uniqueItems);
|
||||
PREP(unloadPerson);
|
||||
PREP(unloadPersonLocal);
|
||||
PREP(unloadUnitWeapon);
|
||||
PREP(unmuteUnit);
|
||||
PREP(useItem);
|
||||
PREP(useMagazine);
|
||||
|
@ -27,6 +27,7 @@
|
||||
["blockThrow", false, ["ACE_Attach", "ACE_concertina_wire", "ACE_dragging", "ACE_Explosives", "ACE_Ladder", "ACE_rearm", "ACE_refuel", "ACE_Sandbag", "ACE_Trenches", "ACE_tripod"]] call FUNC(statusEffect_addType);
|
||||
["setHidden", true, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["blockRadio", false, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), "ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
["blockSpeaking", false, ["ace_unconscious"]] call FUNC(statusEffect_addType);
|
||||
|
||||
[QGVAR(forceWalk), {
|
||||
params ["_object", "_set"];
|
||||
@ -78,12 +79,23 @@
|
||||
if (_object isEqualTo ACE_Player && {_set > 0}) then {
|
||||
call FUNC(endRadioTransmission);
|
||||
};
|
||||
if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then {
|
||||
if (["task_force_radio"] call FUNC(isModLoaded)) then {
|
||||
_object setVariable ["tf_unable_to_use_radio", _set > 0, true];
|
||||
};
|
||||
if (isClass (configFile >> "CfgPatches" >> "acre_main")) then {
|
||||
if (["acre_main"] call FUNC(isModLoaded)) then {
|
||||
_object setVariable ["acre_sys_core_isDisabledRadio", _set > 0, true];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(blockSpeaking), {
|
||||
params ["_object", "_set"];
|
||||
TRACE_2("blockSpeaking EH",_object,_set);
|
||||
if (["acre_main"] call FUNC(isModLoaded)) then {
|
||||
_object setVariable ["acre_sys_core_isDisabled", _set > 0, true];
|
||||
};
|
||||
if (["task_force_radio"] call FUNC(isModLoaded)) then {
|
||||
_object setVariable ["tf_voiceVolume", [1, 0] select (_set > 0), true];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(blockDamage), { //Name reversed from `allowDamage` because we want NOR logic
|
||||
@ -527,4 +539,34 @@ GVAR(deviceKeyCurrentIndex) = -1;
|
||||
{false},
|
||||
[0xC7, [true, false, false]], false] call CBA_fnc_addKeybind; //SHIFT + Home Key
|
||||
|
||||
|
||||
["ACE3 Weapons", QGVAR(unloadWeapon), localize LSTRING(unloadWeapon), {
|
||||
// Conditions:
|
||||
if !([ACE_player, objNull, ["isNotInside"]] call FUNC(canInteractWith)) exitWith {false};
|
||||
|
||||
private _currentWeapon = currentWeapon ACE_player;
|
||||
if !(_currentWeapon != primaryWeapon _unit && {_currentWeapon != handgunWeapon _unit} && {_currentWeapon != secondaryWeapon _unit}) exitWith {false};
|
||||
|
||||
private _currentMuzzle = currentMuzzle ACE_player;
|
||||
private _currentAmmoCount = ACE_player ammo _currentMuzzle;
|
||||
if (_currentAmmoCount < 1) exitWith {false};
|
||||
|
||||
// Statement:
|
||||
[ACE_player, _currentWeapon, _currentMuzzle, _currentAmmoCount, false] call FUNC(unloadUnitWeapon);
|
||||
true
|
||||
}, {false}, [19, [false, false, true]], false] call CBA_fnc_addKeybind; //ALT + R Key
|
||||
|
||||
["CBA_loadoutSet", {
|
||||
params ["_unit", "_loadout"];
|
||||
// remove if with https://github.com/CBATeam/CBA_A3/pull/1548
|
||||
if (count _loadout == 2) then {
|
||||
_loadout = _loadout select 0;
|
||||
};
|
||||
_loadout params ["_primaryWeaponArray"];
|
||||
if ((_primaryWeaponArray param [0, ""]) == "ACE_FakePrimaryWeapon") then {
|
||||
TRACE_1("Ignoring fake gun",_primaryWeaponArray);
|
||||
_loadout set [0, []];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
GVAR(commonPostInited) = true;
|
||||
|
@ -11,6 +11,9 @@ GVAR(syncedEvents) = createHashMap;
|
||||
GVAR(showHudHash) = createHashMap;
|
||||
GVAR(vehicleIconCache) = createHashMap; // for getVehicleIcon
|
||||
|
||||
// Cache for FUNC(isModLoaded)
|
||||
GVAR(isModLoadedCache) = createHashMap;
|
||||
|
||||
GVAR(settingsInitFinished) = false;
|
||||
GVAR(runAtSettingsInitialized) = [];
|
||||
|
||||
|
@ -37,11 +37,11 @@ GVAR(AssignedItemsShownItems) = [
|
||||
private _assignedItems = getUnitLoadout _unit param [9, ["","","","","",""]]; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]
|
||||
|
||||
GVAR(AssignedItemsShownItems) = [
|
||||
!((_assignedItems select 0) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
|
||||
!((_assignedItems select 3) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
|
||||
!((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
|
||||
!((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
|
||||
!((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
|
||||
((_assignedItems select 0) isNotEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
|
||||
((_assignedItems select 3) isNotEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
|
||||
((_assignedItems select 4) isNotEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
|
||||
((_assignedItems select 2) isNotEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
|
||||
((_assignedItems select 1) isNotEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
|
||||
];
|
||||
|
||||
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
|
||||
|
@ -22,7 +22,7 @@ params ["_oldComponent", "_newComponent", "_version"];
|
||||
_oldComponent params ["_oldComponentName", "_oldSettingName"];
|
||||
_newComponent params ["_newComponentName", "_newSettingName"];
|
||||
|
||||
private _isReplacementAvailable = isClass (configFile >> "CfgPatches" >> _newComponentName);
|
||||
private _isReplacementAvailable = [_newComponentName] call FUNC(isModLoaded);
|
||||
private _isDeprecatedLoaded = missionNamespace getvariable [_oldSettingName, false];
|
||||
private _isReplacementLoaded = missionNamespace getvariable [_newSettingName, false];
|
||||
|
||||
|
@ -66,9 +66,13 @@ if (_state) then {
|
||||
_ctrl ctrlSetTooltip "Abort.";
|
||||
|
||||
_ctrl = _dlg displayctrl ([104, 1010] select isMultiplayer);
|
||||
_ctrl ctrlSetEventHandler ["buttonClick", QUOTE(closeDialog 0; player setDamage 1; [false] call DFUNC(disableUserInput);)];
|
||||
_ctrl ctrlEnable (call {private _config = missionConfigFile >> "respawnButton"; !isNumber _config || {getNumber _config == 1}});
|
||||
_ctrl ctrlSetText "RESPAWN";
|
||||
if (["ace_medical"] call FUNC(isModLoaded)) then {
|
||||
_ctrl ctrlSetEventHandler ["buttonClick", 'closeDialog 0; [player, "respawn_button"] call EFUNC(medical_status,setDead); [false] call DFUNC(disableUserInput);'];
|
||||
} else {
|
||||
_ctrl ctrlSetEventHandler ["buttonClick", QUOTE(closeDialog 0; player setDamage 1; [false] call DFUNC(disableUserInput);)];
|
||||
};
|
||||
_ctrl ctrlEnable ((getMissionConfigValue ["respawnButton", -1]) != 0); // handles 3den attribute or description.ext
|
||||
_ctrl ctrlSetText localize "$str_3den_multiplayer_attributecategory_respawn_displayname";
|
||||
_ctrl ctrlSetTooltip "Respawn.";
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
["ace_endRadioTransmissions"] call CBA_fnc_localEvent;
|
||||
|
||||
// ACRE
|
||||
if (isClass (configFile >> "CfgPatches" >> "acre_main")) then {
|
||||
if (["acre_main"] call FUNC(isModLoaded)) then {
|
||||
[-1] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
|
||||
[0] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
|
||||
[1] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
|
||||
@ -27,8 +27,8 @@ if (isClass (configFile >> "CfgPatches" >> "acre_main")) then {
|
||||
};
|
||||
|
||||
// TFAR
|
||||
if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then {
|
||||
if (isClass (configFile >> "CfgPatches" >> "tfar_core")) exitWith { // Beta TFAR, exit to avoid script errors from legacy functions not existing
|
||||
if (["task_force_radio"] call FUNC(isModLoaded)) then {
|
||||
if (["tfar_core"] call FUNC(isModLoaded)) exitWith { // Beta TFAR, exit to avoid script errors from legacy functions not existing
|
||||
ACE_Player call TFAR_fnc_releaseAllTangents;
|
||||
};
|
||||
call TFAR_fnc_onSwTangentReleased;
|
||||
|
@ -43,9 +43,13 @@ if (_cargo isKindOf "CAManBase") then {
|
||||
_radiusOfItem = 1.1;
|
||||
} else {
|
||||
//`sizeOf` is unreliable, and does not work with object types that don't exist on map, so estimate size based on cargo size
|
||||
private _typeOfCargo = if (_cargo isEqualType "") then {_cargo} else {typeOf _cargo};
|
||||
private _itemSize = if (isNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) && {getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) != -1}) then {
|
||||
getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size));
|
||||
private _configOfCargo = if (_cargo isEqualType objNull) then {
|
||||
configOf _cargo
|
||||
} else {
|
||||
configFile >> "CfgVehicles" >> _cargo
|
||||
};
|
||||
private _itemSize = if (isNumber (_configOfCargo >> QEGVAR(cargo,size)) && {getNumber (_configOfCargo >> QEGVAR(cargo,size)) != -1}) then {
|
||||
getNumber (_configOfCargo >> QEGVAR(cargo,size));
|
||||
} else {
|
||||
if (["ace_cargo"] call FUNC(isModLoaded)) then {
|
||||
[_cargo] call EFUNC(cargo,getSizeItem);
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
params [["_vehicle", objNull, [objNull]]];
|
||||
|
||||
private _config = configFile >> "CfgVehicles" >> _vehicle;
|
||||
private _config = configOf _vehicle;
|
||||
|
||||
private _cargo = [];
|
||||
private _codrivers = getArray (_config >> "cargoIsCoDriver");
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user