BLUE引擎播放WAV文件 - 游戏音效脚本教程
摘要:播放WAV文件是BLUE引擎里用来播放声音文件的NPC命令,命令本体为PLAYSOUND,后面依次跟文件名、循环参数与播放范围,循环参数填0不循环、填1循环,播放范围可填ALL、GUILD、地图名或留空。本文按官方CHM帮助文档整理命令格式与参数含义,给出在脚本里插入播放命令的实操步骤,并梳理声音不播放的原因与问答。…
之前给NPC配对话配音时踩过一个坑,脚本里的命令一个字都没写错,进游戏却一点动静都没有,来回折腾半天才发现是WAV文件路径和参数位置两处同时写错了。那次之后我把BLUE引擎的播放WAV文件命令从头理了一遍,把容易出错的位置都记了下来。
这篇把命令格式、文件路径与播放次数两个参数、几种常见播放场景和排查思路整理成一份可以对照的资料,WAV音效播放这类需求按这套写法配置,游戏音效脚本里插入播放命令时就不会再卡在路径和参数上。

命令格式:播放WAV的完整写法
官方CHM帮助文档对这一条的功能说明只有一句:播放WAV文件的NPC命令。它属于NPC命令类,要写在#IF与#ACT的触发结构里,单独一行扔在脚本里是不会响的。
#IF
#ACT
PLAYSOUND 文件名 循环(0不循环1循环) 【参数】
PLAYSOUND STOP //停止当前所有播放的声音
命令本体是PLAYSOUND,后面依次跟文件名、循环参数和播放范围。文件名指向客户端目录下的WAV文件,循环位置填0表示不循环播放,填1表示循环播放,最后的播放范围参数决定哪些玩家能听到,这个参数不写就只有执行命令的角色自己听得到。
停止播放用的是PLAYSOUND STOP,它不带文件名,作用是停掉当前所有正在播放的声音,适合用在切换场景或者进入下一段对话之前。
官方给出的完整调用示例如下。
PLAYSOUND .\WAV\LOG-IN-LONG2.WAV 0 ALL 【所有在线的玩家播放客户端下的该音乐LOG-IN-LONG2.WAV】
PLAYSOUND .\WAV\LOG-IN-LONG2.WAV 0 GUILD 【执行该命令的行会玩家,同行会的全部播放,如无行会则不播放】
PLAYSOUND .\WAV\LOG-IN-LONG2.WAV 0 3 【3,则盟重的所有人都播放】
PLAYSOUND .\WAV\LOG-IN-LONG2.WAV 0 【参数为空 //自己播放】
PLAYSOUND .\SOUND\123.WAV 0 //登录器会在传奇目录下建立SOUND目录,可以自己更新一些自定义的声音 需要自己用登录器做自动更新
五条示例的差别集中在最后一个参数:ALL面向所有在线人物,GUILD面向同行会人物,数字3表示地图文件名为3的那张地图内全部人物,留空则只有自己听得到。末条示例里的SOUND目录由登录器在客户端目录下自动建立,放进去的自定义声音还要配合登录器的自动更新一起走,否则玩家那边读不到文件。

参数讲解:文件路径与播放次数
这条命令的参数不多,但两个关键位置都容易写错,一个是文件名,一个是循环位置。下面按参数内容、参数释义和实操用法三列对照。
| 参数内容 | 参数释义 | 实操用法 |
|---|---|---|
| 文件名 | WAV文件在客户端目录下的位置 | 一般写成.\WAV\开头加文件名 |
| 循环 | 0不循环,1循环 | 提示音填0,环境音才填1 |
| ALL | 所有在线人物播放 | 全服公告、行会召集提醒 |
| GUILD | 执行命令者的同行会人物,如无行会则不播放 | 行会活动、集结类提示 |
| 地图名字 | 使用地图文件名,如:3,则盟重的所有人都播放 | 单张地图内的广播提示 |
| 参数为空 | 自己播放 | 单人任务、私密提醒 |
循环参数填0时声音播放一次就结束,填1时会在客户端持续循环,做长时间的环境音才需要填1,普通提示音一律填0。填了1就要记得配一条停止命令,不然声音会一直响下去。
播放范围决定命令的作用人群,ALL和地图名都带广播性质,GUILD只影响同行会成员而且没有行会时不会播放,留空是最小范围。范围越大,同一时间产生的客户端播放请求越多,配置时按实际场景取舍。
文件名建议统一用相对路径写法,官方示例用的就是.\WAV\开头。相对路径相对的是客户端目录,写成固定的盘符绝对路径在换机器或者换客户端目录后很容易失效。
播放场景:NPC对话与系统提示
NPC对话是最常见的用法。在对话脚本的#ACT段里插入播放命令,玩家点开对话的同时声音响起来,配合关闭对话前的一条停止命令,整体听感会比较干净。
系统提示类的音效播放配置更简单,把播放命令挂在公告、活动开启或者界面切换的触发段里就行。脚本触发的时机不同,听到声音的节点也不一样,挂在点开对话的段里就是点击即响,挂在登录段里就是进游戏即响。
行会与全服提示适合用ALL或者GUILD参数,行会召集、攻城提醒这类场景一条命令就能让对应范围的人群同时听到提示音。地图名参数则适合做单张地图内的广播,比如某张地图进入倒计时的提示。
技能触发段里同样可以调用这条脚本命令,命中时给一声短音效,操作反馈会比纯文字提示更直接。QFunction-0里也能放播放命令,配合物品触发、技能触发这些现成的触发段,不用额外改脚本结构就能把提示音接上去。
音效只影响客户端的听觉反馈,不参与任何数值判断,脚本逻辑里该写的条件检查一条都不能省。

