3C引擎头顶花翎通常用SetIcon给人物挂Icon.wil里的连续图片,支持0到4共五个位置,命令格式写成:
SetIcon 位置 起始图号 图片数量 X Y
位置0代表第一层花翎,1到4往上叠。起始图号填Icon.wil里的图片编号,图片数量填连续播放几张,X正数向右、负数向左,Y正数向下、负数向上。示例:
SetIcon 0 210 8 -6 -85
意思是0号位置调用Icon.wil第210张开始共8张图,X偏移-6、Y偏移-85。花翎偏左就把X调大,偏右调小;整体太高把Y绝对值改小,太低把Y绝对值改大。
人物佩戴触发脚本
花翎按物品戴头触发,最简单在QuestDiary里建花翎目录,例如Envir\QuestDiary\花翎系统\佩戴.txt,NPC用[@main]做菜单,点领取或检测背包物品后SetIcon。
[@main]
\ \
花翎系统\
佩戴不同花翎显示头顶图标\
\ \
一品花翎 @YiPin \
三品花翎 @SanPin \
清除花翎 @ClearIcon \
[@YiPin]
IF CheckItem 一品花翎 1
ACT SetIcon 0 210 8 -6 -85
SetIcon 1 220 6 0 -120
SENDMSG 1 已佩戴一品花翎!
ELSEACT
SENDMSG 1 没有一品花翎物品!
[@SanPin]
IF CheckItem 三品花翎 1
ACT SetIcon 0 230 10 -6 -85
SetIcon 1 240 8 0 -125
SENDMSG 1 已佩戴三品花翎!
ELSEACT
SENDMSG 1 没有三品花翎物品!
[@ClearIcon]
IF
ACT SetIcon 0 -1
SetIcon 1 -1
SetIcon 2 -1
SetIcon 3 -1
SetIcon 4 -1
SENDMSG 1 已清除全部头顶花翎!
0号位置放主花翎,1号往上再叠副花翎。清除用位置-1,一次把所有位置都写-1,避免只清一层留下残图。
登录自动恢复花翎
角色重新上线要按已拥有花翎重新挂图标,不要等玩家再点NPC。QManage.txt的[@Login]里按拥有物品或个人变量调用:
[@Login]
IF CheckItem 一品花翎 1
ACT SetIcon 0 210 8 -6 -85
IF CheckItem 三品花翎 1
ACT SetIcon 0 230 10 -6 -85
如果用个人变量记录品级,把CheckItem换成检查变量。比如用Hvar或Dvar记录花翎等级,登录判断等级后只挂对应图号,避免重复挂多个花翎。3C若对变量作用域有特殊要求,按本版本变量说明把登录段变量先初始化再判断。
按品级自动选图示例
花翎分多品级时,用变量比CheckItem更干净。假设用D0记录花翎品级,1是一品、2是二品、3是三品:
[@HuaLingShow]
IF EQUAL D0 1
ACT SetIcon 0 210 8 -6 -85
IF EQUAL D0 2
ACT SetIcon 0 215 8 -6 -85
IF EQUAL D0 3
ACT SetIcon 0 220 10 -6 -85
SetIcon 1 230 6 0 -120
NPC佩戴时先Mov D0 品级,再GOTO [@HuaLingShow],登录也GOTO同一个标签,保证上下线显示一致。多花翎叠层时0号放主品级、1号放活动花翎、2号放结婚或行会花翎,坐标依次上移。
带特效的完整SetIcon写法
部分3C补丁或兼容脚本支持扩展参数,格式:
SetIcon 位置 WIL序号 图片序号 X Y 播放张数 播放效果 播放速度 是否仅自己可见
例如人物头顶放动态特效花翎:
SetIcon 0 3 90 0 -75 12 1 200 0
0号位置,WIL序号3,图片90,X0、Y-75,播12张,效果1为特效,速度200毫秒,0为所有人可见。纯图片花翎把效果改0;只自己看把最后一位改1。若3C只认简化四参,就把后面参数去掉,只留SetIcon 0 90 12 0 -75,具体以本服M2命令帮助为准。
NPC头顶花翎文件式
NPC花翎可不写进对话脚本,改用Envir\NpcIcons目录。MerChant.txt里NPC路径决定图标文件位置,例如NPC配置:
花翎大使 3 330 330 1 0 0
脚本文件在Market_Def,对应NpcIcons建:
Envir\NpcIcons\3\花翎大使-3.txt
文件内容按行写WIL序号、图片序号、张数、X、Y、效果、速度,示例:
3 90 12 0 -75 1 200
3 95 8 0 -110 0 300
第一行主花翎,第二行叠加花翎。NPC不说话也能常驻头顶图。改完重读NpcIcons或重启M2,进游戏点开NPC附近就能看到。多地图同名NPC要按地图号和文件名区分,避免A地图花翎写到B地图NPC头上。
怪物头顶花翎文件式
怪物花翎走Envir\MonIcons,文件名用怪物DB名称。白野猪示例建:
Envir\MonIcons\白野猪.txt
内容:
3 1 5 0 -30 0 300
含义WIL序号3、图片1、播5张、X0、Y-30、普通效果、速度300毫秒。多个怪物不同花翎就建多个MonIcons文件,文件名严格等于怪物名称。人形BOSS想戴花翎,名称必须与DB的Name一致,包含空格、括号也要一致,否则不读文件。
物品DB与花翎绑定
花翎物品在StdItems.DB加好,名称如一品花翎、三品花翎。Stdmode按本引擎头饰或材料规则填,若只做显示不占装备位,可做成消耗品,由NPC检测后SetIcon;若做戴头装备,用穿戴触发脚本检测EquipItem或CheckItemW,在换装标签里挂花翎。佩戴触发示例:
[@TakeOnHuaLing]
IF CheckItemW 一品花翎 1
ACT SetIcon 0 210 8 -6 -85
IF CheckItemW 三品花翎 1
ACT SetIcon 0 230 10 -6 -85
卸下清除示例:
[@TakeOffHuaLing]
IF
ACT SetIcon 0 -1
SetIcon 1 -1
换装脚本文件按引擎挂QFunction或装备触发段。3C若用独立OnTakeItem/OnDropItem段,把清除写进对应段,避免脱了装备头花还留着。
活动时间限制花翎
活动花翎用个人变量记录到期时间,登录和定时脚本检测。假设用D1存活动花翎剩余秒数,定时器每秒减1,为0清图标:
[@HuaLingTimer]
IF LARGE D1 0
ACT Dec D1 1
IF EQUAL D1 0
ACT SetIcon 1 -1
SENDMSG 1 活动花翎已过期!
NPC领取活动花翎时Mov D1 3600,并SetIcon 1 240 8 0 -120。机器人或M2定时事件每秒调用[@HuaLingTimer],实现自动消失。若3C机器人不支持Dec个人变量,改用全局时间比对或M2内置计时。
多花翎位置规划
0号主花翎:品级、职业、VIP类长期图
1号副花翎:活动、节日、限时图
2号行会花翎:行会职位、行会战图
3号特殊花翎:结婚、师徒、成就图
4号临时花翎:狂暴、双倍、临时buff图
坐标从Y-85开始,每加一层再上移约35到45。X保持-6到0,避免不同层左右错位。五个位置全用也别把图片数量设太大,否则头顶动画卡顿。
Icon.wil补丁制作
花翎图片打进Icon.wil,按引擎图片查看器确认起始编号。210号开始放一品花翎8张连帧,220号放二品,230号放三品,逐品级留连续空间。图片尺寸按头像花翎标准,透明底PNG转WIL后检查偏移;若游戏里整体偏左下,X加正值、Y减负值绝对值。客户端登录器必须包含新版Icon.wil,微端把Icon资源加进更新列表,否则新号第一次看不到花翎。
排错顺序
1. 戴物品点NPC没反应:查Market_Def脚本路径、NPC地图号坐标、CheckItem名称是否与DB完全一致。
2. 有提示但不显示花翎:查SetIcon命令格式,3C简化版不要多写WIL序号;完整版不要少张数参数。
3. 显示错图:Icon.wil起始编号填错,用图片查看器重新数210、220、230实际位置。
4. 花翎偏头:X、Y不对,先改Y绝对值,再微调X;多人叠加层把每层Y差距拉大。
5. 下线再上没花翎:QManage[@Login]没写恢复,或变量没落盘,登录段按物品或变量重挂。
6. NPC没花翎:NpcIcons路径与MerChant.txt脚本路径不一致,文件名、地图号、NPC名要对上。
7. 怪物没花翎:MonIcons文件名不等于怪物DB名,或怪物Race不被读取图标。
8. 清除不干净:只写SetIcon 0 -1,要把1到4都写-1;若用了完整参数清图标,位置写-1即可。
9. 特效能播但普通图不动:播放张数写1会只显示单帧,动态花翎把张数按实际连帧数填。
10. 只有自己能看到:完整SetIcon最后可见参数写成1,改0让所有人可见。
替代命令说明
部分版本不用SetIcon而用SETHUMICON,格式:
SETHUMICON 位置 补丁ID 起始图号 图片数量 间隔 是否特效 X Y
例如:
SETHUMICON 0 3 1165 15 10 0 35 -8
位置0到6,补丁ID按Face类补丁配置,数量0表示取消。清除写:
SETHUMICON 0 0 0 0
3C若实测SetIcon不生效但M2文档有SETHUMICON,按本服文档换命令,坐标和图片库对应关系以补丁说明为准。
最小可运行示例
NPC文件Market_Def\花翎大使-3.txt:
花翎大使 3 330 330 1 0 0
[@main]
\ \
花翎大使\
提交花翎令领取头顶花翎\
\ \
一品 @One \
二品 @Two \
清除 @Clear \
[@One]
IF CheckItem 花翎令 1
ACT Take 花翎令 1
SetIcon 0 210 8 -6 -85
SENDMSG 1 获得一品头顶花翎!
ELSEACT
SENDMSG 1 需要花翎令1个!
[@Two]
IF CheckItem 花翎令 2
ACT Take 花翎令 2
SetIcon 0 215 8 -6 -85
SetIcon 1 220 6 0 -120
SENDMSG 1 获得二品头顶花翎!
ELSEACT
SENDMSG 1 需要花翎令2个!
[@Clear]
IF
ACT SetIcon 0 -1
SetIcon 1 -1
SENDMSG 1 已清除头顶花翎!
QManage[@Login]加:
IF CheckItem 一品花翎 1
ACT SetIcon 0 210 8 -6 -85
IF CheckItem 二品花翎 1
ACT SetIcon 0 215 8 -6 -85
SetIcon 1 220 6 0 -120
Icon.wil放入210到225一品连帧、215到222二品连帧、220到225二品副花翎,客户端更新后进3地图点NPC提交花翎令即可看到头顶动画。改图号、坐标、张数按实际补丁重新核对,不混用其他引擎的WIL序号规则。
3C传奇引擎人物NPC怪物头顶花翎SetIcon脚本示例与Icon补丁配置排错
来源:
作者:
点击:

