当前位置:首页 > 引擎 > Blue引擎

传奇物品描述与装备附加属性脚本设置教程

admin19小时前1
本文详细讲解传奇服务端中物品描述修改、装备附加属性配置、图片logo调用、限时属性设置、合区错乱修复及自定义装备特效等全套脚本功能,整理标准化可直接复用的脚本代码,解决传奇版本物品来源展示、隐藏附加属性、装备动态描述等常见搭建问题,适配各类传奇引擎版本使用。一、物品描述与图片LOGO格式说明传奇版本…

本文详细讲解传奇服务端中物品描述修改装备附加属性配置、图片logo调用、限时属性设置、合区错乱修复及自定义装备特效等全套脚本功能,整理标准化可直接复用的脚本代码,解决传奇版本物品来源展示、隐藏附加属性、装备动态描述等常见搭建问题,适配各类传奇引擎版本使用。

一、物品描述与图片LOGO格式说明

传奇版本支持物品描述动态图片修改、文字颜色、大小、换行及自定义图片调用,所有格式代码可直接写入服务端脚本,适配装备、道具的界面展示效果优化。

1.1 基础文字格式规则

解说文字支持颜色、字号、加粗等样式设置,换行规则固定为:换行符号必须置于>符号后方,标准格式示例:

<主宰法靴|C=16777215 S=11 B=Bold>\换行<u~|I=1345>

参数释义:

C:文字颜色,支持cl开头颜色英文单词或纯数字颜色代码

S:文字字号大小,自定义数值调整展示尺寸

B=Bold:文字加粗样式,强化重点文字展示效果

1.2 自定义图片调用格式

支持调用客户端素材文件图片,默认读取UI1素材库,可指定其他素材文件,支持帧数、偏移、尺寸自定义调整,核心格式如下:

<u~magic|I=170 N=8 X=70 Y=90 W=60 H=140>

参数释义:

I:素材文件图片索引序号,精准定位对应图片资源

N:图片帧数,控制动态图片播放效果

X/Y:图片横竖偏移数值,调整展示位置

W/H:图片宽高尺寸,自定义展示大小

默认规则:u~后无文件目录时,默认读取UI1.wzl素材;指定素材需标注文件名称,如u~magic、u~ui1。

1.3 基础格式调用案例

案例1(基础来源文字展示):

FormatStr"<u~|I=1345>来源:<%s|c=clRed>" <$PARAM(0)>

案例2(图片+文字组合展示):

FormatStr "<u~magic|I=170 N=8 X=70 Y=90 W=60 H=140>\来源:<%s|c=clRed>" <$PARAM(0)>

最终展示效果:★来源:怪物掉落

二、英雄物品脚本执行规则

针对英雄的物品描述、装备属性修改脚本,执行命令必须添加h.前缀,核心命令为 h.SetItemDesc(物品描述设置)、h.SetEquipProp(装备附加属性设置),无前缀脚本无法对英雄装备生效。

三、物品RareItem字段参数配置

传奇物品数据表中RareItem字段为物品来源触发核心参数,不同数值对应不同物品触发事件,支持多数值叠加开启全套功能,是实现物品来源展示的基础配置。

3.1 字段细分参数说明

1:怪物掉落通知

2:拾取触发

4:商铺购买通知

8:人物丢弃/死亡掉落触发

16:队伍拾取通知

32:NPC商店买卖商品触发

64:仓库存取物品触发

128:物品来源记录(核心必填参数)

3.2 全套功能配置方法

如需开启全部物品触发与来源记录功能,将所有参数数值相加,最终RareItem字段填写255(1+2+4+8+16+32+64+128=255)。

重要注意事项:引擎运行过程中禁止随意修改该字段参数,否则会导致物品拾取记录错乱、数据异常报错。

四、物品拾取临时传输变量大全

物品产出、拾取过程中,系统自带固定临时变量,可直接调用用于展示物品各类信息,所有变量适配物品描述脚本,参数固定不变:

<$PARAM(0)>:物品来源

<$PARAM(1)>:物品ID

<$PARAM(2)>:获取时间

<$PARAM(3)>:物品名称

<$PARAM(4)>:产出地图

<$PARAM(5)>:物品出产者

<$PARAM(6)>:物品归属者

