自定义属性说明

-----------------------------------自定义属性说明---------------------------




 自定义属性说明书

 自定义装备属性 该数据保存在人物Mir.DB里
 功能说明:每个装备最多可以支持10个属性同时显示并生效,每个属性必须绑定属性才会显示。
 自定义装备属性的名称控制(M2-选项-自定义装备属性设置)
 自定义装备属性支持的装备位置如下:
 -1 升级框
 0--25:装备栏
 30-35:首饰盒
 40-51:神佑袋
 boxitem0-boxitem7:OK框

 注意 武器没有防御 魔防 生命 魔法值 属性 是不加可以加绑定这些属性的 装备有什么属性 才可以绑定增加什么自定义属性
 [@设置自定义装备文字内容:(最大128个字符 支持特殊字符:\=换行) 支持无任何属性的情况下仅显示自定义装备文字内容]
 #IF
 #ACT
 SetCustomItemText 装备位置 名字内容

 [@设置自定义装备文字内容显示的颜色:]
 #IF
 #ACT
 SetCustomItemTextColor 装备位置 文字颜色(0~255)

 例:
 [@main]
 <设置衣服自定义文字(不超过10个汉字)/@@InputString1>\
 <设置衣服自定义文字颜色(0~255)/@@InputInteger1>\

 [@InputString1]
 #ACT
 SetCustomItemTextColor 0 S1

 [@InputInteger1]
 #ACT
 SetCustomItemTextColor 0 N1


 获取自定义装备文字内容:
 GetCustomItemText 装备位置 变量

 [@获取武器自定义装备文字内容:]
 #IF
 #ACT
 GetCustomItemText 1 <$STR(S1)>
 SENDMSG 6 武器自定义文字内容为<$STR(S1)>

 获取自定义装备文字内容显示的颜色:
 GetCustomItemTextColor 装备位置 变量(0~255)

 [@获取武器自定义装备文字内容的颜色:]
 #IF
 #ACT
 GetCustomItemTextColor 1 <$STR(N1)>
 SENDMSG 6 武器自定义文字内容的颜色为<$STR(N1)>

 检测自定义装备属性值:
 CheckCustomItemValue 装备位置 属性位置(0~9) (检测符><=) 检测值
 [@检测武器的第一条自定义属性值:]
 #IF
 #ACT
 CheckCustomItemValue 1 0 > 10
 SENDMSG 6 武器的第一个自定义属性值大于10

 检测自定义装备属性绑定类型:
 CheckCustomItemBindType 装备位置 属性位置(0~9) (检测符><=) 绑定类型值(0~17)
 绑定类型值
 0没有绑定
 1绑定AC
 2绑定MAC
 3绑定DC
 4绑定MC
 5绑定SC
 6绑定MaxHP
 7绑定MaxMP
 8~17为10个无属性的

 [@检测武器的第一个自定义装备属性的绑定类型]
 #IF
 CheckCustomItemBindType 1 0 = 1
 #ACT
 SENDMSG 6 你的武器的第一个自定义属性绑定的是AC增加人物防御

 设置自定义装备属性值:
 SetCustomItemValue 装备位置 属性位置(0~9) (控制符+-=) 属性值

 [@设定武器第一个绑定属性的属性值:]
 #IF
 #ACT
 SetCustomItemValue 1 0 + 10
 SENDMSG 6 武器的第一个绑定属性值+10

 获取装备的自定义属性值:
 GetCustomItemValue 装备位置 属性位置(0~9) 变量1 变量2
 变量1为保存属性值
 变量2是否为百分比,是为1,否为0

 [@获取武器第一个绑定属性的属性值:]
 #IF
 #ACT
 GetCustomItemValue 1 0 <$STR(N1)>
 SENDMSG 6 武器的第一个绑定属性的属性值为:<$STR(N1)>

 [@获取武器第一个绑定属性的属性值+百分比状态:]
 #IF
 #ACT
 GetCustomItemValue 1 0 <$STR(N1)> <$STR(N2)>
 SENDMSG 6 武器的第一个绑定属性的属性值为:<$STR(N1)>是否为百分比:<$STR(N2)>

