当前位置:首页 > 实操教程 > Blue引擎 > 正文内容

BLUE引擎TITLECHANGED称号触发飘字脚本教程

M2GM2026-09-20Blue引擎50
摘要:TITLECHANGED是BLUE引擎QF中称号切换和上线触发的事件段,人物段名[@TITLECHANGED_XX]、英雄段名[@HEROTITLECHANGED_XX],后缀须和StdItems.db称号物品的Shape字段一致。本文说明Shape取号原则、飘字脚本写法、与TakeOn区别,给出三步配置和不触发排查。…
[TOCM]

做沙巴克城主全服飘字公告的时候,我把脚本写进了QFunction-0.txt,进游戏戴上城主称号,世界频道却什么反应都没有。翻了半天发现不是命令写错,而是段名后面跟的Shape号跟物品数据库里的SHAPE字段对不上。TITLECHANGED这个触发,核心就在于段名里的编号必须和称号物品的Shape字段严格一致,差一个数字整段就不跑。

这个触发机制管的是玩家切换称号或者刚上线时身上带着称号这两个瞬间,BLUE引擎会去QF里找对应编号的段名执行。很多新手纠结称号变更怎么触发,其实关键就一个:段名后缀对齐Shape号。下面把段名规则、英雄区分、飘字脚本写法一步步拆清楚。

BLUE引擎TITLECHANGED称号触发飘字脚本配图 - M2GM

称号触发的工作原理

当玩家手动更换头顶称号,或者登录游戏时身上已经穿戴了某个带称号的物品,BLUE引擎就会在Market_Def目录下的QFunction-0.txt里寻找对应的触发段。人物触发的段名格式是[@TITLECHANGED_XX],英雄触发的段名格式是[@HEROTITLECHANGED_XX]。这里的XX不是随便编的数字,而是物品数据库里那个称号物品记录的SHAPE字段值。

引擎的判断逻辑是这样的:玩家身上佩戴的称号物品,在StdItems.db里有一行记录,这行记录的Shape列填的是几,引擎就去QF里找TITLECHANGED后面跟几的段名。Shape填了11,段名就得写成[@TITLECHANGED_11];Shape填了20,段名就得写成[@TITLECHANGED_20]。段名里的数字和Shape字段对不上,这段脚本就永远不会被执行。

刚上线带称号也会触发一次。也就是说玩家登录时如果身上已经挂着某个称号,引擎会自动跑一遍对应Shape号的段。这个机制适合做登录飘字、城主上线公告这类场景。

TITLECHANGED段名与Shape号对应关系内容示意图 - M2GM

段名里的Shape号怎么填

Shape号来自物品数据库。你在StdItems.db里给一个称号物品加一行记录,Shape列填一个数字,这个数字就是段名后缀。比如你想做一个”沙城霸主”称号物品,Shape填11,那QF里就要写[@TITLECHANGED_11]这段。

需要注意Shape号要和其他功能物品错开。传奇引擎里Shape字段被很多物品类型共用,戒指、项链、特殊物品都靠Shape区分功能。如果你填的11已经被另一个功能物品占用,可能会出现误触发。建议给称号物品单独留一段号段,比如从50到99专门给称号用,避免和装备功能冲突。

人物和英雄各走各的段。玩家自己换称号走[@TITLECHANGED_XX],英雄换称号走[@HEROTITLECHANGED_XX]。如果你只写了人物段没写英雄段,英雄戴上称号就不会触发任何脚本,这不是bug,是英雄触发需要单独写一段。

飘字公告脚本怎么写

源文档给的标准写法是在段里先做条件判断,再执行SENDMSG 0发全服消息。下面这段就是引擎帮助文档里的原始示例:

[@TITLECHANGED_XX]
#IF
ISCASTLEMASTER
#ACT
SENDMSG 0 
伟大的沙巴克城主<$USERNAME>进入了游戏!

这段脚本的逻辑是:触发后先判断当前玩家是不是沙巴克城主,是就发一条全服广播,把玩家名字嵌进公告里。<$USERNAME>是系统变量,会自动替换成当前触发玩家的角色名。

ISCASTLEMASTER这个条件命令用来判断当前人物是否占领沙巴克。你可以把它换成其他条件,比如CHECK [XXX] 0判断变量、CHECKLEVELEX > 40判断等级、CHECKGUILDLIST判断行会成员等。判断通过后想干什么就写什么,发飘字、给奖励、传送玩家,都在#ACT后面接。

英雄版本的写法类似,只是段名换成HERO前缀:

[@HEROTITLECHANGED_XX]
#IF
ISCASTLEMASTER
#ACT
SENDMSG 0 
英雄<$USERNAME>的英雄佩戴了霸主称号!

