网友自助信息发布区,请自行甄别

开启左侧

[AC功能]增加设置物品描述NPC命令

[复制链接]

微信扫一扫 分享朋友圈

admin 发表于 2024-3-18 00:20:38 | 显示全部楼层 |阅读模式
201006yw8t71zzsk1owztv.png

增加设置物品描述NPC命令:SetItemDesc 物品ID 描述 0前缀/1中间/2后缀        // 当“描述”为空时将删除对应物品ID的描述;需要客户端配套,仅AC客户端支持该功能!
  增加设置物品属性NPC命令:SetEqUIpProp 物品ID 属性类型(1~31) 属性值 过期秒数(可选,默认-1永久,大于0为过期秒数) @过期触发(可选)        // 类型对应的属性参考鉴定属性,过期触发QF的[@过期触发]

下方脚本安装前,请参考以下链接设置合理的装备DB
关于新老blue引擎极品提示及各类通知触发的解答。HintItemList RareItem
DBC引擎极品列表在HintItemList.txt

SQL引擎的极品爆出提示和物品相关触发在物品数据库字段修改,蓝海编辑器打开显示中文,极品提示字段(RareItem)极品提示

细分:
0524-13之前的引擎:1=怪物掉落通知 2=拾取触发 4=商铺购买通知 8=人物死亡掉落触发 16=队伍拾取通知 ,将前面的值相加即可,全部开启相加为31,简单的参数就是0不提示,31提示。

0524-13引擎后增加:32=商店买卖触发,64=仓库存取触发,要开启多项,将前面的值相加即可,全部开启相加为127,简单的参数就是0不提示,127提示。

0524-18引擎后增加:128=将在出产时触发QF的[@ProduceItem](AC功能:物品来源和自定义装备注释),全部开启相加为255,简单的参数就是0不提示,255提示。


; QM
[@OnStart]
#act
; 服务器启动时,加载物品描述数据并设置后台自动保存
; 注意“H_ItemPreDesc”(前缀)、“H_ItemMidDesc”(中间)、“H_ItemSufDesc”(后缀)为系统保留标识,请勿占用
; 注意引擎开启后,不要去读写下列数据文件,防止文件占用冲突导致存取失败
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

; 服务器启动时,加载装备属性数据并设置后台自动保存
; 注意“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


; QF
[@ProduceItem]
#if
CompVal <$PARAM(3)> = 限时武器
#act
SetItemDesc <$PARAM(1)> "<u~~ui_6|I=120 N=6 X=-39 Y=-70 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=-12 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=5 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=22 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=39 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=56 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=73 Y=-12 W=3 H=3 F=150><u~~ui_6|I=180 N=10 X=43 Y=-12 W=3 H=3 F=150><u~~ui_6|I=170 N=10 X=85 Y=-12 W=3 H=3 F=150>" 0
;红色龙特效+蓝色六颗星效果+永久回收限时奖励图标
FormatStr "<u~~ui_6|I=80 N=15 X=-5 Y=-5 W=134 H=21 F=100>\<来源:%s|c=$00FF00>\<地图:%s|c=$00FFFF>\<产者:%s|c=$00FF00>\<物主:%s|c=$00FFFF>\<时间:|c=$00FF00>%s" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>
;装备来源+动图效果
SetItemDesc <$PARAM(1)> <$CALCRESULT> 2

#if
CompVal <$PARAM(3)> = 限时武器
#act
SetEquipProp <$PARAM(1)> 1 50 3600 @限时属性过期
SetEquipProp <$PARAM(1)> 2 50 3600
SetEquipProp <$PARAM(1)> 3 50 3600
SetEquipProp <$PARAM(1)> 9 9 3600
FormatStr "\-\<u~~ui_6|I=100 N=15 X=-5 Y=-5 W=134 H=21 F=100>\%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s\%-27s <剩余|c=clLime>%s" "攻击 50-50" "<T~<$PARAM(1)>|P=1 c=clLime>" "魔法 50-50" "<T~<$PARAM(1)>|P=2 c=clLime>" "道术 50-50" "<T~<$PARAM(1)>|P=3 c=clLime>" "<幸运 +9|c=$00EFD68C>" "<T~<$PARAM(1)>|P=9 c=clLime>\"
;限时属性+动图效果
SetItemDesc <$PARAM(1)> <$CALCRESULT> 1

