BBSMC Logo
模组整合包光影资源包软件汉化插件数据包地图
登录
模组插件数据包光影资源包整合包软件汉化地图
登录
设置

RoleSystem

提供仿照原神,鸣潮的角色队伍实现!

冒险游戏机制装备
441a year ago

RoleSystem

提供仿照原神,鸣潮的角色队伍实现!

44
1
冒险
游戏机制
装备

基本信息

我的世界Java版本

1.20.1

平台

Bukkit
\n \n \n \n \n Paper
\n \n \n \n \n \n \n \n \n \n \n Purpur
Spigot

运行环境

服务端

分类

冒险
游戏机制
装备

创作者

Mikoto_qiuhua Member

详情信息

许可证 保留所有权益/无许可证
发布于 2025-02-01
更新于 2025-03-02
简介更新日志版本百科反馈讨论

RoleSystem

RoleSystem是一款参考了原神的角色系统,提供大致一样的系统实现。

特色功能

  • GUI:大部分组件都能自定义,提供角色列表、技能信息、装备信息等。 并且允许查看他人角色信息,开发中角色隐藏。
  • 角色:角色的创建、技能分配、角色升级、基础属性、武器种类。
  • 技能:使用MythicMobs技能释放。多种技能触发方式,左右键、顺序按键(即为按下 右键->左键->左键)、快捷栏按键、DrawBowForce。即将兼容ArcartX以及UnrealCore的客户端按键监听。还提供了技能升级配置,动态技能数值显示。
  • 血量/装备隔离:每个角色都将拥有自己的血量存储以及装备存储。
  • 角色出战:可配置允许玩家同时上场多个角色,使用指定按键在战斗中进行切换,使用不同的技能和装备。
  • 武器提供:支持角色绑定一种武器类型,并且在使用该角色时提供武器到指定槽位。
  • 死亡复活:当玩家使用的角色死亡时,将会锁定,无法使用相关功能,需要复活该角色才能正常使用。
  • 套装:可配置套装效果,提升属性。或使用mm条件检查套装改变技能。
  • 属性:AttributeSystem 后续将兼容AttributePlus。
  • 弓箭机制:背包无需箭矢即可拉弓,提供DrawBowForce。
  • 存储:默认使用sqlite、支持mysql跨服。
  • BUFF:自带buff功能,可通过mm技能给玩家添加全局buff,或角色独享buff。

内置占位符以及一些说明

展开

角色需要权限才能解锁 权限节点为 RoleSystem.Role.<角色名称> 扩折号也要删掉 权限为永久解锁 也可以使用指令进行临时解锁 /RoleSystem unlock/lock 玩家名称 角色名称 解锁的角色立即可以使用 锁定的角色如果在出战则将在下次数据刷新时无法使用

技能yml内 {PlaceholderId} 返回指定的占位符   {Level} 返回技能等级 支持lore 支持name

角色yml内 {level} 返回等级 {state} 返回状态 {health} 返回角色血量 {maxhealth} 返回角色最大血量 支持lore 支持name

Config的出战按钮 {state} 返回状态 {roleId_1} 返回第一个场上角色 以此类推  无角色返回空  支持lore 支持name

Config内的LevelInfo按钮  {materials}返回材料名称 {value}返回需要的数量 {have}返回当前拥有  format格式内有效
{level}返回角色等级 {AttributesId} 返回指定的属性值 支持lore 支持name

{isUpgrade}  返回可以是否升级 可以替换的位置有 skill的展示物品    LevelInfo的物品 支持lore和名称

血量的占位符的加载 未加载前 是默认的20生命值 需要使用角色出战 才会加载生命值 因为需要再属性插件那边获取生命值
血量的占位符更新 仅在切换角色 恢复生命值 扣除生命值 关闭角色界面时刷新
最大生命值只有切换角色和关闭角色界面时刷新 会按当时的最大生命值记录  这两的默认值是config内的Attribute.baseHealth节点配置

插件适配

MythicMobs:提供大量的内置占位符以及技能

展开
[]为必填 {}为可选 可选的如不填则获取当前角色
<role.a.[属性名称].{角色名称}>  获取角色指定属性
<role.s.[技能名称].[属性名称].{角色名称}>  获取技能指定的属性
<role.al.{角色名称}>  获取角色等级
<role.sl.[技能名称].{角色名称}>  获取技能等级
<role.id.{顺序}>  获取角色名称 顺序从0开始
<role.h.{角色名称}>  获取角色当前生命值
<role.mh.{角色名称}>  获取角色当前最大生命值

