Skip to content

SoundEventInjector_RU_Settings

PolyacovYury edited this page Aug 31, 2019 · 6 revisions

Настройка

Со стороны пользователя настройка сводится только к копированию/удалению конфиг-файлов, отвечающих за различные звуковые моды/их части.

mods/configs/PYmods/SoundEventInjector/configs/*.json

Мод поддерживает довольно гибкий формат настроек. Файлы как могут быть разбиты на сколь угодно мелкие отдельные части, так и весь Ваш звуковой мод может управляться одним цельным конфигом.

Шаблон конфига:

{
    "имя_xml_скрипта_из_папки_components": {
        "имя_нации": {    // требуется ли - зависит от скрипта, смотрите ниже
            "ID_модуля": {
                "wwsoundPC": "my_event_1",
                "wwsoundNPC": "my_event_2"
            }
        }
    },
    "имя_другого_скрипта": { // это просто показывает, что можно несколько xml-скриптов "отредактировать" через один конфиг.
    }
}

Понимаю, пока что не очень понятно. Дальше будут примеры того, как "редактировать" поддерживаемые на данный момент скрипты.

scripts/item_defs/vehicles/nation/components/engines.xml

В оригинале файл выглядит так:

<engines.xml>
  <ids></ids>  <!-- На самом деле в этом блоке куча текста, но нам он не важен -->
  <shared>
    <NORINCO_12150L7>
      <userString>#china_vehicles:NORINCO_12150L7</userString>
      <tags>diesel</tags>
      <level> 8 </level>
      <notInShop> true </notInShop>
      <price> 79290 </price>
      <wwsoundPC>russian_500_600</wwsoundPC>  <!-- Обратите внимание вот на эти два поля. -->
      <wwsoundNPC>russian_500_600</wwsoundNPC>
      <power> 520 </power>
      <weight> 750 </weight>
      <maxHealth> 190 </maxHealth>
      <maxRegenHealth> 95 </maxRegenHealth>
      <repairCost> 7 </repairCost>
      <fireStartingChance>0.12</fireStartingChance>
      <rpm_min> 381 </rpm_min>
      <rpm_max> 2056 </rpm_max>
    </NORINCO_12150L7> <!-- Этих блоков тоже в файле куча, приведу два, чтобы было видно, как правильно склеить несколько. -->
    <_12150L-3_V-12>
      <userString>#china_vehicles:_12150L-3_V-12</userString>
      <tags>diesel</tags>
      <level> 5 </level>
      <notInShop> true </notInShop>
      <price> 17000 </price>
      <wwsoundPC>russian_400_500</wwsoundPC>
      <wwsoundNPC>russian_400_500</wwsoundNPC>
      <power> 430 </power>
      <weight> 700 </weight>
      <maxHealth> 105 </maxHealth>
      <maxRegenHealth> 52 </maxRegenHealth>
      <repairCost> 4 </repairCost>
      <fireStartingChance>0.12</fireStartingChance>
      <rpm_min> 208 </rpm_min>
      <rpm_max> 2283 </rpm_max>
    </_12150L-3_V-12>
  </shared>
</engines.xml>

В конфиге это будет выглядеть так:

{
    "engines": {
        "china": {  // в один конфиг можно впихнуть хоть все нации
            "NORINCO_12150L7": {  // а вот записи о компонентах лучше забирать только те, которые у Вас отличаются от стандартного клиента.
                "wwsoundPC": "russian_500_600",
                "wwsoundNPC": "russian_500_600"
            },
            "_12150L-3_V-12": {
                "wwsoundPC": "russian_400_500",
                "wwsoundNPC": "russian_400_500"
            }
        }  //если добавите еще одну нацию - не забудьте добавить тут запятую!
    }  // а тут - если добавите еще один вид редактируемых скриптов.
}
scripts/item_defs/vehicles/nation/components/guns.xml

В оригинале файл выглядит так:

<guns.xml>
  <ids></ids>  <!-- На самом деле в этом блоке куча текста, но нам он не важен -->
  <shared>
    <_37mm_APX_SA18>
      <userString>#china_vehicles:_37mm_APX_SA18</userString>
      <tags></tags>
      <level> 1 </level>
      <price> 0 </price>
      <impulse>0.26</impulse>
      <recoil>
        <lodDist>MEDIUM</lodDist>
        <amplitude>0.1</amplitude>
        <recoilEffect>small</recoilEffect>
      </recoil>
      <effects>shot_small</effects>              <!-- Из всего этого безобразия нам нужно только вот это поле. -->
      <reloadEffect>reload20_45</reloadEffect>
      <turretYawLimits>-180 180</turretYawLimits>
      <pitchLimits>
        <minPitch>0.0 -35.0 1.0 -35.0</minPitch>
        <maxPitch>0.0 20.0 1.0 20.0</maxPitch>
      </pitchLimits>
      <rotationSpeed>43.75</rotationSpeed>
      <reloadTime>2.51428571428571</reloadTime>
      <maxAmmo> 237 </maxAmmo>
      <aimingTime>2.51428571428571</aimingTime>
      <weight> 110 </weight>
      <maxHealth> 54 </maxHealth>
      <maxRegenHealth> 27 </maxRegenHealth>
      <repairCost> 1 </repairCost>
      <invisibilityFactorAtShot>0.1</invisibilityFactorAtShot>
      <shotDispersionRadius>0.537142857142857</shotDispersionRadius>
      <shotDispersionFactors>
        <turretRotation>0.16</turretRotation>
        <afterShot>4.0</afterShot>
        <whileGunDamaged>2.0</whileGunDamaged>
      </shotDispersionFactors>
      <shots>
        <_37mm_Odr_mle._1935>
          <defaultPortion>1.0</defaultPortion>
          <speed> 600 </speed>
          <gravity>9.81</gravity>
          <maxDistance> 720 </maxDistance>
          <piercingPower>29 22</piercingPower>
        </_37mm_Odr_mle._1935>
        <_37mm_FrtPrf1935>
          <defaultPortion>0.0</defaultPortion>
          <speed> 750 </speed>
          <gravity>9.81</gravity>
          <maxDistance> 720 </maxDistance>
          <piercingPower>46 34</piercingPower>
        </_37mm_FrtPrf1935>
        <_37mm_OE_mle._1916>
          <defaultPortion>0.0</defaultPortion>
          <speed> 600 </speed>
          <gravity>9.81</gravity>
          <maxDistance> 720 </maxDistance>
          <piercingPower>18 18</piercingPower>
        </_37mm_OE_mle._1916>
      </shots>
    </_37mm_APX_SA18> <!-- Этих блоков тоже в файле куча, приведу два, чтобы было видно, как правильно склеить несколько. -->
    <_37mm_APX_SA18_bot>
      <userString>#china_vehicles:_37mm_APX_SA18_bot</userString>
      <tags></tags>
      <level> 1 </level>
      <price> 0 </price>
      <notInShop> true </notInShop>
      <impulse>0.26</impulse>
      <recoil>
        <lodDist>MEDIUM</lodDist>
        <amplitude>0.1</amplitude>
        <recoilEffect>small</recoilEffect>
      </recoil>
      <effects>shot_small</effects>           <!-- Из всего этого безобразия нам нужно только вот это поле. -->
      <reloadEffect>reload20_45</reloadEffect>
      <pitchLimits>
        <minPitch>0.0 -35.0 1.0 -35.0</minPitch>
        <maxPitch>0.0 20.0 1.0 20.0</maxPitch>
      </pitchLimits>
      <turretYawLimits>-180 180</turretYawLimits>
      <rotationSpeed>43.75</rotationSpeed>
      <reloadTime>2.51428571428571</reloadTime>
      <maxAmmo> 237 </maxAmmo>
      <aimingTime>2.51428571428571</aimingTime>
      <weight> 110 </weight>
      <maxHealth> 54 </maxHealth>
      <maxRegenHealth> 27 </maxRegenHealth>
      <repairCost> 1 </repairCost>
      <invisibilityFactorAtShot>0.1</invisibilityFactorAtShot>
      <shotDispersionRadius>0.537142857142857</shotDispersionRadius>
      <shotDispersionFactors>
        <turretRotation>0.16</turretRotation>
        <afterShot>4.0</afterShot>
        <whileGunDamaged>2.0</whileGunDamaged>
      </shotDispersionFactors>
      <shots>
        <_37mm_Odr_mle._1935_bot>
          <defaultPortion>1.0</defaultPortion>
          <speed> 600 </speed>
          <gravity>9.81</gravity>
          <maxDistance> 720 </maxDistance>
          <piercingPower>29 22</piercingPower>
        </_37mm_Odr_mle._1935_bot>
      </shots>
    </_37mm_APX_SA18_bot>
  </shared>
</guns.xml>

В конфиге это будет выглядеть так:

{
    "guns": {
        "china": {  // в один конфиг можно впихнуть хоть все нации
            "_76mm_54-76TG": {  // а вот записи о компонентах лучше забирать только те, которые у Вас отличаются от стандартного клиента.
                "effects": "gun_76mm_shot_CH"
            },
            "_76mm_54-76T": {
                "effects": "gun_76mm_shot_CH"
            }
        },
        "china:CH_exampleTank_Mk1": {  // Это если хотите подменить орудие для отдельного танка, но не для всей нации
            // содержимое полностью идентично
        }  //если добавите еще одну нацию - не забудьте добавить тут запятую!
    }  // а тут - если добавите еще один вид редактируемых скриптов.
}

Обратите внимание!! Для работы этой секции требуются измененные эффекты орудий (стандартные лежат в scripts/item_defs/vehicles/common/gun_effects.xml).
Описание приведено ниже.

scripts/item_defs/vehicles/common/gun_effects.xml

Приведу здесь только то, как выглядит изменённый конфиг.

{
    "gun_effects": {
        "gun_100mm_shot_RU_4" : {  // эффекты не делятся по нации, поэтому все можно сложить в один конфиг
            "origin": "shot_main_mb",  // исходный эффект, который нужно взять за основу (тот, который Вы бы скопипастили, чтобы сделать этот эффект)
            "timeline": {
                "soundplaystop": 20.0  // имена параметров те же, что и в стандартном конфиге. Ксли это значение не меняете - можете не писать этот блок.
            },
            "effects": {
                "shotSound": {  // собственно звуки.
                    "wwsoundPC": ["gun_100mm_shot_RU_4"],  // можно прописать несколько, формат: ["event1", "event2", "event3"].
                    "wwsoundNPC": ["nps_gun_100mm_shot_RU_4"]  // Количество может быть любым. Вопроизведение всех звуков начнётся одновременно.
                }
            }
        },
        "gun_100mm_shot_RU_5" : {
            "origin": "shot_main_mb",
            "timeline": {
                "soundplaystop": 20.0
            },
            "effects": {
                "shotSound": {
                    "wwsoundPC": ["gun_100mm_shot_RU_5"],
                    "wwsoundNPC": ["nps_gun_100mm_shot_RU_5"]
                }
            }
        }
    }
}
scripts/item_defs/vehicles/common/shot_effects.xml

В оригинале файл выглядит так:

<shot_effects.xml>
  <autoArmorPiercing> <!-- Здесь многого не хватает, на самом деле там текста намного больше. -->
    <groundHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_ground</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </groundHit>
    <sandHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_sand</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </sandHit>
    <snowHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_snow</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </snowHit>
    <armorBasicRicochet> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_PC>armor_not_pierce_auto</impactNPC_PC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>armor_not_pierce_auto</impactPC_NPC> <!-- Нам нужно вот это. -->
          <impactNPC_NPC>armor_not_pierce_auto</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_ricochet</SWITCH_ext_impact_type>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </armorBasicRicochet>
    <armorRicochet> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_PC>armor_not_pierce_auto</impactNPC_PC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>armor_not_pierce_auto</impactPC_NPC> <!-- Нам нужно вот это. -->
          <impactNPC_NPC>armor_not_pierce_auto</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_ricochet</SWITCH_ext_impact_type>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </armorRicochet>
    <armorResisted> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_PC>armor_not_pierce_auto</impactNPC_PC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>armor_not_pierce_auto</impactPC_NPC> <!-- Нам нужно вот это. -->
          <impactNPC_NPC>armor_not_pierce_auto</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_not_pierce</SWITCH_ext_impact_type>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </armorResisted>
    <armorHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_PC>armor_pierce_auto</impactNPC_PC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>armor_pierce_auto</impactPC_NPC> <!-- Нам нужно вот это. -->
          <impactNPC_NPC>armor_pierce_auto</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_pierce</SWITCH_ext_impact_type>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </armorHit>
    <armorCriticalHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_PC>imp_auto_critical_AP_NPC_PC</impactNPC_PC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_auto_critical_AP_PC_NPC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <impactNPC_NPC>imp_auto_critical_AP_NPC_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_pierce_crit</SWITCH_ext_impact_type>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </armorCriticalHit>
    <woodHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_wood</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </woodHit>
    <stoneHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_stone</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </stoneHit>
    <metalHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_metal</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </metalHit>
    <shallowWaterHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_water</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </shallowWaterHit>
    <deepWaterHit> <!-- Нам нужно вот это. -->
      <effects>
        <sound>
          <startKey>start</startKey>
          <impactNPC_NPC>imp_surface_automatic_NPC</impactNPC_NPC> <!-- Нам нужно вот это. -->
          <impactPC_NPC>imp_surface_automatic_PC</impactPC_NPC> <!-- Нам нужно вот это. -->
          <SWITCH_ext_impact_type>SWITCH_ext_impact_type_surface</SWITCH_ext_impact_type>
          <SWITCH_ext_impact_surface>SWITCH_ext_impact_surface_water</SWITCH_ext_impact_surface>
          <SWITCH_ext_shell_type>SWITCH_ext_shell_type_AP</SWITCH_ext_shell_type>
        </sound>
      </effects>
    </deepWaterHit>
  </autoArmorPiercing> <!-- Так и быть, второй блок приводить здесь не буду. -->
</shot_effects.xml>

В конфиге это будет выглядеть так:

{
    "shot_effects": {
        "autoArmorPiercing": { // попадания по технике
            "armorBasicRicochet": {
                "impactNPC_PC": "armor_not_pierce_auto",
                "impactPC_NPC": "armor_not_pierce_auto",
                "impactNPC_NPC": "armor_not_pierce_auto"
            },
            "armorRicochet": {
                "impactNPC_PC": "armor_not_pierce_auto",
                "impactPC_NPC": "armor_not_pierce_auto",
                "impactNPC_NPC": "armor_not_pierce_auto"
            },
            "armorResisted": {
                "impactNPC_PC": "armor_not_pierce_auto",
                "impactPC_NPC": "armor_not_pierce_auto",
                "impactNPC_NPC": "armor_not_pierce_auto"
            },
            "armorHit": {
                "impactNPC_PC": "armor_pierce_auto",
                "impactPC_NPC": "armor_pierce_auto",
                "impactNPC_NPC": "armor_pierce_auto"
            },
            "projectile": { // трассер.
                "wwsoundPC": "tracer_small_GO",
                "wwsoundNPC": "tracer_small_GO"
            },
            "groundHit": { // попадания по земле и прочим поверхностям.
                "impactNPC_NPC": "explosion_medium_ground",
                "impactPC_NPC": "explosion_medium_ground"
            }  //все три вида в стандартном клиенте находятся в одном и том же файле. У меня их можно разделить.
        }  // и это был один эффект. А их в игре 21 :)
    }
}
scripts/item_defs/vehicles/common/gun_reload_effects.xml

В оригинале файл выглядит так:

<gun_reload_effects.xml>
  <reload12_25>
    <type>	SimpleReload	</type>
    <duration>1150.0</duration>
    <sound>reload_1</sound>
  </reload12_25>
  <reload_automat_reloading_12_25>
    <type>	BarrelReload	</type>
    <duration>	6450	</duration>
    <shellDuration>	200	</shellDuration>
    <sound>gun_rld_automat_reloading_short_oneshell</sound>
    <startLong>gun_rld_automat_reloading_long_start</startLong>
    <startLoop>gun_rld_automat_reloading_long_loop</startLoop>
    <stopLoop>gun_rld_automat_reloading_long_loop_stop</stopLoop>
    <loopShell>gun_rld_automat_reloading_long_oneshell</loopShell>
    <loopShellDt>0.3</loopShellDt>
    <loopShellLast>gun_rld_automat_reloading_long_oneshell_last</loopShellLast>
    <loopShellLastDt>0.2</loopShellLastDt>
    <lastShellAlert>gun_rld_automat_reloading_short_lastshell</lastShellAlert>
    <ammoLow>gun_rld_automat_no_enough_shells</ammoLow>
    <caliber>SWITCH_ext_rld_automat_caliber_12_25mm</caliber>
  </reload_automat_reloading_12_25>
</gun_reload_effects.xml>

В конфиге это будет выглядеть так:

{
    "gun_reload_effects": {
        "reload12_25": {
            "type": "SimpleReload",
            "duration": "1150.0",
            "sound": "reload_1"
        },
        "reload_automat_reloading_12_25": { // для таких все параметры менять не обязательно
            "type": "BarrelReload",
            "duration": 6450,
            "shellDuration": 200,
            "sound": "gun_rld_automat_reloading_short_oneshell",
            "startLong": "gun_rld_automat_reloading_long_start",
            "startLoop": "gun_rld_automat_reloading_long_loop",
            "stopLoop": "gun_rld_automat_reloading_long_loop_stop",
            "loopShell": "gun_rld_automat_reloading_long_oneshell",
            "loopShellDt": 0.3,
            "loopShellLast": "gun_rld_automat_reloading_long_oneshell_last",
            "loopShellLastDt": 0.2,
            "lastShellAlert": "gun_rld_automat_reloading_short_lastshell",
            "ammoLow": "gun_rld_automat_no_enough_shells",
            "caliber": "SWITCH_ext_rld_automat_caliber_12_25mm"
        }
    }
}
gui/sound_notifications.xml

В оригинале это выглядело так:

<sound_notifications.xml>
  <gun_reloaded>
    <fx>
      <wwsound>gun_reloaded_GO_1</wwsound>
      <playRules>	0	</playRules>
    </fx>
  </gun_reloaded>
</sound_notifications.xml>

В конфиге это будет выглядеть вот так:

{
    "sound_notifications": {
        "gun_reloaded": {
            "fx": "gun_reloaded_GO_1"
        }
    }
}

Список будет дополняться, рекомендации - добавляться, вопросы - отвечаться. Пишите в топики на форумах или создавайте тикеты в issue tracker'е.