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

传奇人物名称七彩变色下线丢失修复教程含CHANGENAMECOLOR登录重染持久化与定时器配置

热度:
自动七彩下线消失,根因只有两类:颜色只在在线期间用CHANGENAMECOLOR改了内存状态,没有在登录触发里重染;或者七彩状态用临时变量、私变量记录,下线被清空,再次上线没有读取持久标记重新启动循环。按下面分引擎处理,GOM/GEE、Hero、Blue/Leg命令名会有差异,以本版命令帮助为准。

一、先确认变色命令与颜色值

人物名字颜色通用命令多为CHANGENAMECOLOR颜色代码,代码范围按引擎不同可为0-255或特定映射。常用参照:255/部分版本默认白,249红,250绿,251黄,252蓝,253紫,254青,0部分引擎代表取消/黑,具体看M2文字颜色表。GOM部分版本另有SETNAMECOLOR,可带时长参数,例如SETNAMECOLOR25265535表示设蓝色并持续;是否带时长、时长单位以命令帮助为准。Hero可用CHANGENAMECOLOR0-255,循环七彩配合DELAY和GOTO,也可在Config.ini写HumNameColor、WarriorNameColor、MageNameColor、TaoistNameColor做全局或职业固定色。

二、只做“在线七彩”为什么会丢

典型错误脚本只在NPC或命令里写:

ACT

CHANGENAMECOLOR249
DELAY1000
CHANGENAMECOLOR250
DELAY1000
CHANGENAMECOLOR251
GOTO@循环

这段在线能变,但角色小退再上,M2重新加载角色基础属性,名字颜色回到数据库/配置/称号系统默认值。若没有登录脚本再次执行,七彩就不会恢复。用NAMECOLOR1开启自动变色也一样,部分老端只控制在线会话,下线不写回。

三、持久化方案:登录重染+持久标记

1.用HUMAN变量存七彩开关

QManage.txt登录段写:

[@Login]
IF

CHECKHUMAN七彩开关1
ACT

GOTO@七彩启动
ELSEACT

IF

CHECKLEVELEX>1
ACT

GOTO@七彩启动

七彩启动标签写循环染色。HUMAN变量随角色存档,小退、重启M2都不丢;d0/m0类临时变量不要存开关,下线必清。

2.按条件自动给七彩

充值、转生、VIP、沙城城主分别判断,登录直接染:

[@Login]
IF

CHECKHUMANVIP七彩1
ACT

GOTO@七彩VIP
IF

CHECKHUMAN转生七彩1
ACT

GOTO@七彩转生
IF

ISHOLDGWINNER
ACT

CHANGENAMECOLOR251
GOTO@七彩城主

各标签内部用CHANGENAMECOLOR循环。这样不管什么时候下线,再次登录按HUMAN标记重跑,不会变回白名。

3.Hero写配置表固定色

不要求流动七彩、只要求固定身份色,改Mir200\Envir\Config.ini:

HumNameColor=2
WarriorNameColor=4
MageNameColor=5
TaoistNameColor=2

保存重启,全服或按职业固定。此方案最不容易“下线消失”,但做不到彩虹渐变。

四、QFunction在线循环七彩

需要在线持续变换,放Market_Def\QFunction-0.txt:

[@七彩开始]
ACT

CHANGENAMECOLOR249
DELAY800
CHANGENAMECOLOR250
DELAY800
CHANGENAMECOLOR251
DELAY800
CHANGENAMECOLOR252
DELAY800
CHANGENAMECOLOR253
DELAY800
GOTO@七彩开始

[@七彩停止]
ACT

CHANGENAMECOLOR255

NPC或命令触发@七彩开始即开,触发@七彩停止恢复默认。注意循环标签不要和机器人、OnTimer抢同一编号;纯GOTO循环在人数多时占脚本线程,百人以上建议改定时器。

五、定时器做七彩更稳、下线不丢

1.开定时器

NPC开启:

[@开启七彩]
IF

ACT

SETONtimer71
SAVEHUMAN七彩开关1
SENDMSG0已开启七彩名

QManage或QFunction写:

[@Ontimer7]
IF

CHECKISONLINE
ACT

INCN11
LARGEN15
ACT

MOVN10
IF

EQUALN11
ACT

CHANGENAMECOLOR249
IF

EQUALN12
ACT

CHANGENAMECOLOR250
IF

EQUALN13
ACT

CHANGENAMECOLOR251
IF

EQUALN14
ACT

CHANGENAMECOLOR252
IF

EQUALN15
ACT

CHANGENAMECOLOR253

每秒走一色,N1循环1-5。SetOnTimer编号按本版可用编号选,别和泡点、回城扣费定时器重复。

2.下线处理

QFunction下线标签或QManage登出标签写:

[@Logout]
IF