切换角色技能
roleId可选 switchCd可选(单位毫秒) 均支持mm本身占位符解析
roleId: 玩家即将切换到的角色。不填则切换到无角色,填写的角色没有将不会切换
switchCd: 切换角色的冷却时间。如不填则按默认时间。
- roleSwitch{roleId=要切换的角色id;switchCd=冷却时间}

生命值恢复技能
health必填 isAll必填 roleId可选 均支持mm本身占位符解析
health:恢复的生命值量
isAll:是否进行全队恢复
roleId:指定恢复的角色 如不填则恢复当前角色
- roleHealth{health=恢复的生命值;isAll=是否全队回复;roleId=角色名称}

套装条件
roleId可选 tag必填 value必填
roleId:检查的角色名称 不填则使用当前角色
tag:套装的名称
value:需要的数量 这里支持使用mm的对比符号 例如 > < 1to2
- suitTag{roleId=角色名称,tag=套装id;value=数量}

buff技能
isAll:是否是全局buff 如果不是 则给当前使用角色添加
id:内部识别id 重复的刷新持续时间
time:持续时间 单位是tick 支持占位符
info:buff的属性词条 可添加多个 ,号分割 支持占位符
name:展示名称 支持占位符
- RoleAddBuff{isAll=false;id=buff内部id;time=持续时间;info="移动速度:<skill.var.buff效果1>,攻击力:<skill.var.buff效果2>%";name=展示名称}

PlaceholderAPI:提供大量的变量支持

展开
[]为必填 {}为可选 可选的如不填则获取当前角色
%role_a_[属性名称]_{角色名称}%  获取角色指定属性
%role_s_[技能名称]_[属性名称]_{角色名称}%  获取技能指定的属性
%role_al_{角色名称}%  获取角色等级
%role_sl_[技能名称]_{角色名称}%  获取技能等级
%role_id_{顺序}%  获取角色名称 顺序从0开始
%role_h_{角色名称}%  获取角色当前生命值
%role_mh_{角色名称}%  获取角色当前最大生命值

QiuhuaItemSpace:更便捷的装备材料操作

允许角色升级、技能升级时使用指定物品空间内的材料,无需再将材料放置在背包内。 允许在gui内显示指定物品空间的物品。例如显示装备空间,快捷拿取装备配装。 image.png

配置说明

Config
Debug: false
#替换材料消耗内的money文本
MoneyTextReplacement: "&f消耗经济"
#替换部分位置的 {isUpgrade}  可以替换的位置有 skill的展示物品    LevelInfo的物品 支持lore和名称
#如果不可升级 那就会返回空白字符
AllowUpgrade: "&6可升级!"

#属性的设置
Attribute:
  #使用的属性插件
  type: "AttributeSystem"
  #生命值的属性key  使用as属性插件的情况下 请确保玩家拥有这个属性 哪怕他只有0  因为as如果没有这个属性 会返回null  而不是0
  baseHealthKey: "生命上限"
  #玩家的基础血量
  #因为有的属性插件获取生命值属性的时候不会计算默认拥有的20生命值 所以这里给了个自定义数值
  baseHealth: 20.0

#角色系统设置
RoleSystem:
  #允许上场的最大数
  MaxPerson: 2
  #两个角色的切换间隔
  SwitchInterval: 500
#状态类型占位符
State:
  notUnlocked: "未解锁"
  activate: "上场"
  rest: "下场"
  activateDeath: "场上死亡"
  restDeath: "场下死亡"

#模块 全息文字的技能注册 用于施加buff时的全息文字显示
#开启后将会注册一个对应的全息文字技能
Hologram:
  #是否启用
  enable: true
  #所使用的全息依赖  Pou 或者 AX
  type: Pou

#模块 拉弓接管 这里只支持1.20.1
#开启后 将无需使用箭也可拉弓
DrawBow:
  #是否启用
  enable: true
  #是否需要手持武器才能触发
  useArms: true
  #自定义拉弓蓄力最大值  相关事件名称BowForceEvent
  maxForce: 10.0