#if
CompVal <$PARAM(3)> = 加星武器
#act
SetItemDesc <$PARAM(1)> "<u~~ui_6|I=310 N=11 X=-52 Y=-80 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=-15 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=2 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=19 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=36 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=53 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=70 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=87 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=104 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=121 Y=-17 W=3 H=3 F=150>" 0
;七彩老虎炫光+金色九颗星效果
FormatStr "<u~~ui_6|I=80 N=15 X=-5 Y=-5 W=134 H=21 F=100>\<来源:%s|c=$00FF00>\<地图:%s|c=$00FFFF>\<产者:%s|c=$00FF00>\<物主:%s|c=$00FFFF>\<时间:|c=$00FF00>%s" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>
;装备来源+动图效果
SetItemDesc <$PARAM(1)> "<$CALCRESULT>\-\<u~~ui_6|I=190 N=12 X=-2 Y=-5 W=171 H=28 F=150>\<BUFF:|c=$00FFFF><[*BLUE引擎*技丶血盾]|c=$FF00FF>\<特效:|c=$00FFFF><生命值额外暴涨|c=$00FF00><22%|c=$FFFF00>\<神技:|c=$00FFFF><HP到10%时提供100W护盾,|c=$00FF00><CD60s|c=$FFFF00>\-\<u~~ui_6|I=210 N=12 X=-2 Y=-5 W=171 H=28 F=150>\<额外道术攻击:|c=$FFFF00><+16570|c=$00FF00>\<额外魔法躲避:|c=$FFFF00><+10%提升麻痹免疫几率|c=$00FF00>\<灵魂火符技能:|c=$FFFF00><*BLUE引擎*符数量+1,无CD|c=$FF00FF>" 2
;专属BUFF+鉴定属性+神秘属性

#if
CompVal <$PARAM(3)> = 专属武器
#act
SetItemDesc <$PARAM(1)> "<u~~ui_6|I=300 N=8 X=30 Y=-35 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=-12 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=5 Y=-12 W=3 H=3 F=150><u~~ui_6|I=130 N=6 X=22 Y=-12 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=39 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=56 Y=-17 W=3 H=3 F=150><u~~ui_6|I=140 N=10 X=73 Y=-17 W=3 H=3 F=150><u~~ui_6|I=160 N=10 X=90 Y=8 W=3 H=3 F=150>" 0
;蓝色炫光+蓝色三颗星+金色三颗星
FormatStr "<u~~ui_6|I=80 N=15 X=-5 Y=-5 W=134 H=21 F=100>\<来源:%s|c=$00FF00>\<地图:%s|c=$00FFFF>\<产者:%s|c=$00FF00>\<物主:%s|c=$00FFFF>\<时间:|c=$00FF00>%s" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>
;装备来源+动图效果
SetItemDesc <$PARAM(1)> "<$CALCRESULT>\-\<u~~ui_6|I=230 N=12 X=-2 Y=-5 W=171 H=28 F=150>\<失传已久的顶阶神器:|c=$00FFFF><[专属丶无情斩]|c=$FFFF00>\<击杀高等级敌人,|c=$FFFF00><将随机解密一条专属|c=$00FFFF>\<死亡或下线专属消失,|c=$00FFFF><无限制击杀*BLUE引擎*|c=$FF00FF>\-\<u~~ui_6|I=267 N=1 X=0 Y=-5 W=28 H=28><青丘狐·攻击|c=$FF00FF> 刀刀切割额外 <+8W|c=$00FF00>\<u~~ui_6|I=269 N=1 X=0 Y=-5 W=28 H=28><天禄兽·爆率|c=$FF00FF> 打宝爆率 <+10%|c=$00FF00>\<u~~ui_6|I=258 N=1 X=0 Y=-5 W=28 H=28><石中猴·加伤|c=$FF00FF> 最终伤害 <+5%|c=$00FF00>\<u~~ui_6|I=253 N=1 X=0 Y=-5 W=28 H=28><飞廉兽·生命|c=$FF00FF> 每秒回血 <+3%|c=$00FF00>\<u~~ui_6|I=262 N=1 X=0 Y=-5 W=28 H=28><室火猪·生命|c=$FF00FF> 受到攻击回血 <100W|c=$00FF00>\<u~~ui_6|I=266 N=1 X=0 Y=-5 W=28 H=28><三足鸟·物防|c=$FF00FF> 固定防御减伤 <+20%|c=$00FF00>\<u~~ui_6|I=272 N=1 X=0 Y=-5 W=28 H=28><庚金虎·破防|c=$FF00FF> 物理魔法穿透 <+20%|c=$00FF00>\<u~~ui_6|I=268 N=1 X=0 Y=-5 W=28 H=28><待解封·神秘|c=$FF00FF> 杀敌后解密 <最多8条|c=$00FF00>" 2
;专属BUFF+鉴定属性+神秘属性



