mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merged main
This commit is contained in:
commit
c927c0e05c
@ -126,6 +126,7 @@ Keithen <Keithen.Neu@gmail.com>
|
|||||||
Kllrt <kllrtik@gmail.com>
|
Kllrt <kllrtik@gmail.com>
|
||||||
KokaKolaA3
|
KokaKolaA3
|
||||||
Krzyciu
|
Krzyciu
|
||||||
|
LAxemann
|
||||||
legman <juicemelon@msn.com>
|
legman <juicemelon@msn.com>
|
||||||
Legolasindar "Viper" <legolasindar@gmail.com>
|
Legolasindar "Viper" <legolasindar@gmail.com>
|
||||||
licht-im-Norden87 <lichtimnorden87@gmail.com>
|
licht-im-Norden87 <lichtimnorden87@gmail.com>
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
<Russian>Открыть грузовой отсек</Russian>
|
<Russian>Открыть грузовой отсек</Russian>
|
||||||
<Italian>Apri la rampa di carico</Italian>
|
<Italian>Apri la rampa di carico</Italian>
|
||||||
<Portuguese>Abrir porta de carga</Portuguese>
|
<Portuguese>Abrir porta de carga</Portuguese>
|
||||||
<Japanese>カーゴ ドアを開く</Japanese>
|
<Japanese>貨物室ドアを 開く</Japanese>
|
||||||
<Korean>화물칸 개방</Korean>
|
<Korean>화물칸 개방</Korean>
|
||||||
<Chinese>開啟貨艙門</Chinese>
|
<Chinese>開啟貨艙門</Chinese>
|
||||||
<Chinesesimp>开启货舱门</Chinesesimp>
|
<Chinesesimp>开启货舱门</Chinesesimp>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<Russian>Закрыть грузовой отсек</Russian>
|
<Russian>Закрыть грузовой отсек</Russian>
|
||||||
<Italian>Chiudi la rampa di carico</Italian>
|
<Italian>Chiudi la rampa di carico</Italian>
|
||||||
<Portuguese>Fechar porta de carga</Portuguese>
|
<Portuguese>Fechar porta de carga</Portuguese>
|
||||||
<Japanese>カーゴ ドアを閉じる</Japanese>
|
<Japanese>貨物室ドアを 閉じる</Japanese>
|
||||||
<Korean>화물칸 폐쇄</Korean>
|
<Korean>화물칸 폐쇄</Korean>
|
||||||
<Chinese>關閉貨艙門</Chinese>
|
<Chinese>關閉貨艙門</Chinese>
|
||||||
<Chinesesimp>关闭货舱门</Chinesesimp>
|
<Chinesesimp>关闭货舱门</Chinesesimp>
|
||||||
|
@ -613,7 +613,7 @@
|
|||||||
<French>Le set d'équipement suivant a été supprimé :</French>
|
<French>Le set d'équipement suivant a été supprimé :</French>
|
||||||
<German>Folgende Ausrüstung wurde entfernt:</German>
|
<German>Folgende Ausrüstung wurde entfernt:</German>
|
||||||
<Polish>Następujący zestaw został skasowany:</Polish>
|
<Polish>Następujący zestaw został skasowany:</Polish>
|
||||||
<Japanese>次の装備は削除されました:</Japanese>
|
<Japanese>装備を削除しました:</Japanese>
|
||||||
<Italian>Il seguente equipaggiamento è stato eliminato:</Italian>
|
<Italian>Il seguente equipaggiamento è stato eliminato:</Italian>
|
||||||
<Korean>다음 로드아웃이 삭제됨 :</Korean>
|
<Korean>다음 로드아웃이 삭제됨 :</Korean>
|
||||||
<Chinese>以下的裝備已被刪除:</Chinese>
|
<Chinese>以下的裝備已被刪除:</Chinese>
|
||||||
@ -629,7 +629,7 @@
|
|||||||
<French>Le set d'équipement suivant n'est plus public :</French>
|
<French>Le set d'équipement suivant n'est plus public :</French>
|
||||||
<German>Folgende Ausrüstung ist nicht mehr öffentlich:</German>
|
<German>Folgende Ausrüstung ist nicht mehr öffentlich:</German>
|
||||||
<Polish>Następujący zestaw nie jest już publiczny:</Polish>
|
<Polish>Następujący zestaw nie jest już publiczny:</Polish>
|
||||||
<Japanese>次の装備は非公開になりました:</Japanese>
|
<Japanese>装備を非公開にしました:</Japanese>
|
||||||
<Italian>Il seguente equipaggiamento non è più pubblico:</Italian>
|
<Italian>Il seguente equipaggiamento non è più pubblico:</Italian>
|
||||||
<Korean>다음 로드아웃이 더이상 공용이 아님:</Korean>
|
<Korean>다음 로드아웃이 더이상 공용이 아님:</Korean>
|
||||||
<Chinese>以下的裝備已不再被分享:</Chinese>
|
<Chinese>以下的裝備已不再被分享:</Chinese>
|
||||||
@ -645,7 +645,7 @@
|
|||||||
<French>Le champ "nom" est vide !</French>
|
<French>Le champ "nom" est vide !</French>
|
||||||
<German>Das Feld "Name" ist leer!</German>
|
<German>Das Feld "Name" ist leer!</German>
|
||||||
<Polish>Pole nazwy jest puste!</Polish>
|
<Polish>Pole nazwy jest puste!</Polish>
|
||||||
<Japanese>名前が空白です!</Japanese>
|
<Japanese>名前が空欄です!</Japanese>
|
||||||
<Italian>Il campo del nome è vuoto!</Italian>
|
<Italian>Il campo del nome è vuoto!</Italian>
|
||||||
<Korean>이름칸이 비었습니다!</Korean>
|
<Korean>이름칸이 비었습니다!</Korean>
|
||||||
<Chinese>名稱欄位為空!</Chinese>
|
<Chinese>名稱欄位為空!</Chinese>
|
||||||
@ -677,7 +677,7 @@
|
|||||||
<French>Un de vos sets d'équipement ayant le même nom est public.</French>
|
<French>Un de vos sets d'équipement ayant le même nom est public.</French>
|
||||||
<German>Eine deiner Ausrüstungen mit dem gleichen Namen ist öffentlich</German>
|
<German>Eine deiner Ausrüstungen mit dem gleichen Namen ist öffentlich</German>
|
||||||
<Polish>Jeden z Twoich zestawów nazwany tak samo jest już publiczny</Polish>
|
<Polish>Jeden z Twoich zestawów nazwany tak samo jest już publiczny</Polish>
|
||||||
<Japanese>あなたの装備は既に公開されているものと同名です</Japanese>
|
<Japanese>あなたのものと同じ名前の装備が既に公開されています</Japanese>
|
||||||
<Italian>Un tuo equipaggiamento con lo stesso nome è pubblico</Italian>
|
<Italian>Un tuo equipaggiamento con lo stesso nome è pubblico</Italian>
|
||||||
<Korean>같은 이름의 로드아웃이 공용에 있습니다.</Korean>
|
<Korean>같은 이름의 로드아웃이 공용에 있습니다.</Korean>
|
||||||
<Chinese>已有相同名稱的裝備在公用分享區</Chinese>
|
<Chinese>已有相同名稱的裝備在公用分享區</Chinese>
|
||||||
@ -693,7 +693,7 @@
|
|||||||
<French>Le set d'équipement suivant a été enregistré :</French>
|
<French>Le set d'équipement suivant a été enregistré :</French>
|
||||||
<German>Folgende Ausrüstung wurde gespeichert:</German>
|
<German>Folgende Ausrüstung wurde gespeichert:</German>
|
||||||
<Polish>Następujący zestaw został zapisany:</Polish>
|
<Polish>Następujący zestaw został zapisany:</Polish>
|
||||||
<Japanese>次の装備は保存されました:</Japanese>
|
<Japanese>装備を保存しました:</Japanese>
|
||||||
<Italian>Il seguente equipaggiamento è stato salvato:</Italian>
|
<Italian>Il seguente equipaggiamento è stato salvato:</Italian>
|
||||||
<Korean>다음 로드아웃이 저장됨:</Korean>
|
<Korean>다음 로드아웃이 저장됨:</Korean>
|
||||||
<Chinese>以下的裝備已被保存:</Chinese>
|
<Chinese>以下的裝備已被保存:</Chinese>
|
||||||
@ -709,7 +709,7 @@
|
|||||||
<French>Le set d'équipement suivant a été chargé :</French>
|
<French>Le set d'équipement suivant a été chargé :</French>
|
||||||
<German>Folgene Ausrüstung wurde geladen:</German>
|
<German>Folgene Ausrüstung wurde geladen:</German>
|
||||||
<Polish>Następujący zestaw został wczytany:</Polish>
|
<Polish>Następujący zestaw został wczytany:</Polish>
|
||||||
<Japanese>次の装備が読み込みされました:</Japanese>
|
<Japanese>装備を読み込みました:</Japanese>
|
||||||
<Italian>Il seguente equipaggiamento è stato caricato:</Italian>
|
<Italian>Il seguente equipaggiamento è stato caricato:</Italian>
|
||||||
<Korean>다음 로드아웃을 불러옴:</Korean>
|
<Korean>다음 로드아웃을 불러옴:</Korean>
|
||||||
<Chinese>以下的裝備已被載入:</Chinese>
|
<Chinese>以下的裝備已被載入:</Chinese>
|
||||||
@ -725,7 +725,7 @@
|
|||||||
<French>Un set d'équipement ayant le même nom existe déjà !</French>
|
<French>Un set d'équipement ayant le même nom existe déjà !</French>
|
||||||
<German>Eine Ausrüstung mit dem gleichen Namen existiert bereits!</German>
|
<German>Eine Ausrüstung mit dem gleichen Namen existiert bereits!</German>
|
||||||
<Polish>Zestaw z tą nazwą już istnieje!</Polish>
|
<Polish>Zestaw z tą nazwą już istnieje!</Polish>
|
||||||
<Japanese>既にその名前は装備に使われています!</Japanese>
|
<Japanese>既に同じ名前の装備が存在しています!</Japanese>
|
||||||
<Italian>Un equipaggiamento con lo stesso nome è gia esistente!</Italian>
|
<Italian>Un equipaggiamento con lo stesso nome è gia esistente!</Italian>
|
||||||
<Korean>같은 이름의 로드아웃이 이미 존재합니다!</Korean>
|
<Korean>같은 이름의 로드아웃이 이미 존재합니다!</Korean>
|
||||||
<Chinese>已有相同名稱的裝備!</Chinese>
|
<Chinese>已有相同名稱的裝備!</Chinese>
|
||||||
@ -741,7 +741,7 @@
|
|||||||
<French>a été renommé en</French>
|
<French>a été renommé en</French>
|
||||||
<German>wurde umbenannt in</German>
|
<German>wurde umbenannt in</German>
|
||||||
<Polish>zmienił nazwę na</Polish>
|
<Polish>zmienił nazwę na</Polish>
|
||||||
<Japanese>次の名前に変更されました</Japanese>
|
<Japanese>を次の名前に変更しました:</Japanese>
|
||||||
<Italian>È stato rinominato in</Italian>
|
<Italian>È stato rinominato in</Italian>
|
||||||
<Korean>이름이 다음과 같이 변경됨:</Korean>
|
<Korean>이름이 다음과 같이 변경됨:</Korean>
|
||||||
<Chinese>已被改名為</Chinese>
|
<Chinese>已被改名為</Chinese>
|
||||||
@ -1181,7 +1181,7 @@
|
|||||||
<English>Nightvision Support</English>
|
<English>Nightvision Support</English>
|
||||||
<Spanish>Soporte de visión nocturna</Spanish>
|
<Spanish>Soporte de visión nocturna</Spanish>
|
||||||
<German>Nachtsicht Unterstützung</German>
|
<German>Nachtsicht Unterstützung</German>
|
||||||
<Japanese>暗視装置への対応有無</Japanese>
|
<Japanese>暗視装置への対応</Japanese>
|
||||||
<Polish>Wsparcie noktowizyjne</Polish>
|
<Polish>Wsparcie noktowizyjne</Polish>
|
||||||
<Italian>Supporto visore notturno</Italian>
|
<Italian>Supporto visore notturno</Italian>
|
||||||
<Russian>Поддержка ночного видения</Russian>
|
<Russian>Поддержка ночного видения</Russian>
|
||||||
@ -1240,9 +1240,11 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_statVisionMode_ti">
|
<Key ID="STR_ACE_Arsenal_statVisionMode_ti">
|
||||||
<English>Thermal integrated</English>
|
<English>Thermal integrated</English>
|
||||||
|
<Japanese>熱画像装置内蔵</Japanese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi">
|
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi">
|
||||||
<English>Thermal & Primary integrated</English>
|
<English>Thermal & Primary integrated</English>
|
||||||
|
<Japanese>熱画像装置内蔵・プライマリに内蔵</Japanese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
||||||
<English>Not Supported</English>
|
<English>Not Supported</English>
|
||||||
@ -1263,7 +1265,7 @@
|
|||||||
<Key ID="STR_ACE_Arsenal_statVisionModeGeneric">
|
<Key ID="STR_ACE_Arsenal_statVisionModeGeneric">
|
||||||
<English>Vision Mode</English>
|
<English>Vision Mode</English>
|
||||||
<German>Sichtmodus</German>
|
<German>Sichtmodus</German>
|
||||||
<Japanese>ビジョン モード</Japanese>
|
<Japanese>映像モード</Japanese>
|
||||||
<Italian>Modalità Visiva</Italian>
|
<Italian>Modalità Visiva</Italian>
|
||||||
<Chinese>視覺模式</Chinese>
|
<Chinese>視覺模式</Chinese>
|
||||||
<Chinesesimp>视觉模式</Chinesesimp>
|
<Chinesesimp>视觉模式</Chinesesimp>
|
||||||
@ -1501,7 +1503,7 @@
|
|||||||
<Spanish>Añade automáticamente accesorios o cargadores (de la categoría seleccionada) a todas las armas de la lista de objetos</Spanish>
|
<Spanish>Añade automáticamente accesorios o cargadores (de la categoría seleccionada) a todas las armas de la lista de objetos</Spanish>
|
||||||
<German>Es werden automatisch kompatible Aufsätze oder Magazine für alle ausgewählten Waffen hinzugefügt</German>
|
<German>Es werden automatisch kompatible Aufsätze oder Magazine für alle ausgewählten Waffen hinzugefügt</German>
|
||||||
<Polish>Automatycznie doda kompatybilne dodatki oraz magazynki (odpowiednio do każdej kategorii) dla wszystkich broni na liście</Polish>
|
<Polish>Automatycznie doda kompatybilne dodatki oraz magazynki (odpowiednio do każdej kategorii) dla wszystkich broni na liście</Polish>
|
||||||
<Japanese>現在のアイテムリスト内にある全武器に対応する アタッチメントと弾倉(選択したカテゴリに基づく)を自動的に追加します</Japanese>
|
<Japanese>現在のアイテムリスト内の全武器に対応する アタッチメントと弾倉(選択したカテゴリに基づく)を自動的に追加します</Japanese>
|
||||||
<Russian>Добавляет совместимые приспособления или магазины (в зависимости от выбранной категории) для всего оружия в текущем списке предметов</Russian>
|
<Russian>Добавляет совместимые приспособления или магазины (в зависимости от выбранной категории) для всего оружия в текущем списке предметов</Russian>
|
||||||
<Portuguese>Irá automaticamente adicionar acessórios ou carregadores (baseado na categoria selecionada) para todas as armas na lista de itens atual</Portuguese>
|
<Portuguese>Irá automaticamente adicionar acessórios ou carregadores (baseado na categoria selecionada) para todas as armas na lista de itens atual</Portuguese>
|
||||||
<French>Ajoute automatiquement des accessoires ou des chargeurs compatibles (en fonction de la catégorie sélectionnée), pour toutes les armes de la liste actuelle.</French>
|
<French>Ajoute automatiquement des accessoires ou des chargeurs compatibles (en fonction de la catégorie sélectionnée), pour toutes les armes de la liste actuelle.</French>
|
||||||
|
@ -64,6 +64,8 @@ if ([_item, _vehicle] call FUNC(canLoadItemIn)) then {
|
|||||||
|
|
||||||
[objNull, _item, true] call EFUNC(common,claim);
|
[objNull, _item, true] call EFUNC(common,claim);
|
||||||
|
|
||||||
|
[[LSTRING(loadingFailed), [_item, true] call FUNC(getNameItem)], 3] call EFUNC(common,displayTextStructured);
|
||||||
|
|
||||||
// Fix cancelling loading a carried item
|
// Fix cancelling loading a carried item
|
||||||
if (!isNull attachedTo _item) then {
|
if (!isNull attachedTo _item) then {
|
||||||
detach _item;
|
detach _item;
|
||||||
@ -85,6 +87,9 @@ if ([_item, _vehicle] call FUNC(canLoadItemIn)) then {
|
|||||||
|
|
||||||
true // return
|
true // return
|
||||||
} else {
|
} else {
|
||||||
|
// Unlock the object
|
||||||
|
[objNull, _item, true] call EFUNC(common,claim);
|
||||||
|
|
||||||
[[LSTRING(loadingFailed), [_item, true] call FUNC(getNameItem)], 3] call EFUNC(common,displayTextStructured);
|
[[LSTRING(loadingFailed), [_item, true] call FUNC(getNameItem)], 3] call EFUNC(common,displayTextStructured);
|
||||||
|
|
||||||
// Fix cancelling loading a carried item
|
// Fix cancelling loading a carried item
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_clearedCustomName">
|
<Key ID="STR_ACE_Cargo_clearedCustomName">
|
||||||
<English>Custom name has been cleared.</English>
|
<English>Custom name has been cleared.</English>
|
||||||
<Japanese>カスタムネームが削除されました。</Japanese>
|
<Japanese>カスタム名が削除されました。</Japanese>
|
||||||
<French>Le nom personnalisé a été supprimé.</French>
|
<French>Le nom personnalisé a été supprimé.</French>
|
||||||
<Russian>Пользовательское название удалено.</Russian>
|
<Russian>Пользовательское название удалено.</Russian>
|
||||||
<German>Eigener Name wurde gelöscht.</German>
|
<German>Eigener Name wurde gelöscht.</German>
|
||||||
@ -108,7 +108,7 @@
|
|||||||
<Spanish>Carga</Spanish>
|
<Spanish>Carga</Spanish>
|
||||||
<Italian>Carico</Italian>
|
<Italian>Carico</Italian>
|
||||||
<French>Cargaison</French>
|
<French>Cargaison</French>
|
||||||
<Japanese>カーゴ</Japanese>
|
<Japanese>貨物</Japanese>
|
||||||
<Korean>화물</Korean>
|
<Korean>화물</Korean>
|
||||||
<Chinese>貨物</Chinese>
|
<Chinese>貨物</Chinese>
|
||||||
<Chinesesimp>货物</Chinesesimp>
|
<Chinesesimp>货物</Chinesesimp>
|
||||||
@ -124,7 +124,7 @@
|
|||||||
<Spanish>Menu de carga</Spanish>
|
<Spanish>Menu de carga</Spanish>
|
||||||
<Italian>Menù del Carico</Italian>
|
<Italian>Menù del Carico</Italian>
|
||||||
<French>Menu de cargaison</French>
|
<French>Menu de cargaison</French>
|
||||||
<Japanese>カーゴ メニュー</Japanese>
|
<Japanese>貨物メニュー</Japanese>
|
||||||
<Korean>화물 메뉴</Korean>
|
<Korean>화물 메뉴</Korean>
|
||||||
<Chinese>貨物選單</Chinese>
|
<Chinese>貨物選單</Chinese>
|
||||||
<Chinesesimp>货物菜单</Chinesesimp>
|
<Chinesesimp>货物菜单</Chinesesimp>
|
||||||
@ -140,7 +140,7 @@
|
|||||||
<Spanish>Espacio de carga restante: %1</Spanish>
|
<Spanish>Espacio de carga restante: %1</Spanish>
|
||||||
<Italian>Spazio di carico rimanente: %1</Italian>
|
<Italian>Spazio di carico rimanente: %1</Italian>
|
||||||
<French>Espace de chargement restant : %1</French>
|
<French>Espace de chargement restant : %1</French>
|
||||||
<Japanese>カーゴの空き容量: %1</Japanese>
|
<Japanese>貨物室の空き容量: %1</Japanese>
|
||||||
<Korean>선적 공간 남음: %1</Korean>
|
<Korean>선적 공간 남음: %1</Korean>
|
||||||
<Chinese>貨物剩餘空間: %1</Chinese>
|
<Chinese>貨物剩餘空間: %1</Chinese>
|
||||||
<Chinesesimp>货物剩余空间:%1</Chinesesimp>
|
<Chinesesimp>货物剩余空间:%1</Chinesesimp>
|
||||||
@ -156,7 +156,7 @@
|
|||||||
<Spanish>Habilitar carga</Spanish>
|
<Spanish>Habilitar carga</Spanish>
|
||||||
<Italian>Abilita Carico</Italian>
|
<Italian>Abilita Carico</Italian>
|
||||||
<French>Activer la cargaison</French>
|
<French>Activer la cargaison</French>
|
||||||
<Japanese>カーゴを有効化</Japanese>
|
<Japanese>貨物を有効化</Japanese>
|
||||||
<Korean>화물 활성화</Korean>
|
<Korean>화물 활성화</Korean>
|
||||||
<Chinese>啟用貨物裝載</Chinese>
|
<Chinese>啟用貨物裝載</Chinese>
|
||||||
<Chinesesimp>启用货物装载</Chinesesimp>
|
<Chinesesimp>启用货物装载</Chinesesimp>
|
||||||
@ -172,7 +172,7 @@
|
|||||||
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
||||||
<Italian>Abilita il modulo di caricamento nel carico</Italian>
|
<Italian>Abilita il modulo di caricamento nel carico</Italian>
|
||||||
<French>Active la possibilité de charger du matériel dans un module de fret (véhicule/container).</French>
|
<French>Active la possibilité de charger du matériel dans un module de fret (véhicule/container).</French>
|
||||||
<Japanese>カーゴ モジュールで積み込みを有効化</Japanese>
|
<Japanese>貨物積載モジュールを有効化</Japanese>
|
||||||
<Korean>화물 모듈을 활성화합니다</Korean>
|
<Korean>화물 모듈을 활성화합니다</Korean>
|
||||||
<Chinese>啟用貨物裝載功能</Chinese>
|
<Chinese>啟用貨物裝載功能</Chinese>
|
||||||
<Chinesesimp>启用货物装载功能</Chinesesimp>
|
<Chinesesimp>启用货物装载功能</Chinesesimp>
|
||||||
@ -187,7 +187,7 @@
|
|||||||
<Spanish>Ajustes de carga</Spanish>
|
<Spanish>Ajustes de carga</Spanish>
|
||||||
<Italian>Impostazioni Carico</Italian>
|
<Italian>Impostazioni Carico</Italian>
|
||||||
<French>Paramètres de cargaison</French>
|
<French>Paramètres de cargaison</French>
|
||||||
<Japanese>カーゴ設定</Japanese>
|
<Japanese>貨物設定</Japanese>
|
||||||
<Korean>화물 설정</Korean>
|
<Korean>화물 설정</Korean>
|
||||||
<Chinese>貨物設定</Chinese>
|
<Chinese>貨物設定</Chinese>
|
||||||
<Chinesesimp>货物设定</Chinesesimp>
|
<Chinesesimp>货物设定</Chinesesimp>
|
||||||
@ -203,7 +203,7 @@
|
|||||||
<Czech>Konfigurace nákladního modulu</Czech>
|
<Czech>Konfigurace nákladního modulu</Czech>
|
||||||
<Italian>Configura le impostazioni del modulo carico</Italian>
|
<Italian>Configura le impostazioni del modulo carico</Italian>
|
||||||
<French>Configure les paramètres du module de cargaison.</French>
|
<French>Configure les paramètres du module de cargaison.</French>
|
||||||
<Japanese>カーゴ モジュールの設定を構成</Japanese>
|
<Japanese>貨物モジュールの設定を変更します</Japanese>
|
||||||
<Korean>화물 모듈의 환경 설정을 바꿉니다</Korean>
|
<Korean>화물 모듈의 환경 설정을 바꿉니다</Korean>
|
||||||
<Chinese>配置貨物模塊設定</Chinese>
|
<Chinese>配置貨物模塊設定</Chinese>
|
||||||
<Chinesesimp>配置货物模块设定</Chinesesimp>
|
<Chinesesimp>配置货物模块设定</Chinesesimp>
|
||||||
@ -219,7 +219,7 @@
|
|||||||
<Italian>%1<br/>caricato su<br/>%2</Italian>
|
<Italian>%1<br/>caricato su<br/>%2</Italian>
|
||||||
<Hungarian>%1<br/>berakodva ide:<br/>%2</Hungarian>
|
<Hungarian>%1<br/>berakodva ide:<br/>%2</Hungarian>
|
||||||
<Russian>%1<br/>загружен в<br/>%2</Russian>
|
<Russian>%1<br/>загружен в<br/>%2</Russian>
|
||||||
<Japanese>%1 は<br/>%2 へ<br/>積み込まれました</Japanese>
|
<Japanese>%1 を<br/>%2 に<br/>積み込みました</Japanese>
|
||||||
<Korean>%1은(는)<br/>%2 에 실림</Korean>
|
<Korean>%1은(는)<br/>%2 에 실림</Korean>
|
||||||
<Chinese>%1<br/>裝載至<br/>%2</Chinese>
|
<Chinese>%1<br/>裝載至<br/>%2</Chinese>
|
||||||
<Chinesesimp>%1<br/>装载至<br/>%2</Chinesesimp>
|
<Chinesesimp>%1<br/>装载至<br/>%2</Chinesesimp>
|
||||||
@ -235,7 +235,7 @@
|
|||||||
<Italian>Hai scaricato<br/>%1 da<br/>%2</Italian>
|
<Italian>Hai scaricato<br/>%1 da<br/>%2</Italian>
|
||||||
<Hungarian>1%<br/>kirakodva ebből:<br/>%2</Hungarian>
|
<Hungarian>1%<br/>kirakodva ebből:<br/>%2</Hungarian>
|
||||||
<Russian>%1<br/>разгружен из<br/>%2</Russian>
|
<Russian>%1<br/>разгружен из<br/>%2</Russian>
|
||||||
<Japanese>%1 が<br/>%2 から<br/>降ろされました</Japanese>
|
<Japanese>%1 を<br/>%2 から<br/>降ろしました</Japanese>
|
||||||
<Korean>%1은(는)<br/>%2에서 내려짐</Korean>
|
<Korean>%1은(는)<br/>%2에서 내려짐</Korean>
|
||||||
<Chinese>從<br/>%2卸載<br/>%1</Chinese>
|
<Chinese>從<br/>%2卸載<br/>%1</Chinese>
|
||||||
<Chinesesimp>从<br/>%2卸载<br/>%1</Chinesesimp>
|
<Chinesesimp>从<br/>%2卸载<br/>%1</Chinesesimp>
|
||||||
@ -243,10 +243,12 @@
|
|||||||
<Key ID="STR_ACE_Cargo_LoadingItem">
|
<Key ID="STR_ACE_Cargo_LoadingItem">
|
||||||
<English>Loading %1 into %2...</English>
|
<English>Loading %1 into %2...</English>
|
||||||
<Spanish>Cargando %1 en %2...</Spanish>
|
<Spanish>Cargando %1 en %2...</Spanish>
|
||||||
|
<Japanese>%1 を %2 に積み込んでいます・・・</Japanese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
<Key ID="STR_ACE_Cargo_UnloadingItem">
|
||||||
<English>Unloading %1 from %2...</English>
|
<English>Unloading %1 from %2...</English>
|
||||||
<Spanish>Descargando %1 de %2...</Spanish>
|
<Spanish>Descargando %1 de %2...</Spanish>
|
||||||
|
<Japanese>%1 を %2 から降ろしています・・・</Japanese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
<Key ID="STR_ACE_Cargo_LoadingFailed">
|
||||||
<English>%1<br/>could not be loaded</English>
|
<English>%1<br/>could not be loaded</English>
|
||||||
@ -285,7 +287,7 @@
|
|||||||
<German>Kann nicht entladen werden</German>
|
<German>Kann nicht entladen werden</German>
|
||||||
<Italian>Impossibile da scaricare</Italian>
|
<Italian>Impossibile da scaricare</Italian>
|
||||||
<French>Ne peut pas être déchargé</French>
|
<French>Ne peut pas être déchargé</French>
|
||||||
<Japanese>降ろせません</Japanese>
|
<Japanese>荷降ろし不可能です</Japanese>
|
||||||
<Korean>하역할 수가 없습니다</Korean>
|
<Korean>하역할 수가 없습니다</Korean>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SizeMenu">
|
<Key ID="STR_ACE_Cargo_SizeMenu">
|
||||||
@ -293,12 +295,12 @@
|
|||||||
<German>Frachtgröße: %1</German>
|
<German>Frachtgröße: %1</German>
|
||||||
<Italian>Dimensione Carico: %1</Italian>
|
<Italian>Dimensione Carico: %1</Italian>
|
||||||
<French>Encombrement fret: %1</French>
|
<French>Encombrement fret: %1</French>
|
||||||
<Japanese>カーゴ サイズ: %1</Japanese>
|
<Japanese>貨物のサイズ: %1</Japanese>
|
||||||
<Korean>화물 크기: %1</Korean>
|
<Korean>화물 크기: %1</Korean>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_customName_edenName">
|
<Key ID="STR_ACE_Cargo_customName_edenName">
|
||||||
<English>Custom Name</English>
|
<English>Custom Name</English>
|
||||||
<Japanese>カスタムネーム</Japanese>
|
<Japanese>カスタム名</Japanese>
|
||||||
<French>Nom personnalisé</French>
|
<French>Nom personnalisé</French>
|
||||||
<German>Eigener Name</German>
|
<German>Eigener Name</German>
|
||||||
<Italian>Nome Personalizzato</Italian>
|
<Italian>Nome Personalizzato</Italian>
|
||||||
@ -311,7 +313,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_customName_edenDesc">
|
<Key ID="STR_ACE_Cargo_customName_edenDesc">
|
||||||
<English>Set a custom cargo name used in the cargo interface.</English>
|
<English>Set a custom cargo name used in the cargo interface.</English>
|
||||||
<Japanese>カーゴ一覧で使用されるカスタムネームを設定します。</Japanese>
|
<Japanese>貨物インターフェイスで使用されるカスタム名を設定します。</Japanese>
|
||||||
<French>Définit un nom de fret personnalisé qui sera visible dans le menu de cargaison.</French>
|
<French>Définit un nom de fret personnalisé qui sera visible dans le menu de cargaison.</French>
|
||||||
<Russian>Установить пользовательское имя груза, используемое в интерфейсе погрузки.</Russian>
|
<Russian>Установить пользовательское имя груза, используемое в интерфейсе погрузки.</Russian>
|
||||||
<German>Definiere eigenen Frachtnamen, welcher im Frachtraum genutzt wird.</German>
|
<German>Definiere eigenen Frachtnamen, welcher im Frachtraum genutzt wird.</German>
|
||||||
@ -326,7 +328,7 @@
|
|||||||
<English>Cargo Space</English>
|
<English>Cargo Space</English>
|
||||||
<German>Frachtraum</German>
|
<German>Frachtraum</German>
|
||||||
<Italian>Spazio di Carico</Italian>
|
<Italian>Spazio di Carico</Italian>
|
||||||
<Japanese>カーゴ スペース</Japanese>
|
<Japanese>貨物室の容量</Japanese>
|
||||||
<Chinese>貨物空間</Chinese>
|
<Chinese>貨物空間</Chinese>
|
||||||
<Chinesesimp>货物空间</Chinesesimp>
|
<Chinesesimp>货物空间</Chinesesimp>
|
||||||
<Polish>Przestrzeń ładunkowa</Polish>
|
<Polish>Przestrzeń ładunkowa</Polish>
|
||||||
@ -342,7 +344,7 @@
|
|||||||
<English>The cargo space available in this vehicle/container</English>
|
<English>The cargo space available in this vehicle/container</English>
|
||||||
<German>Verfügbarer Frachtraum in diesem Fahrzeug/Container</German>
|
<German>Verfügbarer Frachtraum in diesem Fahrzeug/Container</German>
|
||||||
<Italian>Lo spazio disponibile in questo veicolo/container</Italian>
|
<Italian>Lo spazio disponibile in questo veicolo/container</Italian>
|
||||||
<Japanese>この車両/コンテナでカーゴ スペースを使えるようにします</Japanese>
|
<Japanese>この車両/コンテナで使用可能な貨物室の容量</Japanese>
|
||||||
<Chinese>設定此載具/集裝箱可裝載多少貨物</Chinese>
|
<Chinese>設定此載具/集裝箱可裝載多少貨物</Chinese>
|
||||||
<Chinesesimp>设定此载具/集装箱可装载多少货物</Chinesesimp>
|
<Chinesesimp>设定此载具/集装箱可装载多少货物</Chinesesimp>
|
||||||
<Polish>Dostępna przestrzeń ładunkowa w tym pojeździe/kontenerze</Polish>
|
<Polish>Dostępna przestrzeń ładunkowa w tym pojeździe/kontenerze</Polish>
|
||||||
@ -357,7 +359,7 @@
|
|||||||
<English>Cargo Size</English>
|
<English>Cargo Size</English>
|
||||||
<German>Frachtgröße</German>
|
<German>Frachtgröße</German>
|
||||||
<Italian>Dimensioni nel Carico</Italian>
|
<Italian>Dimensioni nel Carico</Italian>
|
||||||
<Japanese>カーゴ サイズ</Japanese>
|
<Japanese>貨物のサイズ</Japanese>
|
||||||
<Chinese>貨物的大小</Chinese>
|
<Chinese>貨物的大小</Chinese>
|
||||||
<Chinesesimp>货物的大小</Chinesesimp>
|
<Chinesesimp>货物的大小</Chinesesimp>
|
||||||
<Polish>Wielkość ładunku</Polish>
|
<Polish>Wielkość ładunku</Polish>
|
||||||
@ -373,7 +375,7 @@
|
|||||||
<English>The cargo space required to hold this object (-1 for not loadable)</English>
|
<English>The cargo space required to hold this object (-1 for not loadable)</English>
|
||||||
<German>Frachtraumgröße, welche zum Einladen dieses Objektes benötigt wird (-1 nicht einladbar)</German>
|
<German>Frachtraumgröße, welche zum Einladen dieses Objektes benötigt wird (-1 nicht einladbar)</German>
|
||||||
<Italian>Lo spazio di carico necessario per contenere questo oggetto (-1 per non caricabile)</Italian>
|
<Italian>Lo spazio di carico necessario per contenere questo oggetto (-1 per non caricabile)</Italian>
|
||||||
<Japanese>オブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可にします)</Japanese>
|
<Japanese>このオブジェクトの積載に必要な貨物室の容量 (-1 で積載不可に)</Japanese>
|
||||||
<Chinese>此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載)</Chinese>
|
<Chinese>此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載)</Chinese>
|
||||||
<Chinesesimp>此货物会占掉多少空间(设定 -1 的话此货物就不能被装载)</Chinesesimp>
|
<Chinesesimp>此货物会占掉多少空间(设定 -1 的话此货物就不能被装载)</Chinesesimp>
|
||||||
<Polish>Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania)</Polish>
|
<Polish>Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania)</Polish>
|
||||||
@ -432,7 +434,7 @@
|
|||||||
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
|
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
|
||||||
<English>Modifier for how long it takes to paradrop a cargo item.</English>
|
<English>Modifier for how long it takes to paradrop a cargo item.</English>
|
||||||
<German>Beeinflusst die zusätzliche Zeit für Türlastabwürfe.</German>
|
<German>Beeinflusst die zusätzliche Zeit für Türlastabwürfe.</German>
|
||||||
<Japanese>カーゴ アイテムを空中投下するまでの時間を変更します。</Japanese>
|
<Japanese>貨物の空中投下に掛かる時間を変更します。</Japanese>
|
||||||
<Italian>Modifica quanto tempo viene impiegato per paracadutare oggetti dal carico.</Italian>
|
<Italian>Modifica quanto tempo viene impiegato per paracadutare oggetti dal carico.</Italian>
|
||||||
<French>Modifie le temps nécessaire au paralargage d'une cargaison.</French>
|
<French>Modifie le temps nécessaire au paralargage d'une cargaison.</French>
|
||||||
<Chinese>設定空投所需消耗的時間</Chinese>
|
<Chinese>設定空投所需消耗的時間</Chinese>
|
||||||
@ -447,7 +449,7 @@
|
|||||||
<Key ID="STR_ACE_Cargo_loadTimeCoefficient">
|
<Key ID="STR_ACE_Cargo_loadTimeCoefficient">
|
||||||
<English>Load Time Coefficient</English>
|
<English>Load Time Coefficient</English>
|
||||||
<German>Ladezeitmultiplikator</German>
|
<German>Ladezeitmultiplikator</German>
|
||||||
<Japanese>積載所要時間係数</Japanese>
|
<Japanese>積載の所要時間係数</Japanese>
|
||||||
<Polish>Współczynnik czasu załadowania</Polish>
|
<Polish>Współczynnik czasu załadowania</Polish>
|
||||||
<Italian>Coefficente Tempo Caricamento</Italian>
|
<Italian>Coefficente Tempo Caricamento</Italian>
|
||||||
<Russian>Коэф. времени погрузки</Russian>
|
<Russian>Коэф. времени погрузки</Russian>
|
||||||
@ -462,7 +464,7 @@
|
|||||||
<Key ID="STR_ACE_Cargo_loadTimeCoefficient_description">
|
<Key ID="STR_ACE_Cargo_loadTimeCoefficient_description">
|
||||||
<English>Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value.</English>
|
<English>Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value.</English>
|
||||||
<German>Gibt an, wie lange das Laden / Entladen von Gegenständen dauern soll.\nZeit in Sekunden, die mit der Größe des Gegenstandes multipliziert wird.</German>
|
<German>Gibt an, wie lange das Laden / Entladen von Gegenständen dauern soll.\nZeit in Sekunden, die mit der Größe des Gegenstandes multipliziert wird.</German>
|
||||||
<Japanese>アイテムのロード/アンロードに掛かる時間を変更します。\n時間 (秒) は、アイテムのサイズにこの値を掛けたものです。</Japanese>
|
<Japanese>貨物の積み込み/積み下ろしに掛かる時間を変更します。\n時間 (秒) は、貨物のサイズにこの値を掛けたものです。</Japanese>
|
||||||
<Polish>Modyfikuje, jak długo zajmuje załadowywanie/wyładowywanie przedmiotów. \nCzasem, w sekundach, jest wielkość przedmiotu razy jego wartość.</Polish>
|
<Polish>Modyfikuje, jak długo zajmuje załadowywanie/wyładowywanie przedmiotów. \nCzasem, w sekundach, jest wielkość przedmiotu razy jego wartość.</Polish>
|
||||||
<Italian>Modifica il tempo impiegato per caricare o scaricare gli oggetti.\nIl tempo, in secondi, equivale alla dimensione dell'oggetto moltiplicata per questo valore</Italian>
|
<Italian>Modifica il tempo impiegato per caricare o scaricare gli oggetti.\nIl tempo, in secondi, equivale alla dimensione dell'oggetto moltiplicata per questo valore</Italian>
|
||||||
<Russian>Изменяет время для загрузки/выгрузки предметов. \n Время (сек) - это размер предмета, умноженный на это значение.</Russian>
|
<Russian>Изменяет время для загрузки/выгрузки предметов. \n Время (сек) - это размер предмета, умноженный на это значение.</Russian>
|
||||||
@ -477,7 +479,7 @@
|
|||||||
<Key ID="STR_ACE_Cargo_openAfterUnload">
|
<Key ID="STR_ACE_Cargo_openAfterUnload">
|
||||||
<English>Reopen Cargo Menu</English>
|
<English>Reopen Cargo Menu</English>
|
||||||
<Turkish>Kargo Menüsünü Tekrar Aç</Turkish>
|
<Turkish>Kargo Menüsünü Tekrar Aç</Turkish>
|
||||||
<Japanese>カーゴ メニューを再度開く</Japanese>
|
<Japanese>貨物メニューを再度開く</Japanese>
|
||||||
<French>Rouvrir le menu de cargaison</French>
|
<French>Rouvrir le menu de cargaison</French>
|
||||||
<Russian>Переоткрыть меню погрузки</Russian>
|
<Russian>Переоткрыть меню погрузки</Russian>
|
||||||
<German>Frachtmenü erneut öffnen</German>
|
<German>Frachtmenü erneut öffnen</German>
|
||||||
@ -491,7 +493,7 @@
|
|||||||
<Key ID="STR_ACE_Cargo_openAfterUnload_description">
|
<Key ID="STR_ACE_Cargo_openAfterUnload_description">
|
||||||
<English>Reopen the Cargo Menu after successful unload.</English>
|
<English>Reopen the Cargo Menu after successful unload.</English>
|
||||||
<Turkish>Başarılı bir yük indirmeden sonra Kargo Menüsünü tekrar göster.</Turkish>
|
<Turkish>Başarılı bir yük indirmeden sonra Kargo Menüsünü tekrar göster.</Turkish>
|
||||||
<Japanese>カーゴを降ろした後に再びカーゴ メニューを開きます。</Japanese>
|
<Japanese>貨物を降ろした後に再び貨物メニューを開きます。</Japanese>
|
||||||
<French>Réouvre le menu de cargaison après un déchargement réussi.</French>
|
<French>Réouvre le menu de cargaison après un déchargement réussi.</French>
|
||||||
<Russian>Переоткрыть меню погрузки после успешной выгрузки.</Russian>
|
<Russian>Переоткрыть меню погрузки после успешной выгрузки.</Russian>
|
||||||
<German>Frachtmenü erneut öffnen, nach erfolgreichen Entladen.</German>
|
<German>Frachtmenü erneut öffnen, nach erfolgreichen Entladen.</German>
|
||||||
@ -507,7 +509,7 @@
|
|||||||
<Korean>화물 내린 후 운반</Korean>
|
<Korean>화물 내린 후 운반</Korean>
|
||||||
<Russian>Нести после выгрузки</Russian>
|
<Russian>Нести после выгрузки</Russian>
|
||||||
<Spanish>Llevar encima tras la descarga</Spanish>
|
<Spanish>Llevar encima tras la descarga</Spanish>
|
||||||
<Japanese>荷降ろし後の運搬</Japanese>
|
<Japanese>荷降ろし後に持ち運ぶ</Japanese>
|
||||||
<Polish>Niesienie Po Rozładowaniu</Polish>
|
<Polish>Niesienie Po Rozładowaniu</Polish>
|
||||||
<German>Nach dem Entladen tragen</German>
|
<German>Nach dem Entladen tragen</German>
|
||||||
<Italian>Trasporta dopo aver Scaricato</Italian>
|
<Italian>Trasporta dopo aver Scaricato</Italian>
|
||||||
@ -519,7 +521,7 @@
|
|||||||
<Korean>화물 아이템을 내린 후 들거나 끌지 여부를 결정합니다.</Korean>
|
<Korean>화물 아이템을 내린 후 들거나 끌지 여부를 결정합니다.</Korean>
|
||||||
<Russian>Нужно ли переносить или тащить предметы после их выгрузки.</Russian>
|
<Russian>Нужно ли переносить или тащить предметы после их выгрузки.</Russian>
|
||||||
<Spanish>Controla si los objetos de carga son llevados encima o arrastrados despues de la descarga.</Spanish>
|
<Spanish>Controla si los objetos de carga son llevados encima o arrastrados despues de la descarga.</Spanish>
|
||||||
<Japanese>荷降ろし後、貨物アイテムを運ぶか引きずるかを制御する。</Japanese>
|
<Japanese>荷降ろし後、貨物を運ぶか引きずるかを制御する。</Japanese>
|
||||||
<Polish>Kontroluje, czy przedmioty z ładunku są przenoszone lub ciągnięte po ich wyładowaniu.</Polish>
|
<Polish>Kontroluje, czy przedmioty z ładunku są przenoszone lub ciągnięte po ich wyładowaniu.</Polish>
|
||||||
<German>Steuert, ob Objekte nach dem Entladen getragen oder gezogen werden.</German>
|
<German>Steuert, ob Objekte nach dem Entladen getragen oder gezogen werden.</German>
|
||||||
<Italian>Determina se un oggetto verrà subito trasportato o trascinato dopo essere stato scaricato.</Italian>
|
<Italian>Determina se un oggetto verrà subito trasportato o trascinato dopo essere stato scaricato.</Italian>
|
||||||
|
@ -1641,7 +1641,7 @@
|
|||||||
<French>Renommer</French>
|
<French>Renommer</French>
|
||||||
<German>Umbenennen</German>
|
<German>Umbenennen</German>
|
||||||
<Polish>Zmień nazwę</Polish>
|
<Polish>Zmień nazwę</Polish>
|
||||||
<Japanese>改名</Japanese>
|
<Japanese>名前変更</Japanese>
|
||||||
<Italian>Rinomina</Italian>
|
<Italian>Rinomina</Italian>
|
||||||
<Korean>이름 바꾸기</Korean>
|
<Korean>이름 바꾸기</Korean>
|
||||||
<Chinese>重新命名</Chinese>
|
<Chinese>重新命名</Chinese>
|
||||||
|
66
addons/cookoff/CfgSounds.hpp
Normal file
66
addons/cookoff/CfgSounds.hpp
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#define VOLUME 2
|
||||||
|
#define PITCH 1
|
||||||
|
|
||||||
|
#define SHOTSOUND(type,dist,N,maxDistance)\
|
||||||
|
class GVAR(TRIPLES(type,dist,N)) {\
|
||||||
|
sound[] = {QPATHTOF(sounds\type\DOUBLES(dist,N).wss), VOLUME, PITCH, maxDistance};\
|
||||||
|
titles[] = {};\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SHOTSOUNDCLASS(type,dist,maxDistance)\
|
||||||
|
SHOTSOUND(type,dist,1,maxDistance);\
|
||||||
|
SHOTSOUND(type,dist,2,maxDistance);\
|
||||||
|
SHOTSOUND(type,dist,3,maxDistance)
|
||||||
|
|
||||||
|
#define SHOTSOUNDCLASSTYPE(type,maxDistance)\
|
||||||
|
SHOTSOUNDCLASS(type,close,maxDistance);\
|
||||||
|
SHOTSOUNDCLASS(type,mid,maxDistance);\
|
||||||
|
SHOTSOUNDCLASS(type,far,maxDistance)
|
||||||
|
|
||||||
|
// Allows other mods to change sounds for cook-off
|
||||||
|
class CfgSounds {
|
||||||
|
// These macros set up the sounds for the various classes
|
||||||
|
SHOTSOUNDCLASSTYPE(shotbullet,1250);
|
||||||
|
SHOTSOUNDCLASSTYPE(shotrocket,1600);
|
||||||
|
SHOTSOUNDCLASSTYPE(shotshell,1300);
|
||||||
|
|
||||||
|
// Missiles use the same sounds as rockets
|
||||||
|
class GVAR(shotmissile_close_1): GVAR(shotrocket_close_1) {};
|
||||||
|
class GVAR(shotmissile_close_2): GVAR(shotrocket_close_2) {};
|
||||||
|
class GVAR(shotmissile_close_3): GVAR(shotrocket_close_3) {};
|
||||||
|
class GVAR(shotmissile_mid_1): GVAR(shotrocket_mid_1) {};
|
||||||
|
class GVAR(shotmissile_mid_2): GVAR(shotrocket_mid_2) {};
|
||||||
|
class GVAR(shotmissile_mid_3): GVAR(shotrocket_mid_3) {};
|
||||||
|
class GVAR(shotmissile_far_1): GVAR(shotrocket_far_1) {};
|
||||||
|
class GVAR(shotmissile_far_2): GVAR(shotrocket_far_2) {};
|
||||||
|
class GVAR(shotmissile_far_3): GVAR(shotrocket_far_3) {};
|
||||||
|
|
||||||
|
// Submunitions have the same sound as bullets, but a higher maxDistance
|
||||||
|
class GVAR(shotsubmunitions_close_1): GVAR(shotbullet_close_1) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\close_1.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_close_2): GVAR(shotbullet_close_2) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\close_2.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_close_3): GVAR(shotbullet_close_3) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\close_3.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_mid_1): GVAR(shotbullet_far_1) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\mid_1.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_mid_2): GVAR(shotbullet_mid_2) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\mid_2.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_mid_3): GVAR(shotbullet_mid_3) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\mid_3.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_far_1): GVAR(shotbullet_far_1) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\far_1.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_far_2): GVAR(shotbullet_far_2) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\far_2.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
class GVAR(shotsubmunitions_far_3): GVAR(shotbullet_far_3) {
|
||||||
|
sound[] = {QPATHTOF(sounds\shotbullet\far_3.wss), VOLUME, PITCH, 1600};
|
||||||
|
};
|
||||||
|
};
|
@ -76,3 +76,42 @@ if (isServer) then {
|
|||||||
[QGVAR(detonateAmmunition), [_vehicle, false, objNull, objNull, (random MAX_AMMO_DETONATION_START_DELAY) max MIN_AMMO_DETONATION_START_DELAY]] call CBA_fnc_serverEvent;
|
[QGVAR(detonateAmmunition), [_vehicle, false, objNull, objNull, (random MAX_AMMO_DETONATION_START_DELAY) max MIN_AMMO_DETONATION_START_DELAY]] call CBA_fnc_serverEvent;
|
||||||
};
|
};
|
||||||
}, nil, ["CAManBase", "StaticWeapon"]] call CBA_fnc_addClassEventHandler;
|
}, nil, ["CAManBase", "StaticWeapon"]] call CBA_fnc_addClassEventHandler;
|
||||||
|
|
||||||
|
if (hasInterface) then {
|
||||||
|
// Plays a sound locally, so that different sounds can be used for various distances
|
||||||
|
[QGVAR(playCookoffSound), {
|
||||||
|
params ["_object", "_sound"];
|
||||||
|
|
||||||
|
if (isNull _object) exitWith {};
|
||||||
|
|
||||||
|
private _distance = _object distance (positionCameraToWorld [0, 0, 0]);
|
||||||
|
|
||||||
|
TRACE_3("",_object,_sound,_maxDistance);
|
||||||
|
|
||||||
|
// 3 classes of distances: close, mid and far, each having different sound files
|
||||||
|
private _classDistance = switch (true) do {
|
||||||
|
case (_distance < DISTANCE_CLOSE): {"close"};
|
||||||
|
case (_distance < DISTANCE_MID): {"mid"};
|
||||||
|
default {"far"};
|
||||||
|
};
|
||||||
|
|
||||||
|
_sound = format [QGVAR(%1_%2_%3), _sound, _classDistance, floor (random 3) + 1];
|
||||||
|
|
||||||
|
TRACE_1("",_sound);
|
||||||
|
|
||||||
|
// Allows other mods to change sounds for cook-off
|
||||||
|
_sound = getArray (configFile >> "CfgSounds" >> _sound >> "sound");
|
||||||
|
|
||||||
|
if (_sound isEqualTo []) exitWith {};
|
||||||
|
|
||||||
|
_sound params ["_sound", "_volume", "_pitch", "_maxDistance"];
|
||||||
|
|
||||||
|
if (_distance > _maxDistance) exitWith {};
|
||||||
|
|
||||||
|
// Make sure file exists, so RPT isn't spammed with non-existent entry errors
|
||||||
|
if (!fileExists _sound) exitWith {};
|
||||||
|
|
||||||
|
// Obeys speed of sound and takes doppler effects into account
|
||||||
|
playSound3D [_sound, objNull, insideBuilding _object >= 0.5, getPosASL _object, _volume, _pitch + (random 0.2) - 0.1, _maxDistance, 0, true];
|
||||||
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
};
|
||||||
|
@ -21,4 +21,5 @@ class CfgPatches {
|
|||||||
#include "CfgAmmo.hpp"
|
#include "CfgAmmo.hpp"
|
||||||
#include "CfgCloudlets.hpp"
|
#include "CfgCloudlets.hpp"
|
||||||
#include "CfgSFX.hpp"
|
#include "CfgSFX.hpp"
|
||||||
|
#include "CfgSounds.hpp"
|
||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
|
@ -25,12 +25,12 @@ params ["_object", ["_destroyWhenFinished", false], ["_killer", objNull], ["_ins
|
|||||||
|
|
||||||
if (isNull _object) exitWith {};
|
if (isNull _object) exitWith {};
|
||||||
|
|
||||||
private _vehicleAmmo = _object getVariable QGVAR(cookoffMagazines);
|
private _objectAmmo = _object getVariable QGVAR(cookoffMagazines);
|
||||||
|
|
||||||
if (isNil "_vehicleAmmo") then {
|
if (isNil "_objectAmmo") then {
|
||||||
_vehicleAmmo = _object call FUNC(getVehicleAmmo);
|
_objectAmmo = _object call FUNC(getVehicleAmmo);
|
||||||
|
|
||||||
_object setVariable [QGVAR(cookoffMagazines), _vehicleAmmo];
|
_object setVariable [QGVAR(cookoffMagazines), _objectAmmo];
|
||||||
|
|
||||||
// TODO: When setMagazineTurretAmmo and magazineTurretAmmo are fixed (https://feedback.bistudio.com/T79689),
|
// TODO: When setMagazineTurretAmmo and magazineTurretAmmo are fixed (https://feedback.bistudio.com/T79689),
|
||||||
// we can add gradual ammo removal during cook-off
|
// we can add gradual ammo removal during cook-off
|
||||||
@ -43,7 +43,7 @@ if (isNil "_vehicleAmmo") then {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_vehicleAmmo params ["_magazines", "_totalAmmo"];
|
_objectAmmo params ["_magazines", "_totalAmmo"];
|
||||||
|
|
||||||
// If the cook-off has finished, clean up the effects and destroy the object
|
// If the cook-off has finished, clean up the effects and destroy the object
|
||||||
if (_magazines isEqualTo [] || {_totalAmmo <= 0}) exitWith {
|
if (_magazines isEqualTo [] || {_totalAmmo <= 0}) exitWith {
|
||||||
@ -140,16 +140,14 @@ private _fnc_spawnProjectile = {
|
|||||||
|
|
||||||
switch (_simType) do {
|
switch (_simType) do {
|
||||||
case "shotbullet": {
|
case "shotbullet": {
|
||||||
private _sound = selectRandom [QPATHTO_R(sounds\light_crack_close.wss), QPATHTO_R(sounds\light_crack_close_filtered.wss), QPATHTO_R(sounds\heavy_crack_close.wss), QPATHTO_R(sounds\heavy_crack_close_filtered.wss)];
|
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||||
playSound3D [_sound, objNull, false, getPosASL _object, 2, 1, 1250];
|
|
||||||
|
|
||||||
if (random 1 < 0.6) then {
|
if (random 1 < 0.6) then {
|
||||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
case "shotshell": {
|
case "shotshell": {
|
||||||
private _sound = selectRandom [QPATHTO_R(sounds\heavy_crack_close.wss), QPATHTO_R(sounds\heavy_crack_close_filtered.wss)];
|
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||||
playSound3D [_sound, objNull, false, getPosASL _object, 2, 1, 1300];
|
|
||||||
|
|
||||||
if (random 1 < 0.15) then {
|
if (random 1 < 0.15) then {
|
||||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||||
@ -166,8 +164,7 @@ switch (_simType) do {
|
|||||||
case "shotmissile";
|
case "shotmissile";
|
||||||
case "shotsubmunitions": {
|
case "shotsubmunitions": {
|
||||||
if (random 1 < 0.1) then {
|
if (random 1 < 0.1) then {
|
||||||
private _sound = selectRandom [QPATHTO_R(sounds\cannon_crack_close.wss), QPATHTO_R(sounds\cannon_crack_close_filtered.wss)];
|
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||||
playSound3D [_sound, objNull, false, getPosASL _object, 3, 1, 1600];
|
|
||||||
|
|
||||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||||
} else {
|
} else {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Gets all magazines inside of a vehicle.
|
* Gets all magazines inside of a vehicle.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Vehicle <OBJECT>
|
* 0: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* 0: Ammo array <ARRAY>
|
* 0: Ammo array <ARRAY>
|
||||||
@ -19,8 +19,8 @@
|
|||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params ["_vehicle"];
|
params ["_object"];
|
||||||
TRACE_1("getVehicleAmmo",_vehicle);
|
TRACE_1("getVehicleAmmo",_object);
|
||||||
|
|
||||||
private _ammoToDetonate = [];
|
private _ammoToDetonate = [];
|
||||||
private _totalAmmo = 0;
|
private _totalAmmo = 0;
|
||||||
@ -45,7 +45,7 @@ private _ammo = "";
|
|||||||
_ammoToDetonate pushBack [_magazine, _count, true];
|
_ammoToDetonate pushBack [_magazine, _count, true];
|
||||||
_totalAmmo = _totalAmmo + _count;
|
_totalAmmo = _totalAmmo + _count;
|
||||||
};
|
};
|
||||||
} forEach (magazinesAllTurrets [_vehicle, true]);
|
} forEach (magazinesAllTurrets [_object, true]);
|
||||||
|
|
||||||
// Get ammo from cargo space
|
// Get ammo from cargo space
|
||||||
{
|
{
|
||||||
@ -55,14 +55,14 @@ private _ammo = "";
|
|||||||
_ammoToDetonate pushBack [_magazine, _count, false];
|
_ammoToDetonate pushBack [_magazine, _count, false];
|
||||||
_totalAmmo = _totalAmmo + _count;
|
_totalAmmo = _totalAmmo + _count;
|
||||||
};
|
};
|
||||||
} forEach (magazinesAmmoCargo _vehicle);
|
} forEach (magazinesAmmoCargo _object);
|
||||||
|
|
||||||
// Get ammo from transportAmmo / ace_rearm
|
// Get ammo from transportAmmo / ace_rearm
|
||||||
private _configVehicle = configOf _vehicle;
|
private _configVehicle = configOf _object;
|
||||||
private _configSupply = (getNumber (_configVehicle >> "transportAmmo")) max (getNumber (_configVehicle >> QEGVAR(rearm,defaultSupply)));
|
private _configSupply = (getNumber (_configVehicle >> "transportAmmo")) max (getNumber (_configVehicle >> QEGVAR(rearm,defaultSupply)));
|
||||||
|
|
||||||
if (_vehicle getVariable [QEGVAR(rearm,isSupplyVehicle), _configSupply > 0]) then {
|
if (_object getVariable [QEGVAR(rearm,isSupplyVehicle), _configSupply > 0]) then {
|
||||||
TRACE_1("transportAmmo vehicle - adding virtual ammo",typeOf _vehicle);
|
TRACE_1("transportAmmo vehicle - adding virtual ammo",typeOf _object);
|
||||||
|
|
||||||
_ammoToDetonate pushBack ["2000Rnd_65x39_belt", 2000, false];
|
_ammoToDetonate pushBack ["2000Rnd_65x39_belt", 2000, false];
|
||||||
_totalAmmo = _totalAmmo + 2000;
|
_totalAmmo = _totalAmmo + 2000;
|
||||||
|
@ -38,3 +38,6 @@
|
|||||||
|
|
||||||
// Common commander hatch defines for default vehicles
|
// Common commander hatch defines for default vehicles
|
||||||
#define DEFAULT_COMMANDER_HATCHES ["osa_poklop_commander", "hatch_commander_axis"]
|
#define DEFAULT_COMMANDER_HATCHES ["osa_poklop_commander", "hatch_commander_axis"]
|
||||||
|
|
||||||
|
#define DISTANCE_CLOSE 235
|
||||||
|
#define DISTANCE_MID 952
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/close_1.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/close_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/close_2.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/close_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/close_3.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/close_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/far_1.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/far_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/far_2.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/far_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/far_3.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/far_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/mid_1.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/mid_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/mid_2.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/mid_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotbullet/mid_3.wss
Normal file
BIN
addons/cookoff/sounds/shotbullet/mid_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/close_1.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/close_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/close_2.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/close_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/close_3.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/close_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/far_1.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/far_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/far_2.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/far_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/far_3.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/far_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/mid_1.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/mid_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/mid_2.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/mid_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotrocket/mid_3.wss
Normal file
BIN
addons/cookoff/sounds/shotrocket/mid_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/close_1.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/close_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/close_2.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/close_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/close_3.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/close_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/far_1.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/far_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/far_2.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/far_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/far_3.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/far_3.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/mid_1.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/mid_1.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/mid_2.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/mid_2.wss
Normal file
Binary file not shown.
BIN
addons/cookoff/sounds/shotshell/mid_3.wss
Normal file
BIN
addons/cookoff/sounds/shotshell/mid_3.wss
Normal file
Binary file not shown.
@ -465,7 +465,7 @@
|
|||||||
<Italian>Scorta d'acqua</Italian>
|
<Italian>Scorta d'acqua</Italian>
|
||||||
<Chinese>飲用水補給</Chinese>
|
<Chinese>飲用水補給</Chinese>
|
||||||
<Chinesesimp>饮用水补给</Chinesesimp>
|
<Chinesesimp>饮用水补给</Chinesesimp>
|
||||||
<Japanese>水資源</Japanese>
|
<Japanese>水資源量</Japanese>
|
||||||
<Russian>Водные ресурсы</Russian>
|
<Russian>Водные ресурсы</Russian>
|
||||||
<Polish>Źródło wody</Polish>
|
<Polish>Źródło wody</Polish>
|
||||||
<Korean>식수 보급량</Korean>
|
<Korean>식수 보급량</Korean>
|
||||||
@ -478,7 +478,7 @@
|
|||||||
<Italian>La quantità di acqua disponibile per interazioni ACE Razioni da Campo di sorgenti d'acqua (-1 nessuna, -10 infinita)</Italian>
|
<Italian>La quantità di acqua disponibile per interazioni ACE Razioni da Campo di sorgenti d'acqua (-1 nessuna, -10 infinita)</Italian>
|
||||||
<Chinese>水源可供補充飲用水的次數(-1為關閉,-10為無限次)。</Chinese>
|
<Chinese>水源可供補充飲用水的次數(-1為關閉,-10為無限次)。</Chinese>
|
||||||
<Chinesesimp>水源可供取水的次数(-1为关闭,-10为无限次)。</Chinesesimp>
|
<Chinesesimp>水源可供取水的次数(-1为关闭,-10为无限次)。</Chinesesimp>
|
||||||
<Japanese>ACE フィールド レーションで利用できる水源の量を設定できます。(-1で無効化、-10で無限)</Japanese>
|
<Japanese>ACE フィールド レーションで利用できる水源の資源量を設定できます。(-1で無効化、-10で無限)</Japanese>
|
||||||
<Russian>Количество воды, доступной для использования в ACE Полевые рационы. (-1 - отключено, -10 - бесконечно)</Russian>
|
<Russian>Количество воды, доступной для использования в ACE Полевые рационы. (-1 - отключено, -10 - бесконечно)</Russian>
|
||||||
<Polish>Ilość wody dostępnej dla Akcji ACE Źródła wody (-1 wyłączone, -10 nieskończone)</Polish>
|
<Polish>Ilość wody dostępnej dla Akcji ACE Źródła wody (-1 wyłączone, -10 nieskończone)</Polish>
|
||||||
<Korean>ACE 전투식량 물 근처 행동에서 얼마나 물을 얻어 갈 수 있는지를 정합니다 (-1은 비활성화, -10은 무한대)</Korean>
|
<Korean>ACE 전투식량 물 근처 행동에서 얼마나 물을 얻어 갈 수 있는지를 정합니다 (-1은 비활성화, -10은 무한대)</Korean>
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
class Extended_PreStart_EventHandlers {
|
class Extended_PreStart_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
||||||
|
@ -92,7 +92,7 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
class ACE_PlottingBoard {
|
class ACE_PlottingBoard {
|
||||||
displayName = CSTRING(ShowPlottingBoard);
|
displayName = CSTRING(ShowPlottingBoard);
|
||||||
condition = QUOTE(GVAR(plottingBoard_Shown) < 1 && {call FUNC(canUsePlottingBoard)});
|
condition = QUOTE(GVAR(plottingBoard_Shown) == 0 && {call FUNC(canUsePlottingBoard)});
|
||||||
statement = QUOTE(GVAR(plottingBoard_Shown) = 1);
|
statement = QUOTE(GVAR(plottingBoard_Shown) = 1);
|
||||||
EXCEPTIONS;
|
EXCEPTIONS;
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
@ -127,7 +127,7 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
class ACE_PlottingBoardAlign {
|
class ACE_PlottingBoardAlign {
|
||||||
displayName = CSTRING(AlignTo);
|
displayName = CSTRING(AlignTo);
|
||||||
condition = QUOTE(GVAR(plottingBoard_Shown) > 0);
|
condition = QUOTE(GVAR(plottingBoard_Shown) != 0);
|
||||||
statement = "";
|
statement = "";
|
||||||
EXCEPTIONS;
|
EXCEPTIONS;
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
@ -141,7 +141,7 @@ class CfgVehicles {
|
|||||||
|
|
||||||
class ACE_PlottingBoardAlignBoardMaptool {
|
class ACE_PlottingBoardAlignBoardMaptool {
|
||||||
displayName = CSTRING(ToMapToolLabel);
|
displayName = CSTRING(ToMapToolLabel);
|
||||||
condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_angle) != GVAR(mapTool_angle));
|
condition = QUOTE(GVAR(mapTool_Shown) != 0 && GVAR(plottingBoard_angle) != GVAR(mapTool_angle));
|
||||||
statement = QUOTE(GVAR(plottingBoard_angle) = GVAR(mapTool_angle));
|
statement = QUOTE(GVAR(plottingBoard_angle) = GVAR(mapTool_angle));
|
||||||
EXCEPTIONS;
|
EXCEPTIONS;
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
@ -163,7 +163,7 @@ class CfgVehicles {
|
|||||||
|
|
||||||
class ACE_PlottingBoardAlignAcrylicMaptool {
|
class ACE_PlottingBoardAlignAcrylicMaptool {
|
||||||
displayName = CSTRING(ToMapToolLabel);
|
displayName = CSTRING(ToMapToolLabel);
|
||||||
condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_acrylicAngle) != GVAR(mapTool_angle));
|
condition = QUOTE(GVAR(mapTool_Shown) != 0 && GVAR(plottingBoard_acrylicAngle) != GVAR(mapTool_angle));
|
||||||
statement = QUOTE(GVAR(plottingBoard_acrylicAngle) = GVAR(mapTool_angle));
|
statement = QUOTE(GVAR(plottingBoard_acrylicAngle) = GVAR(mapTool_angle));
|
||||||
EXCEPTIONS;
|
EXCEPTIONS;
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
@ -185,7 +185,7 @@ class CfgVehicles {
|
|||||||
|
|
||||||
class ACE_PlottingBoardAlignRulerMaptool {
|
class ACE_PlottingBoardAlignRulerMaptool {
|
||||||
displayName = CSTRING(ToMapToolLabel);
|
displayName = CSTRING(ToMapToolLabel);
|
||||||
condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_rulerAngle) != GVAR(mapTool_angle));
|
condition = QUOTE(GVAR(mapTool_Shown) != 0 && GVAR(plottingBoard_rulerAngle) != GVAR(mapTool_angle));
|
||||||
statement = QUOTE(GVAR(plottingBoard_rulerAngle) = GVAR(mapTool_angle));
|
statement = QUOTE(GVAR(plottingBoard_rulerAngle) = GVAR(mapTool_angle));
|
||||||
EXCEPTIONS;
|
EXCEPTIONS;
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
|
@ -26,12 +26,15 @@ GVAR(plottingBoard_moveToMouse) = true; // used to display it in center of scre
|
|||||||
GVAR(plottingBoard_markers) = createHashMap;
|
GVAR(plottingBoard_markers) = createHashMap;
|
||||||
|
|
||||||
// Install the event handers for the map tools on the main in-game map
|
// Install the event handers for the map tools on the main in-game map
|
||||||
[{!isNull findDisplay 12},
|
[{
|
||||||
{
|
!isNull findDisplay 12
|
||||||
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseMoving", {_this call FUNC(handleMouseMove);}];
|
}, {
|
||||||
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call FUNC(handleMouseButton);}];
|
private _map = (findDisplay 12) displayCtrl 51;
|
||||||
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call FUNC(handleMouseButton)}];
|
|
||||||
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {call FUNC(updateMapToolMarkers); call FUNC(openMapGpsUpdate);}];
|
_map ctrlAddEventHandler ["MouseMoving", LINKFUNC(handleMouseMove)];
|
||||||
|
_map ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call FUNC(handleMouseButton);}];
|
||||||
|
_map ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call FUNC(handleMouseButton)}];
|
||||||
|
_map ctrlAddEventHandler ["Draw", {call FUNC(updateMapToolMarkers); call FUNC(openMapGpsUpdate);}];
|
||||||
}, []] call CBA_fnc_waitUntilAndExecute;
|
}, []] call CBA_fnc_waitUntilAndExecute;
|
||||||
|
|
||||||
["visibleMap", {
|
["visibleMap", {
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
#include "..\script_component.hpp"
|
#include "..\script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: esteldunedain
|
* Author: esteldunedain
|
||||||
* Returns the equivalent of 100m in screen coordinates
|
* Returns the equivalent of 100m in screen coordinates.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* Map scale <NUMBER>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* call ACE_maptools_fnc_calculateMapScale
|
* call ace_maptools_fnc_calculateMapScale
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private _pos = ((findDisplay 12) displayCtrl 51) ctrlMapScreenToWorld [0.5, 0.5];
|
private _mapCtrl = (findDisplay 12) displayCtrl 51;
|
||||||
private _screenOffset = ((findDisplay 12) displayCtrl 51) posWorldToScreen [(_pos select 0) + 100, (_pos select 1)];
|
private _pos = _mapCtrl ctrlMapScreenToWorld [0.5, 0.5];
|
||||||
|
private _screenOffset = _mapCtrl posWorldToScreen (_pos vectorAdd [100, 0]);
|
||||||
|
|
||||||
(_screenOffset select 0) - 0.5
|
(_screenOffset select 0) - 0.5
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
#include "..\script_component.hpp"
|
#include "..\script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: esteldunedain
|
* Author: esteldunedain
|
||||||
* canUseMapGPS
|
* Returns if the GPS on the map can be used.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* Boolean <BOOL>
|
* GPS can be used <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* call ACE_maptools_fnc_canUseMapGPS
|
* call ace_maptools_fnc_canUseMapGPS
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
#include "..\script_component.hpp"
|
#include "..\script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: esteldunedain
|
* Author: esteldunedain
|
||||||
* canUseMapTools
|
* Returns if the map tools can be used.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* Boolean <BOOL>
|
* Map tools can be used <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* call ACE_maptools_fnc_canUseMapTools
|
* call ace_maptools_fnc_canUseMapTools
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
visibleMap &&
|
visibleMap &&
|
||||||
{alive ACE_player} &&
|
{alive ACE_player} &&
|
||||||
{"ACE_MapTools" in (ACE_player call EFUNC(common,uniqueItems))} &&
|
|
||||||
{!GVAR(mapTool_isDragging)} &&
|
{!GVAR(mapTool_isDragging)} &&
|
||||||
{!GVAR(mapTool_isRotating)} &&
|
{!GVAR(mapTool_isRotating)} &&
|
||||||
{getUnitLoadout ACE_player param [9, []] param [0, ""] != ""}
|
{ACE_player getSlotItemName TYPE_MAP != ""} &&
|
||||||
|
{[ACE_player, "ACE_MapTools"] call EFUNC(common,hasItem)}
|
||||||
|
@ -17,6 +17,6 @@
|
|||||||
|
|
||||||
visibleMap &&
|
visibleMap &&
|
||||||
{alive ACE_player} &&
|
{alive ACE_player} &&
|
||||||
{[ACE_player, "ACE_PlottingBoard"] call EFUNC(common,hasItem)} &&
|
|
||||||
{!GVAR(plottingBoard_isDragging)} &&
|
{!GVAR(plottingBoard_isDragging)} &&
|
||||||
{GVAR(plottingBoard_isRotating) == -1}
|
{GVAR(plottingBoard_isRotating) == -1} &&
|
||||||
|
{[ACE_player, "ACE_PlottingBoard"] call EFUNC(common,hasItem)}
|
||||||
|
@ -4,21 +4,21 @@
|
|||||||
* Prevents the cursor from entering the roamer when drawing lines and records the positions
|
* Prevents the cursor from entering the roamer when drawing lines and records the positions
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: The Map <CONTROL>
|
* 0: Map control <CONTROL>
|
||||||
* 1: Roamer Width <NUMBER>
|
* 1: Roamer Width <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [map, 300] call ace_maptools_fnc_drawLinesOnRoamer
|
* [CONTROL, 300] call ace_maptools_fnc_drawLinesOnRoamer
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!GVAR(drawStraightLines)) exitWith {};
|
if (!GVAR(drawStraightLines)) exitWith {};
|
||||||
|
|
||||||
params ["_theMap", "_roamerWidth"];
|
params ["_mapCtrl", "_roamerWidth"];
|
||||||
GVAR(mapTool_pos) params ["_roamerPosX", "_roamerPosY"];
|
GVAR(mapTool_pos) params ["_roamerPosX", "_roamerPosY"];
|
||||||
|
|
||||||
private _posCenter = [_roamerPosX, _roamerPosY, 0];
|
private _posCenter = [_roamerPosX, _roamerPosY, 0];
|
||||||
@ -26,41 +26,49 @@ private _posCenter = [_roamerPosX, _roamerPosY, 0];
|
|||||||
private _posTopRight = [
|
private _posTopRight = [
|
||||||
_roamerPosX + (cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosX + (cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
||||||
_roamerPosY + (-sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosY + (-sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
||||||
0];
|
0
|
||||||
|
];
|
||||||
|
|
||||||
private _posTopLeft = [
|
private _posTopLeft = [
|
||||||
_roamerPosX + (-cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosX + (-cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
||||||
_roamerPosY + (sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosY + (sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_TOP_TO_CENTER_PERC * _roamerWidth,
|
||||||
0];
|
0
|
||||||
|
];
|
||||||
|
|
||||||
private _posBottomLeft = [
|
private _posBottomLeft = [
|
||||||
_roamerPosX + (-cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosX + (-cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
||||||
_roamerPosY + (sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosY + (sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
||||||
0];
|
0
|
||||||
|
];
|
||||||
|
|
||||||
private _posBottomRight = [
|
private _posBottomRight = [
|
||||||
_roamerPosX + (cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosX + (cos GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (sin GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
||||||
_roamerPosY + (-sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
_roamerPosY + (-sin GVAR(mapTool_angle)) * DIST_LEFT_TO_CENTER_PERC * _roamerWidth + (cos GVAR(mapTool_angle)) * DIST_BOTTOM_TO_CENTER_PERC * _roamerWidth,
|
||||||
0];
|
0
|
||||||
|
];
|
||||||
|
|
||||||
private _fnc_Distance = { // Get distance point _p is from a line made from _a to _b (uses 3d array commands, but z should be 0)
|
private _fnc_distance = { // Get distance point _p is from a line made from _a to _b (uses 3d array commands, but z should be 0)
|
||||||
// Ref: https://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line#Vector_formulation
|
// Ref: https://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line#Vector_formulation
|
||||||
params ["_a", "_b", "_p"];
|
params ["_a", "_b", "_p"];
|
||||||
|
|
||||||
private _n = _b vectorDiff _a;
|
private _n = _b vectorDiff _a;
|
||||||
private _pa = _a vectorDiff _p;
|
private _pa = _a vectorDiff _p;
|
||||||
private _c = _n vectorMultiply ((_pa vectorDotProduct _n) / (_n vectorDotProduct _n));
|
private _c = _n vectorMultiply ((_pa vectorDotProduct _n) / (_n vectorDotProduct _n));
|
||||||
private _d = _pa vectorDiff _c;
|
private _d = _pa vectorDiff _c;
|
||||||
sqrt (_d vectorDotProduct _d);
|
|
||||||
|
sqrt (_d vectorDotProduct _d)
|
||||||
};
|
};
|
||||||
|
|
||||||
private _currentMousePos = _theMap ctrlMapScreenToWorld getMousePosition;
|
private _currentMousePos = _mapCtrl ctrlMapScreenToWorld getMousePosition;
|
||||||
_currentMousePos set [2, 0];
|
_currentMousePos set [2, 0];
|
||||||
|
|
||||||
// Break the roamer rectangle into 4 triangle, one for each side
|
// Break the roamer rectangle into 4 triangle, one for each side
|
||||||
switch (true) do {
|
switch (true) do {
|
||||||
case (_currentMousePos inPolygon [_posCenter, _posTopLeft, _posBottomLeft]): { // Left
|
case (_currentMousePos inPolygon [_posCenter, _posTopLeft, _posBottomLeft]): { // Left
|
||||||
private _distanceToRoamerLine = ([_posTopLeft, _posBottomLeft, _currentMousePos] call _fnc_Distance);
|
private _distanceToRoamerLine = [_posTopLeft, _posBottomLeft, _currentMousePos] call _fnc_distance;
|
||||||
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, (GVAR(mapTool_angle) - 90) ,0] call CBA_fnc_polar2vect);
|
|
||||||
|
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, GVAR(mapTool_angle) - 90, 0] call CBA_fnc_polar2vect);
|
||||||
|
|
||||||
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
||||||
GVAR(freeDrawingData) = ["left", _currentMousePos, _currentMousePos];
|
GVAR(freeDrawingData) = ["left", _currentMousePos, _currentMousePos];
|
||||||
} else {
|
} else {
|
||||||
@ -68,17 +76,21 @@ switch (true) do {
|
|||||||
if ((_currentMousePos distance2d _posTopLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posTopLeft)) then {
|
if ((_currentMousePos distance2d _posTopLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posTopLeft)) then {
|
||||||
GVAR(freeDrawingData) set [1, _currentMousePos];
|
GVAR(freeDrawingData) set [1, _currentMousePos];
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((_currentMousePos distance2d _posBottomLeft) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomLeft)) then {
|
if ((_currentMousePos distance2d _posBottomLeft) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomLeft)) then {
|
||||||
GVAR(freeDrawingData) set [2, _currentMousePos];
|
GVAR(freeDrawingData) set [2, _currentMousePos];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
private _screenPosOfCorrectedPos = _theMap ctrlMapWorldToScreen _currentMousePos;
|
|
||||||
|
private _screenPosOfCorrectedPos = _mapCtrl ctrlMapWorldToScreen _currentMousePos;
|
||||||
setMousePosition _screenPosOfCorrectedPos;
|
setMousePosition _screenPosOfCorrectedPos;
|
||||||
};
|
};
|
||||||
case (_currentMousePos inPolygon [_posCenter, _posTopLeft, _posTopRight]): { // Top
|
case (_currentMousePos inPolygon [_posCenter, _posTopLeft, _posTopRight]): { // Top
|
||||||
private _distanceToRoamerLine = ([_posTopLeft, _posTopRight, _currentMousePos] call _fnc_Distance);
|
private _distanceToRoamerLine = [_posTopLeft, _posTopRight, _currentMousePos] call _fnc_distance;
|
||||||
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, (GVAR(mapTool_angle) + 0) ,0] call CBA_fnc_polar2vect);
|
|
||||||
|
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, GVAR(mapTool_angle), 0] call CBA_fnc_polar2vect);
|
||||||
|
|
||||||
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
||||||
GVAR(freeDrawingData) = ["top", _currentMousePos, _currentMousePos];
|
GVAR(freeDrawingData) = ["top", _currentMousePos, _currentMousePos];
|
||||||
} else {
|
} else {
|
||||||
@ -86,17 +98,21 @@ switch (true) do {
|
|||||||
if ((_currentMousePos distance2d _posTopLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posTopLeft)) then {
|
if ((_currentMousePos distance2d _posTopLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posTopLeft)) then {
|
||||||
GVAR(freeDrawingData) set [1, _currentMousePos];
|
GVAR(freeDrawingData) set [1, _currentMousePos];
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((_currentMousePos distance2d _posTopRight) < ((GVAR(freeDrawingData) select 2) distance2d _posTopRight)) then {
|
if ((_currentMousePos distance2d _posTopRight) < ((GVAR(freeDrawingData) select 2) distance2d _posTopRight)) then {
|
||||||
GVAR(freeDrawingData) set [2, _currentMousePos];
|
GVAR(freeDrawingData) set [2, _currentMousePos];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
private _screenPosOfCorrectedPos = _theMap ctrlMapWorldToScreen _currentMousePos;
|
|
||||||
|
private _screenPosOfCorrectedPos = _mapCtrl ctrlMapWorldToScreen _currentMousePos;
|
||||||
setMousePosition _screenPosOfCorrectedPos;
|
setMousePosition _screenPosOfCorrectedPos;
|
||||||
};
|
};
|
||||||
case (_currentMousePos inPolygon [_posCenter, _posTopRight, _posBottomRight]): { // Right
|
case (_currentMousePos inPolygon [_posCenter, _posTopRight, _posBottomRight]): { // Right
|
||||||
private _distanceToRoamerLine = ([_posTopRight, _posBottomRight, _currentMousePos] call _fnc_Distance);
|
private _distanceToRoamerLine = [_posTopRight, _posBottomRight, _currentMousePos] call _fnc_distance;
|
||||||
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, (GVAR(mapTool_angle) + 90) ,0] call CBA_fnc_polar2vect);
|
|
||||||
|
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, GVAR(mapTool_angle) + 90, 0] call CBA_fnc_polar2vect);
|
||||||
|
|
||||||
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
||||||
GVAR(freeDrawingData) = ["right", _currentMousePos, _currentMousePos];
|
GVAR(freeDrawingData) = ["right", _currentMousePos, _currentMousePos];
|
||||||
} else {
|
} else {
|
||||||
@ -104,17 +120,21 @@ switch (true) do {
|
|||||||
if ((_currentMousePos distance2d _posTopRight) < ((GVAR(freeDrawingData) select 1) distance2d _posTopRight)) then {
|
if ((_currentMousePos distance2d _posTopRight) < ((GVAR(freeDrawingData) select 1) distance2d _posTopRight)) then {
|
||||||
GVAR(freeDrawingData) set [1, _currentMousePos];
|
GVAR(freeDrawingData) set [1, _currentMousePos];
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((_currentMousePos distance2d _posBottomRight) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomRight)) then {
|
if ((_currentMousePos distance2d _posBottomRight) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomRight)) then {
|
||||||
GVAR(freeDrawingData) set [2, _currentMousePos];
|
GVAR(freeDrawingData) set [2, _currentMousePos];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
private _screenPosOfCorrectedPos = _theMap ctrlMapWorldToScreen _currentMousePos;
|
|
||||||
|
private _screenPosOfCorrectedPos = _mapCtrl ctrlMapWorldToScreen _currentMousePos;
|
||||||
setMousePosition _screenPosOfCorrectedPos;
|
setMousePosition _screenPosOfCorrectedPos;
|
||||||
};
|
};
|
||||||
case (_currentMousePos inPolygon [_posCenter, _posBottomLeft, _posBottomRight]): { // Bottom
|
case (_currentMousePos inPolygon [_posCenter, _posBottomLeft, _posBottomRight]): { // Bottom
|
||||||
private _distanceToRoamerLine = ([_posBottomLeft, _posBottomRight, _currentMousePos] call _fnc_Distance);
|
private _distanceToRoamerLine = [_posBottomLeft, _posBottomRight, _currentMousePos] call _fnc_distance;
|
||||||
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, (GVAR(mapTool_angle) + 180) ,0] call CBA_fnc_polar2vect);
|
|
||||||
|
_currentMousePos = _currentMousePos vectorAdd ([_distanceToRoamerLine, GVAR(mapTool_angle) + 180, 0] call CBA_fnc_polar2vect);
|
||||||
|
|
||||||
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
if (GVAR(freeDrawingData) isEqualTo []) then { // We start drawing on the line
|
||||||
GVAR(freeDrawingData) = ["bottom", _currentMousePos, _currentMousePos];
|
GVAR(freeDrawingData) = ["bottom", _currentMousePos, _currentMousePos];
|
||||||
} else {
|
} else {
|
||||||
@ -122,23 +142,26 @@ switch (true) do {
|
|||||||
if ((_currentMousePos distance2d _posBottomLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posBottomLeft)) then {
|
if ((_currentMousePos distance2d _posBottomLeft) < ((GVAR(freeDrawingData) select 1) distance2d _posBottomLeft)) then {
|
||||||
GVAR(freeDrawingData) set [1, _currentMousePos];
|
GVAR(freeDrawingData) set [1, _currentMousePos];
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((_currentMousePos distance2d _posBottomRight) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomRight)) then {
|
if ((_currentMousePos distance2d _posBottomRight) < ((GVAR(freeDrawingData) select 2) distance2d _posBottomRight)) then {
|
||||||
GVAR(freeDrawingData) set [2, _currentMousePos];
|
GVAR(freeDrawingData) set [2, _currentMousePos];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
private _screenPosOfCorrectedPos = _theMap ctrlMapWorldToScreen _currentMousePos;
|
|
||||||
|
private _screenPosOfCorrectedPos = _mapCtrl ctrlMapWorldToScreen _currentMousePos;
|
||||||
setMousePosition _screenPosOfCorrectedPos;
|
setMousePosition _screenPosOfCorrectedPos;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
_theMap drawIcon ['iconStaticMG',[1,0,0,1],_posTopRight,24,24,getDir player,'1,1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[1,0,0,1],_posTopRight,24,24,getDir player,'1,1',1,0.03,'TahomaB','right'];
|
||||||
_theMap drawIcon ['iconStaticMG',[1,0,0,1],_posTopLeft,24,24,getDir player,'-1,1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[1,0,0,1],_posTopLeft,24,24,getDir player,'-1,1',1,0.03,'TahomaB','right'];
|
||||||
_theMap drawIcon ['iconStaticMG',[1,0,0,1],_posBottomLeft,24,24,getDir player,'-1,-1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[1,0,0,1],_posBottomLeft,24,24,getDir player,'-1,-1',1,0.03,'TahomaB','right'];
|
||||||
_theMap drawIcon ['iconStaticMG',[1,0,0,1],_posBottomRight,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[1,0,0,1],_posBottomRight,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
||||||
|
|
||||||
if (GVAR(freeDrawingData) isNotEqualTo []) then {
|
if (GVAR(freeDrawingData) isNotEqualTo []) then {
|
||||||
_theMap drawIcon ['iconStaticMG',[0,0,1,1],GVAR(freeDrawingData) select 1,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[0,0,1,1],GVAR(freeDrawingData) select 1,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
||||||
_theMap drawIcon ['iconStaticMG',[0,0,1,1],GVAR(freeDrawingData) select 2,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
_mapCtrl drawIcon ['iconStaticMG',[0,0,1,1],GVAR(freeDrawingData) select 2,24,24,getDir player,'1,-1',1,0.03,'TahomaB','right'];
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* 1: Parameters of the mouse button event <ARRAY>
|
* 1: Parameters of the mouse button event <ARRAY>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* True if event was handled <BOOL>
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [0, []] call ace_maptools_fnc_handleMouseButton
|
* [0, []] call ace_maptools_fnc_handleMouseButton
|
||||||
@ -80,13 +80,11 @@ if (_dir != 1) then {
|
|||||||
if (GVAR(mapTool_isDragging) || GVAR(mapTool_isRotating)) then {
|
if (GVAR(mapTool_isDragging) || GVAR(mapTool_isRotating)) then {
|
||||||
GVAR(mapTool_isDragging) = false;
|
GVAR(mapTool_isDragging) = false;
|
||||||
GVAR(mapTool_isRotating) = false;
|
GVAR(mapTool_isRotating) = false;
|
||||||
_handled = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (GVAR(plottingBoard_isDragging) || GVAR(plottingBoard_isRotating) > -1) then {
|
if (GVAR(plottingBoard_isDragging) || GVAR(plottingBoard_isRotating) > -1) then {
|
||||||
GVAR(plottingBoard_isDragging) = false;
|
GVAR(plottingBoard_isDragging) = false;
|
||||||
GVAR(plottingBoard_isRotating) = -1;
|
GVAR(plottingBoard_isRotating) = -1;
|
||||||
_handled = true;
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
// If clicking
|
// If clicking
|
||||||
@ -125,8 +123,6 @@ if (_dir != 1) then {
|
|||||||
// Start dragging
|
// Start dragging
|
||||||
GVAR(mapTool_isDragging) = true;
|
GVAR(mapTool_isDragging) = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
_handled = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -170,11 +166,7 @@ if (_dir != 1) then {
|
|||||||
// Start dragging
|
// Start dragging
|
||||||
GVAR(plottingBoard_isDragging) = true;
|
GVAR(plottingBoard_isDragging) = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
_handled = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_handled
|
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Map control <CONTROL>
|
* 0: Map control <CONTROL>
|
||||||
* 1: Mouse position on screen coordinates <ARRAY>
|
* 1: Mouse x position <NUMBER>
|
||||||
|
* 2: Mouse y position <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* If the event was handled <BOOL>
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [CONTROL, [0, 5]] call ace_maptools_fnc_handleMouseMove
|
* [CONTROL, [0, 5]] call ace_maptools_fnc_handleMouseMove
|
||||||
@ -24,9 +25,7 @@ if (isNull ACE_player || {
|
|||||||
private _uniqueItems = ACE_player call EFUNC(common,uniqueItems);
|
private _uniqueItems = ACE_player call EFUNC(common,uniqueItems);
|
||||||
|
|
||||||
!(("ACE_MapTools" in _uniqueItems) || {"ACE_PlottingBoard" in _uniqueItems})
|
!(("ACE_MapTools" in _uniqueItems) || {"ACE_PlottingBoard" in _uniqueItems})
|
||||||
}) exitWith {
|
}) exitWith {};
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
// If map tools not shown, then exit
|
// If map tools not shown, then exit
|
||||||
if (GVAR(mapTool_Shown) == 0 && {GVAR(plottingBoard_Shown) == 0}) exitWith {false};
|
if (GVAR(mapTool_Shown) == 0 && {GVAR(plottingBoard_Shown) == 0}) exitWith {false};
|
||||||
@ -36,8 +35,6 @@ private _mousePosition = _mapCtrl ctrlMapScreenToWorld [_mousePosX, _mousePosY];
|
|||||||
// Map tools - translation
|
// Map tools - translation
|
||||||
if (GVAR(mapTool_isDragging)) exitWith {
|
if (GVAR(mapTool_isDragging)) exitWith {
|
||||||
GVAR(mapTool_pos) = GVAR(mapTool_startPos) vectorAdd _mousePosition vectorDiff GVAR(mapTool_startDragPos);
|
GVAR(mapTool_pos) = GVAR(mapTool_startPos) vectorAdd _mousePosition vectorDiff GVAR(mapTool_startDragPos);
|
||||||
|
|
||||||
true
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Map tools - rotation
|
// Map tools - rotation
|
||||||
@ -47,15 +44,11 @@ if (GVAR(mapTool_isRotating)) exitWith {
|
|||||||
private _angle = (_pos select 0) atan2 (_pos select 1);
|
private _angle = (_pos select 0) atan2 (_pos select 1);
|
||||||
|
|
||||||
GVAR(mapTool_angle) = ((GVAR(mapTool_startAngle) + _angle - GVAR(mapTool_startDragAngle)) % 360 + 360) % 360;
|
GVAR(mapTool_angle) = ((GVAR(mapTool_startAngle) + _angle - GVAR(mapTool_startDragAngle)) % 360 + 360) % 360;
|
||||||
|
|
||||||
true
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Plotting board - translation
|
// Plotting board - translation
|
||||||
if (GVAR(plottingBoard_isDragging)) exitWith {
|
if (GVAR(plottingBoard_isDragging)) exitWith {
|
||||||
GVAR(plottingBoard_pos) = GVAR(plottingBoard_startPos) vectorAdd _mousePosition vectorDiff GVAR(plottingBoard_startDragPos);
|
GVAR(plottingBoard_pos) = GVAR(plottingBoard_startPos) vectorAdd _mousePosition vectorDiff GVAR(plottingBoard_startDragPos);
|
||||||
|
|
||||||
true
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Plotting board - rotation
|
// Plotting board - rotation
|
||||||
@ -70,8 +63,4 @@ if (GVAR(plottingBoard_isRotating) > -1) exitWith {
|
|||||||
case 1: {GVAR(plottingBoard_acrylicAngle) = _returnAngle};
|
case 1: {GVAR(plottingBoard_acrylicAngle) = _returnAngle};
|
||||||
case 2: {GVAR(plottingBoard_rulerAngle) = _returnAngle};
|
case 2: {GVAR(plottingBoard_rulerAngle) = _returnAngle};
|
||||||
};
|
};
|
||||||
|
|
||||||
true
|
|
||||||
};
|
};
|
||||||
|
|
||||||
false
|
|
||||||
|
@ -30,7 +30,7 @@ if (_deleted) exitWith {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Do not process non-local or already processed markers, don't check if the plotting board isn't shown
|
// Do not process non-local or already processed markers, don't check if the plotting board isn't shown
|
||||||
if (!_local || {GVAR(plottingBoard_Shown) < 1} || {QUOTE(ADDON) in _marker}) exitWith {};
|
if (!_local || {GVAR(plottingBoard_Shown) == 0} || {QUOTE(ADDON) in _marker}) exitWith {};
|
||||||
|
|
||||||
// Check if the channel the marker was made in can be marked on the plotting board
|
// Check if the channel the marker was made in can be marked on the plotting board
|
||||||
private _continue = true;
|
private _continue = true;
|
||||||
|
@ -4,32 +4,32 @@
|
|||||||
* Return true if the position is inside the map marker (to allow dragging).
|
* Return true if the position is inside the map marker (to allow dragging).
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: x Position (in meters) <NUMBER>
|
* 0: x position (in meters) <NUMBER>
|
||||||
* 1: y Position (in meters) <NUMBER>
|
* 1: y position (in meters) <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* Boolean <BOOL>
|
* Is inside map tool <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [0, 5] call ACE_maptools_fnc_isInsideMapTool
|
* [0, 5] call ace_maptools_fnc_isInsideMapTool
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GVAR(mapTool_Shown) == 0) exitWith {false};
|
if (GVAR(mapTool_Shown) == 0) exitWith {false};
|
||||||
|
|
||||||
private _textureWidth = [TEXTURE_WIDTH_IN_M, TEXTURE_WIDTH_IN_M / 2] select (GVAR(mapTool_Shown) - 1);
|
private _textureWidth = [TEXTURE_WIDTH_IN_M, TEXTURE_WIDTH_IN_M / 2] select (GVAR(mapTool_Shown) - 1);
|
||||||
|
|
||||||
private _pos = [_this select 0, _this select 1, 0];
|
private _relPos = _this vectorDiff GVAR(mapTool_pos);
|
||||||
private _relPos = _pos vectorDiff [GVAR(mapTool_pos) select 0, GVAR(mapTool_pos) select 1, 0];
|
private _dirVector = [sin GVAR(mapTool_angle), cos GVAR(mapTool_angle)];
|
||||||
private _dirVector = [sin(GVAR(mapTool_angle)), cos(GVAR(mapTool_angle)), 0];
|
|
||||||
|
|
||||||
// Projection of the relative position over the longitudinal axis of the map tool
|
// Projection of the relative position over the longitudinal axis of the map tool
|
||||||
private _lambdaLong = _dirVector vectorDotProduct _relPos;
|
private _lambdaLong = _dirVector vectorDotProduct _relPos;
|
||||||
|
|
||||||
if (_lambdaLong < DIST_BOTTOM_TO_CENTER_PERC * _textureWidth) exitWith {false};
|
if (_lambdaLong < DIST_BOTTOM_TO_CENTER_PERC * _textureWidth) exitWith {false};
|
||||||
|
|
||||||
// Projection of the relative position over the trasversal axis of the map tool
|
|
||||||
private _lambdaTrasAbs = vectorMagnitude (_relPos vectorDiff (_dirVector vectorMultiply _lambdaLong));
|
|
||||||
if (_lambdaLong > DIST_TOP_TO_CENTER_PERC * _textureWidth) exitWith {false};
|
if (_lambdaLong > DIST_TOP_TO_CENTER_PERC * _textureWidth) exitWith {false};
|
||||||
if (_lambdaTrasAbs > DIST_LEFT_TO_CENTER_PERC * _textureWidth) exitWith {false};
|
|
||||||
|
|
||||||
true
|
// Projection of the relative position over the transversal axis of the map tool
|
||||||
|
private _lambdaTransAbs = vectorMagnitude (_relPos vectorDiff (_dirVector vectorMultiply _lambdaLong));
|
||||||
|
|
||||||
|
_lambdaTransAbs <= DIST_LEFT_TO_CENTER_PERC * _textureWidth
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
* Return if the position is inside the map marker (to allow dragging) or not.
|
* Return if the position is inside the map marker (to allow dragging) or not.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: x Position (in meters) <NUMBER>
|
* 0: x position (in meters) <NUMBER>
|
||||||
* 1: y Position (in meters) <NUMBER>
|
* 1: y position (in meters) <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* Where in the plotting board it is <NUMBER>
|
* Where in the plotting board it is <NUMBER>
|
||||||
@ -30,9 +30,11 @@ private _isRuler = if (GVAR(plottingBoard_Shown) == 2) then {
|
|||||||
private _dirRightVector = [_dirVector select 1, -(_dirVector select 0)];
|
private _dirRightVector = [_dirVector select 1, -(_dirVector select 0)];
|
||||||
private _rulerAng = acos (_rulerVector vectorCos _relPos);
|
private _rulerAng = acos (_rulerVector vectorCos _relPos);
|
||||||
|
|
||||||
if (cos _rulerAng > 0 && {tan (_rulerAng) * _dist < PLOTTINGBOARD_RULERHALFWIDTH}) exitWith {true};
|
if (cos _rulerAng > 0 && {(tan _rulerAng) * _dist < PLOTTINGBOARD_RULERHALFWIDTH}) exitWith {true};
|
||||||
|
|
||||||
_dist > PLOTTINGBOARD_RULERINNERCIRCLE && {_dist < PLOTTINGBOARD_RULEROUTERCIRCLE && {abs (_rulerAng * DEGTOMILS) < PLOTTINGBOAR_RULEROUTERHALFANGLE}}
|
_dist > PLOTTINGBOARD_RULERINNERCIRCLE && {_dist < PLOTTINGBOARD_RULEROUTERCIRCLE && {abs (_rulerAng * DEGTOMILS) < PLOTTINGBOAR_RULEROUTERHALFANGLE}}
|
||||||
|
} else {
|
||||||
|
false
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_isRuler) exitWith {2};
|
if (_isRuler) exitWith {2};
|
||||||
|
@ -1,34 +1,39 @@
|
|||||||
#include "..\script_component.hpp"
|
#include "..\script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: esteldunedain, PabstMirror
|
* Author: esteldunedain, PabstMirror
|
||||||
* update gps display, called from main map's draw
|
* Update GPS display, called from main map's draw.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Map ctrl <CONTROL>
|
* 0: Map control <CONTROL>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [findDisplay 12 displayCtrl 51] call ACE_maptools_fnc_openMapGpsUpdate;
|
* [findDisplay 12 displayCtrl 51] call ace_maptools_fnc_openMapGpsUpdate;
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params ["_mapCtrl"];
|
params ["_mapCtrl"];
|
||||||
|
|
||||||
private _mapDisplay = ctrlParent _mapCtrl;
|
private _mapDisplay = ctrlParent _mapCtrl;
|
||||||
|
|
||||||
if ((!GVAR(mapGpsShow)) || {!(call FUNC(canUseMapGPS))}) exitWith {
|
if (!GVAR(mapGpsShow) || {!(call FUNC(canUseMapGPS))}) exitWith {
|
||||||
(_mapDisplay displayCtrl 913589) ctrlShow false;
|
(_mapDisplay displayCtrl 913589) ctrlShow false;
|
||||||
};
|
};
|
||||||
|
|
||||||
(_mapDisplay displayCtrl 913589) ctrlShow true;
|
(_mapDisplay displayCtrl 913589) ctrlShow true;
|
||||||
|
|
||||||
if (CBA_missionTime < GVAR(mapGpsNextUpdate)) exitWith {};
|
if (CBA_missionTime < GVAR(mapGpsNextUpdate)) exitWith {};
|
||||||
|
|
||||||
GVAR(mapGpsNextUpdate) = CBA_missionTime + 0.5;
|
GVAR(mapGpsNextUpdate) = CBA_missionTime + 0.5;
|
||||||
|
|
||||||
private _ctrl = _mapDisplay displayCtrl 913590;
|
private _ctrl = _mapDisplay displayCtrl 913590;
|
||||||
_ctrl ctrlSetText str (round (getDir ACE_player)); // Set Heading
|
_ctrl ctrlSetText str (round (getDir ACE_player)); // Set Heading
|
||||||
|
|
||||||
_ctrl = _mapDisplay displayCtrl 913591;
|
_ctrl = _mapDisplay displayCtrl 913591;
|
||||||
_ctrl ctrlSetText str (round ((getPosASL ACE_player) select 2) + EGVAR(common,mapAltitude)); // Set Altitude
|
_ctrl ctrlSetText str (round ((getPosASL ACE_player) select 2) + EGVAR(common,mapAltitude)); // Set Altitude
|
||||||
|
|
||||||
_ctrl = _mapDisplay displayCtrl 913592;
|
_ctrl = _mapDisplay displayCtrl 913592;
|
||||||
_ctrl ctrlSetText mapGridPosition ACE_player; // Set grid cords
|
_ctrl ctrlSetText mapGridPosition ACE_player; // Set grid cords
|
||||||
|
@ -27,6 +27,7 @@ if (GVAR(plottingBoard_Shown) == 0) then {
|
|||||||
} forEach GVAR(plottingBoard_markers);
|
} forEach GVAR(plottingBoard_markers);
|
||||||
} else {
|
} else {
|
||||||
if !([ACE_player, "ACE_PlottingBoard"] call EFUNC(common,hasItem)) exitWith {};
|
if !([ACE_player, "ACE_PlottingBoard"] call EFUNC(common,hasItem)) exitWith {};
|
||||||
|
|
||||||
if (GVAR(plottingBoard_moveToMouse)) then {
|
if (GVAR(plottingBoard_moveToMouse)) then {
|
||||||
GVAR(plottingBoard_pos) = _mapCtrl ctrlMapScreenToWorld getMousePosition;
|
GVAR(plottingBoard_pos) = _mapCtrl ctrlMapScreenToWorld getMousePosition;
|
||||||
GVAR(plottingBoard_moveToMouse) = false; // we only need to do this once after opening the map tool
|
GVAR(plottingBoard_moveToMouse) = false; // we only need to do this once after opening the map tool
|
||||||
@ -90,7 +91,7 @@ if (GVAR(plottingBoard_Shown) == 0) then {
|
|||||||
} forEach GVAR(plottingBoard_markers);
|
} forEach GVAR(plottingBoard_markers);
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((GVAR(mapTool_Shown) > 0) && {[ACE_player, "ACE_MapTools"] call EFUNC(common,hasItem)}) then {
|
if ((GVAR(mapTool_Shown) != 0) && {[ACE_player, "ACE_MapTools"] call EFUNC(common,hasItem)}) then {
|
||||||
// Open map tools in center of screen when toggled to be shown
|
// Open map tools in center of screen when toggled to be shown
|
||||||
if (GVAR(mapTool_moveToMouse)) then {
|
if (GVAR(mapTool_moveToMouse)) then {
|
||||||
GVAR(mapTool_pos) = _mapCtrl ctrlMapScreenToWorld getMousePosition;
|
GVAR(mapTool_pos) = _mapCtrl ctrlMapScreenToWorld getMousePosition;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
private _category = format ["ACE %1", localize LSTRING(Name)];
|
private _category = format ["ACE %1", LLSTRING(Name)];
|
||||||
|
|
||||||
[
|
[
|
||||||
QGVAR(rotateModifierKey), "LIST",
|
QGVAR(rotateModifierKey), "LIST",
|
||||||
|
@ -1390,7 +1390,7 @@
|
|||||||
<French>Définit s'il s'agit d'un véhicule sanitaire.</French>
|
<French>Définit s'il s'agit d'un véhicule sanitaire.</French>
|
||||||
<Portuguese>Se o objeto será ou não um veículo médico</Portuguese>
|
<Portuguese>Se o objeto será ou não um veículo médico</Portuguese>
|
||||||
<Russian>Будет ли объект считаться медицинским транспортом.</Russian>
|
<Russian>Будет ли объект считаться медицинским транспортом.</Russian>
|
||||||
<Japanese>対象が医療車両であるかどうか。</Japanese>
|
<Japanese>車両をを医療車両として割り当てます</Japanese>
|
||||||
<Korean>이 물체는 의료 차량이 됩니다.</Korean>
|
<Korean>이 물체는 의료 차량이 됩니다.</Korean>
|
||||||
<Chinesesimp>是否使该载具为医疗载具?</Chinesesimp>
|
<Chinesesimp>是否使该载具为医疗载具?</Chinesesimp>
|
||||||
<Chinese>是否使該載具為醫療載具?</Chinese>
|
<Chinese>是否使該載具為醫療載具?</Chinese>
|
||||||
@ -1491,7 +1491,7 @@
|
|||||||
<French>Est un véhicule sanitaire</French>
|
<French>Est un véhicule sanitaire</French>
|
||||||
<Hungarian>Orvosi jármű-e</Hungarian>
|
<Hungarian>Orvosi jármű-e</Hungarian>
|
||||||
<Italian>È Veicolo Medico</Italian>
|
<Italian>È Veicolo Medico</Italian>
|
||||||
<Japanese>医療車両に</Japanese>
|
<Japanese>医療車両とする</Japanese>
|
||||||
<Korean>의료 차량</Korean>
|
<Korean>의료 차량</Korean>
|
||||||
<Chinesesimp>是医疗载具</Chinesesimp>
|
<Chinesesimp>是医疗载具</Chinesesimp>
|
||||||
<Chinese>是醫療載具</Chinese>
|
<Chinese>是醫療載具</Chinese>
|
||||||
@ -1508,7 +1508,7 @@
|
|||||||
<French>Est une installation sanitaire</French>
|
<French>Est une installation sanitaire</French>
|
||||||
<Hungarian>Orvosi létesítmény-e</Hungarian>
|
<Hungarian>Orvosi létesítmény-e</Hungarian>
|
||||||
<Italian>È Struttura Medica</Italian>
|
<Italian>È Struttura Medica</Italian>
|
||||||
<Japanese>医療施設に</Japanese>
|
<Japanese>医療施設とする</Japanese>
|
||||||
<Korean>의료시설</Korean>
|
<Korean>의료시설</Korean>
|
||||||
<Chinesesimp>是医疗设施</Chinesesimp>
|
<Chinesesimp>是医疗设施</Chinesesimp>
|
||||||
<Chinese>是醫療設施</Chinese>
|
<Chinese>是醫療設施</Chinese>
|
||||||
@ -1525,7 +1525,7 @@
|
|||||||
<French>Définit l'objet comme étant une installation sanitaire.</French>
|
<French>Définit l'objet comme étant une installation sanitaire.</French>
|
||||||
<Hungarian>Egy objektum orvosi létesítményként való regisztrálása</Hungarian>
|
<Hungarian>Egy objektum orvosi létesítményként való regisztrálása</Hungarian>
|
||||||
<Italian>Registra un oggetto come struttura medica</Italian>
|
<Italian>Registra un oggetto come struttura medica</Italian>
|
||||||
<Japanese>オブジェクトを医療施設として割り当てる</Japanese>
|
<Japanese>オブジェクトを医療施設として割り当てます</Japanese>
|
||||||
<Korean>물체를 의료시설로 등록합니다</Korean>
|
<Korean>물체를 의료시설로 등록합니다</Korean>
|
||||||
<Chinesesimp>指定一个物体作为医疗设施</Chinesesimp>
|
<Chinesesimp>指定一个物体作为医疗设施</Chinesesimp>
|
||||||
<Chinese>指定一個物件作為醫療設施</Chinese>
|
<Chinese>指定一個物件作為醫療設施</Chinese>
|
||||||
|
@ -651,7 +651,7 @@
|
|||||||
<Key ID="STR_ACE_Rearm_rearmCargo_edenName">
|
<Key ID="STR_ACE_Rearm_rearmCargo_edenName">
|
||||||
<English>Rearm Cargo</English>
|
<English>Rearm Cargo</English>
|
||||||
<German>Munitionsvorrat</German>
|
<German>Munitionsvorrat</German>
|
||||||
<Japanese>再武装用カーゴ</Japanese>
|
<Japanese>再武装用資源積載量</Japanese>
|
||||||
<Polish>Ładunek Dozbrajający</Polish>
|
<Polish>Ładunek Dozbrajający</Polish>
|
||||||
<Italian>Munizioni Caricate</Italian>
|
<Italian>Munizioni Caricate</Italian>
|
||||||
<Russian>Боеприпасы для перевооружения</Russian>
|
<Russian>Боеприпасы для перевооружения</Russian>
|
||||||
@ -666,7 +666,7 @@
|
|||||||
<Key ID="STR_ACE_Rearm_rearmCargo_edenDesc">
|
<Key ID="STR_ACE_Rearm_rearmCargo_edenDesc">
|
||||||
<English>The cargo for rearming (-1 disable)</English>
|
<English>The cargo for rearming (-1 disable)</English>
|
||||||
<German>Der Munitionsvorrat, zum Aufmunitionieren von Fahrzeugen (-1 deaktiviert)</German>
|
<German>Der Munitionsvorrat, zum Aufmunitionieren von Fahrzeugen (-1 deaktiviert)</German>
|
||||||
<Japanese>カーゴからの再武装 (-1 で無効化)</Japanese>
|
<Japanese>再武装に使用する資源の積載量 (-1 で補給無効)</Japanese>
|
||||||
<Polish>Ładunek do dozbrajania (-1 wyłączy)</Polish>
|
<Polish>Ładunek do dozbrajania (-1 wyłączy)</Polish>
|
||||||
<Italian>Il carico di munizioni per poter riarmare (-1 per disabilitarlo)</Italian>
|
<Italian>Il carico di munizioni per poter riarmare (-1 per disabilitarlo)</Italian>
|
||||||
<Russian>Объем боеприпасов для перевооружения (-1 для отмены)</Russian>
|
<Russian>Объем боеприпасов для перевооружения (-1 для отмены)</Russian>
|
||||||
|
@ -553,7 +553,7 @@
|
|||||||
<Russian>Время взаимодействия со шлангом</Russian>
|
<Russian>Время взаимодействия со шлангом</Russian>
|
||||||
<Spanish>Tiempo de interacción con la Bomba/Manguera</Spanish>
|
<Spanish>Tiempo de interacción con la Bomba/Manguera</Spanish>
|
||||||
<Italian>Tempo di interazione Pompa/Pistola</Italian>
|
<Italian>Tempo di interazione Pompa/Pistola</Italian>
|
||||||
<Japanese>ポンプとホースのインタラクション所要時間</Japanese>
|
<Japanese>ポンプ/ホースのインタラクション所要時間</Japanese>
|
||||||
<Polish>Czas Interakcji z Pompą/Wężem</Polish>
|
<Polish>Czas Interakcji z Pompą/Wężem</Polish>
|
||||||
<German>Interaktionszeit zwischen Pumpe und Schlauch</German>
|
<German>Interaktionszeit zwischen Pumpe und Schlauch</German>
|
||||||
<French>Temps d'interaction pompe/tuyau</French>
|
<French>Temps d'interaction pompe/tuyau</French>
|
||||||
@ -574,7 +574,7 @@
|
|||||||
<English>Fuel Cargo Volume</English>
|
<English>Fuel Cargo Volume</English>
|
||||||
<German>Tankvolumen</German>
|
<German>Tankvolumen</German>
|
||||||
<Russian>Объем топлива для заправки</Russian>
|
<Russian>Объем топлива для заправки</Russian>
|
||||||
<Japanese>貯油量</Japanese>
|
<Japanese>給油用燃料積載量</Japanese>
|
||||||
<Italian>Capacità di Carico Carburante</Italian>
|
<Italian>Capacità di Carico Carburante</Italian>
|
||||||
<Chinese>儲油量</Chinese>
|
<Chinese>儲油量</Chinese>
|
||||||
<Chinesesimp>储油量</Chinesesimp>
|
<Chinesesimp>储油量</Chinesesimp>
|
||||||
@ -591,7 +591,7 @@
|
|||||||
<English>The fuel volume available for refueling (-1 disable, -10 if infinite)</English>
|
<English>The fuel volume available for refueling (-1 disable, -10 if infinite)</English>
|
||||||
<German>Das Tankvolumen, welches zum Nachtanken verfügbar ist (-1 deaktiviert, -10 unendlich)</German>
|
<German>Das Tankvolumen, welches zum Nachtanken verfügbar ist (-1 deaktiviert, -10 unendlich)</German>
|
||||||
<Russian>Объем топлива, доступный для заправки других машин (-1 отключить, -10 если неограничен)</Russian>
|
<Russian>Объем топлива, доступный для заправки других машин (-1 отключить, -10 если неограничен)</Russian>
|
||||||
<Japanese>給油用の貯油量を設定できます (-1で無効、-10で無限)</Japanese>
|
<Japanese>給油に使用する燃料の積載量 (-1で補給無効、-10で無限補給)</Japanese>
|
||||||
<Italian>La capacità di carburante disponibile al rifornimento altrui (-1 disabilita, -10 se infinito)</Italian>
|
<Italian>La capacità di carburante disponibile al rifornimento altrui (-1 disabilita, -10 se infinito)</Italian>
|
||||||
<Chinese>設定有多少油料可供載具進行加油(-1時關閉,-10為無限油量)</Chinese>
|
<Chinese>設定有多少油料可供載具進行加油(-1時關閉,-10為無限油量)</Chinese>
|
||||||
<Chinesesimp>设定有多少油料可供载具进行加油(-1时关闭,-10为无限油量)</Chinesesimp>
|
<Chinesesimp>设定有多少油料可供载具进行加油(-1时关闭,-10为无限油量)</Chinesesimp>
|
||||||
|
@ -390,7 +390,7 @@
|
|||||||
<Czech>Přidat náhradní díly do vozidla (vyžaduje úložný prostor)?</Czech>
|
<Czech>Přidat náhradní díly do vozidla (vyžaduje úložný prostor)?</Czech>
|
||||||
<Italian>Aggiungi parti di ricambio ai veicoli (richiede spazio nel carico)?</Italian>
|
<Italian>Aggiungi parti di ricambio ai veicoli (richiede spazio nel carico)?</Italian>
|
||||||
<French>Ajoute des pièces de rechange aux véhicules (nécessite le système de cargaison).</French>
|
<French>Ajoute des pièces de rechange aux véhicules (nécessite le système de cargaison).</French>
|
||||||
<Japanese>車両へ予備部品を追加しますか? (カーゴ コンポーネントが必要)</Japanese>
|
<Japanese>車両へ予備部品を追加しますか? (貨物室が必要)</Japanese>
|
||||||
<Korean>차량에 예비 부품을 더합니까?(짐칸 요소 필요)</Korean>
|
<Korean>차량에 예비 부품을 더합니까?(짐칸 요소 필요)</Korean>
|
||||||
<Chinesesimp>添加载具备件(需相关货物组件)?</Chinesesimp>
|
<Chinesesimp>添加载具备件(需相关货物组件)?</Chinesesimp>
|
||||||
<Chinese>添加載具備件 (需相關貨物組件)?</Chinese>
|
<Chinese>添加載具備件 (需相關貨物組件)?</Chinese>
|
||||||
@ -1622,7 +1622,7 @@
|
|||||||
<Czech>Přiřaďte opraváresnké vozidlo</Czech>
|
<Czech>Přiřaďte opraváresnké vozidlo</Czech>
|
||||||
<Italian>Assegna Veicolo Riparazioni</Italian>
|
<Italian>Assegna Veicolo Riparazioni</Italian>
|
||||||
<French>Affecter véhicule(s) de réparation</French>
|
<French>Affecter véhicule(s) de réparation</French>
|
||||||
<Japanese>修理車両として指定</Japanese>
|
<Japanese>修理車両に割り当て</Japanese>
|
||||||
<Korean>정비 차량 등록</Korean>
|
<Korean>정비 차량 등록</Korean>
|
||||||
<Chinesesimp>指定维修载具</Chinesesimp>
|
<Chinesesimp>指定维修载具</Chinesesimp>
|
||||||
<Chinese>指定維修載具</Chinese>
|
<Chinese>指定維修載具</Chinese>
|
||||||
@ -1652,7 +1652,7 @@
|
|||||||
<Czech>Seznam vozidel, která budou klasifikována jako opravárenská, oddělit čárkami.</Czech>
|
<Czech>Seznam vozidel, která budou klasifikována jako opravárenská, oddělit čárkami.</Czech>
|
||||||
<Italian>Lista di Veicoli che verranno considerati veicoli riparazioni, separati da virgole.</Italian>
|
<Italian>Lista di Veicoli che verranno considerati veicoli riparazioni, separati da virgole.</Italian>
|
||||||
<French>Liste de véhicules qui seront classés comme véhicules de réparation, séparés par des virgules.</French>
|
<French>Liste de véhicules qui seront classés comme véhicules de réparation, séparés par des virgules.</French>
|
||||||
<Japanese>修理車両に指定される車両のリスト。カンマで区切ります。</Japanese>
|
<Japanese>修理車両に割り当てる車両のリスト。カンマで区切ります。</Japanese>
|
||||||
<Korean>목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다.</Korean>
|
<Korean>목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다.</Korean>
|
||||||
<Chinesesimp>载具名单,把载具名称输入在这边即可定义其为维修载具。每个载具使用逗号以做区隔。</Chinesesimp>
|
<Chinesesimp>载具名单,把载具名称输入在这边即可定义其为维修载具。每个载具使用逗号以做区隔。</Chinesesimp>
|
||||||
<Chinese>載具名單,把載具名稱輸入在這邊即可定義其為維修載具。每個載具使用逗號以做區隔。</Chinese>
|
<Chinese>載具名單,把載具名稱輸入在這邊即可定義其為維修載具。每個載具使用逗號以做區隔。</Chinese>
|
||||||
@ -1667,7 +1667,7 @@
|
|||||||
<Czech>Opravárenské vozidlo</Czech>
|
<Czech>Opravárenské vozidlo</Czech>
|
||||||
<Italian>È Veicolo Riparazioni</Italian>
|
<Italian>È Veicolo Riparazioni</Italian>
|
||||||
<French>Est un véhicule de réparation</French>
|
<French>Est un véhicule de réparation</French>
|
||||||
<Japanese>修理車両にする</Japanese>
|
<Japanese>修理車両とする</Japanese>
|
||||||
<Korean>은 정비 차량이다</Korean>
|
<Korean>은 정비 차량이다</Korean>
|
||||||
<Chinesesimp>是维修载具</Chinesesimp>
|
<Chinesesimp>是维修载具</Chinesesimp>
|
||||||
<Chinese>是維修載具</Chinese>
|
<Chinese>是維修載具</Chinese>
|
||||||
@ -1682,7 +1682,7 @@
|
|||||||
<Czech>Je vozidlo klasifikováno jako opravárenské?</Czech>
|
<Czech>Je vozidlo klasifikováno jako opravárenské?</Czech>
|
||||||
<Italian>Il veicolo è classificato dome veicolo riparazioni?</Italian>
|
<Italian>Il veicolo è classificato dome veicolo riparazioni?</Italian>
|
||||||
<French>Définit s'il s'agit d'un véhicule de réparation.</French>
|
<French>Définit s'il s'agit d'un véhicule de réparation.</French>
|
||||||
<Japanese>車両を修理車両に指定しますか?</Japanese>
|
<Japanese>車両を修理車両として割り当てます</Japanese>
|
||||||
<Korean>이 차량을 정비 차량으로 분류합니까?</Korean>
|
<Korean>이 차량을 정비 차량으로 분류합니까?</Korean>
|
||||||
<Chinesesimp>此载具是维修载具吗?</Chinesesimp>
|
<Chinesesimp>此载具是维修载具吗?</Chinesesimp>
|
||||||
<Chinese>此載具是維修載具嗎?</Chinese>
|
<Chinese>此載具是維修載具嗎?</Chinese>
|
||||||
@ -1712,7 +1712,7 @@
|
|||||||
<Czech>Přiřaďte opravárenské zařízení</Czech>
|
<Czech>Přiřaďte opravárenské zařízení</Czech>
|
||||||
<Italian>Assegna Struttura Riparazioni</Italian>
|
<Italian>Assegna Struttura Riparazioni</Italian>
|
||||||
<French>Affecter atelier(s) de réparation</French>
|
<French>Affecter atelier(s) de réparation</French>
|
||||||
<Japanese>修理施設とする</Japanese>
|
<Japanese>修理施設に割り当て</Japanese>
|
||||||
<Korean>정비 시설 등록</Korean>
|
<Korean>정비 시설 등록</Korean>
|
||||||
<Chinesesimp>指定维修设施</Chinesesimp>
|
<Chinesesimp>指定维修设施</Chinesesimp>
|
||||||
<Chinese>指定維修設施</Chinese>
|
<Chinese>指定維修設施</Chinese>
|
||||||
@ -1742,7 +1742,7 @@
|
|||||||
<Czech>Seznam objektů, které budou klasifikovány jako opravárenské zařízení, oddělit čárkami.</Czech>
|
<Czech>Seznam objektů, které budou klasifikovány jako opravárenské zařízení, oddělit čárkami.</Czech>
|
||||||
<Italian>Lista di oggetti che verranno classificati come strutture riparazioni, separati da virgole.</Italian>
|
<Italian>Lista di oggetti che verranno classificati come strutture riparazioni, separati da virgole.</Italian>
|
||||||
<French>Liste d'objets qui seront classés comme ateliers de réparation, séparés par des virgules.</French>
|
<French>Liste d'objets qui seront classés comme ateliers de réparation, séparés par des virgules.</French>
|
||||||
<Japanese>修理施設に指定されるオブジェクトのリスト。カンマで区切ります。</Japanese>
|
<Japanese>修理施設に割り当てるオブジェクトのリスト。カンマで区切ります。</Japanese>
|
||||||
<Korean>목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다.</Korean>
|
<Korean>목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다.</Korean>
|
||||||
<Chinesesimp>设施名单,把设施名称输入在这边即可定义其为维修设施。每个设施使用逗号以做区隔。</Chinesesimp>
|
<Chinesesimp>设施名单,把设施名称输入在这边即可定义其为维修设施。每个设施使用逗号以做区隔。</Chinesesimp>
|
||||||
<Chinese>設施名單,把設施名稱輸入在這邊即可定義其為維修設施。每個設施使用逗號以做區隔。</Chinese>
|
<Chinese>設施名單,把設施名稱輸入在這邊即可定義其為維修設施。每個設施使用逗號以做區隔。</Chinese>
|
||||||
@ -1772,7 +1772,7 @@
|
|||||||
<Czech>Je objekt klasifikován jako opravárenské zařízení?</Czech>
|
<Czech>Je objekt klasifikován jako opravárenské zařízení?</Czech>
|
||||||
<Italian>L'oggetto è classificato come struttura riparazioni?</Italian>
|
<Italian>L'oggetto è classificato come struttura riparazioni?</Italian>
|
||||||
<French>Définit l'objet comme étant un atelier de réparation.</French>
|
<French>Définit l'objet comme étant un atelier de réparation.</French>
|
||||||
<Japanese>オブジェクトを修理施設として指定しますか?</Japanese>
|
<Japanese>オブジェクトを修理施設として割り当てます</Japanese>
|
||||||
<Korean>이 시설을 정비 시설로 분류합니까?</Korean>
|
<Korean>이 시설을 정비 시설로 분류합니까?</Korean>
|
||||||
<Chinesesimp>此设施是维修设施吗?</Chinesesimp>
|
<Chinesesimp>此设施是维修设施吗?</Chinesesimp>
|
||||||
<Chinese>此設施是維修設施嗎?</Chinese>
|
<Chinese>此設施是維修設施嗎?</Chinese>
|
||||||
@ -2054,7 +2054,7 @@
|
|||||||
<Key ID="STR_ACE_Repair_editorLoadedTracks_tooltip">
|
<Key ID="STR_ACE_Repair_editorLoadedTracks_tooltip">
|
||||||
<English>Number of spare tracks in cargo.</English>
|
<English>Number of spare tracks in cargo.</English>
|
||||||
<German>Anzahl der Ersatzketten im Laderaum.</German>
|
<German>Anzahl der Ersatzketten im Laderaum.</German>
|
||||||
<Japanese>カーゴ内の予備履帯の数を指定</Japanese>
|
<Japanese>貨物室内の予備履帯の数を指定</Japanese>
|
||||||
<Italian>Numero dei cingoli di scorta nel carico.</Italian>
|
<Italian>Numero dei cingoli di scorta nel carico.</Italian>
|
||||||
<Chinese>設定載具在貨艙內攜帶的備用履帶數量</Chinese>
|
<Chinese>設定載具在貨艙內攜帶的備用履帶數量</Chinese>
|
||||||
<Chinesesimp>设定载具在货舱内携带的备用履带数量。</Chinesesimp>
|
<Chinesesimp>设定载具在货舱内携带的备用履带数量。</Chinesesimp>
|
||||||
@ -2084,7 +2084,7 @@
|
|||||||
<Key ID="STR_ACE_Repair_editorLoadedWheels_tooltip">
|
<Key ID="STR_ACE_Repair_editorLoadedWheels_tooltip">
|
||||||
<English>Number of spare wheels in cargo.</English>
|
<English>Number of spare wheels in cargo.</English>
|
||||||
<German>Anzahl der Ersatzreifen im Laderaum.</German>
|
<German>Anzahl der Ersatzreifen im Laderaum.</German>
|
||||||
<Japanese>カーゴ内の予備タイヤの数を指定</Japanese>
|
<Japanese>貨物室内の予備タイヤの数を指定</Japanese>
|
||||||
<Italian>Numero delle ruote di scorta nel cargo.</Italian>
|
<Italian>Numero delle ruote di scorta nel cargo.</Italian>
|
||||||
<Chinese>設定載具在貨艙內攜帶的備用輪胎數量</Chinese>
|
<Chinese>設定載具在貨艙內攜帶的備用輪胎數量</Chinese>
|
||||||
<Chinesesimp>设定载具在货舱内携带的备用轮胎数量。</Chinesesimp>
|
<Chinesesimp>设定载具在货舱内携带的备用轮胎数量。</Chinesesimp>
|
||||||
|
@ -998,7 +998,7 @@
|
|||||||
<German>Einheit muss ein Fahrzeug mit Ladekapazität sein</German>
|
<German>Einheit muss ein Fahrzeug mit Ladekapazität sein</German>
|
||||||
<Spanish>La unidad debe ser un vehículo con espacio de carga</Spanish>
|
<Spanish>La unidad debe ser un vehículo con espacio de carga</Spanish>
|
||||||
<French>L'unité doit être un véhicule muni d'un espace de stockage.</French>
|
<French>L'unité doit être un véhicule muni d'un espace de stockage.</French>
|
||||||
<Japanese>ユニットはカーゴのある車両である必要があります</Japanese>
|
<Japanese>ユニットは貨物室のある車両である必要があります</Japanese>
|
||||||
<Korean>대상이 반드시 화물을 실을 수 있는 차량이어야 합니다</Korean>
|
<Korean>대상이 반드시 화물을 실을 수 있는 차량이어야 합니다</Korean>
|
||||||
<Chinesesimp>单位必须是载具且有载货空间</Chinesesimp>
|
<Chinesesimp>单位必须是载具且有载货空间</Chinesesimp>
|
||||||
<Chinese>單位必須是載具且有載貨空間</Chinese>
|
<Chinese>單位必須是載具且有載貨空間</Chinese>
|
||||||
@ -1013,7 +1013,7 @@
|
|||||||
<German>Einheit muss freie Ladekapazität haben</German>
|
<German>Einheit muss freie Ladekapazität haben</German>
|
||||||
<Spanish>La unidad debe tener espacio de carga disponible</Spanish>
|
<Spanish>La unidad debe tener espacio de carga disponible</Spanish>
|
||||||
<French>L'unité doit avoir de l'espace de chargement disponible.</French>
|
<French>L'unité doit avoir de l'espace de chargement disponible.</French>
|
||||||
<Japanese>ユニットのカーゴには空きがありません</Japanese>
|
<Japanese>ユニットの貨物室に空きが必要です</Japanese>
|
||||||
<Korean>대상의 화물공간이 남아 있어야 합니다</Korean>
|
<Korean>대상의 화물공간이 남아 있어야 합니다</Korean>
|
||||||
<Chinesesimp>单位必须有剩余的载货空间</Chinesesimp>
|
<Chinesesimp>单位必须有剩余的载货空间</Chinesesimp>
|
||||||
<Chinese>單位必須有剩餘的載貨空間</Chinese>
|
<Chinese>單位必須有剩餘的載貨空間</Chinese>
|
||||||
@ -1180,7 +1180,7 @@
|
|||||||
<French>Cargaison :</French>
|
<French>Cargaison :</French>
|
||||||
<Russian>Груз:</Russian>
|
<Russian>Груз:</Russian>
|
||||||
<Czech>Náklad:</Czech>
|
<Czech>Náklad:</Czech>
|
||||||
<Japanese>カーゴ:</Japanese>
|
<Japanese>貨物:</Japanese>
|
||||||
<Polish>Ładunek:</Polish>
|
<Polish>Ładunek:</Polish>
|
||||||
<German>Ladung:</German>
|
<German>Ladung:</German>
|
||||||
<Korean>화물:</Korean>
|
<Korean>화물:</Korean>
|
||||||
@ -1303,7 +1303,7 @@
|
|||||||
<English>Load into Cargo</English>
|
<English>Load into Cargo</English>
|
||||||
<German>In Frachtraum laden</German>
|
<German>In Frachtraum laden</German>
|
||||||
<Italian>Carica nel carico</Italian>
|
<Italian>Carica nel carico</Italian>
|
||||||
<Japanese>カーゴへ積載</Japanese>
|
<Japanese>貨物室へ積載</Japanese>
|
||||||
<Chinese>裝載到貨物中</Chinese>
|
<Chinese>裝載到貨物中</Chinese>
|
||||||
<Chinesesimp>装载到货物中</Chinesesimp>
|
<Chinesesimp>装载到货物中</Chinesesimp>
|
||||||
<Korean>화물 싣기</Korean>
|
<Korean>화물 싣기</Korean>
|
||||||
@ -1318,7 +1318,7 @@
|
|||||||
<English>Unload from cargo</English>
|
<English>Unload from cargo</English>
|
||||||
<German>Aus Frachtraum ausladen</German>
|
<German>Aus Frachtraum ausladen</German>
|
||||||
<Italian>Scarica dal carico</Italian>
|
<Italian>Scarica dal carico</Italian>
|
||||||
<Japanese>カーゴから降ろす</Japanese>
|
<Japanese>貨物室から降ろす</Japanese>
|
||||||
<Korean>화물 내리기</Korean>
|
<Korean>화물 내리기</Korean>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Zeus_ModuleToggleNVG_DisplayName">
|
<Key ID="STR_ACE_Zeus_ModuleToggleNVG_DisplayName">
|
||||||
@ -1901,7 +1901,7 @@
|
|||||||
<Key ID="STR_ACE_Zeus_moduleCargoParadrop_DisplayName">
|
<Key ID="STR_ACE_Zeus_moduleCargoParadrop_DisplayName">
|
||||||
<English>Paradrop Cargo</English>
|
<English>Paradrop Cargo</English>
|
||||||
<German>Ladung abwerfen (Fallschirm)</German>
|
<German>Ladung abwerfen (Fallschirm)</German>
|
||||||
<Japanese>カーゴを空中投下</Japanese>
|
<Japanese>貨物を空中投下</Japanese>
|
||||||
<Polish>Zrzut ładunku (cargo)</Polish>
|
<Polish>Zrzut ładunku (cargo)</Polish>
|
||||||
<Russian>Десантировать груз</Russian>
|
<Russian>Десантировать груз</Russian>
|
||||||
<Portuguese>Soltar carga de paraquedas</Portuguese>
|
<Portuguese>Soltar carga de paraquedas</Portuguese>
|
||||||
@ -1917,7 +1917,7 @@
|
|||||||
<Key ID="STR_ACE_Zeus_paradrop_noCargoLoaded">
|
<Key ID="STR_ACE_Zeus_paradrop_noCargoLoaded">
|
||||||
<English>No cargo loaded</English>
|
<English>No cargo loaded</English>
|
||||||
<German>Keine Ladung geladen</German>
|
<German>Keine Ladung geladen</German>
|
||||||
<Japanese>カーゴは積載されていません</Japanese>
|
<Japanese>貨物は積載されていません</Japanese>
|
||||||
<Polish>Niczego nie załadowano do cargo</Polish>
|
<Polish>Niczego nie załadowano do cargo</Polish>
|
||||||
<Russian>Грузовой отсек пуст</Russian>
|
<Russian>Грузовой отсек пуст</Russian>
|
||||||
<Portuguese>Nenhuma carga carregada</Portuguese>
|
<Portuguese>Nenhuma carga carregada</Portuguese>
|
||||||
|
1
extras/assets/CookoffSounds/ConvertWAVtoWSS.bat
Normal file
1
extras/assets/CookoffSounds/ConvertWAVtoWSS.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
forfiles /s /m *.wav /c "DeWSSDos -wss/0 -P -V -Y @path @FNAME.wss"
|
BIN
extras/assets/CookoffSounds/shotbullet/close_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/close_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/close_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/close_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/close_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/close_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/far_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/far_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/far_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/far_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/far_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/far_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/mid_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/mid_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/mid_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/mid_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotbullet/mid_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotbullet/mid_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/close_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/close_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/close_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/close_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/close_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/close_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/far_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/far_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/far_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/far_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/far_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/far_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/mid_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/mid_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/mid_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/mid_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotrocket/mid_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotrocket/mid_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/close_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/close_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/close_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/close_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/close_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/close_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/far_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/far_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/far_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/far_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/far_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/far_3.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/mid_1.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/mid_1.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/mid_2.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/mid_2.wav
Normal file
Binary file not shown.
BIN
extras/assets/CookoffSounds/shotshell/mid_3.wav
Normal file
BIN
extras/assets/CookoffSounds/shotshell/mid_3.wav
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user