#模块 技能释放
SkillRelease:
  #关掉后 仅关闭玩家主动释放技能 其他部分的技能不受影响
  enable: true
  #是否需要手持武器才能触发  必须开启LockArms模块才能正常工作
  useArms: true
  # 释放的方式 这边在示例技能内有介绍
  # Combo 原版方式
  # Number 原版方式
  # AX  ArcartX 的按键监听
  type: "Combo"
  #Combo释放时的长度 到这个长度就会尝试释放对应的技能
  comboLength: 3
  #一套Combo的最大间隔
  comboIntervalMax: 1000
  #两个动作的最小间隔
  #这里这个间隔对于其他释放方式也有效 防止高频触发
  ComboIntervalMin: 10 #最小连击间隔

#模块 QiuhuaItemSpace兼容 会检查指定仓库的材料 和扣除
#开启后不会检查物品栏
QiuhuaItemSpace:
  #是否启用 关闭后下面功能均失效
  enable: false
  #检查的仓库
  ItemSpaceId: "普通仓库"
  #在界面上的部分槽位显示指定仓库的物品列表 并且支持拿取和放入
  Gui:
    ItemSpaceId: "普通仓库"
    #是否启用 关闭后下面功能均失效
    enable: false
    #slot槽位禁止和已使用的重复
    #显示物品的槽位列表
    itemList: [15, 16, 17, 24, 25, 26, 33, 34, 35, 42, 43, 44]
    #翻页的设定
    Page:
      #上一页
      PreviousPage:
        slot: 51
        name: "&f上一页"
        material: "PAPER"
        model: "-1"
        lore:
          - "&f点击查看上一页"
      #下一页
      NextPage:
        slot: 53
        name: "&f下一页"
        material: "PAPER"
        model: "-1"
        lore:
          - "&f点击查看下一页"

#模块 死亡锁定
#角色死亡锁定 当玩家当前角色死亡 玩家会自动在当前位置重生 且换成可用角色
#死亡的角色无法在切换过去 需要使用指令重新激活
#上下场操作不影响  可以使用指令复活指定角色
#此功能会在开服时开启 立即重生游戏规则 以此来越过死亡界面
DeathLocking:
  #是否启用 关闭后下面功能均失效 需要重启才能生效
  enable: true
  #当死亡后重新激活的默认血量
  health: 20

#模块 套装功能
Suit:
  #是否启用 套装属性 不管有没有启用都会统计套装 相关占位符也能正常使用
  #启用的话 可以在suit文件内添加套装属性效果
  #套装的效果只有在关闭界面时/切换角色时才会触发
  enable: true
  #这里用的是正则 不会去除颜色代码 同id的套装会叠加数量
  condition: "&f套装: (.+)"

#模块 锁定物品槽位
#即为切换到该角色时提供一把武器在指定槽位 无法丢弃交互等
#并且会自动切换主手到该栏位
#如没角色 则提供一个指定物品
LockArms:
  #是否启用 关闭后下面功能均失效 需要重启才能生效
  enable: true
  slot: 8
  #是否移除武器上的lore
  #给的武器是复制品  全部东西一致 包括nbt
  #移除lore可以避免不必要的属性重复添加等
  ArmsLoreRemove: true
  LockItem:
    name: "&f该槽位被禁用"
    material: "PAPER"
    model: "-1"
    lore:
      - "&f未装备武器"

#箱子Gui界面
InventoryGui:
  #点击间隔
  clickInterval: 300
  #如果玩家没有打开过 那将默认打开这个页面 否则将打开玩家上次关闭的页面
  DefaultPage: "示例角色"
  #支持papi解析 支持papi的地方会标明
  Title: "%player_name% 的角色列表"
  #填充的物品 会把其他没涉及到的格子填满
  FillItem:
    #是否启用 关闭后下面功能均失效
    enable: true
    name: "&f此格子无法操作"
    material: "GLASS_PANE"
    model: "-1"
    lore:

  #角色列表
  RoleList:
    #角色列表的槽位  箱子界面第一个格子是0
    showSlot: [1, 2, 3, 4, 5, 6, 7]
    #翻页的设定
    Page:
      #上一页
      PreviousPage:
        slot: 0
        name: "&f上一页"
        material: "PAPER"
        model: "-1"
        lore:
          - "&f点击查看上一页"
      #下一页
      NextPage:
        slot: 8
        name: "&f下一页"
        material: "PAPER"
        model: "-1"
        lore:
          - "&f点击查看下一页"
  #武器系统
  Arms:
    #可以放置的槽位
    slot: 19
    #条件仅支持lore 如有其他特殊情况将会标明
    #这里用的是正则 不会去除颜色代码
    condition: "&f武器: (.+)"
  #饰品
  Accessories:
    #饰品key 自定义的 可按格式无限添加
    饰品1:
      #对应槽位
      slot: 20
      #放入需要的lore 不会去除颜色代码
      condition: "&f饰品: 饰品1"
    饰品2:
      slot: 28
      condition: "&f饰品: 饰品2"
    饰品3:
      slot: 29
      condition: "&f饰品: 饰品3"
    饰品4:
      slot: 37
      condition: "&f饰品: 饰品4"
    饰品5:
      slot: 38
      condition: "&f饰品: 饰品5"

  #技能槽位 技能数量大于设置的栏位 超出的则不显示
  Skill:
    slot: [22, 31, 40]

  #设置出战的槽位
  #点击可切换他的出场状态
  State:
    slot: 48
    #物品展示
    DisplayItems:
      name: "&f点击出场/下场 {state}"
      material: "NETHER_STAR"
      model: "-1"
      lore:
        - ""
        - "&f当前出场列表"
        - "(1) {roleId_1}"
        - "(2) {roleId_2}"

  #升级按钮
  #lore中会在指定行数内插入消耗的材料文本
  LevelInfo:
    slot: 30
    name: "&f当前等级 +{level} {isUpgrade}"
    material: "BOOK"
    model: "-1"
    #材料lore的格式
    format: "{materials} X {value} | 当前{have}"
    #套装的格式
    suitFormat: "  {suitId} : {value}"
    #该lore末尾会添加需要的材料     如果有一行仅包含该字符串 {roleInfo} 那他将会从这一行插入角色配置文件的InfoLore
    #{suitInfo}显示套装数量
    lore:
      - ""
      - "{roleInfo}"
      - ""

#数据库
Database:
  type: sqlite   #sqlite或者mysql   mysql才需要配置下面的部分
  dataBaseName: RoleSystem   #数据库名称
  username: root  #账户名称
  password: root  #密码
  port: 3306  #端口
  ip: 127.0.0.1  #ip
  autoSave: 15 #自动保存间隔 分钟
  loadDelay: 40 #加载延迟tick
Suit
#套装的名称
套装名称1:
  #当数量达到时触发的 从上往下检查  当套装数量满足后就不会继续检查了
  2:
    - "生命上限: 10"
  4:
    - "生命上限: 20"

role文件夹内是角色配置 文件名称即为角色id

展开
#不可用的角色将无法点击该栏位任意位置 但依旧可以预览界面上的物品信息
DisplayItems:
  name: "&f示例角色 +{level} {state} | {health}/{maxhealth}"
  material: "PLAYER_HEAD"
  model: "-1"
  #物品为头颅时可选这个
  #textura:
  lore:
    - ""

#是否隐藏该角色 隐藏的角色只有op可见
Hide: false

#这里是提供一个自定义的角色信息描述
InfoLore:
  - ""
  - "&f生命值: {生命上限}"
  - ""

#等级机制
Level:
  #基础等级
  base: 1
  #指定等级的强化消耗
  Consume:
    #填10 则为到达这个等级需要的材料 识别为物品名称 会去除全部颜色代码
    #扣除经济则为 money 这个不能加颜色代码 代码在config里面加
    10:
      - "&f示例材料1::1"
      - "money::100"
    #超过10级 但未超过20级 就需要消耗这里的材料
    #20以后就没了 那到达20级将不在可以强化
    20:
      - "&f示例材料1::1"
      - "&f示例材料2::1"
      - "money::1000"

ArmsType:
  #是否启用 关闭后下面功能均失效
  enable: true
  #判断是否只能放入指定武器 留空 "" 则不启用
  #这里用的是正则 不会去除颜色代码
  #冒号后面的即为武器类型
  capture: "&f武器: (.+)"
  #武器类型
  type: "单手剑"

#技能列表
Skills:
  #这里的技能会按顺序显示在gui内
  - "示例角色技能-普通攻击"


#和上面的技能列表一样 需要在技能列表添加
TriggerSkill:
  #切换前
  BeforeSwitch:
    - "示例角色技能-普通攻击"
  #切换后
  AfterSwitch:
    - "示例角色技能-普通攻击"
  #定时任务
  Task:
    #间隔
    任务1:
      time: 20
      skill:
        - "示例角色技能-普通攻击"

