本帖最后由 Saukiya 于 2021-10-6 10:41 编辑
SX-Attribute - 物品属性插件 Version V2.0.3
专业随机三十年,Name/Lore/ID/Enchant 完美逻辑随机
本帖插件及内容禁止任何人转载到任何地方
ps: 准备将SX-Attribute和SX-Item拆分
插件简介
SX-Attribute是一款强大的 RPG属性插件,它可以为你的服务器提供 34+属性标签,通过随机算法而诞生的品质系统、物品关联职业系统是本插件最大特色,待会会讲到。其次,可以设置每个武器的攻击速度,配合1.9新特性,战斗中可显示触发效果面板,能让玩家感受到更多的战斗乐趣。并且可以通过权限(职业)、主副手来限制使用它,异步计算属性数据以减少主线程负担,长期的改善减少了大量的bug,并且支持 RPGInventory 装备识别、 Mythicmobs 穿戴及掉落。希望你会喜欢。
插件特点
- 多达 34+种属性标签,可直接在任何物品lore内生效,可外部注册新属性
- 可以将 全部属性 计算为战斗点数,所有属性支持PlaceholderAPI变量
- 支持主手/副手、职业判定、等级限制使用!
- 属性同时对怪物生效,可以将设置在Myticmobs怪物的装备中
- 异步计算属性数据,减少服务器耗能
- 属性支持正负加减
- 可以删除原版默认护甲、攻击力,不是隐藏而是删除!并且支持全服清理原版默认标签!
- 支持原版1.9伤害计量器特性!根据蓄力时长获得满额伤害!可通过Lore调整攻击速度!
- 血条压缩功能,可设定压缩血条量,血量低于压缩值自动不压缩
- 全息显示伤害信息面板,最多有15种效果显示,并且会在右侧显示,不会阻碍视线
- 触发效果会提示攻击方、受伤方,可以是聊天框、Title、Actionbar三种显示方案
- GUI展示全部属性,并且可以100%自定义GUI内的文本!支持PlaceholderAPI变量
- 掉落物名字展示,可以只展示有名字的掉落物!
- 可以在Config中禁止盾牌右键造成的无敌bug,对于rpg服有很好的效果
- 随机数值,随机字符串组,可以用在任意区域(Name/Lore),让每个武器都不相同
- 支持Mythicmobs掉落,在怪物掉落内填写 "- sx 物品编号 数量(可随机) 几率"即可
- 支持RPGInventory装备读取,读取GUI内所有物品,可设置部分格子不读取。
- 更方便的搜索存储物品,支持保存附魔/头颅/ItemFlag。更好的管理数据,带搜索功能
- 类似RPGItems的物品更新机制,此功能对于有镶嵌强化系统的服务器需慎用,默认关闭
- 为开发者提供一套完整的API、属性更新事件、属性、条件、指令注册
- 100%自定义消息文件,可自由切换玩家消息的输出方式(Message/Title/Actionbar)
- 以上功能均可在设置内开启关闭
标签介绍
属性标签:
- 攻击力 - 基础伤害,包括弓1、剑等,支持最小-最大伤害 例: 攻击力: 200-500 [不支持负数]3
- PVP攻击力 - 只针对玩家的伤害,支持最小-最大PVP伤害 [不支持负数]
- PVE攻击力 - 只针对怪物的伤害,支持最小-最大PVE伤害 [不支持负数]
- 命中几率 - 抵消 闪避几率 的效果
- 破甲几率 - 无视对方防御力、反射、格挡等防御效果,造成真实伤害
- 暴击几率 - 增加玩家暴击几率
- 暴击伤害 - 增加暴击所造成的伤害
- 吸血几率 - 增加玩家的吸血几率
- 吸血倍率 - 触发吸血时回复部分 已造成2 的伤害血量
- 点燃几率 - 造成2-5秒的燃烧效果
- 凋零几率 - 造成2-5秒的1-2级凋零效果
- 中毒几率 - 造成2-5秒的1-2级中毒效果
- 失明几率 - 造成2-5秒的1-2级失明效果
- 缓慢几率 - 造成2-5秒的1-2级缓慢效果
- 雷霆几率 - 造成单独的0-10%当前生命值雷霆伤害
- 撕裂几率 - 造成3秒内不同频率的总共4-12%当前生命值撕裂伤害
- 生命上限 - 提高血量最大上限值
- 生命恢复 - 每秒恢复的血量值
- 防御力 - 基础防御,伤害值为: 攻击力-防御力,支持最小-最大防御 例: 防御力: 200-400 [不支持负数]3
- PVP防御力 - 只针对玩家的防御,支持最小-最大PVP防御 [不支持负数]
- PVE防御力 - 只针对怪物的防御,支持最小-最大PVE防御 [不支持负数]
- 闪避几率 - 一定几率完全闪避本次伤害,优先级大于 破甲效果 并且有向后闪避动作
- 韧性 - 抵消 点燃、凋零、点燃等几率效果
- 反射几率 - 一定几率将伤害反弹给攻击者 触发反射时,格挡无法生效
- 反射伤害 - 每次反射的 已造成 伤害百分比
- 格挡几率 - 一定几率格挡伤害 触发格挡时,反射无法生效
- 格挡伤害 - 每次格挡的 已造成 伤害百分比
- 经验加成 - 提高每次获得的经验值百分比
- 速度 - 提高移动速度
规则标签:
- 主手/副手 - 当装备lore中写了只支持主手时,装在副手无法使属性生效
- 攻击速度 - 主手武器属性 例: 攻击速度: +50% 根据不同武器的默认攻击速度而调整增幅
- 限制职业 - 需要一定权限才允许使用该物品,例: 限制职业: 战士 - 所需权限: sx-attribute.战士
- 限制等级 - 限制玩家的最低使用等级
- 到期时间 - 限制玩家的使用期限
- 售出价格 - 设置物品的售出价格,在/sx sell 界面中进行售出
- 耐久度 - SX-Attribute的耐久度可以用于所有物品。物品在有耐久条的情况下,可同步物品本身耐久条进度。
统计标签: (非Lore标签)
- 战斗力 - 根据玩家当前属性换算成战斗力数值,可以在Config.yml的每个属性下方的Value中调整
注释:
1使用弓近战不会使弓的属性生效
2已造成的意思是攻击-暴击-破甲/防御-反射-格挡后剩余的伤害值。
3除了攻击力、防御力不支持负数以外,其余都支持。在所有属性计算完毕后,最终属性为负数的将会被自动纠正为零。
图文介绍一定规律?我的预设物品中,物品品质分三级:普通、优秀、史诗 普通的触发几率为10-30%、0-8% 优秀则是20-40%、8-16% —— 史诗30-50%、16-24% 物品的武器材质、耐久度、宝石槽数量(可用其他插件支持)、是否无法交易,都可以通过品质来决定 其次就是职业:射手、战士、剑士的区别了 普通品质没有限制职业,只有优秀和史诗有这个 职业可以直接与物品ID关联,也可以配合品质达到分级效果 他们都用到了随机字符串,接下来都会讲到
—— 战斗状态-动态血条/动态增长/全息面板 —— 提供BossBar显血、头顶显血、全息面板显示攻击触发特效 支持显示回血、多血条,不受扫荡攻击影响 不会出现 “玩家 Saukiya 被 ▊▊▊▊▊▊▊▊▊▊ 击杀了” 的问题 触发特效消息可从Title、ActionBar、Message三者切换
只需要在Message.yml中将前缀 [ACTIONBAR] 换成 [TITLE] 或者删除。 直接删除单行消息文本,可以关闭某些消息/全息面板的输出。
插件采用GUI方式显示属性,自带隐藏多余为零的属性 并且GUI内的文本都能在Message.yml中自行修改 你可以在里面加入其他插件的Placeholder变量,来丰富个人信息面板
指令配置
指令: 附带权限介绍 必备权限 sx-attribute.use
- /sx stats - 查看属性
- /sx sell - 打开售出界面 再说我写反试试 :)
- /sx repair - 打开修理界面
- /sx give <itemName> <player> <amount> - 给予玩家RPG物品
- /sx save <itemName> - 保存当前的物品到配置文件 加[-a]完全保存
- /sx nbt - 查看当前手持物品的NBT数据
- /sx displaySlot - 显示可装载物品的槽位(RegisterSlot功能 请看Config介绍)
- /sx attributeList - 查看当前属性信息列表
- /sx conditionList - 查看当前条件信息列表
- /sx reload - 重新加载这个插件的配置
- 使用权限: sx-attribute.use
- 指令权限: sx-attribute.子指令 (例:sx-attribute.give)
复制代码 |
配置: Config.yml 195行
消息: Message.yml 原144行
详细介绍
RandomString —— 随机字符串 首先我们要认识一下,我们的三种随机方法:
1.整数随机:
<r:最小值_最大值> 从最小到最大数的随机值
当<r:500_8000>时 那么数值会在500-8000中诞生
如何利用整数做出 小数随机?很简单,两个<r:>配合就好了 (*/ω\*)
例如:“暴击几率: +<r:0_9>.<r:1_99>%” 那么这个随机数值会在 0.1-9.99% 之间随机
2.普通文本随机:
<s:随机字符名> 从随机字符列表中随机替换文本
假设有个字符组叫做 <DefaultPrefix>,里面有 "夜幕摸过的" "残叶碰过的" "坏坏抱着睡的" 三行文本
那么 "<s:DefaultPrefix>抱枕" 能随机出来的文本就有三种可能:
- "夜幕摸过的抱枕"
- "残叶碰过的抱枕"
- "坏坏抱着睡的抱枕" */ω\*
允许随机字符内部放置随机字符,但不允许无限循环导致崩溃
3.固定文本随机:
<l:随机字符名> 从随机字符列表中随机替换文本 然后锁定这条随机值 提供下次使用
再配合 <普通文本随机> 那么就能让物品跟品质有关联了
假设有个字符组叫做 <品质>,里面有 "普通" "优秀" "史诗" 三行文本
然后再配合三个字符组:<普通属性> <优秀属性> <史诗属性>
我们只需要写 <s:<l:品质>属性> 即可!
并且在接下来的随机中能反复读取被固定的<l:品质>字符串
4.时间动态变量:
<t:时间(单位:s)> 获取一定秒数后的时间格式
当'到期时间: <t:86400>'时 那么这个物品的使用期限为1天
支持使用以上3项随机字符串嵌套,例如'<t:<r:20000_60000>>'
也支持显示获得时间: '获得时间: <t:0>'
注意!在随机文本中插入"\n"可以达到换行效果
4.物品配置示范:
- 默认一:
- Name: <s:DefaultPrefix> &c炎之洗礼 <s:DefaultSuffix> <s:<l:品质>Color><l:品质>
- ID:
- - 267 #可以是正常的 -> ID: 267
- - 268 #同时可以使用 RandomString
- - 276 #也可以是列表式 -> ID:
- - 283 #列表式即可随机ID - 267
- Lore:
- - '&6品质等级: <s:<l:品质>Color><l:品质>'
- - '&6限制手持: 主手'
- - '&6限制等级: <s:<l:品质>等级-10>级'
- - '&c攻击力: +<s:<l:品质>攻击-10>'
- - <s:<l:品质>攻一-10>
- - <s:<l:品质>攻二-10>
- - <s:<l:品质>攻三-10>
- - <s:<l:品质>攻四-10>
- - '&r'
- - '&7耐久度: <r:200_500>/<r:500_600>'
- - '&r'
- - '<s:DefaultLore>'
- Unbreakable: false
复制代码 5.物品示范截图:
|
ItemDataManager —— 物品配置 随机ID物品、随机Lore、彩色皮革、头颅
1.保存选项说明:
Name:
设置物品名称 支持RandomString
ID:
设置物品ID 支持RandomString 支持列表随机式输入
Lore:
设置物品Lore 支持RandomString 支持PlaceholderAPI变量
EnchantList:
设置物品附魔
格式: "<附魔英文>:<附魔等级>"
相关资料: https://docs.windit.net/Chinese_ ... ts/Enchantment.html
ItemFlagList:
设置物品隐藏选项
格式: "<ItemFlag英文>"
相关资料: https://docs.windit.net/Chinese_ ... ntory/ItemFlag.html
Unreakable:
设置物品是否为无限耐久
Color:
设置皮革物品的颜色
格式: "R,G,B"
SkullName:
设置玩家头颅的展示ID
2.物品配置示范:
- 配置示范-头颅:
- Name: <s:DefaultPrefix> &c我只是个示范头颅 <s:DefaultSuffix>
- ID: '397:3'
- Lore:
- - '&6品质等级: <s:<l:品质>Color><l:品质>'
- - '&6限制等级: <s:<l:品质>等级-10>级'
- - '&c防御力: +20'
- - '&r'
- - '<s:DefaultLore>'
- EnchantList:
- - DURABILITY:5
- ItemFlagList:
- - HIDE_ENCHANTS
- - HIDE_UNBREAKABLE
- SkullName: Notch
- Unbreakable: true
- 配置示范-皮革:
- Name: <s:DefaultPrefix> &c我只是个示范皮革 <s:DefaultSuffix>
- ID:
- - '29<r:8_9>'
- - '30<r:0_1>'
- Lore:
- - '&6品质等级: <s:<l:品质>Color><l:品质>'
- - '&6限制等级: <s:<l:品质>等级-10>级'
- - '&c防御力: +<r:20_50>'
- - '&r'
- - '<s:DefaultLore>'
- EnchantList:
- - DURABILITY:5
- - PROTECTION_ENVIRONMENTAL:3
- ItemFlagList:
- - HIDE_UNBREAKABLE
- Color: 123,111,126
- Unbreakable: true
复制代码
3.物品配置截图:
4.搜关键词功能:
搜索格式: '/sx give <关键词>'
|
MythicmobsDrops —— 怪物掉落 这里的介绍比较简短,但是用起来很方便
掉落填写格式: - 'sx <物品编号> [物品数量] [掉落概率]'
1.怪物配置示范:- SkeletalKnight:
- Type: WITHER_SKELETON
- Display: 'SkeletalKnight'
- Health: 100
- Damage: 8
- Drops:
- - sx 默认一 5-50 0.5 #50% 几率掉落 5-50 个 默认一 物品
- - sx 默认二 #掉落 1 个 默认二 物品
- - sx 默认三 1-2 #掉落 1-2 个 默认三 物品
- - sx 默认四 1 0.001 #0.1% 几率掉落 1 个 默认四 物品
- Options:
- MovementSpeed: 0.5
复制代码
如果物品编号填写错误,后台会有信息警告:
- [13:34:11 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认三
- [13:34:20 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认三
- >mm reload
- [13:34:26 INFO]: MythicMobs has been reloaded!
- [13:34:29 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认三
- [13:34:29 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认四
- [13:34:32 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认三
- [13:34:39 INFO]: [SX-Attribute] Mythicmobs怪物: SkeletalKnight 不存在这个掉落物品: 默认四
复制代码
2.怪物掉落截图:
|
MythicmobsEquipment —— 怪物装备 穿上去,让怪物都能一刀暴击999!
穿戴填写格式: - 'sx <物品编号>:<穿戴位置> [穿戴概率]'
注意: 本插件暂不干扰MM怪的生命值修正,以后可能会提供设置
1.怪物配置示范:
- SkeletalKnight:
- Type: WITHER_SKELETON
- Display: 'SkeletalKnight'
- Health: 100
- Damage: 8
- Equipment:
- - KingsCrown:4 #MM原版:头上戴个金帽子
- - sx 默认一:0 #在手上设置一个 默认一 物品
- - sx 默认二:1 0.5 #50%几率在脚上设置一个 默认二 物品
复制代码
2.穿戴位置介绍:
- -1 是 副手物品 注: 部分怪物会出现无法显示的现象
- 0 是 主手物品
- 1 是 鞋子
- 2 是 裤子
- 3 是 衣服
- 4 是 帽子
3.怪物穿戴截图: 因为默认一就是随机ID 所以就是这个效果
|
PlaceholderAPI —— 属性变量 总共有42项属性变量
标签变量列表:
- %sx_damage% - 攻击力总显
- %sx_minDamage% - 最小攻击力
- %sx_maxDamage% - 最大攻击力
- %sx_pvpDamage% - PVP攻击力总显
- %sx_pvpMinDamage% - PVP最小攻击力
- %sx_pvpMaxDamage% - PVP最大攻击力
- %sx_pveDamage% - PVE攻击力总量
- %sx_pveMinDamage% - PVE最小攻击力
- %sx_pveMaxDamage% - PVE最大攻击力
- %sx_hitRate% - 命中几率
- %sx_real% - 破甲几率
- %sx_critRate% - 暴击几率
- %sx_crit% - 暴击伤害
- %sx_lifeStealRate% - 吸血几率
- %sx_lifeSteal% - 吸血倍率
- %sx_ignition% - 点燃几率
- %sx_wither% - 凋零几率
- %sx_poison% - 中毒几率
- %sx_blindness% - 失明几率
- %sx_slowness% - 缓慢几率
- %sx_lightning% - 雷霆几率
- %sx_tearing% - 撕裂几率
- %sx_defense% - 防御力总量
- %sx_minDefense% - 最小防御力
- %sx_maxDefense% - 最大防御力
- %sx_pvpDefense% - PVP防御力总量
- %sx_pvpMinDefense% - PVP最小防御力
- %sx_pvpMaxDefense% - PVP最大防御力
- %sx_pveDefense% - PVE防御力总量
- %sx_pveMinDefense% - PVE最小防御力
- %sx_pveMaxDefense% - PVE最大防御力
- %sx_health% - 生命上限
- %sx_healthRegen% - 生命恢复
- %sx_dodge% - 闪避几率
- %sx_toughness% - 韧性
- %sx_reflectionRate% - 反射几率
- %sx_reflection% - 反射伤害
- %sx_blockRate% - 格挡几率
- %sx_block% - 格挡伤害
- %sx_expAddition% - 经验加成
- %sx_speed% - 移动速度
- %sx_value% - 战斗力点数
|
下载地址 - 请下载3.4.0版本,原2.0.3版本不维护
插件下载(*已过时*): 使用统计- SX-Attribute V3.4.0 长期维护 -> 点击此处
SX-Attribute 1.9-1.12 ->
SX-Attribute 1.13 ->
插件版本: V2.0.3 - 18/12/5 1:10 -
可选前置: PlaceholderAPI / HolographicDisplays / MythicMobs / RPGInventory / SkillAPI
插件作者: Saukiya
插件源码: Github GPLv3
相关附属(*已过时,请看新链接相关附属*):
- SX-Level - 一个等级控制系统插件,可以根据权限控制玩家的最大等级
- SX-Resource - RPG额外材质包,只需要高清修复mod,即可修改武器饰品外观(原作者已不维护)
相关资料:
- 暗黑机制模板 - 参考暗黑破坏神装备生成机制编写的随机物品模板
更新记录:V2.0.3 - 18/12/5
- 修正对catserver的gui支持
- 血量最低限制为1,防止血量设置错误导致假死
- 可关闭stats界面的头颅皮肤
V2.0.2 - 18/11/8
- 修正来自RPGInventory某作死事件而产生的刷物品bug
- 物品可以完全存储了
- 现在适配1.13.2版本(需使用英文ID, 具体ID请用/sx nbt 或其他插件查询)
V2.0.1 - 18/9/28- 修正attributeList指令空指针问题
- 修正玩家退出时产生的问题
- 修正指令权限错误问题 恢复之前效果
- 修正RPGInventory无法正确识别问题
- 部分性能优化
- 优化了SX内部事件
V1.3.9 - 18/9/8
- RPGInventory现在仅支持2.1.7左右的版本
V1.3.8 - 18/8/29
- 耐久度调整为标签 可在Config内设置 耐久度为0时是否消失 (Config以及Message各多加一行)
- 生命属性支持 SkillAPI
- 修复部分腐竹的金币系统无法使用问题
- 时间条件标签添加线程池
- 属性update事件有变动
V1.3.4 - 18/8/22 11:22
- 速度标签默认字符串修改: "速度" -> "移动速度"
- 检测插件运行判断有误,导致holo变量出错
- 修改了反射伤害的秘制问题(因为反射导致攻击方满血)
- 修改了吸血量不对问题(最终伤害计算有误,所读取数值不正确)
- 修复生命不正常,为吸血添加了生命恢复事件
- Placeholder变量有所调整,%sx_critDamage% -> %sx_crit% , %sx_crit% -> %sx_critRate%
V1.3.2 - 18/8/21 20:40
- 添加指令 /sx attributeList 查看属性的详细信息
- 添加指令 /sx conditionList 查看条件的详细信息
- SX-Stats 正式更名为 SX-Attribute
- 属性、条件、指令系统重制,可外部注册- 血量显示更新
- 配置文件根据版本自动备份
- 插件数据全面封装,仅保留SXAttributeAPI接口
- 插件Placeholder变量动态化,每个属性可以设置自己的多个papi变量
V1.2.0 - 18/7/29 16:50
- 增加了:RegisterSlot 玩家背包相应位置读取指定饰品装备(饰品、戒指、项链)
- 增加了:/sx displaySlot 展示相应位置指令,能让玩家确切的知道在哪个槽位安装什么饰品。
- 增加了:手持 RegisterSlot 指定装备时不会增幅属性,你也可以在0-9槽设置饰品,而不用担心属性bug。
- 修改了:SXStatsAPI 中 updateMainData(Player); 方法改名为 updateHandData(Player);
- 增加了:UpdateSlotStatsEvent 指定饰品装备的更新事件
- 注明:RegisterSlot 在 RPGInventory 运行的情况下不会工作
V1.1.9 - 18/7/25 17:00
- 附魔效果可以使用随机字符串了(参见默认物品文件配置 根据物品ID类型提供不同附魔)
- 所有随机字符串都可以通过 \n 来换行了 (例: 暴击几率:<r:12_24>%\n暴击伤害:<r:30_50>%)
- 经验加成对SX-Level进行连接
- 版本1.12.2 不再因为没有安装 HolographicDisplays 而无法计算伤害
V1.1.7 - 18/6/28 23:31
- 添加了StatsData转Map方法
- 添加了StatsData加载Map方法
- 添加了SXStatsAPI各个方法:
- 获取物品 - getItem(String itemKey, Player player) return ItemStack
- 物品编号列表 - getItemList() return Set<String>
- 获取物品的限制等级 - getItemLevel() return int
- 获取实体等级 - getEntityLevel() return int
- 更新手持属性 - updateMainData() void
- 更新手持+装备属性 - updateEquipmentData() void
V1.1.6 - 18/6/26 17:01
- 无限耐久弓含有耐久值lore时,正常扣取耐久度
- 吸血显示修复正确数值
- 1.9.0-1.10.2耐久度经测试修复完毕
V1.1.5 - 18/6/20 10:28
- 耐久消耗添加了对“无法破坏”标签的支持
V1.1.4 - 18/6/19 01:48
- 防止1.10.2以下版本耐久度无法正常工作
- Maven太可怕了
- /sx save 保存子ID(代表支持保存rpginv的饰品)
V1.1.3 - 18/6/18 01:48
- 盔甲识别出小bug,已修复
- 防止1.10.2以下版本无法正常使用/sx sell指令
V1.1.1 - 18/6/18 17:52
- 全面优化代码架构
- 伤害信息添加instanceof检测LivingEntity(忘记了)
V1.1.0 - 18/6/17 0:35
- 使用 Maven 编写插件
- 1.12.2 无法关联MythicMobs的问题
- RPGInventory 完美兼容
- 修复/撕裂/中的声音转换报错
- /sx sell 优质的售出按钮界面
- /sx repair 优质的耐久度修复界面
- 添加规则标签 -> 到期时间: 限制使用的日期,用于活动型物品
- 除了主副手位置检测,现在添加了护具列表检测,防止玩家将护具拿在手上使属性生效
- BStats 数据统计
- 封装 StatsDataManager,StatsAPI接口照常开放
V1.0.3 - 18/6/8 0:57
- 解除读取延缓0.5秒机制,防止每次快速切换武器时未能立即读到属性
V1.0.2 - 18/6/7 22:39
- 向下版本兼容到1.9
V1.0.1 - 18/6/7 14:09
- 补了造成生命吸取时的Battle提示
- 根据民众的决定,本次增加了吸血几率(LOL党鄙视这个) |
本插件所用所有代码均为原创
来自群组: PluginsCDTribe |