<$PARAM(7)>:是否装备类物品(0=非装备,1=装备)

<$PARAM(8)>:物品外观代码

五、合区后物品来源与附加属性错乱修复方案

传奇版本合区后,常出现物品来源不显示、附加属性错乱、数据丢失等问题,针对新旧版本、新旧开区场景,提供三种精准修复方法:

5.1 老区升级新引擎修复

老区直接升级新引擎后,若setup配置、itemnumber未按合区工具提示修改,需使用最新合区工具,新建空白区服,按照工具提示修正itemnumber参数即可恢复正常。

5.2 新版本新区开区修复

新版本新区开区时,若未通过引擎原版控制台清空数据,需重新按照官方要求清空底板数据,确保底板setup配置中itemnumber数值为1。

5.3 运营中区服数据异常修复

正在运营的区服,使用新引擎配套的DBServer.exe时,若提示物品总数与最大物品ID不一致,可任选两种方案修复:一是修改setup文件内ID数值,使其大于当前最大物品ID;二是使用最新合区工具,合并空白区并修正itemnumber参数。

六、物品来源展示脚本配置教程

通过QM、QF脚本搭配配置,可实现物品拾取后自动展示来源、地图、出产者、归属、时间等详细信息,脚本可直接复制使用。

6.1 QM服务启动加载脚本

服务器启动时自动加载物品描述数据并开启后台自动保存,文件名称固定不可修改,支持合区工具同步数据:

[@OnStart]

#act

; 服务器启动时,加载物品描述数据并设置后台自动保存

; 注意“H_ItemDesc”为系统保留标识,请勿占用

Hash H_ItemPreDesc Load ..\ItemData\ItemPreDesc.csv

Hash H_ItemPreDesc BGSave ..\ItemData\ItemPreDesc.csv

Hash H_ItemMidDesc Load ..\ItemData\ItemMidDesc.csv

Hash H_ItemMidDesc BGSave ..\ItemData\ItemMidDesc.csv

Hash H_ItemSufDesc Load ..\ItemData\ItemSufDesc.csv

Hash H_ItemSufDesc BGSave ..\ItemData\ItemSufDesc.csv

6.2 QF物品产出触发脚本

物品产出、拾取时自动触发信息展示,支持多颜色文字区分字段,禁止描述文字内携带逗号符号:

[@ProduceItem]

#act

; 注意物品的描述文字里不要带逗号“,”

; <字符串|c=clRed>,“字符串”是红色,无尖括号字符为普通白色

FormatStr"来源:<%s|c=clRed>\地图:<%s|c=$4AD663>\产者:<%s|c=$E9A000>\<物主:|c=clSkyBlue><%s|c=$5CF4FF>\<时间:%s|c=clLime>" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>

; 设置此物品ID的附加描述

SetItemDesc <$PARAM(1)> <$CALCRESULT> 2

6.3 最终展示效果

配置完成后,RareItem字段包含128的装备,拾取后自动展示:来源、地图、产者、物主、时间五大核心信息。

七、装备隐藏附加属性配置教程

传奇可设置装备隐藏附加属性,属性不直接展示在基础装备面板,需通过脚本调用显示,支持攻击、魔法、道术等基础属性加成,严禁给非装备类道具配置附加属性,需提前判断物品类型。

7.1 QM附加属性数据加载脚本

系统启动循环加载31组装备属性数据,文件名称固定不可更改,支持合区同步:

[@OnStart]

; 服务器启动时,加载物品属性数据并设置后台自动保存

; 注意“H_ItemProp_1~31”为系统保留标识,请勿占用

#for (M_cur = 1, M_cur < 32, M_cur + 1)

#if

#act

; <$STR(M_cur)>等同于<$LoopCursor>

Hash H_ItemProp_<$STR(M_cur)> Load ..\ItemData\ItemProp_<$STR(M_cur)>.csv

Hash H_ItemProp_<$LoopCursor> BGSave ..\ItemData\ItemProp_<$LoopCursor>.csv

#~for

7.2 附加属性核心命令说明

NPC命令:SetEquipProp 物品ID 属性类型(1~31) 属性值 过期秒数(可选) @过期触发(可选)

参数说明:过期秒数默认-1为永久属性,大于0为限时属性;过期触发可绑定QF自定义过期事件,属性类型对应装备鉴定属性列表。

7.3 永久附加属性配置案例

给拾取装备增加100点攻击、魔法、道术附加属性,并展示在物品描述中:

#ACT

; 获取物品来源基础信息

Mov S物品来源 <$HASH(H_ItemMidDesc)<$PARAM(0)>>

; 分割展示分隔符

#if

True

#Act

Inc S物品来源 \<----------------------------------|c=clskyblue>\附加属性\

; 检测并加载附加攻击属性

#if

Compval <$HASH(H_ItemProp_1)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源 附加攻击:<$HASH(H_ItemProp_1)<$PARAM(0)>>\

; 检测并加载附加魔法属性

#if

Compval <$HASH(H_ItemProp_2)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源 附加魔法:<$HASH(H_ItemProp_2)<$PARAM(0)>>\

; 检测并加载附加道术属性

#if

Compval <$HASH(H_ItemProp_3)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源 附加道术:<$HASH(H_ItemProp_3)<$PARAM(0)>>\

; 刷新装备属性展示

#if

True

#Act

SetItemDesc <$PARAM(0)> <$Str(S物品来源)> 1

7.4 属性刷新重置配置案例

对已拥有附加属性的装备,清空旧属性并重新加载新属性,实现属性刷新效果:

#ACT

; 读取原有物品来源信息

Mov S物品来源 <$HASH(H_ItemMidDesc)<$PARAM(0)>>

; 清空旧附加属性内容

StringReplace S物品来源 \<----------------------------------|c=clskyblue> #

StrTok S物品来源 S物品来源分解 #

; 重新配置附加属性

SetEquipProp <$PARAM(0)> 1 100

SetEquipProp <$PARAM(0)> 2 100

SetEquipProp <$PARAM(0)> 3 100

; 新增展示分隔符

#if

True

#Act

Inc S物品来源分解 \<----------------------------------|c=clskyblue>\附加属性\

; 重新加载各类附加属性

#if

Compval <$HASH(H_ItemProp_1)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源分解 附加攻击:<$HASH(H_ItemProp_1)<$PARAM(0)>>\

#if

Compval <$HASH(H_ItemProp_2)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源分解 附加魔法:<$HASH(H_ItemProp_2)<$PARAM(0)>>\

#if

Compval <$HASH(H_ItemProp_3)<$PARAM(0)>> > 0 Int

#Act

Inc S物品来源分解 附加道术:<$HASH(H_ItemProp_3)<$PARAM(0)>>\

; 刷新最终展示效果

#if

True

#Act

SetItemDesc <$PARAM(0)> <$Str(S物品来源分解)> 1

八、限时装备附加属性配置(过期自动消失)

通过设置过期秒数,可实现限时装备属性,属性到期后自动清除,支持多属性差异化倒计时,适配活动限时装备玩法。

8.1 限时属性主脚本

#if

#act

; 设置三职业基础属性限时加成

SetEquipProp <$PARAM(1)> 1 10000 10 @属性过期_AC

SetEquipProp <$PARAM(1)> 2 10000 15 @属性过期_MC

SetEquipProp <$PARAM(1)> 3 10000 20 @属性过期_SC

; 配置倒计时展示格式

 FormatStr "%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s" "攻击 10000" "<T~<$PARAM(1)>|P=1 c=clLime>" "魔法 10000" "<T~<$PARAM(1)>|P=2 c=clLime>" "道术 10000" "<T~<$PARAM(1)>|P=3 c=clLime>\"

; 写入物品描述

SetItemDesc <$PARAM(1)> <$CALCRESULT> 1

; 读取属性过期时间并全局提示

Hash H_ItemProp_1 GetE 物品ID M1

sendmsg 0 攻击【<$HASH(H_ItemProp_1)物品ID>】将于<$STR(M1)>秒过期

8.2 属性过期触发清理脚本

[@属性过期_AC]

#act

Mov S_tmp <$HASH(H_ItemMidDesc)<$PARAM(1)>>

SetEquipProp <$PARAM(1)> 1 ""

RegExReplace S_tmp "攻击 [0-9]+.*?\\" ""

SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1

[@属性过期_MC]

#act