#属性列表 升级会增加这些属性值
#预计支持as ap
Attributes:
  #属性名称
  生命上限:
    #属性的基础值
    base: 15.0
    #每级增加的值
    per-level: 5.0
    max: 50.0
    min: 10.0
  攻击力:
    base: 5.0
    per-level: 0.7

skill文件夹内是技能配置 文件名称即为技能id

展开
#mm技能的内部名称
skillName: "示例角色技能-普通攻击"

#基础触发 这里是全局性的 不管config设置什么 这里都有效
# 原版单左键 右键 即为只按下了一次  并不是上面的鼠标连击  用于做普通攻击等 Left->左键  Right->右键
# 弓箭蓄力 DrawBow 拉弓射箭后触发的技能 弩也能触发
# 由该插件接管的拉弓蓄力 DrawBowForce 只有弓可以触发

#预计支持三套触发方式 如果不想要触发 随便设置一些字符就行了
#Combo触发方式
# 原版触发 鼠标连击 连续按顺序点击鼠标左右键 例如R->L->L  即为按下 右键->左键->左键   SR->SL->SL 携带S代表是潜行时  关于这玩意的配置在config里面有
#AX  ArcartX 的按键监听
# 该按键监听需要注册 client_key 即客户端按键
# 技能那边填写 id 即为配置项内的按键唯一标识符
#Number 原版数字释放
# 原版触发 使用数字键切换栏位 可以释放对应的技能 第一个快捷栏为0开始
trigger: "LLR"

#这里仅在使用DrawBowForce的时候才填写
#大概1.3秒是原版的蓄力时间
#这里是从上往下检查的 满足了就触发 所以要时间由大到小
#比如当前蓄力为1.5  没到10  下一个是1.2 那就会触发1.2的技能
#如果没有满足的话 那就触发最上面的 skillName
force:
  "蓄力技能2": 10.0
  "蓄力技能1": 1.2



#展示物品
DisplayItems:
  name: "&f示例角色技能-普通攻击 +{level}  {isUpgrade}"
  material: "ICE"
  model: "-1"
  #材料lore的格式
  format: "{materials} X {value} | 当前{have}"
  #该lore末尾会添加需要的材料
  lore:
    - "&f左键点击鼠标造成一次范围伤害"
    - "&f每目标造成 &c{damage} &7伤害"
    - ''
    - '&e{cooldown} 秒冷却'
    - '&9消耗 {mana} 魔力'
    - ""

#等级机制
Level:
  #基础等级
  base: 1
  #指定等级的强化消耗  这个材料支持原版的物品材质类型 需要全大写 优先检查材质 其次才是名字
  Consume:
    #填10 则为到达这个等级需要的材料 识别为物品名称 会去除全部颜色代码
    #扣除经济则为 money
    10:
      - "&f示例材料1::1"
      - "money::100"
    #超过10级 但未超过20级 就需要消耗这里的材料
    #20以后就没了 那到达20级将不在可以强化
    20:
      - "&f示例材料1::1"
      - "&f示例材料2::1"
      - "money::1000"

#自定义占位符 可在当前技能内的描述中使用
#也可以在mm中使用 <role.skill.技能名称.占位符key>
Placeholder:
  #占位符key
  damage:
    #基础值
    base: 5.0
    #每级提升的
    per-level: 3.0
  mana:
    base: 15.0
    per-level: 2.0
  cooldown:
    base: 5.0
    per-level: -0.1
    max: 5.0
    min: 1.0

依赖

暂时仅支持1.20.1版本

可选:AttributeSystem、QiuhuaItemSpace

必须:MythicMobs、PlaceholderAPI、Vault

指令

  • /RoleSystem reload 重载所有配置 权限RoleSystem.reload
  • /RoleSystem gui [玩家名称] 给指定玩家打开gui 权限RoleSystem.gui
  • /RoleSystem gui [玩家1名称] [玩家2名称] 给玩家1查看玩家2的gui 权限RoleSystem.gui.targetPlayer
  • /RoleSystem respawn [玩家名称] [角色名称] 给玩家复活指定角色 权限RoleSystem.respawn
  • /RoleSystem unlock [玩家名称] [角色名称] 给玩家临时解锁一个角色 权限RoleSystem.unlock
  • /RoleSystem lock [玩家名称] [角色名称] 给玩家临时锁定一个角色 权限RoleSystem.lock

展示

以下内容非默认配置,仅展示使用 image.png image.png image.png image.png

BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包地图

社区

汉化软件插件数据包

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号