修改自定义装备属性:
 SetCustomItemAbil装备位置 属性位置(0~9) 属性类型(0~4) 属性值

 属性类型(0~4 参数3) :
 0:参数4表示该属性显示的颜色(0~255)
 1:参数4表示该属性绑定哪个属性(0~17),必须绑定,否则该属性无效,登陆器不会显示
 参数4绑定类型值:
 0没有绑定
 1绑定AC
 2绑定MAC
 3绑定DC
 4绑定MC
 5绑定SC
 6绑定MaxHP
 7绑定MaxMP
 8~17为10个无属性的
 2:参数4表示在属性框里的显示位置值(0~255;显示位置值相同的显示在同一行)
 3:参数4表示该属性是否是百分比属性(0~1;0=非百分比;1=百分比)
 4:参数4表示模块ID(0-14)
 模块ID代码如下
 0. 默认值(即:自定义属性)
 1. 装备名称
 2. 顶行描述
 3. 装备图标(Ask)
 4. 升级次数(星星)
 5. 自定义进度条
 6. 基础属性
 7. 凹槽信息
 8. 元素属性
 9. 自定义属性
 10. 投保信息
 11. 物品来源
 12. 卖给商店
 13. 套装信息
 14. 物品描述

 ;将装备自定义属性显示到 物品来源
 SetCustomItemAbil 1 0 4 11


 [@修改武器第一个自定义属性的颜色]
 #IF
 #ACT
 SetCustomItemAbil 1 0 0 249
 SENDMSG 6 修改武器的第一个自定义属性的颜色修改为红色

 [@修改武器第一个自定义属性的绑定属性]
 #IF
 #ACT
 SetCustomItemAbil 1 0 1 1
 SENDMSG 6 修改武器的第一个自定义属性的绑定属性修改AC增加人物防御


 [@修改武器第一个自定义属性的显示位置]
 #IF
 #ACT
 SetCustomItemAbil 1 0 2 0
 SENDMSG 6 修改武器的第一个自定义属性的显示位置为第一位显示

 [@修改武器的自定义属性显示在同一行]
 #ACT
 SetCustomItemAbil 1 0 2 0
 SetCustomItemAbil 1 1 2 0
 ;第四个参数相同的会显示在同一行
 SENDMSG 6 修改武器的第一个自定义属性和第二个自定义属性显示在同一行

 [@修改武器第一个自定义属性的显示为数值]
 #IF
 #ACT
 SetCustomItemAbil 1 0 3 0
 SENDMSG 6 修改武器的第一个自定义属性的属性为数值方式增加

 [@修改武器第一个自定义属性的显示为百分比]
 #IF
 #ACT
 SetCustomItemAbil 1 0 3 1
 SENDMSG 6 修改武器的第一个自定义属性的属性为百分比方式增加


 获取自定义装备属性:
 GetCustomItemAbil装备位置 属性位置(0~9) 属性类型(0~4) 变量名
 0:获取该属性显示的颜色(0~255)
 1:获取该属性绑定哪个属性(0~17)
 2:获取在属性框里的显示位置值(0~255;显示位置值相同的显示在同一行)
 3:获取该属性是否是百分比属性(0~1;0=非百分比;1=百分比)

 [@获取武器第一个自定义属性的颜色]
 #IF
 #ACT
 GetCustomItemAbil 1 0 0 <$STR(N1)>
 SENDMSG 6 获取武器的第一个自定义属性的颜色为<$STR(N1)>

 [@获取武器第一个自定义属性的绑定属性]
 #IF
 #ACT
 GetCustomItemAbil 1 0 1 <$STR(S1)>
 SENDMSG 6 获取武器的第一个自定义属性的绑定属性为<$STR(S1)>

 [@获取武器第一个自定义属性的显示位置]
 #IF
 #ACT
 GetCustomItemAbil 1 0 2 <$STR(N1)>
 SENDMSG 6 获取武器的第一个自定义属性的显示位置为<$STR(N1)>

 [@获取武器第一个自定义属性的显示方式(0~1;0=非百分比;1=百分比)]
 #IF
 #ACT
 GetCustomItemAbil 1 0 3 <$STR(N1)>
 SENDMSG 6 获取武器的第一个自定义属性的属性增加方式为<$STR(N1)>



 ============================================================================================

 锁定装备更新:LockUpdateItem 装备位置
 更新装备到客端: UpdateItem 装备位置

 【★★注意★★:有 LockUpdateItem 必须有 UpdateItem;反过来说UpdateItem可以单独使用】
 【★★注意★★:当调用两次锁定武器更新 LockUpdateItem 1; LockUpdateItem 1 时,必须调用两次 UpdateItem 1; UpdateItem 1 武器才会刷新到客户端】
 【★★★★★★脚本实例:★★★★★★】

 ;★★★★ 锁定头盔更新 由于下面是对头盔的批量操作,锁定后,对头盔进行操作不会向客户端发包,直到 UpdateItem 4的出现,减少网络包的流量
 LockUpdateItem 4
 SetCustomItemText 4 [高级属性]
 SetCustomItemTextColor 4 146
 SetCustomItemAbil 4 2 1 3
 SetCustomItemAbil 4 3 1 4
 SetCustomItemAbil 4 4 1 5
 SetCustomItemAbil 4 5 1 6
 SetCustomItemAbil 4 6 1 7
 SetCustomItemAbil 4 2 0 250
 SetCustomItemAbil 4 3 0 250
 SetCustomItemAbil 4 4 0 250
 SetCustomItemAbil 4 5 0 250
 SetCustomItemAbil 4 6 0 250
 ;★★★★解锁并更新头盔到客户端
 UpdateItem 4



 =====================================================================================================================

 无绑定属性函数总和的常量

 NPC命令,计算人物所有装备绑定属性之和(主要计算“绑定无属性”的属性值):

 GetAllCustomItemValue 属性位置 变量1 变量2 值位置(0,1,2;0或空表示设置第一个值) 变量3
 属性位置 (1绑定AC 2绑定MAC 3绑定DC 4绑定MC 5绑定SC 6绑定MaxHP 7绑定MaxMP 8~57为49个无属性的 更多属性持续增加中)
 变量1:非百分比值和
 变量2:所有物品之单件物品百分比值之和
 变量3: 所有物品之全身物品百分比值之和

 示范脚本:

 [@main]
 <查看人物共有的多少点:【自定义属性1】/@查看自定义属性1总和>
 <查看人物共有的多少点:【绑定无属性1】/@查看绑定无属性1总和>

 [@查看绑定无属性1总和]
 #act
 ;命令 属性位置(0-17) 当前人物值 当前人物百分比
 GetAllCustomItemValue 0 N$自定义属性1值 N$自定义属性1百分比
 SENDMSG 6 提示:您一共拥有“<$STR(N$自定义属性1值)>点自定义防御属性”和“<$STR(N$自定义属性1百分比)>%自定义防御属性”!

 [@查看绑定无属性1总和]
 #act
 ;命令 属性位置(0-17) 当前人物值 当前人物百分比
 GetAllCustomItemValue 8 N$绑定无属性1值 N$绑定无属性1百分比
 SENDMSG 6 提示:您一共拥有“<$STR(N$绑定无属性1值)>点绑定无属性1”和“<$STR(N$绑定无属性1百分比)>%绑定无属性1”!


 ;写入一个自定义属性到武器上面的示范
 mov n$装备位置 1
 ;1表示武器位置
 mov n$属性位置 0
 ;第几个属性(0-19)
 mov n$属性类型 1
 ;属性类型(0~4 参数3) ,值0时表示修改属性的颜色,为1时表示绑定哪个属性(参考自定义属性面板,1-60)为2时属性显示的位置(数值小的显示再前面),属性3时(是否百分比,0=非百分比,1=单件装备属性百分比,2=全身属性百分比)注意:该参数与参数4挂钩
 mov n$本条属性定义 3
 SetCustomItemAbil <$str(n$装备位置)> <$str(n$属性位置)> <$str(n$属性类型)> <$str(n$本条属性定义)>