实操步骤:在脚本里插入播放命令
第一步,打开Mir200目录下Envir文件夹里的NPC脚本文件,定位到要加配音的对话段,把播放命令写进#ACT结构里,命令本体紧跟在触发头之后。
第二步,把要用的WAV文件放进客户端目录下的WAV文件夹,文件名与命令里写的一致,音频本身要能被客户端正常识别,损坏或者格式不对的文件同样不会出声。
第三步,按实际人群选择播放范围参数,只有自己听的留空,整个行会听写GUILD,全服听写ALL,单张地图听写地图文件名。
第四步,保存脚本文件,重载登录脚本或者对应的NPC脚本让改动生效,进游戏点开对话验证声音是否正常播放。
故障速查:声音不播放的排查
报错排查:命令写了却没有一点声音?
先确认文件名和路径对不对,WAV文件必须真的存在于客户端目录对应位置,文件名连扩展名都要对上。再确认命令有没有写在#ACT段里,写进#SAY或者#IF段里是不会执行的。还要看这个WAV的采样格式客户端能不能解,用系统播放器能放不代表游戏客户端能放。
报错排查:只有自己听得到,别人听不到?
这是播放范围参数被漏写或者写错导致的。参数位留空就是自己播放,要让行会成员听到得填GUILD,要让全服听到得填ALL,要指定地图得填地图文件名。另外GUILD在角色没有行会时不会播放,测试时用一个有行会的角色再看效果。
报错排查:声音停不下来或者重复播放?
检查循环参数是不是填了1。填1表示循环播放,没有配套的停止命令就会一直响。在对话结束或者切换场景的位置补一条PLAYSOUND STOP,把当前所有正在播放的声音停掉,再重新播放新音效。
热点问答
1. 播放WAV文件命令写在哪些脚本里能生效?
这条命令属于NPC命令,要写在带#IF与#ACT结构的脚本段里才会触发,NPC对话脚本、QFunction-0里的功能触发段、行会相关脚本都能调用它。它读取的是客户端目录下的WAV文件,脚本放在哪个文件里不影响播放效果,关键是把命令写进#ACT段并且脚本已经被引擎加载进去。
2. 传奇机器人脚本为什么不运行啊(AutoRunRobot.txt)?
机器人脚本不运行,先到MirServer目录下Mir200\Envir里确认AutoRunRobot.txt和Robot.txt的内容格式,系统控制段通常写成带===分隔标记的写法,格式写乱会导致整段不被解析;再看机器人脚本有没有被开启。音效类命令写在没有被加载的机器人脚本段里,同样不会有任何反应。(本条问题整理自百度知道真实提问:传奇机器人脚本为什么不运行啊(AutoRunRobot.txt),2016年11月)
3. WAV文件路径该怎么写才不出错?
官方示例用的是.\WAV\LOG-IN-LONG2.WAV这种相对路径写法,相对的是客户端目录。写路径时文件名和扩展名都要和实际文件完全一致,WAV文件放进客户端目录下的WAV文件夹;换成相对路径后,换机器或者换客户端目录都不用重写,写成固定盘符的绝对路径反而容易失效。
4. PLAYSOUND后面的循环参数0和1有什么区别?
循环参数填0表示声音只播放一次,播完就停;填1表示循环播放,会在客户端持续重复,直到执行PLAYSOUND STOP或者玩家离开场景。短提示音、点击反馈音一律用0,只有做长时间环境音才考虑用1,用1时一定要在旁边配一条停止命令,否则声音会一直响。
5. 传奇引擎启动程序有哪些报错及解决方法?
启动报错先看Mud2目录下DBsrv200里的serverinfo.txt和Gate_Server\RunGate下的Config.ini两处配置,确认数据库路径与网关配置正确,再按顺序重新打开网关。音效不播放通常不是启动报错引起的,但引擎没有正常起来的时候,包括播放命令在内的所有脚本命令都不会执行。(本条问题整理自百度知道真实提问:传奇引擎启动程序有哪些报错及解决方法,2026年1月)
6. 传奇服务端脚本改了,游戏里面没变化?
先确认设置的NPC在游戏里能不能找到、脚本开头的段名写法是否正确,启动引擎时留意有没有脚本错误提示行。登录脚本QManage改动后用重载命令生效,不需要重启;如果播放命令写在登录段里,重载之后要重新进一次游戏,让登录段重新执行一遍。(本条问题整理自百度知道真实提问:传奇服务端脚本改了,游戏里面没变化,2022年11月18日)
7. 播放WAV文件和普通音效命令有什么区别?
这条命令面向客户端目录下的WAV文件,音频要自己准备并放进对应文件夹,控制粒度也更细,可以按ALL、GUILD、地图名或者留空指定播放范围;引擎内置的普通音效类命令多数是播放客户端已经打包好的固定音效编号,不需要另外准备音频文件。想做自己的提示音就用前者,想省事直接用内置音效就用后者。
小结
播放WAV文件是BLUE引擎里给NPC命令加声音反馈的一条实用命令,本体就是PLAYSOUND,后面依次跟文件名、循环参数和播放范围,参数位留空是自己听,填ALL、GUILD或者地图名可以放大到对应人群。配置时把文件名放对位置、循环参数按需填0或1,再配上一条停止命令,声音不播放或者停不下来这类问题基本都能避开。
本文BLUE引擎播放WAV文件的内容以官方CHM帮助文档为准整理,仅作本地单机调试参考,线上环境请自行验证兼容性后再部署。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。













