
ClientEXSoundPack
Add Pilot OS sys.Dynamic music.Holiday wishes etc voice and music On Client
By Xiaobbuguai
Last updated | a month ago |
Total downloads | 138 |
Total rating | 2 |
Categories | Mods Client-side Language: CN Custom Menus |
Dependency string | Xiaobbuguai-ClientEXSoundPack-1.1.1 |
Dependants | 0 other packages depend on this package |
This mod requires the following mods to function

README
欢迎您选择铁驭语音/动态音乐拓展包!接下来的内容请您务必仔细了解。
- 本模组依据LavaLump.StyleMeter开发制作,内置了clientkillcallback和魔改过的Fdcallback,如果您安装了ClientKillCallback可能会导致模组冲突。FDcallback经过魔改解决了这个问题
一.如何正确的安装此模组:
- 将下载好的zip解压缩,解压缩后的文件夹内的mods文件夹下有北极星版本和官服版本(vanilla)
- 请务必安装对应版本的模组,否则会出现函数未注册的情况
- 详细的mod更新内容请查看CHANGELOG页面
二.模组包含的内容:
- 模组主要包含三个部分:铁驭拓展语音 (铁驭OS)、动态音乐、特殊语音
- 铁驭拓展语音包含了:玩家受伤,玩家恢复满血、铁驭驾驶泰坦时遭受大量指定武器伤害、铁驭用指定武器击杀敌人等等...
- 动态音乐在 小规模战斗(tdm)、消耗战(aitdm)、泰坦争斗(ttdm)、铁驭对铁驭(ps),运行根据当前比分执行对应音乐播放,并且有间乐过渡
- 特殊语音主要包括了:电子日历祝福(CN-only)、大厅闲置语音、战斗中闲置语音、玩家对电池相关操作。
- 本模组对边境(FD)使用道具、指定道具剩余数量、剩余多少迫击炮泰坦等情况等多种内容进行语音播报。
- 模组默认情况下使用的崩坏三的希儿(CN-voice)为铁驭拓展语音和特殊语音的使用者,默认动态音乐参考红色警戒3的动态音乐体系。
- 在modsetting中有对应相关关键参数的调整。您可以适当设置。如果您看不懂中文 (CN),可以观看本说明的第三部分的最后常量介绍部分,都是modsetting的内容。
三.如何使用模组框架(如果你不是冲着modding来的,可以忽略这一部分)
模组包含了两个部分:动态音乐和铁驭语音拓展
- 你可以在LavaLump.StyleMeter\mod\scripts\vscripts文件夹下的StyleMeterMain.nut文件头中找到对应的音频ID直接按照指定ID来进行正常的音频modding
目前有些音频的音源ID在演出效果上会出现问题,请等待更新调整
-
先介绍动态音乐部分:
-
动态音乐仅支持 小规模战斗(tdm)、消耗战(aitdm)、泰坦争斗(ttdm)、铁驭对铁驭(ps)
-
动态音乐的运行逻辑是这样的:倒计时入场 -> 入场阶段 -> 判断阶段 -> 动态音乐运行阶段
- 倒计时入场阶段就是玩家在船上或者站在原地等待游戏开始的倒计时阶段。
玩家在入场倒计时的音乐会被强制替换成当前拓展包的音乐
- 入场阶段为玩家结束倒计时入场之后到玩家击杀敌人/被敌人击杀/自杀之前,这个阶段播放入场音乐。
- 判断阶段是在玩家击杀敌人/被敌人击杀/自杀之后到抵达动态音乐运行阶段设置的比分之前的阶段
- 动态音乐运行阶段即为达到设置的比分后开始执行的动态音乐判断
当前动态音乐执行阶段可能会和玩家撤离/胜利阶段的音乐互相覆盖,这个我还没做修改,请耐心等待。
- 动态音乐运行阶段开始后,会根据玩家队伍和敌方队伍的比分差距百分比来播放对应 僵持音乐、优势音乐、劣势音乐、间乐 并且在此之间相互转换,如果你要修改这个部分,请务必准备好完善的动态音乐结构体系。
-
其次是铁驭拓展语音部分
- 铁驭拓展语音主要是有四大部分组成:击杀敌方、受到攻击、铁驭状态反馈和特殊语音
- 这一部分参考了大量的其它模组的插件回调(CallBacks),并且根据一些插件自己定义了内容来方便模组一体化。
当前运行效果发现还不如拆开,并且非常不利于代码维护,在未来的更新中会将这些依赖从模组中移除,让用户单独下载。
- 击杀敌方的原理是通过stylemeter原本的内容实现的。详细参考
void function KillEvent( ObituaryCallbackParams KillEventParams )
函数怎么实现的 - 受到攻击主要是通过
void function OnPlayerTakeDamage()
函数实现的,其中函数AddLocalPlayerTookDamageCallback()
的第二个参数就是语音播放的条件函数。 - 铁驭状态反馈主要是通过以下几个函数实现:
OnPlayerSheildChanged()
、OnPlayerTitanChanged()
和OnPlayerPilotChanged()
三个函数实现的。
它们都是通过函数
void function OnGameStartSet()
实现的,这个函数全部用的都是for(;;)
函数,这些死循环会严重的影响游戏的性能,我在考虑使用更好的回调来替代他们。如果您有更好的提议和回调提供,可以通过 ***discord(你可以在 nsmoddingchat 频道找到我,我的用户名和雷霆商店用户名一致),或者QQ联系我。 ***-
特殊语音主要包括了:电子日历祝福、闲置语音两种。
- 电子日历祝福的内容实现比较特殊,这也是区分官服和北极星版本内容的主要原因,在北极星版本中我首次采用了safeio功能在函数
void function LobbySpeiclVoice( string speicaldayname )
来实现,并且通过函数void function SafeIOLoading( string data )
来解码。 - 而官服则采用ConVar单独存储,因为safeio是北极星专属功能,在官服无法使用。如果您想要在您国家地区使用该功能,可以修改
void function SafeIOLoading( string data )
,void function LobbySpeiclVoice( string speicaldayname )
,这两个函数控制了电子日历的语音播放。顺便不要忘记文件头命名的修改 - 请注意!如果您想要修改成您国家的电子日历语音,请注意时区问题!务必通过
printt("now time is: " + timeTable["year"] +"/"+ timeTable["month"] +"/"+ timeTable["day"] +" "+ timeTable["hour"] +":"+ timeTable["minute"] +":"+ timeTable["second"] )
来判断与您时区相差夺少。再进行对table timeParts = GetUnixTimeParts( GetUnixTimestamp() + 8 * SECONDS_PER_HOUR )
进行修改再计算。
北极星的safeio功能可以做到一天无论进多少次游戏都只播放一次语音,而官服Convar存储就只能做到进一次游戏就放一次语音。官服无法体现出特殊语音的特殊性,做不到一天只放一次。
- 电子日历祝福的内容实现比较特殊,这也是区分官服和北极星版本内容的主要原因,在北极星版本中我首次采用了safeio功能在函数
- 接下来是对于一些使用的常量进行解释:
接下来写的常量内容都是在脚本中
GetConVarInt("<常量名>")
或GetConVarFloat("<常量名>")
的内容,数值调整在modsetting中。- 常量audiowaitingtime:这个常量是语音触发间隔时间,绝大部分语音冷却共享这一个时间
- 常量relaxaudioactive:这个常量是闲置语音触发间隔时间,在大厅/战斗中的闲置语音冷却共享这个时间。
- 常量expectsocreAITDM:这个常量是判断消耗战的动态音乐动态音乐运行阶段的基础分,双方比分 相加达到这个基础分之后跳过入场阶段进入动态音乐运行阶段
- 常量expectsocreTTDM:这个常量是判断泰坦争斗的动态音乐动态音乐运行阶段的基础分,双方比分 相加达到这个基础分之后跳过入场阶段进入动态音乐运行阶段
- 常量expectsocrePS:这个常量是判断铁驭对铁驭的动态音乐动态音乐运行阶段的基础分,双方比分 相加达到这个基础分之后跳过入场阶段进入动态音乐运行阶段
- 常量expectsocreTDM:这个常量是判断小规模战斗的动态音乐动态音乐运行阶段的基础分,双方比分 相加达到这个基础分之后跳过入场阶段进入动态音乐运行阶段
- 常量musicholdontime:此处设置间乐与即将播放的主要音乐的过渡时间,用于衔接间乐合即将播放的主要音乐。
- 常量FDMoenyVoiceColdDownTime:关于商店资金使用的相关语音的冷却时间,设置过短会严重影响游戏体验。
这边建议您语音播报冷却时间至少设置大于60s
- 常量FDUseItemVoiceColdDown:边境可用道具语音播报冷却时间,所有道具语音共享这一冷却时间
这边建议您语音播报冷却时间至少设置大于60s
- 常量TookDamagecontinuousVoiceColdDown:受到高额武器连续次数伤害时的语音冷却时间
剑核心、野牛狂暴拳共享使用这一冷却时间
- 常量SwordCoreDamgeNextVoiceTrueTime:在此有效时间内,判断剑核心命中次数的语音播报。
不建议过长,你可以预计被剑核心砍死有多长时间就设置多长时间的有效期,每次被剑核心攻击,都会刷新这个有效时间。多个剑核心命中你也算在总计受伤次数内。
- 常量SalvocoreDamgeNextVoiceTrueTime:在此有效时间内,判断遭受弹群核心大量伤害的语音(即为吃满一个弹群的伤害)。
不建议过长,你可以预计吃满弹群核心砍有多长时间就设置多长时间的有效期,多个弹群命中你也算在总计伤害内
- 常量LasercoreDamgeNextVoiceTrueTime:在此有效时间内,判断遭受镭射核心大量伤害的语音(即为吃满大半个核心的伤害)。
不建议过长,你可以预计吃满大半个镭射核心砍有多长时间就设置多长时间的有效期。多个镭射核心命中你也算在总计伤害内
- 常量FlightcoreDamgeNextVoiceTrueTime:在此有效时间内,判断遭受飞行核心大量伤害的语音(即为吃满大半个核心的伤害)。
不建议过长,你可以预计吃满大半个飞行核心砍有多长时间就设置多长时间的有效期。多个飞行核心命中你也算在总计伤害内
- 常量SmartcoreDamgeNextVoiceTrueTime:在此有效时间内,判断遭受飞行核心大量伤害的语音(即为吃满大半个核心的伤害)。
设置合适时长,你可以预计吃满大半个智慧核心砍有多长时间就设置多长时间的有效期。多个智慧核心核心命中你也算在总计伤害内
- 常量ThunderboltCannonDamgeNextVoiceTrueTime:在此有效时间内,判断遭受雷电炮大量伤害的语音(即为遭受多个雷电球大量伤害)。
设置合适时长,你可以预计遭受多个雷电炮伤害大量伤害有多长时间就设置多长时间的有效期。多个雷电球命中你也算在总计伤害内
- 常量ExplodingSpiderDamgeNextVoiceTrueTime:在此有效时间内,判断遭受炸蛛大量伤害的语音(即为遭受多个炸蛛大量伤害)。
设置合适时长,你可以预计遭受多个炸蛛爆炸伤害大量伤害有多长时间就设置多长时间的有效期。多个炸蛛命中你也算在总计伤害内
- 常量RampageFistDamgeNextVoiceTrueTime:在此有效时间内,判断野牛拳命中次数的语音播报。
不建议过长,你可以预计被野牛拳重损有多长时间就设置多长时间的有效期,每次被狂暴拳攻击,都会刷新这个有效时间。多个狂暴拳命中你也算在总计受伤次数内。
- 常量EMPStromDamgeNextVoiceTrueTime:在此有效时间内,判断遭受电场大量伤害的语音(也可以是遭受多个或者长时间遭受电场大量伤害)。
设置合适时长,你可以预计遭受emp电场伤害大量伤害有多长时间就设置多长时间的有效期。多个emp电场命中你也算在总计伤害内
- 常量ThreeRingGrenadeDamgeNextVoiceTrueTime:在此有效时间内,判断遭受三环榴弹大量伤害的语音(即为遭受多个三环榴弹大量伤害)。
不建议过长,你可以预计遭受三环榴弹伤害大量伤害有多长时间就设置多长时间的有效期。多个三环榴弹命中你也算在总计伤害内
- 常量FireStarDamgeNextVoiceTrueTime:在此有效时间内,判断遭受飞火星大量伤害的语音(也可以是遭受多个飞火星大量伤害)。
设置合适时长,你可以预计遭受飞火星伤害大量伤害有多长时间就设置多长时间的有效期。多个飞火星灼烧你也算在总计伤害内
- 常量FourStageRocketDamgeNextVoiceTrueTime:在此有效时间内,判断遭受四段火箭大量伤害的语音(也可以是遭受多个四段火箭大量伤害)。
设置合适时长,你可以预计遭受四段火箭伤害大量伤害有多长时间就设置多长时间的有效期。多个被四段火箭伤害你也算在总计伤害内
- 常量RailgunDamgeNextVoiceTrueTime:在此有效时间内,判断遭受磁轨炮大量伤害的语音(也可以是遭受多个磁轨炮大量伤害)。
设置合适时长,你可以预计遭受磁轨炮伤害大量伤害有多长时间就设置多长时间的有效期。被多个磁轨炮伤害你也算在总计伤害内
-
You are welcome to choose the Pilot's Voice/Dynamic Music Expansion Pack! Please be sure to read the following carefully.
- This module is based on LavaLump.StyleMeter development, built-in clientkillcallback and Fdcallback, if you install ClientKillCallback may cause module conflicts. FDcallback has been modified to fix this
I. How to install this mod correctly:
- Unzip the downloaded zip, and the mods folder in the unzipped folder contains Polaris version and official server version (vanilla)
- Please be sure to install the corresponding version of the mod, otherwise the function will not be registered
- See the CHANGELOG page for detailed mod updates
II. What's included in the mod:
- The module mainly consists of three parts: Pilot's Extended Voice (Pilot's OS), Dynamic Music, and Special Voice
- The Pilot's Extended Voice includes: the player is injured and the player recovers full health, the Commander takes a lot of damage from the specified weapon while piloting the Titan, the Pilot kills the enemy with the Designated Weapon, etc...
- Dynamic music in skirmishes (TDM), attrition (aitdm), titan battles (TTDM), and pilots vs. pilots (PS) run according to the current score and have intermittent transitions
- Special voices include: electronic calendar blessing (CN-only), idle voice in the lobby, idle voice in battle, and player-related battery operations.
- This mod provides voice announcements on the use of items at the border (FD), the number of items remaining, and the number of mortar Titans remaining.
- By default, the module uses Honkai Impact 3's CN-voice for users of Seele's extended voice and special voices, and the default dynamic music refers to the dynamic music system of Red Alert 3.
- In the modsetting, there are adjustments to the relevant key parameters. You can set it appropriately. If you can't read Chinese (CN), you can watch the last constant introduction part of the third part of this note, which is all about modsetting.
III. How to use the modding framework (if you're not here for modding, you can ignore this part)
The mod consists of two parts: dynamic music and pilot voice expansion
- You can find the corresponding audio ID in the StyleMeterMain.nut file header in the LavaLump.StyleMetermodscriptsvscripts folder, and directly follow the specified ID to perform normal audio modding
At present, there are problems with the source ID of some audios, please wait for the update and adjustment
- Let's start with the dynamic music section:
- Dynamic music only supports Skirmishes (TDM), War of Attrition (AITDM), Titan Battles (TTDM), Ironmaster vs. Ironmaster (PS)
- The logic of dynamic music is as follows: Countdown Entry -> Admission Phase -> Judgment Phase -> Dynamic Music Running Stage
- The countdown entry phase is the countdown phase where the player waits for the game to start while on a boat or standing still.
Players are forced to replace the music of the current expansion pack during the countdown to the entry
- The entry phase is the one from the time the player has finished the countdown to the time when the player kills/is killed/commits suicide.
- The judging phase is the period after the player has killed/been killed/committed suicide by an enemy and before reaching the score set during the dynamic music run
- The dynamic music running phase is the dynamic music judgment that starts when the set score is reached
The current dynamic music execution phase may override the music of the player's withdrawal/victory phase, I haven't changed this yet, please be patient.
- After the dynamic music running phase starts, the corresponding ***stalemate, advantage, disadvantage, and intermittent music will be played according to the percentage of the difference between the score of the player team and the enemy team, and switch between them, if you want to modify this section, be sure to prepare a complete dynamic music structure.
- The second is the Pilot's Extended Voice Part
- The Pilot's Extended Voice is mainly composed of four parts: Kill the enemy, Attack, Pilot Status Feedback and Special Voice
- This section references a large number of callbacks from other modules, and defines the content of some plugins themselves to facilitate module integration.
The current operation is found to be as good as taking it apart, and it is very detrimental to code maintenance, and these dependencies will be removed from the mod in future updates for users to download separately.
- The principle of killing enemies is achieved through the original content of the stylemeter. For details, please refer to the
void function KillEvent( ObituaryCallbackParams KillEventParams)
function for details - Attacks are mainly achieved through the
void function OnPlayerTakeDamage()
, where the second argument of the functionAddLocalPlayerTookDamageCallback()
is the conditional function for voice playback. - Pilot status feedback is mainly implemented through the following functions:
OnPlayerSheildChanged()
,OnPlayerTitanChanged()
, andOnPlayerPilotChanged()
.
They are all implemented by the function
void function OnGameStartSet()
, which all usesfor(;;)
functions, these dead loops can seriously affect the performance of the game, and I'm thinking of using better callbacks instead of them. If you have a better offer or callback, you can contact me via discord (you can find me in the nsmoddingchat channel, my username is the same as the Thunder Store username), or QQ.
- Special voices mainly include: electronic calendar blessing and idle voice.
- The content implementation of the electronic calendar blessing is quite special, which is the main reason for distinguishing the content of the official uniform and the Polaris version, in the Polaris version, I used the safeio function for the first time in the function
void function LobbySpeiclVoice( string speicaldayname )
to implement, and through the functionvoid function SafeIOLoading( string data )
to decode. - The official server is stored separately with ConVar, because safeio is a Polaris-exclusive feature and cannot be used in the official server. If you want to use this function in your country, you can modify the
void function SafeIOLoading( string data )
andvoid function LobbySpeiclVoice( string speicaldayname )
, which control the voice playback of the electronic calendar. By the way, don't forget the modification of the file header naming - Please note! If you want to change the voice of your country's electronic calendar, please be aware of the time zone! Be sure to pass
printt("now time is: " + timeTable["year"] +"/"+ timeTable["month"] +"/"+ timeTable["day"] +" "+ timeTable["hour"] +":"+ timeTable["minute"] +":"+ timeTable["second"] )
to determine how little difference is in your time zone. Then modifytable timeParts = GetUnixTimeParts( GetUnixTimestamp() + 8 * SECONDS_PER_HOUR )
and then calculate.
Polaris's safeio function can only play voice once a day no matter how many times you enter the game, while the official server Convar storage can only play voice once you enter the game. The official uniform cannot reflect the particularity of the special voice, can't be put only once a day.
- Here is an explanation of some of the constants used:
The next constants to write are either 'GetConVarInt("ConvarName")' or 'GetConVarFloat("ConvarName"), the values are adjusted in the modsetting.
- Constant audiowaitingtime: This constant is the interval between voice triggers, which is shared by most voice cooldowns
- Constant relaxaudioactive: This constant is the idle voice trigger interval, which is shared by the idle voice cooldown in the lobby/battle.
- ConstantexpectsocreAITDM: This constant is the base score for judging the dynamic music dynamic music running phase of the war of attrition, The scores of both sides are added to reach this base score, and then skip the entry phase and enter the dynamic music running phase
- ConstantexpectsocreTTDM: This constant is the base score for judging the dynamic music dynamic music running phase of Titan Clash ***, the scores of both sides are added to reach this base score, and then skip the entry phase and enter the dynamic music running phase
- ConstantexpectsocrePS: This constant is the basic score for judging the dynamic music of the pilot vs. the pilot, and the score of both sides is added to reach this basic score, and then skips the entry stage and enters the dynamic music running stage
- ConstantexpectsocreTDM: This constant is the base score for judging the dynamic music dynamic music running phase of skirmishes, the scores of both sides are added to reach this base score, and then skip the entry phase and enter the dynamic music running phase
- Constant MusicHoldOnTime: This sets the transition time between the music and the main music to be played, which is used to connect the main music that will be played in the music.
- Constant: FDMoenyVoiceColdDownTime: The cooldown time for the relevant voice regarding the use of store funds, setting it too short can severely affect the game experience.
It is recommended that you set the cooldown time of voice broadcast to at least 60s
- Constant FDUseItemVoiceColdDown: Cooldown time for border item usage voice alerts (shared by all item voice alerts)
Recommended to set cooldown duration >60s
- Constant TookDamagecontinuousVoiceColdDown: Voice cooldown time when taking consecutive high-damage weapon hits
Shared by Sword Core and Rampage Fist
- Constant SwordCoreDamgeNextVoiceTrueTime: Validity period for determining Sword Core hit counts for voice alerts
Not recommended to be too long. Set based on estimated Sword Core kill duration. Each Sword Core hit resets this timer. Multiple Sword Core hits accumulate in total damage count.
- Constant SalvocoreDamgeNextVoiceTrueTime: Validity period for determining full salvocore damage intake voice alerts
Not recommended to be too long. Set based on estimated full salvocore damage duration. Multiple salvocore hits accumulate in total damage.
- Constant LasercoreDamgeNextVoiceTrueTime: Validity period for determining significant lasercore damage intake voice alerts
Not recommended to be too long. Set based on estimated lasercore majority damage duration. Multiple lasercore hits accumulate in total damage.
- Constant FlightcoreDamgeNextVoiceTrueTime: Validity period for determining significant flightcore damage intake voice alerts
Not recommended to be too long. Set based on estimated flightcore majority damage duration. Multiple flightcore hits accumulate in total damage.
- Constant SmartcoreDamgeNextVoiceTrueTime: Validity period for determining significant smartcore damage intake voice alerts
Set appropriate duration based on estimated smartcore majority damage timeframe. Multiple smartcore hits accumulate in total damage.
- Constant ThunderboltCannonDamgeNextVoiceTrueTime: Validity period for determining multiple thunderbolt cannon damage intake voice alerts
Set appropriate duration based on estimated multi-thunderbolt damage timeframe. Multiple thunderbolt hits accumulate in total damage.
- Constant ExplodingSpiderDamgeNextVoiceTrueTime: Validity period for determining significant exploding spider damage intake voice alerts
Set appropriate duration based on estimated multi-spider explosion damage timeframe. Multiple spider explosions accumulate in total damage.
- Constant RampageFistDamgeNextVoiceTrueTime: Validity period for determining Rampage Fist hit counts voice alerts
Not recommended to be too long. Set based on estimated Rampage Fist critical damage duration. Each Rampage Fist hit resets this timer. Multiple hits accumulate in total damage count.
- Constant EMPStromDamgeNextVoiceTrueTime: Validity period for determining significant EMP field damage intake voice alerts
Set appropriate duration based on estimated EMP field damage timeframe. Multiple EMP field exposures accumulate in total damage.
- Constant ThreeRingGrenadeDamgeNextVoiceTrueTime: Validity period for determining multiple three-ring grenade damage intake voice alerts
Not recommended to be too long. Set based on estimated multi-grenade damage duration. Multiple grenade hits accumulate in total damage.
- Constant FireStarDamgeNextVoiceTrueTime: Validity period for determining significant Fire Star damage intake voice alerts
Set appropriate duration based on estimated multi-Fire Star burn damage timeframe. Multiple burns accumulate in total damage.
- Constant FourStageRocketDamgeNextVoiceTrueTime: Validity period for determining multiple four-stage rocket damage intake voice alerts
Set appropriate duration based on estimated multi-rocket damage timeframe. Multiple rocket hits accumulate in total damage.
- Constant RailgunDamgeNextVoiceTrueTime: Validity period for determining significant railgun damage intake voice alerts
Set appropriate duration based on estimated multi-railgun damage timeframe. Multiple railgun hits accumulate in total damage.