;定义了一条自定义属性的类型, 通常该命令会被定义几次
 mov n$输出属性$$1 100
 mov n$输出属性$$2 200
 mov n$输出属性$$3 300
 SetCustomItemValueEX <$str(n$装备位置)> <$str(n$属性位置)> = <$str(n$输出属性$$1)> <$str(n$输出属性$$2)> <$str(n$输出属性$$3)>
;给这属性赋值

 ;获取上面属性的示范=======================================================================================
 GetCustomItemValueEx <$str(n$装备位置)> <$str(n$属性位置)> <$str(n$该条属性是否百分比)> <$str(n$获取属性$$1)> <$str(n$获取属性$$2)> <$str(n$获取属性$$3)>
;n$该条属性是否百分比,0=该条属性非百分比类型,1等于该属性为单件装备属性百分比类型,2等于该属性为全身属性百分比类型(这个值只能获取到0-2)


 根据Text变量行数查看全身无绑定属性的合计值
 GetAllCustomItemValueByTextLine 属性位置 属性值类型 Text变量行数 变量1 变量2 变量3
 属性位置 (1绑定AC 2绑定MAC 3绑定DC 4绑定MC 5绑定SC 6绑定MaxHP 7绑定MaxMP 8-60:绑定无属性)
 属性值类型(-1:不限; 0:点数; 1: 单件百分比; 2:全身百分比)
 变量1:属性值1合计
 变量2:属性值2合计
 变量3:属性值3合计
 GetAllCustomItemValueByTextLine 22 -1 3 N1 N2 N3
 SendMsg 6 合计(值1:<$Str(N1)>;值2:<$Str(N2)>;值3:<$Str(N3)>)

 =====================================================================================================================

 文字支持单行文字颜色自定义 插入:{文字内容|文字颜色0-255}