[@限时属性过期]
#act
Mov S_tmp <$HASH(H_ItemMidDesc)<$PARAM(1)>>
SetEquipProp <$PARAM(1)> 1 ""
RegExReplace S_tmp "攻击 [0-9]+.*?\\" ""
RegExReplace S_tmp "魔法 [0-9]+.*?\\" ""
RegExReplace S_tmp "道术 [0-9]+.*?\\" ""
RegExReplace S_tmp "<幸运 \+[0-9]*.*?\\" ""
INC S_tmp 限时属性已过期\
;限时属性到期清理属性倒计时提示
SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1



下述的几张效果图配合上面的脚本,以及引擎包内~ui_6.wzl wzx补丁,即可快速呈现效果。


175625qz0bybep02p4vrlg.gif 175625t2zx71ll4hyyijya.gif 175626fo4z0mk3woswod24.gif

支持描述动态修改图片
; 解说的文字支持以下格式<主宰法靴|C=16777215 S=11 B=Bold>支持\换行,\必须在>后比如<主宰法靴|C=16777215 S=11 B=Bold>\换行
; C = 颜色  cl开头的颜色单词或纯数字颜色
; S = 文字大小
; ,调用magic.wzl索引位置170的图片,可选项:N=帧数,X=偏移X,Y=偏移Y,W=指定宽度,H=指定高度
; u~|I=ui1.wzl里图片序号,【u~后面不跟文件目录,默认读取UI1】如要读其他文件内的图片即u~magic|I=170,也可以写u~ui1|I=170,
; N=帧数,既图片数量,X=偏移X,Y=偏移Y,W=指定宽度,H=指定高度


举例1:
FormatStr "来源:<%s|c=clRed>" <$PARAM(0)>

举例2:
FormatStr "\来源:<%s|c=clRed>" <$PARAM(0)>

;将直接搜索客户端UI1=1345的图片
;最终展现结果
;★来源:怪物掉落

=========================================================
对英雄执行 h.SetItemDesc 和h.SetEquipProp均*BLUE引擎*h.

举列1:
获取物品来源
物品表的RareItem细分:1=怪物掉落通知 2=拾取触发 4=商铺购买通知 8=人物丢弃/死亡掉落触发 16=队伍拾取通知 32=NPC商店买/卖商品触发 64=仓库存/取物品触发 128=物品来源 要开启多项,将前面的值相加即可

首先物品item数据表中的物品,RareItem字段需要包含128,比如要支持上面所有的功能就1+2+4+8+16+32+64+128=255 RareItem字段写255即可

获得新物品时临时传输变量:
    $PARAM(0)        // 来源
    $PARAM(1)        // 物品ID
    $PARAM(2)        // 时间
    $PARAM(3)        // 物品名
    $PARAM(4)        // 地图
    $PARAM(5)        // 出产者
    $PARAM(6)        // 物主
    $PARAM(7)        // 是否装备类物品(0/1)
    $PARAM(8)        // 物品的looks

; QM添加【注意:ItemDesc.csv 名称不可更改,物品来源系统文件.合区工具可以合】
    [@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

; QF
    [@ProduceItem]
    #act
    ; 注意物品的描述文字里不要带逗号“,”
    ; <字符串|c=clRed>,“字符串”是红色,没有在尖括号内的字符为普通白色 c= 这个是颜色代码 帮助说明查找
    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
----------------------------
此时拾取RareItem字段需要包含128的装备,就会展示如下属性
来源:
地图:
产者:
物主:
时间:


==============================================================================
举列2:
物品附加属性【注意该属性不在装备面板直接显示,属于隐藏属性】

!!!!!!!!不要给非装备类setEquipProp!!!!!!!!!注意先判断是不是装备在执行SetEquipProp附加属性

; QM增加以下系统列表【注意:H_ItemProp_1.csv到H_ItemProp_36.csv 名称不可更改,物品附加属性系统文件.合区工具可以合】
    [@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

; 任意脚本,要客户端看到属性值,需结合SetItemDesc使用
增加设置物品属性NPC命令:SetEquipProp 物品ID 属性类型(1~31) 属性值 过期秒数(可选,默认-1永久,大于0为过期秒数) @过期触发(可选)        // 类型对应的属性参考鉴定属性,过期触发QF的[@过期触发],类似Hash的Set子命令

第一步
;首先获取物品的来源信息
(H_ItemPreDesc)为固定的物品描述前缀
(H_ItemMidDesc)为固定的物品描述中间
(H_ItemSufDesc)为固定的物品描述后缀
比如我们写在中间
    #ACT
    Mov S物品来源 <$HASH(H_ItemMidDesc)<$PARAM(0)>>
;使用嵌套变量<$HASH(H_ItemMidDesc)物品Id>获得所有物品备注信息
;注意这里的888物品ID比如带在身上的可以使用GetEquipProps 命令去获取该物品的ID获取后在<$PARAM(0)>
     也可以在拾取该装备时,在拾取触发里获取该装备的物品ID <$PARAM(0)> 即可直接嵌套变量写: <$HASH(H_ItemMidDesc)<$PARAM(0)>>

;如果知道物品ID可以直接写 Mov S物品来源 <$HASH(H_ItemMidDesc)888>

;比如我要给物品ID  888的装备 属性位置1是攻击 2是道术  3是魔法 各加上 100点 并在装备上显示
    SetEquipProp <$PARAM(0)> 1 100
    SetEquipProp <$PARAM(0)> 2 100
    SetEquipProp <$PARAM(0)> 3 100

第二步 分割符号
#if
True
#Act
Inc S物品来源 \<----------------------------------|c=clskyblue>\附加属性\


第三步
;检测当前装备是否有附加攻击属性如果有则附加装备备注信息即鉴定属性位置1的属性值
#if
Compval <$HASH(H_ItemProp_1)<$PARAM(0)>> > 0 Int
#Act
Inc S物品来源 附加攻击:<$HASH(H_ItemProp_1)<$PARAM(0)>>\

;检测当前武器是否有附加魔法属性如果有则附加装备备注信息即鉴定属性位置2的属性值
#if
Compval <$HASH(H_ItemProp_2)<$PARAM(0)>> > 0 Int
#Act
Inc S物品来源 附加魔法:<$HASH(H_ItemProp_2)<$PARAM(0)>>\

;检测当前武器是否有附加道术属性如果有则附加装备备注信息即鉴定属性位置3的属性值
#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

----------------------------
此时装备就会展示如下属性

来源:
地图:
产者:
物主:
时间:
----------------------------------
附加属性
附加攻击:100
附加魔法:100
附加道术:100


==============================================================================
举列3:
物品已经拥有了来源信息,以及附加属性,此时需要刷新附加属性


第一步
;首先获取物品的来源信息
(H_ItemPreDesc)为固定的物品描述前缀
(H_ItemMidDesc)为固定的物品描述中间
(H_ItemSufDesc)为固定的物品描述后缀

    #ACT
    Mov S物品来源 <$HASH(H_ItemMidDesc)<$PARAM(0)>>
;此时我用中间描述的来源信息 已经包含附加属性,我们需要先把附加属性给删掉 从新附加
;使用该命令StringReplace S1 $STR(S2) $STR(S3) //替换字符串,S1源字符串,搜索S2->替换为S3
    StringReplace S物品来源 \<----------------------------------|c=clskyblue> #
;使用该命令StrTok S1 S2 |, 以“|”为分隔符,分解字符串,S1源字符串,S2存放分解子字符串,S1存放分解剩余部分;第三参数为空代表空格,“#9”代表Tab;第一、二参数支持S,A变量   
    StrTok S物品来源 S物品来源分解 #
;此时(S物品来源分解)变量就只剩余物品的来源信息

;要新加新的附加属性就可以直接加即可

    SetEquipProp <$PARAM(0)> 1 100
    SetEquipProp <$PARAM(0)> 2 100
    SetEquipProp <$PARAM(0)> 3 100

;分割符号
#if
True
#Act
Inc S物品来源分解 \<----------------------------------|c=clskyblue>\附加属性\


;检测当前装备是否有附加攻击属性如果有则附加装备备注信息即鉴定属性位置1的属性值
#if
Compval <$HASH(H_ItemProp_1)<$PARAM(0)>> > 0 Int
#Act
Inc S物品来源分解 附加攻击:<$HASH(H_ItemProp_1)<$PARAM(0)>>\

;检测当前武器是否有附加魔法属性如果有则附加装备备注信息即鉴定属性位置2的属性值
#if
Compval <$HASH(H_ItemProp_2)<$PARAM(0)>> > 0 Int
#Act
Inc S物品来源分解 附加魔法:<$HASH(H_ItemProp_2)<$PARAM(0)>>\

;检测当前武器是否有附加道术属性如果有则附加装备备注信息即鉴定属性位置3的属性值
#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

----------------------------
此时装备就会展示如下属性

来源:
地图:
产者:
物主:
时间:
----------------------------------
附加属性
附加攻击:100
附加魔法:100
附加道术:100


==============================================================================
举列4:
将物品的附加属性作为临时属性,到期后自动消失【也可以做为限时装备】


首先获取物品的ID来源,获取的方式有很多种,GIVE 拾取 GetEquipProps 等
比如限时攻击
NPC命令:SetEquipProp 物品ID 属性类型(1~31) 属性值 过期秒数(可选,默认-1永久,大于0为过期秒数) @过期触发(可选)        // 类型对应的属性参考鉴定属性,过期触发QF的[@过期触发],类似Hash的Set子命令

    #if
    #act
    ; 设置装备攻击、魔法、道术都+1万,且为不同的过期时间
    SetEquipProp <$PARAM(1)> 1 10000 10 @属性过期_AC
    SetEquipProp <$PARAM(1)> 2 10000 15 @属性过期_MC
    SetEquipProp <$PARAM(1)> 3 10000 20 @属性过期_SC
    ; 设置属性描述
    ; 每种属性的倒计时格式:,其中:T~装备ID,P=是装备属性类型,仅用于物品描述中
    FormatStr "%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s\%-13s <剩余|c=clLime>%s" "攻击 10000" "<t~|P=1 c=clLime>" "魔法 10000" "<t~|P=2 c=clLime>" "道术 10000" "<t~|P=3 c=clLime>\"
    ; 设置此物品在中间位置的属性描述
    SetItemDesc <$PARAM(1)> <$CALCRESULT> 1
   ;也可以用HASH命令获取该装备的过期时间
Hash H_ItemProp_1 GetE 物品ID M1
sendmsg 0 攻击【<$HASH(H_ItemProp_1)物品ID>】将于<$STR(M1)>秒过期


    ; QF下
    [@属性过期_AC]
    #act
    ; 先获取物品属性描述到S_tmp
    Mov S_tmp <$HASH(H_ItemMidDesc)<$PARAM(1)>>
    ; 然后清理属性
    SetEquipProp <$PARAM(1)> 1 ""
    ; 去掉对应的属性描述                // 比如去掉:“攻击 12345  <剩余|c=clLime>|P=1 c=clLime>\”
    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


==============================================================================
举列5:
将特定的物品描述,事先做好一个静态表格,获得物品时直接表格里对应的描述
比如建立一个H_ItemImage变量,表名ItemImage.csv

QM启动加载     
[@OnStart]
Hash H_ItemImage Load ..\QuestDiary\ItemData\ItemImage.csv

ItemImage.csv 事先设置好各种装备对应名称的特效,描述等,这里的装备可以以装备名称,也可以自己定特效属性编号
屠龙,,-1,,
开天,,-1,,


; QF 产出装备时将触发
    [@ProduceItem]
#if
HashExists H_ItemImage <$param(3)>
;检测静态表内是不是存在这个装备预设特效  $param(3) 为物品名
#act
mov S特效 <$HASH(H_ItemImage)<$param(3)>>
;这里的<$param(3)>是获得新物品时临时传输变量:上面有介绍
;有就执行特效获取,在物品来源信息的最后面加上特效介绍
FormatStr "来源:<%s|c=clRed>\地图:<%s|c=$4AD663>\产者:<%s|c=$E9A000>\<物主:|c=clSkyBlue><%s|c=$5CF4FF>\<时间:%s|c=clLime>"\特效介绍%s <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)> <$STR(S特效)>
setitemdesc <$PARAM(1)> <$CALCRESULT> 1
</t~</t~</t~



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表