GO服务端时装系统采用“DB物品定义+M2引擎槽位识别+NPC脚本控制+客户端补丁渲染”的四层协同结构,核心由位置代码(17-28)、StdMode(66-89)、ShowFashion开关与QF触发标签共同驱动。下面按实际配置顺序拆开讲。
一、装备位置代码与StdMode对照关系
客户端与服务端约定时装占用12个独立槽位,位置代码必须从17起连续分配,跳号会导致角色裸模或渲染异常:
•17时装衣服→StdMode66(男)/67(女)
-18时装武器→StdMode68/69
•19时装项链→StdMode75/76/77
•20时装头盔→StdMode78
•21时装左手镯/22时装右手镯→StdMode79/80
-23时装左戒指/24时装右戒指→StdMode81/82
•25时装勋章→StdMode83
•26时装腰带→StdMode84/85
•27时装鞋子→StdMode86/87
-28时装宝石→StdMode88/89
DB字段中Shape填写对应位置代码(衣服填17、武器填18),Looks填写客户端外观特效编号,AC/DC/MC/SC/MAC/DuraMax等沿用普通装备写法即可。
二、!Setup.txt与前缀声明
在Mir200\!Setup.txt的[Setup]段加入:
FashionPreFix=[时装]
物品名称带此前缀后,引擎才将其纳入时装逻辑处理;同时进入M2→选项→客户端设置→内控制(二),确认“隐藏时装”未勾选,否则角色面板不显示时装页签。
三、NPC对话框命令控制外显开关
核心命令为ShowFashion,在Merchant脚本里直接调用:
[@main]
开启时装外显<开启/@OpenFashion>
关闭时装外显<关闭/@CloseFashion>
[@OpenFashion]
ACT
ShowFashion1
SENDMSG6时装外显已开启
[@CloseFashion]
ACT
ShowFashion0
SENDMSG6时装外显已关闭
ShowFashion1=对其他玩家显示身上已穿戴时装模型;0=仅保留属性,不渲染外观。该状态写入角色运行期变量,重登不变,直到再次执行命令。
四、QF触发标签链路(QFunction-0.txt/QF脚本)
穿戴/脱下以及外显勾选变化都会回调固定标签,可在此挂属性、公告、特效、任务进度:
人物穿戴时装衣服:[@TakeOn17]
人物脱下时装衣服:[@TakeOff17]
人物穿戴时装武器:[@TakeOn18]
人物脱下时装武器:[@TakeOff18]
(其余槽位以此类推TakeOn19/TakeOff19…TakeOn28/TakeOff28)
勾选外显触发:[@ShowFashion]
取消外显触发:[@NotShowFashion]
英雄勾选外显:[@HeroShowFashion]
英雄取消外显:[@HeroNotShowFashion]
示例——穿戴时装武器附加攻速并广播:
[@TakeOn18]
IF
ACT
ChangeMode181
SENDMSG0玩家<$USERNAME>唤醒时装武器形态
BREAK
[@NotShowFashion]
IF
ACT
SENDMSG6你已隐藏时装外形,属性依然生效
注意:属性类加成建议在TakeOn里INC/MOV,在TakeOff或NotShow分支做回收,避免重复叠加。
五、脚本内物品位置判定
校验玩家是否穿戴某部位时装可用:
CHECKITEMTYPE物品位置物品类型
例:CHECKITEMTYPE1766(检测是否穿男时装衣服)
配合CHECKITEMW检测身上装备、CheckEquipSlot检测槽位,用来做套装集齐判定、外观切换条件等。
六、客户端补丁与UI绑定
外观素材走NewopUI.pak与对应Wil/Wix资源:
•1590~1591主角13周年界面时装背景
•1592~1593英雄13周年界面时装背景
•1594~1595连击界面时装背景
•1596~1597连击界面英雄时装背景
•1598~1599归来界面时装背景
替换这些索引即改面板底图,UI编辑器动不了,必须进Pak替换。角色本体模型由Looks编号指向Wil内帧序列,Weapon/Body补丁需保证索引连续。
七、常见落地故障排查
1.面板看不到时装页签→M2内控制(二)“隐藏时装”被勾选,或!Setup.txt缺FashionPreFix。
2.穿上不显示模型→Shape没填位置代码、Looks对应Wil缺帧、StdMode写错性别段。
3.位置跳号(如25直接跳30)→客户端槽位映射断裂,必须17-28连续。
4.ShowFashion无效→NPC脚本未重载、命令拼错大小写、角色变量被其他脚本强制写回。
5.脱下后属性残留→TakeOff分支未做变量归零或ChangeMode回收。
整套链路串起来就是:DB定物品(StdMode+Shape+Looks)→M2识别槽位→玩家穿戴触发TakeOn→NPC用ShowFashion切外显→QF里挂属性与广播→客户端按Looks拉NewopUI.pak/Wil渲染。改动任一层都要同步校验另外三层,否则就会出现有属性无模型、有模型不切显、面板不出页签这三类中频毛病。
一、装备位置代码与StdMode对照关系
客户端与服务端约定时装占用12个独立槽位,位置代码必须从17起连续分配,跳号会导致角色裸模或渲染异常:
•17时装衣服→StdMode66(男)/67(女)
-18时装武器→StdMode68/69
•19时装项链→StdMode75/76/77
•20时装头盔→StdMode78
•21时装左手镯/22时装右手镯→StdMode79/80
-23时装左戒指/24时装右戒指→StdMode81/82
•25时装勋章→StdMode83
•26时装腰带→StdMode84/85
•27时装鞋子→StdMode86/87
-28时装宝石→StdMode88/89
DB字段中Shape填写对应位置代码(衣服填17、武器填18),Looks填写客户端外观特效编号,AC/DC/MC/SC/MAC/DuraMax等沿用普通装备写法即可。
二、!Setup.txt与前缀声明
在Mir200\!Setup.txt的[Setup]段加入:
FashionPreFix=[时装]
物品名称带此前缀后,引擎才将其纳入时装逻辑处理;同时进入M2→选项→客户端设置→内控制(二),确认“隐藏时装”未勾选,否则角色面板不显示时装页签。
三、NPC对话框命令控制外显开关
核心命令为ShowFashion,在Merchant脚本里直接调用:
[@main]
开启时装外显<开启/@OpenFashion>
关闭时装外显<关闭/@CloseFashion>
[@OpenFashion]
ACT
ShowFashion1
SENDMSG6时装外显已开启
[@CloseFashion]
ACT
ShowFashion0
SENDMSG6时装外显已关闭
ShowFashion1=对其他玩家显示身上已穿戴时装模型;0=仅保留属性,不渲染外观。该状态写入角色运行期变量,重登不变,直到再次执行命令。
四、QF触发标签链路(QFunction-0.txt/QF脚本)
穿戴/脱下以及外显勾选变化都会回调固定标签,可在此挂属性、公告、特效、任务进度:
人物穿戴时装衣服:[@TakeOn17]
人物脱下时装衣服:[@TakeOff17]
人物穿戴时装武器:[@TakeOn18]
人物脱下时装武器:[@TakeOff18]
(其余槽位以此类推TakeOn19/TakeOff19…TakeOn28/TakeOff28)
勾选外显触发:[@ShowFashion]
取消外显触发:[@NotShowFashion]
英雄勾选外显:[@HeroShowFashion]
英雄取消外显:[@HeroNotShowFashion]
示例——穿戴时装武器附加攻速并广播:
[@TakeOn18]
IF
ACT
ChangeMode181
SENDMSG0玩家<$USERNAME>唤醒时装武器形态
BREAK
[@NotShowFashion]
IF
ACT
SENDMSG6你已隐藏时装外形,属性依然生效
注意:属性类加成建议在TakeOn里INC/MOV,在TakeOff或NotShow分支做回收,避免重复叠加。
五、脚本内物品位置判定
校验玩家是否穿戴某部位时装可用:
CHECKITEMTYPE物品位置物品类型
例:CHECKITEMTYPE1766(检测是否穿男时装衣服)
配合CHECKITEMW检测身上装备、CheckEquipSlot检测槽位,用来做套装集齐判定、外观切换条件等。
六、客户端补丁与UI绑定
外观素材走NewopUI.pak与对应Wil/Wix资源:
•1590~1591主角13周年界面时装背景
•1592~1593英雄13周年界面时装背景
•1594~1595连击界面时装背景
•1596~1597连击界面英雄时装背景
•1598~1599归来界面时装背景
替换这些索引即改面板底图,UI编辑器动不了,必须进Pak替换。角色本体模型由Looks编号指向Wil内帧序列,Weapon/Body补丁需保证索引连续。
七、常见落地故障排查
1.面板看不到时装页签→M2内控制(二)“隐藏时装”被勾选,或!Setup.txt缺FashionPreFix。
2.穿上不显示模型→Shape没填位置代码、Looks对应Wil缺帧、StdMode写错性别段。
3.位置跳号(如25直接跳30)→客户端槽位映射断裂,必须17-28连续。
4.ShowFashion无效→NPC脚本未重载、命令拼错大小写、角色变量被其他脚本强制写回。
5.脱下后属性残留→TakeOff分支未做变量归零或ChangeMode回收。
整套链路串起来就是:DB定物品(StdMode+Shape+Looks)→M2识别槽位→玩家穿戴触发TakeOn→NPC用ShowFashion切外显→QF里挂属性与广播→客户端按Looks拉NewopUI.pak/Wil渲染。改动任一层都要同步校验另外三层,否则就会出现有属性无模型、有模型不切显、面板不出页签这三类中频毛病。