CHECKHUMAN七彩开关1
ACT

SETOFFtimer7

玩家下线关定时器,避免空跑;再次登录由[@Login]读七彩开关重新SETONtimer71,颜色自动续上。只关定时器不重开,会出现“上次在线七彩、再上不变”的错觉,必须登录重开。

六、称号+七彩一起做,避免互相覆盖

很多七彩消失是因为称号系统登录重置名字色。GOM用SETRANKLEVELNAME给称号,用CHANGENAMECOLOR给色,二者分开:

[@Login]
IF

CHECKHUMANVIP七彩1
ACT

SETRANKLEVELNAME七彩贵族
CHANGENAMECOLOR249
SETONtimer71

限时称号到期要清色,用变量记到期时间戳,机器人或OnTimer检测:

IF

CHECKHUMAN七彩到期1
SMALL当前时间变量七彩到期变量
ACT

SETRANKLEVELNAME
CHANGENAMECOLOR255
SETOFFtimer71
SAVEHUMAN七彩开关0

SETRANKLEVELNAME无参数清称号,CHANGENAMECOLOR255恢复默认;若本版默认不是255,按M2文字颜色表换值。

七、行会、沙城、GM固定色

行会全体变色用GuildMemberNameColor,Hero/翎风支持较好:

IF

ISGUILDMASTER
ACT

GuildMemberNameColor253

GOM不支持就遍历行会成员逐个CHANGENAMECOLOR,或改用SETNAMECOLOR。沙城城主登录:

IF

ISHOLDGWINNER
ACT

CHANGENAMECOLOR251
SETONtimer71

GM管理员若在M2“文字颜色/管理员名单”设了固定色,脚本七彩会被覆盖;需要七彩就不在M2管理员属性里锁颜色,只在脚本控制。

八、按引擎替换命令清单

GOM/GEE:CHANGENAMECOLOR0-255;SETNAMECOLOR可选带时长;SETRANKLEVELNAME管称号;定时器SetOnTimer/Ontimer或机器人AutoRun;登录QManage[@Login]、触发QFunction-0。

Hero:CHANGENAMECOLOR0-255;循环用DELAY+GOTO;全局固定色写Config.ini的HumNameColor及职业名色;HUMAN变量用SAVEHUMAN/CHECKHUMAN类命令持久化;定时器可用SetScTimer或引擎OnTimer,按本版文档替换。

Blue/Leg:CHANGENAMECOLOR若支持直接用;不支持就查命令表用NAMECOLOR或改名特效接口。NAMECOLOR1/0只做开关的版本,必须配合登录重执行,否则下线丢。

3K/老合击:行会批量色优先GuildMemberNameColor,不支持就用CHANGENAMECOLOR逐人;七彩循环改机器人按秒调用,不用长GOTO防止卡脚本。

九、排查顺序

1.小退后全服所有人白名:说明没写登录重染。QManage[@Login]加七彩分支,或M2全局文字颜色、Config.ini设固定色。

2.部分人有色部分人无色:检查HUMAN开关是否只给NPC点击者设置,充值/转生脚本是否漏写SAVEHUMAN;用GM查变量命令读“七彩开关”确认。

3.在线变、下线再上只变一次不循环:登录只执行了单次CHANGENAMECOLOR,没有SETONtimer或没有GOTO循环;补定时器或补循环标签。

4.七彩和称号颜色打架:SETRANKLEVELNAME后未CHANGENAMECOLOR,或称号系统登录强制默认色;把染色放在SETRANKLEVELNAME之后执行。

5.定时器不跳色:Ontimer编号被别的脚本占用,N1变量未初始化,DELAY与Ontimer重复控制;统一用一种方式,别GOTO和Ontimer同时改同一人颜色。

6.命令执行无效果:颜色代码超出本版范围,或M2功能设置限制了玩家改名色;先用CHANGENAMECOLOR249在GM命令框测试,再写脚本。

7.重启M2后丢失:纯脚本在线变量未存盘。所有“永久七彩”必须HUMAN/配置文件落盘,登录重染;纯内存变量、私变量、机器人局部变量都不算持久。

十、推荐生产配置

普通七彩服:NPC开通写SAVEHUMAN七彩开关1;QManage[@Login]读开关,满足则SETRANKLEVELNAME给称号、SETONtimer71启动五色循环;QFunction[@Ontimer7]按N1切换249/250/251/252/253;[@Logout]关7号定时器;取消NPC写SAVEHUMAN七彩开关0并执行CHANGENAMECOLOR255。充值/VIP额外再写VIP七彩开关,转生服写转生七彩开关,沙城城主不受开关限制强制进城主七彩标签。这样无论小退、关服、掉线重连,只要HUMAN标记在,登录自动恢复七彩,不会出白名。
[顶部]