Merge branch 'master' into medical-rewrite

This commit is contained in:
PabstMirror 2017-05-06 12:01:58 -05:00
commit 31a81c4407
32 changed files with 250 additions and 155 deletions

View File

@ -1,28 +0,0 @@
/*
* Documentation:
* https://community.bistudio.com/wiki/AI_Sub-skills
*
* The idea here is to reduce the AI's godlike aiming
* capabilties while retaining it's high intelligence.
* The AI should be smart enough to move through a town,
* but also be 'human' in their reaction time and aim.
*
* Note: All these values can still be adjusted via
* scripts, these arrays just change what 0 & 1
* are for setSkill.
*/
class CfgAISkill {
aimingAccuracy[] = {0,0, 1,0.8}; // {0,0,1,1}; v1.26 defaults
aimingShake[] = {0,0, 1,0.6}; // {0,0,1,1};
aimingSpeed[] = {0,0, 1,0.7}; // {0,0.5,1,1};
commanding[] = {0,0, 1,0.8}; // {0,0,1,1};
courage[] = {0,0, 1,0.7}; // {0,0,1,1};
endurance[] = {0,0, 1,0.7}; // {0,0,1,1};
general[] = {0,0, 1,0.9}; // {0,0,1,1};
// apparently breaks rapid firing in single fire mode for players
//reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4};
spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7};
};

View File

@ -1,7 +1,7 @@
ace_ai
======
Minor changes of AI skill and overhaul of AI firing modes of vanilla weapons, encouraging the AI to use full-auto and bursts more often.
Overhaul of AI firing modes of vanilla weapons, encouraging the AI to use full-auto and bursts more often.
## Maintainers

View File

@ -14,5 +14,4 @@ class CfgPatches {
};
};
#include "CfgAISkill.hpp"
#include "CfgWeapons.hpp"

View File

@ -12,7 +12,7 @@
<Italian>Attacca l'oggetto</Italian>
<Hungarian>Tárgy hozzácsatolása</Hungarian>
<Russian>Прикрепить предмет</Russian>
<Japanese>&amp;gt;&amp;gt; アイテムを取り付ける</Japanese>
<Japanese>アイテムを取り付ける</Japanese>
<Korean>물건 부착</Korean>
</Key>
<Key ID="STR_ACE_Attach_Attach">
@ -222,7 +222,7 @@
<Italian>%1&lt;br/&gt;attaccata</Italian>
<Hungarian>%1&lt;br/&gt;hozzácsatolva</Hungarian>
<Russian>%1&lt;br/&gt;присоединен(-а)</Russian>
<Japanese>%1&amp;lt;br/&amp;gt; を取り付けた</Japanese>
<Japanese>%1&lt;br/&gt;を取り付けた</Japanese>
<Korean>%1&lt;br/&gt;부착됨</Korean>
</Key>
<Key ID="STR_ACE_Attach_Item_Detached">
@ -236,7 +236,7 @@
<Italian>%1&lt;br/&gt;staccata</Italian>
<Hungarian>%1&lt;br/&gt;lecsatolva</Hungarian>
<Russian>%1&lt;br/&gt;отсоединен(-а)</Russian>
<Japanese>%1&amp;lt;br/&amp;gt; を外した</Japanese>
<Japanese>%1&lt;br/&gt;を外した</Japanese>
<Korean>%1&lt;br/&gt;분리됨</Korean>
</Key>
</Package>

View File

@ -6,4 +6,11 @@ class ACE_Settings {
value = 1;
category = ECSTRING(OptionsMenu,CategoryLogistics);
};
class GVAR(paradropTimeCoefficent) {
displayName = CSTRING(paradropTimeCoefficent);
description = CSTRING(paradropTimeCoefficent_description);
typeName = "SCALAR";
value = 2.5;
category = ECSTRING(OptionsMenu,CategoryLogistics);
};
};

View File

