mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'medical-rewrite' into medical-rewrite-restructure
This commit is contained in:
commit
a31037bd45
@ -4,7 +4,7 @@
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||
<img src="https://img.shields.io/badge/Version-3.9.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
<img src="https://img.shields.io/badge/Version-3.9.2-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
TRACE_1("Reading Ammo Config",_this);
|
||||
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||
private _ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||
|
||||
_airFriction = getNumber(_ammoConfig >> "airFriction");
|
||||
_caliber = getNumber(_ammoConfig >> "ACE_caliber");
|
||||
|
@ -30,6 +30,6 @@ private _barrelLength = getNumber(_weaponConfig >> "ACE_barrelLength");
|
||||
|
||||
private _result = [_barrelTwist, _twistDirection, _barrelLength];
|
||||
|
||||
uiNamespace setVariable [format[QGVAR(%1), _weapon], _result];
|
||||
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
||||
|
||||
_result
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Advanced_Ballistics">
|
||||
<Key ID="STR_ACE_Advanced_Ballistics_WindInfoKey">
|
||||
@ -151,7 +151,7 @@
|
||||
<French>Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)</French>
|
||||
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
|
||||
<Russian>Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)</Russian>
|
||||
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)</Italian>
|
||||
<Italian>Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer)</Italian>
|
||||
<Japanese>非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます)</Japanese>
|
||||
<Korean>고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다)</Korean>
|
||||
</Key>
|
||||
@ -179,7 +179,7 @@
|
||||
<French>Active tout le temps la balistique avancée quand un membre du groupe ouvre le feu</French>
|
||||
<Hungarian>Mindig engedélyezi a fejlett ballisztikát, ha egy csoporttag tüzel</Hungarian>
|
||||
<Russian>Всегда включает продвинутую баллистику когда стреляет член группы</Russian>
|
||||
<Italian>Abilita sempre Balistica Avanzata quando un Membro del Gruppo spara</Italian>
|
||||
<Italian>Abilita sempre Balistica Avanzata quando un membro del gruppo spara</Italian>
|
||||
<Japanese>グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します</Japanese>
|
||||
<Korean>그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다</Korean>
|
||||
</Key>
|
||||
@ -235,7 +235,7 @@
|
||||
<French>La température de la munition influe sur la vélocité intiale</French>
|
||||
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
|
||||
<Russian>Начальная скорость пули зависит от температуры</Russian>
|
||||
<Italian>Velocità alla volata varia con la temperatura delle munizioni</Italian>
|
||||
<Italian>La velocità dello sparo varia a seconda della temperatura delle munizioni</Italian>
|
||||
<Japanese>弾薬の温度により初速値を変化させます</Japanese>
|
||||
<Korean>탄약 온도에 비례해 총구 속도가 달라집니다</Korean>
|
||||
</Key>
|
||||
@ -263,7 +263,7 @@
|
||||
<French>La longueur du canon influe sur la vélocité initale</French>
|
||||
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
|
||||
<Russian>Начальная скорость пули зависит от длины ствола</Russian>
|
||||
<Italian>Velocità alla volata varia con la lunghezza della canna</Italian>
|
||||
<Italian>La velocità di sparo varia a seconda della lunghezza della canna</Italian>
|
||||
<Japanese>銃身長により初速値を変化させます</Japanese>
|
||||
<Korean>총구 속도가 총열에 비례해 달라집니다</Korean>
|
||||
</Key>
|
||||
@ -277,7 +277,7 @@
|
||||
<French>Activer l'effet balle traçante</French>
|
||||
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
||||
<Russian>Следы пуль</Russian>
|
||||
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
||||
<Italian>Abilita effetto dei Proiettili Traccianti</Italian>
|
||||
<Japanese>弾丸の痕跡表示を有効化</Japanese>
|
||||
<Korean>예광탄 효과 적용</Korean>
|
||||
</Key>
|
||||
@ -291,7 +291,7 @@
|
||||
<French>Active une tracante pour les munitions de gros calibre (seulement visible en utilisant des optiques avancées)</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 di tracciatura per proiettili di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
|
||||
<Italian>Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale)</Italian>
|
||||
<Japanese>大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません)</Japanese>
|
||||
<Korean>대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다)</Korean>
|
||||
</Key>
|
||||
|
@ -54,7 +54,6 @@ GVAR(peakPower) = VO2MAX_STRENGTH * GVAR(VO2MaxPower);
|
||||
|
||||
GVAR(ae1PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 13.3 * ANTPERCENT ^ 1.28 * 1.362;
|
||||
GVAR(ae2PathwayPower) = GVAR(peakPower) / (13.3 + 16.7 + 113.3) * 16.7 * ANTPERCENT ^ 1.28 * 1.362;
|
||||
GVAR(anPathwayPower) = GVAR(peakPower) - _ae1PathwayPower - _ae2PathwayPower;
|
||||
|
||||
GVAR(ppeBlackoutLast) = 100;
|
||||
GVAR(lastBreath) = 0;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Advanced_Fatigue">
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor">
|
||||
@ -8,6 +8,7 @@
|
||||
<Polish>Współczynnik wydolności</Polish>
|
||||
<Korean>성능 요인</Korean>
|
||||
<French>Facteur de performance</French>
|
||||
<Italian>Fattore Prestazione</Italian>
|
||||
</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>
|
||||
@ -16,6 +17,7 @@
|
||||
<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>
|
||||
<Italian>Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription">
|
||||
<English>Influences the overall performance of this unit. Higher means better.</English>
|
||||
@ -24,6 +26,7 @@
|
||||
<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>
|
||||
<Italian>Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor">
|
||||
<English>Recovery Factor</English>
|
||||
@ -32,6 +35,7 @@
|
||||
<Polish>Współczynnik regeneracji</Polish>
|
||||
<Korean>회복 요인</Korean>
|
||||
<French>Facteur de récupération</French>
|
||||
<Italian>Fattore Recupero</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description">
|
||||
<English>Changes how fast the player recovers when resting. Higher is faster.</English>
|
||||
@ -40,6 +44,7 @@
|
||||
<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>
|
||||
<Italian>Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor">
|
||||
<English>Load Factor</English>
|
||||
@ -48,6 +53,7 @@
|
||||
<Polish>Współczynnik masy ekwipunku</Polish>
|
||||
<Korean>부담 요인</Korean>
|
||||
<French>Facteur d'encombrement</French>
|
||||
<Italian>Fattore Caricamento</Italian>
|
||||
</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>
|
||||
@ -56,6 +62,7 @@
|
||||
<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>
|
||||
<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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor">
|
||||
<English>Terrain Gradient Factor</English>
|
||||
@ -64,6 +71,7 @@
|
||||
<Polish>Współczynnik terenu</Polish>
|
||||
<Korean>지형 경사도 요인</Korean>
|
||||
<French>Facteur d'inclinaison du terrain</French>
|
||||
<Italian>Fattore Pendenza Terreno</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description">
|
||||
<English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English>
|
||||
@ -72,6 +80,7 @@
|
||||
<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>
|
||||
<Italian>Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_Enabled">
|
||||
<English>Enabled</English>
|
||||
@ -80,6 +89,7 @@
|
||||
<Polish>Włączone</Polish>
|
||||
<Korean>활성화</Korean>
|
||||
<French>Activé</French>
|
||||
<Italian>Abilitato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description">
|
||||
<English>Enables/disables Advanced Fatigue.</English>
|
||||
@ -88,6 +98,7 @@
|
||||
<Polish>Włącza/wyłącza zaawansowaną wytrzymałość</Polish>
|
||||
<Korean>고급 피로도 활성화/비활성화</Korean>
|
||||
<French>Active/désactive la fatigue avancée.</French>
|
||||
<Italian>Abilita/disabilita la Fatica Avanzata.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar">
|
||||
<English>Show stamina bar</English>
|
||||
@ -96,6 +107,7 @@
|
||||
<Polish>Pokaż pasek wytrzymałości</Polish>
|
||||
<Korean>피로도 막대</Korean>
|
||||
<French>Afficher la barre d'endurance</French>
|
||||
<Italian>Mostra barra stamina</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description">
|
||||
<English>Shows the stamina bar.</English>
|
||||
@ -104,6 +116,7 @@
|
||||
<Polish>Pokazuje pasek wytrzymałości.</Polish>
|
||||
<Korean>피로도 막대를 보여줍니다.</Korean>
|
||||
<French>Affiche la barre d'endurance.</French>
|
||||
<Italian>Mostra la barra della stamina.</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -115,8 +115,7 @@ addMissionEventHandler ["Draw3D", { // Blue is predicted before throw, red is re
|
||||
drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [0,0,1,1], _newTrajAGL, 1, 1, 0, "", 2];
|
||||
} forEach GVAR(predictedPath);
|
||||
{
|
||||
_newTrajAGL = _x;
|
||||
drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,0,0,1], _newTrajAGL, 1, 1, 0, "", 2];
|
||||
drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,0,0,1], _x, 1, 1, 0, "", 2];
|
||||
} forEach GVAR(flightPath)
|
||||
}];
|
||||
#endif
|
||||
|
@ -32,6 +32,9 @@ if !(_unit getVariable [QGVAR(primed), false]) then {
|
||||
_unit setVariable [QGVAR(lastThrownTime), CBA_missionTime];
|
||||
// Fix floating for throwables without proper physics (eg. IR Grenade)
|
||||
_activeThrowable setVelocity [0, 0, -0.1];
|
||||
|
||||
// Set thrower
|
||||
[QEGVAR(common,setShotParents), [_activeThrowable, _unit, (getShotParents _activeThrowable) select 1]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
|
||||
// Restore muzzle ammo (setAmmo 1 has no impact if no appliccable throwable in inventory)
|
||||
|
@ -54,6 +54,9 @@ deleteVehicle _activeThrowableOld;
|
||||
_activeThrowable // projectile
|
||||
]] call CBA_fnc_globalEvent;
|
||||
|
||||
// Set prime instigator
|
||||
[QEGVAR(common,setShotParents), [_activeThrowable, _unit, _unit]] call CBA_fnc_serverEvent;
|
||||
|
||||
if (_showHint) then {
|
||||
// Show primed hint
|
||||
private _displayNameShort = getText (configFile >> "CfgMagazines" >> _throwableMag >> "displayNameShort");
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Advanced_Throwing">
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Category">
|
||||
@ -9,6 +9,7 @@
|
||||
<German>Erweitertes Wurfsystem</German>
|
||||
<Korean>고급 투척</Korean>
|
||||
<French>Lancé amélioré</French>
|
||||
<Italian>Lancio Avanzato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Module_Description">
|
||||
<English>Allows changing advanced throwing behaviour.</English>
|
||||
@ -18,6 +19,7 @@
|
||||
<German>Erlaubt es, das Verhalten des erweiterten Wurfsystems zu ändern.</German>
|
||||
<Korean>고급 투척 행위를 허가합니다</Korean>
|
||||
<French>Permet de changer la configuration du lancé amélioré.</French>
|
||||
<Italian>Permette il cambiamento della modalità di tiro.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName">
|
||||
<English>Enable Advanced Throwing</English>
|
||||
@ -27,6 +29,7 @@
|
||||
<German>Aktiviere erweitertes Wurfsystem</German>
|
||||
<Korean>고급 투척 활성화 </Korean>
|
||||
<French>Active le lancé amélioré</French>
|
||||
<Italian>Abilita Lancio Avanzato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Enable_Description">
|
||||
<English>Enables advanced throwing system.</English>
|
||||
@ -36,6 +39,7 @@
|
||||
<German>Aktiviert das erweiterte Wurfsystem.</German>
|
||||
<Korean>고급 투척을 활성화 합니다</Korean>
|
||||
<French>Active le système de lancé amélioré.</French>
|
||||
<Italian>Abilita il sistema di lancio avanzato.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName">
|
||||
<English>Show Throw Arc</English>
|
||||
@ -45,6 +49,7 @@
|
||||
<German>Zeige Wurfbogen</German>
|
||||
<Korean>투척 궤적 표시</Korean>
|
||||
<French>Afficher l'arc de lancé</French>
|
||||
<Italian>Mostra Arco di Tiro</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description">
|
||||
<English>Enables visualization of the throw arc (where throwable will fly).</English>
|
||||
@ -54,6 +59,7 @@
|
||||
<German>Aktiviert die Visualisierung des Wurfbogens (wohin das Objekt geworfen werden wird).</German>
|
||||
<Korean>투척 궤도를 시각화 합니다(투척물이 어디로 갈지)</Korean>
|
||||
<French>Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir).</French>
|
||||
<Italian>Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà).</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName">
|
||||
<English>Show Throwing Mouse Controls</English>
|
||||
@ -63,6 +69,7 @@
|
||||
<German>Zeige Maussteuerung beim Werfen</German>
|
||||
<Korean>마우스 조작 표시</Korean>
|
||||
<French>Afficher les contrôles à la souris du lancé</French>
|
||||
<Italian>Mostra Comandi Mouse Lancio</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description">
|
||||
<English>Enables visual cues for mouse controls when throwable is prepared.</English>
|
||||
@ -72,6 +79,7 @@
|
||||
<German>Aktiviert visuelle Hinweise zur Maussteuerung, wenn ein Objekt zum Werfen vorbereitet wird.</German>
|
||||
<Korean>투척물을 준비시 마우스 조작을 시각화해서 보여줍니다</Korean>
|
||||
<French>Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé.</French>
|
||||
<Italian>Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName">
|
||||
<English>Enable Throwables Pick Up</English>
|
||||
@ -81,6 +89,7 @@
|
||||
<German>Aktiviere Aufheben von Wurfobjekten</German>
|
||||
<Korean>투척물 줍기 활성화</Korean>
|
||||
<French>Active la récupération des objets lancés</French>
|
||||
<Italian>Abilita Raccogli Oggetti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description">
|
||||
<English>Enables ability to pick up throwables from the ground.</English>
|
||||
@ -90,6 +99,7 @@
|
||||
<German>Aktiviert die Möglichkeit, geworfene Objekte wieder vom Boden aufzuheben.</German>
|
||||
<Korean>땅에 떨어진 투척물을 주울 수 있게 해줍니다.</Korean>
|
||||
<French>Active la capacité de récupérer les objets lancés sur le sol.</French>
|
||||
<Italian>Abilita la possibilità di raccogliere un oggetto lanciabile da terra.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName">
|
||||
<English>Enable Attached Throwables Pick Up</English>
|
||||
@ -99,6 +109,7 @@
|
||||
<German>Aktiviere erneute Aufnahme befestigter Wurfobjekte</German>
|
||||
<Korean>부착 투척물 줍기 활성화</Korean>
|
||||
<French>Active le ramassage d'objets lançables attachés</French>
|
||||
<Italian>Abilita Raccogli Oggetti Lanciabili da altri Oggetti</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description">
|
||||
<English>Enables ability to pick up throwables from attached objects.</English>
|
||||
@ -108,6 +119,7 @@
|
||||
<German>Aktiviert die Möglichkeit, befestigte Wurfobjekte erneut aufzunehmen.</German>
|
||||
<Korean>부착된 투척물을 주울 수 있게 해줍니다.</Korean>
|
||||
<French>Active la capacité à ramasser les objets lançables attaché à d'autres objets.</French>
|
||||
<Italian>Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. </Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Prepare">
|
||||
<English>Prepare/Change Throwable</English>
|
||||
@ -117,6 +129,7 @@
|
||||
<German>Wurfobjekt vorbereiten/wechseln</German>
|
||||
<Korean>투척물 준비/변경</Korean>
|
||||
<French>Préparer/changer d'objet</French>
|
||||
<Italian>Prepara/Cambia Oggetto lanciabile</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_dropModeHold">
|
||||
<English>Throwable Drop Mode (Hold)</English>
|
||||
@ -126,6 +139,7 @@
|
||||
<German>Wurfobjekt Fallmodus (halten)</German>
|
||||
<Korean>투척물 떨어뜨리기 모드(꾹눌러서)</Korean>
|
||||
<French>Mode de lancé de l'objet (Tenir)</French>
|
||||
<Italian>Modalità Oggetto Gettabile (Mantenere)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_DropModeToggle">
|
||||
<English>Throwable Drop Mode (Toggle)</English>
|
||||
@ -135,6 +149,7 @@
|
||||
<German>Wurfobjekt Fallmodus (umschalten)</German>
|
||||
<Korean>투척물 떨어뜨리기 모드(토글)</Korean>
|
||||
<French>Mode de lancé de l'objet (Basculer)</French>
|
||||
<Italian>Modalità Oggetto lanciabile Gettabile (Interruttore)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Primed">
|
||||
<English>Primed</English>
|
||||
@ -144,6 +159,7 @@
|
||||
<German>Scharf gemacht</German>
|
||||
<Korean>뇌관 작동</Korean>
|
||||
<French>Amorcer</French>
|
||||
<Italian>Armato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Throw">
|
||||
<English>Throw</English>
|
||||
@ -153,6 +169,7 @@
|
||||
<German>Werfen</German>
|
||||
<Korean>던지기</Korean>
|
||||
<French>Lancer</French>
|
||||
<Italian>Lanciare</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_ChangeMode">
|
||||
<English>(Scroll) Change Mode</English>
|
||||
@ -162,6 +179,7 @@
|
||||
<German>(Scrollen) Modus wechseln</German>
|
||||
<Korean>(마우스 휠) 모드 변경</Korean>
|
||||
<French>(Molette souris) Changer de mode</French>
|
||||
<Italian>(Scorrere) Cambio Modalità</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Extend">
|
||||
<English>(Scroll) Extend</English>
|
||||
@ -171,6 +189,7 @@
|
||||
<German>(Scrollen) Erweitern</German>
|
||||
<Korean>(마우스 휠) 연장</Korean>
|
||||
<French>(Molette souris) Etendre</French>
|
||||
<Italian>(Scorrere) Estendere</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Cook">
|
||||
<English>(Click) Cook</English>
|
||||
@ -180,6 +199,7 @@
|
||||
<German>(Klicken) Abkochen</German>
|
||||
<Korean>(클릭) 예열</Korean>
|
||||
<French>(Clique) Dégoupiller</French>
|
||||
<Italian>(Click) Arma</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_PickUp">
|
||||
<English>Pick Up</English>
|
||||
@ -189,6 +209,7 @@
|
||||
<German>Aufheben</German>
|
||||
<Korean>줍기</Korean>
|
||||
<French>Ramasser</French>
|
||||
<Italian>Raccogli</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -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};
|
||||
};
|
@ -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
|
||||
|
@ -14,5 +14,4 @@ class CfgPatches {
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgAISkill.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
|
@ -223,25 +223,16 @@ class CfgVehicles {
|
||||
class Plane_CAS_01_base_F: Plane_Base_F {
|
||||
lockDetectionSystem = 12;
|
||||
incomingMissileDetectionSystem = 16;
|
||||
class Turrets;
|
||||
|
||||
#include <flightmodel_thunderbolt.hpp>
|
||||
};
|
||||
|
||||
class Plane_CAS_02_base_F: Plane_Base_F {
|
||||
lockDetectionSystem = 12;
|
||||
incomingMissileDetectionSystem = 16;
|
||||
class Turrets;
|
||||
|
||||
#include <flightmodel_yak.hpp>
|
||||
};
|
||||
|
||||
class Plane_Fighter_03_base_F: Plane_Base_F {
|
||||
lockDetectionSystem = 12;
|
||||
incomingMissileDetectionSystem = 16;
|
||||
class Turrets;
|
||||
|
||||
#include <flightmodel_alca.hpp>
|
||||
};
|
||||
|
||||
class UAV_01_base_F: Helicopter_Base_F {
|
||||
|
@ -1,5 +1,3 @@
|
||||
class Mode_SemiAuto;
|
||||
class Mode_Burst;
|
||||
class Mode_FullAuto;
|
||||
|
||||
class CfgWeapons {
|
||||
@ -18,20 +16,6 @@ class CfgWeapons {
|
||||
magazineReloadTime = 0.1;
|
||||
};
|
||||
|
||||
// Manual Switching Of Flare Mode
|
||||
class SmokeLauncher;
|
||||
class CMFlareLauncher: SmokeLauncher {
|
||||
modes[] = {"Single", "Burst", "AIBurst"};
|
||||
|
||||
class Single: Mode_SemiAuto {
|
||||
reloadTime = 0.1;
|
||||
};
|
||||
|
||||
class Burst: Mode_Burst {
|
||||
displayName = CSTRING(CMFlareLauncher_Burst_Name);
|
||||
};
|
||||
};
|
||||
|
||||
// bigger mag for comanche
|
||||
class CannonCore;
|
||||
class gatling_20mm: CannonCore {
|
||||
|
@ -1,23 +0,0 @@
|
||||
acceleration = 300;
|
||||
maxSpeed = 936;
|
||||
irScanRangeMin = 500;
|
||||
irScanRangeMax = 5000;
|
||||
aileronSensitivity = 0.64;
|
||||
elevatorSensitivity = 0.682;
|
||||
rudderInfluence = 0.001;
|
||||
aileronControlsSensitivityCoef = 3;
|
||||
elevatorControlsSensitivity = 2;
|
||||
rudderControlsSensitivityoef = 4;
|
||||
elevatorCoef[] = {0.6, 0.73, 0.62, 0.52, 0.39, 0.33, 0.28};
|
||||
aileronCoef[] = {0.5, 0.68, 0.75, 0.86, 0.92, 0.96, 1};
|
||||
rudderCoef[] = {0.9, 0.75, 0.58, 0.45, 0.38, 0.35, 0.3};
|
||||
envelope[] = {0, 0.06, 1.2, 3, 3.6, 3.75, 3.65, 3.45, 3.3, 2.8, 2.4, 1.9, 1.5};
|
||||
angleOfIndicence = 0.0523599; //determines velocity vector behaviour, how quickly it catches up with where your nose is pointing, I think
|
||||
draconicForceXCoef = 7.5; //max angle of attack, lower value gives higher aoa
|
||||
draconicForceYCoef = 0.2198; //Something to do with bleed off of speed, low values seem to increase bleed off
|
||||
draconicForceZCoef = 5.12; //????
|
||||
draconicTorqueXCoef = 0.18; //resistance to elevator input, also impacts speed degradation
|
||||
draconicTorqueYCoef = 0.000017;
|
||||
thrustCoef[] = {1.3, 1.27, 1.24, 1.2, 1.17, 1.15, 1.13, 1.1, 1.06, 1, 0.94, 0.72, 0.51, 0.4, 0.25, 0};
|
||||
gunAimDown = 0.029;
|
||||
flapsFrictionCoef = 0.32;
|
@ -1,21 +0,0 @@
|
||||
maxSpeed = 736;
|
||||
aileronSensitivity = 0.85;
|
||||
elevatorSensitivity = 0.75;
|
||||
rudderInfluence = 0.001;
|
||||
aileronControlsSensitivityCoef = 3;
|
||||
elevatorControlsSensitivity = 2;
|
||||
rudderControlsSensitivityoef = 4;
|
||||
elevatorCoef[] = {0.7, 0.75, 0.75, 0.65, 0.55, 0.45, 0.35};
|
||||
aileronCoef[] = {0.6, 0.85, 0.88, 0.92, 0.95, 0.97, 1};
|
||||
rudderCoef[] = {0.8, 0.75, 0.65, 0.5, 0.4, 0.33, 0.3};
|
||||
flapsFrictionCoef = 0.35;
|
||||
angleOfIndicence = 0.0523599;
|
||||
draconicForceXCoef = 9.5;
|
||||
draconicForceYCoef = 0.56;
|
||||
draconicForceZCoef = 0.1;
|
||||
draconicTorqueXCoef = 0.58;
|
||||
draconicTorqueYCoef = 0.00013;
|
||||
envelope[] = {0, 0, 0.75, 2.4, 3.6, 3.8, 3.7, 3.2, 2.2, 1.7, 0.9};
|
||||
thrustCoef[] = {1, 1.2, 1.3, 1.25, 1.06, 1.01, 1, 0.92, 0.75, 0.65, 0.5, 0.25, 0};
|
||||
acceleration = 265;
|
||||
landingSpeed = 220;
|
@ -1,20 +0,0 @@
|
||||
maxSpeed = 1059;
|
||||
acceleration = 300;
|
||||
aileronSensitivity = 0.635;
|
||||
elevatorSensitivity = 0.814;
|
||||
rudderInfluence = 0.001;
|
||||
aileronControlsSensitivityCoef = 3;
|
||||
elevatorControlsSensitivity = 2;
|
||||
rudderControlsSensitivityoef = 4;
|
||||
elevatorCoef[] = {0.6, 0.76, 0.7, 0.65, 0.58, 0.47, 0.43};
|
||||
aileronCoef[] = {0.5, 0.85, 0.87, 0.89, 0.92, 0.95, 1};
|
||||
rudderCoef[] = {0.8, 0.7, 0.6, 0.5, 0.4, 0.32, 0.27};
|
||||
angleOfIndicence = 0.0523599;
|
||||
draconicForceXCoef = 7.6;
|
||||
draconicForceYCoef = 0.75;
|
||||
draconicForceZCoef = 0.085;
|
||||
draconicTorqueXCoef = 0.815;
|
||||
draconicTorqueYCoef = 0.000152;
|
||||
envelope[] = {0, 0.446, 1.5, 3.9, 5.2, 4.8, 4.2, 3.5, 2, 1, 0.5};
|
||||
thrustCoef[] = {1, 1.2, 1.7, 1.7, 1.65, 1.54, 1.32, 1.1, 0.95, 0.75, 0.5, 0.35, 0};
|
||||
flapsFrictionCoef = 0.32;
|
@ -1,20 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Aircraft">
|
||||
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
|
||||
<English>Burst</English>
|
||||
<German>Feuerstoß</German>
|
||||
<Spanish>Ráfaga</Spanish>
|
||||
<Polish>Seria</Polish>
|
||||
<Czech>Dávka</Czech>
|
||||
<French>Rafale</French>
|
||||
<Russian>Очередь</Russian>
|
||||
<Hungarian>Sorozat</Hungarian>
|
||||
<Portuguese>Rajada</Portuguese>
|
||||
<Italian>Raffica</Italian>
|
||||
<Japanese>バースト</Japanese>
|
||||
<Korean>점사</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Aircraft_gatling_20mm_Name">
|
||||
<English>XM301</English>
|
||||
<German>XM301</German>
|
||||
|
@ -48,7 +48,7 @@ if (_resetGunList) then {
|
||||
|
||||
[".338LM 250gr" , 872, 100, 0.0604821, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.645, 1, "ICAO", [[-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],
|
||||
[".338LM 300gr" , 792, 100, 0.0685883, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.759, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
|
||||
[".338LM API526" , 872, 100, 0.0602535, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.760, 1, "ICAO", [[-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],
|
||||
[".338LM API526" , 872, 100, 0.0602535, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.580, 1, "ICAO", [[-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],
|
||||
|
||||
[".300WM Mk248 Mod0" , 857, 100, 0.0621425, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 12.31, 7.80, 25.40, 0.537, 1, "ICAO", [[-15,838],[0,845],[10,852],[15,857],[25,871],[30,880],[35,891]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
|
||||
[".300WM Mk248 Mod1" , 839, 100, 0.0637038, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.619, 1, "ICAO", [[-15,820],[0,827],[10,834],[15,839],[25,853],[30,862],[35,873]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
|
||||
|
@ -57,7 +57,6 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
||||
_actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(CancelAction)], {GVAR(placeAction) = PLACE_CANCEL}];
|
||||
|
||||
//Display to show virtual object:
|
||||
private [];
|
||||
_model = getText (configFile >> "CfgAmmo" >> _itemVehClass >> "model");
|
||||
if (_model == "") then {
|
||||
_model = getText (configFile >> "CfgVehicles" >> _itemVehClass >> "model");
|
||||
|
@ -21,7 +21,7 @@ TRACE_2("params",_attachToVehicle,_unit);
|
||||
|
||||
if ((vehicle _unit) != _unit) exitWith {false};
|
||||
|
||||
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
||||
private _attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
||||
if ((count _attachedList) == 0) exitWith {false};
|
||||
|
||||
private ["_inRange"];
|
||||
|
@ -12,7 +12,7 @@
|
||||
<Italian>Attacca l'oggetto</Italian>
|
||||
<Hungarian>Tárgy hozzácsatolása</Hungarian>
|
||||
<Russian>Прикрепить предмет</Russian>
|
||||
<Japanese>&gt;&gt; アイテムを取り付ける</Japanese>
|
||||
<Japanese>アイテムを取り付ける</Japanese>
|
||||
<Korean>물건 부착</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_Attach">
|
||||
@ -222,7 +222,7 @@
|
||||
<Italian>%1<br/>attaccata</Italian>
|
||||
<Hungarian>%1<br/>hozzácsatolva</Hungarian>
|
||||
<Russian>%1<br/>присоединен(-а)</Russian>
|
||||
<Japanese>%1&lt;br/&gt; を取り付けた</Japanese>
|
||||
<Japanese>%1<br/>を取り付けた</Japanese>
|
||||
<Korean>%1<br/>부착됨</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Attach_Item_Detached">
|
||||
@ -236,7 +236,7 @@
|
||||
<Italian>%1<br/>staccata</Italian>
|
||||
<Hungarian>%1<br/>lecsatolva</Hungarian>
|
||||
<Russian>%1<br/>отсоединен(-а)</Russian>
|
||||
<Japanese>%1&lt;br/&gt; を外した</Japanese>
|
||||
<Japanese>%1<br/>を外した</Japanese>
|
||||
<Korean>%1<br/>분리됨</Korean>
|
||||
</Key>
|
||||
</Package>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<!-- QBU -->
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_65x47_Scenar_mag_Name">
|
||||
<English>6.5x47mm 20Rnd Mag (HPBT Scenar)</English>
|
||||
<French>Ch. 6.5x47mm 20Cps (HPBT Scenar)</French>
|
||||
<French>Ch. 6,5x47mm 20Cps (HPBT Scenar)</French>
|
||||
<Spanish>Cargador de 20 balas de 6.5x47mm (HPBT Scenar)</Spanish>
|
||||
<Polish>Magazynek 6,5x47mm 20rd (HPBT Scenar)</Polish>
|
||||
<Russian>Магазин из 20-ти 6,5x47 мм (экспансивные Scenar)</Russian>
|
||||
@ -18,7 +18,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_65x47_Scenar_mag_NameShort">
|
||||
<English>6.5mm Lapua</English>
|
||||
<French>6.5mm Lapua</French>
|
||||
<French>6,5mm Lapua</French>
|
||||
<Spanish>6.5mm Lapua</Spanish>
|
||||
<Polish>6,5mm Lapua</Polish>
|
||||
<Russian>6,5 мм Lapua</Russian>
|
||||
@ -32,7 +32,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_65x47_Scenar_mag_Description">
|
||||
<English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 20<br />Used in: QBU-88</English>
|
||||
<French>Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 6,5x47mm (HPBT Scenar)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 20<br />Se usa en: QBU-88</Spanish>
|
||||
<Polish>Kaliber: 6,5x47mm (HPBT Scenar)<br />Pociski: 20</Polish>
|
||||
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 20<br />Используются с: QBU-88</Russian>
|
||||
@ -51,7 +51,7 @@
|
||||
<Russian>Магазин из 20-ти 6,5 мм Creedmor</Russian>
|
||||
<German>6,5mm Creedmor 20-Patronen-Magazin</German>
|
||||
<Spanish>Cargador de 20 balas Creedmor de 6.5mm</Spanish>
|
||||
<French>Ch. 6.5mm Creedmor 20Cps</French>
|
||||
<French>Ch. 6,5mm Creedmor 20Cps</French>
|
||||
<Czech>6.5mm Creedmor 20náb. Zásobník</Czech>
|
||||
<Portuguese>Carregador 6.5mm com 20 cartuchos Creedmor</Portuguese>
|
||||
<Hungarian>6,5mm Creedmor 20-lövedékes tár</Hungarian>
|
||||
@ -60,7 +60,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_65_Creedmor_mag_NameShort">
|
||||
<English>6.5mm CM</English>
|
||||
<French>6.5mm CM</French>
|
||||
<French>6,5mm CM</French>
|
||||
<Spanish>6.5mm CM</Spanish>
|
||||
<Polish>6,5mm CM</Polish>
|
||||
<Russian>6,5 мм CM</Russian>
|
||||
@ -76,7 +76,7 @@
|
||||
<English>Caliber: 6.5x47mm Creedmor<br />Rounds: 20<br />Used in: QBU-88</English>
|
||||
<Polish>Kaliber: 6,5x47mm Creedmor<br />Pociski: 20<br />Używany w: QBU-88</Polish>
|
||||
<German>Kaliber: 6,5x47mm Creedmor<br />Patronen: 20<br />Eingesetzt von: QBU-88</German>
|
||||
<French>Calibre: 6.5x47mm Creedmor <br />Cartouches: 20<br />Utilisé avec: QBU-88</French>
|
||||
<French>Calibre: 6,5x47mm Creedmor <br />Cartouches: 20<br />Utilisé avec: QBU-88</French>
|
||||
<Italian>Calibro: 6.5mm Creedmor<br />Munizioni: 20<br />In uso su: QBU-88</Italian>
|
||||
<Spanish>Calibre: 6.5mm Creedmor<br />Balas: 20<br />Se usa en: QBU-88</Spanish>
|
||||
<Russian>Калибр: 6,5x47мм Creedmor<br />Патронов: 20<br />Используются c: QBU-88</Russian>
|
||||
@ -642,7 +642,7 @@
|
||||
<English>9.3mm 10Rnd Tracer Mag</English>
|
||||
<German>9,3mm 10-Patronen-Magazin Leuchtspur</German>
|
||||
<Polish>Magazynek 9.3mm 10rd Smugacz</Polish>
|
||||
<French>Ch. 9.3mm 10Cps Traçante</French>
|
||||
<French>Ch. 9,3mm 10Cps Traçante</French>
|
||||
<Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish>
|
||||
<Russian>Магазин из 10-ти 9,3 мм трассирующих</Russian>
|
||||
<Italian>9.3mm 10Rnd Tracer Mag</Italian>
|
||||
@ -657,7 +657,7 @@
|
||||
<German>9,3mm Leuchtspur</German>
|
||||
<Polish>9,3mm Smugacz</Polish>
|
||||
<Czech>9.3mm Svítící</Czech>
|
||||
<French>9.3mm Traçante</French>
|
||||
<French>9,3mm Traçante</French>
|
||||
<Spanish>9.3mm Trazadora</Spanish>
|
||||
<Russian>9,3 мм трассирующие</Russian>
|
||||
<Italian>9.3mm Tracer</Italian>
|
||||
@ -670,7 +670,7 @@
|
||||
<English>Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus</English>
|
||||
<German>Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 10<br />Eingesetzt von: Cyrus</German>
|
||||
<Polish>Kaliber: 9,3x64mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus</Polish>
|
||||
<French>Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé avec: Cyrus</French>
|
||||
<French>Calibre: 9,3x64mm Traçante<br />Cartouches: 10<br />Utilisé avec: Cyrus</French>
|
||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracer<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
||||
@ -684,7 +684,7 @@
|
||||
<English>9.3mm 10Rnd Tracer IR-DIM Mag</English>
|
||||
<German>9,3mm 10-Patronen-Magazin Leuchtspur IR-DIM</German>
|
||||
<Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish>
|
||||
<French>Ch. 9.3mm 10Cps Traçante IR-DIM</French>
|
||||
<French>Ch. 9,3mm 10Cps Traçante IR-DIM</French>
|
||||
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish>
|
||||
<Russian>Магазин из 10-ти 9,3 мм ИК-трассирующих</Russian>
|
||||
<Italian>9.3mm 10Rnd Tracciante IR-DIM Mag</Italian>
|
||||
@ -699,7 +699,7 @@
|
||||
<German>9,3mm IR-DIM</German>
|
||||
<Polish>9,3mm IR-DIM</Polish>
|
||||
<Czech>9.3mm IR-DIM</Czech>
|
||||
<French>9.3mm IR-DIM</French>
|
||||
<French>9,3mm IR-DIM</French>
|
||||
<Spanish>9.3mm IR-DIM</Spanish>
|
||||
<Russian>9,3 мм ИК-трассирующие</Russian>
|
||||
<Italian>9.3mm IR-DIM</Italian>
|
||||
@ -712,7 +712,7 @@
|
||||
<English>Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus</English>
|
||||
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 10<br />Eingesetzt von: Cyrus</German>
|
||||
<Polish>Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus</Polish>
|
||||
<French>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé avec: Cyrus</French>
|
||||
<French>Calibre: 9,3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé avec: Cyrus</French>
|
||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 10<br />In uso su: Cyrus</Italian>
|
||||
@ -727,7 +727,7 @@
|
||||
<English>9.3mm 150Rnd Tracer Belt</English>
|
||||
<German>9,3mm 150-Patronen-Gurt Leuchtspur</German>
|
||||
<Polish>Taśma 9,3mm 150rd Smugacz</Polish>
|
||||
<French>Bande 9.3mm 150Cps Traçante</French>
|
||||
<French>Bande 9,3mm 150Cps Traçante</French>
|
||||
<Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish>
|
||||
<Russian>Лента из 150-ти 9,3 мм трассирующих</Russian>
|
||||
<Italian>9.3mm 150Rnd Tracer Belt</Italian>
|
||||
@ -742,7 +742,7 @@
|
||||
<German>9,3mm Leuchtspur</German>
|
||||
<Polish>9,3mm Smugacz</Polish>
|
||||
<Czech>9.3mm Svítící</Czech>
|
||||
<French>9.3mm Traçante</French>
|
||||
<French>9,3mm Traçante</French>
|
||||
<Spanish>9.3mm Trazadora</Spanish>
|
||||
<Russian>9,3 мм трассирующие</Russian>
|
||||
<Italian>9.3mm Tracciante</Italian>
|
||||
@ -755,7 +755,7 @@
|
||||
<English>Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid</English>
|
||||
<German>Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 150<br />Eingesetzt von: Navid</German>
|
||||
<Polish>Kaliber: 9,3x64mm Smugacz<br />Pociski: 150<br />Używane w: Navid</Polish>
|
||||
<French>Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<French>Calibre: 9,3x64mm Traçante<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<Spanish>Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
@ -769,7 +769,7 @@
|
||||
<English>9.3mm 150Rnd Tracer IR-DIM Belt</English>
|
||||
<German>9,3mm 150-Patronen-Gurt Leuchtspur IR-DIM</German>
|
||||
<Polish>Taśma 9,3mm 150rd Smugacz IR-DIM</Polish>
|
||||
<French>Bande 9.3mm 150Cps Traçante IR-DIM</French>
|
||||
<French>Bande 9,3mm 150Cps Traçante IR-DIM</French>
|
||||
<Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish>
|
||||
<Russian>Лента из 150-ти 9,3 мм ИК-трассирующих</Russian>
|
||||
<Italian>9.3mm 150Rnd Tracciante IR-DIM Belt</Italian>
|
||||
@ -784,7 +784,7 @@
|
||||
<German>9,3mm IR-DIM</German>
|
||||
<Polish>9,3mm IR-DIM</Polish>
|
||||
<Czech>9.3mm IR-DIM</Czech>
|
||||
<French>9.3mm IR-DIM</French>
|
||||
<French>9,3mm IR-DIM</French>
|
||||
<Spanish>9.3mm IR-DIM</Spanish>
|
||||
<Russian>9,3 мм ИК-трассирующие</Russian>
|
||||
<Italian>9.3mm IR-DIM</Italian>
|
||||
@ -797,7 +797,7 @@
|
||||
<English>Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid</English>
|
||||
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 150<br />Eingesetzt von: Navid</German>
|
||||
<Polish>Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid</Polish>
|
||||
<French>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<French>Calibre: 9,3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
@ -811,7 +811,7 @@
|
||||
<English>9.3mm 150Rnd AP Belt</English>
|
||||
<German>9,3mm 150-Patronen-Gurt Hartkern</German>
|
||||
<Polish>Taśma 9,3mm 150rd AP</Polish>
|
||||
<French>Bande 9.3mm 150Cps AP</French>
|
||||
<French>Bande 9,3mm 150Cps AP</French>
|
||||
<Spanish>Cinta de 150 balas AP de 9.3mm</Spanish>
|
||||
<Russian>Лента из 150-ти 9,3 мм бронебойных</Russian>
|
||||
<Italian>9.3mm 150Rnd AP Belt</Italian>
|
||||
@ -826,7 +826,7 @@
|
||||
<German>9,3mm AP</German>
|
||||
<Polish>9,3mm AP</Polish>
|
||||
<Czech>9.3mm AP</Czech>
|
||||
<French>9.3mm AP</French>
|
||||
<French>9,3mm AP</French>
|
||||
<Spanish>9.3mm AP</Spanish>
|
||||
<Russian>9,3 мм бронебойные</Russian>
|
||||
<Italian>9.3mm AP</Italian>
|
||||
@ -839,7 +839,7 @@
|
||||
<English>Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid</English>
|
||||
<German>Kaliber: 9,3x64mm Hartkern<br />Patronen: 150<br />Eingesetzt von: Navid</German>
|
||||
<Polish>Kaliber: 9,3x64mm AP<br />Pociski: 150<br />Używane w: Navid</Polish>
|
||||
<French>Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<French>Calibre: 9,3x64mm AP<br />Cartouches: 150<br />Utilisé avec: Navid</French>
|
||||
<Spanish>Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid</Spanish>
|
||||
<Russian>Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид</Russian>
|
||||
<Italian>Calibro: 9.3x64mm AP<br />Munizioni: 150<br />In uso su: Navid</Italian>
|
||||
@ -936,7 +936,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x54_Tracer_mag_Name">
|
||||
<English>7.62x54mm 10Rnd Tracer Mag</English>
|
||||
<Polish>Magazynek 7,62x54mm 10rd Smugacz</Polish>
|
||||
<French>Ch. 7.62x54mm 10Rnd Traçante</French>
|
||||
<French>Ch. 7,62x54mm 10Cps Traçante</French>
|
||||
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
|
||||
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
|
||||
@ -950,7 +950,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x54_Tracer_mag_NameShort">
|
||||
<English>7.62mm</English>
|
||||
<Polish>7,62mm</Polish>
|
||||
<French>7.62mm</French>
|
||||
<French>7,62mm</French>
|
||||
<Spanish>7.62mm</Spanish>
|
||||
<Russian>7,62 мм</Russian>
|
||||
<German>7,62mm</German>
|
||||
@ -964,7 +964,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x54_Tracer_mag_Description">
|
||||
<English>7.62x54mm 10Rnd Tracer Mag</English>
|
||||
<Polish>Magazynek 7,62x54mm 10rd Smugacz</Polish>
|
||||
<French>Ch. 7.62x54mm 10Cps Traçante</French>
|
||||
<French>Ch. 7,62x54mm 10Cps Traçante</French>
|
||||
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
|
||||
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
|
||||
@ -978,7 +978,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_100Rnd_65x39_caseless_mag_Tracer_DimName">
|
||||
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
|
||||
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
|
||||
<French>Ch. 6.5mm 100Rnd Traçante IR-DIM</French>
|
||||
<French>Ch. 6,5mm 100Cps Traçante IR-DIM</French>
|
||||
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
|
||||
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
|
||||
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur</German>
|
||||
@ -992,7 +992,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
|
||||
<English>6.5mm IR-DIM</English>
|
||||
<Polish>6,5mm IR-DIM</Polish>
|
||||
<French>6.5mm IR-DIM</French>
|
||||
<French>6,5mm IR-DIM</French>
|
||||
<Spanish>6.5mm IR-DIM</Spanish>
|
||||
<Russian>6,5 мм ИК-трассирующие</Russian>
|
||||
<German>6,5mm IR-DIM </German>
|
||||
@ -1006,7 +1006,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
|
||||
<English>6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW</English>
|
||||
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
|
||||
<French>Ch. 6.5mm 100Rnd Traçante IR-DIM<br />Cartouches: 100<br />Utilisé avec: MX LSW</French>
|
||||
<French>Ch. 6,5mm 100Cps Traçante IR-DIM<br />Cartouches: 100<br />Utilisé avec: MX LSW</French>
|
||||
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
|
||||
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
|
||||
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW</German>
|
||||
@ -1020,7 +1020,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_200Rnd_65x39_cased_Box_Tracer_DimName">
|
||||
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
|
||||
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
|
||||
<French>Bande 6.5mm 200Rnd Traçante IR-DIM</French>
|
||||
<French>Bande 6,5mm 200Cps Traçante IR-DIM</French>
|
||||
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
|
||||
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
|
||||
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur</German>
|
||||
@ -1034,7 +1034,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
|
||||
<English>6.5mm IR-DIM</English>
|
||||
<Polish>6,5mm IR-DIM</Polish>
|
||||
<French>6.5mm IR-DIM</French>
|
||||
<French>6,5mm IR-DIM</French>
|
||||
<Spanish>6.5mm IR-DIM</Spanish>
|
||||
<Russian>6,5 мм ИК-трассирующие</Russian>
|
||||
<German>6,5mm IR-DIM</German>
|
||||
@ -1062,7 +1062,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk262_mag_Name">
|
||||
<English>5.56mm 30Rnd Mag (Mk262)</English>
|
||||
<Polish>Magazynek 5,56mm 30rd Mk262</Polish>
|
||||
<French>5.56mm 30Cps (Mk262)</French>
|
||||
<French>5,56mm 30Cps (Mk262)</French>
|
||||
<Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish>
|
||||
<Russian>Магазин из 30-ти 5.56 мм Mk262</Russian>
|
||||
<German>5,56mm 30-Patronen-Magazin (Mk262)</German>
|
||||
@ -1076,7 +1076,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
|
||||
<English>5.56mm Mk262</English>
|
||||
<Polish>5,56mm Mk262</Polish>
|
||||
<French>5.56mm Mk262</French>
|
||||
<French>5,56mm Mk262</French>
|
||||
<Spanish>5.56mm Mk262</Spanish>
|
||||
<Russian>5,56 мм Mk262</Russian>
|
||||
<German>5,56mm Mk262</German>
|
||||
@ -1090,7 +1090,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk262_mag_Description">
|
||||
<English>Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30</English>
|
||||
<Polish>Kaliber: 5,56x45mm NATO (Mk262)<br />Pociski: 30</Polish>
|
||||
<French>Calibre: 5.56x45mm NATO (Mk262)<br />Cartouches: 30</French>
|
||||
<French>Calibre: 5,56x45mm NATO (Mk262)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 5.56x45mm NATO (Mk262)<br />Balas: 30</Spanish>
|
||||
<Russian>Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (Mk262)<br />Patronen: 30</German>
|
||||
@ -1104,7 +1104,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk318_mag_Name">
|
||||
<English>5.56mm 30Rnd Mag (Mk318)</English>
|
||||
<Polish>Magazynek 5,56mm 30rd (Mk318)</Polish>
|
||||
<French>Ch. 5.56mm 30Cps (Mk318)</French>
|
||||
<French>Ch. 5,56mm 30Cps (Mk318)</French>
|
||||
<Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish>
|
||||
<Russian>Магазин из 30-ти 5.56 мм (Mk318)</Russian>
|
||||
<German>5,56mm 30-Patronen-Magazin (Mk318)</German>
|
||||
@ -1118,7 +1118,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
|
||||
<English>5.56mm Mk318</English>
|
||||
<Polish>5,56mm Mk318</Polish>
|
||||
<French>5.56mm Mk318</French>
|
||||
<French>5,56mm Mk318</French>
|
||||
<Spanish>5.56mm Mk318</Spanish>
|
||||
<Russian>5.56 мм Mk318</Russian>
|
||||
<German>5,56mm Mk318</German>
|
||||
@ -1132,7 +1132,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_Mk318_mag_Description">
|
||||
<English>Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30</English>
|
||||
<Polish>Kaliber: 5,56x45mm NATO (Mk318)<br />Pociski: 30</Polish>
|
||||
<French>Calibre: 5.56x45mm NATO (Mk318)<br />Cartouches: 30</French>
|
||||
<French>Calibre: 5,56x45mm NATO (Mk318)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 5.56x45mm NATO (Mk318)<br />Balas: 30</Spanish>
|
||||
<Russian>Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30</German>
|
||||
@ -1146,7 +1146,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_M995_AP_mag_Name">
|
||||
<English>5.56mm 30Rnd Mag (M995 AP)</English>
|
||||
<Polish>Magazynek 5,56mm 30rd (M995 AP)</Polish>
|
||||
<French>Ch. 5.56mm 30Cps (M995 AP)</French>
|
||||
<French>Ch. 5,56mm 30Cps (M995 AP)</French>
|
||||
<Spanish>Cargador de 30 balas de 5.56mm (M995 AP)</Spanish>
|
||||
<Russian>Магазин из 30-ти 5.56 мм (M995 бронебойные)</Russian>
|
||||
<German>5,56mm 30-Patronen-Magazin (M995AP)</German>
|
||||
@ -1160,7 +1160,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_M995_AP_mag_NameShort">
|
||||
<English>5.56mm AP</English>
|
||||
<Polish>5,56mm AP</Polish>
|
||||
<French>5.56mm AP</French>
|
||||
<French>5,56mm AP</French>
|
||||
<Spanish>5.56mm AP</Spanish>
|
||||
<Russian>5.56 мм бронебойные</Russian>
|
||||
<German>5,56mm AP</German>
|
||||
@ -1174,7 +1174,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_556x45_Stanag_M995_AP_mag_Description">
|
||||
<English>Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30</English>
|
||||
<Polish>Kaliber: 5,56x45mm NATO (M995 AP)<br />Pociski: 30</Polish>
|
||||
<French>Calibre: 5.56x45mm NATO (M995 AP)<br />Cartouches: 30</French>
|
||||
<French>Calibre: 5,56x45mm NATO (M995 AP)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 5.56x45mm NATO (M995 AP)<br />Balas: 30</Spanish>
|
||||
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)<br />Патронов: 30</Russian>
|
||||
<German>Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30</German>
|
||||
@ -1188,7 +1188,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M118LR_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (M118LR)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (M118LR)</Polish>
|
||||
<French>Ch. 7.62mm 10Cps (M118LR)</French>
|
||||
<French>Ch. 7,62mm 10Cps (M118LR)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (M118LR)</Russian>
|
||||
<German>7,62mm 10-Patronen-Magazin (M118LR)</German>
|
||||
@ -1202,7 +1202,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M118LR_Mag_NameShort">
|
||||
<English>7.62mm M118LR</English>
|
||||
<Polish>7,62mm M118LR</Polish>
|
||||
<French>7.62mm M118LR</French>
|
||||
<French>7,62mm M118LR</French>
|
||||
<Spanish>7.62mm M118LR</Spanish>
|
||||
<Russian>7,62 мм M118LR</Russian>
|
||||
<German>7,62mm M118LR</German>
|
||||
@ -1216,7 +1216,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M118LR_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (M118LR)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (M118LR)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 7,62x51mm NATO (M118LR)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (M118LR)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10</German>
|
||||
@ -1230,7 +1230,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_M118LR_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (M118LR)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (M118LR)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (M118LR)</French>
|
||||
<French>Ch. 7,62mm 20Cps (M118LR)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (M118LR)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (M118LR)</German>
|
||||
@ -1244,7 +1244,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_M118LR_Mag_NameShort">
|
||||
<English>7.62mm M118LR</English>
|
||||
<Polish>7,62mm M118LR</Polish>
|
||||
<French>7.62mm M118LR</French>
|
||||
<French>7,62mm M118LR</French>
|
||||
<Spanish>7.62mm M118LR</Spanish>
|
||||
<Russian>7,62 мм M118LR</Russian>
|
||||
<German>7,62mm M118LR</German>
|
||||
@ -1272,7 +1272,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk316_Mod_0_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (Mk316 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (Mk316 Mod 0)</Polish>
|
||||
<French>Ch. 7.62mm 10Cps (Mk316 Mod 0)</French>
|
||||
<French>Ch. 7,62mm 10Cps (Mk316 Mod 0)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (Mk316 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (Mk316 Mod 0)</Russian>
|
||||
<German>7,62mm 10-Patronen-Magazin (Mk316 Mod 0)</German>
|
||||
@ -1286,7 +1286,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk316</English>
|
||||
<Polish>7,62mm Mk316</Polish>
|
||||
<French>7.62mm Mk316</French>
|
||||
<French>7,62mm Mk316</French>
|
||||
<Spanish>7.62mm Mk316</Spanish>
|
||||
<Russian>7,62 мм Mk316</Russian>
|
||||
<German>7,62mm Mk316</German>
|
||||
@ -1300,7 +1300,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk316_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 7,62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 10</German>
|
||||
@ -1314,7 +1314,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk316_Mod_0_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk316 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk316 Mod 0)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (Mk316 Mod 0)</French>
|
||||
<French>Ch. 7,62mm 20Cps (Mk316 Mod 0)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Mk316 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Mk316 Mod 0)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (Mk316 Mod 0)</German>
|
||||
@ -1328,7 +1328,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk316</English>
|
||||
<Polish>7,62mm Mk316</Polish>
|
||||
<French>7.62mm Mk316</French>
|
||||
<French>7,62mm Mk316</French>
|
||||
<Spanish>7.62mm Mk316</Spanish>
|
||||
<Russian>7,62 мм Mk316</Russian>
|
||||
<German>7,62mm Mk316</German>
|
||||
@ -1342,7 +1342,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk316_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 20</German>
|
||||
@ -1356,7 +1356,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk319_Mod_0_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish>
|
||||
<French>Ch. 7.62mm 10Cps (Mk319 Mod 0)</French>
|
||||
<French>Ch. 7,62mm 10Cps (Mk319 Mod 0)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (Mk319 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (Mk319 Mod 0)</Russian>
|
||||
<German>7,62mm 10-Patronen-Magazin (Mk319 Mod 0)</German>
|
||||
@ -1370,7 +1370,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk319</English>
|
||||
<Polish>7,62mm Mk319</Polish>
|
||||
<French>7.62mm Mk319</French>
|
||||
<French>7,62mm Mk319</French>
|
||||
<Spanish>7.62mm Mk319</Spanish>
|
||||
<Russian>7,62 мм Mk319</Russian>
|
||||
<German>7,62mm Mk319</German>
|
||||
@ -1384,7 +1384,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_Mk319_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 7,62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 10</German>
|
||||
@ -1398,7 +1398,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk319_Mod_0_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk319 Mod 0)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (Mk319 Mod 0)</French>
|
||||
<French>Ch. 7,62mm 20Cps (Mk319 Mod 0)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Mk319 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Mk319 Mod 0)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (Mk319 Mod 0)</German>
|
||||
@ -1412,7 +1412,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk319</English>
|
||||
<Polish>7,62mm Mk319</Polish>
|
||||
<French>7.62mm Mk319</French>
|
||||
<French>7,62mm Mk319</French>
|
||||
<Spanish>7.62mm Mk319</Spanish>
|
||||
<Russian>7,62 мм Mk319</Russian>
|
||||
<German>7,62mm Mk319</German>
|
||||
@ -1426,7 +1426,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_Mk319_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 20</German>
|
||||
@ -1440,7 +1440,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M993_AP_Mag_Name">
|
||||
<English>7.62mm 10Rnd Mag (M993 AP)</English>
|
||||
<Polish>Magazynek 7,62mm 10rd (M993 AP)</Polish>
|
||||
<French>Ch. 7.62mm 10Cps (M993 AP)</French>
|
||||
<French>Ch. 7,62mm 10Cps (M993 AP)</French>
|
||||
<Spanish>Cargador de 10 balas de 7.62mm (M993 AP)</Spanish>
|
||||
<Russian>Магазин из 10-ти 7,62 мм (M993 бронебойные)</Russian>
|
||||
<German>7,62mm 10-Patronen-Magazin (M993 AP)</German>
|
||||
@ -1454,7 +1454,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M993_AP_Mag_NameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<French>7.62mm AP</French>
|
||||
<French>7,62mm AP</French>
|
||||
<Spanish>7.62mm AP</Spanish>
|
||||
<Russian>7,62mm бронебойные</Russian>
|
||||
<German>7,62mm AP</German>
|
||||
@ -1468,7 +1468,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_762x51_M993_AP_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 10</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 7,62x51mm NATO (M993 AP)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 7.62x51mm NATO (M993 AP)<br />Balas: 10</Spanish>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 10</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10</German>
|
||||
@ -1482,7 +1482,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_M993_AP_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (M993 AP)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (M993 AP)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (M993 AP)</French>
|
||||
<French>Ch. 7,62mm 20Cps (M993 AP)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (M993 AP)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (M993 бронебойные)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (M993 AP)</German>
|
||||
@ -1496,7 +1496,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_M993_AP_Mag_NameShort">
|
||||
<English>7.62mm AP</English>
|
||||
<Polish>7,62mm AP</Polish>
|
||||
<French>7.62mm AP</French>
|
||||
<French>7,62mm AP</French>
|
||||
<Spanish>7.62mm AP</Spanish>
|
||||
<Russian>7,62 мм бронебойные</Russian>
|
||||
<German>7,62mm AP</German>
|
||||
@ -1510,7 +1510,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x51_M993_AP_Mag_Description">
|
||||
<English>Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x51mm NATO (M993 AP)<br />Cartouches: 20</French>
|
||||
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20</German>
|
||||
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)<br />Munizioni: 20</Italian>
|
||||
@ -1524,7 +1524,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (Mk248 Mod 0)</French>
|
||||
<French>Ch. 7,62mm 20Cps (Mk248 Mod 0)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 0)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 0)</German>
|
||||
@ -1538,7 +1538,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
|
||||
<English>7.62mm Mk248</English>
|
||||
<Polish>7,62mm Mk248</Polish>
|
||||
<French>7.62mm Mk248</French>
|
||||
<French>7,62mm Mk248</French>
|
||||
<Spanish>7.62mm Mk248</Spanish>
|
||||
<Russian>7,62 мм Mk248</Russian>
|
||||
<German>7,62mm Mk248</German>
|
||||
@ -1552,7 +1552,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
|
||||
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x67mm NATO (Mk248 Mod 0)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Patronen: 20</German>
|
||||
@ -1566,7 +1566,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_1_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 1)</Polish>
|
||||
<French>Ch. 7.62mm 20Cps (Mk248 Mod 1)</French>
|
||||
<French>Ch. 7,62mm 20Cps (Mk248 Mod 1)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 1)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 1)</German>
|
||||
@ -1580,7 +1580,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
|
||||
<English>7.62mm Mk248</English>
|
||||
<Polish>7,62mm Mk248</Polish>
|
||||
<French>7.62mm Mk248</French>
|
||||
<French>7,62mm Mk248</French>
|
||||
<Spanish>7.62mm Mk248</Spanish>
|
||||
<Russian>7,62 мм Mk248</Russian>
|
||||
<German>7,62mm Mk248</German>
|
||||
@ -1594,7 +1594,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
|
||||
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x67mm NATO (Mk248 Mod 1)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20</German>
|
||||
@ -1608,7 +1608,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name">
|
||||
<English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English>
|
||||
<Polish>Magazynek 7,62mm 20rd (Berger Hybrid OTM)</Polish>
|
||||
<French>Ch. 7.62 20Cps (Berger Hybrid OTM)</French>
|
||||
<French>Ch. 7,62 20Cps (Berger Hybrid OTM)</French>
|
||||
<Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish>
|
||||
<Russian>Магазин из 20-ти 7,62 мм (Berger Hybrid OTM)</Russian>
|
||||
<German>7,62mm 20-Patronen-Magazin (Berger Hybrid OTM)</German>
|
||||
@ -1622,7 +1622,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
|
||||
<English>7.62mm OTM</English>
|
||||
<Polish>7,62mm OTM</Polish>
|
||||
<French>7.62mm OTM</French>
|
||||
<French>7,62mm OTM</French>
|
||||
<Spanish>7.62mm OTM</Spanish>
|
||||
<Russian>7,62 мм OTM</Russian>
|
||||
<German>7,62mm OTM</German>
|
||||
@ -1636,7 +1636,7 @@
|
||||
<Key ID="STR_ACE_Ballistics_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
|
||||
<English>Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20</English>
|
||||
<Polish>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Pociski: 20</Polish>
|
||||
<French>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20</French>
|
||||
<French>Calibre: 7,62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20</French>
|
||||
<Spanish>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Balas: 20</Spanish>
|
||||
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20</Russian>
|
||||
<German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20</German>
|
||||
@ -1649,7 +1649,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_mag_Name">
|
||||
<English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English>
|
||||
<French>Ch. 6.5x47mm 30Cps (HPBT Scenar)</French>
|
||||
<French>Ch. 6,5x47mm 30Cps (HPBT Scenar)</French>
|
||||
<Spanish>Cargador de 30 balas de 6.5x47mm (HPBT Scenar)</Spanish>
|
||||
<Polish>Magazynek 6,5x47mm 30rd (HPBT Scenar)</Polish>
|
||||
<Russian>Магазин из 30-ти 6,5x47 мм (экспансивные Scenar)</Russian>
|
||||
@ -1663,7 +1663,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_mag_NameShort">
|
||||
<English>6.5mm Lapua</English>
|
||||
<French>6.5mm Lapua</French>
|
||||
<French>6,5mm Lapua</French>
|
||||
<Spanish>6.5mm Lapua</Spanish>
|
||||
<Polish>6,5mm Lapua</Polish>
|
||||
<Russian>6,5 мм Lapua</Russian>
|
||||
@ -1677,7 +1677,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_65x47_Scenar_mag_Description">
|
||||
<English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM</English>
|
||||
<French>Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30</French>
|
||||
<French>Calibre: 6,5x47mm (HPBT Scenar)<br />Cartouches: 30</French>
|
||||
<Spanish>Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30<br />Se usa en: MXM</Spanish>
|
||||
<Polish>Kaliber: 6,5x47mm (HPBT Scenar)<br />Pociski: 30</Polish>
|
||||
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 30<br />Используются с: MXM</Russian>
|
||||
@ -1696,7 +1696,7 @@
|
||||
<Russian>Магазин из 30-ти 6,5 мм Creedmor</Russian>
|
||||
<German>6,5mm Creedmor 30-Patronen-Magazin</German>
|
||||
<Spanish>Cargador de 30 balas Creedmor de 6.5mm</Spanish>
|
||||
<French>Ch. 6.5mm Creedmor 30Cps</French>
|
||||
<French>Ch. 6,5mm Creedmor 30Cps</French>
|
||||
<Czech>6.5mm Creedmor 30náb. Zásobník</Czech>
|
||||
<Portuguese>Carregador 6.5mm com 30 cartuchos Creedmor</Portuguese>
|
||||
<Hungarian>6,5mm Creedmor 30-lövedékes tár</Hungarian>
|
||||
@ -1705,7 +1705,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_30Rnd_65_Creedmor_mag_NameShort">
|
||||
<English>6.5mm CM</English>
|
||||
<French>6.5mm CM</French>
|
||||
<French>6,5mm CM</French>
|
||||
<Spanish>6.5mm CM</Spanish>
|
||||
<Polish>6,5mm CM</Polish>
|
||||
<Russian>6,5 мм CM</Russian>
|
||||
@ -1721,7 +1721,7 @@
|
||||
<English>Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM</English>
|
||||
<Polish>Kaliber: 6,5x47mm Creedmor<br />Pociski: 30<br />Używany w: MXM</Polish>
|
||||
<German>Kaliber: 6,5x47mm Creedmor<br />Patronen: 30<br />Eingesetzt von: MXM</German>
|
||||
<French>Calibre: 6.5x47mm Creedmor <br />Cartouches: 30<br />Utilisé avec: MXM</French>
|
||||
<French>Calibre: 6,5x47mm Creedmor <br />Cartouches: 30<br />Utilisé avec: MXM</French>
|
||||
<Italian>Calibro: 6.5mm Creedmor<br />Munizioni: 30<br />In uso su: MXM</Italian>
|
||||
<Spanish>Calibre: 6.5mm Creedmor<br />Balas: 30<br />Se usa en: MXM</Spanish>
|
||||
<Russian>Калибр: 6,5x47мм Creedmor<br />Патронов: 30<br />Используются c: MXM</Russian>
|
||||
@ -1761,7 +1761,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_338_300gr_HPBT_Mag_Description">
|
||||
<English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10</English>
|
||||
<French>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10</Spanish>
|
||||
<Polish>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10</Polish>
|
||||
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)<br />Патронов: 10</Russian>
|
||||
@ -1803,7 +1803,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_10Rnd_338_API526_Mag_Description">
|
||||
<English>Caliber: 8.6x70mm (API526)<br />Rounds: 10</English>
|
||||
<French>Calibre: 8.6x70mm (API526)<br />Cartouches: 10</French>
|
||||
<French>Calibre: 8,6x70mm (API526)<br />Cartouches: 10</French>
|
||||
<Spanish>Calibre: 8.6x70mm (API526)<br />Balas: 10</Spanish>
|
||||
<Polish>Kaliber: 8,6x70mm (API526)<br />Pociski: 10</Polish>
|
||||
<Russian>Калибр: 8,6x70 мм (API526)<br />Патронов: 10</Russian>
|
||||
@ -1859,7 +1859,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_Mag_Name">
|
||||
<English>12.7x99mm 5Rnd Mag</English>
|
||||
<French>Ch. 12.7x99mm 5Cps</French>
|
||||
<French>Ch. 12,7x99mm 5Cps</French>
|
||||
<Spanish>Cargador de 5 balas de 12.7x99mm</Spanish>
|
||||
<Polish>Magazynek 12,7x99mm 5rd</Polish>
|
||||
<Russian>Магазин из 5-ти 12,7x99 мм</Russian>
|
||||
@ -1873,7 +1873,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_Mag_NameShort">
|
||||
<English>12.7mm</English>
|
||||
<French>12.7mm</French>
|
||||
<French>12,7mm</French>
|
||||
<Spanish>12.7mm</Spanish>
|
||||
<Polish>12,7mm</Polish>
|
||||
<Russian>12,7 мм</Russian>
|
||||
@ -1901,7 +1901,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_API_Mag_Name">
|
||||
<English>12.7x99mm API 5Rnd Mag</English>
|
||||
<French>Ch. 12.7x99mm API 5Cps</French>
|
||||
<French>Ch. 12,7x99mm API 5Cps</French>
|
||||
<Spanish>Cargador de 5 balas de 12.7x99mm API</Spanish>
|
||||
<Polish>Magazynek 12,7x99mm API 5rd</Polish>
|
||||
<Italian>12.7x99mm API 5Rnd Mag</Italian>
|
||||
@ -1915,7 +1915,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_API_Mag_NameShort">
|
||||
<English>12.7mm API</English>
|
||||
<French>12.7mm API</French>
|
||||
<French>12,7mm API</French>
|
||||
<Spanish>12.7mm API</Spanish>
|
||||
<Polish>12,7mm API</Polish>
|
||||
<Italian>12.7mm API</Italian>
|
||||
@ -1929,7 +1929,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_API_Mag_Description">
|
||||
<English>Caliber: 12.7x99mm API<br />Rounds: 5</English>
|
||||
<French>Calibre: 12.7x99mm API<br />Cartouches: 5</French>
|
||||
<French>Calibre: 12,7x99mm API<br />Cartouches: 5</French>
|
||||
<Spanish>Calibre: 12.7x99mm API<br />Balas: 5</Spanish>
|
||||
<Polish>Kaliber: 12,7x99mm API<br />Pociski: 5</Polish>
|
||||
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные<br />Патронов: 5</Russian>
|
||||
@ -1943,7 +1943,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_AMAX_Mag_Name">
|
||||
<English>12.7x99mm 5Rnd Mag (AMAX)</English>
|
||||
<French>Ch. 12.7x99mm 5Cps (AMAX)</French>
|
||||
<French>Ch. 12,7x99mm 5Cps (AMAX)</French>
|
||||
<Spanish>Cargador de 5 balas de 12.7x99mm (AMAX)</Spanish>
|
||||
<Polish>Magazynek 12,7x99mm 5rd (AMAX)</Polish>
|
||||
<Russian>Магазин из 5-ти 12,7x99 мм (A-MAX)</Russian>
|
||||
@ -1957,7 +1957,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_AMAX_Mag_NameShort">
|
||||
<English>12.7mm</English>
|
||||
<French>12.7mm</French>
|
||||
<French>12,7mm</French>
|
||||
<Spanish>12.7mm</Spanish>
|
||||
<Polish>12,7mm</Polish>
|
||||
<Russian>12,7 мм</Russian>
|
||||
@ -1971,7 +1971,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_5Rnd_127x99_AMAX_Mag_Description">
|
||||
<English>Caliber: 12.7x99mm (AMAX)<br />Rounds: 5</English>
|
||||
<French>Calibre: 12.7x99mm (AMAX)<br />Cartouches: 5</French>
|
||||
<French>Calibre: 12,7x99mm (AMAX)<br />Cartouches: 5</French>
|
||||
<Spanish>Calibre: 12.7x99mm (AMAX)<br />Balas: 5</Spanish>
|
||||
<Polish>Kaliber: 12,7x99mm (AMAX)<br />Pociski: 5</Polish>
|
||||
<Russian>Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5</Russian>
|
||||
|
@ -30,7 +30,7 @@ if (_state) then {
|
||||
_unit setVariable [QGVAR(escortedUnit), _target, true];
|
||||
|
||||
//Add Actionmenu to release captive
|
||||
_actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(StopEscorting)],
|
||||
private _actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(StopEscorting)],
|
||||
{[(_this select 0), ((_this select 0) getVariable [QGVAR(escortedUnit), objNull]), false] call FUNC(doEscortCaptive);},
|
||||
nil, 20, false, true, "", QUOTE(!isNull (GETVAR(_target,QGVAR(escortedUnit),objNull)))];
|
||||
|
||||
|
@ -23,7 +23,7 @@ if (_unit == (vehicle _unit)) then {
|
||||
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
|
||||
};
|
||||
} else {
|
||||
_turretPath = [];
|
||||
private _turretPath = [];
|
||||
{
|
||||
_x params ["_xUnit", "", "", "_xTurretPath"];
|
||||
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
|
||||
|
@ -31,7 +31,7 @@ if (local _unit) then {
|
||||
|
||||
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||
//Need to force animation for FFV turrets
|
||||
_turretPath = [];
|
||||
private _turretPath = [];
|
||||
{
|
||||
_x params ["_xUnit", "", "", "_xTurretPath"];
|
||||
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
|
||||
|
@ -46,7 +46,7 @@ if (_respawn > 3) then {
|
||||
};
|
||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_oldUnit getVariable [QGVAR(isEscorting), false]) then {
|
||||
_oldUnit setVariable [QGVAR(isEscorting), false, true];
|
||||
if (_unit getVariable [QGVAR(isEscorting), false]) then {
|
||||
_unit setVariable [QGVAR(isEscorting), false, true];
|
||||
};
|
||||
};
|
||||
|
@ -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);
|
||||
};
|
||||
};
|
||||
|
@ -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 {
|
||||
|
@ -40,4 +40,5 @@ if (_item isEqualType "") then {
|
||||
_validItem &&
|
||||
{_itemSize > 0} &&
|
||||
{alive _vehicle} &&
|
||||
{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))}
|
||||
{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))} &&
|
||||
{locked _vehicle < 2}
|
||||
|
@ -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.");
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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"];
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Cargo">
|
||||
<Key ID="STR_ACE_Cargo_loadObject">
|
||||
@ -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<br/>caricato su<br/>%2</Italian>
|
||||
<Hungarian>%1<br/>berakodva ide:<br/>%2</Hungarian>
|
||||
<Russian>%1<br/>загружен в<br/>%2</Russian>
|
||||
<Japanese>%1&lt;br/&gt; は &lt;br/&gt;%2 へ積み込まれた</Japanese>
|
||||
<Japanese>%1<br/>は<br/>%2へ積み込まれた</Japanese>
|
||||
<Korean>%1<br/>는<br/>%2 에 실림</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_UnloadedItem">
|
||||
@ -143,7 +143,7 @@
|
||||
<Italian>Hai scaricato<br/>%1 da<br/>%2</Italian>
|
||||
<Hungarian>1%<br/>kirakodva ebből:<br/>%2</Hungarian>
|
||||
<Russian>%1<br/>разгружен из<br/>%2</Russian>
|
||||
<Japanese>&lt;br/&gt;%2 から &lt;br/&gt;%1 が下ろされた</Japanese>
|
||||
<Japanese><br/>%1が<br/>%2から降ろされた</Japanese>
|
||||
<Korean>%1<br/>는<br/>%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<br/>non può essere caricato</Italian>
|
||||
<Spanish>%1<br/>no pudo ser cargado</Spanish>
|
||||
<French>%1<br /> n'a pas pu être chargé</French>
|
||||
<Japanese>%1&lt;br/&gt;は積み込めなかった</Japanese>
|
||||
<Japanese>%1<br/>は積み込めなかった</Japanese>
|
||||
<Korean>%1<br/>이 실릴 수가 없습니다</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_UnloadingFailed">
|
||||
@ -195,7 +195,7 @@
|
||||
<Italian>%1<br/>non può essere scaricato</Italian>
|
||||
<Spanish>%1<br/>no pudo ser descargado</Spanish>
|
||||
<French>%1<br /> n'a pas pu être déchargé</French>
|
||||
<Japanese>%1&lt;br/&gt;は下ろせなかった</Japanese>
|
||||
<Japanese>%1<br/>は降ろせなかった</Japanese>
|
||||
<Korean>%1<br/>이 내려질 수가 없습니다</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_makeLoadable_displayName">
|
||||
@ -243,6 +243,8 @@
|
||||
<Japanese>空中投下</Japanese>
|
||||
<Polish>Zrzut zaopatrzenia</Polish>
|
||||
<Korean>공중 투하</Korean>
|
||||
<French>Largage aérien</French>
|
||||
<Italian>Lancio Aereo</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_unlevelFlightWarning">
|
||||
<English>Unlevel Flight</English>
|
||||
@ -250,6 +252,18 @@
|
||||
<Japanese>機体が水平ではありません</Japanese>
|
||||
<Polish>Nierówny lot</Polish>
|
||||
<Korean>기체가 수평이 아닙니다</Korean>
|
||||
<French>Rétablir l'assiette</French>
|
||||
<Italian>Volo non Livellato</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent">
|
||||
<English>Paradrop Time Coffecient</English>
|
||||
<Japanese>空中投下までの時間係数</Japanese>
|
||||
<Italian>Coefficente Tempo Lancio Paracadute</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
|
||||
<English>Modifier for how long it takes to paradrop a cargo item.</English>
|
||||
<Japanese>カーゴ アイテムを空中投下するまでの時間を変更します。</Japanese>
|
||||
<Italian>Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo.</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -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">
|
||||
@ -7,6 +7,8 @@
|
||||
<Polish>Świetliki</Polish>
|
||||
<German>Knicklichter</German>
|
||||
<Korean>켐라이트</Korean>
|
||||
<French>Cyalumes</French>
|
||||
<Italian>Luce chimica</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Action_Prepare">
|
||||
<English>Prepare %1</English>
|
||||
@ -14,23 +16,27 @@
|
||||
<Polish>Przygotuj %1</Polish>
|
||||
<German>%1 vorbereiten</German>
|
||||
<Korean>%1 준비</Korean>
|
||||
<French>Prépare %1</French>
|
||||
<Italian>Prepara %1</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Action_Prepare_Done">
|
||||
<English>%1<br/>Prepared</English>
|
||||
<Japanese>%1&lt;br/&gt; をつかった</Japanese>
|
||||
<Japanese>%1<br/>をつかった</Japanese>
|
||||
<Polish>%1<br/>Przygotowany</Polish>
|
||||
<German>%1<br/>vorbereitet</German>
|
||||
<Korean>%1<br/>준비됨</Korean>
|
||||
<French>%1<br/>prêt</French>
|
||||
<Italian>%1 <br/> Preparata</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Inventory_Full">
|
||||
<English>No inventory space</English>
|
||||
<German>Kein Platz im Inventar</German>
|
||||
<Spanish>Sin espacio en inventario</Spanish>
|
||||
<Polish>Brak miejsca w ekwipunku</Polish>
|
||||
<French>Pas de place dans l'inventaire</French>
|
||||
<French>Pas de place</French>
|
||||
<Czech>Nedostatek místa v inventáři</Czech>
|
||||
<Portuguese>Sem espaço no inventário</Portuguese>
|
||||
<Italian>Non hai più spazio</Italian>
|
||||
<Italian>Nessuno spazio nell'inventario</Italian>
|
||||
<Hungarian>Nincs több hely</Hungarian>
|
||||
<Russian>В инвентаре нет места</Russian>
|
||||
<Japanese>インベントリに空きがありません</Japanese>
|
||||
@ -42,6 +48,8 @@
|
||||
<Polish>[ACE] Świetliki</Polish>
|
||||
<German>[ACE] Knicklichter</German>
|
||||
<Korean>[ACE] 켐라이트</Korean>
|
||||
<French>[ACE] Cyalume</French>
|
||||
<Italian>[ACE] Luci chimiche</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Orange_DisplayName">
|
||||
<English>Chemlight (Orange)</English>
|
||||
@ -49,6 +57,8 @@
|
||||
<Polish>Świetlik (pomarańczowy)</Polish>
|
||||
<German>Knicklicht (orange)</German>
|
||||
<Korean>켐라이트 (주황)</Korean>
|
||||
<French>Cyalume (orange)</French>
|
||||
<Italian>Luce chimica (Arancione)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Orange_DisplayNameShort">
|
||||
<English>Orange Light</English>
|
||||
@ -56,13 +66,17 @@
|
||||
<Polish>Pomarańczowe światło</Polish>
|
||||
<German>Oranges Knicklicht</German>
|
||||
<Korean>주황색</Korean>
|
||||
<French>Lum. orange </French>
|
||||
<Italian>Luce Arancione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Orange_DescriptionShort">
|
||||
<English>Type: Light - Orange<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - オレンジ&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - オレンジ<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - pomarańczowe<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - orange<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류:밝은 오렌지<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - orange<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_White_DisplayName">
|
||||
<English>Chemlight (White)</English>
|
||||
@ -70,6 +84,8 @@
|
||||
<Polish>Świetlik (biały)</Polish>
|
||||
<German>Knicklicht (weiß)</German>
|
||||
<Korean>켐라이트 (하양)</Korean>
|
||||
<French>Cyalume (blanc)</French>
|
||||
<Italian>Luce chimica (Bianca)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_White_DisplayNameShort">
|
||||
<English>White Light</English>
|
||||
@ -77,13 +93,17 @@
|
||||
<Polish>Białe światło</Polish>
|
||||
<German>Weißes Knicklicht</German>
|
||||
<Korean>하얀색</Korean>
|
||||
<French>Lum. blanche </French>
|
||||
<Italian>Luce Bianca</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_White_DescriptionShort">
|
||||
<English>Type: Light - White<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 白&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 白<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - białe<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - weiß<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류:하얀색<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - blanche<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiRed_DisplayName">
|
||||
<English>Chemlight (Hi Red)</English>
|
||||
@ -91,6 +111,8 @@
|
||||
<Polish>Świetlik (jaskrawy czerwony)</Polish>
|
||||
<German>Knicklicht (rot, hell)</German>
|
||||
<Korean>켐라이트 (밝은 빨간색)</Korean>
|
||||
<French>Cyalume (Hi rouge)</French>
|
||||
<Italian>Luce chimica (Hi Rossa)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiRed_DisplayNameShort">
|
||||
<English>Red Hi Light</English>
|
||||
@ -98,13 +120,17 @@
|
||||
<Polish>Jaskrawe czerwone światło</Polish>
|
||||
<German>Helles, rotes Knicklicht</German>
|
||||
<Korean>밝은 빨간색</Korean>
|
||||
<French>Lum. rouge haute intensité</French>
|
||||
<Italian>Luce Hi Rossa</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiRed_DescriptionShort">
|
||||
<English>Type: Light - Red Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 高輝度 赤 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 高輝度 赤 (5分間)<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - jaskrawe czerwone (5 minut)<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - rot, hell (5 Minuten)<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류: 밝은 빨간색 (5분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - rouge Hi (5 minutes)<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Rossa Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayName">
|
||||
<English>Chemlight (Hi Yellow)</English>
|
||||
@ -112,6 +138,8 @@
|
||||
<Polish>Świetlik (jaskrawy żółty)</Polish>
|
||||
<German>Knicklicht (gelb, hell)</German>
|
||||
<Korean>켐라이트 (밝은 노란색)</Korean>
|
||||
<French>Cyalume (Hi jaune)</French>
|
||||
<Italian>Luce chimica (Hi Gialla)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayNameShort">
|
||||
<English>Yellow Hi Light</English>
|
||||
@ -119,13 +147,17 @@
|
||||
<Polish>Jaskrawe żółte światło</Polish>
|
||||
<German>Helles, gelbes Knicklicht</German>
|
||||
<Korean>밝은 노란색</Korean>
|
||||
<French>Lum. jaune haute intensité</French>
|
||||
<Italian>Luce Hi Gialla</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiYellow_DescriptionShort">
|
||||
<English>Type: Light - Yellow Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 高輝度 黄 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 高輝度 黄 (5分間)<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - jaskrawe żółte (5 minut)<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - gelb, hell (5 Minuten)<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류:밝은 노란색 (5분)<br />수량: 1<br />사용처: Hand</Korean>
|
||||
<French>Type: Lumière - Jaune Hi (5 minutes)Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Gialla Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiOrange_DisplayName">
|
||||
<English>Chemlight (Hi Orange)</English>
|
||||
@ -133,6 +165,8 @@
|
||||
<Polish>Świetlik (jaskrawy pomarańczowy)</Polish>
|
||||
<German>Knicklicht (orange, hell)</German>
|
||||
<Korean>켐라이트 (밝은 주황색)</Korean>
|
||||
<French>Cyalume (Hi orange)</French>
|
||||
<Italian>Luce chimica (Hi Arancione)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiOrange_DisplayNameShort">
|
||||
<English>Orange Hi Light</English>
|
||||
@ -140,13 +174,17 @@
|
||||
<Polish>Jaskrawe pomarańczowe światło</Polish>
|
||||
<German>Helles, oranges Knicklicht</German>
|
||||
<Korean>밝은 주황색</Korean>
|
||||
<French>Lum. orange haute intensité</French>
|
||||
<Italian>Luce Hi Arancione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiOrange_DescriptionShort">
|
||||
<English>Type: Light - Orange Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 高輝度 オレンジ (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 高輝度 オレンジ (5分間)<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - jaskrawe pomarańczowe (5 minut)<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - orange, hell (5 Minuten)<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - orange Hi (5 minutes)<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Arancione Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayName">
|
||||
<English>Chemlight (Hi White)</English>
|
||||
@ -154,6 +192,8 @@
|
||||
<Polish>Świetlik (jaskrawy biały)</Polish>
|
||||
<German>Knicklicht (weiß, hell)</German>
|
||||
<Korean>켐라이트 (밝은 하얀색)</Korean>
|
||||
<French>Cyalume (Hi blanc)</French>
|
||||
<Italian>Luce chimica (Hi Bianca)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayNameShort">
|
||||
<English>White Hi Light</English>
|
||||
@ -161,13 +201,17 @@
|
||||
<Polish>Jaskrawe białe światło</Polish>
|
||||
<German>Helles, weißes Knicklicht</German>
|
||||
<Korean>밝은 하얀색</Korean>
|
||||
<French>Lum. blanche haute intensité</French>
|
||||
<Italian>Luce Hi Bianca</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiWhite_DescriptionShort">
|
||||
<English>Type: Light - White Hi (5 minute)<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 高輝度 白 (5分間)&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 高輝度 白 (5分間)<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - jaskrawe białe (5 minut)<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - weiß, hell (5 Minuten)<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류: 밝은 하얀색 (5분)<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - blanche Hi (5 minutes)<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Bianca Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_IR_DisplayName">
|
||||
<English>Chemlight (IR)</English>
|
||||
@ -175,6 +219,8 @@
|
||||
<Polish>Świetlik (podczerwony)</Polish>
|
||||
<German>Knicklicht (IR)</German>
|
||||
<Korean>켐라이트 (적외선)</Korean>
|
||||
<French>Cyalume (IR)</French>
|
||||
<Italian>Luce chimica (IR)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_IR_DisplayNameShort">
|
||||
<English>IR Light</English>
|
||||
@ -182,13 +228,17 @@
|
||||
<Polish>Światło podczerwone</Polish>
|
||||
<German>IR-Knicklicht</German>
|
||||
<Korean>적외선 켐라이트</Korean>
|
||||
<French>Lumière IR</French>
|
||||
<Italian>Luce IR</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_IR_DescriptionShort">
|
||||
<English>Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand</English>
|
||||
<Japanese>種類: 照明 - 赤外線&lt;br /&gt;装填数: 1&lt;br /&gt;次で使用: 携帯</Japanese>
|
||||
<Japanese>種類: 照明 - 赤外線<br />装填数: 1<br />次で使用: 携帯</Japanese>
|
||||
<Polish>Typ: Światło - podczerwone<br/>Pociski: 1<br/>Używany w: ręce</Polish>
|
||||
<German>Typ: Licht - infrarot<br />Anzahl: 1<br />Benutzt in: Hand</German>
|
||||
<Korean>종류: 적외선<br />수량: 1<br />사용처: 손</Korean>
|
||||
<French>Type: Lumière - infrarouge<br />Nbre: 1<br /> À main</French>
|
||||
<Italian>Tipo: Luce - Infrarossi<br />Usata in: Mano</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Empty_DisplayName">
|
||||
<English>Chemlight Shield (Empty)</English>
|
||||
@ -196,6 +246,8 @@
|
||||
<Polish>Osłona na świetlik (pusta)</Polish>
|
||||
<German>Knicklicht-Abschirmung (leer)</German>
|
||||
<Korean>켐라이트 쉴드 (비어있음)</Korean>
|
||||
<French>Étui cyalume (vide)</French>
|
||||
<Italian>Scudo Luce chimica (Vuoto)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Empty_DescriptionShort">
|
||||
<English>Shield for chemlights. Combine with chemlight to prepare reading light.</English>
|
||||
@ -203,6 +255,8 @@
|
||||
<Polish>Osłona na świetliki. Połącz ją ze świetlikiem by stworzyć lampkę do czytania.</Polish>
|
||||
<German>Abschirmung für Knicklichter. Mit Knicklicht kombinieren, um Leselicht zu erhalten.</German>
|
||||
<Korean>켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다.</Korean>
|
||||
<French>Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture.</French>
|
||||
<Italian>Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Green_DisplayName">
|
||||
<English>Chemlight Shield (Green)</English>
|
||||
@ -210,6 +264,8 @@
|
||||
<Polish>Osłona na świetlik (zielona)</Polish>
|
||||
<German>Knicklicht-Abschirmung (grün)</German>
|
||||
<Korean>켐라이트 쉴드 (초록)</Korean>
|
||||
<French>Étui cyalume (vert)</French>
|
||||
<Italian>Scudo Luce Chimica (Verde)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Green_DescriptionShort">
|
||||
<English>Green reading light.</English>
|
||||
@ -217,6 +273,8 @@
|
||||
<Polish>Zielona lampka.</Polish>
|
||||
<German>Grünes Leselicht.</German>
|
||||
<Korean>초록빛 조명</Korean>
|
||||
<French>Lampe d'orientation verte.</French>
|
||||
<Italian>Luce da lettura Verde.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Red_DisplayName">
|
||||
<English>Chemlight Shield (Red)</English>
|
||||
@ -224,6 +282,8 @@
|
||||
<Polish>Osłona na świetlik (czerwona)</Polish>
|
||||
<German>Knicklicht-Abschirmung (rot)</German>
|
||||
<Korean>켐라이트 쉴드 (빨강)</Korean>
|
||||
<French>Étui cyalume (rouge)</French>
|
||||
<Italian>Scudo Luce Chimica (Rossa)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Red_DescriptionShort">
|
||||
<English>Red reading light.</English>
|
||||
@ -231,6 +291,8 @@
|
||||
<Polish>Czerwona lampka.</Polish>
|
||||
<German>Rotes Leselicht.</German>
|
||||
<Korean>빨간색 조명</Korean>
|
||||
<French>Lampe d'orientation rouge.</French>
|
||||
<Italian>Luce da lettura Rossa.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Blue_DisplayName">
|
||||
<English>Chemlight Shield (Blue)</English>
|
||||
@ -238,6 +300,8 @@
|
||||
<Polish>Osłona na świetlik (niebieska)</Polish>
|
||||
<German>Knicklicht-Abschirmung (blau)</German>
|
||||
<Korean>켐라이트 쉴드 (파랑)</Korean>
|
||||
<French>Étui cyalume (bleu)</French>
|
||||
<Italian>Scudo Luce Chimica (Blu)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Blue_DescriptionShort">
|
||||
<English>Blue reading light.</English>
|
||||
@ -245,6 +309,8 @@
|
||||
<Polish>Niebieska lampka.</Polish>
|
||||
<German>Blaues Leselicht.</German>
|
||||
<Korean>파란색 조명</Korean>
|
||||
<French>Lampe d'orientation bleue.</French>
|
||||
<Italian>Luce da lettura Blu.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DisplayName">
|
||||
<English>Chemlight Shield (Yellow)</English>
|
||||
@ -252,6 +318,8 @@
|
||||
<Polish>Osłona na świetlik (żółta)</Polish>
|
||||
<German>Knicklicht-Abschirmung (gelb)</German>
|
||||
<Korean>켐라이트 쉴드 (노랑)</Korean>
|
||||
<French>Étui cyalume (jaune)</French>
|
||||
<Italian>Scudo Luce Chimica (Gialla)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DescriptionShort">
|
||||
<English>Yellow reading light.</English>
|
||||
@ -259,6 +327,8 @@
|
||||
<Polish>Żółta lampka.</Polish>
|
||||
<German>Gelbes Leselicht.</German>
|
||||
<Korean>노란색 조명</Korean>
|
||||
<French>Lampe d'orientation jaune.</French>
|
||||
<Italian>Luce da lettura Gialla.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Orange_DisplayName">
|
||||
<English>Chemlight Shield (Orange)</English>
|
||||
@ -266,6 +336,8 @@
|
||||
<Polish>Osłona na świetlik (pomarańczowa)</Polish>
|
||||
<German>Knicklicht-Abschirmung (orange)</German>
|
||||
<Korean>켐라이트 쉴드 (주황)</Korean>
|
||||
<French>Étui cyalume (orange)</French>
|
||||
<Italian>Scudo Luce Chimica (Arancione)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_Orange_DescriptionShort">
|
||||
<English>Orange reading light.</English>
|
||||
@ -273,6 +345,8 @@
|
||||
<Polish>Pomarańczowa lampka.</Polish>
|
||||
<German>Oranges Leselicht.</German>
|
||||
<Korean>주황색 조명</Korean>
|
||||
<French>Lampe d'orientation orange.</French>
|
||||
<Italian>Luce da lettura Arancione.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_White_DisplayName">
|
||||
<English>Chemlight Shield (White)</English>
|
||||
@ -280,6 +354,8 @@
|
||||
<Polish>Osłona na świetlik (biała)</Polish>
|
||||
<German>Knicklicht-Abschirmung (weiß)</German>
|
||||
<Korean>켐라이트 쉴드 (하양)</Korean>
|
||||
<French>Étui cyalume (blanc)</French>
|
||||
<Italian>Scudo Luce Chimica (Bianca)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_Shield_White_DescriptionShort">
|
||||
<English>White reading light.</English>
|
||||
@ -287,6 +363,8 @@
|
||||
<Polish>Biała lampka.</Polish>
|
||||
<German>Weißes Leselicht.</German>
|
||||
<Korean>주황색 조명</Korean>
|
||||
<French>Lampe d'orientation blanche.</French>
|
||||
<Italian>Luce da lettura Bianca.</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -137,6 +137,7 @@ if (isServer) then {
|
||||
if (isServer) then {
|
||||
[QGVAR(hideObjectGlobal), {(_this select 0) hideObjectGlobal (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(enableSimulationGlobal), {(_this select 0) enableSimulationGlobal (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||
[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;
|
||||
};
|
||||
@ -299,18 +300,10 @@ enableCamShake true;
|
||||
// Set up numerous eventhanders for player controlled units
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
// It is possible that CBA_fnc_addPlayerEventHandler has allready been called and run
|
||||
// We will NOT get any events for the initial state, so manually set ACE_player
|
||||
if (!isNull (missionNamespace getVariable ["cba_events_oldUnit", objNull])) then {
|
||||
// INFO("CBA_fnc_addPlayerEventHandler has already run - manually setting ace_player"); //ToDo CBA 3.1
|
||||
diag_log text "[ACE-Common - CBA_fnc_addPlayerEventHandler has already run - manually setting ace_player";
|
||||
ACE_player = cba_events_oldUnit;
|
||||
};
|
||||
|
||||
// "playerChanged" event
|
||||
TRACE_1("adding unit playerEH to set ace_player",isNull cba_events_oldUnit);
|
||||
["unit", {
|
||||
ACE_player = (_this select 0);
|
||||
}] call CBA_fnc_addPlayerEventHandler;
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
GVAR(OldIsCamera) = false;
|
||||
|
||||
@ -469,8 +462,8 @@ GVAR(deviceKeyCurrentIndex) = -1;
|
||||
["ACE3 Equipment", QGVAR(cycleDevice), (localize "STR_ACE_Common_cycleHandheldDevices"), {
|
||||
[1] call FUNC(deviceKeyFindValidIndex);
|
||||
if (GVAR(deviceKeyCurrentIndex) == -1) exitWith {false};
|
||||
_displayName = ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 0);
|
||||
_iconImage = ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 1);
|
||||
private _displayName = ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 0);
|
||||
private _iconImage = ((GVAR(deviceKeyHandlingArray) select GVAR(deviceKeyCurrentIndex)) select 1);
|
||||
[_displayName, _iconImage] call FUNC(displayTextPicture);
|
||||
true
|
||||
},
|
||||
|
@ -41,18 +41,29 @@ private _addons = "true" configClasses (configFile >> "CfgPatches");//
|
||||
_addons = _addons apply {toLower configName _x};//
|
||||
_addons = _addons select {_x find "ace_" == 0};
|
||||
|
||||
private _oldCompats = [];
|
||||
{
|
||||
if (getText (configFile >> "CfgPatches" >> _x >> "versionStr") != _version) then {
|
||||
private _errorMsg = format ["File %1.pbo is outdated.", _x];
|
||||
|
||||
ERROR(_errorMsg);
|
||||
|
||||
if ((_x select [0, 10]) != "ace_compat") then {
|
||||
if (hasInterface) then {
|
||||
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
} else {
|
||||
_oldCompats pushBack _x; // Don't block game if it's just an old compat pbo
|
||||
};
|
||||
};
|
||||
false
|
||||
} count _addons;
|
||||
if (!(_oldCompats isEqualTo [])) then {
|
||||
[{
|
||||
// Lasts for ~10 seconds
|
||||
ERROR_WITH_TITLE_1("The following ACE compatiblity PBOs are outdated", "%1", _this);
|
||||
}, _oldCompats, 1] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
|
||||
///////////////
|
||||
// check dlls
|
||||
@ -111,7 +122,7 @@ if (isMultiplayer) then {
|
||||
|
||||
_addons = _addons - GVAR(ServerAddons);
|
||||
if !(_addons isEqualTo []) then {
|
||||
_errorMsg = format ["Client/Server Addon Mismatch. Client has extra addons: %1.",_addons];
|
||||
private _errorMsg = format ["Client/Server Addon Mismatch. Client has extra addons: %1.",_addons];
|
||||
|
||||
ERROR(_errorMsg);
|
||||
|
||||
|
@ -28,7 +28,7 @@ if (_searchOffsetOrName isEqualType "") then {
|
||||
} forEach GVAR(deviceKeyHandlingArray);
|
||||
} else {
|
||||
if (count GVAR(deviceKeyHandlingArray) > 0) then {
|
||||
_baseIndex = [GVAR(deviceKeyCurrentIndex) + _searchOffsetOrName, 0] select (GVAR(deviceKeyCurrentIndex) == -1);
|
||||
private _baseIndex = [GVAR(deviceKeyCurrentIndex) + _searchOffsetOrName, 0] select (GVAR(deviceKeyCurrentIndex) == -1);
|
||||
|
||||
for "_offset" from _baseIndex to (count GVAR(deviceKeyHandlingArray) - 1 + _baseIndex) do {
|
||||
private _realIndex = _offset % (count GVAR(deviceKeyHandlingArray));
|
||||
|
@ -23,7 +23,7 @@ private _doorTurrets = [];
|
||||
|
||||
_config = [_config, _x] call FUNC(getTurretConfigPath);
|
||||
|
||||
if (getNumber (_config >> "isCopilot" == 0) && {count getArray (_config >> "weapons") > 0}) then {
|
||||
if (((getNumber (_config >> "isCopilot")) == 0) && {count getArray (_config >> "weapons") > 0}) then {
|
||||
_doorTurrets pushBack _x;
|
||||
};
|
||||
false
|
||||
|
@ -25,9 +25,9 @@ private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationO
|
||||
private _mapData = _map call FUNC(getMapData);
|
||||
if (!(_mapData isEqualTo [])) then {
|
||||
_lat = _mapData select 0;
|
||||
_alt = _mapData select 1;
|
||||
_altitude = _mapData select 1;
|
||||
};
|
||||
TRACE_2("Latitude and Altitude",_lat,_alt);
|
||||
TRACE_2("Latitude and Altitude",_lat,_altitude);
|
||||
|
||||
private _UTM = [_long, _lat] call BIS_fnc_posDegToUTM;
|
||||
private _easting = _UTM select 0;
|
||||
|
@ -71,6 +71,7 @@ if (_map in ["koplic"]) exitWith { [42, 0] };
|
||||
if (_map in ["kunduz"]) exitWith { [37, 0] };
|
||||
if (_map in ["lingor", "lingor3", "dingor"]) exitWith { [-4, 0] };
|
||||
if (_map in ["lost", "lostw"]) exitWith { [60, 0] };
|
||||
if (_map in ["lythium"]) exitWith { [34, 0] };
|
||||
if (_map in ["malvinas"]) exitWith { [-52, 0] };
|
||||
if (_map in ["marenice"]) exitWith { [51, 0] }; // CSA38 Mod (Czechoslovak army 1938 - Munich crisis), Lisatian Mountains.
|
||||
if (_map in ["mcn_aliabad"]) exitWith { [36, 0] };
|
||||
|
@ -64,8 +64,8 @@ while {_startGrid == _originGrid} do {
|
||||
private _realOffsetY = (parseNumber (_originGrid select [count _formatX, count _formatY])) * _stepY + _heightOffset - 1;
|
||||
|
||||
//Calculate MGRS 10digit step - they should both be 1 meter:
|
||||
_stepXat5 = _stepX * 10 ^ ((count _formatX) - 5);
|
||||
_stepYat5 = -1 * _stepY * 10 ^ ((count _formatY) - 5);
|
||||
private _stepXat5 = _stepX * 10 ^ ((count _formatX) - 5);
|
||||
private _stepYat5 = -1 * _stepY * 10 ^ ((count _formatY) - 5);
|
||||
|
||||
if (_stepYat5 < 0) then {
|
||||
WARNING_1("Map Grid Warning (%1) - Northing is reversed.",worldName);
|
||||
|
@ -18,4 +18,4 @@ params ["_array", "_value"];
|
||||
private _min = _array select floor _value;
|
||||
private _max = _array select ceil _value;
|
||||
|
||||
_min + (_max - _min) * (_value % 1) // return
|
||||
linearConversion [0, 1, _value % 1, _min, _max] // return
|
||||
|
@ -27,7 +27,7 @@ if (isNil QGVAR(publishSchedId)) then {
|
||||
GVAR(publishSchedId) = [{
|
||||
if (diag_tickTime > GVAR(publishNextTime)) then {
|
||||
{
|
||||
_x params [_unit, _varName];
|
||||
_x params ["_unit", "_varName"];
|
||||
_unit setVariable [_varName, _unit getVariable _varName, true];
|
||||
false
|
||||
} count GVAR(publishVarNames);
|
||||
|
@ -74,7 +74,7 @@ if (!isServer) then {
|
||||
} forEach _files;
|
||||
|
||||
// display and log error messages
|
||||
_fnc_cutComma = {
|
||||
private _fnc_cutComma = {
|
||||
_string = _this;
|
||||
_string = toArray _string;
|
||||
|
||||
|
@ -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">
|
||||
@ -1017,5 +1017,19 @@
|
||||
<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>
|
||||
|
@ -65,7 +65,6 @@ if (_amountOfMagazines > 0) exitWith {
|
||||
private _velVec = _vectorAmmo vectorMultiply _speed;
|
||||
_projectile setVectorDir _velVec;
|
||||
_projectile setVelocity _velVec;
|
||||
// [ACE_player, _projectile, [1,0,0,1]] call EFUNC(frag,addTrack); // visual debuging from ace_frag
|
||||
} else {
|
||||
_projectile setDamage 1;
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="CookOff">
|
||||
<Key ID="STR_ACE_CookOff_enable_name">
|
||||
@ -9,7 +9,8 @@
|
||||
<Japanese>誘爆を有効化</Japanese>
|
||||
<Korean>쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj efekty samozapłonu amunicji</Polish>
|
||||
<French>Activer </French>
|
||||
<French>Active le cook-off</French>
|
||||
<Italian>Abilita Esplosione</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enable_tooltip">
|
||||
<English>Enables cook off and related vehicle destruction effects.</English>
|
||||
@ -19,6 +20,8 @@
|
||||
<Japanese>誘爆を有効化し、車両が誘爆によって破壊されていきます。</Japanese>
|
||||
<Korean>쿡오프 현상을 활성화 하고 관련된 차량에 폭발 이펙트를 적용합니다.</Korean>
|
||||
<Polish>Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach.</Polish>
|
||||
<French>Active le cook-off (autocombustion des munitions) et les effets de destruction liés.</French>
|
||||
<Italian>Abilita l'esplosione e i relativi effetti di distruzione del veicolo.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_generic_turret_wreck">
|
||||
<Original>Wreck (Turret)</Original>
|
||||
@ -40,6 +43,8 @@
|
||||
<German>Selbstzündung für Munitionskisten ermöglichen</German>
|
||||
<Korean>탄약 상자 쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj samozapłon skrzyń z amunicją</Polish>
|
||||
<French>Cook-off caisses de munitions</French>
|
||||
<Italian>Abilita esplosione cassa munizioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableBoxCookoff_tooltip">
|
||||
<English>Enables cooking off of ammo boxes.</English>
|
||||
@ -47,6 +52,8 @@
|
||||
<German>Ermöglicht Selbstzündung von Munitionskisten.</German>
|
||||
<Korean>탄약 상자에 쿡오프 현상을 적용합니다.</Korean>
|
||||
<Polish>Aktywuje samozapłon skrzyń z amunicją</Polish>
|
||||
<French>Active le cook-off sur toutes les caisses de munitions.</French>
|
||||
<Italian>Abilita l'esplosione della cassa di munizioni. </Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_name">
|
||||
<English>Enable Ammunition cook off</English>
|
||||
@ -54,23 +61,30 @@
|
||||
<German>Selbstzündung für Munition ermöglichen</German>
|
||||
<Korean>탄약 쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj samozapłon amunicji</Polish>
|
||||
<French>Active le cook-off des munitions</French>
|
||||
<Italian>Abilita Esplosione munizioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_tooltip">
|
||||
<English>Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition.</English>
|
||||
<Japanese>弾薬が誘爆します。車両が燃えると、搭載している弾薬が激しく燃え上がりす。</Japanese>
|
||||
<German>Ermöglicht Selbstzündung von Munition. Feuert Projektile der Munition ab, solange das Fahrzeug brennt und Munition besitzt.</German>
|
||||
<Polish>Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję.</Polish>
|
||||
<French>Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions.</French>
|
||||
<Italian>Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_name">
|
||||
<English>Ammunition cook off duration</English>
|
||||
<Polish>Czas trwania samozapłonu amunicji</Polish>
|
||||
<Japanese>弾薬の誘爆持続時間</Japanese>
|
||||
<French>Durée cook-off des munitions</French>
|
||||
<Italian>Durata esplosione munizioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_tooltip">
|
||||
<English>Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff]</English>
|
||||
<French>Active le et les effets de destructions assosicée aux vehicules.</French>
|
||||
<French>Multiplicateur de la durée du cook-off des munitions [Une valeur de 0 désactive l'effet]</French>
|
||||
<Polish>Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu]</Polish>
|
||||
<Japanese>誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化]</Japanese>
|
||||
<Italian>Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni]</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -79,7 +79,11 @@ GVAR(outputPFH) = [{
|
||||
});
|
||||
|
||||
// WP Heading
|
||||
_bearing = floor ((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir);
|
||||
_bearing = floor (if (GVAR(useDegrees)) then {
|
||||
((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir)
|
||||
} else {
|
||||
DEG_TO_MIL(((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir))
|
||||
});
|
||||
|
||||
// Output
|
||||
__gridControl ctrlSetText format ["%1", _dagrGrid];
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Disposable">
|
||||
<Key ID="STR_ACE_Disposable_UsedTube">
|
||||
@ -10,7 +10,7 @@
|
||||
<Spanish>Lanzador utilizado</Spanish>
|
||||
<Hungarian>Elhasznált kilövőcső</Hungarian>
|
||||
<Russian>Отстрелянная труба</Russian>
|
||||
<Italian>Tubo usato</Italian>
|
||||
<Italian>Lanciatore usato</Italian>
|
||||
<Portuguese>Tubo utilizado</Portuguese>
|
||||
<Japanese>使用済み</Japanese>
|
||||
<Korean>사용함</Korean>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Dogtags">
|
||||
<Key ID="STR_ACE_Dogtags_itemName">
|
||||
@ -10,6 +10,7 @@
|
||||
<German>Hundemarke</German>
|
||||
<Korean>군번줄</Korean>
|
||||
<French>Plaque d'identification</French>
|
||||
<Italian>Piastrina</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dogtags_checkItem">
|
||||
<English>Check Dog Tag</English>
|
||||
@ -20,6 +21,7 @@
|
||||
<German>Hundemarke prüfen</German>
|
||||
<Korean>군번줄 확인</Korean>
|
||||
<French>Vérifier les plaques d'identification</French>
|
||||
<Italian>Controlla Piastrina</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dogtags_checkDogtag">
|
||||
<English>Check</English>
|
||||
@ -30,6 +32,7 @@
|
||||
<German>Prüfen</German>
|
||||
<Korean>확인</Korean>
|
||||
<French>Vérifier</French>
|
||||
<Italian>Controlla</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dogtags_takeDogtag">
|
||||
<English>Take</English>
|
||||
@ -40,6 +43,7 @@
|
||||
<German>Nehmen</German>
|
||||
<Korean>회수</Korean>
|
||||
<French>Prendre</French>
|
||||
<Italian>Prendi</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dogtags_takeDogtagSuccess">
|
||||
<English>Dogtag taken from %1...</English>
|
||||
@ -50,6 +54,7 @@
|
||||
<German>Hundemarke von %1 genommen ...</German>
|
||||
<Korean>%1로부터 군번줄을 회수했습니다...</Korean>
|
||||
<French>Plaque d'identification pris sur %1...</French>
|
||||
<Italian>Piastrina presa da %1...</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dogtags_dogtagAlreadyTaken">
|
||||
<English>Somebody else has already taken the dogtag...</English>
|
||||
@ -60,7 +65,7 @@
|
||||
<German>Jemand anderes hat bereits die Hundemarke genommen ...</German>
|
||||
<Korean>누군가 이미 군번줄을 회수해갔습니다...</Korean>
|
||||
<French>Quelqu'un d'autre a déjâ pris les plaques d'identification...</French>
|
||||
<Italian>Qualcun altro ha già preso la piastrina...</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
||||
|
@ -51,7 +51,7 @@ if (_target isKindOf "CAManBase") then {
|
||||
} else {
|
||||
|
||||
// select no weapon and stop sprinting
|
||||
_unit action ["SwitchWeapon", _unit, _unit, 99];
|
||||
_unit action ["SwitchWeapon", _unit, _unit, 299];
|
||||
[_unit, "AmovPercMstpSnonWnonDnon", 0] call EFUNC(common,doAnimation);
|
||||
|
||||
[_unit, "forceWalk", "ACE_dragging", true] call EFUNC(common,statusEffect_set);
|
||||
|
@ -2,6 +2,7 @@
|
||||
PREP(addCellphoneIED);
|
||||
PREP(addClacker);
|
||||
PREP(addDetonateActions);
|
||||
PREP(addDetonateHandler);
|
||||
PREP(addExplosiveActions);
|
||||
PREP(addToSpeedDial);
|
||||
PREP(addTransmitterActions);
|
||||
|
@ -25,4 +25,6 @@ if (isServer) then {
|
||||
GVAR(explosivesOrientations) = []
|
||||
};
|
||||
|
||||
GVAR(detonationHandlers) = [];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -43,7 +43,7 @@ _explosivesList = [];
|
||||
{(_this select 2) call FUNC(detonateExplosive);},
|
||||
{true},
|
||||
{},
|
||||
[_unit,_range,_x]
|
||||
[_unit,_range,_x,_detonator]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
_unit
|
||||
@ -62,7 +62,7 @@ if (_detonator != "ACE_DeadManSwitch") then {
|
||||
{(_this select 2) call FUNC(detonateExplosiveAll);},
|
||||
{true},
|
||||
{},
|
||||
[_unit,_range,_explosivesList]
|
||||
[_unit,_range,_explosivesList, _detonator]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
_unit
|
||||
|
24
addons/explosives/functions/fnc_addDetonateHandler.sqf
Normal file
24
addons/explosives/functions/fnc_addDetonateHandler.sqf
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Add a explosive detonation handler.
|
||||
* Should be called on all machines.
|
||||
* Code needs to return BOOL: true(allowed) / false(blocked)
|
||||
* See https://ace3mod.com/wiki/framework/explosives-framework.html for an example.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Code <CODE>
|
||||
* - Passed [Unit<OBJECT>, MaxRange <NUMBER>, Explosive <OBJECT>, FuzeTime <NUMBER>, TriggerItem <STRING>]
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [{false}] call ace_explosives_fnc_addDetonateHandler;
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params [["_code", {true}, [{}]]];
|
||||
|
||||
GVAR(detonationHandlers) pushBack _code;
|
@ -21,7 +21,7 @@ TRACE_2("params",_unit,_explosive);
|
||||
|
||||
if (GVAR(ExplodeOnDefuse) && {(random 1.0) < (getNumber (ConfigFile >> "CfgAmmo" >> typeOf _explosive >> QGVAR(explodeOnDefuseChance)))}) exitWith {
|
||||
TRACE_1("exploding on defuse",_explosive);
|
||||
[_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive);
|
||||
[_unit, -1, [_explosive, 1], "#ExplodeOnDefuse"] call FUNC(detonateExplosive);
|
||||
[QGVAR(explodeOnDefuse), [_explosive, _unit]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
|
||||
|
@ -8,28 +8,35 @@
|
||||
* 2: Explosive <ARRAY>
|
||||
* 0: Explosive <OBJECT>
|
||||
* 1: Fuse time <NUMBER>
|
||||
* 3: Trigger Item Classname <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, 100, [Explosive, 1]] call ACE_Explosives_fnc_detonateExplosive; // has to be within range
|
||||
* [player, -1, [Explosive, 1]] call ACE_Explosives_fnc_detonateExplosive; // range ignored.
|
||||
* [player, 100, [Explosive, 1], "ACE_Clacker"] call ACE_Explosives_fnc_detonateExplosive; // has to be within range
|
||||
* [player, -1, [Explosive, 1], "ACE_Cellphone"] call ACE_Explosives_fnc_detonateExplosive; // range ignored.
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_range", "_item"];
|
||||
TRACE_3("params",_unit,_range,_item);
|
||||
params ["_unit", "_range", "_item", ["_triggerClassname", "#unknown", [""]]];
|
||||
TRACE_4("detonateExplosive",_unit,_range,_item,_triggerClassname);
|
||||
|
||||
private ["_result", "_ignoreRange", "_pos"];
|
||||
|
||||
_ignoreRange = (_range == -1);
|
||||
_result = true;
|
||||
|
||||
if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {TRACE_1("out of range",_range); false};
|
||||
|
||||
_result = true;
|
||||
{
|
||||
// Pass [Unit<OBJECT>, MaxRange <NUMBER>, Explosive <OBJECT>, FuzeTime <NUMBER>, TriggerItem <STRING>]
|
||||
private _handlerResult = [_unit, _range, _item select 0, _item select 1, _triggerClassname] call _x;
|
||||
if (_handlerResult isEqualTo false) then {TRACE_1("Handler Failed",_forEachIndex); _result = false};
|
||||
} forEach GVAR(detonationHandlers);
|
||||
if (!_result) exitWith {false};
|
||||
|
||||
if (getNumber (ConfigFile >> "CfgAmmo" >> typeOf (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
|
||||
private ["_exp", "_previousExp"];
|
||||
_previousExp = _item select 0;
|
||||
|
@ -8,20 +8,21 @@
|
||||
* 2: Explosives to detonate <ARRAY>
|
||||
* 0: Explosive <OBJECT>
|
||||
* 1: Fuse time <NUMBER>
|
||||
* 3: Trigger Item Classname <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, -1, [[c4,0.5]]] call ACE_Explosives_fnc_detonateExplosiveAll;
|
||||
* [player, -1, [[c4,0.5]], "ACE_Clacker"] call ACE_Explosives_fnc_detonateExplosiveAll;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_range", "_explosivesList"];
|
||||
TRACE_3("Params",_unit,_range,_explosivesList);
|
||||
params ["_unit", "_range", "_explosivesList", "_triggerClassname"];
|
||||
TRACE_4("Params",_unit,_range,_explosivesList,_triggerClassname);
|
||||
|
||||
{
|
||||
[_unit,_range,_x] call FUNC(detonateExplosive);
|
||||
[_unit,_range,_x,_triggerClassname] call FUNC(detonateExplosive);
|
||||
} forEach _explosivesList;
|
||||
|
@ -41,6 +41,6 @@ if (_unit == ace_player) then {
|
||||
playSound3D [QUOTE(PATHTO_R(Data\Audio\Cellphone_Ring.wss)),objNull, false, getPosASL (_this select 1),3.16228,1,75];
|
||||
(_this select 0) setVariable [QGVAR(Dialing), false, true];
|
||||
}, [_unit,_explosive select 0], 0.25 * (count _arr - 4)] call CBA_fnc_waitAndExecute;
|
||||
[_explosive select 0,(0.25 * (count _arr - 1)) + (_explosive select 2)] call FUNC(startTimer);
|
||||
[_explosive select 0,(0.25 * (count _arr - 1)) + (_explosive select 2), "ACE_Cellphone"] call FUNC(startTimer);
|
||||
};
|
||||
};
|
||||
|
@ -31,7 +31,7 @@ private _explosive = [_code] call FUNC(getSpeedDialExplosive);
|
||||
if (_i >= (count _arr + 2)) then {
|
||||
[_pfID] call CALLSTACK(CBA_fnc_removePerFrameHandler);
|
||||
if ((count _explosive) > 0) then {
|
||||
[_unit, -1, [_explosive select 0, _explosive select 2]] call FUNC(detonateExplosive);
|
||||
[_unit, -1, [_explosive select 0, _explosive select 2], "ACE_Cellphone"] call FUNC(detonateExplosive);
|
||||
};
|
||||
_unit setVariable [QGVAR(Dialing), false, true];
|
||||
if (_unit == ace_player) then {
|
||||
|
@ -26,7 +26,7 @@ private _range = getNumber (configFile >> "CfgWeapons" >> "ACE_DeadManSwitch" >>
|
||||
private _deadman = [_unit, "DeadManSwitch"] call FUNC(getPlacedExplosives);
|
||||
TRACE_2("placed",_deadman,_range);
|
||||
{
|
||||
[_unit, _range, _x, true] call FUNC(detonateExplosive);
|
||||
[_unit, _range, _x, "ACE_DeadManSwitch"] call FUNC(detonateExplosive);
|
||||
} forEach _deadman;
|
||||
|
||||
//Handle deadman connected to explosive in inventory
|
||||
@ -47,5 +47,5 @@ if (_connectedInventoryExplosive != "") then {
|
||||
|
||||
private _explosive = createVehicle [_ammo, (getPos _unit), [], 0, "NONE"];
|
||||
_explosive setPosASL (getPosASL _unit);
|
||||
[_unit, -1, [_explosive, 0.5]] call FUNC(detonateExplosive); //Explode, ignoring range, with a 0.5 second delay
|
||||
[_unit, -1, [_explosive, 0.5], "ACE_DeadManSwitch"] call FUNC(detonateExplosive); //Explode, ignoring range, with a 0.5 second delay
|
||||
};
|
||||
|
@ -6,6 +6,7 @@
|
||||
* Arguments:
|
||||
* 0: Explosives objects to detonate <OBJECT or ARRAY>
|
||||
* 1: Fuze delay (for each explosive; use negative number for random time up to value) <NUMBER> <OPTIONAL>
|
||||
* 2: Trigger Item Classname <STRING><OPTIONAL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -18,7 +19,7 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params [["_explosiveArr", [], [[], objNull]], ["_fuzeTime", 0, [0]]];
|
||||
params [["_explosiveArr", [], [[], objNull]], ["_fuzeTime", 0, [0]], ["_triggerClassname", "#scripted", [""]]];
|
||||
|
||||
if (_explosiveArr isEqualType objNull) then {
|
||||
_explosiveArr = [_explosiveArr];
|
||||
@ -26,5 +27,5 @@ if (_explosiveArr isEqualType objNull) then {
|
||||
|
||||
{
|
||||
private _detTime = if (_fuzeTime < 0) then {random abs _fuzeTime} else {_fuzeTime};
|
||||
[objNull, -1, [_x, _detTime]] call FUNC(detonateExplosive);
|
||||
[objNull, -1, [_x, _detTime], _triggerClassname] call FUNC(detonateExplosive);
|
||||
} forEach _explosiveArr;
|
||||
|
@ -5,6 +5,7 @@
|
||||
* Arguments:
|
||||
* 0: Explosive <OBJECT>
|
||||
* 1: Time till detonate <NUMBER>
|
||||
* 2: Trigger Item Classname <STRING><OPTIONAL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -16,13 +17,13 @@
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_explosive", "_delay"];
|
||||
TRACE_2("params",_explosive,_delay);
|
||||
params ["_explosive", "_delay", ["_triggerClassname", "#timer", [""]]];
|
||||
TRACE_3("startTimer",_explosive,_delay,_triggerClassname);
|
||||
|
||||
[{
|
||||
params ["_explosive"];
|
||||
params ["_explosive", "_triggerClassname"];
|
||||
TRACE_1("Explosive Going Boom",_explosive);
|
||||
if (!isNull _explosive) then {
|
||||
[_explosive, -1, [_explosive, 0]] call FUNC(detonateExplosive);
|
||||
[_explosive, -1, [_explosive, 0], _triggerClassname] call FUNC(detonateExplosive);
|
||||
};
|
||||
}, [_explosive], _delay] call CBA_fnc_waitAndExecute;
|
||||
}, [_explosive, _triggerClassname], _delay] call CBA_fnc_waitAndExecute;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Explosives">
|
||||
<Key ID="STR_ACE_Explosives_Menu">
|
||||
@ -883,6 +883,7 @@
|
||||
<German>Stolperdraht-Leuchtrakete</German>
|
||||
<Korean>조명지뢰</Korean>
|
||||
<French>Fusée éclairante avec fil de détente</French>
|
||||
<Italian>Cavo d'innesco</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TripFlare_Description">
|
||||
<English>Type: Tripwire flare - Ignites a non-lethal flare when triggered.<br />Rounds: 1<br />Used on: Ground</English>
|
||||
@ -892,6 +893,7 @@
|
||||
<German>Typ: Stolperdraht-Leuchtrakete - Schießt bei Auslösung eine nicht-tödliche Leuchtrakete ab.<br />Ladungen: 1<br />Benutzt auf: Boden</German>
|
||||
<Korean>종류: 조명지뢰 - 작동시 무해한 조명을 사출합니다.<br />장탄수: 1<br />사용처: 지면</Korean>
|
||||
<French>Type : Fusée éclairante avec fil de détente - Allume une fusée éclairante lorsque déclenché. <br />Coups : 1<br />Utilisé sur : le sol</French>
|
||||
<Italian>Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. <br />Rimanenti: 1<br />Usato: A terra</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Fastroping">
|
||||
<Key ID="STR_ACE_Fastroping_Module_FRIES_DisplayName">
|
||||
@ -7,7 +7,7 @@
|
||||
<Polish>Wyposaż FRIES</Polish>
|
||||
<French>Equiper le FRIES</French>
|
||||
<Spanish>Equipar FRIES</Spanish>
|
||||
<Italian>Equipaggia la FRIES</Italian>
|
||||
<Italian>Equipaggia il FRIES</Italian>
|
||||
<Czech>Vybavit FRIES</Czech>
|
||||
<Portuguese>Equipar FRIES</Portuguese>
|
||||
<Russian>Десантирование по канатам</Russian>
|
||||
@ -20,7 +20,7 @@
|
||||
<Polish>Wyposaża kompatybilne helikoptery w zestaw Fast Rope Insertion Extraction System.</Polish>
|
||||
<French>Equipe les hélicoptères compatibles avec un Module Fast Rope Insertion Extraction System.</French>
|
||||
<Spanish>Equipar helicoptero compatible con un Sistema de Inserción Extracción Fast Rope.</Spanish>
|
||||
<Italian>Equipagga l'elicottero compatibile con il Fast Rope Insertion Exstraction System</Italian>
|
||||
<Italian>Equipagga l'elicottero compatibile con il Fast Rope Insertion Extraction System</Italian>
|
||||
<Czech>Vybavit kompatibilní vrtulníky systémem Fast Rope Insertion Extraction (FRIES).</Czech>
|
||||
<Portuguese>Equipa um helicóptero compatível com o Fast Rope Insertion Exctraction System.</Portuguese>
|
||||
<Russian>Снаряжает совместимые вертолеты оборудованием для спуска десанта по канатам.</Russian>
|
||||
@ -59,7 +59,7 @@
|
||||
<Polish>Zjedź na linie</Polish>
|
||||
<French>Descendre à la corde</French>
|
||||
<Spanish>Descender por la cuerda</Spanish>
|
||||
<Italian>Scendi sulla corda</Italian>
|
||||
<Italian>Scendi dalla corda</Italian>
|
||||
<Czech>SLANIT</Czech>
|
||||
<Portuguese>Descida rápida</Portuguese>
|
||||
<Russian>Спуститься по канату</Russian>
|
||||
@ -85,7 +85,7 @@
|
||||
<Polish>Wyposaż helikopter w FRIES</Polish>
|
||||
<French>Equiper l'hélicoptère avec le FRIES</French>
|
||||
<Spanish>Equipar helicoptero con FRIES</Spanish>
|
||||
<Italian>Equipaggia l'elicottero con FRIES</Italian>
|
||||
<Italian>Equipaggia l'elicottero con il FRIES</Italian>
|
||||
<Czech>Vybavit vrtulník pomocí FRIES</Czech>
|
||||
<Portuguese>Equipar helicóptero com FRIES</Portuguese>
|
||||
<Russian>Снарядить вертолет канатами для спуска</Russian>
|
||||
|
@ -17,7 +17,7 @@ class Extended_PostInit_EventHandlers {
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Init_EventHandlers {
|
||||
class Extended_InitPost_EventHandlers {
|
||||
class Tank {
|
||||
class ADDON {
|
||||
serverInit = QUOTE(_this call FUNC(vehicleInit));
|
||||
|
@ -11,110 +11,13 @@
|
||||
h = 0; \
|
||||
};
|
||||
|
||||
class RscText;
|
||||
class RscControlsGroup;
|
||||
class RscMapControl;
|
||||
|
||||
class RscInGameUI {
|
||||
class RscUnitInfo;
|
||||
class RscUnitInfo_AH64D_gunner {
|
||||
controls[] = {"CA_Distance","ACE_CA_Distance"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscWeaponRangeFinder {
|
||||
controls[] = {"CA_Distance","ACE_CA_Distance"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
|
||||
class RscWeaponRangeFinderPAS13 {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscOptics_Rangefinder: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscWeaponRangeFinderMAAWS {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscWeaponRangeFinderAbramsCom {
|
||||
controls[] = {"CA_Distance","ACE_CA_Distance"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscWeaponRangeFinderAbramsGun {
|
||||
controls[] = {"CA_Distance","ACE_CA_Distance"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscWeaponRangeFinderStrykerMGSGun {
|
||||
controls[] = {"CA_Distance","ACE_CA_Distance"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscOptics_crows: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_strider_commander {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RscWeaponRangeZeroing: RscUnitInfo {
|
||||
controls[] = {"CA_Zeroing", "CA_DistanceText", "CA_Distance","ACE_CA_Distance", "ACE_Rangehelper"};
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
class RscOptics_sos: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_nightstalker: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_tws: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_punisher {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_tws_sniper: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_SDV_periscope {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_Heli_Attack_02_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
@ -122,7 +25,7 @@ class RscInGameUI {
|
||||
};
|
||||
};
|
||||
};
|
||||
class Rsc_ACE_Helo_UI_Turret: RscUnitInfo {
|
||||
class Rsc_ACE_Helo_UI_Turret: RscUnitInfo { // RscOptics_Heli_Attack_01_gunner
|
||||
onLoad = "[""onLoad"",_this,""RscUnitInfo"",'IGUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable ['ACE_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];";
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
@ -130,103 +33,30 @@ class RscInGameUI {
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_Heli_Attack_01_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_UAV_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_UGV_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RscOptics_APC_Tracked_01_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
class CA_Distance: RscText {};
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Tracked_03_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
class ACE_RscOptics_APC_Tracked_01_gunner: RscOptics_APC_Tracked_01_gunner {
|
||||
class CA_IGUI_elements_group: CA_IGUI_elements_group {
|
||||
class controls: controls {
|
||||
// MACRO_RANGEFINDER + modify IDC of CA_Distance
|
||||
class CA_Distance: CA_Distance {
|
||||
idc = 151;
|
||||
};
|
||||
class ACE_CA_Distance: CA_Distance {
|
||||
idc = 1713151;
|
||||
text = "----";
|
||||
};
|
||||
class ACE_Rangehelper: RscMapControl {
|
||||
onDraw = "((ctrlParent (_this select 0)) displayCtrl 1713151) ctrlShow (cameraView == 'GUNNER');";
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
class RscOptics_APC_Wheeled_01_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Wheeled_03_commander: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_APC_Wheeled_03_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_01_commander: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_01_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_02_commander: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_02_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
class RscOptics_MBT_03_gunner: RscUnitInfo {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// marksmen
|
||||
class RscOptics_LaserDesignator_02 {
|
||||
class CA_IGUI_elements_group: RscControlsGroup {
|
||||
class controls {
|
||||
MACRO_RANGEFINDER
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -49,9 +49,6 @@ class CfgVehicles {
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
GVAR(Enabled) = 1; // all tracked vehicles get one by default
|
||||
class Turrets {
|
||||
class CommanderOptics;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -60,231 +57,52 @@ class CfgVehicles {
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
GVAR(Enabled) = 1; // all tracked vehicles get one by default
|
||||
class Turrets {
|
||||
class CommanderOptics;//: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Car_F: Car {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Wheeled_APC_F: Car_F {
|
||||
class Turrets {
|
||||
class MainTurret: NewTurret {
|
||||
class Turrets {
|
||||
class CommanderOptics;//: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_01_base_F: Car_F {};
|
||||
|
||||
class MRAP_01_gmg_base_F: MRAP_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_MRAP_01_F: MRAP_01_base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class MRAP_02_base_F: Car_F {};
|
||||
|
||||
class MRAP_02_hmg_base_F: MRAP_02_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_MRAP_02_F: MRAP_02_base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class MRAP_03_base_F: Car_F {
|
||||
class Turrets: Turrets {
|
||||
class CommanderTurret: MainTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_03_hmg_base_F: MRAP_03_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
class CommanderTurret: CommanderTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
class CommanderTurret: CommanderTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class APC_Wheeled_01_base_F: Wheeled_APC_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {};
|
||||
|
||||
class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Wheeled_02_base_F: Wheeled_APC_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
|
||||
// class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Wheeled_03_base_F: Wheeled_APC_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {};
|
||||
|
||||
class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class APC_Tracked_01_base_F: Tank_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F {
|
||||
//GVAR(Enabled) = 0; @todo
|
||||
};
|
||||
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {};
|
||||
|
||||
class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
turretinfotype = "ACE_RscOptics_APC_Tracked_01_gunner";
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
magazines[] += {"ACE_120Rnd_35mm_ABM_shells_Tracer_Red"};
|
||||
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_02_base_F: Tank_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {};
|
||||
|
||||
class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
turretinfotype = "ACE_RscOptics_APC_Tracked_01_gunner";
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
magazines[] += {"ACE_120Rnd_35mm_ABM_shells_Tracer_Green"};
|
||||
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -292,106 +110,23 @@ class CfgVehicles {
|
||||
class APC_Tracked_03_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_01_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
/*class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class B_MBT_01_base_F: MBT_01_base_F {};
|
||||
|
||||
class B_MBT_01_cannon_F: B_MBT_01_base_F {};
|
||||
|
||||
class B_MBT_01_TUSK_F: B_MBT_01_cannon_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {
|
||||
GVAR(Enabled) = 1;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_01_arty_base_F: MBT_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_01_mlrs_base_F: MBT_01_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
//class Turrets;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_02_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {
|
||||
GVAR(Enabled) = 1;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class MBT_02_arty_base_F: MBT_02_base_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 0;
|
||||
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -399,44 +134,7 @@ class CfgVehicles {
|
||||
class MBT_03_base_F: Tank_F {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
|
||||
class Turrets: Turrets {
|
||||
class CommanderOptics: CommanderOptics {
|
||||
GVAR(Enabled) = 1;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// SHIPS
|
||||
class Ship: AllVehicles {
|
||||
class Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Ship_F: Ship {};
|
||||
|
||||
class Boat_F: Ship_F {};
|
||||
|
||||
class Boat_Armed_01_base_F: Boat_F {
|
||||
class Turrets: Turrets {
|
||||
class FrontTurret: NewTurret {
|
||||
GVAR(enabled) = 1;
|
||||
GVAR(minDistance) = 100;
|
||||
GVAR(maxDistance) = 2000;
|
||||
GVAR(distanceInterval) = 5;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
class RearTurret: FrontTurret {
|
||||
discreteDistance[] = {100,200,300,400,600,800,1000,1200}; // Originally inherited from FrontTurret
|
||||
discreteDistanceInitIndex = 4;
|
||||
GVAR(Enabled) = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -450,51 +148,7 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class Plane: Air {};
|
||||
|
||||
class Helicopter_Base_F: Helicopter {
|
||||
class Turrets: Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Helicopter_Base_H: Helicopter_Base_F {
|
||||
class Turrets: Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Light_01_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Light_01_unarmed_base_F: Heli_Light_01_base_F {};
|
||||
|
||||
class B_Heli_Light_01_F: Heli_Light_01_unarmed_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Light_01_armed_base_F: Heli_Light_01_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Light_02_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Plane_Base_F: Plane {
|
||||
class Turrets {
|
||||
class CopilotTurret;
|
||||
};
|
||||
};
|
||||
class Helicopter_Base_F: Helicopter {};
|
||||
|
||||
class Heli_Attack_01_base_F: Helicopter_Base_F {
|
||||
class Turrets: Turrets {
|
||||
@ -515,80 +169,4 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Heli_Transport_01_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
class MainTurret: MainTurret {};
|
||||
class RightDoorGun: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F: Helicopter_Base_H {
|
||||
/*class Turrets: Turrets {
|
||||
class CopilotTurret: CopilotTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Heli_light_03_base_F;
|
||||
class I_Heli_light_03_base_F: Heli_light_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
class I_Heli_light_03_F: Heli_light_03_base_F {
|
||||
/*class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {};
|
||||
};*/
|
||||
};
|
||||
|
||||
class Plane_CAS_01_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Plane_CAS_02_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class Plane_Fighter_03_base_F: Plane_Base_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
// static weapons.
|
||||
class StaticWeapon: LandVehicle {
|
||||
class Turrets {
|
||||
class MainTurret; //: NewTurret {};
|
||||
};
|
||||
};
|
||||
|
||||
class StaticMGWeapon: StaticWeapon {};
|
||||
|
||||
class HMG_01_base_F: StaticMGWeapon {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MinDistance) = 200;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
GVAR(DistanceInterval) = 5;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class StaticGrenadeLauncher: StaticWeapon {};
|
||||
class GMG_TriPod: StaticGrenadeLauncher {};
|
||||
|
||||
class GMG_01_base_F: GMG_TriPod {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
GVAR(Enabled) = 1;
|
||||
GVAR(MinDistance) = 200;
|
||||
GVAR(MaxDistance) = 2000;
|
||||
GVAR(DistanceInterval) = 5;
|
||||
discreteDistance[] = {};
|
||||
discreteDistanceInitIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,15 +1,6 @@
|
||||
|
||||
class CfgWeapons {
|
||||
// disable locking, so it doesn't interfere with our system
|
||||
class CannonCore;
|
||||
class cannon_120mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class autocannon_Base_F: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 0;
|
||||
};
|
||||
class autocannon_35mm: CannonCore {
|
||||
canLock = 0;
|
||||
ballisticsComputer = 4; //was "4 + 2", 2 is for manual zeroing, 4 is for the lead indicator - https://community.bistudio.com/wiki/A3_Locking_Review#ballisticsComputer
|
||||
|
@ -21,3 +21,7 @@ if (!hasInterface) exitWith {};
|
||||
|
||||
// Register event for global updates
|
||||
[QGVAR(forceUpdate), {[ACE_player] call FUNC(onForceUpdate)}] call CBA_fnc_addEventHandler;
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
call compile preprocessFileLineNumbers QPATHTOF(functions\dev_debugConfigs.sqf);
|
||||
#endif
|
||||
|
88
addons/fcs/functions/dev_debugConfigs.sqf
Normal file
88
addons/fcs/functions/dev_debugConfigs.sqf
Normal file
@ -0,0 +1,88 @@
|
||||
// PabstMirror
|
||||
#include "script_component.hpp"
|
||||
|
||||
diag_log text format ["[ACE_FCS] ---------------"];
|
||||
private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x) && {2 == getNumber (_x >> 'scope')}", true];
|
||||
private _problemUIs = [];
|
||||
{
|
||||
private _vehicleType = configName _x;
|
||||
{
|
||||
private _turret = _x;
|
||||
private _config = [_vehicleType, _turret] call CBA_fnc_getTurret;
|
||||
if (!isNull _config) then {
|
||||
private _aceFCS = (getNumber (_config >> "ACE_FCS_Enabled")) == 1;
|
||||
|
||||
private _vanillaFCS = false;
|
||||
private _weapons = getArray (_config >> "weapons");
|
||||
{
|
||||
private _weapon = _x;
|
||||
private _ballisticComputer = getNumber (configFile >> "CfgWeapons" >> _weapon >> "ballisticsComputer");
|
||||
_ballisticComputer = [_ballisticComputer, 5] call ace_common_fnc_toBin;
|
||||
if ((_ballisticComputer select [(count _ballisticComputer) - 5, 1]) == "1") then {
|
||||
_vanillaFCS = true;
|
||||
if (_aceFCS) then {diag_log text format ["%1 -> %2: ACE FCS Enabled CONFLICTS with vanilla FCS [%3]", _vehicleType, _weapon, _ballisticComputer];};
|
||||
};
|
||||
} forEach _weapons;
|
||||
|
||||
if (!(_weapons isEqualTo [])) then {
|
||||
private _fcsMsg = switch (true) do {
|
||||
// case ((!_vanillaFCS) && {!_aceFCS}): {"No FCS"};
|
||||
// case ((_vanillaFCS) && {_aceFCS}): {"CONFLICT FCS"};
|
||||
// case (_vanillaFCS): {"Vanilla FCS"};
|
||||
// case (_aceFCS): {"ACE FCS"};
|
||||
default {""};
|
||||
};
|
||||
if (_fcsMsg != "") then {diag_log text format ["%1: %2", _vehicleType, _fcsMsg];};
|
||||
};
|
||||
|
||||
if (_vanillaFCS) then {
|
||||
private _dd = getArray (_config >> "discreteDistance");
|
||||
if (_dd isEqualTo []) exitWith {diag_log format ["%1->%2: discreteDistance with vanillaFCS [%3]", _vehicleType, _turret, _config];};
|
||||
};
|
||||
|
||||
if (true) then {
|
||||
private _turretInfo = getText (_config >> "turretInfoType");
|
||||
private _infoConfig = configFile >> "RscInGameUI" >> _turretInfo;
|
||||
if (!isNull _infoConfig) then {
|
||||
private _idcList = [];
|
||||
|
||||
private _fncGetIDCS = {
|
||||
params ["_subConfig"];
|
||||
if (!isClass _subConfig) exitWith {diag_log "err";};
|
||||
private _controlsArray = getArray (_subConfig >> "controls");
|
||||
{
|
||||
[_subConfig >> _x] call _fncGetIDCS;
|
||||
} forEach _controlsArray;
|
||||
private _controlsConfig = configProperties [(_subConfig >> "controls"), "isClass _x", true];
|
||||
{
|
||||
[_x] call _fncGetIDCS;
|
||||
} forEach _controlsConfig;
|
||||
_idcList pushBack getNumber (_subConfig >> "idc");
|
||||
};
|
||||
[_infoConfig] call _fncGetIDCS;
|
||||
|
||||
if (_aceFCS && {!(1713151 in _idcList)}) then {
|
||||
_problemUIs pushBackUnique format ["%1: ACE_FCS, but missing ACE_CA_DIST", _turretInfo];
|
||||
};
|
||||
if (_aceFCS && {(198 in _idcList)}) then {
|
||||
_problemUIs pushBackUnique format ["%1: ACE_FCS, but NEW Lazr CA_DIST", _turretInfo, _vehicleType];
|
||||
};
|
||||
if ((!_aceFCS) && {(1713151 in _idcList)}) then {
|
||||
_problemUIs pushBackUnique format ["%1: Not ACE but has ACE_CA_DIST", _turretInfo, _vehicleType];
|
||||
};
|
||||
if (_vanillaFCS && {!(198 in _idcList)}) then {
|
||||
_problemUIs pushBackUnique format ["%1: vanillaFCS but missing NEW Lazr CA_DIST [just a warning]", _turretInfo, _vehicleType];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach [[0],[0,0]];
|
||||
} forEach _vehicles;
|
||||
|
||||
_problemUIs sort true;
|
||||
|
||||
diag_log text format ["[ACE_FCS] ------- Problem UIs --------"];
|
||||
{
|
||||
diag_log text format ["- %1", _x];
|
||||
} forEach _problemUIs;
|
||||
diag_log text format ["[ACE_FCS] ---------------"];
|
@ -25,20 +25,13 @@ class ACE_Settings {
|
||||
displayName = CSTRING(MaxTrack);
|
||||
description = CSTRING(MaxTrack_Desc);
|
||||
typeName = "SCALAR";
|
||||
value = 500;
|
||||
value = 10;
|
||||
};
|
||||
class GVAR(maxTrackPerFrame) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(MaxTrackPerFrame);
|
||||
description = CSTRING(MaxTrackPerFrame_Desc);
|
||||
typeName = "SCALAR";
|
||||
value = 50;
|
||||
};
|
||||
class GVAR(enableDebugTrace) {
|
||||
category = CSTRING(Module_DisplayName);
|
||||
displayName = CSTRING(EnableDebugTrace);
|
||||
description = CSTRING(EnableDebugTrace_Desc);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
value = 10;
|
||||
};
|
||||
};
|
||||
|
@ -7,19 +7,17 @@ PREP(spallTrack);
|
||||
|
||||
// * Other */
|
||||
PREP(addBlackList);
|
||||
PREP(addTrack);
|
||||
PREP(drawTraces);
|
||||
PREP(removeTrack);
|
||||
PREP(dev_addTrack);
|
||||
PREP(dev_drawTraces);
|
||||
PREP(spallHP);
|
||||
PREP(startTracing);
|
||||
PREP(stopTracing);
|
||||
PREP(trackTrace);
|
||||
PREP(dev_startTracing);
|
||||
PREP(dev_stopTracing);
|
||||
PREP(dev_trackTrace);
|
||||
|
||||
// New tracking mechanisms
|
||||
PREP(masterPFH);
|
||||
PREP(pfhRound);
|
||||
PREP(addPfhRound);
|
||||
PREP(removePfhRound); // THIS SHOULD ABE USED SPARINGLY
|
||||
|
||||
// Explosive Reflection
|
||||
PREP(findReflections);
|
||||
|
@ -1,11 +1,7 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (GVAR(enableDebugTrace) && {!isMultiplayer}) then {
|
||||
GVAR(traceFrags) = true;
|
||||
GVAR(autoTrace) = true;
|
||||
};
|
||||
|
||||
if (isServer) then {
|
||||
GVAR(lastFragTime) = -1;
|
||||
[QGVAR(frag_eh), {_this call FUNC(frago);}] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
||||
@ -18,12 +14,19 @@ if (isServer) then {
|
||||
["ace_firedPlayerVehicle", LINKFUNC(fired)] call CBA_fnc_addEventHandler;
|
||||
["ace_firedNonPlayerVehicle", LINKFUNC(fired)] call CBA_fnc_addEventHandler;
|
||||
|
||||
[LINKFUNC(masterPFH), 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
addMissionEventHandler ["EachFrame", {call FUNC(masterPFH)}];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Cache for ammo type configs
|
||||
GVAR(cacheRoundsTypesToTrack) = [false] call CBA_fnc_createNamespace;
|
||||
|
||||
#ifdef DEBUG_ENABLED_FRAG
|
||||
|
||||
// Debug stuff:
|
||||
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[] call FUNC(dev_startTracing);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
[true, true, 30] call FUNC(dev_debugAmmo);
|
||||
#endif
|
||||
|
@ -6,23 +6,18 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
GVAR(replacedBisArtyWrapper) = true;
|
||||
GVAR(blackList) = [];
|
||||
GVAR(traceFrags) = false;
|
||||
|
||||
GVAR(totalFrags) = 0;
|
||||
|
||||
GVAR(spallHPData) = [];
|
||||
GVAR(spallIsTrackingCount) = 0;
|
||||
|
||||
GVAR(autoTrace) = false;
|
||||
GVAR(traceID) = -1;
|
||||
GVAR(traces) = [];
|
||||
GVAR(tracesStarted) = false;
|
||||
|
||||
GVAR(lastIterationIndex) = 0;
|
||||
GVAR(objects) = [];
|
||||
GVAR(objectTypes) = [];
|
||||
GVAR(arguments) = [];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -1,5 +1,21 @@
|
||||
/*
|
||||
* Author: Jaynus, NouberNou
|
||||
* Adds a round to the blacklist (will be ignored).
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Projectile <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [bullet] call ace_frag_fnc_addBlackList
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_round"];
|
||||
TRACE_1("addBlackList",_round);
|
||||
|
||||
GVAR(blackList) pushBack _round;
|
||||
|
@ -1,27 +1,38 @@
|
||||
/*
|
||||
* Author: Jaynus, NouberNou
|
||||
* Starts tracking a round that will frag.
|
||||
* Should only be called once per round.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Shooter <OBJECT>
|
||||
* 1: Ammo classname <STRING>
|
||||
* 2: Projectile <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [player, "handGrenade", bullet] call ace_frag_fnc_addPfhRound
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_gun", "_type", "_round", ["_doFragTrack", false]];
|
||||
params ["_gun", "_type", "_round"];
|
||||
TRACE_3("addPfhRound",_gun,_type,_round);
|
||||
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
if (!GVAR(enabled)) exitWith {TRACE_1("setting disabled",_this);};
|
||||
|
||||
//_enabled = getNumber (configFile >> "CfgAmmo" >> _type >> QGVAR(enabled));
|
||||
//if (_enabled < 1) exitWith {};
|
||||
if (!alive _round) exitWith {TRACE_1("round dead?",_this);};
|
||||
|
||||
if (_round in GVAR(blackList)) exitWith {
|
||||
TRACE_1("round in blackList",_this);
|
||||
REM(GVAR(blackList),_round);
|
||||
};
|
||||
|
||||
// Exit on max track
|
||||
if ((count GVAR(objects)) > GVAR(maxTrack)) exitWith {};
|
||||
|
||||
if (
|
||||
_gun == ACE_player ||
|
||||
{(gunner _gun) == ACE_player} ||
|
||||
{local _gun && {!(isPlayer (gunner _gun))} && {!(isPlayer _gun)}}
|
||||
) then {
|
||||
_doFragTrack = true;
|
||||
};
|
||||
if ((count GVAR(objects)) >= GVAR(maxTrack)) exitWith {TRACE_1("maxTrack limit",count GVAR(objects));};
|
||||
|
||||
private _doSpall = false;
|
||||
if (GVAR(SpallEnabled)) then {
|
||||
@ -29,23 +40,23 @@ if (GVAR(SpallEnabled)) then {
|
||||
GVAR(spallHPData) = [];
|
||||
};
|
||||
if (GVAR(spallIsTrackingCount) > 5) then {
|
||||
// ACE_player sideChat "LIMT!";
|
||||
TRACE_1("At Spall Limit",GVAR(spallIsTrackingCount));
|
||||
} else {
|
||||
_doSpall = true;
|
||||
INC(GVAR(spallIsTrackingCount));
|
||||
};
|
||||
TRACE_2("",_doSpall,GVAR(spallIsTrackingCount));
|
||||
};
|
||||
// ACE_player sideChat format ["c: %1", GVAR(spallIsTrackingCount)];
|
||||
|
||||
if (GVAR(autoTrace)) then {
|
||||
[ACE_player, _round, [1, 0, 0, 1]] call FUNC(addTrack);
|
||||
};
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[ACE_player, _round, [0, 1, 0, 1]] call FUNC(dev_addTrack);
|
||||
#endif
|
||||
|
||||
// We only do the single track object check here.
|
||||
// We should do an {!(_round in GVAR(objects))}
|
||||
// But we leave that out here for optimization. So this cannot be a framework function
|
||||
// Otherwise, it should only be added once and from the FiredEH
|
||||
if (_doFragTrack && {alive _round}) then {
|
||||
if (alive _round) then {
|
||||
private _spallTrack = [];
|
||||
private _spallTrackID = [];
|
||||
|
||||
@ -64,5 +75,4 @@ if (_doFragTrack && {alive _round}) then {
|
||||
if (_doSpall) then {
|
||||
[_round, 1, _spallTrack, _spallTrackID] call FUNC(spallTrack);
|
||||
};
|
||||
// ACE_player sideChat "WTF2";
|
||||
};
|
||||
|
@ -1,10 +1,5 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (GVAR(autoTrace)) then {
|
||||
[] call FUNC(startTracing);
|
||||
};
|
||||
|
||||
// setAccTime 0.05;
|
||||
params ["_origin", "_obj", ["_color", [1, 0, 0, 1]]];
|
||||
|
||||
private _positions = [];
|
||||
@ -13,4 +8,4 @@ _positions pushBack [getPos _obj, _objSpd];
|
||||
private _data = [_origin, typeOf _origin, typeOf _obj, _objSpd, _positions, _color];
|
||||
|
||||
private _index = GVAR(traces) pushBack _data;
|
||||
[DFUNC(trackTrace), 0, [_obj, _index, CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
|
||||
[DFUNC(dev_trackTrace), 0, [_obj, _index, CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
|
@ -1,11 +1,10 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
{
|
||||
private _positions = _x select 4;
|
||||
private _color = _x select 5;
|
||||
_x params ["", "", "", "", "_positions", "_color"];
|
||||
private _index = 0;
|
||||
private _max = count _positions;
|
||||
private _lastSpd = [];
|
||||
// private _lastSpd = [];
|
||||
private _lastPos = [];
|
||||
while {_index < _max} do {
|
||||
_data1 = _positions select _index;
|
||||
@ -17,7 +16,7 @@
|
||||
|
||||
drawLine3D [_pos1, _pos2, _color];
|
||||
_lastPos = _pos2;
|
||||
_lastSpd = _data1 select 1;
|
||||
// _lastSpd = _data1 select 1;
|
||||
};
|
||||
// drawIcon3D ["", [1,0,0,1], _lastPos, 0, 0, 0, format ["%1m/s", _lastSpd], 1, 0.05, "RobotoCondensed"];
|
||||
} forEach GVAR(traces);
|
8
addons/frag/functions/fnc_dev_startTracing.sqf
Normal file
8
addons/frag/functions/fnc_dev_startTracing.sqf
Normal file
@ -0,0 +1,8 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (GVAR(tracesStarted)) exitWith {};
|
||||
|
||||
INFO("Starting Trace Drawing");
|
||||
|
||||
GVAR(tracesStarted) = true;
|
||||
GVAR(traceID) = [LINKFUNC(dev_drawTraces), 0, []] call CBA_fnc_addPerFrameHandler;
|
@ -1,5 +1,8 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!GVAR(tracesStarted)) exitWith {};
|
||||
|
||||
INFO("Ending Trace Drawing");
|
||||
|
||||
GVAR(tracesStarted) = false;
|
||||
[GVAR(traceID)] call CBA_fnc_removePerFrameHandler;
|
@ -99,9 +99,9 @@ for "_i" from 1 to _spallCount do {
|
||||
_fragment setPosASL _spallPos;
|
||||
_fragment setVelocity _spallFragVect;
|
||||
|
||||
if (GVAR(traceFrags)) then {
|
||||
[ACE_player, _fragment, [1, 0.5, 0, 1]] call FUNC(addTrack);
|
||||
};
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[ACE_player, _fragment, [1, 0.5, 0, 1]] call FUNC(dev_addTrack);
|
||||
#endif
|
||||
};
|
||||
|
||||
_spread = 5 + (random 5);
|
||||
@ -122,7 +122,7 @@ for "_i" from 1 to _spallCount do {
|
||||
_fragment setPosASL _spallPos;
|
||||
_fragment setVelocity _spallFragVect;
|
||||
|
||||
if (GVAR(traceFrags)) then {
|
||||
[ACE_player, _fragment, [1, 0, 0, 1]] call FUNC(addTrack);
|
||||
};
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[ACE_player, _fragment, [1, 0, 0, 1]] call FUNC(dev_addTrack);
|
||||
#endif
|
||||
};
|
||||
|
@ -50,6 +50,14 @@ if (isNil "_shouldAdd") then {
|
||||
};
|
||||
|
||||
if (_shouldAdd) then {
|
||||
TRACE_3("Running Frag Tracking",_unit,_ammo,_projectile);
|
||||
// firedMan will have nil "_gunner", so just check _unit; for firedVehicle we want to check _gunner
|
||||
private _localShooter = if (isNil "_gunner") then {local _unit} else {local _gunner};
|
||||
TRACE_4("",_localShooter,_unit,_ammo,_projectile);
|
||||
if (!_localShooter) exitWith {};
|
||||
|
||||
// Skip if less than 0.5 second from last shot
|
||||
if ((CBA_missionTime - (_unit getVariable [QGVAR(lastTrack), -1])) < 0.5) exitWith {};
|
||||
_unit setVariable [QGVAR(lastTrack), CBA_missionTime];
|
||||
|
||||
[_unit, _ammo, _projectile] call FUNC(addPfhRound);
|
||||
};
|
||||
|
@ -1,17 +1,35 @@
|
||||
//fnc_frago.sqf
|
||||
// #define DEBUG_MODE_FULL
|
||||
/*
|
||||
* Author: Jaynus, NouberNou
|
||||
* Server func to create the fragmentation for a round.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Last Position (ASL) <ARRAY>
|
||||
* 1: Velocity <ARRAY>
|
||||
* 2: Ammo Classname <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [[], [], "handGrenade"] call ace_frag_fnc_frago
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
#define FRAG_VEC_VAR 0.004
|
||||
|
||||
#define MAX_FRAG_COUNT 50
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
BEGIN_COUNTER(frago);
|
||||
// _startTime = diag_tickTime;
|
||||
|
||||
params ["_round", "_lastPos", "_lastVel", "_shellType", "_firedFrame", "_gun"];
|
||||
params ["_lastPos", "_lastVel", "_shellType"];
|
||||
TRACE_3("frago",_lastPos,_lastVel,_shellType);
|
||||
|
||||
// Limit max frag count if there was a recent frag
|
||||
private _maxFrags = round (MAX_FRAG_COUNT * linearConversion [0.1, 1.5, (CBA_missionTime - GVAR(lastFragTime)), 0.1, 1, true]);
|
||||
TRACE_2("",_maxFrags,CBA_missionTime - GVAR(lastFragTime));
|
||||
GVAR(lastFragTime) = CBA_missionTime;
|
||||
|
||||
private _fragTypes = [
|
||||
QGVAR(tiny), QGVAR(tiny), QGVAR(tiny),
|
||||
@ -28,12 +46,6 @@ if (isArray (configFile >> "CfgAmmo" >> _shellType >> QGVAR(CLASSES))) then {
|
||||
_warn = true;
|
||||
};
|
||||
|
||||
private _isArmed = true;
|
||||
if (!isNil "_gun") then {
|
||||
private _fuseDist = getNumber(configFile >> "CfgAmmo" >> _shellType >> "fuseDistance");
|
||||
_isArmed = ((getPosASL _gun) distance _lastPos > _fuseDist);
|
||||
};
|
||||
|
||||
private _indirectHitRange = getNumber(configFile >> "CfgAmmo" >> _shellType >> "indirecthitrange");
|
||||
private _fragRange = 20 * _indirectHitRange * 4;
|
||||
// _c = 185; // grams of comp-b
|
||||
@ -69,38 +81,26 @@ if ((_atlPos select 2) < 0.5) then {
|
||||
_lastPos vectorAdd [0, 0, 0.5];
|
||||
};
|
||||
|
||||
// _manObjects = _atlPos nearEntities ["CaManBase", _fragRange];
|
||||
|
||||
// setAccTime 0.01;
|
||||
|
||||
//_objects = nearestObjects [_atlPos, ["AllVehicles"], _fragRange]; // Not sure if tracking "ReammoBox" is required, if so revert this change for _objects
|
||||
private _objects = _atlPos nearEntities [["Car", "Motorcycle", "Tank", "StaticWeapon", "CAManBase", "Air", "Ship"], _fragRange];
|
||||
|
||||
// _objects = _manObjects;
|
||||
// Add unique crews in faster way
|
||||
{
|
||||
{
|
||||
_objects pushBackUnique _x;
|
||||
} forEach (crew _x);
|
||||
} forEach _objects;
|
||||
TRACE_2("",_fragRange,count _objects);
|
||||
|
||||
private _fragCount = 0;
|
||||
|
||||
private _fragArcs = [];
|
||||
_fragArcs set [360, 0];
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
ACE_player sideChat format ["_fragRange: %1", _fragRange];
|
||||
ACE_player sideChat format ["_objects: %1", _objects];
|
||||
#endif
|
||||
|
||||
private _doRandom = true;
|
||||
if (_isArmed && {!(_objects isEqualTo [])}) then {
|
||||
if (!(_objects isEqualTo [])) then {
|
||||
if (GVAR(reflectionsEnabled)) then {
|
||||
[_lastPos, _shellType] call FUNC(doReflections);
|
||||
};
|
||||
{
|
||||
//if (random(1) > 0.5) then {
|
||||
private _target = _x;
|
||||
if (alive _target) then {
|
||||
(boundingBox _target) params ["_boundingBoxA", "_boundingBoxB"];
|
||||
@ -108,7 +108,7 @@ if (_isArmed && {!(_objects isEqualTo [])}) then {
|
||||
private _cubic = ((abs (_boundingBoxA select 0)) + (_boundingBoxB select 0)) * ((abs (_boundingBoxA select 1)) + (_boundingBoxB select 1)) * ((abs (_boundingBoxA select 2)) + (_boundingBoxB select 2));
|
||||
|
||||
if (_cubic <= 1) exitWith {};
|
||||
_doRandom = true;
|
||||
// _doRandom = true;
|
||||
|
||||
private _targetVel = velocity _target;
|
||||
private _targetPos = getPosASL _target;
|
||||
@ -125,7 +125,7 @@ if (_isArmed && {!(_objects isEqualTo [])}) then {
|
||||
|
||||
private _dir = floor (_baseVec call CBA_fnc_vectDir);
|
||||
private _currentCount = RETDEF(_fragArcs select _dir,0);
|
||||
if (_currentCount < 20) then {
|
||||
if (_currentCount < 10) then {
|
||||
private _count = ceil (random (sqrt (_m / 1000)));
|
||||
private _vecVar = FRAG_VEC_VAR;
|
||||
if (!(_target isKindOf "Man")) then {
|
||||
@ -144,29 +144,28 @@ if (_isArmed && {!(_objects isEqualTo [])}) then {
|
||||
private _fp = _fragPower - (random (_fragPowerRandom));
|
||||
private _vel = _vec vectorMultiply _fp;
|
||||
|
||||
private _fragType = round (random ((count _fragTypes) - 1));
|
||||
private _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000];
|
||||
// diag_log text format ["fp: %1 %2", _fp, typeOf _fragObj];
|
||||
private _fragObj = (selectRandom _fragTypes) createVehicleLocal [0,0,10000];
|
||||
// TRACE_4("targeted",_fp, typeOf _fragObj,_lastPos vectorDistance _targetPos,typeOf _x);
|
||||
_fragObj setPosASL _lastPos;
|
||||
_fragObj setVectorDir _vec;
|
||||
_fragObj setVelocity _vel;
|
||||
if (GVAR(traceFrags)) then {
|
||||
INC(GVAR(totalFrags));
|
||||
[ACE_player, _fragObj, [1,0,0,1]] call FUNC(addTrack);
|
||||
};
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[ACE_player, _fragObj, [1,0,0,1]] call FUNC(dev_addTrack);
|
||||
#endif
|
||||
INC(_fragCount);
|
||||
INC(_currentCount);
|
||||
};
|
||||
_fragArcs set [_dir, _currentCount];
|
||||
};
|
||||
};
|
||||
//};
|
||||
if (_fragCount > MAX_FRAG_COUNT) exitWith {};
|
||||
if (_fragCount > _maxFrags) exitWith {};
|
||||
} forEach _objects;
|
||||
if (_fragCount > MAX_FRAG_COUNT) exitWith {};
|
||||
private _randomCount = ((ceil ((MAX_FRAG_COUNT - _fragCount) * 0.1)) max 0) + 20;
|
||||
TRACE_1("targeted",_fragCount);
|
||||
if (_fragCount > _maxFrags) exitWith {};
|
||||
private _randomCount = ceil ((_maxFrags - _fragCount) * 0.35);
|
||||
TRACE_1("",_randomCount);
|
||||
private _sectorSize = 360 / (_randomCount max 1);
|
||||
// _doRandom = false;
|
||||
|
||||
if (_doRandom) then {
|
||||
for "_i" from 1 to _randomCount do {
|
||||
// Distribute evenly
|
||||
@ -178,24 +177,19 @@ if (_isArmed && {!(_objects isEqualTo [])}) then {
|
||||
|
||||
_vel = _vec vectorMultiply _fp;
|
||||
|
||||
_fragType = round (random ((count _fragTypes) - 1));
|
||||
_fragObj = (_fragTypes select _fragType) createVehicleLocal [0, 0, 10000];
|
||||
_fragObj = (selectRandom _fragTypes) createVehicleLocal [0, 0, 10000];
|
||||
_fragObj setPosASL _lastPos;
|
||||
_fragObj setVectorDir _vec;
|
||||
_fragObj setVelocity _vel;
|
||||
|
||||
if (GVAR(traceFrags)) then {
|
||||
INC(GVAR(totalFrags));
|
||||
[ACE_player, _fragObj, [1,0.5,0,1]] call FUNC(addTrack);
|
||||
};
|
||||
#ifdef DRAW_FRAG_INFO
|
||||
[ACE_player, _fragObj, [1,0.5,0,1]] call FUNC(dev_addTrack);
|
||||
#endif
|
||||
INC(_fragCount);
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
// #ifdef DEBUG_MODE_FULL
|
||||
// ACE_player sideChat format["total frags: %1", GVAR(totalFrags)];
|
||||
// ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))];
|
||||
// #endif
|
||||
// _endTime = diag_tickTime;
|
||||
|
||||
TRACE_1("total created",_fragCount);
|
||||
|
||||
END_COUNTER(frago);
|
||||
|
@ -1,19 +1,20 @@
|
||||
/*
|
||||
* Author: jaynus
|
||||
*
|
||||
* Master single PFH abstraction for all rounds being tracked by frag/spall
|
||||
* Master single PFH abstraction for all rounds being tracked by frag/spall.
|
||||
*
|
||||
* Arguments:
|
||||
*
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*/
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
//PARAMS_2(_pfhArgs,_handle);
|
||||
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
BEGIN_COUNTER(PFH);
|
||||
|
||||
// Fast exit if nothing to do
|
||||
if (GVAR(objects) isEqualTo []) exitWith {END_COUNTER(PFH);};
|
||||
|
||||
private _gcIndex = [];
|
||||
|
||||
@ -47,3 +48,5 @@ private _deletionCount = 0;
|
||||
|
||||
INC(_deletionCount);
|
||||
} forEach _gcIndex;
|
||||
|
||||
END_COUNTER(PFH);
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_round", "_lastPos", "_lastVel", "_type", "_firedFrame", "_gun", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
|
||||
params ["_round", "_lastPos", "_lastVel", "_shellType", "_firedFrame", "_gun", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
|
||||
|
||||
if (_round in GVAR(blackList)) exitWith {
|
||||
false
|
||||
@ -11,14 +11,22 @@ if (!alive _round) exitWith {
|
||||
if (_skip == 0) then {
|
||||
if ((_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}) || {_force == 1}) then {
|
||||
// shotbullet, shotShell don't seem to explode when touching water, so don't create frags
|
||||
if (((_lastPos select 2) < 0) && {(toLower getText (configFile >> "CfgAmmo" >> _type >> "simulation")) in ["shotbullet", "shotshell"]}) exitWith {};
|
||||
[QGVAR(frag_eh), _this] call CBA_fnc_serverEvent;
|
||||
if (((_lastPos select 2) < 0) && {(toLower getText (configFile >> "CfgAmmo" >> _shellType >> "simulation")) in ["shotbullet", "shotshell"]}) exitWith {};
|
||||
private _isArmed = true;
|
||||
if (!isNil "_gun") then {
|
||||
private _fuseDist = getNumber(configFile >> "CfgAmmo" >> _shellType >> "fuseDistance");
|
||||
_isArmed = ((getPosASL _gun) distance _lastPos > _fuseDist);
|
||||
TRACE_2("",_fuseDist,_isArmed);
|
||||
};
|
||||
if (!_isArmed) exitWith {TRACE_1("round not armed",_this);};
|
||||
TRACE_3("Sending frag event to server",_lastPos,_lastVel,_shellType);
|
||||
[QGVAR(frag_eh), [_lastPos,_lastVel,_shellType]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_doSpall) then {
|
||||
DEC(GVAR(spallIsTrackingCount));
|
||||
// diag_log text format ["F: %1", _foundObjectHPIds];
|
||||
TRACE_1("doSpall",_foundObjectHPIds);
|
||||
{
|
||||
if (!isNil "_x") then {
|
||||
_x removeEventHandler ["hitPart", _foundObjectHPIds select _forEachIndex];
|
||||
|
@ -1,11 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
// THIS FUNCTION SHOULD NOT BE USED BECAUSE IT CAUSES AN SEARCH AND REBUILD
|
||||
|
||||
params ["_round"];
|
||||
|
||||
if (_round in GVAR(blackList)) then {
|
||||
REM(GVAR(blackList),_round);
|
||||
};
|
||||
|
||||
REM(GVAR(objects),_round);
|
@ -1,13 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
private _ret = true;
|
||||
if (IS_ARRAY(_this select 0)) then {
|
||||
_ret = false;
|
||||
} else {
|
||||
if ((_this select 0) in GVAR(trackedObjects)) then {
|
||||
REM(GVAR(trackedObjects),_this select 0);
|
||||
} else {
|
||||
_ret = false;
|
||||
};
|
||||
};
|
||||
_ret
|
@ -1,5 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (GVAR(tracesStarted)) exitWith {};
|
||||
GVAR(tracesStarted) = true;
|
||||
GVAR(traceID) = [FUNC(drawTraces), 0, []] call CBA_fnc_addPerFrameHandler;
|
@ -2,7 +2,7 @@
|
||||
#define COMPONENT_BEAUTIFIED Frag
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
//#define DEBUG_ENABLED_FRAG
|
||||
// #define DRAW_FRAG_INFO
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Gestures">
|
||||
<Key ID="STR_ACE_Gestures_Name">
|
||||
@ -8,7 +8,7 @@
|
||||
<Czech>ACE Posunky</Czech>
|
||||
<French>ACE Gestes</French>
|
||||
<Hungarian>ACE Kézjelek</Hungarian>
|
||||
<Italian>ACE Gesti</Italian>
|
||||
<Italian>Gesti ACE</Italian>
|
||||
<Portuguese>ACE Gestos</Portuguese>
|
||||
<Russian>ACE Жесты</Russian>
|
||||
<Spanish>ACE Gestos</Spanish>
|
||||
@ -236,7 +236,7 @@
|
||||
<German>Zeige Gesten im Selbst-Interkationsmenü, lege sie auf Schnelltasten, oder deaktiviere sie vollständig.</German>
|
||||
<Czech>Zobrazit posunky pro vlastní interakční menu, nebo prostě použít klávesové zkratky, nebo to zakázat úplně</Czech>
|
||||
<Polish>Pokaż listę gestów w menu własnej interakcji, użyj tylko skrótów na klawiaturze lub wyłącz całkowicie</Polish>
|
||||
<Italian>Mostra Gesti nel Menù Interazione Personale, o usa solamente Hotkey, o disabilita completamente</Italian>
|
||||
<Italian>Mostra Gesti nel Menù Interazione Personale, o usa solamente tasti di scelta rapida, o disabilita completamente</Italian>
|
||||
<Spanish>Muestror los gestos en el menú de interacción propia, utilizar solo combinación de teclas o desactivarlos completamente</Spanish>
|
||||
<French>Afficher les gestes dans le menu d'interaction personnel, ou seulement utiliser les touches, ou desactiver complètement.</French>
|
||||
<Portuguese>Mostra gestos no menu de interação, ou utilize um dos atalhos de teclado ou desative completamente</Portuguese>
|
||||
@ -249,7 +249,7 @@
|
||||
<German>Nur Schnelltasten</German>
|
||||
<Czech>Pouze klávesové zkratky</Czech>
|
||||
<Polish>Tylko skróty klaw.</Polish>
|
||||
<Italian>Solo Hotkey</Italian>
|
||||
<Italian>Solo tasti di scelta rapida</Italian>
|
||||
<Spanish>Solo mediante teclas</Spanish>
|
||||
<French>Seulement les touches</French>
|
||||
<Portuguese>Somente atalhos de teclado</Portuguese>
|
||||
@ -262,7 +262,7 @@
|
||||
<German>Schnelltasten+ Interaktionsmenü</German>
|
||||
<Czech>Klávesové zkratky + interakční menu</Czech>
|
||||
<Polish>Skróty klaw. + menu interakcji</Polish>
|
||||
<Italian>Hotkey + Menù Interazione</Italian>
|
||||
<Italian>Tasti di scelta rapida + Menù Interazione</Italian>
|
||||
<Spanish>Teclas y Menú de Interacción</Spanish>
|
||||
<French>Touches + menu d'interaction</French>
|
||||
<Portuguese>Atalhos + Menu de Interação</Portuguese>
|
||||
|
@ -3,22 +3,26 @@
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
GVAR(pfID) = -1;
|
||||
GVAR(playerIsVirtual) = false;
|
||||
|
||||
["ace_settingsInitialized", {
|
||||
TRACE_1("SettingsInitialized eh",GVAR(enabledFor));
|
||||
|
||||
if (GVAR(enabledFor) == 0) exitWith {}; //Module has no effect if enabledFor is "None"
|
||||
|
||||
["unit", { // Add unit changed EH to check if player is either virtual (logic) or a UAV AI
|
||||
params ["_unit"];
|
||||
GVAR(playerIsVirtual) = ((getNumber (configFile >> "CfgVehicles" >> (typeOf _unit) >> "isPlayableLogic")) == 1) ||
|
||||
{(getText (configFile >> "CfgVehicles" >> (typeOf _unit) >> "simulation")) == "UAVPilot"};
|
||||
TRACE_3("unit changed",_unit,typeOf _unit,GVAR(playerIsVirtual));
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
if (GVAR(enabledFor) == 2) exitWith { //PFEH is always on when enabledFor is "All"
|
||||
[] call FUNC(addPFEH);
|
||||
TRACE_1("adding perm PFEH",GVAR(pfID));
|
||||
};
|
||||
|
||||
//PFEH only runs when player is in a type "Air" vehicle when enabledFor is "Aircraft"
|
||||
|
||||
if ((!isNull (vehicle ACE_player)) && {(vehicle ACE_player) isKindOf "Air"}) then { //"playerVehicleChanged" can happen before "settingInit"
|
||||
[] call FUNC(addPFEH);
|
||||
TRACE_1("adding temp PFEH [start in]",GVAR(pfID));
|
||||
};
|
||||
["vehicle", {
|
||||
params ["", "_vehicle"];
|
||||
TRACE_2("playerVehicleChanged",_vehicle,typeOf _vehicle);
|
||||
@ -35,5 +39,5 @@ GVAR(pfID) = -1;
|
||||
GVAR(pfID) = -1;
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addPlayerEventHandler;
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
@ -17,7 +17,7 @@
|
||||
if ((CBA_missionTime - GVAR(lastUpdateTime)) < INTERVAL) exitWith {};
|
||||
GVAR(lastUpdateTime) = CBA_missionTime;
|
||||
|
||||
if (isNull ACE_player || !(alive ACE_player)) exitWith {};
|
||||
if (GVAR(playerIsVirtual) || {!alive ACE_player}) exitWith {};
|
||||
|
||||
BEGIN_COUNTER(everyInterval);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="gforces">
|
||||
<Key ID="STR_ACE_gforces_enabledFor_displayName">
|
||||
@ -12,6 +12,7 @@
|
||||
<Japanese>G による効果</Japanese>
|
||||
<Polish>Efekty przeciążeń</Polish>
|
||||
<Korean>중력가속도 효과</Korean>
|
||||
<Italian>Effetti forza G</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_gforces_enabledFor_onlyAircraft">
|
||||
<English>Only Aircraft</English>
|
||||
@ -24,6 +25,7 @@
|
||||
<Japanese>航空機のみ</Japanese>
|
||||
<Polish>Tylko samoloty</Polish>
|
||||
<Korean>비행기에만 적용</Korean>
|
||||
<Italian>Solo Aerei</Italian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -29,6 +29,26 @@ if (!hasInterface) exitWith {};
|
||||
GVAR(UsePP) = true;
|
||||
};
|
||||
|
||||
// init pp effects
|
||||
GVAR(PostProcess) = ppEffectCreate ["ColorCorrections", 1995];
|
||||
GVAR(EffectsActive) = false;
|
||||
|
||||
// add glasses eventhandlers
|
||||
["ace_glassesChanged", {
|
||||
params ["_unit", "_glasses"];
|
||||
TRACE_2("ace_glassesChanged eh",_unit,_glasses);
|
||||
|
||||
SETGLASSES(_unit,GLASSESDEFAULT);
|
||||
|
||||
if (call FUNC(ExternalCamera)) exitWith {call FUNC(RemoveGlassesEffect)};
|
||||
|
||||
if ([_unit] call FUNC(isGogglesVisible)) then {
|
||||
[_unit, _glasses] call FUNC(applyGlassesEffect);
|
||||
} else {
|
||||
call FUNC(removeGlassesEffect);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// init GlassesChanged eventhandler
|
||||
GVAR(OldGlasses) = "<null>";
|
||||
["loadout", {
|
||||
@ -40,12 +60,9 @@ if (!hasInterface) exitWith {};
|
||||
["ace_glassesChanged", [_unit, _currentGlasses]] call CBA_fnc_localEvent;
|
||||
GVAR(OldGlasses) = _currentGlasses;
|
||||
};
|
||||
}] call CBA_fnc_addPlayerEventHandler;
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
|
||||
// init pp effects
|
||||
GVAR(PostProcess) = ppEffectCreate ["ColorCorrections", 1995];
|
||||
GVAR(EffectsActive) = false;
|
||||
|
||||
// check goggles
|
||||
private _fnc_checkGoggles = {
|
||||
@ -57,7 +74,7 @@ if (!hasInterface) exitWith {};
|
||||
};
|
||||
} else {
|
||||
if (!(call FUNC(externalCamera)) && {[_unit] call FUNC(isGogglesVisible)}) then {
|
||||
[goggles _unit] call FUNC(applyGlassesEffect);
|
||||
[_unit, goggles _unit] call FUNC(applyGlassesEffect);
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -66,21 +83,6 @@ if (!hasInterface) exitWith {};
|
||||
["ace_activeCameraChanged", _fnc_checkGoggles] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
||||
// add glasses eventhandlers
|
||||
["ace_glassesChanged", {
|
||||
params ["_unit", "_glasses"];
|
||||
|
||||
SETGLASSES(_unit,GLASSESDEFAULT);
|
||||
|
||||
if (call FUNC(ExternalCamera)) exitWith {call FUNC(RemoveGlassesEffect)};
|
||||
|
||||
if ([_unit] call FUNC(isGogglesVisible)) then {
|
||||
_glasses call FUNC(applyGlassesEffect);
|
||||
} else {
|
||||
call FUNC(removeGlassesEffect);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
||||
// // ---Add the Dust/Dirt/Rain Effects---
|
||||
if (GVAR(effects) == 2) then {
|
||||
|
@ -5,23 +5,29 @@
|
||||
* Sets dirt/rain overlay for glasses.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Glasses classname to be applied <STRING>
|
||||
* 0: Player <OBJECT>
|
||||
* 1: Glasses classname to be applied <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [goggles ace_player] call ace_goggles_fnc_applyGlassesEffect
|
||||
* [ace_player, goggles ace_player] call ace_goggles_fnc_applyGlassesEffect
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_glasses"];
|
||||
params ["_player", "_glasses"];
|
||||
TRACE_2("applyGlassesEffect",_player,_glasses);
|
||||
|
||||
// remove old effect
|
||||
call FUNC(removeGlassesEffect);
|
||||
|
||||
if ((getNumber (configFile >> "CfgVehicles" >> (typeOf _player) >> "isPlayableLogic")) == 1) exitWith {
|
||||
TRACE_1("skipping playable logic",typeOf _player); // VirtualMan_F (placeable logic zeus / spectator)
|
||||
};
|
||||
|
||||
private ["_config", "_postProcessColour", "_postProcessTintAmount", "_imagePath"];
|
||||
|
||||
_config = configFile >> "CfgGlasses" >> _glasses;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user