SLAM放音乐原理(csgo)
csgo本身提供了一个voice_inputfromfile
命令,如果该命令设置为1,将使语音输入来自voice_input.wav文件,而不是您的麦克风。
slam启动后会生成一个slam.cfg文件,该文件位置在C:\SteamLibrary\steamapps\common\Counter-Strike Global Offensive\csgo\cfg\slam.cfg
,有几行重要内容:
alias slam_play slam_play_on
alias slam_play_on "alias slam_play slam_play_off; voice_inputfromfile 1; voice_loopback 1; +voicerecord"
alias slam_play_off "-voicerecord; voice_inputfromfile 0; voice_loopback 0; alias slam_play slam_play_on"
alias slam_updatecfg "host_writeconfig slam_relay"
bind X slam_play
alias 1 "bind = 1; slam_updatecfg; echo Loaded: AメFKDQW"
...
alias 5 "bind = 5; slam_updatecfg; echo Loaded: EメHq.jingdian4"
...
每次放音乐执行过程如下:
exec slam
la
- 选择音乐序号并执行,比如
5
- csgo将配置写入slam_relay.cfg
slam后台死循环读取到slam_relay.cfg,获取到当前想播放5号音乐,然后删除slam_relay.cfg
slam将5号音乐覆盖为voice_input.wav - 你按下x开始播放
SLAM就是通过把你要播放的文件覆盖为voice_input.wav
来实现的。在csgo控制台执行要播放的音乐序号后,会把该序号设法保存到slam_relay.cfg中,slam循环读取该文件,负责将对应的音乐复制为voice_input.wav,然后删除slam_relay.cfg。
如何将序号传递出去呢?
slam读取的是bind = 5
这行,执行5
时,执行了一句bind = 5
,这相当于把=
绑定为5
,这里的=
就是slam设置中的relay_key。