Mov S_tmp <$HASH(H_ItemSufDesc)<$PARAM(1)>>

SetEquipProp <$PARAM(1)> 2 ""

RegExReplace S_tmp "魔法 [0-9]+.*?\\" ""

SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1

[@属性过期_SC]

#act

Mov S_tmp <$HASH(H_ItemSufDesc)<$PARAM(1)>>

SetEquipProp <$PARAM(1)> 3 ""

RegExReplace S_tmp "(攻击|魔法|道术) [0-9]+.*?\\" ""

SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1

九、自定义装备静态特效与描述配置

可通过新建CSV静态表格,为指定装备绑定专属特效、自定义描述,实现屠龙、开天等高端装备专属展示效果。

9.1 QM启动加载特效表格

[@OnStart]

Hash H_ItemImage Load ..\QuestDiary\ItemData\ItemImage.csv

9.2 CSV表格配置规则

表格分为三列:装备名称、补丁名称、默认参数,示例配置:

屠龙、<u~~TX|I=0 N=8 X=0 Y=0 W=0 H=0>、-1

开天、<u~~TX|I=130 N=12 X=0 Y=0 W=0 H=0>、-1

9.3 装备特效触发脚本

[@ProduceItem]

#IF

COMPVAL <$param(1)> < <$STR(H5)>

#ACT

BREAK

#if

HashExists H_ItemImage <$param(3)>

#act

MOV H5 <$param(1)>

mov S特效 <$HASH(H_ItemImage)<$param(3)>>

FormatStr"来源:<%s|c=clRed>\地图:<%s|c=$4AD663>\出处:<%s|c=$E9A000>\<归属:|c=clSkyBlue><%s|c=$5CF4FF>\<时间:|c=$5CF4FF>%s" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>\<$STR(S特效)>

SetItemDesc <$PARAM(1)> <$CALCRESULT> 1

BREAK

#IF

COMPVAL <$param(1)> > <$STR(H5)>

#ACT

MOV H5 <$param(1)>

mov S物品道具 <$HASH(H_ItemImage)<$param(3)>>

FormatStr"来源:<%s|c=clRed>\地图:<%s|c=$4AD663>\出处:<%s|c=$E9A000>\<归属:|c=clSkyBlue><%s|c=$5CF4FF>\<时间:|c=$5CF4FF>%s" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>\<$STR(S物品道具)>

SetItemDesc <$PARAM(1)> <$CALCRESULT> 1

BREAK

十、GM赠送装备防扰民脚本

优化GM后台刷装备、赠送装备脚本,屏蔽系统全局刷屏,避免普通玩家反感,支持在线检测、身份校验、禁止自赠等功能。

(@@InPutInteger,@@inputstring)

[@main]

<刷装备/@赠送>

[@赠送]

#IF

ISADMIN

#ACT

QUERYVALUE 1 0 14 @检测 朋友越多,快乐越多,千金易得,挚友难求啊!请输入赠送对象名称:

BREAK

[@检测]

#IF

EQUAL S1 <$USERNAME>

#ACT

MessageBox 不能对自己发送赠送。

BREAK

#IF

CHECKONLINE <$STR(S1)>

#SAY

请设置需要赠送的装备名称:比如 屠龙\\

<装备名称/@装备名称>\

#ELSEACT

MessageBox <$STR(S1)>\不在线,你不能赠送!

[@装备名称]

#IF

CHECKONLINE <$STR(S1)>

#ACT

QUERYVALUE 2 0 10 ~赠予 请填写你要赠送【<$STR(S1)>】的【装备】!

BREAK

#ELSEACT

Messagebox 玩家<$STR(S1)>暂时不在线!

break

[~赠予]

#IF

CHECKONLINE <$STR(S1)>

#ACT

<$STR(S1)>.GIVE <$STR(S2)>

<$STR(S1)>.SENDMSG 5 你收到了友人赠送的:<$STR(S2)>

SENDMSG 0 <$STR(S1)>收到了友人:<$USERNAME>,赠送的:<$STR(S2)> 246 245

CLOSE

BREAK

#ELSEACT

MessageBox <$STR(S1)>\不在线,你不能赠送!

CLOSE

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

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

本文链接:https://www.9luu.com/500.html

分享给朋友: