3K引擎做装备发光,实际分三层实现:数据库Shine字段控制内观发光、M2物品特效列表配置内观与外观特效、脚本SetItemsLight命令动态开关发光。三层可以独立使用,也可以组合实现更复杂的效果。下面按实际搭建流程给出完整示例。
装备位置编号对照
SetItemsLight命令第一个参数是装备位置编号,必须对应正确,否则发光不生效或加错部位。
0:衣服
1:武器
2:勋章
3:头盔
4:项链
5:右手镯
6:左手镯
7:右戒指
8:左戒指
9:毒和符
10:腰带
11:靴子
12:宝石
衣服、武器、头盔在部分引擎版本中不支持SetItemsLight命令,这类部位需要通过数据库Shine字段或M2物品特效列表实现发光。
NPC发光主界面
[@main]
IF
SAY
\
每次发光需要50000元宝,已发光的装备再次操作不重复收费。\
\
\
\
\
\
\
\
\
\
\
\
\
<关闭/@exit>
项链发光脚本
[@项链发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 4
ACT
GAMEGOLD - 50000
SetItemsLight 4 1
SENDMSG 7 您的项链已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴项链或元宝不足!
GOTO @main
左手镯发光脚本
[@左手镯发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 6
ACT
GAMEGOLD - 50000
SetItemsLight 6 1
SENDMSG 7 您的左手镯已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴左手镯或元宝不足!
GOTO @main
右手镯发光脚本
[@右手镯发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 5
ACT
GAMEGOLD - 50000
SetItemsLight 5 1
SENDMSG 7 您的右手镯已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴右手镯或元宝不足!
GOTO @main
腰带发光脚本
[@腰带发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 10
ACT
GAMEGOLD - 50000
SetItemsLight 10 1
SENDMSG 7 您的腰带已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴腰带或元宝不足!
GOTO @main
靴子发光脚本
[@靴子发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 11
ACT
GAMEGOLD - 50000
SetItemsLight 11 1
SENDMSG 7 您的靴子已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴靴子或元宝不足!
GOTO @main
左戒指发光脚本
[@左戒指发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 8
ACT
GAMEGOLD - 50000
SetItemsLight 8 1
SENDMSG 7 您的左戒指已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴左戒指或元宝不足!
GOTO @main
右戒指发光脚本
[@右戒指发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 7
ACT
GAMEGOLD - 50000
SetItemsLight 7 1
SENDMSG 7 您的右戒指已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴右戒指或元宝不足!
GOTO @main
勋章发光脚本
[@勋章发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 2
ACT
GAMEGOLD - 50000
SetItemsLight 2 1
SENDMSG 7 您的勋章已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴勋章或元宝不足!
GOTO @main
宝石发光脚本
[@宝石发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 12
ACT
GAMEGOLD - 50000
SetItemsLight 12 1
SENDMSG 7 您的宝石已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴宝石或元宝不足!
GOTO @main
毒和符发光脚本
[@毒符发光]
IF
CHECKGAMEGOLD > 49999
CHECKUSEITEM 9
ACT
GAMEGOLD - 50000
SetItemsLight 9 1
SENDMSG 7 您的毒和符已发光!
GOTO @main
ELSEACT
SENDMSG 5 你尚未携带毒和符或元宝不足!
GOTO @main
取消发光
[@取消发光]
IF
SAY
\
\
\
\
\
\
<返回/@main>
[@取消项链]
IF
CHECKUSEITEM 4
ACT
SetItemsLight 4 0
SENDMSG 7 项链发光已取消。
GOTO @main
ELSEACT
SENDMSG 5 你尚未佩戴项链!
GOTO @main
[@取消手镯]
IF
ACT
SetItemsLight 5 0
SetItemsLight 6 0
SENDMSG 7 手镯发光已取消。
GOTO @main
[@取消戒指]
IF
ACT
SetItemsLight 7 0
SetItemsLight 8 0
SENDMSG 7 戒指发光已取消。
GOTO @main
[@取消腰带]
IF
ACT
SetItemsLight 10 0
SENDMSG 7 腰带发光已取消。
GOTO @main
[@取消靴子]
IF
ACT
SetItemsLight 11 0
SENDMSG 7 靴子发光已取消。
GOTO @main
两种发光效果切换
SetItemsLight第二个参数1和2对应两种不同发光效果,可在M2选项功能设置内挂控制中选择具体效果样式。
[@切换发光]
IF
CHECKUSEITEM 4
EQUAL S1 0
ACT
SetItemsLight 4 1
MOV S1 1
SENDMSG 7 项链切换为发光效果1。
GOTO @main
ELSEACT
SetItemsLight 4 2
MOV S1 0
SENDMSG 7 项链切换为发光效果2。
GOTO @main
S1记录当前发光状态,避免重复切换。
数据库Shine字段发光
SetItemsLight不支持衣服、武器、头盔时,需要通过数据库Shine字段实现。打开装备数据库,找到对应装备,修改最右侧Shine字段数值。
衣服内观发光对应关系:
Shine=1 对应 stateitem.wil 男2425 女2425
Shine=2 对应 stateitem.wil 男2541 女2543
Shine=3 对应 stateitem.wil 男2600 女2610
Shine=4 对应 stateitem.wil 男3550 女3570
Shine=5 对应 stateitem.wil 男3680 女3690
Shine=6 对应 stateitem.wil 男3800 女无
Shine=7 对应 stateitem.wil 男女3950-3967
Shine=8 对应 stateitem.wil 男女3968-3987
武器内观发光对应关系:
Shine=1 对应 humEffect2.wil 1200-2399,stateitem.wil 1890-1899
Shine=2 对应 humEffect2.wil 6000-7199,stateitem.wil 2427-2436
Shine=3 对应 humEffect2.wil 8400-9599,stateitem.wil 2530-2539
Shine=4 对应 humEffect2.wil 9600-10799,stateitem.wil 2550-2559
Shine=5 对应 humEffect2.wil 10800-11999,stateitem.wil 2560-2569
Shine=6 对应 humEffect3.wil 6000-7199,stateitem.wil 3480-3499
Shine=7 对应 humEffect3.wil 3600-4799,stateitem.wil 3500-3519
Shine=8 对应 humEffect3.wil 4800-5999,stateitem.wil 3520-3539
修改Shine字段后保存数据库,重载物品列表即可生效,无需脚本触发。
M2物品特效配置
3K引擎不需要补丁,可直接用WIL编辑器操作。打开M2,点击“查看-列表信息二-物品特效”。
左侧物品列表选择目标装备,右侧特效设置分三部分:
包裹特效:物品放在背包中的特效,只支持武器与衣服。开始图片设为65535表示关闭。
内观特效:角色自身视角看到的特效。开始图片填写WIL文件中特效图片的起始编号,资源文件选择对应的wil文件,播放数量填写该特效包含的图片张数。
外观特效:其他玩家视角看到的特效,只支持衣服和武器。设置方式同内观特效,资源文件通常选择HumEffect2.wil。
设置完成后点击“增加”保存,重新加载物品数据库即可。
内观特效资源文件对照
stateitem.wil:衣服内观特效主要资源文件,武器部分内观特效也在此文件。
humEffect.wil:外观特效资源文件,编号除以600加1。
humEffect2.wil:外观特效资源文件,编号除以600加21。
humEffect3.wil:外观特效资源文件,编号除以600加35。
外观特效翅膀计算:衣服外观翅膀以600张为一个翅膀单位。
脚本与数据库联动
如果需要脚本动态控制衣服或武器发光,可以结合自定义属性实现。先通过数据库Shine字段设置默认发光,再通过脚本修改装备自定义属性触发不同发光等级。
[@升级发光]
IF
CHECKUSEITEM 1
EQUAL S2 0
ACT
SetItemsLight 1 1
MOV S2 1
SENDMSG 7 武器发光已开启。
GOTO @main
ELSEACT
SENDMSG 5 武器发光已开启或尚未佩戴武器!
GOTO @main
S2记录武器发光状态,防止重复操作。
常见问题排查
SetItemsLight不生效,先确认装备位置编号是否正确,衣服武器头盔在部分版本中不支持此命令。发光效果显示异常,检查M2物品特效中开始图片编号是否与WIL文件实际编号一致。修改数据库Shine后不显示,需要重载物品数据库或重启M2。外观特效不显示,确认资源文件选择是否正确,humEffect、humEffect2、humEffect3对应不同编号段。脚本执行后发光消失,检查是否在其他脚本中被SetItemsLight 位置 0覆盖。
装备发光的核心是分清三层实现方式:数据库Shine字段适合固定发光、M2物品特效适合自定义特效资源、SetItemsLight适合脚本动态控制。3K引擎具体命令支持情况可能与其他引擎存在差异,正式使用前应先确认当前版本对SetItemsLight、物品特效列表和数据库字段的支持方式。
3K传奇引擎装备发光脚本完整示例:SetItemsLight命令、装备位置编号、M2物品特效配置
来源:
作者:
点击:

