当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇点歌系统@接受歌曲与@关闭音乐脚本命令

热度:
一、命令本质与文件路径

@接受歌曲和@关闭音乐并非引擎内置的固定指令,而是由GM在QFunction-0.txt(QuestDiary功能脚本)中自定义的触发标签。当玩家在聊天框输入对应文字时,引擎会跳转到该标签执行预设的播放或停止动作。脚本文件位于服务端Mir200\Envir\Market_Def\QFunction-0.txt。

二、GOM引擎标准脚本写法

针对目前主流的GOM引擎,以下是完整的点歌与关闭逻辑脚本,直接复制到QFunction-0.txt即可。

1.@接受歌曲脚本(播放音乐)
[@接受歌曲]
#IF
#ACT
PlayMP30
SendMsg5音乐播放成功!输入“@关闭音乐”可停止。
Break

参数说明:PlayMP30中的数字0代表播放次数,0为循环播放。若需播放指定文件,可改为PlayMP3歌曲名.mp3(文件需放在客户端Music目录)。

2.@关闭音乐脚本(停止播放)
[@关闭音乐]
#IF
#ACT
StopPlayMP3
SendMsg5音乐已关闭。
Break

命令说明:StopPlayMP3是GOM引擎专用的停止背景音乐命令,与PlayMP3配套使用。

三、Hero引擎(老版本)兼容写法

若服务端使用老版Hero引擎,播放命令不同,需使用PLAYSOUND。
[@接受歌曲]
#IF
#ACT
PLAYSOUND10
SendMsg5开始播放音乐。
Break

[@关闭音乐]
#IF
#ACT
PLAYSOUND00
SendMsg5音乐已静音。
Break

参数差异:PLAYSOUND10中第一个参数1=播放,0=停止;第二个参数0=仅自己听见,1=全服听见(慎用)。

四、点歌触发与变量传递逻辑

你提到的“给某人点歌需对方接受”,核心在于变量传递。点歌方脚本需将歌曲信息存入变量,对方接受时读取变量播放。

点歌NPC脚本示例(节选):
[@点歌]
#IF
CheckVarHUMAN点歌状态=0;检测对方是否已有待接受歌曲
#ACT
SetVarHUMAN点歌歌曲=1;1代表歌曲ID,可自定义
SetVarHUMAN点歌状态=1;标记为“有待接受”
SendMsg6点歌请求已发送,等待对方接受。
Break

接受脚本联动:
[@接受歌曲]
#IF
CheckVarHUMAN点歌状态=1
CheckVarHUMAN点歌歌曲=1
#ACT
PlayMP30;播放对应歌曲
SetVarHUMAN点歌状态=0;重置状态
Break


五、常见问题排查

•输入命令无反应:检查QFunction-0.txt中标签名是否与玩家输入完全一致(如“@接受歌曲”不能写成“@接受音乐”)。

-播放失败:确认客户端Music文件夹内有对应的MP3文件,且脚本中文件名大小写匹配。
-变量不传递:点歌方和目标玩家的变量名(如“点歌状态”)必须完全一致,建议使用全局变量或文件存储。

修改脚本后,必须在M2Server控制台点击“重新加载-功能脚本(QF)”使配置生效。
[顶部]