跳转至

随机属性转移系统

本文档介绍随机属性转移系统的全部新增命令,包括执行命令、检测命令和系统变量。

该系统用于实现装备随机属性的转移(从背包装备转移到身上装备)、剔除(删除身上装备的指定随机属性词条)以及转移后自动删除背包材料等功能。


与已有命令的对比

新增命令与已有命令在功能上有关联但定位不同:

新增命令 已有类似命令 区别说明
装备转移随机属性 AddBodyItemLuck AddBodyItemLuck 按属性编号直接添加;新命令从背包装备提取属性转移到身上装备
装备删除随机属性 DelBodyItemRandomAbil DelBodyItemRandomAbil 按属性ID删除;新命令按词条索引(0-3)删除
装备转移并删除 组合命令:转移属性后自动删除背包装备,含保护检查
检测是否穿戴装备 无直接对应 按部位名称检测是否穿戴装备
检测背包格位 CheckBagAttribute CheckBagAttribute 检测背包装备属性值;新命令检测背包格位是否为指定类型装备
检测背包随机属性 CheckAttribute CheckAttribute 按属性编号检测身上装备;新命令检测背包指定格位是否有随机属性
检测转移随机类型 预检查:背包装备的随机属性能否转移到身上装备(类型冲突/数量上限)

装备穿戴部位参考

以下部位名称在所有命令中通用:

部位名称 编号 部位名称 编号
武器 0 项链 8
衣服 1 左戒指 9
披风 2 右戒指 10
头盔 3 左手镯 11
护肩 4 右手镯 12
护腕 5 勋章 13
腰带 6 玉佩 14
鞋子 7 战具 15

执行命令

装备转移随机属性

功能: 将背包指定格位装备的随机属性转移到身上指定部位的装备上。

格式:

装备转移随机属性 背包格位 部位名称

参数说明:

  • 背包格位:背包格位索引(0-63)
  • 部位名称:装备穿戴部位名称(如 武器、衣服、头盔 等)

使用条件:

  • 身上对应部位必须穿戴有装备
  • 背包指定格位必须有装备且含有随机属性
  • 转移后身上装备的随机属性词条不能超过上限(4条)
  • 不能转移与身上装备已有属性同类型的随机属性

例:

[@转移武器]
#IF
检测背包随机属性 0
#ELSEACT
Break
#ELSESAY
背包装备没有随机属性!

#IF
检测转移随机类型 0 武器
#ACT
装备转移随机属性 0 武器
#SAY
转移完成
#ELSESAY
转移失败:可能超过随机属性词条允许数或有同类型的随机属性


装备删除随机属性

功能: 删除身上指定部位装备的指定索引位置的随机属性词条。

格式:

装备删除随机属性 词条索引 部位名称

参数说明:

  • 词条索引:要删除的随机属性词条位置(从 0 开始,0=第一条,1=第二条,2=第三条,3=第四条)
  • 部位名称:装备穿戴部位名称

说明:

  • DelBodyItemRandomAbil 的区别:DelBodyItemRandomAbil 按随机属性ID删除,本命令按词条索引位置删除
  • 适合配合 <$随机属性N描述(部位)> 变量让玩家选择要剔除的词条

例:

[@武器4]
#SAY
请选择要剔除的随机属性词条<#SO:1><$随机属性1描述(武器)><#SO/><#SO:2><$随机属性2描述(武器)><#SO/><#SO:3><$随机属性3描述(武器)><#SO/><#SO:4><$随机属性4描述(武器)><#SO/>

[@武器4_1]
#ACT
金币数量 - 9000000
装备删除随机属性 0 武器
#SAY
清洗了属性第一条成功!

[@武器4_2]
#ACT
金币数量 - 9000000
装备删除随机属性 1 武器
#SAY
清洗了属性第二条成功!


装备转移并删除

功能: 将背包指定格位装备的随机属性转移到身上指定部位装备后,自动删除背包中的该装备。

格式:

装备转移并删除 背包格位 部位名称

参数说明:

  • 背包格位:背包格位索引(0-63)
  • 部位名称:装备穿戴部位名称

保护检查:

执行前会自动检查背包装备是否具有以下特殊属性,任一命中则中止操作并提示玩家:

检查项 说明
灵魂绑定 装备已灵魂绑定
铸魂次数 装备已铸魂
装备神佑 装备有神佑属性
祈祷次数 装备已祈祷
镶嵌灵石 装备已镶嵌灵石
升级次数 装备已升级
精炼次数 装备已精炼
铭文 装备有铭文
铭文技能 装备有铭文技能
绑定状态 装备已绑定
锁定状态 装备已锁定

注意

被保护的装备无法通过此命令删除,系统会发送提示消息告知玩家具体原因。

例:

[@转移并删除武器]
#IF
检测背包随机属性 0
#ELSEACT
Break
#ELSESAY
背包装备没有随机属性!

#IF
检测转移随机类型 0 武器
#ACT
装备转移并删除 0 武器
#SAY
转移完成,背包材料已自动回收
#ELSESAY
转移失败:可能超过随机属性词条允许数或有同类型的随机属性


检测命令

检测是否穿戴装备

功能: 检测玩家身上指定部位是否穿戴了装备。

格式:

检测是否穿戴装备 部位名称

参数说明:

  • 部位名称:装备穿戴部位名称(武器、衣服、头盔、披风、护肩、护腕、腰带、鞋子、项链、左戒指、右戒指、左手镯、右手镯、勋章、玉佩、战具)

返回: 条件成立(穿戴了装备)或不成立(未穿戴)

例:

[@检查武器]
#IF
检测是否穿戴装备 武器
#ELSEACT
Break
#ELSESAY
没穿戴武器装备


检测背包格位

功能: 检测背包指定格位的物品是否为指定类型的装备。

格式:

检测背包格位 背包格位 物品使用分类

参数说明:

  • 背包格位:背包格位索引(0-63)
  • 物品使用分类:装备的使用分类名称

物品使用分类对照表:

脚本中名称 分类枚举 编号
上装 衣服 1
背饰 披风 2
腰带 腰带 3
鞋子 鞋子 4
项链 项链 5
戒指 戒指 6
手镯 手镯 7
肩甲 护肩 8
武器 武器 9
护腕 护腕 10
头盔 头盔 11
勋章 勋章 12
玉佩 玉佩 13
战具 战具 14

提示

脚本中使用的名称(如"上装"、"背饰"、"肩甲")会自动映射到对应的物品使用分类枚举。注意这里的分类与"装备穿戴部位"是不同的枚举体系。

例:

;检测背包第一格是否为武器类装备
#IF
检测背包格位 0 武器
#SAY
背包第一格是武器装备
#ELSESAY
背包第一格不是武器或为空


检测背包随机属性

功能: 检测背包指定格位的装备是否拥有随机属性。

格式:

检测背包随机属性 背包格位

参数说明:

  • 背包格位:背包格位索引(0-63)

返回: 条件成立(有随机属性)或不成立(无随机属性或格位为空)

例:

#IF
检测背包随机属性 0
#ELSEACT
Break
#ELSESAY
背包装备没有随机属性!


检测转移随机类型

功能: 预检查背包指定格位装备的随机属性是否可以转移到身上指定部位的装备上。

格式:

检测转移随机类型 背包格位 部位名称

参数说明:

  • 背包格位:背包格位索引(0-63)
  • 部位名称:装备穿戴部位名称

检查内容:

  1. 转移后身上装备的随机属性词条总数不超过上限(4条)
  2. 背包装备的随机属性类型与身上装备已有的随机属性类型不冲突

例:

#IF
检测转移随机类型 0 武器
#ACT
装备转移随机属性 0 武器
#SAY
转移完成
#ELSESAY
转移失败:可能超过随机属性词条允许数或有同类型的随机属性


系统变量

<$随机属性数量(部位)>

功能: 获取身上指定部位装备的随机属性词条数量。

格式:

<$随机属性数量(部位名称)>

返回值: 数字(0-4),表示当前装备拥有的随机属性词条数量。

例:

;判断武器是否有随机属性
#IF
检测计算 <$随机属性数量(武器)> == 0
#ACT
Break
#SAY
武器没有随机属性!

;根据属性数量跳转不同标签
#IF
检测计算 <$随机属性数量(武器)> == 4
#ACT
goto @武器4
Break
#IF
检测计算 <$随机属性数量(武器)> == 3
#ACT
goto @武器3
Break


<$随机属性N描述(部位)>

功能: 获取身上指定部位装备第 N 条随机属性的文字描述。

格式:

<$随机属性N描述(部位名称)>

  • N:词条序号(1-4)

返回值: 随机属性的文字描述(如"攻击+5"、"幸运+2"等),无该词条时返回空。

例:

;显示武器的全部随机属性
#SAY
武器随机属性(<$随机属性数量(武器)>条):<BR><$随机属性1描述(武器)><BR><$随机属性2描述(武器)><BR><$随机属性3描述(武器)><BR><$随机属性4描述(武器)>

;让玩家选择要剔除的词条
[@武器3]
#SAY
请选择要剔除的随机属性词条<#SO:1><$随机属性1描述(武器)><#SO/><#SO:2><$随机属性2描述(武器)><#SO/><#SO:3><$随机属性3描述(武器)><#SO/>


完整脚本示例

以下是一个完整的武器随机属性转移和剔除流程:

[@MAIN]
#SAY
随机属性转移和剔除<#SO:1>武器<#SO/>

;==武器入口==
[@1]
#IF
检测是否穿戴装备 武器
#ELSEACT
Break
#ELSESAY
没穿戴武器装备

#IF
检测背包格位 0 武器
#SAY
转移随机属性需要300万金币<BR>
剔除一条随机属性需要900万金币<BR>
注意:随机属性词条最大为4条
<#SO:1>开始转移武器随机属性<#SO/>
<#SO:2>开始剔除武器随机属性<#SO/>
#ELSESAY
背包第一格不是武器或为空<BR>
只能剔除随机属性词条
<#SO:2>开始剔除武器随机属性<#SO/>

;==转移流程==
[@1_1]
#IF
检测背包随机属性 0
#ELSEACT
Break
#ELSESAY
背包装备没有随机属性!

#IF
检测金币 >= 3000000
#ELSEACT
Break
#ELSESAY
金币不足300万,无法转移!

#IF
检测转移随机类型 0 武器
#ACT
金币数量 - 3000000
装备转移随机属性 0 武器
#SAY
转移完成
#ELSESAY
转移失败:超过词条上限或有同类型属性

;==剔除流程==
[@1_2]
#IF
检测计算 <$随机属性数量(武器)> == 0
#ACT
Break
#SAY
武器没有随机属性!

#IF
检测金币 >= 9000000
#ELSEACT
Break
#ELSESAY
金币不足900万,无法剔除!

#IF
检测计算 <$随机属性数量(武器)> == 2
#ACT
goto @武器2
Break
#IF
检测计算 <$随机属性数量(武器)> == 1
#ACT
goto @武器1
Break

;==选择剔除词条==
[@武器2]
#SAY
请选择要剔除的随机属性词条
<#SO:1><$随机属性1描述(武器)><#SO/>
<#SO:2><$随机属性2描述(武器)><#SO/>

[@武器1]
#SAY
请选择要剔除的随机属性词条
<#SO:1><$随机属性1描述(武器)><#SO/>

[@武器2_1]
#ACT
金币数量 - 9000000
装备删除随机属性 0 武器
#SAY
清洗了属性第一条成功!

[@武器2_2]
#ACT
金币数量 - 9000000
装备删除随机属性 1 武器
#SAY
清洗了属性第二条成功!

[@武器1_1]
#ACT
金币数量 - 9000000
装备删除随机属性 0 武器
#SAY
清洗了属性第一条成功!

脚本编写提示

  • 转移前务必先用 检测背包随机属性检测转移随机类型 做前置检查
  • 剔除前用 <$随机属性数量(部位)> 判断词条数,根据数量跳转到对应标签
  • 标签命名遵循累加规则:[@1] + <#SO:1>[@1_1][@1_1] + <#SO:2>[@1_1_2]
  • 装备转移并删除 命令自带保护检查,适合需要自动回收材料的场景