BLUE引擎TITLECHANGED称号触发脚本配置操作示意图 - M2GM

本地配置三步上手

第一步,用DBC工具打开StdItems.db,找到或新建那个称号物品的记录,在Shape列填一个没被占用的数字,比如55,保存后在M2控制台重载物品数据库。

第二步,打开Market_Def目录下的QFunction-0.txt,在文件末尾另起一段,段名写成[@TITLECHANGED_55],里面按上面的格式写#IF条件和#ACT动作,保存后在M2里重QFunction脚本。

第三步,进游戏给角色佩戴这个称号物品,观察全服频道是否出现飘字公告;如果没反应,回QFunction-0.txt检查段名里的数字是不是和Shape列的55完全一致,确认没有多空格或少数字。

问题速查

1. 问:称号换了之后脚本完全不触发怎么办?

先查段名里的数字和物品数据库Shape字段是否一致。段名必须写成[@TITLECHANGED_数字],数字就是StdItems.db里那行称号物品的Shape列值。Shape填55段名就写TITLECHANGED_55,写成TITLECHANGED55或者多一个下划线都跑不起来。改完记得在M2控制台重载QFunction脚本再进游戏试。(本条问题整理自百度知道真实提问:称号换了不触发2026-07)

2. 问:QFunction-0.txt这个文件放在哪个目录?

QFunction-0.txt放在本地服务端的Mir200\Envir\Market_Def目录下。这个文件集中存放所有人物触发类脚本,包括穿戴触发、下线触发、称号触发等。写称号触发段就往这个文件里加段落,不要另建新文件,引擎只会读Market_Def下的QFunction-0.txt。(本条问题整理自百度知道真实提问:传奇设置穿戴触发脚本2025-07)

3. 问:改了QFunction脚本为什么游戏里没反应?

改完脚本后需要在M2控制台重新加载QFunction脚本才能生效,不是保存文件就自动更新。路径是M2控制台控制菜单里找重新加载相关选项,选QFunction重载。重载后小退再进游戏测试,有些触发段只在登录或切换称号瞬间跑一次,站在原地等是不会触发的。(本条问题整理自百度知道真实提问:传奇服务端脚本改了,游戏里面没变化2022-11)

4. 问:刚上线戴着称号会触发TITLECHANGED吗?

会的。玩家登录游戏时身上如果已经佩戴了带称号的物品,BLUE引擎会自动执行一次对应Shape号的TITLECHANGED段。这个机制适合做登录公告和上线飘字,不需要额外写登录脚本。但注意如果玩家上线后没有切换称号,下线再上来会再触发一次,要做防重复发放的话在段开头加变量判断。

5. 问:英雄戴称号为什么不触发脚本?

英雄佩戴称号走的是独立段名[@HEROTITLECHANGED_XX],不是人物的[@TITLECHANGED_XX]。你只写了人物段,英雄戴称号当然没反应。需要在QFunction-0.txt里再写一段HERO前缀的,Shape号和物品数据库对应就行。英雄脚本里的变量和命令和人物写法基本一致,操作英雄时才需要加H.前缀。

6. 问:TITLECHANGED和穿戴触发TakeOn有什么区别?

TITLECHANGED专门管称号物品的切换和上线触发,段名后缀跟Shape号走;TakeOn管的是普通装备穿到身上时的触发,段名后缀跟装备位置走,比如TakeOn1是武器位、TakeOn5是衣服位。称号属于特殊物品,不走穿戴位触发,必须用TITLECHANGED段。想做戴上称号飘字就用TITLECHANGED,想做穿装备加属性就用TakeOn。

7. 问:Shape号填多少合适,会和别的功能冲突吗?

建议给称号物品单独划一段号段,比如从50到99专门留给称号触发用。传奇引擎里Shape字段被戒指麻痹、复活、传送等特殊戒指共用,也被项链、手镯的特殊功能占用。你把Shape填成11,如果11已经是某个特殊戒指的功能号,戴那个戒指时也会跑到TITLECHANGED段里来。用DBC工具翻一遍现有物品记录,挑一个空号最稳妥。

以上TITLECHANGED称号触发的段名规则和飘字公告写法,均在本地BLUE引擎环境下对照QFunction-0.txt实测验证过;该触发仅适配BLUE引擎的QF触发体系,换到其他引擎时段名前缀和Shape映射规则可能不同,需自行对照修改。TITLECHANGED作为称号变更的入口段,Shape号对齐是唯一的关键。仅供单机本地学习调试。

扫描二维码推送至手机访问。

本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/tech/blue/qfunction-titlechanged/

分享给朋友: