Merge branch 'master' into mclos

This commit is contained in:
PabstMirror 2019-12-16 20:06:13 -06:00
commit 511c5a7801
942 changed files with 21778 additions and 9657 deletions

View File

@ -1,25 +0,0 @@
**Arma 3 Version:** `x.xx` (stable / rc / dev)
**CBA Version:** `3.x.x` (stable / dev + commit hash)
**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
**Mods:**
```
- CBA_A3
- ace
```
**Description:**
- Add a detailed description of the error. This makes it easier for us to fix the issue.
**Steps to reproduce:**
- Add the steps needed to reproduce the issue.
**Where did the issue occur?**
- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
**Additional information:**
- Provide any additional information that will help us solve this issue.
**RPT log file:**
- Add a link ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3).
- If possible at the time the bug is encountered, go to Options and select "ACE Debug To Clipboard", this will print extensive debug information to the RPT file and copy it to clipboard.

37
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,37 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: kind/bug
assignees: ''
---
**Mods (complete and add to the following information):**
- **Arma 3:** `x.xx` [e.g. 1.00 stable, rc, dev]
- **CBA:** `3.x.x` [e.g. 3.0.0 stable, commit hash]
- **ACE3:** `3.x.x` [eg. 3.0.0 stable, commit hash]
_Make sure to reproduce the issue with only CBA and ACE3 on a newly created mission!_
**Description:**
A clear and concise description of what the bug is.
**Steps to reproduce:**
- Go to ...
- Click ...
- See ...
**Expected behavior:**
A clear and concise description of what you expected to happen.
**Where did the issue occur?**
- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
**Log Files:**
- Link to ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3).
**Additional context:**
Add any other context about the problem here.
**Screenshots:**
If applicable, add screenshots to help explain your problem.

View File

@ -0,0 +1,20 @@
---
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.

View File

@ -0,0 +1,12 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: kind/feature request, status/invalid
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).

49
.github/workflows/arma.yml vendored Normal file
View File

@ -0,0 +1,49 @@
name: Arma
on:
push:
branches:
- master
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@master
- name: Validate SQF
run: python3 tools/sqf_validator.py
- name: Validate Config
run: python3 tools/config_style_checker.py
- name: Validate Stringtables
run: python3 tools/stringtable_validator.py
- name: Check Strings
run: python3 tools/check_strings.py
- name: Check for BOM
uses: arma-actions/bom-check@master
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@master
- name: Lint (sqflint)
uses: arma-actions/sqflint@master
continue-on-error: true # No failure due to many false-positives
build:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@master
- name: Build using HEMTT
uses: arma-actions/hemtt@master
with:
command: build --ci # no --release due to https://github.com/synixebrett/HEMTT/issues/227
# https://github.com/actions/upload-artifact/issues/3#issuecomment-524442814
# - name: Upload Artifact
# uses: actions/upload-artifact@master
# with:
# name: ace3-${{ github.sha }}-nobin
# path: '@ace'

24
.github/workflows/documentation.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: Documentation
on:
push:
branches:
- master
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@master
- name: Install Python packages
run: |
pip3 install wheel
pip3 install setuptools
pip3 install pygithub
pip3 install pygithub3
- name: Deploy
if: github.repository == 'acemod/ACE3' && ! contains(github.event.head_commit.message, '[ci skip]')
env:
GH_TOKEN: ${{ secrets.DOCS_TOKEN }}
run: python3 tools/deploy.py

30
.github/workflows/extensions.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Extensions
on:
pull_request:
paths:
- 'extensions/*'
- 'extensions/*/*'
- 'extensions/*/*/*'
- 'extensions/*/*/*/*'
- 'extensions/*/*/*/*/*'
jobs:
build:
runs-on: ${{ matrix. os }}
strategy:
matrix:
os: [windows-latest]
steps:
- name: Checkout the source code
uses: actions/checkout@master
- name: Build
run: |
cd extensions/build
cmake .. && cmake --build .
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: ace3_extensions-${{ matrix.os }}-debug
path: extensions/build

4
.gitignore vendored
View File