@ -26,6 +26,12 @@ class CfgVehicles {
typeName = "BOOL";
defaultValue = 1;
};
class paradropTimeCoefficent {
displayName = CSTRING(paradropTimeCoefficent);
description = CSTRING(paradropTimeCoefficent_description);
typeName = "SCALAR";
defaultValue = 2.5;
};
};
class ModuleDescription {

View File

@ -24,5 +24,6 @@ params ["_logic", "", "_activated"];
if (!_activated) exitWith {};
[_logic, QGVAR(enable), "enable"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(paradropTimeCoefficent), "paradropTimeCoefficent"] call EFUNC(common,readSettingFromModule);
INFO("Cargo Module Initialized.");

View File

@ -44,7 +44,13 @@ if (GVAR(interactionParadrop)) then {
lbClear _ctrl;
{
private _class = if (_x isEqualType "") then {_x} else {typeOf _x};
_ctrl lbAdd (getText(configfile >> "CfgVehicles" >> _class >> "displayName"));
private _displayName = getText (configfile >> "CfgVehicles" >> _class >> "displayName");
if (GVAR(interactionParadrop)) then {
_ctrl lbAdd format ["%1 (%2s)", _displayName, GVAR(paradropTimeCoefficent) * ([_class] call FUNC(getSizeItem))];
} else {
_ctrl lbAdd _displayName;
};
true
} count _loaded;

View File

@ -90,6 +90,15 @@ _itemObject setVelocity ((velocity _vehicle) vectorAdd ((vectorNormalized (vecto
}, 1, [_itemObject]] call CBA_fnc_addPerFrameHandler;
[
[
LSTRING(UnloadedItem),
getText (configFile >> "CfgVehicles" >> typeOf _itemObject >> "displayName"),
getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName")
],
3
] call EFUNC(common,displayTextStructured);
// Invoke listenable event
["ace_cargoUnloaded", [_item, _vehicle, "paradrop"]] call CBA_fnc_globalEvent;

View File

@ -28,13 +28,18 @@ private _ctrl = _display displayCtrl 100;
private _selected = (lbCurSel _ctrl) max 0;
if (count _loaded <= _selected) exitWith {};
private _item = _loaded select _selected; //This can be an object or a classname string
private _item = _loaded select _selected; // This can be an object or a classname string
if (GVAR(interactionParadrop)) exitWith {
// If drop time is 0 don't show a progress bar
if (GVAR(paradropTimeCoefficent) == 0) exitWith {
[QGVAR(paradropItem), [_item, GVAR(interactionVehicle)]] call CBA_fnc_localEvent;
};
// Start progress bar - paradrop
private _size = [_item] call FUNC(getSizeItem);
[
2.5 * _size,
GVAR(paradropTimeCoefficent) * _size,
[_item, GVAR(interactionVehicle), ACE_player],
{
(_this select 0) params ["_item", "_target", "_player"];

View File

@ -63,7 +63,7 @@
<Spanish>Espacio de carga restante: %1</Spanish>
<Italian>Spazio cargo rimanente: %1</Italian>
<French>Espace de cargaison restant : %1</French>
<Japanese>カーゴの空き容量: %1</Japanese>
<Japanese>カーゴの空き容量: %1</Japanese>
<Korean>선적 공간 남음: %1</Korean>
</Key>
<Key ID="STR_ACE_Cargo_ModuleSettings_enable">
@ -129,7 +129,7 @@
<Italian>%1&lt;br/&gt;caricato su&lt;br/&gt;%2</Italian>
<Hungarian>%1&lt;br/&gt;berakodva ide:&lt;br/&gt;%2</Hungarian>
<Russian>%1&lt;br/&gt;загружен в&lt;br/&gt;%2</Russian>
<Japanese>%1&amp;lt;br/&amp;gt; は &amp;lt;br/&amp;gt;%2 へ積み込まれた</Japanese>
<Japanese>%1&lt;br/&gt;&lt;br/&gt;%2へ積み込まれた</Japanese>
<Korean>%1&lt;br/&gt;&lt;br/&gt;%2 에 실림</Korean>
</Key>
<Key ID="STR_ACE_Cargo_UnloadedItem">
@ -143,7 +143,7 @@
<Italian>Hai scaricato&lt;br/&gt;%1 da&lt;br/&gt;%2</Italian>
<Hungarian>1%&lt;br/&gt;kirakodva ebből:&lt;br/&gt;%2</Hungarian>
<Russian>%1&lt;br/&gt;разгружен из&lt;br/&gt;%2</Russian>
<Japanese>&amp;lt;br/&amp;gt;%2 から &amp;lt;br/&amp;gt;%1 が下ろされた</Japanese>
<Japanese>&lt;br/&gt;%1が&lt;br/&gt;%2から降ろされた</Japanese>
<Korean>%1&lt;br/&gt;&lt;br/&gt;%2 에서 내려짐</Korean>
</Key>
<Key ID="STR_ACE_Cargo_LoadingItem">
@ -169,7 +169,7 @@
<Italian>Scaricando</Italian>
<Spanish>Descargando</Spanish>
<French>Déchargement de la cargaison</French>
<Japanese>カーゴからろしている</Japanese>
<Japanese>カーゴからろしている</Japanese>
<Korean>화물 내리기</Korean>
</Key>
<Key ID="STR_ACE_Cargo_LoadingFailed">
@ -182,7 +182,7 @@
<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>
<Japanese>%1&amp;lt;br/&amp;gt;は積み込めなかった</Japanese>
<Japanese>%1&lt;br/&gt;は積み込めなかった</Japanese>
<Korean>%1&lt;br/&gt;이 실릴 수가 없습니다</Korean>
</Key>
<Key ID="STR_ACE_Cargo_UnloadingFailed">
@ -195,7 +195,7 @@
<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>
<Japanese>%1&amp;lt;br/&amp;gt;は下ろせなかった</Japanese>
<Japanese>%1&lt;br/&gt;は降ろせなかった</Japanese>
<Korean>%1&lt;br/&gt;이 내려질 수가 없습니다</Korean>
</Key>
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
@ -253,5 +253,13 @@
<Korean>기체가 수평이 아닙니다</Korean>
<French>Rétablir l'assiette</French>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent">
<English>Paradrop Time Coffecient</English>
<Japanese>空中投下までの時間係数</Japanese>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
<English>Modifier for how long it takes to paradrop a cargo item.</English>
<Japanese>カーゴ アイテムを空中投下するまでの時間を変更します。</Japanese>
</Key>
</Package>
</Project>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Chemlights">
<Key ID="STR_ACE_Chemlights_Action_Chemlights">
@ -19,7 +19,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare_Done">
<English>%1&lt;br/&gt;Prepared</English>
<Japanese>%1&amp;lt;br/&amp;gt; をつかった</Japanese>
<Japanese>%1&lt;br/&gt;をつかった</Japanese>
<Polish>%1&lt;br/&gt;Przygotowany</Polish>
<German>%1&lt;br/&gt;vorbereitet</German>
<Korean>%1&lt;br/&gt;준비됨</Korean>
@ -65,7 +65,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DescriptionShort">
<English>Type: Light - Orange&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - オレンジ&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - オレンジ&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - pomarańczowe&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - orange&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류:밝은 오렌지&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>
@ -89,7 +89,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_White_DescriptionShort">
<English>Type: Light - White&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 白&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 白&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - białe&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - weiß&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류:하얀색&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>
@ -113,7 +113,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DescriptionShort">
<English>Type: Light - Red Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 高輝度 赤 (5分間)&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 高輝度 赤 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe czerwone (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - rot, hell (5 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류: 밝은 빨간색 (5분)&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>
@ -137,7 +137,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DescriptionShort">
<English>Type: Light - Yellow Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 高輝度 黄 (5分間)&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 高輝度 黄 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe żółte (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - gelb, hell (5 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류:밝은 노란색 (5분)&lt;br /&gt;수량: 1&lt;br /&gt;사용처: Hand</Korean>
@ -161,7 +161,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_HiOrange_DescriptionShort">
<English>Type: Light - Orange Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 高輝度 オレンジ (5分間)&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 高輝度 オレンジ (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe pomarańczowe (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - orange, hell (5 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류: 밝은 주황색 (5분)&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>
@ -185,7 +185,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DescriptionShort">
<English>Type: Light - White Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 高輝度 白 (5分間)&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 高輝度 白 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - jaskrawe białe (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - weiß, hell (5 Minuten)&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류: 밝은 하얀색 (5분)&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>
@ -209,7 +209,7 @@
</Key>
<Key ID="STR_ACE_Chemlights_IR_DescriptionShort">
<English>Type: Light - Infrared&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Japanese>種類: 照明 - 赤外線&amp;lt;br /&amp;gt;装填数: 1&amp;lt;br /&amp;gt;次で使用: 携帯</Japanese>
<Japanese>種類: 照明 - 赤外線&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
<Polish>Typ: Światło - podczerwone&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<German>Typ: Licht - infrarot&lt;br /&gt;Anzahl: 1&lt;br /&gt;Benutzt in: Hand</German>
<Korean>종류: 적외선&lt;br /&gt;수량: 1&lt;br /&gt;사용처: 손</Korean>

View File

@ -83,7 +83,7 @@
<Portuguese>N</Portuguese>
<Hungarian>É</Hungarian>
<Italian>N</Italian>
<Japanese>N</Japanese>
<Japanese></Japanese>
<Korean></Korean>
</Key>
<Key ID="STR_ACE_Common_NNE">
@ -97,7 +97,7 @@
<Portuguese>NNE</Portuguese>
<Hungarian>ÉÉK</Hungarian>
<Italian>NNE</Italian>
<Japanese>NNE</Japanese>
<Japanese>北北東</Japanese>
<Korean>북북동</Korean>
</Key>
<Key ID="STR_ACE_Common_NE">
@ -111,7 +111,7 @@
<Portuguese>NE</Portuguese>
<Hungarian>ÉK</Hungarian>
<Italian>NE</Italian>
<Japanese>NE</Japanese>
<Japanese>北東</Japanese>
<Korean>북동</Korean>
</Key>
<Key ID="STR_ACE_Common_ENE">
@ -125,7 +125,7 @@
<Portuguese>LNE</Portuguese>
<Hungarian>KÉK</Hungarian>
<Italian>ENE</Italian>
<Japanese>ENE</Japanese>
<Japanese>東北東</Japanese>
<Korean>동북동</Korean>
</Key>
<Key ID="STR_ACE_Common_E">
@ -139,7 +139,7 @@
<Portuguese>L</Portuguese>
<Hungarian>K</Hungarian>
<Italian>E</Italian>
<Japanese>E</Japanese>
<Japanese></Japanese>
<Korean></Korean>
</Key>
<Key ID="STR_ACE_Common_ESE">
@ -153,7 +153,7 @@
<Portuguese>LSE</Portuguese>
<Hungarian>KDK</Hungarian>
<Italian>ESE</Italian>
<Japanese>ESE</Japanese>
<Japanese>東南東</Japanese>
<Korean>동남동</Korean>
</Key>
<Key ID="STR_ACE_Common_SE">
@ -167,7 +167,7 @@
<Portuguese>SE</Portuguese>
<Hungarian>DK</Hungarian>
<Italian>SE</Italian>
<Japanese>SE</Japanese>
<Japanese>南東</Japanese>
<Korean>남동</Korean>
</Key>
<Key ID="STR_ACE_Common_SSE">
@ -181,7 +181,7 @@
<Portuguese>SSE</Portuguese>
<Hungarian>DDK</Hungarian>
<Italian>SSE</Italian>
<Japanese>SSE</Japanese>
<Japanese>南南東</Japanese>
<Korean>남남동</Korean>
</Key>
<Key ID="STR_ACE_Common_S">
@ -195,7 +195,7 @@
<Portuguese>S</Portuguese>
<Hungarian>D</Hungarian>
<Italian>S</Italian>
<Japanese>S</Japanese>
<Japanese></Japanese>
<Korean></Korean>
</Key>
<Key ID="STR_ACE_Common_SSW">
@ -209,7 +209,7 @@
<Portuguese>SSO</Portuguese>
<Hungarian>DDNy</Hungarian>
<Italian>SSO</Italian>
<Japanese>SSW</Japanese>
<Japanese>南南西</Japanese>
<Korean>남남서</Korean>
</Key>
<Key ID="STR_ACE_Common_SW">
@ -223,7 +223,7 @@
<Portuguese>SO</Portuguese>
<Hungarian>DNy</Hungarian>
<Italian>SO</Italian>
<Japanese>SW</Japanese>
<Japanese>南西</Japanese>
<Korean>남서</Korean>
</Key>
<Key ID="STR_ACE_Common_WSW">
@ -237,7 +237,7 @@
<Portuguese>OSO</Portuguese>
<Hungarian>NyDNy</Hungarian>
<Italian>OSO</Italian>
<Japanese>WSW</Japanese>
<Japanese>西南西</Japanese>
<Korean>서남서</Korean>
</Key>
<Key ID="STR_ACE_Common_W">
@ -251,7 +251,7 @@
<Portuguese>O</Portuguese>
<Hungarian>Ny</Hungarian>
<Italian>O</Italian>
<Japanese>W</Japanese>
<Japanese>西</Japanese>
<Korean></Korean>
</Key>
<Key ID="STR_ACE_Common_WNW">
@ -265,7 +265,7 @@
<Portuguese>ONO</Portuguese>
<Hungarian>NyÉNy</Hungarian>
<Italian>ONO</Italian>
<Japanese>WNW</Japanese>
<Japanese>北北西</Japanese>
<Korean>서북서</Korean>
</Key>
<Key ID="STR_ACE_Common_NW">
@ -279,7 +279,7 @@
<Portuguese>NO</Portuguese>
<Hungarian>ÉNy</Hungarian>
<Italian>NO</Italian>
<Japanese>NW</Japanese>
<Japanese>北西</Japanese>
<Korean>북서</Korean>
</Key>
<Key ID="STR_ACE_Common_NNW">
@ -293,7 +293,7 @@
<Portuguese>NNO</Portuguese>
<Hungarian>ÉÉNy</Hungarian>
<Italian>NNO</Italian>
<Japanese>NNW</Japanese>
<Japanese>北北西</Japanese>
<Korean>북북서</Korean>
</Key>
<Key ID="STR_ACE_Common_ActionAborted">
@ -1016,6 +1016,20 @@
<Portuguese>Sem espaço para descarregar</Portuguese>
<Russian>Нет места для выгрузки</Russian>
<Japanese>降ろすための空間がありません</Japanese>
</Key>
<Key ID="STR_ACE_Common_KeybindToggle">
<English>Toggle</English>
<Polish>переключить</Polish>
<Russian>переключить</Russian>
<French>Basculer</French>
<Spanish>Cambiar</Spanish>
<Italian>camb.</Italian>
<German>Umschalten</German>
<Hungarian>pecek</Hungarian>
<Czech>přep.</Czech>
<Portuguese>alternar</Portuguese>
<Japanese>トグル</Japanese>
<Korean>토글</Korean>
</Key>
</Package>
</Project>

View File

@ -42,6 +42,27 @@ GVAR(ParsedTextCached) = [];
[219, [false, true, false]], false] call CBA_fnc_addKeybind; //Left Windows Key + Ctrl/Strg
["ACE3 Common", QGVAR(InteractKey_Toggle),
format ["%1 (%2)", (localize LSTRING(InteractKey)), localize ELSTRING(common,KeybindToggle)],
{
if (GVAR(openedMenuType) != 0) then {
[0] call FUNC(keyDown)
} else {
[0,false] call FUNC(keyUp)
};
}, {}, [-1, [false, false, false]], false] call CBA_fnc_addKeybind; // UNBOUND
["ACE3 Common", QGVAR(SelfInteractKey_Toggle),
format ["%1 (%2)", (localize LSTRING(SelfInteractKey)), localize ELSTRING(common,KeybindToggle)],
{
if (GVAR(openedMenuType) != 1) then {
[1] call FUNC(keyDown)
} else {
[1, false] call FUNC(keyUp)
};
}, {}, [-1, [false, false, false]], false] call CBA_fnc_addKeybind; // UNBOUND
// Listens for the falling unconscious event, just in case the menu needs to be closed
["ace_unconscious", {
// If no menu is open just quit

View File

@ -54,7 +54,7 @@
<Russian>&lt;t color='#9cf953'&gt;Использовать: &lt;/t&gt;ВКЛ/ВЫКЛ лазер</Russian>
<Spanish>&lt;t color='#9cf953'&gt;Usar: &lt;/t&gt;Encender/Apagar láser</Spanish>
<Hungarian>&lt;t color='#9cf953'&gt;Használat: &lt;/t&gt;Lézer BE/KI kapcsolása</Hungarian>
<Japanese>&amp;lt;t color='#9cf953'&amp;gt;つかう: &amp;lt;/t&amp;gt;レーザの起動/停止</Japanese>
<Japanese>&lt;t color='#9cf953'&gt;つかう: &lt;/t&gt;レーザの起動/停止</Japanese>
<Korean>&lt;t color='#9cf953'&gt;사용키: &lt;/t&gt;레이저 켜기/끄기</Korean>
</Key>
<Key ID="STR_ACE_Laserpointer_Laser">

View File

@ -388,7 +388,7 @@
<Hungarian>Zárókötszer</Hungarian>
<Italian>Bendaggio rapido</Italian>
<Portuguese>Curativo de Campo</Portuguese>
<Japanese>フィールド ドレッシング</Japanese>
<Japanese>緊急圧迫包帯</Japanese>
<Korean>필드 드레싱</Korean>
</Key>
<Key ID="STR_ACE_Medical_Actions_PackingBandage">
@ -402,7 +402,7 @@
<French>Bande extensible</French>
<Portuguese>Bandagem de Compressão</Portuguese>
<Czech>Obvaz Tlakový</Czech>
<Japanese>パッキング バンテージ</Japanese>
<Japanese>弾性包帯</Japanese>
<Korean>거즈 붕대</Korean>
</Key>
<Key ID="STR_ACE_Medical_Actions_ElasticBandage">
@ -416,7 +416,7 @@
<Hungarian>Rögzitő kötszer</Hungarian>
<Italian>Bendaggio elastico</Italian>
<Portuguese>Bandagem Elástica</Portuguese>
<Japanese>エラスティック バンテージ</Japanese>
<Japanese>伸縮包帯</Japanese>
<Korean>압박 붕대</Korean>
</Key>
<Key ID="STR_ACE_Medical_Actions_QuikClot">
@ -430,7 +430,7 @@
<Hungarian>QuikClot</Hungarian>
<Italian>QuikClot (polvere emostatica)</Italian>
<Portuguese>QuikClot</Portuguese>
<Japanese>クイック クロット</Japanese>
<Japanese>クイッククロット</Japanese>
<Korean>퀵 클롯</Korean>
</Key>
<Key ID="STR_ACE_Medical_Actions_CheckPulse">
@ -914,7 +914,7 @@
<Hungarian>Kötszer (Általános)</Hungarian>
<Italian>Bendaggio (base)</Italian>
<Portuguese>Bandagem(Básico)</Portuguese>
<Japanese>包帯 (ベーシック)</Japanese>
<Japanese>包帯 (緊急圧迫)</Japanese>
<Korean>붕대 (기본)</Korean>
</Key>
<Key ID="STR_ACE_Medical_Bandage_Basic_Desc_Short">
@ -956,7 +956,7 @@
<Italian>Bendaggio compressivo</Italian>
<Portuguese>Bandagem de Compressão</Portuguese>
<Czech>Obvaz (Tlakový)</Czech>
<Japanese>パッキング バンテージ</Japanese>
<Japanese>弾性包帯</Japanese>
<Korean>거즈 붕대</Korean>
</Key>
<Key ID="STR_ACE_Medical_Packing_Bandage_Desc_Short">
@ -970,7 +970,7 @@
<Italian>Usato su ferite medie o larghe per fermare emorragie.</Italian>
<Portuguese>Usado para o preenchimento de cavidades geradas por ferimentos médios e grandes e estancar o sangramento.</Portuguese>
<Czech>Používá se k zastavení středních až silnějších krvácení</Czech>
<Japanese>パッキングは粘着フィルム状で、普通から大きめなケガにつかい止血します。</Japanese>
<Japanese>弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。</Japanese>
<Korean>중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다</Korean>
</Key>
<Key ID="STR_ACE_Medical_Packing_Bandage_Desc_Use">
@ -998,7 +998,7 @@
<Hungarian>Rögzító kötszer</Hungarian>
<Italian>Benda (elastica)</Italian>
<Portuguese>Bandagem (Elástica)</Portuguese>
<Japanese>包帯 (エラスティック)</Japanese>
<Japanese>包帯 (伸縮)</Japanese>
<Korean>붕대 (압박)</Korean>
</Key>
<Key ID="STR_ACE_Medical_Bandage_Elastic_Desc_Short">
@ -1012,7 +1012,7 @@
<Italian>Kit di bendaggio, elastico</Italian>
<Portuguese>Kit de Bandagem, Elástica</Portuguese>
<Czech>Sada obvazů, Elastická</Czech>
<Japanese>包帯キット (エラスティック)</Japanese>
<Japanese>包帯キット (伸縮)</Japanese>
<Korean>붕대, 압박</Korean>
</Key>
<Key ID="STR_ACE_Medical_Bandage_Elastic_Desc_Use">
@ -1457,7 +1457,7 @@
<Italian>Bendaggio emostatico (QuikClot)</Italian>
<Portuguese>Bandagem básica (Coagulante)</Portuguese>
<Czech>Hemostatický obvaz (QuikClot)</Czech>
<Japanese>ベーシック フィールド ドレッシング(クイック クロット)</Japanese>
<Japanese>緊急圧迫止血包帯 (クイッククロット)</Japanese>
<Korean>필드 드레싱 (퀵 클롯)</Korean>
</Key>
<Key ID="STR_ACE_Medical_QuikClot_Desc_Short">
@ -1471,7 +1471,7 @@
<Italian>Bendaggio emostatico (QuikClot)</Italian>
<Portuguese>Bandagem com agente coagulante</Portuguese>
<Czech>Hemostatický obvaz (QuikClot)</Czech>
<Japanese>クイック クロット</Japanese>
<Japanese>クイッククロット</Japanese>
<Korean>퀵 클롯 붕대</Korean>
</Key>
<Key ID="STR_ACE_Medical_QuikClot_Desc_Use">
@ -2113,7 +2113,7 @@
<Hungarian>A páciens, %1,&lt;br/&gt;%2.&lt;br/&gt;%3.&lt;br/&gt;%4</Hungarian>
<Czech>Pacient %1&lt;br/&gt;je %2.&lt;br/&gt;%3.&lt;br/&gt;%4</Czech>
<Portuguese>Paciente %1&lt;br/&gt;é %2.&lt;br/&gt;%3.&lt;br/&gt;%4</Portuguese>
<Japanese>痛み %1&amp;lt;br/&amp;gt; %2.&amp;lt;br/&amp;gt;%3.&amp;lt;br/&amp;gt;%4</Japanese>
<Japanese>痛み %1&lt;br/&gt; %2.&lt;br/&gt;%3.&lt;br/&gt;%4</Japanese>
<Korean>환자 %1&lt;br/&gt;는 %2.&lt;br/&gt;%3.&lt;br/&gt;%4</Korean>
</Key>
<Key ID="STR_ACE_Medical_diagnoseAlive">
@ -3463,7 +3463,7 @@
<French>Dans les véhicules et les structures sanitaires</French>
<Hungarian>Járművek &amp; létesítmény</Hungarian>
<Italian>Veicoli e Strutture</Italian>
<Japanese>車両 &amp;amp; 施設</Japanese>
<Japanese>車両 &amp; 施設</Japanese>
<Korean>차량 및 시설</Korean>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_SurgicalKit_DisplayName">
@ -3477,7 +3477,7 @@
<French>Permettre les trousses chirurgicales (Avancé)</French>
<Hungarian>Sebészkészlet (Fejlett) engedélyezése</Hungarian>
<Italian>Permetti Kit Chirurgico (Avanzato)</Italian>
<Japanese>縫合キットの許可 (Adv)</Japanese>
<Japanese>縫合キットの許可 (アド)</Japanese>
<Korean>봉합키트 활성화 (고급)</Korean>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_SurgicalKit_Description">
@ -3505,7 +3505,7 @@
<French>Consommer les trousses chirurgicales (Av.)</French>
<Hungarian>Sebészkészlet (Fejlett) eltávolítása</Hungarian>
<Italian>Rimuovi Kit Chirurgico (Avanzato)</Italian>
<Japanese>縫合キットを削除 (Adv)</Japanese>
<Japanese>縫合キットを削除 (アド)</Japanese>
<Korean>봉합키트 제거 (고급)</Korean>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_consumeItem_SurgicalKit_Description">
@ -3533,7 +3533,7 @@
<French>Lieu d'utilisation des trousses chirurgicales</French>
<Hungarian>Sebészkészlet (Fejlett) helyei</Hungarian>
<Italian>Località Kit Chirurgico (Avanzato)</Italian>
<Japanese>縫合キットをつかう場所 (Adv)</Japanese>
<Japanese>縫合キットをつかう場所 (アド)</Japanese>
<Korean>봉합키트 사용 장소 (고급)</Korean>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_useLocation_SurgicalKit_Description">
@ -3567,7 +3567,7 @@
<Portuguese>Condição do Kit Cirúrgico (Avançado)</Portuguese>
<Russian>Условие использования хирургического набора (усл.)</Russian>
<Italian>Condizioni Kit Chirurgico (Avanzato)</Italian>
<Japanese>縫合キットの状態 (Adv)</Japanese>
<Japanese>縫合キットの状態 (アド)</Japanese>
<Korean>봉합키트 상태 (고급)</Korean>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_useCondition_SurgicalKit_Description">
@ -3744,7 +3744,7 @@
<French>Médecin (traitements avancés uniquement)</French>
<Hungarian>Doktor (csak fejlett orvosok)</Hungarian>
<Italian>Dottore (Solo Medici Avanzati)</Italian>
<Japanese>医師 (アドバンスド医療のみ)</Japanese>
<Japanese>医師 (アドバンスド医療のみ)</Japanese>
<Korean>의사 (오직 고급 의료에서만)</Korean>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_doctorShort">
@ -3870,7 +3870,7 @@
<French>Définir comme installation médical [ACE]</French>
<Hungarian>Orvosi létesítmény beállítása [ACE]</Hungarian>
<Italian>Imposta Struttura Medica [ACE]</Italian>
<Japanese>医療施設として設定 [ACE]</Japanese>
<Japanese>医療施設設定 [ACE]</Japanese>
<Korean>의료시설 선정 [ACE]</Korean>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_DisplayName">
@ -3912,7 +3912,7 @@
<French>Définir un objet comme installation médical. Cela permet les traitements avancés. Peut être utilisé sur les batiments et les véhicules</French>
<Hungarian>Egy objektumot orvosi létesítményként határoz meg. Ez fejlett ellátási lehetőségeket engedélyez. Használható járműveken és épületeken.</Hungarian>
<Italian>Definisce un oggetto come struttura medica. Questo permette cure più avanzate. Può essere usato su edifici e veicoli.</Italian>
<Japanese>オブジェクトを医療施設として割り当てます。割り当てられた場合、より高度な治療が可能になり、建物と車両へつかえます。</Japanese>
<Japanese>オブジェクトを医療施設として割り当てます。建物と車両へ割り当てられた場合、より高度な治療が可能になります。</Japanese>
<Korean>물체를 의료시설로 정의합니다. 건물 혹은 차량이 될 수 있습니다. 이는 고급 의료 조치를 할 수 있게해줍니다.</Korean>
</Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate">
@ -3926,7 +3926,7 @@
<French>[ACE] Caisse médicale (basique)</French>
<Hungarian>[ACE] Orvosi láda (Alap)</Hungarian>
<Italian>[ACE] Cassa Rifornimenti Medici (Basico)</Italian>
<Japanese>[ACE] 医療箱 (ベーシック)</Japanese>
<Japanese>[ACE] 医療物資箱 (ベーシック)</Japanese>
<Korean>[ACE] 의료 물자 (기본)</Korean>
</Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate_advanced">
@ -3940,7 +3940,7 @@
<French>[ACE] Caisse médicale (avancée)</French>
<Hungarian>[ACE] Orvosi láda (Fejlett)</Hungarian>
<Italian>[ACE] Cassa Rifornimenti Medici (Avanzato)</Italian>
<Japanese>[ACE] 医療箱 (アドバンスド)</Japanese>
<Japanese>[ACE] 医療物資箱 (アドバンスド)</Japanese>
<Korean>[ACE] 의료 물자 (고급)</Korean>
</Key>
<Key ID="STR_ACE_Medical_AnyTime">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="medical_blood">
<Key ID="STR_ACE_medical_blood_enabledFor_OnlyPlayers">
@ -11,7 +11,7 @@
</Key>
<Key ID="STR_ACE_medical_blood_MedicalBloodSettings_enabledFor_DisplayName">
<English>Enable Blood Drops</English>
<Japanese>の滴下を有効化</Japanese>
<Japanese>を有効化</Japanese>
<German>Aktiviere Blutspritzer</German>
<Korean>피흘리기 활성화</Korean>
<Polish>Włącz ślady krwi na ziemi</Polish>
@ -19,7 +19,7 @@
</Key>
<Key ID="STR_ACE_medical_blood_MedicalBloodSettings_enabledFor_Description">
<English>Enable or disable Blood Drops created on bleeding and taking damage</English>
<Japanese>ダメージを受けたり、出血していると血が滴る様子の有効か無効化</Japanese>
<Japanese>ダメージを受けたり、出血していると出る血痕の有効か無効化</Japanese>
<German>Aktiviere oder deaktiviere Blutspritzer, die durch Blutungen oder bei Schadensnahme entstehen.</German>
<Polish>Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi</Polish>
<French>(Dés)active les gouttes de sang lors d'un saignement ou de blessure</French>

View File

@ -115,7 +115,7 @@
<Italian>Sto Riarmando %1 con %2...</Italian>
<Spanish>Rearmando %1 con %2...</Spanish>
<French>Réarmement de %1 avec %2...</French>
<Japanese>%2により%1を再武装する。</Japanese>
<Japanese>%1を%2により再武装する。</Japanese>
<Korean>%2을 %1에 재보급중...</Korean>
</Key>
<Key ID="STR_ACE_Rearm_BasicRearmAction">
@ -141,7 +141,7 @@
<Italian>Sto prendendo %1 per %2...</Italian>
<Spanish>Tomando %1 para %2...</Spanish>
<French>Prend %1 pour %2...</French>
<Japanese>%2のために%1を取得しています・・・</Japanese>
<Japanese>%1を%2のために取得しています・・・</Japanese>
<Korean>%2를 위해 %1 가져오는중...</Korean>
</Key>
<Key ID="STR_ACE_Rearm_TakeAmmo">
@ -193,7 +193,7 @@
<Italian>Sto riponendo %1 in %2...</Italian>
<Spanish>Guardando %1 en %2...</Spanish>
<French>Stocke %1 dans %2...</French>
<Japanese>%2へ%1を戻しています・・・</Japanese>
<Japanese>%1を%2へ戻しています・・・</Japanese>
<Korean>%2에 %1 보관중...</Korean>
</Key>
<Key ID="STR_ACE_Rearm_GrabAction">
@ -218,7 +218,7 @@
<Italian>Riarmati %1 colpi di %2 su %3</Italian>
<Spanish>Rearmadas %1 rondas de %2 en %3</Spanish>
<French>%1 balles réarmées de %2 dans %3</French>
<Japanese>%3にある%2の%1弾頭を再武装した</Japanese>
<Japanese>%1発の%2を%3から装填した</Japanese>
<Korean>%3에 2%의 %1 탄약 재보급</Korean>
</Key>
<Key ID="STR_ACE_Rearm_Mag_SmokeLauncherMag">

View File

@ -19,13 +19,26 @@
#include "script_component.hpp"
params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_disconnectOnly", false, [false]]];
TRACE_3("dropNozzle",_unit,_nozzle,_disconnectOnly);
detach _nozzle;
_nozzle setVariable [QGVAR(isRefueling), false, true];
if (_disconnectOnly) exitWith {};
_nozzle setVelocity [0, 0, 0];
_nozzle setPosATL [(getPosATL _nozzle) select 0, (getPosATL _nozzle) select 1, 0.05];
private _groundPosition = getPosASL _nozzle;
private _posA = (getPosASL _nozzle) vectorAdd [0,0,0.05];
private _posB = (getPosASL _nozzle) vectorAdd [0,0,-1000];
private _intersections = lineIntersectsSurfaces [_posA, _posB, _unit, _nozzle, true, 1, "GEOM"];
TRACE_1("",_intersections);
if (_intersections isEqualTo []) then {
_groundPosition set [2, (getTerrainHeightASL _groundPosition) vectorAdd [0,0,0.005]];
} else {
_groundPosition = ((_intersections select 0) select 0) vectorAdd [0,0,0.005];
};
_nozzle setPosASL _groundPosition;
TRACE_1("finalPos",getPosATL _nozzle);
if (isNull _unit) exitWith {};
_unit setVariable [QGVAR(isRefueling), false, true];

View File

@ -36,7 +36,7 @@ private _action = [QGVAR(Refuel),
[],
[0, 0, 0],
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
[_target, 0, [], _action] call EFUNC(interact_menu,addActionToObject);
[_target, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject);
// Add pickup
_action = [QGVAR(PickUpNozzle),
@ -48,7 +48,7 @@ _action = [QGVAR(PickUpNozzle),
[],
[0, 0, 0],
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
// Add turnOn
_action = [QGVAR(TurnOn),
@ -60,7 +60,7 @@ _action = [QGVAR(TurnOn),
[],
[0, 0, 0],
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
// Add turnOff
_action = [QGVAR(TurnOff),
@ -72,7 +72,7 @@ _action = [QGVAR(TurnOff),
[],
[0, 0, 0],
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
// Add disconnect
_action = [QGVAR(Disconnect),
@ -84,4 +84,4 @@ _action = [QGVAR(Disconnect),
[],
[0, 0, 0],
REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction);
[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);
[_target, 0, ["ACE_MainActions", QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject);

View File

@ -190,7 +190,7 @@ class GVAR(interface) {
1
};
multiselectEnabled = 0;
maxHistoryDelay = 10e10;
disableKeyboardSearch = 1;
onTreeDblClick = QUOTE([ARR_2('onTreeDblClick',_this)] call FUNC(handleInterface));
};
class unitFrame: RscFrame {

View File

@ -21,7 +21,9 @@ class CfgPatches {
class CfgRespawnTemplates {
class ADDON {
displayName = CSTRING(DisplayName);
onPlayerKilled = QFUNC(respawnTemplate);
onPlayerRespawn = QFUNC(respawnTemplate);
respawnTypes[] = {2,3};
};
};

View File

@ -46,19 +46,12 @@ _positions = [
[_compassW + _offset, 0]
];
_sequence = if (_heading < 90) then {
[_SW, _WN, _NE, _ES]
} else {
if (_heading < 180) then {
[_WN, _NE, _ES, _SW]
} else {
if (_heading < 270) then {
[_NE, _ES, _SW, _WN]
} else {
[_ES, _SW, _WN, _NE]
};
};
};
_sequence = [
[_SW, _WN, _NE, _ES],
[_WN, _NE, _ES, _SW],
[_NE, _ES, _SW, _WN],
[_ES, _SW, _WN, _NE]
] select floor(_heading/90);
{

View File

@ -21,6 +21,10 @@
#include "script_component.hpp"
if !(EGVAR(common,settingsInitFinished)) exitWith {
EGVAR(common,runAtSettingsInitialized) pushBack [DFUNC(updateCameraModes),_this];
};
params [["_addModes",[],[[]]], ["_removeModes",[],[[]]]];
private ["_newModes","_currentModes"];

View File

@ -33,43 +33,37 @@ if !(_newUnits isEqualTo []) exitWith {
};
};
private ["_sides","_cond","_filteredUnits","_filteredGroups"];
// Unit setting filter
_newUnits = [[],allPlayers,playableUnits,allUnits] select GVAR(filterUnits);
private _newUnits = [[],allPlayers,playableUnits,allUnits] select GVAR(filterUnits);
// Side setting filter
_sides = [];
_cond = [{_this == (side group player)},{(_this getFriend (side group player)) >= 0.6},{(_this getFriend (side group player)) < 0.6},{true}] select GVAR(filterSides);
{
if (_x call _cond) then {
_sides pushBack _x;
};
} forEach GVAR(availableSides);
private _sideFilter = [
{_x == (side group player)},
{(_x getFriend (side group player)) >= 0.6},
{(_x getFriend (side group player)) < 0.6},
{true}
] select GVAR(filterSides);
private _filteredSides = GVAR(availableSides) select _sideFilter;
// Filter units and append to list
_filteredUnits = [];
{
if (
(alive _x) &&
{(_x isKindOf "CAManBase")} &&
{(side group _x) in _sides} && // Side filter
{simulationEnabled _x} &&
{!(_x getVariable [QGVAR(isStaged), false])} // Who watches the watchmen?
) then {
_filteredUnits pushBack _x;
};
} forEach (_newUnits - GVAR(unitBlacklist));
private _filteredUnits = (_newUnits - GVAR(unitBlacklist)) select {
(alive _x) &&
{(_x isKindOf "CAManBase")} &&
{(side group _x) in _filteredSides} && // Side filter
{simulationEnabled _x} &&
{!(_x getVariable [QGVAR(isStaged), false])} // Who watches the watchmen?
};
_filteredUnits append GVAR(unitWhitelist);
// Cache icons and colour for drawing
_filteredGroups = [];
private _filteredGroups = [];
{
// Intentionally re-applied to units in case their status changes
[_x] call FUNC(cacheUnitInfo);
_filteredGroups pushBack (group _x);
_filteredGroups pushBackUnique (group _x);
} forEach _filteredUnits;
// Replace previous lists entirely (removes any no longer valid)
GVAR(groupList) = _filteredGroups;
GVAR(unitList) = _filteredUnits arrayIntersect _filteredUnits;
GVAR(groupList) = _filteredGroups arrayIntersect _filteredGroups;

View File

@ -29,6 +29,10 @@
#include "script_component.hpp"
if !(EGVAR(common,settingsInitFinished)) exitWith {
EGVAR(common,runAtSettingsInitialized) pushBack [DFUNC(updateVisionModes),_this];
};
params [["_addModes",[],[[]]], ["_removeModes",[],[[]]]];
private ["_newModes","_currentModes"];

View File

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Spectator">
<Key ID="STR_ACE_Spectator_DisplayName">
<English>ACE Spectator</English>
<Japanese>ACE スペクテイター</Japanese>
</Key>
<Key ID="STR_ACE_Spectator_Settings_DisplayName">
<English>Spectator Settings</English>
<German>Zuschauer Einstellungen</German>

View File

@ -12,23 +12,22 @@ version:
patch: 0
---
<div class="panel callout">
<h5>Changes to CfgAISkill were removed in ACE 3.10 (Default AI will now be more skilled)</h5>
</div>
## 1. Overview
### 1.1 Adjusted AI skill values
The idea here is to reduce the AI's godlike aiming capabilities while retaining its high intelligence. The AI should be smart enough to move through a town, but also be 'human' in their reaction time and aim.
*Note: All these values can still be adjusted via scripts, these arrays just change what 0 & 1 are for `setSkill`.*
### 1.2 Firing in burst mode
### 1.1 Firing in burst mode
AI will now use the automatic mode of their weapons at short distances, instead of always relying on firing single shots in quick succession.
### 1.3 Longer engagement ranges
### 1.2 Longer engagement ranges
The maximum engagement ranges are increased: AI will fire in bursts with variable lengths on high ranges of 500 - 700 meters, depending on their weapon and optic.
### 1.4 No dead zones in CQB
### 1.3 No dead zones in CQB
Some weapons had minimum engagement ranges. If you were as close as 2 meters to an AAF soldier, he wouldn't open fire, because the AI couldn't find any valid fire mode for their weapon. ACE3 removes this behaviour mostly notable in CQB by adding a valid firing mode.
### 1.5 No scripting
### 1.4 No scripting
All changes of ACE3 AI are config based to ensure full compatibility with advanced AI modifications like e.g. "ASR AI 3".
## 2. Dependencies

View File

@ -24,4 +24,4 @@ This is taking care of module initialization. It lets us ensure that modules pla
## 3. Usage
For technical usage and instructions, please refer to our [framework documentation about the module component] ({{site.baseUrl}}/wiki/framework/modules-framework.html).
For technical usage and instructions, please refer to our <a href="{{site.baseUrl}}/wiki/framework/modules-framework.html">framework documentation about the module component</a>.

View File

@ -0,0 +1,34 @@
---
layout: wiki
title: Volume Toggle
description: Ability to toggle volume of game and music.
group: feature
category: general
parent: wiki
mod: acex
version:
major: 3
minor: 2
patch: 0
---
## 1. Overview
Adds the possibility of setting a keybind to toggle volume of game and music. It's quite useful for when you're briefing in heavy rain, or if you're in an obnoxiously loud car.
## 2. Features
- Automatically lower volume when inside vehicles (restores when exiting vehicles)
- Change reduction percentage and fade delay
- Option to show/hide notification
- Option to remind you every minute if your volume is lowered
## 3. Usage
1. Set the keybind in ACEX controls
2. Enable the feature in ACE options
3. Change the options to your liking
## 4. Dependencies
{% include dependenciesx_list.md component="volume" %}

View File

@ -194,7 +194,7 @@ class CfgAmmo {
class M_Titan_AT;
class rhs_ammo_M_fgm148_AT: M_Titan_AT {
irLock = 0;
irLock = 1;
laserLock = 0;
airLock = 0;

View File

@ -105,8 +105,8 @@ class CfgWeapons {
ACE_twistDirection = 0;
ACE_barrelLength = 508.0;
};
class SMG_01_F;
class rhsusf_weap_MP7A1_base_f: SMG_01_F {
class SMG_02_base_F;
class rhsusf_weap_MP7A1_base_f: SMG_02_base_F {
ACE_barrelTwist = 160.0;
ACE_barrelLength = 180.0;
};