=====================================================================================================================

 相关说明:
 只改物品的属性,需用LOCKUPDATEITEM
 ---------
 物品在人物身上。
 LOCKUPDATEITEM XX
 UPDATEITEM

 --------------
 物品不在人物身上
 LOCKUPDATEITEM XX
 UPDATEITEM

 如:
 如果是修改 衣服位置的。就要这样写:

 LockUpdateItem 0
 ;.............................对身上的衣服进行一堆的操作 ..............................
 updateitem 0


 ------------2019年更新扩展-------------
 扩展:自定义属性扩展为60个
 扩展:自定义属性的值扩展为3个
 扩展:自定义属性绑定显示扩展为80个字符
 修改:自定义属性显示变量$$修改为$$1, $$2, $$3,如果有显示中有变量,请将$$改为$$1
 -----------------------------------------------------------------------------------------------------------------
 GetCustomItemValue 装备位置 属性位置(0~9) 变量1 变量2 值位置(0,1,2;0或空表示设置第一个值)
 获取装备的自定义属性值:
 GetCustomItemValue 装备位置 属性位置(0~9) 变量1 变量2 值位置(0,1,2;0或空表示设置第一个值)
变量1为保存属性值
 变量2是否为百分比,是为1,否为0

 GetAllCustomItemValue 属性位置 变量1 变量2 值位置(0,1,2;0或空表示设置第一个值)
属性位置 (1绑定AC 2绑定MAC 3绑定DC 4绑定MC 5绑定SC 6绑定MaxHP 7绑定MaxMP 8~57为49个无属性的 更多属性持续增加中)
 变量1:非百分比值和
 变量2:百分比值之和

 CheckCustomItemValue 装备位置 属性位置(0~9) (检测符><=) 检测值 值位置(0,1,2;0或空表示设置第一个值)
----------------------------------------------------------------------------------------------------------------------
 设置自定义装备属性值扩展:
 SetCustomItemValueEx 装备位置 属性位置(0-19) 属性值1 属性值2 属性值3
 获自定义装备属性值扩展:
 GetCustomItemValueEx 装备位置 属性位置(0-19) 百分比变量 属性值1变量 属性值2变量 属性值3变量

 示例:
 ;设置衣服自定义装备属性0的值1,值2,值3
 SetCustomItemValueEx 0 0 = 1 2 3
 ;获取衣服自定义装备属性0的:百分比显示、值1、值2、值3
 GetCustomItemValueEx 0 0 N1 N2 N3 N4
 SENDMSG 6 衣服自定义属性0的:百分比显示(<$STR(N1)>) 值1(<$STR(N2)>) 值2(<$STR(N3)>) 值3(<$STR(N4)>)
 ----------------------------------------------------------------------------------------------------------------------
 自定义属性增加了参数控制是否隐藏显示
 ----------------------------------------------------------------------------------------------------------------------
 自定义装备属性高级显示 text在M2-选项-自定义装备属性设置text处设置

 支持TEXT变量显示
 :{[$$1-$$3]|249}
 无属性支持: 多个text变量显示
 text支持:$$变量显示

 例
 例如:
 无属性18,
 假设:
 $$1=1
 $$2=10
 text变量内容如下:
 第1行={攻击时,有|146}{[$$2%]|021}{机率使目标冰冻|146}
 第2行={攻击时,有|146}{[$$2%]|021}{几率偷去敌人$$3生命值|146}
 “那么实际的效果就是, 攻击时,有10%机率使目标冰冻”
 这样 无属性18的 的功能 就可以非固定 可以是吸血,可以是冰冻

支持颜色自定义:
 默认颜色{红色文字|249}

 ^分隔,当分隔内容中的变量值为0时不显示
 攻击:$$1 ^魔法:$$2 ^道术:$$3

 自定义属性增加分行“\”显示

 ----------------------------------------------------------------------------------------------------------------------