@ -1,8 +1,10 @@
@*
*.zip
release/*
releases/*
hemtt
hemtt.exe
tools/temp
tools/armake.exe
*.cache
*.pbo
texHeaders.bin

View File

@ -47,10 +47,12 @@ Arkhir <wonsz666@gmail.com >
Asgar Serran <piechottaf@web.de>
BaerMitUmlaut
Bamse <bamsis@gmail.com>
Barman75
Bla1337
BlackPixxel <blackpixxel96@gmail.com>
BlackQwar
Brakoviejo
Brandon (TCVM) <brandondanyluk366@gmail.com>
Brisse <brisse@outlook.com>
Brostrom.A | Evul <andreas.brostrom.ce@gmail.com>
BullHorn <bullhorn7@gmail.com>
@ -60,6 +62,7 @@ Clon1998 <ps.patti1998@gmail.com>
Codingboy
Coren <coren4@gmail.com>
Crusty
C0kkie
Dharma Bellamkonda <dharma.bellamkonda@gmail.com>
Dimaslg <dimaslg@telecable.es>
diwako
@ -122,6 +125,7 @@ PiZZADOX <509thParachuteInfantry@gmail.com>
Phyma <sethramstrom@gmail.com>
pokertour
Professor <lukas.trneny@wo.cz>
Pterolatypus <pterolatypus@gmail.com>
QuickDagger
rakowozz
ramius86 <pasini86@hotmail.com>
@ -130,6 +134,7 @@ Riccardo Petricca <petriccarcc@gmail.com>
Robert Boklahánics <bokirobi@gmail.com>
ruPaladin <happyworm24@rambler.ru>
Rutger "RedBery" Meijering <c.redbery@gmail.com>
Schwaggot <tom.ryan@posteo.de>
simon84 <badguy360th@gmail.com>
Skengman2
Sniperwolf572 <tenga6@gmail.com>

View File

@ -1,91 +0,0 @@
VERSION = $(shell cat "VERSION")
PREFIX = ace
BIN = @ace
ZIP = ace3
FLAGS = -i include -w unquoted-string -w redefinition-wo-undef
VERSION_FILES = README.md docs/README_DE.md docs/README_PL.md mod.cpp
MAJOR = $(word 1, $(subst ., ,$(VERSION)))
MINOR = $(word 2, $(subst ., ,$(VERSION)))
PATCH = $(word 3, $(subst ., ,$(VERSION)))
BUILD = $(word 4, $(subst ., ,$(VERSION)))
VERSION_S = $(MAJOR).$(MINOR).$(PATCH)
GIT_HASH = $(shell git log -1 --pretty=format:"%H" | head -c 8)
ifeq ($(OS), Windows_NT)
ARMAKE = ./tools/armake.exe # Downloaded via make.ps (rename armake_wXY.exe otherwise)
else
ARMAKE = armake
endif
$(BIN)/addons/$(PREFIX)_%.pbo: addons/%
@mkdir -p $(BIN)/addons
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f -e "version=$(GIT_HASH)" $< $@
$(BIN)/optionals/$(PREFIX)_%.pbo: optionals/%
@mkdir -p $(BIN)/optionals
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f -e "version=$(GIT_HASH)" $< $@
# Shortcut for building single addons (eg. "make <component>.pbo")
%.pbo:
"$(MAKE)" $(MAKEFLAGS) $(patsubst %, $(BIN)/addons/$(PREFIX)_%, $@)
all: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo, $(wildcard optionals/*))
filepatching:
"$(MAKE)" $(MAKEFLAGS) FLAGS="-w unquoted-string -p"
$(BIN)/keys/%.biprivatekey:
@mkdir -p $(BIN)/keys
@echo " KEY $@"
@${ARMAKE} keygen -f $(patsubst $(BIN)/keys/%.biprivatekey, $(BIN)/keys/%, $@)
$(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign: $(BIN)/addons/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey
@echo " SIG $@"
@${ARMAKE} sign -f -s $@ $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey $<
$(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign: $(BIN)/optionals/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey
@echo " SIG $@"
@${ARMAKE} sign -f -s $@ $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey $<
signatures: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign, $(wildcard optionals/*))
extensions: $(wildcard extensions/*/*)
cd extensions/build && cmake .. && make
find ./extensions/build/ \( -name "*.so" -o -name "*.dll" \) -exec cp {} ./ \;
extensions-win64: $(wildcard extensions/*/*)
cd extensions/build && CXX=$(eval $(which g++-w64-mingw-i686)) cmake .. && make
version:
@echo " VER $(VERSION)"
$(shell sed -i -r -s 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/$(VERSION)/g' $(VERSION_FILES))
$(shell sed -i -r -s 's/[0-9]+\.[0-9]+\.[0-9]+/$(VERSION_S)/g' $(VERSION_FILES))
@echo -e "#define MAJOR $(MAJOR)\n#define MINOR $(MINOR)\n#define PATCHLVL $(PATCH)\n#define BUILD $(BUILD)" > "addons/main/script_version.hpp"
$(shell sed -i -r -s 's/ACE_VERSION_MAJOR [0-9]+/ACE_VERSION_MAJOR $(MAJOR)/g' extensions/CMakeLists.txt)
$(shell sed -i -r -s 's/ACE_VERSION_MINOR [0-9]+/ACE_VERSION_MINOR $(MINOR)/g' extensions/CMakeLists.txt)
$(shell sed -i -r -s 's/ACE_VERSION_REVISION [0-9]+/ACE_VERSION_REVISION $(PATCH)/g' extensions/CMakeLists.txt)
commit:
@echo " GIT commit release preparation"
@git add -A
@git diff-index --quiet HEAD || git commit -am "Prepare release $(VERSION_S)" -q
push: commit
@echo " GIT push release preparation"
@git push -q
release: clean version commit
@"$(MAKE)" $(MAKEFLAGS) signatures
@echo " ZIP $(ZIP)_$(VERSION_S).zip"
@cp *.dll mod.cpp README.md docs/README_DE.md docs/README_PL.md AUTHORS.txt LICENSE logo_ace3_ca.paa meta.cpp $(BIN)
@zip -qr $(ZIP)_$(VERSION_S).zip $(BIN)
clean:
rm -rf $(BIN) $(ZIP)_*.zip
.PHONY: all filepatching signatures extensions extensions-win64 version commit push release clean

View File

@ -19,7 +19,7 @@
<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://slackin.ace3mod.com/badge.svg?style=flat-square&label=Slack" alt="ACE3 Slack">
<img src="https://img.shields.io/badge/Slack-Join-darkviolet.svg?style=flat-square" alt="ACE3 Slack">
</a>
<a href="https://circleci.com/gh/acemod/ACE3">
<img src="https://circleci.com/gh/acemod/ACE3.svg?style=svg" alt="ACE3 Build Status">

View File

@ -1 +0,0 @@
3.12.6.43

Binary file not shown.

Binary file not shown.

View File

@ -20,5 +20,8 @@ class CfgPatches {
#include "ACE_Settings.hpp"
class ACE_Extensions {
extensions[] += {"ace_advanced_ballistics"};
class ace_advanced_ballistics {
windows = 1;
client = 1;
};
};

View File

@ -1,7 +1,7 @@
#include "script_component.hpp"
/*
* Author: Ruthberg
* Initializes the advanced ballistics dll extension with terrain data
* Initializes the advanced ballistics extension with terrain data
*
* Arguments:
* None

View File

@ -6,7 +6,7 @@
<Polish>Pokaż inf. o wietrze</Polish>
<Italian>Mostra indicazioni del vento</Italian>
<Russian>Показать информацию о ветре</Russian>
<French>Afficher les info sur le vent</French>
<French>Afficher les infos sur le vent</French>
<Spanish>Mostrar información del viento</Spanish>
<German>Windinformationen anzeigen</German>
<Hungarian>Széladatok mutatása</Hungarian>
@ -89,8 +89,11 @@
<Korean>총구속도 변화적용</Korean>
<Chinese>啟用槍口初速變化</Chinese>
<Chinesesimp>启用枪口初速变化</Chinesesimp>
<French>Activer les variations de la vitesse initiale</French>
<French>Activer la variation de vitesse initiale</French>
<Polish>Aktywuj wariację prędkości wylotowej</Polish>
<Russian>Вкл. вариацию начальной скорости</Russian>
<Portuguese>Ativar Variação de Velocidade no Freio de boca (muzzle)</Portuguese>
<Czech>Povoluje variantu rychlosti ústí</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_muzzleVelocityVariationEnabled_Description">
<English>Simulates slight variations in muzzle velocity between each shot</English>
@ -100,8 +103,11 @@
<Korean>각 사격 사이에 총구속도 변화를 시뮬레이션 합니다.</Korean>
<Chinese>模擬每發子彈的槍口初速都略有不同</Chinese>
<Chinesesimp>模拟每发子弹的枪口初速都略有不同</Chinesesimp>
<French>Simule les légères variations</French>
<French>Simule de légères variations de vitesse initiale entre chaque tir.</French>
<Polish>Symuluje lekkie zmiany w prędkości wylotowej między każdym strzałem</Polish>
<Russian>Имитирует небольшие изменения начальной скорости при каждом выстреле</Russian>
<Portuguese>Simula pequenas variações na velocidade do Freio de Boca entre cada tiro</Portuguese>
<Czech>Simuluje malé odchylky v úsťové rychlosti mezi jednotlivými výstřely</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
<English>Enable Ammo Temperature Simulation</English>
@ -110,7 +116,7 @@
<German>Simulation der Munitionstemperatur aktivieren</German>
<Czech>Povolit simulaci teploty munice</Czech>
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
<French>Active la simulation de la température</French>
<French>Activer la simulation de la température</French>
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
<Russian>Симуляция температуры для боеприпасов</Russian>
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
@ -126,7 +132,7 @@
<German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German>
<Czech>Úsťová rychlost je závislá na teplotě munice</Czech>
<Portuguese>A velocidade de saída varia com a temperatura da munição</Portuguese>
<French>La température de la munition influe sur la vélocité intiale</French>
<French>La vitesse initiale varie en fonction de la température des munitions.</French>
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
<Russian>Начальная скорость пули зависит от температуры</Russian>
<Italian>La velocità dello sparo varia a seconda della temperatura delle munizioni</Italian>
@ -158,7 +164,7 @@
<German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German>
<Czech>Úsťová rychlost je závislá na délce hlavně</Czech>
<Portuguese>A velocidade de saída caria com o comprimento do cano</Portuguese>
<French>La longueur du canon influe sur la vélocité initale</French>
<French>La vitesse initiale varie en fonction de la longueur du canon.</French>
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
<Russian>Начальная скорость пули зависит от длины ствола</Russian>
<Italian>La velocità di sparo varia a seconda della lunghezza della canna</Italian>
@ -190,7 +196,7 @@
<German>Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)</German>
<Czech>Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)</Czech>
<Portuguese>Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)</Portuguese>
<French>Active une tracante pour les munitions de gros calibre (seulement visible en utilisant des optiques avancées)</French>
<French>Active un effet de balle traçante pour les munitions de gros calibre (seulement visible en utilisant une optique à fort grossissement)</French>
<Hungarian>Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható)</Hungarian>
<Russian>Включает эффект следов пуль для больших калибров (видны только через мощную оптику)</Russian>
<Italian>Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
@ -222,7 +228,7 @@
<German>Definiert das Intervall zwischen den einzelnen Simulationsschritten</German>
<Czech>Určuje interval mezi každým výpočtem</Czech>
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
<French>Définit un intervalle de calcul entre deux simulations</French>
<French>Définit l'intervalle entre chacune des étapes de calcul.</French>
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
<Russian>Определяет временной интервал между вычислениями</Russian>
<Italian>Definisce l'intervallo tra ogni step di calcolo</Italian>
@ -254,7 +260,7 @@
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
<French>Définit le rayon autour du joueur (en mètres) d'application de la balistique avancée</French>
<French>Définit le rayon autour du joueur (en mètres), dans lequel la balistique avancée est appliquée aux projectiles.</French>
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
<Russian>Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам</Russian>
<Italian>Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili</Italian>
@ -269,7 +275,7 @@
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
<French>Ce module active la simulation de balistique avancée - les projectiles sont influencés par des variables comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelles ils sont tirés.</French>
<French>Ce module permet une simulation balistique avancée ; c'est à dire que la trajectoire des projectiles est influencée par des facteurs tels que la température de l'air, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme depuis laquelle elle est tirée.</French>
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>

View File

@ -47,8 +47,8 @@ if (!hasInterface) exitWith {};
[QEGVAR(medical,pain), { // 0->1.0, 0.5->1.05, 1->1.1
linearConversion [0, 1, (_this getVariable [QEGVAR(medical,pain), 0]), 1, 1.1, true];
}] call FUNC(addDutyFactor);
[QEGVAR(medical,bloodVolume), { // 100->1.0, 90->1.1, 80->1.2
linearConversion [6, 0, (_this getVariable [QEGVAR(medical,bloodVolume), 100]), 1, 2, true];
[QEGVAR(medical,bloodVolume), { // 6->1.0, 5->1.167, 4->1.33
linearConversion [6, 0, (_this getVariable [QEGVAR(medical,bloodVolume), 6]), 1, 2, true];
}] call FUNC(addDutyFactor);
};
if (["ACE_Dragging"] call EFUNC(common,isModLoaded)) then {

View File

@ -10,5 +10,6 @@ PREP_RECOMPILE_END;
GVAR(staminaBarWidth) = 10 * (((safezoneW / safezoneH) min 1.2) / 40);
GVAR(dutyList) = [[], []];
GVAR(setAnimExclusions) = [];
ADDON = true;

View File

@ -27,6 +27,7 @@ params ["_unit", "_fatigue", "_speed", "_overexhausted"];
// - Audible effects ----------------------------------------------------------
GVAR(lastBreath) = GVAR(lastBreath) + 1;
if (_fatigue > 0.4 && {GVAR(lastBreath) > (_fatigue * -10 + 9)} && {!underwater _unit}) then {
if (!isGameFocused) exitWith {};
switch (true) do {
case (_fatigue < 0.6): {
playSound (QGVAR(breathLow) + str(floor random 6));
@ -58,8 +59,9 @@ if (GVAR(ppeBlackoutLast) == 1) then {
// - Physical effects ---------------------------------------------------------
if (GVAR(isSwimming)) exitWith {
_unit setAnimSpeedCoef linearConversion [0.7, 0.9, _fatigue, 1, 0.5, true];
if (GVAR(setAnimExclusions) isEqualTo []) then {
_unit setAnimSpeedCoef linearConversion [0.7, 0.9, _fatigue, 1, 0.5, true];
};
if ((isSprintAllowed _unit) && {_fatigue > 0.7}) then {
[_unit, "blockSprint", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set);
} else {
@ -69,7 +71,10 @@ if (GVAR(isSwimming)) exitWith {
};
};
if ((getAnimSpeedCoef _unit) != 1) then {
_unit setAnimSpeedCoef 1;
if (GVAR(setAnimExclusions) isEqualTo []) then {
TRACE_1("reset",getAnimSpeedCoef _unit);
_unit setAnimSpeedCoef 1;
};
};
if (_overexhausted) then {

View File

@ -25,10 +25,12 @@ _posAndSize set [2, _stamina * GVAR(staminaBarWidth)];
_staminaBarContainer ctrlSetPosition _posAndSize;
// - Opacity ------------------------------------------------------------------
if (_stamina >= 0.8) then {
_staminaBarContainer ctrlSetFade (0.9 + 0.1 * (_stamina - 0.8) / 0.2);
} else {
_staminaBarContainer ctrlSetFade (0.9 * _stamina / 0.8);
if (GVAR(fadeStaminaBar)) then {
if (_stamina >= 0.8) then {
_staminaBarContainer ctrlSetFade (0.9 + 0.1 * (_stamina - 0.8) / 0.2);
} else {
_staminaBarContainer ctrlSetFade (0.9 * _stamina / 0.8);
};
};
// - Color --------------------------------------------------------------------

View File

@ -4,8 +4,14 @@
[LSTRING(Enabled), LSTRING(Enabled_Description)],
LSTRING(DisplayName),
true,
true,
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
true, {
if (!_this) then {
private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
_staminaBarContainer ctrlSetFade 1;
_staminaBarContainer ctrlCommit 0;
};
[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)
},
true // Needs mission restart
] call CBA_Settings_fnc_init;
@ -24,6 +30,21 @@
}
] call CBA_Settings_fnc_init;
[
QGVAR(fadeStaminaBar),
"CHECKBOX",
[LSTRING(FadeStaminaBar), LSTRING(FadeStaminaBar_Description)],
LSTRING(DisplayName),
true,
false, {
if (!_this && GVAR(enabled) && GVAR(enableStaminaBar)) then {
private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
_staminaBarContainer ctrlSetFade 0;
_staminaBarContainer ctrlCommit 0;
};
}
] call CBA_Settings_fnc_init;
[
QGVAR(performanceFactor),
"SLIDER",

View File

@ -11,6 +11,9 @@
<Korean>ACE 고급 피로도</Korean>
<French>ACE Fatigue Avancée</French>
<Polish>ACE Zaawansowane Zmęczenie</Polish>
<Russian>ACE Продвинутая усталость</Russian>
<Portuguese>ACE Fadiga Avançada</Portuguese>
<Czech>ACE Pokročilá únava</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor">
<English>Performance Factor</English>
@ -22,6 +25,9 @@
<Italian>Fattore Prestazione</Italian>
<Chinese>體力值</Chinese>
<Chinesesimp>体力值</Chinesesimp>
<Russian>Фактор производительности</Russian>
<Portuguese>Fator de Performance</Portuguese>
<Czech>Faktor výkonu</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_Description">
<English>Influences the overall performance of all players with no custom factor. Higher means better.</English>
@ -29,10 +35,13 @@
<Japanese>個別の因数を設定されていない、全てのプレイヤーのあらゆるパフォーマンスに影響を与えます。 値が高ければ高いほど、良い効果が得られます。</Japanese>
<Polish>Wpływa na ogólną wydolność organizmu u wszystkich graczy bez ustawionego niestandardowego współczynnika. Więcej znaczy lepiej.</Polish>
<Korean>모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances.</French>
<French>Impacte la performance globale de tous les joueurs n'ayant pas de facteur personnalisé.\nPlus la valeur est élevée, plus le joueur est performant.</French>
<Italian>Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore.</Italian>
<Chinese>影響所有玩家的體力表現,值越高代表體力越好</Chinese>
<Chinesesimp>影响所有玩家的体力表现,值越高代表体力越好</Chinesesimp>
<Russian>Влияет на общую производительность игроков, у которых не задано персональное значение.</Russian>
<Portuguese>Influencia na performance geral de todos os jogadores sem nenhum fator personalizado. Quanto maior, melhor.</Portuguese>
<Czech>Ovlivňuje celkový výkon všech hráčů bez vlastního faktoru. Vyšší znamená lépe.</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription">
<English>Influences the overall performance of this unit. Higher means better.</English>
@ -40,10 +49,13 @@
<Japanese>このユニットのあらゆるパフォーマンスに影響を与えます。 値が高ければ高いほど、良い効果が得られます。</Japanese>
<Polish>Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej.</Polish>
<Korean>모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances.</French>
<French>Impacte la performance globale de cette unité.\nPlus la valeur est élevée, plus le joueur est performant.</French>
<Italian>Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore.</Italian>
<Chinese>影響這個單位的體力表現,值越高代表體力越好</Chinese>
<Chinesesimp>影响这个单位的体力表现,值越高代表体力越好</Chinesesimp>
<Russian>Влияет на общую производительность юнита.</Russian>
<Portuguese>Influencia na performance geral dessa unidade. Quanto maior, melhor.</Portuguese>
<Czech>Ovlivňuje celkový výkon této jednotky. Vyšší znamená lépe.</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor">
<English>Recovery Factor</English>
@ -55,6 +67,9 @@
<Italian>Fattore Recupero</Italian>
<Chinese>回復值</Chinese>
<Chinesesimp>回复值</Chinesesimp>
<Russian>Фактор восстановления</Russian>
<Portuguese>Fator de Recuperação</Portuguese>
<Czech>Faktor zotavení</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description">
<English>Changes how fast the player recovers when resting. Higher is faster.</English>
@ -62,10 +77,13 @@
<Japanese>プレイヤーが休憩をとる際に、どのくらいの速度でスタミナ回復するかを設定します。 値が高ければ高いほど、早くなります。</Japanese>
<Polish>Wpływa na czas regeneracji podczas postoju. Więcej znaczy szybciej.</Polish>
<Korean>얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다</Korean>
<French>Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide.</French>
<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>
<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>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor">
<English>Load Factor</English>
@ -73,10 +91,13 @@
<Japanese>重量因数</Japanese>
<Polish>Współczynnik masy ekwipunku</Polish>
<Korean>부담 요인</Korean>
<French>Facteur d'encombrement</French>
<French>Facteur de charge</French>
<Italian>Fattore Caricamento</Italian>
<Chinese>負重量</Chinese>
<Chinesesimp>负重量</Chinesesimp>
<Russian>Фактор нагрузки</Russian>
<Portuguese>Fator de Carga</Portuguese>
<Czech>Faktor zatížení</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor_Description">
<English>Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence.</English>
@ -84,10 +105,13 @@
<Japanese>装備重量がプレイヤーのパフォーマンスにもたらす影響を増減させます。 値をゼロに設定した場合、装備重量はパフォーマンスに影響を与えません。</Japanese>
<Polish>Zmniejsza lub zwiększa wpływ ciężaru ekwipunku na wydolność gracza. Zero oznacza kompletny brak wpływu na wydolność.</Polish>
<Korean>플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다.</Korean>
<French>Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances.</French>
<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>
<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>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor">
<English>Terrain Gradient Factor</English>
@ -99,6 +123,9 @@
<Italian>Fattore Pendenza Terreno</Italian>
<Chinese>地形陡峭影響值</Chinese>
<Chinesesimp>地形陡峭影响值</Chinesesimp>
<Russian>Фактор местности</Russian>
<Portuguese>Fator de Inclinação do Terreno</Portuguese>
<Czech>Faktor stoupání terénu</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description">
<English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English>
@ -106,28 +133,39 @@
<Japanese>急勾配の地形がどれだけスタミナ消費を増大させるかを設定します。 値が高ければ高いほど、スタミナ消費が大きくなります。</Japanese>
<Polish>Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości.</Polish>
<Korean>경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다.</Korean>
<French>Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante.</French>
<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>
<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>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_SwayFactor">
<English>Sway factor</English>
<German>Verwacklungsfaktor</German>
<Japanese>手ぶれ因数</Japanese>
<Chinesesimp>抖动因数</Chinesesimp>
<Chinese>抖動因素</Chinese>
<French>Facteur de stabilisation</French>
<French>Facteur de tremblement</French>
<Italian>Fattore di oscillazione</Italian>
<Polish>Czynnik kołysania</Polish>
<Russian>Фактор колебания прицела</Russian>
<Portuguese>Fator de Balanço de Mira</Portuguese>
<Czech>Faktor kývání</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_SwayFactor_Description">
<English>Influences the amount of weapon sway. Higher means more sway.</English>
<German>Beeinflusst den Faktor, wie ruhig man eine Waffe halten kann. Ein höherer Wert bedeutet weniger Stabilisierung</German>
<Japanese>武器を持つ手のぶれ度合いを設定します。 値が高ければ高いほど、手ぶれが強くなります。</Japanese>
<Chinesesimp>影响手持武器的晃动程度,数值越高,抖动的越厉害.</Chinesesimp>
<Chinese>影響手持武器晃動程度,數值越高抖動越厲害</Chinese>
<French>Influence les mouvements de l'arme, une valeur plus élevée signifie plus de mouvements</French>
<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>
<Polish>Wpływa na poziom kołysania broni. Większa ilość znaczy większe kołysanie.</Polish>
<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>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled">
<English>Enabled</English>
@ -139,6 +177,9 @@
<Italian>Abilitato</Italian>
<Chinese>啟用</Chinese>
<Chinesesimp>启用</Chinesesimp>
<Russian>Включена</Russian>
<Portuguese>Ativado</Portuguese>
<Czech>Povoleno</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description">
<English>Enables/disables Advanced Fatigue.</English>
@ -150,6 +191,9 @@
<Italian>Abilita/disabilita la Fatica Avanzata.</Italian>
<Chinese>啟用/關閉進階體力.</Chinese>
<Chinesesimp>启用/关闭进阶体力.</Chinesesimp>
<Russian>Включает / Отключает Продвинутую усталость</Russian>
<Portuguese>Ativa/Desativa Fadiga Avançada.</Portuguese>
<Czech>Aktivuje / deaktivuje Pokročilou únavu.</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar">
<English>Show stamina bar</English>
@ -161,6 +205,9 @@
<Italian>Mostra barra stamina</Italian>
<Chinese>顯示體力條</Chinese>
<Chinesesimp>显示体力条</Chinesesimp>
<Russian>Показать шкалу усталости</Russian>
<Portuguese>Exibir barra de estamina</Portuguese>
<Czech>Zobrazit lištu výdrže</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description">
<English>Shows the stamina bar.</English>
@ -172,6 +219,19 @@
<Italian>Mostra la barra della stamina.</Italian>
<Chinese>顯示體力條</Chinese>
<Chinesesimp>显示体力条</Chinesesimp>
<Russian>Показывает шкалу усталости.</Russian>
<Portuguese>Exibe a barra de estamina.</Portuguese>
<Czech>Zobrazuje lištu výdrže</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_FadeStaminaBar">
<English>Fade Stamina bar automatically</English>
<German>Blende Ausdauerleiste automatisch aus</German>
<Chinese>體力條自動淡去</Chinese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_FadeStaminaBar_Description">
<English>Adjusts transparency of the bar based on stamina status.</English>
<German>Passt die Transparenz der Ausdauerleiste abhängig vom Ausdauerstatus an.</German>
<Chinese>依照目前的體力程度調整體力條之透明度</Chinese>
</Key>
</Package>
</Project>

View File

@ -53,7 +53,7 @@ for "_i" from 0.05 to 1.45 step 0.1 do {
if (lineIntersects [_prevTrajASL, _newTrajASL]) then { // Checks the "VIEW" LOD
_cross = 2; // 2: View LOD Block (Red)
} else {
if (!((lineIntersectsSurfaces [_prevTrajASL, _newTrajASL, _activeThrowable, ACE_player, true, 1, "GEOM", "FIRE"]) isEqualTo [])) then {
if !((lineIntersectsSurfaces [_prevTrajASL, _newTrajASL, _activeThrowable, ACE_player, true, 1, "GEOM", "FIRE"]) isEqualTo []) then {
_cross = 3; // 3: GEOM/FIRE LOD Block (Yellow) - pass a3 bulding glass, but blocked on some CUP glass
};
};

View File

@ -26,3 +26,8 @@ TRACE_1("Fired",_this);
{
_this call _x;
} forEach ((_this select 0) getVariable "cba_xeh_fired");
// Call muzzle fired EH
{
_this call compile getText (_x >> "fired");
} forEach (configProperties [configFile >> "CfgWeapons" >> "Throw" >> (_this select 2) >> "EventHandlers", "isClass _x", true]);

View File

@ -12,6 +12,8 @@
<Italian>Lancio Avanzato</Italian>
<Chinese>進階投擲</Chinese>
<Chinesesimp>进阶投掷</Chinesesimp>
<Portuguese>Arremesso Avançado</Portuguese>
<Czech>Pokročilé házení</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Module_Description">
<English>Allows changing advanced throwing behaviour.</English>
@ -24,6 +26,8 @@
<Italian>Permette il cambiamento della modalità di tiro.</Italian>
<Chinese>允許使用更多不同的投擲方式</Chinese>
<Chinesesimp>允许使用更多不同的投掷方式</Chinesesimp>
<Portuguese>Permite mudar o comportamento do arremesso avançado.</Portuguese>
<Czech>Umožňuje změnit pokročilé chování při házení.</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName">
<English>Enable Advanced Throwing</English>
@ -36,6 +40,8 @@
<Italian>Abilita Lancio Avanzato</Italian>
<Chinese>啟用進階投擲</Chinese>
<Chinesesimp>启用进阶投掷</Chinesesimp>
<Portuguese>Ativa o Arremesso Avançado</Portuguese>
<Czech>Povolit pokročilé házení</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_Description">
<English>Enables advanced throwing system.</English>
@ -48,6 +54,8 @@
<Italian>Abilita il sistema di lancio avanzato.</Italian>
<Chinese>啟用進階投擲系統</Chinese>
<Chinesesimp>启用进阶投掷系统</Chinesesimp>
<Portuguese>Ativa o sistema de Arremesso Avançado.</Portuguese>
<Czech>Umožňuje pokročilý systém házení.</Czech>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName">
<English>Show Throw Arc</English>
@ -60,6 +68,8 @@
<Italian>Mostra Arco di Tiro</Italian>
<Chinese>顯示投擲軌道</Chinese>
<Chinesesimp>显示投掷轨道</Chinesesimp>
<Portuguese>Mostrar o Arco de Arremesso</Portuguese>
<Czech>Zobrazit oblouk vrhu </Czech>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description">
<English>Enables visualization of the throw arc (where throwable will fly).</English>
@ -72,6 +82,7 @@
<Italian>Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà).</Italian>
<Chinese>顯示投擲軌道幫助投擲</Chinese>
<Chinesesimp>显示投掷轨道帮助投掷</Chinesesimp>
<Portuguese>Permite a visualização do Arco de Arremesso por onde o objeto será jogado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName">
<English>Show Throwing Mouse Controls</English>
@ -84,6 +95,7 @@
<Italian>Mostra Comandi Mouse Lancio</Italian>
<Chinese>顯示滑鼠投擲控制提示</Chinese>
<Chinesesimp>显示滑鼠投掷控制提示</Chinesesimp>
<Portuguese>Mostrar os controles de mouse para Arremesso</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description">
<English>Enables visual cues for mouse controls when throwable is prepared.</English>
@ -96,6 +108,7 @@
<Italian>Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto.</Italian>
<Chinese>開啟後會在準備投擲時, 顯示滑鼠相關操作</Chinese>
<Chinesesimp>开启后会在准备投掷时, 显示滑鼠相关操作</Chinesesimp>
<Portuguese>Ativa as dicas visuais dos controles do mouse quando um arremessável é preparado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName">
<English>Enable Throwables Pick Up</English>
@ -108,6 +121,7 @@
<Italian>Abilita Raccogli Oggetti</Italian>
<Chinese>啟用可撿取地面投擲物</Chinese>
<Chinesesimp>启用可捡取地面投掷物</Chinesesimp>
<Portuguese>Permitir pegar arremessáveis</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description">
<English>Enables ability to pick up throwables from the ground.</English>
@ -120,6 +134,7 @@
<Italian>Abilita la possibilità di raccogliere un oggetto lanciabile da terra.</Italian>
<Chinese>啟用後, 可撿取地面上的投擲物</Chinese>
<Chinesesimp>启用后, 可捡取地面上的投掷物</Chinesesimp>
<Portuguese>Permite que objetos arremessados sejam pegos do chão. (ACE Menu de Interação)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName">
<English>Enable Attached Throwables Pick Up</English>
@ -132,6 +147,7 @@
<Italian>Abilita Raccogli Oggetti Lanciabili da altri Oggetti</Italian>
<Chinese>啟用可撿取附著投擲物</Chinese>
<Chinesesimp>启用可捡取附着投掷物</Chinesesimp>
<Portuguese>Permitir pegar arremessáveis fixados</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description">
<English>Enables ability to pick up throwables from attached objects.</English>
@ -144,6 +160,7 @@
<Italian>Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. </Italian>
<Chinese>啟用後, 可撿取附著在物件上的投擲物</Chinese>
<Chinesesimp>启用后, 可捡取附着在物件上的投掷物</Chinesesimp>
<Portuguese>Permite que arremessáveis fixados em objetos sejam pegos.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Prepare">
<English>Prepare/Change Throwable</English>
@ -156,6 +173,7 @@
<Italian>Prepara/Cambia Oggetto lanciabile</Italian>
<Chinese>準備/變更投擲物</Chinese>
<Chinesesimp>准备/变更投掷物</Chinesesimp>
<Portuguese>Preparar/Mudar Arremessável</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_dropModeHold">
<English>Throwable Drop Mode (Hold)</English>
@ -168,6 +186,7 @@
<Italian>Modalità Oggetto Gettabile (Mantenere)</Italian>
<Chinese>投擲模式 (按住)</Chinese>
<Chinesesimp>投掷模式 (按住)</Chinesesimp>
<Portuguese>Modo de Arremesso (Segurar)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_DropModeToggle">
<English>Throwable Drop Mode (Toggle)</English>
@ -180,6 +199,7 @@
<Italian>Modalità Oggetto lanciabile Gettabile (Interruttore)</Italian>
<Chinese>投擲模式 (切換)</Chinese>
<Chinesesimp>投掷模式 (切换)</Chinesesimp>
<Portuguese>Modo de Arremesso (Alternar)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Primed">
<English>Primed</English>
@ -192,6 +212,7 @@
<Italian>Armato</Italian>
<Chinese>引信開始燃燒</Chinese>
<Chinesesimp>引信开始燃烧</Chinesesimp>
<Portuguese>Preparado</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Throw">
<English>Throw</English>
@ -204,6 +225,7 @@
<Italian>Lanciare</Italian>
<Chinese>投擲</Chinese>
<Chinesesimp>投掷</Chinesesimp>
<Portuguese>Arremessar</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ChangeMode">
<English>(Scroll) Change Mode</English>
@ -216,6 +238,7 @@
<Italian>(Scorrere) Cambio Modalità</Italian>
<Chinese>(滾輪) 變更模式</Chinese>
<Chinesesimp>(滚轮) 变更模式</Chinesesimp>
<Portuguese>(Roda do Mouse) Alternar modo</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Extend">
<English>(Scroll) Extend</English>
@ -228,6 +251,7 @@
<Italian>(Scorrere) Estendere</Italian>
<Chinese>(滾輪) 延長</Chinese>
<Chinesesimp>(滚轮) 延长</Chinesesimp>
<Portuguese>(Roda do Mouse) Extender</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Cook">
<English>(Click) Cook</English>
@ -240,6 +264,7 @@
<Italian>(Click) Arma</Italian>
<Chinese>(點擊) 提早拉開引信</Chinese>
<Chinesesimp>(点击) 提早拉开引信</Chinesesimp>
<Portuguese>(Clique) Cozinhar</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_PickUp">
<English>Pick Up</English>
@ -252,6 +277,7 @@
<Italian>Raccogli</Italian>
<Chinese>撿取</Chinese>
<Chinesesimp>捡取</Chinesesimp>
<Portuguese>Pegar</Portuguese>
</Key>
</Package>
</Project>

View File

@ -1,45 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="ai">
<Key ID="STR_ACE_ai_GarrisonInvalidPosition">
<Package name="AI">
<Key ID="STR_ACE_AI_GarrisonInvalidPosition">
<English>Invalid position provided.</English>
<French>Position invalide fourni</French>
<German>Ungültige Position</German>
<French>Position invalide fournie.</French>
<Japanese>位置が無効です。</Japanese>
<Italian>Posizione invalida fornita.</Italian>
<Chinese>提供的位置無效</Chinese>
<Chinesesimp>提供的位置无效。</Chinesesimp>
<Korean>위치가 잘못되었습니다.</Korean>
<Polish>Podano błędną pozycję.</Polish>
<Russian>Указана неверная позиция</Russian>
<Portuguese>Posição inválida fornecida.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNoUnits">
<Key ID="STR_ACE_AI_GarrisonNoUnits">
<English>No units provided.</English>
<French>Aucune unité fourni</French>
<German>Keine Einheit ausgewählt</German>
<French>Aucune unité fournie.</French>
<Japanese>ユニットがありません。</Japanese>
<Italian>Nessuna unità fornita.</Italian>
<Chinese>找不到可用的單位</Chinese>
<Chinesesimp>找不到可用的单位。</Chinesesimp>
<Korean>병력이 없습니다.</Korean>
<Polish>Nie podano żadnych jednostek.</Polish>
<Russian>Не указаны юниты</Russian>
<Portuguese>Nenhuma unidade fornecida.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNotEnoughPos">
<Key ID="STR_ACE_AI_GarrisonNotEnoughPos">
<English>There aren't enough positions to place all units.</English>
<French>Il n'y a pas assez de positions pour placer toutes les unités</French>
<German>Es gibt nicht genug Positionen, um alle Einheiten zu platzieren</German>
<French>Il n'y a pas assez de positions pour placer toutes les unités.</French>
<Japanese>全ユニットを置くために十分な位置がありません。</Japanese>
<Italian>Non ci sono abbastanza posizioni per piazzare tutte le unità.</Italian>
<Chinese>沒有足夠的位置能擺放所有單位</Chinese>
<Chinesesimp>没有足够的位置能摆放所有单位。</Chinesesimp>
<Korean>모든 병력을 배치 할 공간이 없습니다.</Korean>
<Polish>Nie ma wystarczającej ilości pozycji, aby umieścić wszystkie jednostki.</Polish>
<Russian>Недостаточно позиций для размещения всех юнитов</Russian>
<Portuguese>Não há posições suficientes para colocar todas as unidades.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNoBuilding">
<Key ID="STR_ACE_AI_GarrisonNoBuilding">
<English>No building found.</English>
<French>Aucun bâtiment trouvé</French>
<German>Kein Gebäude gefunden</German>
<French>Aucun bâtiment trouvé.</French>
<Japanese>建物がありません。</Japanese>
<Italian>Nessun edificio trovato.</Italian>
<Chinese>沒找到建築物</Chinese>
<Chinesesimp>没找到建筑物。</Chinesesimp>
<Korean>건물이 없습니다.</Korean>
<Polish>Nie znaleziono budynku.</Polish>
<Russian>Здание не найдено</Russian>
<Portuguese>Nenhuma construção encontrada.</Portuguese>
</Key>
</Package>
</Project>

BIN
addons/apl/ACE_CSW_Bag.p3d Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,95 @@
ambient[]={1,1,1,1.000000};
diffuse[]={1,1,1,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={1,1,1,1.000000};
specularPower=40.000000;
PixelShaderID="super";
VertexShaderID="super";
class Stage1
{
texture = "z\ace\addons\apl\data\csw_nsv_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="a3\weapons_f\Data\DetailMaps\metal_detail_dt.paa";
uvSource="tex";
class uvTransform
{
aside[]={8.0000,0.000000,0.000000};
up[]={0.000000,8.0000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture = "#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage5
{
texture = "z\ace\addons\apl\data\csw_nsv_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage6
{
texture = "#(ai,32,128,1)fresnel(3.38,5.33)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa";
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,92 @@
ambient[] = {1.0,1.0,1.0,1.0};
diffuse[] = {1.0,1.0,1.0,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,0.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.545,0.545,0.545,1.0};
specularPower = 100.0;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "z\ace\addons\apl\data\csw_spg9_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "a3\weapons_f\Data\DetailMaps\metal_detail_dt.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {8.0,0.0,0.0};
up[] = {0.0,2.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage5
{
texture = "z\ace\addons\apl\data\csw_spg9_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage6
{
texture = "#(ai,32,128,1)fresnel(1.89,1.02)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,1.0};
pos[] = {0.0,0.0,0.0};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,32 @@
ambient[]={1.000000,1.000000,1.000000,1.000000};
diffuse[]={1.000000,1.000000,1.000000,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={0.3000000,0.3000000,0.3000000,1.000000};
specularPower=100.000000;
PixelShaderID="NormalMapSpecularDIMap";
VertexShaderID="NormalMap";
class Stage1
{
texture="z\ace\addons\apl\data\csw_tow_merge_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="z\ace\addons\apl\data\csw_tow_merge_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,32 @@
ambient[] = {1.0,1.0,1.0,1.0};
diffuse[] = {1.0,1.0,1.0,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,0.0};
emmisive[] = {0.0,0.0,0.0,0.0};
specular[] = {0.3,0.3,0.3,1.0};
specularPower = 256.0;
PixelShaderID = "NormalMapSpecularDIMap";
VertexShaderID = "NormalMap";
class Stage1
{
texture = "z\ace\addons\apl\data\csw_tripod_ags_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "z\ace\addons\apl\data\csw_tripod_ags_smdi.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,98 @@
#define _ARMA_
ambient[] = {1,1,1,1.0};
diffuse[] = {1,1,1,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,0.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {1,1,1,1.0};
specularPower = 40.0;
PixelShaderID = "super";
VertexShaderID = "super";
class Stage1
{
texture = "z\ace\addons\apl\data\m3tripod_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "a3\weapons_f\Data\DetailMaps\metal_detail_dt.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {8.0,0.0,0.0};
up[] = {0.0,8.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage5
{
texture = "z\ace\addons\apl\data\m3tripod_SMDI.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage6
{
texture = "#(ai,32,128,1)fresnel(3.38,5.33)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage7
{
texture = "a3\data_f\env_land_co.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class StageTI
{
texture = "a3\data_f\default_vehicle_ti_ca.paa";
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,95 @@
ambient[]={1,1,1,1.000000};
diffuse[]={1,1,1,1.000000};
forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
emmisive[]={0.000000,0.000000,0.000000,1.000000};
specular[]={1,1,1,1.000000};
specularPower=40.000000;
PixelShaderID="super";
VertexShaderID="super";
class Stage1
{
texture="z\ace\addons\apl\data\mortarBaseplate_nohq.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage2
{
texture="a3\weapons_f\Data\DetailMaps\metal_detail_dt.paa";
uvSource="tex";
class uvTransform
{
aside[]={8.0000,0.000000,0.000000};
up[]={0.000000,8.0000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage3
{
texture="#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage4
{
texture="z\ace\addons\apl\data\mortarBaseplate_as.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage5
{
texture="z\ace\addons\apl\data\mortarBaseplate_smdi.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage6
{
texture = "#(ai,32,128,1)fresnel(3.38,5.33)";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class Stage7
{
texture="a3\data_f\env_land_co.paa";
uvSource="tex";
class uvTransform
{
aside[]={1.000000,0.000000,0.000000};
up[]={0.000000,1.000000,0.000000};
dir[]={0.000000,0.000000,0.000000};
pos[]={0.000000,0.000000,0.000000};
};
};
class StageTI {
texture = "a3\data_f\default_vehicle_ti_ca.paa";
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,98 @@
#define _ARMA_
class StageTI
{
texture = "a3\weapons_f\ammoboxes\bags\data\backpacks_ti_ca.paa";
};
ambient[] = {1.0,1.0,1.0,1.0};
diffuse[] = {1.0,1.0,1.0,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,0.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.0,0.0,0.0,1.0};
specularPower = 0.0;
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1
{
texture = "z\ace\addons\apl\data\static_nohq.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2
{
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3
{
texture = "#(argb,8,8,3)color(0,0,0,0,MC)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4
{
texture = "#(argb,8,8,3)color(1,1,1,1,AS)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage5
{
texture = "#(argb,8,8,3)color(0,0,1,1,SMDI)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage6
{
texture = "#(ai,32,128,1)fresnel(1.58,0.71)";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage7
{
texture = "a3\data\env2_co.paa";
uvSource = "tex";
class uvTransform
{
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};

Binary file not shown.

Binary file not shown.

View File

@ -9,7 +9,6 @@ class RscDisplayMain: RscStandardDisplay {
class Controls: Controls {
class Bootcamp;
class VRTraining;
class Arsenal;
class GVAR(mission): Arsenal {
idc = -1;

View File

@ -23,6 +23,81 @@ if (isNil QGVAR(defaultLoadoutsList)) then {
GVAR(defaultLoadoutsList) = [];
};
for "_dataIndex" from 0 to 10 do {
switch (_dataIndex) do {
case 0;
case 1;
case 2;
case 8: {
if (count (_loadout select _dataIndex) > 0) then {
private _weapon = (_loadout select _dataIndex) select 0;
if (_weapon != "") then {
private _baseWeapon = _weapon call BIS_fnc_baseWeapon;
if (_weapon != _baseWeapon) then {
(_loadout select _dataIndex) set [0, _baseWeapon];
};
};
};
};
case 3;
case 4;
case 5: {
if (count (_loadout select _dataIndex) > 0) then {
private _containerContents = (_loadout select _dataIndex) select 1;
if (count _containerContents > 0) then {
{
if (count _x == 2) then {
if ((_x select 0) isEqualType "") then {
private _item = (_x select 0);
if (_item != "") then {
private _uniqueBaseCfgText = getText (configFile >> "CfgWeapons" >> _item >> "ace_arsenal_uniqueBase");
if (_uniqueBaseCfgText != "") then {
_x set [0, _uniqueBaseCfgText];
};
};
} else {
private _weapon = (_x select 0) select 0;
if (_weapon != "") then {
private _baseWeapon = _weapon call BIS_fnc_baseWeapon;
if (_weapon != _baseWeapon) then {
(_x select 0)set [0, _baseWeapon];
};
};
};
};
} foreach _containerContents;
};
};
};
case 9: {
for "_subIndex" from 0 to 4 do {
private _item = (_loadout select _dataIndex) select _subIndex;
if (_item != "") then {
private _uniqueBaseCfgText = getText (configFile >> "CfgWeapons" >> _item >> "ace_arsenal_uniqueBase");
if (_uniqueBaseCfgText != "") then {
(_loadout select _dataIndex) set [_subIndex, _uniqueBaseCfgText];
};
};
};
};
};
};
private _loadoutIndex = (+(GVAR(defaultLoadoutsList))) findIf {(_x select 0) == _name};
if (_loadoutIndex == -1) then {
GVAR(defaultLoadoutsList) pushBack [_name, _loadout];

View File

@ -78,7 +78,7 @@ private _compatibleMagazines = [[[], []], [[], []], [[], []]];
private _index = _forEachIndex;
{
private _subIndex = _forEachIndex;
private _subIndex = _forEachIndex min 1;
{
((_compatibleMagazines select _index) select _subIndex) pushBackUnique (configName (configFile >> "CfgMagazines" >> _x))
} foreach ([getArray (_weaponConfig >> _x >> "magazines"), getArray (_weaponConfig >> "magazines")] select (_x == "this"));

View File

@ -18,8 +18,6 @@ GVAR(currentLoadoutsTab) = nil;
private _arsenalDisplay = findDisplay IDD_ace_arsenal;
private _mouseBlockCtrl = _arsenalDisplay displayCtrl IDC_mouseBlock;
GVAR(cameraPosition) = GVAR(previousCameraPos);
GVAR(previousCameraPos) = nil;
GVAR(loadoutsSearchbarFocus) = nil;
GVAR(loadoutsPanelFocus) = nil;

View File

@ -30,9 +30,6 @@ GVAR(currentLoadoutsTab) = -1;
GVAR(loadoutsSearchbarFocus) = false;
GVAR(loadoutsPanelFocus) = false;
GVAR(previousCameraPos) = GVAR(cameraPosition);
GVAR(cameraPosition) = [5,0,20,[-0.85,0,0.85]];
private _panelContentCtrl = _display displayCtrl IDC_contentPanel;
_panelContentCtrl ctrlSetFontHeight (4.5 * GRID_H);
_panelContentCtrl ctrlCommit 0;

View File

@ -18,18 +18,19 @@
params ["_stat", "_config", "_args"];
_args params ["_statMinMax", "_barLimits"];
TRACE_4("statBarStatement_accuracy",_stat,_config,_statMinMax,_barLimits);
private _fireModes = getArray (_config >> "modes");
private _dispersion = [];
{
private _n = log (getNumber (_config >> _x >> "dispersion"));
if (!finite _n) then {_n = 0;};
_dispersion pushBackUnique _n;
if (getNumber (_config >> _x >> "showToPlayer") != 0) then {
private _n = log (getNumber (_config >> _x >> "dispersion"));
if (!finite _n) then {_n = 0;};
_dispersion pushBackUnique _n;
};
} foreach _fireModes;
_dispersion sort true;
TRACE_1("",_dispersion);
linearConversion [_statMinMax select 0, _statMinMax select 1, _dispersion param [0, 0], _barLimits select 0, _barLimits select 1]

View File

@ -11,10 +11,12 @@
<Korean>숨김</Korean>
<Chinese>隱藏</Chinese>
<Chinesesimp>隐藏</Chinesesimp>
<Russian>Спрятать</Russian>
<Portuguese>Ocultar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonHideTooltip">
<English>Hide interface</English>
<French>Cache l'interface</French>
<French>Masque l'interface</French>
<German>Oberfläche verstecken</German>
<Polish>Ukryj interfejs</Polish>
<Japanese>インターフェイスを隠す</Japanese>
@ -22,10 +24,12 @@
<Korean>인터페이스 숨기기</Korean>
<Chinese>隱藏介面</Chinese>
<Chinesesimp>隐藏介面</Chinesesimp>
<Russian>Скрыть интерфейс</Russian>
<Portuguese>Oculta a Interface</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadoutsText">
<English>Loadouts</English>
<French>Équipements</French>
<French>Sets d'équipement</French>
<German>Ausrüstungen</German>
<Polish>Zestawy wyposażenia</Polish>
<Japanese>装備</Japanese>
@ -33,6 +37,8 @@
<Korean>로드아웃</Korean>
<Chinese>裝備</Chinese>
<Chinesesimp>装备</Chinesesimp>
<Russian>Комплекты</Russian>
<Portuguese>Loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonExportText">
<English>Export</English>
@ -44,6 +50,8 @@
<Korean>내보내기</Korean>
<Chinese>匯出</Chinese>
<Chinesesimp>汇出</Chinesesimp>
<Russian>Экспорт</Russian>
<Portuguese>Exportar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonImportText">
<English>Import</English>
@ -55,6 +63,8 @@
<Korean>가져오기</Korean>
<Chinese>匯入</Chinese>
<Chinesesimp>汇入</Chinesesimp>
<Russian>Импорт</Russian>
<Portuguese>Importar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCloseText">
<English>Close</English>
@ -66,10 +76,12 @@
<Korean>닫기</Korean>
<Chinese>關閉</Chinese>
<Chinesesimp>关闭</Chinesesimp>
<Russian>Закрыть</Russian>
<Portuguese>Fechar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_noVirtualItems">
<English>No virtual item available</English>
<French>Aucun objet virtuel disponible</French>
<French>Aucun objet virtuel disponible.</French>
<German>Kein virtuelles Objekt verfügbar</German>
<Polish>Brak dostępnych przedmiotów wirtualnych</Polish>
<Japanese>利用可能なバーチャル アイテムはありません</Japanese>
@ -77,10 +89,12 @@
<Korean>가상장비 사용 불가</Korean>
<Chinese>沒有可用的虛擬物品</Chinese>
<Chinesesimp>没有可用的虚拟物品</Chinesesimp>
<Russian>Виртуальный предмет недоступен</Russian>
<Portuguese>Nenhum item virtual disponível</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveText">
<English>Save</English>
<French>Enregister</French>
<French>Enregistrer</French>
<German>Speichern</German>
<Polish>Zapisz</Polish>
<Japanese>保存</Japanese>
@ -88,6 +102,8 @@
<Korean>저장</Korean>
<Chinese>保存</Chinese>
<Chinesesimp>保存</Chinesesimp>
<Russian>Сохранить</Russian>
<Portuguese>Salvar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveTooltip">
<English>Save the current loadout</English>
@ -99,11 +115,17 @@
<Korean>현재 로드아웃 저장</Korean>
<Chinese>保存當前的裝備</Chinese>
<Chinesesimp>保存当前的装备</Chinesesimp>
<Russian>Сохранить текущий комплект экипировки</Russian>
<Portuguese>Salva o loadout atual</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveTooltip_shiftClick">
<English>[Shift+Click to save to mission defaults]</English>
<Japanese>[Shift + クリック] でミッション標準として保存します</Japanese>
<Polish>Shift + Klik aby zapisac jako domyślne dla misji </Polish>
<Russian>[Shift+Клик, чтобы сохранить в настройках по умолчанию]</Russian>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_buttonRenameText">
<English>Rename</English>
@ -115,10 +137,12 @@
<Korean>이름바꾸기</Korean>
<Chinese>重新命名</Chinese>
<Chinesesimp>重新命名</Chinesesimp>
<Russian>Переименовать</Russian>
<Portuguese>Renomear</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonRenameTooltip">
<English>Rename the selected loadout</English>
<French>Renomme l'équipement sélectionné</French>
<French>Renomme le set d'équipement sélectionné</French>
<German>Ausgewählte Ausrüstung umbenennen</German>
<Polish>Zmień nazwę wybranego zestawu</Polish>
<Japanese>選択中の装備を改名します</Japanese>
@ -126,6 +150,8 @@
<Korean>선택한 로드아웃의 이름 바꾸기</Korean>
<Chinese>重新命名當前選擇的裝備</Chinese>
<Chinesesimp>重新命名当前选择的装备</Chinesesimp>
<Russian>Переименовать выбранный комплект экипировки</Russian>
<Portuguese>Renomeia o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadText">
<English>Load</English>
@ -137,10 +163,12 @@
<Korean>불러오기</Korean>
<Chinese>載入</Chinese>
<Chinesesimp>载入</Chinesesimp>
<Russian>Загрузить</Russian>
<Portuguese>Carregar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadTooltip">
<English>Load the selected loadout</English>
<French>Charger l'équipement sélectionné</French>
<French>Charge le set d'équipement sélectionné</French>
<German>Ausgewählte Ausrüstung laden</German>
<Polish>Wczytaj wybrany zestaw</Polish>
<Japanese>選択中の装備を読み込みます</Japanese>
@ -148,6 +176,8 @@
<Korean>선택한 로드아웃 불러오기</Korean>
<Chinese>載入當前選擇的裝備</Chinese>
<Chinesesimp>载入当前选择的装备</Chinesesimp>
<Russian>Загрузить выбранный комплект экипировки</Russian>
<Portuguese>Carrega o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonDeleteText">
<English>Delete</English>
@ -159,10 +189,12 @@
<Korean>삭제</Korean>
<Chinese>刪除</Chinese>
<Chinesesimp>删除</Chinesesimp>
<Russian>Удалить</Russian>
<Portuguese>Apagar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonDeleteTooltip">
<English>Delete the selected loadout</English>
<French>Supprimer l'équipement sélectionné</French>
<French>Supprime le set d'équipement sélectionné</French>
<German>Ausgewählte Ausrüstung entfernen</German>
<Polish>Skasuj wybrany zestaw</Polish>
<Japanese>選択中の装備を削除します</Japanese>
@ -170,6 +202,8 @@
<Korean>선택한 로드아웃 삭제하기</Korean>
<Chinese>刪除當前選擇的裝備</Chinese>
<Chinesesimp>删除当前选择的装备</Chinesesimp>
<Russian>Удалить выбранный комплект экипировки</Russian>
<Portuguese>Apaga o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabMyLoadoutsText">
<English>My loadouts</English>
@ -181,10 +215,12 @@
<Korean>내 로드아웃</Korean>
<Chinese>我的裝備</Chinese>
<Chinesesimp>我的装备</Chinesesimp>
<Russian>Мои комплекты</Russian>
<Portuguese>Meus loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabMyLoadoutsTooltip">
<English>Loadouts saved in your profile</English>
<French>Équipements enregistrés dans votre profil</French>
<French>Sets d'équipement enregistrés dans votre profil</French>
<German>Ausrüstungen, die in deinem Profil gespeichert sind</German>
<Polish>Zestawy zapisane w Twoim profilu</Polish>
<Japanese>プロフィールに保存された装備です</Japanese>
@ -192,10 +228,12 @@
<Korean>프로필에 저장된 로드아웃</Korean>
<Chinese>裝備已保存到你的設定檔中</Chinese>
<Chinesesimp>装备已保存到你的设定档中</Chinesesimp>
<Russian>Комплекты экипировки, сохраненные в вашем профиле</Russian>
<Portuguese>Loadouts salvos em seu perfil</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabDefaultLoadoutsText">
<English>Default loadouts</English>
<French>Équipements de base</French>
<French>Équipements prédéfinis</French>
<German>Standard-Ausrüstungen</German>
<Polish>Domyślne zestawy</Polish>
<Japanese>標準の装備</Japanese>
@ -203,10 +241,12 @@
<Korean>기본 로드아웃</Korean>
<Chinese>預設裝備</Chinese>
<Chinesesimp>预设装备</Chinesesimp>
<Russian>По умолчанию</Russian>
<Portuguese>Loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabDefaultLoadoutsTooltip">
<English>Loadouts made available by the mission maker</English>
<French>Équipements faits par l'auteur de la mission</French>
<French>Sets d'équipement mis à disposition par le créateur de mission</French>
<German>Ausrüstungen, die durch den Missionsersteller zur Verfügung gestellt worden sind</German>
<Polish>Zestawy udostępnione przez twórcę misji</Polish>
<Japanese>装備はミッション著者によって利用できます</Japanese>
@ -214,6 +254,8 @@
<Korean>미션메이커가 허용한 로드아웃</Korean>
<Chinese>任務作者提供的預設裝備</Chinese>
<Chinesesimp>任务作者提供的预设装备</Chinesesimp>
<Russian>Комплекты экипировки, предоставляемые создателем миссии</Russian>
<Portuguese>Loadouts definidos pelo criador da missão</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabSharedLoadoutsText">
<English>Public loadouts</English>
@ -225,10 +267,12 @@
<Korean>공용 로드아웃</Korean>
<Chinese>公用裝備</Chinese>
<Chinesesimp>公用装备</Chinesesimp>
<Russian>Публичные комплекты</Russian>
<Portuguese>Loadouts públicos</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabSharedLoadoutsTooltip">
<English>Loadouts shared by you and other players</English>
<French>Équipements mis à disposition par vous ou les autres joueurs</French>
<French>Sets d'équipement partagés par vous-même ou par d'autres joueurs</French>
<German>Ausrüstungen, die von dir und anderen Spielern geteilt wurden</German>
<Polish>Zestawy udostępnione przez Ciebie i innych graczy</Polish>
<Japanese>自分か他人によって共有された装備です</Japanese>
@ -236,6 +280,8 @@
<Korean>플레이어들이 공유하는 로드아웃</Korean>
<Chinese>由你與其他玩家分享的裝備配置</Chinese>
<Chinesesimp>由你与其他玩家分享的装备配置</Chinesesimp>
<Russian>Комплекты экипировки, опубликованные вами и другими игроками</Russian>
<Portuguese>Loadouts compartilhados por você ou outros jogadores</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_sortByWeightText">
<English>Sort by weight</English>
@ -247,6 +293,8 @@
<Korean>무게로 정렬</Korean>
<Chinese>以重量排序</Chinese>
<Chinesesimp>以重量排序</Chinesesimp>
<Russian>Сортировка по весу</Russian>
<Portuguese>Ordenar por peso</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_sortByAmountText">
<English>Sort by amount</English>
@ -258,10 +306,12 @@
<Korean>갯수로 정렬</Korean>
<Chinese>以數量排序</Chinese>
<Chinesesimp>以数量排序</Chinesesimp>
<Russian>Сортировка по количеству</Russian>
<Portuguese>Ordenar por quantidade</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonShareTooltip">
<English>Share or stop sharing the selected loadout</English>
<French>Partager ou arrêter de partager cet équipement</French>
<French>Partager ou cesser de partager le set d'équipement sélectionné</French>
<German>Ausgewählte Ausrüstung teilen oder nicht mehr teilen</German>
<Polish>Udostępnij lub przestań udostępniać wybrany zestaw</Polish>
<Japanese>選択した装備の共有設定</Japanese>
@ -269,6 +319,8 @@
<Korean>선택한 로드아웃 공유 혹은 공유중지</Korean>
<Chinese>開始/停止分享當前選擇的裝備</Chinese>
<Chinesesimp>开始/停止分享当前选择的装备</Chinesesimp>
<Russian>Открыть или закрыть общий доступ к комплекту экипировки</Russian>
<Portuguese>Compartilhar ou parar de compartilhar o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSharePrivateText">
<English>Private</English>
@ -280,6 +332,8 @@
<Korean>개인</Korean>
<Chinese>私用</Chinese>
<Chinesesimp>私用</Chinesesimp>
<Russian>Приватный</Russian>
<Portuguese>Privado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSharePublicText">
<English>Public</English>
@ -291,10 +345,12 @@
<Korean>공용</Korean>
<Chinese>公用</Chinese>
<Chinesesimp>公用</Chinesesimp>
<Russian>Публичный</Russian>
<Portuguese>Público</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportDefaultError">
<English>The default loadouts list is empty!</English>
<French>La liste d'équipements de base est vide !</French>
<French>La liste des équipements prédéfinis est vide !</French>
<German>Die Standard-Ausrüstungen-Liste ist leer!</German>
<Polish>Lista domyślnych zestawów jest pusta!</Polish>
<Japanese>標準の装備一欄が空です!</Japanese>
@ -302,10 +358,12 @@
<Korean>기본 로드아웃 목록이 비어있습니다!</Korean>
<Chinese>沒有預設的裝備清單!</Chinese>
<Chinesesimp>没有预设的装备清单!</Chinesesimp>
<Russian>Список комплекта экипировки пуст!</Russian>
<Portuguese>A lista de loadouts padrões está vazia!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportDefault">
<English>Default loadouts list exported to clipboard</English>
<French>Liste d'équipements de base exportée dans le presse papier</French>
<French>Liste des équipements prédéfinis exportée dans le presse-papier</French>
<German>Standard-Ausrüstungen-Liste in die Zwischenablage exportiert</German>
<Polish>Lista domyślnych zestawów została eksportowana do schowka</Polish>
<Japanese>標準の装備一欄はクリップボードへエクスポートされました</Japanese>
@ -313,10 +371,12 @@
<Korean>클립보드에 기본 로드아웃 목록 내보내기</Korean>
<Chinese>預設的裝備清單已匯出到剪貼簿中</Chinese>
<Chinesesimp>预设的装备清单已汇出到剪贴簿中</Chinesesimp>
<Russian>Список комплекта экипировки по умолчанию экспортирован в буфер</Russian>
<Portuguese>A lista de loadouts padrões foi exportada pra área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportCurrent">
<English>Current loadout exported to clipboard</English>
<French>Équipement actuel exporté dans le presse papier</French>
<French>Équipement actuel exporté dans le presse-papier</French>
<German>Derzeitige Ausrüstung in die Zwischenablage exportiert</German>
<Polish>Obecny zestaw został eksportowany do schowka</Polish>
<Japanese>現在の装備はクリップボードへ出力されました</Japanese>
@ -324,6 +384,8 @@
<Korean>현재 로드아웃을 클립보드로 내보냈습니다.</Korean>
<Chinese>當前的裝備已匯出到剪貼簿中</Chinese>
<Chinesesimp>当前的装备已汇出到剪贴簿中</Chinesesimp>
<Russian>Текущий список комплекта экипировки экспортирован в буфер</Russian>
<Portuguese>Loadout atual foi exportado pra área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importFormatError">
<English>Wrong format provided</English>
@ -335,10 +397,12 @@
<Korean>잘못된 형식 입력됨</Korean>
<Chinese>提供的格式錯誤</Chinese>
<Chinesesimp>提供的格式错误</Chinesesimp>
<Russian>Неверный формат импорта</Russian>
<Portuguese>Format incorreto fornecido</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importedDefault">
<English>Default loadouts list imported from clipboard</English>
<French>Liste d'équipements de base importée depuis le presse papier</French>
<French>Liste des équipements prédéfinis importée depuis le presse-papier</French>
<German>Standard-Ausrüstungen-Liste aus der Zwischenablage importiert</German>
<Polish>Lista domyślnych zestawów została importowana ze schowka</Polish>
<Japanese>標準の装備一欄はクリップボードからインポートされました</Japanese>
@ -346,10 +410,12 @@
<Korean>클립보드에서 기본 로드아웃 가져오기</Korean>
<Chinese>預設的裝備清單已從剪貼簿中匯入</Chinese>
<Chinesesimp>预设的装备清单已从剪贴簿中汇入</Chinesesimp>
<Russian>Список комплекта экипировки по умолчанию импортирован из буфера</Russian>
<Portuguese>A lista de loadouts padrões foi importada da área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importedCurrent">
<English>Loadout imported from clipboard</English>
<French>Équipement importé depuis le presse papier</French>
<French>Set d'équipement importé depuis le presse-papier.</French>
<German>Ausrüstung aus der Zwischenablage importiert</German>
<Polish>Zestaw został importowany ze schowka</Polish>
<Japanese>装備はクリップボードからインポートされました</Japanese>
@ -357,10 +423,12 @@
<Korean>클립보드에서 로드아웃을 가져왔습니다.</Korean>
<Chinese>裝備已從剪貼簿中匯入</Chinese>
<Chinesesimp>装备已从剪贴簿中汇入</Chinesesimp>
<Russian>Список комплекта экипировки импортирован из буфера</Russian>
<Portuguese>Loadout importado da área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutDeleted">
<English>The following loadout was deleted:</English>
<French>L'équipement suivant fut supprimé:</French>
<French>Le set d'équipement suivant a été supprimé :</French>
<German>Folgende Ausrüstung wurde entfernt:</German>
<Polish>Następujący zestaw został skasowany:</Polish>
<Japanese>次の装備は削除されました:</Japanese>
@ -368,10 +436,12 @@
<Korean>다음 로드아웃이 삭제됨 :</Korean>
<Chinese>以下的裝備已被刪除:</Chinese>
<Chinesesimp>以下的装备已被删除:</Chinesesimp>
<Russian>Удален комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi apagado:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutUnshared">
<English>The following loadout is not public anymore:</English>
<French>L'équipement suivant n'est plus public:</French>
<French>Le set d'équipement suivant n'est plus public :</French>
<German>Folgende Ausrüstung ist nicht mehr öffentlich:</German>
<Polish>Następujący zestaw nie jest już publiczny:</Polish>
<Japanese>次の装備は非公開になりました:</Japanese>
@ -379,10 +449,12 @@
<Korean>다음 로드아웃이 더이상 공용이 아님:</Korean>
<Chinese>以下的裝備已不再被分享:</Chinese>
<Chinesesimp>以下的装备已不再被分享:</Chinesesimp>
<Russian>Этот комплект экипировки больше не публичный:</Russian>
<Portuguese>O seguinte loadout não é mais público:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveEmptyNameBox">
<English>The name field is empty!</English>
<French>Le champ nom est vide !</French>
<French>Le champ "nom" est vide !</French>
<German>Das Feld "Name" ist leer!</German>
<Polish>Pole nazwy jest puste!</Polish>
<Japanese>名前が空白です!</Japanese>
@ -390,10 +462,12 @@
<Korean>이름칸이 비었습니다!</Korean>
<Chinese>名稱欄位為空!</Chinese>
<Chinesesimp>名称栏位为空!</Chinesesimp>
<Russian>Поле имени пустое!</Russian>
<Portuguese>O nome não pode estar vazio!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveAuthorError">
<English>You are the author of this loadout</English>
<French>Vous êtes l'auteur de cet équipement</French>
<French>Vous êtes l'auteur de ce set d'équipement</French>
<German>Du bist der Ersteller dieser Ausrüstung</German>
<Polish>Jesteś autorem tego zestawu</Polish>
<Japanese>あなたはこの装備の作者です</Japanese>
@ -401,10 +475,12 @@
<Korean>이 로드아웃의 제작자입니다.</Korean>
<Chinese>你是這個裝備的作者</Chinese>
<Chinesesimp>你是这个装备的作者</Chinesesimp>
<Russian>Вы автор этого комплекта экипировки</Russian>
<Portuguese>Você é o autor desse loadout</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveSharedError">
<English>A loadout of yours with the same name is public</English>
<French>Un de vos équipements avec le même nom est public</French>
<French>Un de vos sets d'équipement ayant le même nom est public</French>
<German>Eine deiner Ausrüstungen mit dem gleichen Namen ist öffentlich</German>
<Polish>Jeden z Twoich zestawów nazwany tak samo jest już publiczny</Polish>
<Japanese>あなたの装備は既に公開されているものと同名です</Japanese>
@ -412,10 +488,12 @@
<Korean>같은 이름의 로드아웃이 공용에 있습니다.</Korean>
<Chinese>已有相同名稱的裝備在公用分享區</Chinese>
<Chinesesimp>已有相同名称的装备在公用分享区</Chinesesimp>
<Russian>Ваш комплект экипировки с таким же именем является публичным</Russian>
<Portuguese>Um loadout seu com o mesmo nome é público</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutSaved">
<English>The following loadout was saved:</English>
<French>L'équipement suivant fut enregistré:</French>
<French>Le set d'équipement suivant a été enregistré :</French>
<German>Folgende Ausrüstung wurde gespeichert:</German>
<Polish>Następujący zestaw został zapisany:</Polish>
<Japanese>次の装備は保存されました:</Japanese>
@ -423,10 +501,12 @@
<Korean>다음 로드아웃이 저장됨:</Korean>
<Chinese>以下的裝備已被保存:</Chinese>
<Chinesesimp>以下的装备已被保存:</Chinesesimp>
<Russian>Сохранен комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi salvo:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutLoaded">
<English>The following loadout was loaded:</English>
<French>L'équipement suivant fut chargé:</French>
<French>Le set d'équipement suivant a été chargé :</French>
<German>Folgene Ausrüstung wurde geladen:</German>
<Polish>Następujący zestaw został wczytany:</Polish>
<Japanese>次の装備が読み込みされました:</Japanese>
@ -434,10 +514,12 @@
<Korean>다음 로드아웃을 불러옴:</Korean>
<Chinese>以下的裝備已被載入:</Chinese>
<Chinesesimp>以下的装备已被载入:</Chinesesimp>
<Russian>Загружен комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi carregado:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_renameExistError">
<English>A loadout with the same name already exist!</English>
<French>Un équipement avec le même nom existe déjà !</French>
<French>Un set d'équipement ayant le même nom existe déjà !</French>
<German>Eine Ausrüstung mit dem gleichen Namen existiert bereits!</German>
<Polish>Zestaw z tą nazwą już istnieje!</Polish>
<Japanese>既にその名前は装備に使われています!</Japanese>
@ -445,10 +527,12 @@
<Korean>같은 이름의 로드아웃이 이미 존재합니다!</Korean>
<Chinese>已有相同名稱的裝備!</Chinese>
<Chinesesimp>已有相同名称的装备!</Chinesesimp>
<Russian>Комплект с таким именем уже существует!</Russian>
<Portuguese>Um loadout com o mesmo nome já existe!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutRenamed">
<English>was renamed to</English>
<French>fut renommé en</French>
<French>a été renommé en</French>
<German>wurde umbenannt in</German>
<Polish>zmienił nazwę na</Polish>
<Japanese>次の名前に変更されました</Japanese>
@ -456,6 +540,8 @@
<Korean>이름이 다음과 같이 변경됨:</Korean>
<Chinese>已被改名為</Chinese>
<Chinesesimp>已被改名为</Chinesesimp>
<Russian>был переименован в</Russian>
<Portuguese>foi renameado para</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_invertCameraSetting">
<English>Invert camera controls</English>
@ -467,6 +553,8 @@
<Korean>카메라 조종 반전</Korean>
<Chinese>反轉攝影機控制</Chinese>
<Chinesesimp>反转摄影机控制</Chinesesimp>
<Russian>Инвертировать управление камерой</Russian>
<Portuguese>Inverter controles da câmera</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_modIconsSetting">
<English>Enable mod icons</English>
@ -478,10 +566,12 @@
<Korean>모드 아이콘 허가</Korean>
<Chinese>啟用模組圖示</Chinese>
<Chinesesimp>启用模组图示</Chinesesimp>
<Russian>Включить иконки модов</Russian>
<Portuguese>Ativar ícones de mods</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_fontHeightSetting">
<English>Panel font height</English>
<French>taille de police des panneaux</French>
<French>Taille de police des panneaux</French>
<German>Schrifthöhe für die linke und rechte Liste</German>
<Polish>Wysokość czcionki</Polish>
<Japanese>パネルにあるフォントの高さ</Japanese>
@ -489,10 +579,12 @@
<Korean>패널 폰트 높이</Korean>
<Chinese>面板字體高度</Chinese>
<Chinesesimp>面板字体高度</Chinesesimp>
<Russian>Размер шрифта панели</Russian>
<Portuguese>Altura da fonte do painel</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_allowDefaultLoadoutsSetting">
<English>Allow default loadouts</English>
<French>Activer l'onglet équipement de base</French>
<French>Autoriser les équipements prédéfinis</French>
<German>Erlaubt die Benutzung der Standardausrüstungen</German>
<Polish>Zezwól na użycie domyślnych zestawów</Polish>
<Japanese>標準の装備を許可</Japanese>
@ -500,10 +592,12 @@
<Korean>기본 로드아웃 허용</Korean>
<Chinese>允許預設裝備</Chinese>
<Chinesesimp>允许预设装备</Chinesesimp>
<Russian>Разрешить комплекты по умолчанию</Russian>
<Portuguese>Permitir loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_allowSharingSetting">
<English>Allow loadout sharing</English>
<French>Autoriser le partage d'équipement</French>
<French>Autoriser le partage des sets d'équipement</French>
<German>Erlaubt das Teilen von Ausrüstungen</German>
<Polish>Zezwól na udostępnianie zestawów</Polish>
<Japanese>装備の共有を許可</Japanese>
@ -511,10 +605,12 @@
<Korean>로드아웃 공유 허용</Korean>
<Chinese>允許分享裝備</Chinese>
<Chinesesimp>允许分享装备</Chinesesimp>
<Russian>Разрешить публикацию комплектов</Russian>
<Portuguese>Permitir compartilhar loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_printToRPTSetting">
<English>Log missing / unavailable items</English>
<French>Enregistrer les objets manquants</French>
<French>Consigner les objets manquants ou indisponibles</French>
<German>Aktiviert die Aufzeichnung fehlender Gegenstände in der RPT</German>
<Polish>Rejestruj brakujące / niedostępne przedmioty</Polish>
<Japanese>欠落 / 利用不可アイテムを記録</Japanese>
@ -522,6 +618,8 @@
<Korean>누락 된 항목 / 사용 할 수 없는 항목 기록</Korean>
<Chinese>記錄遺失/無法使用的項目</Chinese>
<Chinesesimp>记录遗失/无法使用的项目</Chinesesimp>
<Russian>Вести журнал недоступных предметов</Russian>
<Portuguese>Registrar em log itens indisponíveis/não encontrados</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCurrentMagTooltip">
<English>Primary magazine</English>
@ -533,6 +631,8 @@
<German>Primärmagazin</German>
<Chinese>主要武器彈匣</Chinese>
<Chinesesimp>主要武器弹匣</Chinesesimp>
<Russian>Основной магазин</Russian>
<Portuguese>Carregador Primário</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCurrentMag2Tooltip">
<English>Secondary magazine</English>
@ -544,6 +644,8 @@
<German>Sekundärmagazin</German>
<Chinese>次要武器彈匣</Chinese>
<Chinesesimp>次要武器弹匣</Chinesesimp>
<Russian>Вторичный магазин</Russian>
<Portuguese>Carregador Secundário</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_settingCategory">
<English>ACE Arsenal</English>
@ -555,10 +657,12 @@
<Korean>ACE 아스날</Korean>
<Chinese>ACE虛擬軍火庫</Chinese>
<Chinesesimp>ACE虚拟军火库</Chinesesimp>
<Russian>ACE Арсенал</Russian>
<Portuguese>ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_defaultLoadoutsTooltip">
<English>Allow the use of the default loadouts tab</English>
<French>Autorise l'usage de l'onglet équipements de base</French>
<French>Active l'onglet `Équipements prédéfinis`</French>
<Polish>Zezwól na użycie zakładki domyślnych zestawów</Polish>
<Japanese>標準の装備タブの使用を許可します</Japanese>
<Italian>Consenti l'uso della sezione per gli equipaggiamenti standard</Italian>
@ -566,10 +670,12 @@
<German>Erlaube die Nutzung des Standardausrüstungsreiters</German>
<Chinese>允許使用預設的裝備</Chinese>
<Chinesesimp>允许使用预设的装备</Chinesesimp>
<Russian>Разрешить использование вкладки комплектов экипировки по умолчанию</Russian>
<Portuguese>Permite o uso da aba de loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_modIconsTooltip">
<English>Show / hide mod icons for the left panel</English>
<French>Montrer / cacher les icones de mod pour le panneau de gauche</French>
<French>Affiche / masque les icônes de mod du panneau gauche</French>
<Polish>Pokaż / ukryj ikony modów w lewym panelu</Polish>
<Japanese>左パネルにある MOD アイコンの表示 / 非表示をします</Japanese>
<Italian>Mostra / nascondi le icone delle mod dal pannello sinistro</Italian>
@ -577,10 +683,12 @@
<German>Zeigt/Versteckt Mod-Symbole in der linken Leiste</German>
<Chinese>在左面板中顯示/隱藏模組圖示</Chinese>
<Chinesesimp>在左面板中显示/隐藏模组图示</Chinesesimp>
<Russian>Показать / скрыть значки модов в левой панели</Russian>
<Portuguese>Mostra / Esconde os ícones de mods no painel esquerdo</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_fontHeightTooltip">
<English>Change the font height for text in the left / right panels</English>
<French>Change la taille de police du texte des panneaux gauche / droite</French>
<French>Change la taille de police des panneaux latéraux</French>
<Polish>Zmień wysokość czcionki dla tekstu lewego i prawego panelu</Polish>
<Japanese>右か左パネルにあるフォントの高さを変更します。</Japanese>
<Italian>Cambia l'altezza del font per il testo sul pannello sinistro / destro</Italian>
@ -588,10 +696,12 @@
<German>Ändert die Schriftgröße für die linke/rechte Leiste</German>
<Chinese>變更左/右面板中的字體高度</Chinese>
<Chinesesimp>变更左/右面板中的字体高度</Chinesesimp>
<Russian>Изменить размер шрифта для текста в левой / правой панелях</Russian>
<Portuguese>Muda o tamanho da fonte para os textos nos painéis esquerdo e direito</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_printToRPTTooltip">
<English>Log missing / unavailable items in the RPT</English>
<French>Enregistre les objets manquants / indisponibles dans le RPT</French>
<French>Consigne les objets manquants ou indisponibles dans le RPT</French>
<Polish>Rejestruj brakujące / niedostępne przedmioty do pliku RPT</Polish>
<Japanese>PRT で欠落 / 利用不可アイテムを記録します</Japanese>
<Italian>Log mancante / oggetto non disponibile nell' RPT</Italian>
@ -599,10 +709,12 @@
<German>Fehlende Gegenstände werden in der RPT aufgezeichnet</German>
<Chinese>記錄遺失/無法使用的項目到RPT檔案中</Chinese>
<Chinesesimp>记录遗失/无法使用的项目到RPT档案中</Chinesesimp>
<Russian>Вести журнал отсутствующих / недоступных предметов в RPT</Russian>
<Portuguese>Registrar em log itens indisponíveis no RPT</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_CantOpenDisplay">
<English>Unable to open ACE arsenal</English>
<French>Impossible d'ouvrir ACE arsenal</French>
<French>Impossible d'ouvrir l'arsenal ACE</French>
<German>Kann ACE-Arsenal nicht anzeigen</German>
<Italian>Impossibile aprire l'arsenale ACE</Italian>
<Japanese>ACE 武器庫を開けません</Japanese>
@ -610,10 +722,12 @@
<Chinese>無法開啟ACE虛擬軍火庫</Chinese>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsText">
<English>Import BI VA loadouts to ACE Arsenal</English>
<French>Importe les loadouts de BI VA dans ACE Arsenal</French>
<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>
@ -621,10 +735,12 @@
<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>
<Portuguese>Importar loadouts do BIS Arsenal para o ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsPlayerError">
<English>No player unit available! Place a unit and mark it as "Player".</English>
<French>Aucune unité joueur disponible ! Placez une unité et marquez la en tant que "joueur".</French>
<French>Aucune unité joueur disponible ! Placez une unité et marquez-la en tant que "joueur".</French>
<German>Keine Spielereinheit verfügbar. Setze eine Einheit und markiere sie als "Spieler".</German>
<Japanese>プレイヤー ユニットがありません!ユニットを設置し"Player"と名付けてください。</Japanese>
<Korean>플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오.</Korean>
@ -632,10 +748,12 @@
<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>
<Portuguese>Nenhuma unidade de jogador disponível! Coloque uma unidade e marque como "Player".</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsLoadoutError">
<English>No loadouts to import.</English>
<French>Aucun loadout à importer.</French>
<French>Aucun équipement à importer.</French>
<German>Keine Ausrüstungen zum Importieren</German>
<Japanese>インポートする装備がありません。</Japanese>
<Korean>가져올 로드 아웃이 없습니다.</Korean>
@ -643,6 +761,8 @@
<Chinesesimp>没有装备被汇入。</Chinesesimp>
<Italian>Non ci sono equipaggiamenti da importare.</Italian>
<Polish>Brak zestawów wyposażenia do zaimportowania.</Polish>
<Russian>Нет комплектов для импорта</Russian>
<Portuguese>Nenhum loadout para importar.</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Mission">
<English>ACE Arsenal</English>
@ -653,6 +773,9 @@
<Chinesesimp>ACE虚拟军火库</Chinesesimp>
<Italian>Arsenale ACE</Italian>
<Polish>Arsenał ACE</Polish>
<Russian>ACE Арсенал</Russian>
<Portuguese>ACE Arsenal</Portuguese>
<French>Arsenal ACE</French>
</Key>
<Key ID="STR_ACE_Arsenal_ReturnToArsenal">
<English>Return to ACE Arsenal.</English>
@ -663,6 +786,9 @@
<Chinesesimp>返回到ACE虚拟军火库。</Chinesesimp>
<Italian>Torna all'arsenale ACE</Italian>
<Polish>Wróć do arsenału ACE.</Polish>
<Russian>Вернуться в ACE Арсенал</Russian>
<Portuguese>Voltar para o ACE Arsenal</Portuguese>
<French>Retour à l'arsenal ACE</French>
</Key>
<Key ID="STR_ACE_Arsenal_Mission_tooltip">
<English>Use ACE Arsenal to try out different weapons and equipment.</English>
@ -673,6 +799,9 @@
<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>
<Portuguese>Use o ACE Arsenal para experimentar diferentes armas e equipamentos.</Portuguese>
<French>Utilisez l'arsenal ACE pour essayer différentes armes ou équipements.</French>
</Key>
<Key ID="STR_ACE_Arsenal_Mission_overview">
<English>Try weapons and equipment and create your own loadouts.</English>
@ -683,33 +812,45 @@
<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>
<Portuguese>Experimente armas e equipamentos e crie seus próprios loadouts.</Portuguese>
<French>Essayez des armes et du matériel et créez vos propres sets d'équipement.</French>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadoutsTooltip">
<English>Open the loadouts screen</English>
<French>Affiche la page des équipements</French>
<German>Öffnet das Ausrüstungsmenü</German>
<French>Affiche les sets d'équipement</French>
<Chinese>開啟裝備選單</Chinese>
<Chinesesimp>开启装备选单</Chinesesimp>
<Japanese>装備画面を開く</Japanese>
<Italian>Apri la pagina degli equipaggiamenti</Italian>
<Polish>Otwórz ekran zestawów</Polish>
<Russian>Открыть окно комплектов экипировки</Russian>
<Portuguese>Abre a tela de loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonExportTooltip">
<English>Export current / default loadouts</English>
<French>Exporte l'équipement actuel ou la liste d'équipements de base</French>
<German>Exportiert aktuelles / standard Loadout</German>
<French>Exporte le set d'équipement actuel / les sets prédéfinis</French>
<Chinese>匯出當前/預設的裝備</Chinese>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_buttonImportTooltip">
<English>Import current / default loadouts</English>
<French>Importer l'équipement actuel ou la liste d'équipements de base</French>
<German>Importiert aktuelles / standard Loadout</German>
<French>Importe le set d'équipement actuel / les sets prédéfinis</French>
<Chinese>匯入當前/預設的裝備</Chinese>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_statPotassium">
<English>Potassium levels</English>
@ -719,6 +860,8 @@
<Chinese>鉀水平</Chinese>
<Italian>Ilvello di potassio</Italian>
<Polish>Poziomy potasu</Polish>
<Russian>Уровень Калия</Russian>
<Portuguese>Níveis de Potássio</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statMagnification">
<English>Magnification</English>
@ -730,7 +873,7 @@
<Russian>Увеличение</Russian>
<German>Vergrößerung</German>
<Czech>Zvětšení</Czech>
<Portuguese>Aumentox</Portuguese>
<Portuguese>Aumento</Portuguese>
<Korean>배율</Korean>
<Chinesesimp>放大倍数</Chinesesimp>
<Japanese>拡大倍率</Japanese>
@ -742,6 +885,10 @@
<Japanese>暗視装置への対応有無</Japanese>
<Polish>Wsparcie noktowizyjne</Polish>
<Italian>Supporto visore notturno</Italian>
<Russian>Поддержка ночного видения</Russian>
<Portuguese>Suporte de Visão Noturna</Portuguese>
<French>Support JVN</French>
<Chinese>夜視鏡支援</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_supPrim">
<English>Primary supported</English>
@ -749,6 +896,10 @@
<Japanese>プライマリが対応</Japanese>
<Polish>Wspierane przez broń główną</Polish>
<Italian>Primario supportato</Italian>
<Russian>Поддерживается осн. прицелом</Russian>
<Portuguese>Primária suportada</Portuguese>
<French>Primaire supportée</French>
<Chinese>主武器支援</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_supSec">
<English>Secondary supported</English>
@ -756,6 +907,10 @@
<Japanese>セカンダリが対応</Japanese>
<Polish>Wspierane przez broń drugorzędną</Polish>
<Italian>Secondario supportato</Italian>
<Russian>Поддерживается доп. прицелом</Russian>
<Portuguese>Secundária suportada</Portuguese>
<French>Secondaire supportée</French>
<Chinese>次要武器支援</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_IntPrim">
<English>Primary integrated</English>
@ -763,6 +918,10 @@
<Japanese>プライマリに内蔵</Japanese>
<Polish>Zintegrowane z bronią główną</Polish>
<Italian>Primario integrato</Italian>
<Russian>Интегрирован в осн. прицел</Russian>
<Portuguese>Primária integrada</Portuguese>
<French>Primaire intégrée</French>
<Chinese>整合主武器</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
<English>Not Supported</English>
@ -770,42 +929,58 @@
<Japanese>セカンダリに内蔵</Japanese>
<Polish>Nie wspierane</Polish>
<Italian>Non supportato</Italian>
<Russian>Не поддерживается</Russian>
<Portuguese>Não suportado</Portuguese>
<French>Non supporté</French>
<Chinese>不支援</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_page">
<English>Page</English>
<German>Seite</German>
<French>Page</French>
<Japanese>ページ</Japanese>
<Chinesesimp>页面</Chinesesimp>
<Chinese>頁面</Chinese>
<Italian>Pagina</Italian>
<Polish>Strona</Polish>
<Russian>Стр.</Russian>
<Portuguese>Página</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_enableIdentityTabsSettings">
<English>Enable the faces / voices / insignias tabs</English>
<French>Activer les onglets faces / voix / insignes</French>
<German>Aktiviere die Gesichter-, Stimmen- und Abzeichenübersicht</German>
<French>Activer les onglets visages / voix / insignes</French>
<Japanese>顔 / 声 / 記章タブを有効化</Japanese>
<Chinesesimp>启用脸谱/声音/徽章/选项 </Chinesesimp>
<Chinese>啟用臉譜/聲音/徽章選項</Chinese>
<Italian>Abilita volti, voci e insegne</Italian>
<Polish>Aktywuj zakładki twarz / głos / insygnia</Polish>
<Russian>Включить вкладки Лиц / Голосов / Знаков различия</Russian>
<Portuguese>Ativar as abas de rostos / vozes / insígnias</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonClearContainerTooltip">
<English>Empty the selected container</English>
<German>Aktuellen Container leeren</German>
<French>Vider le conteneur selectionné</French>
<Japanese>選択されたコンテナは空です</Japanese>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_exportedClassnameText">
<English>Exported class name to clipboard</English>
<German>Der Klassenname wurde in die Zwischenablage exportiert</German>
<French>Nom de classe exporté dans le presse papier</French>
<Japanese>クリップボードへクラスネームをエクスポート</Japanese>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_Mode">
<English>Mode</English>
@ -829,7 +1004,7 @@
<Spanish>Lista blanca</Spanish>
<German>Whitelist</German>
<Czech>Seznam povolených</Czech>
<Portuguese>Lista branca</Portuguese>
<Portuguese>Lista Branca</Portuguese>
<French>Liste blanche</French>
<Hungarian>Fehérlista</Hungarian>
<Russian>Вайтлист</Russian>
@ -841,9 +1016,14 @@
</Key>
<Key ID="STR_ACE_Arsenal_Blacklist">
<English>Blacklist</English>
<German>Blacklist</German>
<Japanese>禁止リスト</Japanese>
<Italian>Lista Nera</Italian>
<Polish>Czarna lista (lista wykluczeń)</Polish>
<Russian>Чёрный список</Russian>
<Portuguese>Lista Negra</Portuguese>
<French>Liste noire</French>
<Chinese>黑名單</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_Items">
<English>Items</English>
@ -863,31 +1043,55 @@
</Key>
<Key ID="STR_ACE_Arsenal_AttributeExport_Tooltip">
<English>Export current items list as an array for use in scripts</English>
<German>Exportiert aktuelle Gegenstände als Array, um es in Scripten zu verwenden</German>
<Japanese>スクリプト用に現在のアイテム リストをアレイでエクスポートします</Japanese>
<Italian>Esporta l'attuale lista di elementi come un array, per essere usati negli script</Italian>
<Polish>Eksportuj obecną listę przedmiotów jako tablicę do wykorzystania w skryptach</Polish>
<Portuguese>Exportar a lista atual de itens como uma matriz para usar em scripts</Portuguese>
<Russian>Экспорт текущего списка предметов в виде массива для использования в скриптах</Russian>
<French>Exporte l'équipement actuel dans le presse-papier, sous la forme d'un tableau à utiliser dans les scripts</French>
<Chinese>匯出目前的物品列表為陣列用於腳本編寫</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_AttributeImport_Tooltip">
<English>Import items list array from clipboard (should be the same format as export)</English>
<German>Importiert alles aus der Zwischenablage (Sollte im gleichen Format sein, wie beim Exportieren)</German>
<Polish>Zaimportuj listę przedmiotów ze schowka (lista musi być w tym samym formacie jak przy exporcie)</Polish>
<Japanese>クリップボードからアイテムリストをアレイでインポートします (エクスポートと同じフォーマットである必要があります)</Japanese>
<Russian>Импорт массива списка предметов из буфера (должен иметь тот же формат, что при экспорте)</Russian>
<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 à partir du presse-papier (le format doit être identique à celui de l'exportation)</French>
<Chinese>從剪貼簿匯入物品列表之陣列(應該與匯出的格式一樣)</Chinese>
</Key>
<Key ID="STR_ACE_Arsenal_AttributeAddCompatible_DisplayName">
<English>Add Compatible Items</English>
<German>Füge kompatible Gegenstände hinzu</German>
<Polish>Dodaj kompatybilne przedmioty</Polish>
<Japanese>対応アイテムを追加</Japanese>
<Russian>Добавить совместимые предметы</Russian>
<Portuguese>Adicionar itens compatíveis</Portuguese>
<French>Ajouter des objets compatibles</French>
<Chinese>增加相容的物品</Chinese>
</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>
<German>Es werden automatisch kompatible Aufsätze oder Magazine für alle ausgewählten Waffen hinzugefügt</German>
<Polish>Automatycznie doda kompatybilne dodatki oraz magazynki (odpowiednio do każdej kategorii) dla wszystkich broni na liście</Polish>
<Japanese>現在のアイテム リスト内にある全武器に対応するアタッチメントと弾倉 (選択したカテゴリに基づき) を自動的に追加します</Japanese>
<Russian>Добавляет совместимые приспособления или магазины (в зависимости от выбранной категории) для всего оружия в текущем списке предметов</Russian>
<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>
</Key>
<Key ID="STR_ACE_Arsenal_statTTL">
<English>Time to live</English>
<French>Durée de vie</French>
<German>Lebenszeit</German>
<French>Durée d'expiration</French>
<Japanese>有効時間</Japanese>
<Polish>Czas by żyć</Polish>
<Italian>Scadenza (TTL)</Italian>
<Russian>Время действия</Russian>
<Portuguese>Time to live</Portuguese>
<Chinese>有效時間</Chinese>
</Key>
</Package>
</Project>

View File

@ -63,7 +63,7 @@ if (_resetGunList) then {
["7.62x51mm M993" , 912, 100, 0.0803840, -0.00109390, 7.62, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO", [[-15,893],[0,900],[10,907],[15,912],[25,926],[30,935],[35,946]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x51mm Subsonic", 314, 100, 0.3344490, -0.00060194, 6.86, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.502, 1, "ICAO", [[-15,312],[0,313],[10,314],[15,314],[25,316],[30,317],[35,318]] , [[0, 0.303], [250, 0.409], [320, 0.427], [420, 0.445], [550, 0.460], [650, 0.467], [730, 0.470]], true],
["7.62x39mm" , 708, 100, 0.1066160, -0.00154815, 7.62, 0, 2, 10, 120, 0, 0, 7.970, 7.82, 25.40, 0.275, 1, "ICAO", [[-15,689],[0,696],[10,703],[15,708],[25,722],[30,731],[35,742]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["7.62x39mm" , 715, 100, 0.104782, -0.00154815, 7.62, 0, 2, 10, 120, 0, 0, 7.970, 7.92, 24.00, 0.275, 1, "ICAO", [[-15,696],[0,703],[10,710],[15,715],[25,729],[30,738],[35,749]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["6.5x39mm" , 766, 100, 0.0872025, -0.00077363, 6.35, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.524, 1, "ICAO", [[-15,747],[0,754],[10,761],[15,766],[25,780],[30,789],[35,800]] , [[0, 0.525], [910, 0.520], [1050, 0.515], [1270, 0.506], [1390, 0.503], [1570, 0.500], [1770, 0.498]], true],
["6.5x47mm Lapua" , 767, 100, 0.0868248, -0.00069003, 6.35, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.577, 1, "ICAO", [[-15,748],[0,755],[10,762],[15,767],[25,781],[30,790],[35,801]] , [[0, 0.578], [970, 0.574], [1140, 0.569], [1430, 0.557], [1610, 0.553], [1750, 0.551], [1860, 0.550]], true],
@ -76,7 +76,7 @@ if (_resetGunList) then {
["5.56x45mm Mk318" , 872, 100, 0.0814490, -0.00125880, 7.11, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.56x45mm M995" , 861, 100, 0.0825279, -0.00126182, 7.11, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
["5.45x39mm 7N6M" , 727, 100, 0.0802286, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.428, 5.59, 16.00, 0.336, 1, "ICAO", [[-15,708],[0,715],[10,722],[15,727],[25,741],[30,750],[35,761]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]];
["5.45x39mm 7N6M" , 735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.43, 5.6, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]];
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];

View File

@ -74,7 +74,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
_virtualPosASL = _virtualPosASL vectorAdd ((positionCameraToWorld [0.3,0,0]) vectorDiff (positionCameraToWorld [0,0,0]));
};
private _virtualPos = _virtualPosASL call EFUNC(common,ASLToPosition);
private _lineInterection = lineIntersects [eyePos ACE_player, _virtualPosASL, ACE_player];
private _lineInterection = !((lineIntersectsSurfaces [eyePos ACE_player, _virtualPosASL, ACE_player]) isEqualTo []);
//Don't allow placing in a bad position:
if (_lineInterection && {GVAR(placeAction) == PLACE_APPROVE}) then {GVAR(placeAction) = PLACE_WAITING;};

View File

@ -3,7 +3,7 @@
* Author: Pabst Mirror (based on Explosive attach by Garth de Wet (LH))
* Approves placement of the lightObject, scans for an appropriate location and attaches
* A player can release the attachObject with it floating in mid-air.
* This will use lineIntersectsWith to scan towards the center of the vehicle to find a collision
* This will use lineIntersectsSurfaces to scan towards the center of the vehicle to find a collision
* ArmA's collision detection is of couse terrible and often misses collisions (difference between what we see and collision LOD)
* So it does multiple scans at slighly different angles
* This is VERY computationaly intensive, but doesn't happen that often.

View File

@ -40,7 +40,7 @@
<Polish>Odczep przedmiot</Polish>
<French>Détacher l'objet</French>
<Czech>Odepnout předmět</Czech>
<Portuguese>Separar item</Portuguese>
<Portuguese>Desprender item</Portuguese>
<Italian>Stacca l'oggetto</Italian>
<Hungarian>Tárgy lecsatolása</Hungarian>
<Russian>Отсоединить</Russian>
@ -200,7 +200,7 @@
<Polish>Umieść</Polish>
<French>Placer</French>
<Czech>Položit</Czech>
<Portuguese>Colocar</Portuguese>
<Portuguese>Fixar</Portuguese>
<Italian>Posiziona</Italian>
<Hungarian>Elhelyez</Hungarian>
<Russian>Установить</Russian>

View File

@ -67,18 +67,18 @@ class CfgAmmo {
class ACE_B_556x45_Ball_Tracer_Dim: B_556x45_Ball_Tracer_Red {
nvgOnly = 1;
};
class B_545x39_Ball_F : BulletBase {
airFriction=-0.00119458;
ACE_caliber=5.588;
ACE_bulletLength=21.59;
ACE_bulletMass=3.42792;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.168};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={735, 883, 892};
ACE_barrelLengths[]={206.5, 414.02, 508.0};
class B_545x39_Ball_F: BulletBase {
airFriction = -0.001195;
ACE_caliber = 5.6; // https://bobp.cip-bobp.org/uploads/tdcc/tab-i/5-45-x-39-en.pdf
ACE_bulletLength = 21.59;
ACE_bulletMass = 3.43;
ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[] = {0.168};
ACE_velocityBoundaries[] = {};
ACE_standardAtmosphere = "ICAO";
ACE_dragModel = 7;
ACE_muzzleVelocities[] = {743, 848, 891, 900}; // at 21°C, at 15°C {735, 840, 883, 892} according with the AKS initSpeed
ACE_barrelLengths[] = {210, 314, 415, 508.0}; // respectively {AKS74U / AK105,AK12K / AK74 / default}
};
class B_56x15_dual: BulletBase {
tracerScale = 0.5;
@ -337,18 +337,18 @@ class CfgAmmo {
ACE_muzzleVelocities[]={735, 770, 809, 838};
ACE_barrelLengths[]={406.4, 508.0, 604.5, 736.6};
};
class B_762x39_Ball_F : BulletBase {
airFriction=-0.00154815;
ACE_caliber=7.823;
ACE_bulletLength=28.956;
ACE_bulletMass=7.9704;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.275};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={650, 716, 750};
ACE_barrelLengths[]={254.0, 414.02, 508.0};
class B_762x39_Ball_F: BulletBase {
airFriction = -0.001548;
ACE_caliber = 7.92; // https://bobp.cip-bobp.org/uploads/tdcc/tab-i/7-62-x-39-en.pdf
ACE_bulletLength = 28.956;
ACE_bulletMass = 7.97;
ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[] = {0.275};
ACE_velocityBoundaries[] = {};
ACE_standardAtmosphere = "ICAO";
ACE_dragModel = 1;
ACE_muzzleVelocities[] = {658, 678, 723, 743, 753}; // at 21°C, at 15°C {650, 670, 715, 735, 745} according with the AKM,AK12,AK12U,RPK initSpeed
ACE_barrelLengths[] = {254, 314, 415, 520, 590}; // respectively {default / AK104,AK15K / AK47,AKM,AK103,AK15 / SKS / RPK}
};
class B_9x21_Ball : BulletBase {
airFriction=-0.00211064;
@ -604,15 +604,17 @@ class CfgAmmo {
ACE_barrelLengths[]={304.8, 406.4, 609.6};
};
class B_570x28_Ball: BulletBase {
ACE_caliber = 5.7;
ACE_caliber = 5.7; // https://bobp.cip-bobp.org/uploads/tdcc/tab-i/tabical-en-page7.pdf
ACE_bulletLength = 21.6; // http://blog.thejustnation.org/2011/04/5-7x28mm-ammo-review/
ACE_bulletMass = 2; // based on the SS190
ACE_ballisticCoefficients[] = {0.177}; //http://m.delphiforums.com/autogun/messages/5267/7
ACE_ammoTempMuzzleVelocityShifts[] = {-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[] = {0.084}; // https://www.thefirearmblog.com/blog/2016/10/24/modern-personal-defense-weapon-calibers-4-6x30mm-hk/
ACE_velocityBoundaries[] = {};
ACE_standardAtmosphere = "ASM"; // 50/50 chance to get it right
ACE_standardAtmosphere = "ICAO";
ACE_dragModel = 7;
ACE_muzzleVelocities[] = {716,776};
ACE_barrelLengths[] = {264,407};
ACE_muzzleVelocities[] = {716, 776}; // at 21°C, 715-775 m/s at 15°C according with the 50Rnd_570x28_SMG_03 initSpeed
ACE_barrelLengths[] = {264, 407};
airFriction = -0.002619; // default BI value -0.001412
};
class B_19mm_HE: BulletBase {
tracerScale = 1;

View File

@ -58,7 +58,7 @@ class CfgMagazines {
};
class 30Rnd_545x39_Mag_F: CA_Magazine {
initSpeed = 735;
initSpeed = 735; // default BI value according with the ACE_muzzleVelocities at 15°C
};
class 30Rnd_556x45_Stanag: CA_Magazine {
@ -120,7 +120,7 @@ class CfgMagazines {
};
class 30Rnd_762x39_Mag_F: CA_Magazine {
initSpeed = 716;
initSpeed = 715; // default BI value according with the ACE_muzzleVelocities at 15°C
};
class 20Rnd_762x51_Mag: CA_Magazine {

View File

@ -211,6 +211,7 @@ class CfgVehicles {
accuracy = 1000;
displayName = CSTRING(AmmoSupplyCrate_DisplayName);
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
editorPreview = "\A3\EditorPreviews_F\Data\CfgVehicles\Box_NATO_Ammo_F.jpg";
author = ECSTRING(common,ACETeam);
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);

View File

@ -75,6 +75,7 @@ class CfgWeapons {
ACE_barrelTwist = 228.6; // 1:9 inch twist
ACE_barrelLength = 407;
ACE_twistDirection = 1;
initSpeed = -1.083916; // 775 m/s according with the ACE_muzzleVelocities at 15°C, default BI value -1.1 (786 m/s)
modes[] = {"Single"};
};
class SMG_03C_BASE: SMG_03_TR_BASE {
@ -142,6 +143,9 @@ class CfgWeapons {
// M14
class DMR_06_base_F: Rifle_Long_Base_F {
ACE_barrelLength = 558.8;
ACE_barrelTwist = 304.8;
initSpeed = -0.999395;
class Single: Mode_SemiAuto {
dispersion = MOA_TO_RAD(0.81);
};
@ -151,6 +155,12 @@ class CfgWeapons {
};
};
class DMR_06_hunter_base_F: DMR_06_base_F {
class Single: Single {
dispersion = MOA_TO_RAD(0.81);
};
};
// MX LSW
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
@ -260,11 +270,6 @@ class CfgWeapons {
// Stoner 99 LMG
class LMG_Mk200_F: Rifle_Long_Base_F {
magazines[] = {
"200Rnd_65x39_cased_Box",
"200Rnd_65x39_cased_Box_Tracer",
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
};
initSpeed = -0.999327;
ACE_barrelTwist = 177.8;
ACE_barrelLength = 317.5;
@ -355,23 +360,47 @@ class CfgWeapons {
// AKS
class arifle_AKS_base_F: Rifle_Base_F {
initSpeed = -1.0;
ACE_barrelTwist = 160.02;
ACE_barrelLength = 206.5;
initSpeed = -1; // 735 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 160;
ACE_barrelLength = 210;
};
// AKM
class arifle_AKM_base_F: Rifle_Base_F {
initSpeed = -1.0;
ACE_barrelTwist = 199.898;
ACE_barrelLength = 414.02;
initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 240;
ACE_barrelLength = 415;
};
// AK12
// AK15,AK15K,RPK (AK12)
class arifle_AK12_base_F: Rifle_Base_F {
initSpeed = -1.0;
ACE_barrelTwist = 199.898;
ACE_barrelLength = 414.02;
initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 240;
ACE_barrelLength = 415;
};
class arifle_AK12U_base_F: arifle_AK12_base_F {
initSpeed = -0.937063; // 715*0.937063= 670 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 240;
ACE_barrelLength = 314;
};
class arifle_RPK12_base_F: arifle_AK12_base_F {
initSpeed = -1.041958; // 715*1.041958= 745 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 240;
ACE_barrelLength = 590;
};
// MSBS GROT (Promet)
class arifle_MSBS65_base_F: Rifle_Base_F {
initSpeed = -0.971576; // 774*0.971576= 752 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelTwist = 228.6;
ACE_barrelLength = 406.4; // 16"
};
class arifle_MSBS65_Mark_base_F: arifle_MSBS65_base_F {
initSpeed = -1.007752; // 774*1.007752= 780 m/s according with the ACE_muzzleVelocities at 15°C
ACE_barrelLength = 508; // 20"
};
// QBZ-95-1
@ -789,23 +818,6 @@ class CfgWeapons {
ACE_barrelLength = 620.014;
};
// M14
class srifle_DMR_06_camo_F: DMR_06_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_M993_AP_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.999395;
ACE_barrelTwist = 304.8;
ACE_barrelLength = 558.8;
};
// HK121
class MMG_01_hex_F: MMG_01_base_F {
initSpeed = -0.985613;

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
* Child actions <ARRAY>
*
* Example:
* [kevin] call ace_medical_fnc_addLoadCaptiveActions
* [kevin] call ace_captives_fnc_addLoadCaptiveActions
*
* Public: No
*/

View File

@ -10,18 +10,21 @@
<Japanese>捕虜</Japanese>
<Korean>포로설정</Korean>
<Polish>Jeńcy</Polish>
<Russian>Пленные</Russian>
<Portuguese>Prisioneiros</Portuguese>
<French>Prisonniers</French>
</Key>
<Key ID="STR_ACE_Captives_SetCaptive">
<English>Take Prisoner</English>
<German>Gefangen nehmen</German>
<Spanish>Tomar prisionero</Spanish>
<French>Prendre le prisonnier</French>
<French>Capturer le prisonnier</French>
<Polish>Aresztuj</Polish>
<Czech>Zajmout osobu</Czech>
<Italian>Arresta il prigioniero</Italian>
<Portuguese>Tomar Prisioneiro</Portuguese>
<Hungarian>Foglyul ejtés</Hungarian>
<Russian>Взять в плен</Russian>
<Russian>Арестовать</Russian>
<Japanese>捕虜にする</Japanese>
<Korean>포박하기</Korean>
<Chinese>逮捕俘虜</Chinese>
@ -37,7 +40,7 @@
<Italian>Libera il prigioniero</Italian>
<Portuguese>Libertar Prisioneiro</Portuguese>
<Hungarian>Fogoly szabadon engedése</Hungarian>
<Russian>Освободить пленника</Russian>
<Russian>Освободить пленного</Russian>
<Japanese>捕虜を解放する</Japanese>
<Korean>풀어주기</Korean>
<Chinese>釋放俘虜</Chinese>
@ -53,7 +56,7 @@
<Italian>Scorta il Prigioniero</Italian>
<Portuguese>Escoltar Prisioneiro</Portuguese>
<Hungarian>Fogoly kísérése</Hungarian>
<Russian>Конвоировать пленника</Russian>
<Russian>Конвоировать пленного</Russian>
<Japanese>捕虜を移動させる</Japanese>
<Korean>포로 호송하기</Korean>
<Chinese>護送俘虜</Chinese>
@ -85,7 +88,7 @@
<Italian>Prima devi arrestarlo!</Italian>
<Portuguese>Você deve tomá-lo como prisioneiro primeiro!</Portuguese>
<Hungarian>Először foglyul kell ejtened őt!</Hungarian>
<Russian>Вы должны сначала взять его в плен!</Russian>
<Russian>Вы должны сначала арестовать его!</Russian>
<Japanese>捕虜を取っている必要があります!</Japanese>
<Korean>먼저 포로로 만들어야합니다!</Korean>
<Chinese>你必須先逮捕他!</Chinese>
@ -149,7 +152,7 @@
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascetta per arrestare i prigionieri</Italian>
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
<Russian>Кабельные стяжки используются для связывания рук при аресте</Russian>
<Japanese>ケーブル タイは捕虜を制圧できます。</Japanese>
<Korean>케이블 타이는 포로를 구류시킬때 씁니다.</Korean>
<Chinese>束線帶可以綁住俘虜</Chinese>
@ -179,7 +182,7 @@
<Portuguese>Parar de se render</Portuguese>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
<Russian>Прекратить сдачу в плен</Russian>
<Russian>Прекратить сдаваться</Russian>
<Hungarian>Megadás abbahagyása</Hungarian>
<Italian>Smetti di arrenderti</Italian>
<Japanese>投降をやめる</Japanese>
@ -212,7 +215,7 @@
<Portuguese>Sincroniza uma unidade para fazer com que ela se renda.</Portuguese>
<French>Synchronise une unité pour la rendre captive.</French>
<Hungarian>Egység szinkronizálása, hogy kapituláljon.</Hungarian>
<Russian>Синхронизируйте с юнитами, чтобы заставить их сдаться в плен.</Russian>
<Russian>Синхронизируйте с юнитами, чтобы заставить их сдаться.</Russian>
<Italian>Sincronizza una unità per farla arrendere.</Italian>
<Japanese>同期されたユニットを投降させます。</Japanese>
<Korean>투항시키기 위해 동기화합니다.</Korean>
@ -224,7 +227,7 @@
<German>Einheit in Handschellen legen</German>
<Polish>Skuj jednostkę</Polish>
<Portuguese>Fazer unidade algemada</Portuguese>
<Russian>Связать юнита</Russian>
<Russian>Связать юниту руки</Russian>
<Czech>Spoutat jednotku</Czech>
<Italian>Metti manette all'unità</Italian>
<Spanish>Hacer que la unidad esté esposada</Spanish>
@ -239,7 +242,7 @@
<German>Synchronisiere eine Einheit, um sie in Handschellen zu legen.</German>
<Polish>Zsynchronizuj z jednostką, aby została skuta.</Polish>
<Portuguese>Sincronizar uma unidade para deixá-la algemada.</Portuguese>
<Russian>Синхронизируйте с юнитами, чтобы сделать их связанными.</Russian>
<Russian>Синхронизируйте с юнитами, чтобы связать им руки.</Russian>
<Czech>Synchronizovat s jednotkou, která má být v poutech.</Czech>
<Italian>Sincronizza un'unità per metterle le manette.</Italian>
<Spanish>Sincroniza una unidad para hacer que esté esposada.</Spanish>
@ -272,9 +275,9 @@
<Czech>Toto kontroluje nastavení kapitulace a pout</Czech>
<German>Einstellungen zur Kapitulation und Kabelbindern</German>
<Portuguese>Controla as configurações de rendição e abraçadeiras</Portuguese>
<French>Contrôle les paramètres de la reddition et des Serflex</French>
<French>Contrôle les paramètres de la reddition et des Serflex.</French>
<Hungarian>Szabályozza a kapituláció és bilincselés beállításait</Hungarian>
<Russian>Управляет настройками сдачи в плен и связывания</Russian>
<Russian>Управляет настройками ареста и сдачи в плен</Russian>
<Italian>Controlla le impostazioni per la resa e le manette</Italian>
<Japanese>投降したユニットや拘束されたユニットの扱いを設定します。</Japanese>
<Korean>투항과 케이블 타이에 관련한 설정</Korean>
@ -290,7 +293,7 @@
<Portuguese>Pode algemar o próprio lado</Portuguese>
<French>Peut capturer sa propre faction</French>
<Hungarian>Saját oldal megbilincselhető</Hungarian>
<Russian>Связать союзника</Russian>
<Russian>Можно связывать руки союзникам</Russian>
<Italian>Puoi ammanettare unità alleate</Italian>
<Japanese>拘束ユニットを自陣営へ</Japanese>
<Korean>자기편을 포박 할 수 있습니다.</Korean>
@ -304,9 +307,9 @@
<Czech>Mohou hráči spoutat jednotky na své straně</Czech>
<German>Spieler können eigene Einheiten fesseln</German>
<Portuguese>Os jogadores podem algemar unidades do seu lado</Portuguese>
<French>Les joueurs peuvent utiliser les Serflex sur leur propre camp</French>
<French>Les joueurs peuvent utiliser les Serflex sur leur propre camp.</French>
<Hungarian>A játékosok megkötözhetik-e a saját oldalukon lévő egységeket</Hungarian>
<Russian>Разрешить игрокам связывать юнитов своей стороны</Russian>
<Russian>Разрешить игрокам арестовывать юнитов своей стороны</Russian>
<Italian>I giocatori possono ammanettare unità alleate</Italian>
<Japanese>プレイヤーが拘束したユニットの陣営を自陣営に変更させます。</Japanese>
<Korean>자기편에게 케이블타이를 사용할 수 있게합니다</Korean>
@ -319,10 +322,10 @@
<Spanish>Permitir rendición</Spanish>
<Czech>Povolit vzdávání</Czech>
<German>Kapitulation erlauben</German>
<Portuguese>Permite rendição</Portuguese>
<Portuguese>Permitir Rendição</Portuguese>
<French>Permettre la reddition</French>
<Hungarian>Kapituláció engedélyezése</Hungarian>
<Russian>Сдаться в плен</Russian>
<Russian>Разрешить сдаваться</Russian>
<Italian>Permetti Resa</Italian>
<Japanese>投降を許可</Japanese>
<Korean>투항 활성화</Korean>
@ -336,9 +339,9 @@
<Czech>Hráč se může vzdát poté, co si skryje zbraň</Czech>
<German>Spieler können kapitulieren, nachdem sie ihre Waffe geholstert haben.</German>
<Portuguese>Jogadores podem se render depois de guardar sua arma</Portuguese>
<French>Les joueurs peuvent se rendre après avoir rangé leur arme</French>
<French>Les joueurs peuvent se rendre après avoir rangé leur arme.</French>
<Hungarian>A játékosok megadhatják magukat a fegyverük elrakása után</Hungarian>
<Russian>Игроки могут сдаться в плен после того, как уберут оружие</Russian>
<Russian>Игроки могут сдаваться после того, как уберут оружие</Russian>
<Italian>I giocatori possono arrendersi dopo aver messo via le proprie armi</Italian>
<Japanese>プレイヤーは武器を収めたあと投降できるようにします。</Japanese>
<Korean>비무장한 플레이어가 투항할 수 있게 합니다</Korean>
@ -350,7 +353,7 @@
<German>Benötigt Kapitulation</German>
<Polish>Wymagaj kapitulacji</Polish>
<Portuguese>Requer rendição</Portuguese>
<Russian>Требовать пленения</Russian>
<Russian>Требовать сдаться для ареста</Russian>
<Spanish>Requiere rendición</Spanish>
<Czech>Vzdávání vyžadováno</Czech>
<Italian>Richiedi Resa</Italian>
@ -365,11 +368,11 @@
<German>Spieler müssen sich erst ergeben, bevor sie gefangen genommen werden können</German>
<Polish>Wymagaj od graczy kapitulacji zanim będzie można ich zaaresztować</Polish>
<Portuguese>Requer que jogadores se rendam antes de poderem ser presos</Portuguese>
<Russian>Требуется, чтобы игрок сдался в плен прежде, чем его можно будет связать</Russian>
<Russian>Требовать для ареста, чтобы игроки вначале сдавались</Russian>
<Spanish>Requiere que los Jugadores se rindan antes de arrestarlos</Spanish>
<Czech>Vyžaduje, aby se hráč nejdříve vzdal, poté může být spoután</Czech>
<Italian>I giocatori devono arrendersi prima che possano essere arrestati</Italian>
<French>Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés</French>
<French>Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés.</French>
<Japanese>プレイヤーは拘束される前に、投降する必要があります。</Japanese>
<Korean>체포하기 전에 먼저 플레이어가 투항을 해야만 합니다</Korean>
<Chinese>玩家須先要求目標投降,才可以進行逮捕</Chinese>
@ -380,7 +383,7 @@
<German>Nur Ergeben</German>
<Polish>Tylko kapitulacja</Polish>
<Portuguese>Somente rendição </Portuguese>
<Russian>Только сдавшийся в плен</Russian>
<Russian>Только сдавшийся</Russian>
<Spanish>Solo rendición</Spanish>
<Czech>Pouze vzdávání</Czech>
<Italian>Solo Resa</Italian>
@ -414,6 +417,9 @@
<Chinesesimp>设置在游标下的单位成俘虏状态。</Chinesesimp>
<Korean>커서의 병력을 포박합니다.</Korean>
<Polish>Ustawia jednostkę pod kursorem jako jeniec.</Polish>
<Russian>Арестовывает указанный курсором юнит</Russian>
<Portuguese>Torna a unidade sob o cursor um prisioneiro</Portuguese>
<French>Capture l'unité sous le curseur.</French>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrenderAi_name">
<English>Require AI surrendering</English>
@ -424,6 +430,9 @@
<Chinesesimp>需要AI先行投降</Chinesesimp>
<Korean>AI 항복 필요</Korean>
<Polish>Wymaga poddania się przez SI</Polish>
<Russian>Требовать ИИ сдаться для ареста</Russian>
<Portuguese>Requer rendição da IA</Portuguese>
<French>Requiert la reddition de l'IA</French>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrenderAi_description">
<English>Require AI to surrender before they can be arrested</English>
@ -434,6 +443,9 @@
<Chinesesimp>在逮捕AI之前该AI必须先进入投降状态。</Chinesesimp>
<Korean>포박하기 전에 먼저 AI가 투항해야만 합니다.</Korean>
<Polish>Wymaga poddania się przez SI zanim aresztowanie będzie możliwe</Polish>
<Russian>Требовать для ареста, чтобы ИИ вначале сдавались</Russian>
<Portuguese>Requer que a IA se renda antes que seja presa</Portuguese>
<French>Requiert la capitulation des unités IA avant qu'elles ne puissent être arrêtées.</French>
</Key>
</Package>
</Project>

View File

@ -63,6 +63,11 @@ class CfgVehicles {
GVAR(space) = 4;
GVAR(hasCargo) = 1;
};
class Tank_F: Tank {};
class UGV_02_Base_F: Tank_F {
GVAR(space) = 0;
GVAR(hasCargo) = 0;
};
class Car_F;
class Truck_F: Car_F {

View File

@ -11,5 +11,6 @@ PREP_RECOMPILE_END;
GVAR(initializedItemClasses) = [];
GVAR(initializedVehicleClasses) = [];
GVAR(cargoHolderTypes) = ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"];
GVAR(disableParadropEffectsClasstypes) = ["Car_F"];
ADDON = true;

View File

@ -69,8 +69,10 @@ _itemObject setVelocity ((velocity _vehicle) vectorAdd ((vectorNormalized (vecto
_item attachTo [_parachute, [0,0,1]];
_parachute setVelocity _velocity;
private _light = "Chemlight_yellow" createVehicle [0,0,0];
_light attachTo [_item, [0,0,0]];
if ((GVAR(disableParadropEffectsClasstypes) findIf {_item isKindOf _x}) == -1) then {
private _light = "Chemlight_yellow" createVehicle [0,0,0];
_light attachTo [_item, [0,0,0]];
};
}, [_itemObject], 0.7] call CBA_fnc_waitAndExecute;
@ -83,8 +85,10 @@ _itemObject setVelocity ((velocity _vehicle) vectorAdd ((vectorNormalized (vecto
};
if (getPos _item select 2 < 1) then {
private _smoke = "SmokeshellYellow" createVehicle [0,0,0];
_smoke attachTo [_item, [0,0,0]];
if ((GVAR(disableParadropEffectsClasstypes) findIf {_item isKindOf _x}) == -1) then {
private _smoke = "SmokeshellYellow" createVehicle [0,0,0];
_smoke attachTo [_item, [0,0,0]];
};
[_this select 1] call CBA_fnc_removePerFrameHandler;
};

View File

@ -31,14 +31,23 @@ TRACE_2("setSpace",_vehicle,_size);
// Nothing to do here
if (
(isNil "_space") ||
{isNull _vehicle} ||
{_space == _vehicle getVariable [QGVAR(space), CARGO_SPACE(typeOf _vehicle)]}
{isNull _vehicle}
) exitWith {};
// Account for cargo already in the vehicle
private _loaded = _vehicle getVariable [QGVAR(loaded), []];
private _newSpace = _space;
{
_newSpace = _newSpace - ([_x] call FUNC(getSizeItem));
} forEach _loaded;
// If the new value is the same as the old, do nothing
if (_newSpace == (_vehicle getVariable [QGVAR(space), CARGO_SPACE(typeOf _vehicle)])) exitwith {};
// Apply new space globally
_vehicle setVariable [QGVAR(space), _newSpace, true];
// Necessary to update value, even if no space, as API could be used again
_vehicle setVariable [QGVAR(hasCargo), _space > 0, true];
_vehicle setVariable [QGVAR(space), _space, true];
// If no cargo space no need for cargo menu
if (_space <= 0) exitWith {};

View File

@ -70,7 +70,7 @@
<Czech>Zbývající prostor: %1</Czech>
<Spanish>Espacio de carga restante: %1</Spanish>
<Italian>Spazio cargo rimanente: %1</Italian>
<French>Espace de cargaison restant : %1</French>
<French>Espace de chargement restant : %1</French>
<Japanese>カーゴの空き容量: %1</Japanese>
<Korean>선적 공간 남음: %1</Korean>
<Chinese>貨物剩餘空間: %1</Chinese>
@ -85,7 +85,7 @@
<Czech>Povolit náklad</Czech>
<Spanish>Habilitar carga</Spanish>
<Italian>Abilita Cargo</Italian>
<French>Activer la mise en cargaison</French>
<French>Activer la cargaison</French>
<Japanese>カーゴを有効化</Japanese>
<Korean>화물 활성화</Korean>
<Chinese>啟用貨物裝載</Chinese>
@ -100,7 +100,7 @@
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
<Italian>Abilita il modulo di caricamento in cargo</Italian>
<French>Active le chargement de cargaison dans un vehicule</French>
<French>Active la possibilité de charger du matériel dans un module de fret.\n(véhicule / container)</French>
<Japanese>カーゴ モジュールで積み込みを有効化</Japanese>
<Korean>화물 모듈에 싣기를 활성화합니다</Korean>
<Chinese>啟用貨物裝載功能</Chinese>
@ -130,7 +130,7 @@
<Spanish>Configure los ajustes del módulo de carga</Spanish>
<Czech>Konfigurace nákladního modulu</Czech>
<Italian>Configura le impostazioni del modulo cargo</Italian>
<French>Configure les paramètres du module de cargaison</French>
<French>Configure les paramètres du module de cargaison.</French>
<Japanese>カーゴ モジュールの設定を構成</Japanese>
<Korean>화물 모듈의 환경 설정을 바꿉니다</Korean>
<Chinese>配置貨物模塊設定</Chinese>
@ -156,7 +156,7 @@
<English>Unloaded&lt;br/&gt;%1 from&lt;br/&gt;%2</English>
<German>%1&lt;br/&gt;von&lt;br/&gt;%2 abgeladen</German>
<Spanish>Descargado/a&lt;br/&gt;%1 de&lt;br/&gt;%2</Spanish>
<French>Déchargé&lt;br/&gt;%1 de&lt;br/&gt;%2</French>
<French>%1&lt;br/&gt;déchargé de&lt;br/&gt;%2</French>
<Polish>%1&lt;br/&gt;rozładowano z&lt;br/&gt;%2</Polish>
<Czech>%1&lt;br/&gt;vyloženo z&lt;br/&gt;%2</Czech>
<Portuguese>%1&lt;br/&gt;descarregado de&lt;br/&gt;%2</Portuguese>
@ -207,7 +207,7 @@
<Russian>%1&lt;br/&gt;не может быть погружен</Russian>
<Italian>%1&lt;br/&gt;non può essere caricato</Italian>
<Spanish>%1&lt;br/&gt;no pudo ser cargado</Spanish>
<French>%1&lt;br /&gt; n'a pas pu être chargé</French>
<French>%1&lt;br /&gt;n'a pas pu être chargé</French>
<Japanese>%1&lt;br/&gt;は積み込めませんでした</Japanese>
<Korean>%1&lt;br/&gt;이 실릴 수가 없습니다</Korean>
<Chinese>%1&lt;br/&gt;無法被裝載</Chinese>
@ -222,7 +222,7 @@
<Russian>%1&lt;br/&gt;не может быть выгружен</Russian>
<Italian>%1&lt;br/&gt;non può essere scaricato</Italian>
<Spanish>%1&lt;br/&gt;no pudo ser descargado</Spanish>
<French>%1&lt;br /&gt; n'a pas pu être déchargé</French>
<French>%1&lt;br /&gt;n'a pas pu être déchargé</French>
<Japanese>%1&lt;br/&gt;は降ろせませんでした</Japanese>
<Korean>%1&lt;br/&gt;이 내려질 수가 없습니다</Korean>
<Chinese>%1&lt;br/&gt;無法被卸載</Chinese>
@ -237,6 +237,9 @@
<Chinesesimp>货物空间</Chinesesimp>
<Polish>Przestrzeń ładunkowa</Polish>
<Korean>화물 공간</Korean>
<Russian>Грузовое пространство</Russian>
<Portuguese>Espaço de Carga</Portuguese>
<French>Espace de stockage</French>
</Key>
<Key ID="STR_ACE_Cargo_space_edenDesc">
<English>The cargo space available in this vehicle/container</English>
@ -247,6 +250,9 @@
<Chinesesimp>设定此载具/集装箱可装载多少货物</Chinesesimp>
<Polish>Dostępna przestrzeń ładunkowa w tym pojeździe/kontenerze</Polish>
<Korean>이 차량/컨테이너에서 사용가능한 화물 공간</Korean>
<Russian>Грузовое пространство, доступное в этом транспортном средстве / контейнере</Russian>
<Portuguese>O espaço de carga disponível nesse veículo/contâiner</Portuguese>
<French>L'espace de stockage disponible dans ce véhicule / container.</French>
</Key>
<Key ID="STR_ACE_Cargo_size_edenName">
<English>Cargo Size</English>
@ -257,6 +263,9 @@
<Chinesesimp>货物的大小</Chinesesimp>
<Polish>Wielkość ładunku</Polish>
<Korean>화물 크기</Korean>
<Russian>Размер груза</Russian>
<Portuguese>Tamanho da Carga</Portuguese>
<French>Taille de cargaison</French>
</Key>
<Key ID="STR_ACE_Cargo_size_edenDesc">
<English>The cargo space required to hold this object (-1 for unloadable)</English>
@ -267,6 +276,9 @@
<Chinesesimp>此货物会占掉多少空间(设定-1的话此货物就不能被装载)</Chinesesimp>
<Polish>Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania)</Polish>
<Korean>이 화물을 적재하는데 필요한 공간 (-1=무조건 적재가능)</Korean>
<Russian>Грузовое пространство, необходимое для размещения этого объекта (-1 для незагружаемого)</Russian>
<Portuguese>O Espaço de carga necessário para carregar esse objeto (-1 para que não seja carregável)</Portuguese>
<French>L'espace de stockage nécessaire pour contenir cet objet.\n(-1 pour les objets déchargeables)</French>
</Key>
<Key ID="STR_ACE_Cargo_paradropButton">
<English>Airdrop</English>
@ -274,10 +286,12 @@
<Japanese>空中投下</Japanese>
<Polish>Zrzut zaopatrzenia</Polish>
<Korean>공중 투하</Korean>
<French>Largage aérien</French>
<French>Largage</French>
<Italian>Lancio Aereo</Italian>
<Chinese>空投</Chinese>
<Chinesesimp>空投</Chinesesimp>
<Russian>Десантирование груза</Russian>
<Portuguese>Lançamento Aéreo</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_unlevelFlightWarning">
<English>Unlevel Flight</English>
@ -285,44 +299,60 @@
<Japanese>機体が水平ではありません</Japanese>
<Polish>Nierówny lot</Polish>
<Korean>기체가 수평이 아닙니다</Korean>
<French>Rétablir l'assiette</French>
<French>Vol en dénivelé</French>
<Italian>Volo non Livellato</Italian>
<Chinese>此架飛機並無保持水平飛行</Chinese>
<Chinesesimp>此架飞机并无保持水平飞行</Chinesesimp>
<Russian>Неподходящее положение</Russian>
<Portuguese>Desnivelar Vôo</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent">
<English>Paradrop Time Coefficient</English>
<German>Türlast Zeitfaktor</German>
<Japanese>空中投下までの時間係数</Japanese>
<Italian>Coefficente Tempo Lancio Paracadute</Italian>
<French>Coefficient Temps de largage de cargaison</French>
<French>Coefficient Temps Paralargage</French>
<Chinese>空投時間係數</Chinese>
<Chinesesimp>空投时间系数</Chinesesimp>
<Polish>Współczynnik czasu zrzutu</Polish>
<Korean>공중 투하 시간 계수</Korean>
<Russian>Коэффициент времени десантирования</Russian>
<Portuguese>Fator de Tempo para soltar a carga</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
<English>Modifier for how long it takes to paradrop a cargo item.</English>
<German>Beeinflusst die zusätzliche Zeit für Türlastabwürfe.</German>
<Japanese>カーゴ アイテムを空中投下するまでの時間を変更します。</Japanese>
<Italian>Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo.</Italian>
<French>Modifier le temps qu'il faut pour larguer la cargaison.</French>
<French>Modifie le temps nécessaire au paralargage d'une cargaison.</French>
<Chinese>設定空投所需消耗的時間</Chinese>
<Chinesesimp>设定空投所需消耗的时间.</Chinesesimp>
<Polish>Modyfikator wskazujący jak dużo czasu potrzeba by zrzucić przedmiot na spadochronie.</Polish>
<Korean>화물을 공중 투하 하는데 얼마나 걸리는 시간 설정</Korean>
<Russian>Модификатор времени, необходимого для десантирования груза</Russian>
<Portuguese>Coeficiente de quanto tempo leva para soltar uma carga de paraquedas</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_loadTimeCoefficient">
<English>Load Time Coefficient</English>
<German>Ladezeitmultiplikator</German>
<Japanese>積載時間の係数</Japanese>
<Polish>Współczynnik czasu załadowania</Polish>
<Italian>Coefficente Tempo Caricamento</Italian>
<Russian>Коэффициент времени погрузки</Russian>
<Portuguese>Fator de tempo para carregar</Portuguese>
<French>Coefficient Temps Chargement</French>
<Chinese>裝載時間係數</Chinese>
</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>
<German>Gibt an, wie lange das Laden / Entladen von Gegenständen dauern soll.\nZeit in Sekunden, die mit der Größe des Gegenstandes multipliziert wird.</German>
<Japanese>アイテムの積み下ろし作業にかかる時間を編集できます。\nアイテムの大きさにこの値が乗法され、時間 (秒) を変更できます。</Japanese>
<Polish>Modyfikuje, jak długo zajmuje załadowywanie/wyładowywanie przedmiotów. \nCzasem, w sekundach, jest wielkość przedmiotu razy jego wartość.</Polish>
<Italian>Modifica quanto tempo ci impiega a caricare o scaricare gli oggetti.\n Tempo, in secondi, è la dimensione dell'oggetto moltiplicata per questo valore</Italian>
<Russian>Изменяет время для загрузки/выгрузки предметов. \n Время (сек) - это размер предмета, умноженный на это значение.</Russian>
<Portuguese>Coeficiente de quanto tempo leva para carregar/descarregar itens.\nTempo, em segundos, é o tamanho do objeto multiplicado por esse valor.</Portuguese>
<French>Modifie le temps nécessaire pour charger / décharger des objets.\nLe temps, en secondes, est calculé en multipliant la taille de l'élément par ce coefficient. </French>
<Chinese>修改要花多長時間來裝載/卸載物品。\n時間以秒為單位而物品的大小數值與這個係數成比。</Chinese>
</Key>
</Package>
</Project>

View File

@ -246,6 +246,7 @@ class CfgVehicles {
transportMaxItems = 9002;
maximumload = 9002;
model = "\A3\weapons_F\AmmoBoxes\WpnsBox_large_F";
editorPreview = "\A3\EditorPreviews_F\Data\CfgVehicles\Box_NATO_WpsSpecial_F.jpg";
class TransportItems {
MACRO_ADDITEM(ACE_Chemlight_Shield,20);

View File

@ -11,6 +11,8 @@
<Italian>Luce chimica</Italian>
<Chinese>螢光棒</Chinese>
<Chinesesimp>萤光棒</Chinesesimp>
<Russian>Химсвет</Russian>
<Portuguese>Bastões de Luz</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare">
<English>Prepare %1</English>
@ -22,6 +24,8 @@
<Italian>Prepara %1</Italian>
<Chinese>使用%1</Chinese>
<Chinesesimp>使用%1</Chinesesimp>
<Russian>Приготовить %1</Russian>
<Portuguese>Preparar %1</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare_Done">
<English>%1&lt;br/&gt;Prepared</English>
@ -33,6 +37,8 @@
<Italian>%1 &lt;br/&gt; Preparata</Italian>
<Chinese>%1&lt;br/&gt;已使用</Chinese>
<Chinesesimp>%1&lt;br/&gt;已使用</Chinesesimp>
<Russian>%1&lt;br/&gt;Приготовлен</Russian>
<Portuguese>%1&lt;br/&gt;Preparado</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Inventory_Full">
<English>No inventory space</English>
@ -60,6 +66,8 @@
<Italian>[ACE] Luci chimiche</Italian>
<Chinese>[ACE] 螢光棒</Chinese>
<Chinesesimp>[ACE] 萤光棒</Chinesesimp>
<Russian>[ACE] Химсвет</Russian>
<Portuguese>[ACE] Bastões de Luz</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayName">
<English>Chemlight (Orange)</English>
@ -71,6 +79,8 @@
<Italian>Luce chimica (Arancione)</Italian>
<Chinese>螢光棒 (橘色)</Chinese>
<Chinesesimp>萤光棒 (橘色)</Chinesesimp>
<Russian>Химсвет (Оранжевый)</Russian>
<Portuguese>Bastão de Luz (Laranja)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayNameShort">
<English>Orange Light</English>
@ -82,6 +92,8 @@
<Italian>Luce Arancione</Italian>
<Chinese>橘色光</Chinese>
<Chinesesimp>橘色光</Chinesesimp>
<Russian>Оранжевый свет</Russian>
<Portuguese>Luz Laranja</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DescriptionShort">
<English>Type: Light - Orange&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -93,6 +105,8 @@
<Italian>Tipo: Luce - Arancione&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 橘色&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 橘色&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Оранжевый&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Laranja&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayName">
<English>Chemlight (White)</English>
@ -104,6 +118,8 @@
<Italian>Luce chimica (Bianca)</Italian>
<Chinese>螢光棒 (白色)</Chinese>
<Chinesesimp>萤光棒 (白色)</Chinesesimp>
<Russian>Химсвет (Белый)</Russian>
<Portuguese>Bastão de Luz (Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayNameShort">
<English>White Light</English>
@ -115,6 +131,8 @@
<Italian>Luce Bianca</Italian>
<Chinese>白色光</Chinese>
<Chinesesimp>白色光</Chinesesimp>
<Russian>Белый свет</Russian>
<Portuguese>Luz Branca</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DescriptionShort">
<English>Type: Light - White&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -126,6 +144,8 @@
<Italian>Tipo: Luce - Bianca&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 白色&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 白色&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Белый&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Branco&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayName">
<English>Chemlight (Hi Red)</English>
@ -137,6 +157,8 @@
<Italian>Luce chimica (Hi Rossa)</Italian>
<Chinese>螢光棒 (超亮紅色)</Chinese>
<Chinesesimp>萤光棒 (超亮红色)</Chinesesimp>
<Russian>Химсвет (Ярко-Красный)</Russian>
<Portuguese>Bastão de Luz (Vermelho Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayNameShort">
<English>Red Hi Light</English>
@ -148,6 +170,8 @@
<Italian>Luce Hi Rossa</Italian>
<Chinese>超亮紅色光</Chinese>
<Chinesesimp>超亮红色光</Chinesesimp>
<Russian>Яркий Красный свет</Russian>
<Portuguese>Luz forte vermelha</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DescriptionShort">
<English>Type: Light - Red Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -159,6 +183,8 @@
<Italian>Tipo: Luce - Rossa Hi (30 minuti)&lt;br /&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 超亮紅色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮红色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Красный (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Vermelho Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayName">
<English>Chemlight (Hi Yellow)</English>
@ -170,6 +196,8 @@
<Italian>Luce chimica (Hi Gialla)</Italian>
<Chinese>螢光棒 (超亮黃色)</Chinese>
<Chinesesimp>萤光棒 (超亮黄色)</Chinesesimp>
<Russian>Химсвет (Ярко-Желтый)</Russian>
<Portuguese>Bastão de Luz (Amarelo Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayNameShort">
<English>Yellow Hi Light</English>
@ -181,6 +209,8 @@
<Italian>Luce Hi Gialla</Italian>
<Chinese>超亮黃色光</Chinese>
<Chinesesimp>超亮黄色光</Chinesesimp>
<Russian>Яркий Желтый свет</Russian>
<Portuguese>Luz forte amarela</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DescriptionShort">
<English>Type: Light - Yellow Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -192,6 +222,8 @@
<Italian>Tipo: Luce - Gialla Hi (30 minuti)&lt;br /&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 超亮黃色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮黄色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Желтый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Amarelo Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayName">
<English>Chemlight (Hi White)</English>
@ -203,6 +235,8 @@
<Italian>Luce chimica (Hi Bianca)</Italian>
<Chinese>螢光棒 (超亮白色)</Chinese>
<Chinesesimp>萤光棒 (超亮白色)</Chinesesimp>
<Russian>Химсвет (Ярко-Белый)</Russian>
<Portuguese>Bastão de Luz (Branco Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayNameShort">
<English>White Hi Light</English>
@ -214,6 +248,8 @@
<Italian>Luce Hi Bianca</Italian>
<Chinese>超亮白色光</Chinese>
<Chinesesimp>超亮白色光</Chinesesimp>
<Russian>Яркий Белый свет</Russian>
<Portuguese>Luz forte branca</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DescriptionShort">
<English>Type: Light - White Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -225,69 +261,107 @@
<Italian>Tipo: Luce - Bianca Hi (30 minuti)&lt;br /&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 超亮白色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮白色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Белый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Branco Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DisplayName">
<English>Chemlight (Hi Blue)</English>
<French>Cyalume (Hi Bleu)</French>
<Japanese>ケミライト (高輝度 青)</Japanese>
<Polish>Świetlik (jaskrawy niebieski)</Polish>
<German>Knicklicht (Blau, Hell)</German>
<Italian>Luce chimica (Hi Blu)</Italian>
<Russian>Химсвет (Ярко-Синий)</Russian>
<Portuguese>Bastão de Luz (Azul Forte)</Portuguese>
<Chinese>螢光棒(超亮藍色)</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DisplayNameShort">
<English>Blue Hi Light</English>
<French>Lum. bleue haute intensité</French>
<German>Helles, blaues Knicklicht</German>
<Japanese>高輝度の青色</Japanese>
<Polish>Jaskrawe niebieskie światło</Polish>
<Italian>Luce Hi Blu</Italian>
<Russian>Яркий Синий свет</Russian>
<Portuguese>Luz forte azul</Portuguese>
<Chinese>超亮藍色光</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DescriptionShort">
<English>Type: Light - Blue Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<French>Type: Lumière - bleue Hi (30 minutes)&lt;br /&gt;Nbre: 1&lt;br /&gt; À main</French>
<German>Typ: Licht - blau, hell (30 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Japanese>種類: 照明 - 高輝度 青 (30分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe niebieskie (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Hi blu (30 minuti)&lt;br/&gt;Rimanenti:1 &lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ярко-Синий (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Azul Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
<Chinese>類型: 光 - 超亮藍色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayName">
<English>Chemlight (Hi Green)</English>
<French>Cyalume (Hi Vert)</French>
<German>Knicklicht (Grün, Hell)</German>
<Japanese>ケミライト (高輝度 緑)</Japanese>
<Polish>Świetlik (jaskrawy zielony)</Polish>
<Italian>Luce chimica (Hi Verde)</Italian>
<Russian>Химсвет (Ярко-Зеленый)</Russian>
<Portuguese>Bastão de Luz (Verde Forte)</Portuguese>
<Chinese>螢光棒(超亮綠色)</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayNameShort">
<English>Green Hi Light</English>
<French>Lum. verte haute intensité</French>
<German>Helles, grünes Knicklicht</German>
<Japanese>高輝度の青色</Japanese>
<Polish>Jaskrawe zielone światło</Polish>
<Italian>Luce Hi Verde</Italian>
<Russian>Яркий Зеленый свет</Russian>
<Portuguese>Luz forte verde</Portuguese>
<Chinese>超亮綠色光</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DescriptionShort">
<English>Type: Light - Green Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<French>Type: Lumière - verte Hi (30 minutes)&lt;br /&gt;Nbre: 1&lt;br /&gt; À main</French>
<German>Typ: Licht - grün, hell (30 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Japanese>種類: 照明 - 高輝度 緑 (30分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe zielone (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Hi verde (30 minuti)&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ярко-Зеленый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Verde Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
<Chinese>類型: 光 - 超亮綠色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayName">
<English>Chemlight (Ultra-Hi Orange)</English>
<French>Cyalume (Ultra-Hi orange)</French>
<German>Knicklicht (Orange, Hell)</German>
<Japanese>ケミライト (高輝度 オレンジ)</Japanese>
<Polish>Świetlik (ultra-jaskrawy pomarańczowy)</Polish>
<Italian>Luce chimica (Ultra-Hi Arancione)</Italian>
<Russian>Химсвет (Ультраяркий Оранжевый)</Russian>
<Portuguese>Bastão de Luz (Laranja Ultra Forte)</Portuguese>
<Chinese>螢光棒(極亮橘色)</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayNameShort">
<English>Orange Ultra-Hi Light</English>
<French>Lum. orange ultra haute intensité</French>
<German>Helles, orangenes Knicklicht</German>
<Japanese>ウルトラ高輝度のオレンジ色</Japanese>
<Polish>Ultra-jaskrawe pomarańczowe światło</Polish>
<Italian>Luce Ultra-Hi Arancione</Italian>
<Russian>Ультраяркий Оранжевый свет</Russian>
<Portuguese>Luz ultra forte laranja</Portuguese>
<Chinese>極亮橘色光</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DescriptionShort">
<English>Type: Light - Orange Ultra-Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<French>Type: Lumière - Orange Ultra-Hi (5 minutes)&lt;br /&gt;Nbre: 1&lt;br /&gt; À main</French>
<German>Typ: Licht - orange, hell (5 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Japanese>種類: 照明 - ウルトラ高輝度 オレンジ (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - ultra-jaskrawe pomarańczowe (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Polish>Typ: Światło - ultra-jaskrawe pomarańczowe (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Ultra-Hi (5 minuti)&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ультраяркий Оранжевый (5 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Laranja Ultra Forte (5 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
<Chinese>類型: 光 - 極亮橘色 (5分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayName">
<English>Chemlight (IR)</English>
@ -299,6 +373,8 @@
<Italian>Luce chimica (IR)</Italian>
<Chinese>螢光棒 (紅外線)</Chinese>
<Chinesesimp>萤光棒 (红外线)</Chinesesimp>
<Russian>Химсвет (Инфракрасный)</Russian>
<Portuguese>Bastão de Luz (IV)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayNameShort">
<English>IR Light</English>
@ -310,6 +386,8 @@
<Italian>Luce IR</Italian>
<Chinese>紅外線光</Chinese>
<Chinesesimp>红外线光</Chinesesimp>
<Russian>Инфракрасный свет</Russian>
<Portuguese>Bastão de luz infravermelho</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DescriptionShort">
<English>Type: Light - Infrared&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -321,6 +399,8 @@
<Italian>Tipo: Luce - Infrarossi&lt;br /&gt;Usata in: Mano</Italian>
<Chinese>類型: 光 - 紅外線&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 红外线&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Инфракрасный&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Infravermelho&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DisplayName">
<English>Chemlight Shield (Empty)</English>
@ -332,6 +412,8 @@
<Italian>Scudo Luce chimica (Vuoto)</Italian>
<Chinese>螢光棒保護殼 (空)</Chinese>
<Chinesesimp>萤光棒保护壳 (空)</Chinesesimp>
<Russian>Контейнер для Химсвета (Пуст)</Russian>
<Portuguese>Estojo de Luz (Vazio)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DescriptionShort">
<English>Shield for chemlights. Combine with chemlight to prepare reading light.</English>
@ -343,6 +425,8 @@
<Italian>Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura.</Italian>
<Chinese>螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈</Chinese>
<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>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DisplayName">
<English>Chemlight Shield (Green)</English>
@ -354,6 +438,8 @@
<Italian>Scudo Luce Chimica (Verde)</Italian>
<Chinese>螢光棒保護殼 (綠色)</Chinese>
<Chinesesimp>萤光棒保护壳 (绿色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Зел)</Russian>
<Portuguese>Estojo de Luz (Verde)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DescriptionShort">
<English>Green reading light.</English>
@ -365,6 +451,8 @@
<Italian>Luce da lettura Verde.</Italian>
<Chinese>綠色閱讀燈</Chinese>
<Chinesesimp>绿色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Зеленый)</Russian>
<Portuguese>Luz de leitura verde.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DisplayName">
<English>Chemlight Shield (Red)</English>
@ -376,6 +464,8 @@
<Italian>Scudo Luce Chimica (Rossa)</Italian>
<Chinese>螢光棒保護殼 (紅色)</Chinese>
<Chinesesimp>萤光棒保护壳 (红色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Красн)</Russian>
<Portuguese>Estojo de Luz (Vermelho)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DescriptionShort">
<English>Red reading light.</English>
@ -387,6 +477,8 @@
<Italian>Luce da lettura Rossa.</Italian>
<Chinese>紅色閱讀燈</Chinese>
<Chinesesimp>红色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Красный)</Russian>
<Portuguese>Luz de leitura vermelha.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DisplayName">
<English>Chemlight Shield (Blue)</English>
@ -398,6 +490,8 @@
<Italian>Scudo Luce Chimica (Blu)</Italian>
<Chinese>螢光棒保護殼 (藍色)</Chinese>
<Chinesesimp>萤光棒保护壳 (蓝色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Син)</Russian>
<Portuguese>Estojo de Luz (Azul)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DescriptionShort">
<English>Blue reading light.</English>
@ -409,6 +503,8 @@
<Italian>Luce da lettura Blu.</Italian>
<Chinese>藍色閱讀燈</Chinese>
<Chinesesimp>蓝色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Синий)</Russian>
<Portuguese>Luz de leitura azul.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DisplayName">
<English>Chemlight Shield (Yellow)</English>
@ -420,6 +516,8 @@
<Italian>Scudo Luce Chimica (Gialla)</Italian>
<Chinese>螢光棒保護殼 (黃色)</Chinese>
<Chinesesimp>萤光棒保护壳 (黄色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Желт)</Russian>
<Portuguese>Estojo de Luz (Amarelo)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DescriptionShort">
<English>Yellow reading light.</English>
@ -431,6 +529,8 @@
<Italian>Luce da lettura Gialla.</Italian>
<Chinese>黃色閱讀燈</Chinese>
<Chinesesimp>黄色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Желтый)</Russian>
<Portuguese>Luz de leitura amarela.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DisplayName">
<English>Chemlight Shield (Orange)</English>
@ -442,6 +542,8 @@
<Italian>Scudo Luce Chimica (Arancione)</Italian>
<Chinese>螢光棒保護殼 (橘色)</Chinese>
<Chinesesimp>萤光棒保护壳 (橘色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Оранж)</Russian>
<Portuguese>Estojo de Luz (Laranja)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DescriptionShort">
<English>Orange reading light.</English>
@ -453,6 +555,8 @@
<Italian>Luce da lettura Arancione.</Italian>
<Chinese>橘色閱讀燈</Chinese>
<Chinesesimp>橘色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Оранжевый)</Russian>
<Portuguese>Luz de leitura laranja.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DisplayName">
<English>Chemlight Shield (White)</English>
@ -464,6 +568,8 @@
<Italian>Scudo Luce Chimica (Bianca)</Italian>
<Chinese>螢光棒保護殼 (白色)</Chinese>
<Chinesesimp>萤光棒保护壳 (白色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Белый)</Russian>
<Portuguese>Estojo de Luz (Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DescriptionShort">
<English>White reading light.</English>
@ -475,6 +581,8 @@
<Italian>Luce da lettura Bianca.</Italian>
<Chinese>白色閱讀燈</Chinese>
<Chinesesimp>白色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Белый)</Russian>
<Portuguese>Luz de leitura branca.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -27,6 +27,7 @@ PREP(changeProjectileDirection);
PREP(checkFiles);
PREP(checkPBOs);
PREP(claim);
PREP(claimSafeServer);
PREP(codeToString);
PREP(createOrthonormalReference);
PREP(currentChannel);
@ -138,6 +139,7 @@ PREP(positionToASL);
PREP(progressBar);
PREP(readSettingFromModule);
PREP(receiveRequest);
PREP(registerItemReplacement);
PREP(removeCanInteractWithCondition);
PREP(removeSpecificMagazine);
PREP(requestCallback);

View File

@ -121,8 +121,8 @@ if (isServer) then {
[QGVAR(fixFloating), FUNC(fixFloating)] call CBA_fnc_addEventHandler;
[QGVAR(fixPosition), FUNC(fixPosition)] call CBA_fnc_addEventHandler;
["ace_loadPersonEvent", FUNC(loadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_unloadPersonEvent", FUNC(unloadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_loadPersonEvent", LINKFUNC(loadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_unloadPersonEvent", LINKFUNC(unloadPersonLocal)] call CBA_fnc_addEventHandler;
[QGVAR(lockVehicle), {
_this setVariable [QGVAR(lockStatus), locked _this];
@ -174,6 +174,7 @@ if (isServer) then {
[QGVAR(setShotParents), {(_this select 0) setShotParents [_this select 1, _this select 2]}] call CBA_fnc_addEventHandler;
["ace_setOwner", {(_this select 0) setOwner (_this select 1)}] call CBA_fnc_addEventHandler;
[QGVAR(serverLog), FUNC(serverLog)] call CBA_fnc_addEventHandler;
[QGVAR(claimSafe), LINKFUNC(claimSafeServer)] call CBA_fnc_addEventHandler;
};
@ -312,7 +313,7 @@ addMissionEventHandler ["PlayerViewChanged", {
if (isNull player) exitWith {true};
private _UAV = getConnectedUAV player;
if (!alive player) then {_UAV = objNull;};
private _position = (UAVControl _UAV) param [1, ""];
private _position = [player] call FUNC(getUavControlPosition);
private _seatAI = objNull;
private _turret = [];
switch (toLower _position) do {
@ -458,14 +459,14 @@ GVAR(deviceKeyHandlingArray) = [];
GVAR(deviceKeyCurrentIndex) = -1;
// Register localizations for the Keybinding categories
["ACE3 Equipment", localize LSTRING(ACEKeybindCategoryEquipment)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Common", localize LSTRING(ACEKeybindCategoryCommon)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Weapons", localize LSTRING(ACEKeybindCategoryWeapons)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Movement", localize LSTRING(ACEKeybindCategoryMovement)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Scope Adjustment", localize LSTRING(ACEKeybindCategoryScopeAdjustment)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Vehicles", localize LSTRING(ACEKeybindCategoryVehicles)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Equipment", LLSTRING(ACEKeybindCategoryEquipment)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Common", LLSTRING(ACEKeybindCategoryCommon)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Weapons", LLSTRING(ACEKeybindCategoryWeapons)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Movement", LLSTRING(ACEKeybindCategoryMovement)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Scope Adjustment", LLSTRING(ACEKeybindCategoryScopeAdjustment)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Vehicles", LLSTRING(ACEKeybindCategoryVehicles)] call CBA_fnc_registerKeybindModPrettyName;
["ACE3 Equipment", QGVAR(openDevice), (localize "STR_ACE_Common_toggleHandheldDevice"), {
["ACE3 Equipment", QGVAR(openDevice), LLSTRING(toggleHandheldDevice), {
[] call FUNC(deviceKeyFindValidIndex);
if (GVAR(deviceKeyCurrentIndex) == -1) exitWith {false};
[] call ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 3);
@ -474,7 +475,7 @@ GVAR(deviceKeyCurrentIndex) = -1;
{false},
[0xC7, [false, false, false]], false] call CBA_fnc_addKeybind; //Home Key
["ACE3 Equipment", QGVAR(closeDevice), (localize "STR_ACE_Common_closeHandheldDevice"), {
["ACE3 Equipment", QGVAR(closeDevice), LLSTRING(closeHandheldDevice), {
[] call FUNC(deviceKeyFindValidIndex);
if (GVAR(deviceKeyCurrentIndex) == -1) exitWith {false};
[] call ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 4);
@ -483,7 +484,7 @@ GVAR(deviceKeyCurrentIndex) = -1;
{false},
[0xC7, [false, true, false]], false] call CBA_fnc_addKeybind; //CTRL + Home Key
["ACE3 Equipment", QGVAR(cycleDevice), (localize "STR_ACE_Common_cycleHandheldDevices"), {
["ACE3 Equipment", QGVAR(cycleDevice), LLSTRING(cycleHandheldDevices), {
[1] call FUNC(deviceKeyFindValidIndex);
if (GVAR(deviceKeyCurrentIndex) == -1) exitWith {false};
private _displayName = ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 0);

View File

@ -10,7 +10,7 @@ class CfgPatches {
author = CSTRING(ACETeam);
authors[] = {"KoffeinFlummi"};
url = ECSTRING(main,URL);
VERSION_CONFIG_COMMON;
VERSION_CONFIG;
};
};
@ -67,9 +67,7 @@ class ACE_Rsc_Control_Base {
#include "CompassControl.hpp"
#include "CfgUIGrids.hpp"
class ACE_Extensions {
extensions[] = {};
};
class ACE_Extensions {};
class ACE_Tests {
vehicleTransportInventory = QPATHTOF(dev\test_vehicleInventory.sqf);

View File

@ -1,12 +1,12 @@
#include "script_component.hpp"
/*
* Author: PabstMirror
* Gets arithmetic result from a set.
* Returns the arithmetic result of performing the given operation on a set.
*
* Arguments:
* 0: Namespace <OBJECT><LOCATION><MISSIONNAMESPACE>
* 0: Namespace <OBJECT|LOCATION|NAMESPACE>
* 1: Number Set ID <STRING>
* 2: Operation (sum, product, min, max, avg) (Case Sensitive) <STRING>
* 2: Operation (max, min, sum, product, avg) (Case Sensitive) <STRING>
*
* Return Value:
* Value <NUMBER>
@ -18,51 +18,44 @@
* Public: Yes
*/
params ["_namespace", "_setID", "_op"];
TRACE_3("arithmeticGetResult",_namespace,_setID,_op);
params ["_namespace", "_setID", "_operation"];
TRACE_3("arithmeticGetResult",_namespace,_setID,_operation);
private _data = (_namespace getVariable _setID) param [2, []];
private _data = (_namespace getVariable _setID) param [2, [{0}]];
switch (_op) do {
case ("max"): {
private _result = -1e99;
{
_result = _result max (call _x);
nil
} count _data;
_result // return
switch (_operation) do {
case "max": {
selectMax (_data apply {call _x})
};
case ("sum"): {
case "min": {
selectMin (_data apply {call _x})
};
case "sum": {
private _result = 0;
{
_result = _result + (call _x);
nil
} count _data;
_result // return
_result = _result + call _x;
} forEach _data;
_result
};
case ("product"): {
case "product": {
private _result = 1;
{
_result = _result * (call _x);
nil
} count _data;
_result // return
_result = _result * call _x;
} forEach _data;
_result
};
case ("min"): {
private _result = 1e99;
{
_result = _result min (call _x);
nil
} count _data;
_result // return
};
case ("avg"): {
case "avg": {
private _result = 0;
{
_result = _result + (call _x);
nil
} count _data;
_result / (count _data); // return
_result = _result + call _x;
} forEach _data;
_result / count _data
};
default {3735928559};
};

View File

@ -4,7 +4,7 @@
* Adds or removes a source to an arithmetic set.
*
* Arguments:
* 0: Namespace <OBJECT><LOCATION><MISSIONNAMESPACE>
* 0: Namespace <OBJECT|LOCATION|NAMESPACE>
* 1: Number Set ID <STRING>
* 2: Source <STRING>
* 3: Code that returns a number (can access var _namespace) [use {} to remove] <CODE>
@ -20,13 +20,15 @@
*/
params ["_namespace", "_setID", "_source", "_variable"];
TRACE_4("params",_namespace,_setID,_source,_variable);
TRACE_4("arithmeticSetSource",_namespace,_setID,_source,_variable);
private _hash = _namespace getVariable _setID;
if (isNil "_hash") then {
_hash = [] call CBA_fnc_hashCreate;
_namespace setVariable [_setID, _hash];
};
if (_variable isEqualTo {}) then {
TRACE_1("removing",_source);
[_hash, _source] call CBA_fnc_hashRem;

View File

@ -21,6 +21,9 @@ LOG("Adding ACE_Settings to CBA_settings");
GVAR(cbaSettings_forcedSettings) = [];
GVAR(cbaSettings_missionSettings) = [];
GVAR(settings) = []; // will stay empty - for BWC?
#ifdef DEBUG_MODE_FULL
GVAR(settingsMovedToSQF) = [];
#endif
// Add Event Handlers:
[QGVAR(setSetting), {
@ -66,6 +69,13 @@ GVAR(settings) = []; // will stay empty - for BWC?
false
} count GVAR(runAtSettingsInitialized);
GVAR(runAtSettingsInitialized) = nil; //cleanup
#ifdef DEBUG_MODE_FULL
INFO_1("checking settingsMovedToSQF [%1]",count GVAR(settingsMovedToSQF));
{
if (isNil _x) then { WARNING_1("setting [%1] NOT moved to sqf",_x); };
} forEach GVAR(settingsMovedToSQF);
#endif
}] call CBA_fnc_addEventHandler;
private _start = diag_tickTime;
@ -81,6 +91,10 @@ for "_index" from 0 to (_countOptions - 1) do {
} else {
WARNING_1("Setting [%1] - Already defined from somewhere else??",_varName);
};
#ifdef DEBUG_MODE_FULL
} else {
GVAR(settingsMovedToSQF) pushBack configName _optionEntry;
#endif
};
};

View File

@ -67,38 +67,43 @@ if (!(_oldCompats isEqualTo [])) then {
};
///////////////
// check dlls
// check extensions
///////////////
if (toLower (productVersion select 6) in ["linux", "osx"]) then {
INFO("Operating system does not support DLL file format");
private _platform = toLower (productVersion select 6);
if (!isServer && {_platform in ["linux", "osx"]}) then {
// Linux and OSX client ports do not support extensions at all
INFO("Operating system does not support extensions");
} else {
{
private _versionEx = _x callExtension "version";
private _extension = configName _x;
private _isWindows = _platform == "windows" && {getNumber (_x >> "windows") == 1};
private _isLinux = _platform == "linux" && {getNumber (_x >> "linux") == 1};
private _isClient = hasInterface && {getNumber (_x >> "client") == 1};
private _isServer = !hasInterface && {getNumber (_x >> "server") == 1};
if (_versionEx == "") then {
private _extension = ".dll";
if ((_isWindows || _isLinux) && {_isClient || _isServer}) then {
private _versionEx = _extension callExtension "version";
if (_versionEx == "") then {
private _extensionFile = _extension;
if (productVersion select 7 == "x64") then {
_extensionFile = format ["%1_x64", _extensionFile];
};
if (productVersion select 7 == "x64") then {
_extension = "_x64.dll";
private _platformExt = [".dll", ".so"] select (_platform == "linux");
_extensionFile = format ["%1%2", _extensionFile, _platformExt];
private _errorMsg = format ["Extension %1 not found.", _extensionFile];
ERROR(_errorMsg);
if (hasInterface) then {
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
} else {
// Print the current extension version
INFO_2("Extension version: %1: %2",_extension,_versionEx);
};
if (productVersion select 6 == "Linux") then {
_extension = ".so";
};
private _errorMsg = format ["Extension %1%2 not found.", _x, _extension];
ERROR(_errorMsg);
if (hasInterface) then {
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
} else {
// Print the current extension version
INFO_2("Extension version: %1: %2",_x,_versionEx);
};
false
} count getArray (configFile >> "ACE_Extensions" >> "extensions");
} forEach ("true" configClasses (configFile >> "ACE_Extensions"));
};
///////////////

View File

@ -30,7 +30,7 @@ _target setVariable [QGVAR(owner), _unit, true];
// lock target object
if (_lockTarget) then {
private _canBeDisassembled = !([] isEqualTo getArray (_target call CBA_fnc_getObjectConfig >> "assembleInfo" >> "dissasembleTo"));
private _canBeDisassembled = !([] isEqualTo getArray (_target call CBA_fnc_getObjectConfig >> "assembleInfo" >> "dissasembleTo")) && { !([false, true] select (_target getVariable [QEGVAR(csw,assemblyMode), 0])) };
if (!isNull _unit) then {
[QGVAR(lockVehicle), _target, _target] call CBA_fnc_targetEvent;
if (_canBeDisassembled) then {

View File

@ -0,0 +1,57 @@
#include "script_component.hpp"
/*
* Author: commy2, PabstMirror
* Unit claims the ownership over an object. This is used to prevent multiple players from draging the same ammo box or using up the same wheel when repairing etc.
* This function only runs on the server and handles the "ace_common_claimSafe" event. It provides a network safe way claiming objects as all claims are run on server.
* Return event is passed [_unit, _target, _success] for new claims, no event on claim release
*
* Arguments:
* 0: Unit that claims another object. ObjNull to remove claim. <OBJECT>
* 1: The object that gets claimed. <OBJECT>
* 2: Lock the claimed object aswell? (optional: false) <BOOL>
* 3: Target event to trigger for calling machine (called where _unit is local) <STRING>
*
* Return Value:
* None
*
* Example:
* [bob, flag, true, "claimReturn"] call ace_common_fnc_claimSafeServer
*
* Public: Yes
*/
params ["_unit", "_target", ["_lockTarget", false], ["_returnEvent", ""]];
private _owner = _target getVariable [QGVAR(owner), objNull];
TRACE_4("claimSafeServer",_unit,_target,_returnEvent,_owner);
if (!isNull _owner && {!isNull _unit} && {_unit != _owner}) exitWith {
WARNING_1("Claiming already owned object. - %1",_this);
if (_returnEvent == "") exitWith {};
[_returnEvent, [_unit, _target, false], _unit] call CBA_fnc_targetEvent;
};
// transfer this immediately
_target setVariable [QGVAR(owner), _unit, true];
// lock target object
if (_lockTarget) then {
private _canBeDisassembled = !([] isEqualTo getArray (_target call CBA_fnc_getObjectConfig >> "assembleInfo" >> "dissasembleTo")) && { !([false, true] select (_target getVariable [QEGVAR(csw,assemblyMode), 0])) };
if (!isNull _unit) then {
[QGVAR(lockVehicle), _target, _target] call CBA_fnc_targetEvent;
if (_canBeDisassembled) then {
_target enableWeaponDisassembly false;
};
} else {
[QGVAR(unlockVehicle), _target, _target] call CBA_fnc_targetEvent;
if (_canBeDisassembled) then {
_target enableWeaponDisassembly true;
};
};
};
if (!isNull _unit) then {
TRACE_2("claim success",_unit,_target);
if (_returnEvent == "") exitWith {};
[_returnEvent, [_unit, _target, true], _unit] call CBA_fnc_targetEvent;
};

View File

@ -16,6 +16,7 @@
*/
params ["_state"];
TRACE_1("disableUserInput",_state);
if (_state) then {
disableSerialization;
@ -81,7 +82,7 @@ if (_state) then {
openMap true;
};
if (isServer || {serverCommandAvailable "#kick"} || {player getVariable ["ACE_isUnconscious", false] && {(call FUNC(player)) getVariable [QEGVAR(medical,AllowChatWhileUnconscious), missionNamespace getVariable [QEGVAR(medical,AllowChatWhileUnconscious), false]]}}) then {
if (isServer || {serverCommandAvailable "#kick"}) then {
if (!(_key in (actionKeys "DefaultAction" + actionKeys "Throw")) && {_key in (actionKeys "Chat" + actionKeys "PrevChannel" + actionKeys "NextChannel")}) then {
_key = 0;
};

View File

@ -1,7 +1,7 @@
#include "script_component.hpp"
/*
* Author: Ruthberg
* Returns the the first intersection with terrain between two positions. @todo rewrite using lineIntersectsSurfaces?
* Returns the the first intersection with terrain between two positions.
*
* Arguments:
* 0: PositionASL <ARRAY>
@ -18,31 +18,14 @@
* Public: Yes
*/
params ["_source", "_destination", "_accuracy"];
params ["_source", "_destination"];
private _result = [false, [0, 0, 0]];
private _distance = _source vectorDistance _destination;
if !(lineIntersectsWith [_source, _destination] isEqualTo []) then {
private _lower = 0;
private _upper = 1;
private _mid = 0.5;
private _dir = _source vectorFromTo _destination;
while {(_upper - _lower) * _distance > _accuracy} do {
_mid = _lower + (_upper - _lower) / 2;
if !(lineIntersectsWith [_source, _source vectorAdd (_dir vectorMultiply (_mid * _distance))] isEqualTo []) then {
_upper = _mid;
} else {
_lower = _mid;
};
private _hits = lineIntersectsSurfaces [_source, _destination, objNull, objNull, true, -1];
{
_x params ["_pos", "", "_obj"];
if (!isNull _obj) exitWith {
_result = [true, _pos];
};
_mid = _lower + (_upper - _lower) / 2;
_result = [true, _source vectorAdd (_dir vectorMultiply (_mid * _distance))];
};
} forEach _hits;
_result

View File

@ -13,11 +13,11 @@
* is the unit an EOD <BOOL>
*
* Example:
* isSpecialist = [player] call FUNC(isEOD);
* [player] call ace_common_fnc_isEOD
*
* Public: Yes
*/
params ["_unit"];
_unit getVariable ["ACE_isEOD", _unit getUnitTrait "explosiveSpecialist"] // return
(_unit getVariable ["ACE_isEOD", _unit getUnitTrait "explosiveSpecialist"]) in [1, true]

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