跳转至

晋级系统🔗


晋级系统允许玩家根据服务器设定的条件晋升到更高的等级组。要使用统计相关功能,请检查主服务器文件夹中的 spigot.yml,确保统计保存预防已设置为 false(stats->disable-saving: false)。

玩家会根据设定的权限节点 cmi.rank.[rankName] 获得对应的默认等级组。

未启用的晋级等级将被忽略。

此处可查看与晋级相关的可用命令。

基础选项 (Base options)🔗

  • DisplayName 部分是可选的,它将用于在游戏中表示该等级。这并不定义所需的权限节点,你仍然需要使用节点名来晋级到该等级。
  • DefaultRank 部分定义了如果玩家没有任何等级,是否可以将其分配到此等级。可以有多个默认等级,根据权限节点,必要时会将第一个等级分配给该玩家。
  • AutoRankup 部分定义了如果可能,玩家是否会自动晋级到此等级。请注意,如果存在多个合法的晋级选项,玩家将必须确认他想要晋级到哪个等级。
  • RankupConfirmation 部分定义了你是否想为此晋级添加额外的确认。这对于避免无意的晋级很有用。请注意,即使只有一个合法的晋级选项,autorankup 也会要求确认晋级到此等级。
  • NextRanks 是从该等级可以晋升到的下一个等级的列表。可以是一个,也可以是几十个。请注意,每个等级的要求都会在聊天中显示,如果同时显示太多,可能会使聊天变得杂乱。
  • MoneyCost 定义玩家晋级到此等级需要支付多少金币。
  • ExpCost 定义玩家晋级到此等级需要支付多少经验。
  • Votes 定义玩家需要拥有的投票数。这将根据 Votifier 插件的 CMI 投票记录来获取。
  • Commands 是在晋级时执行的命令列表。可以是额外的操作,如消息广播或其他任何东西。
  • CommandsOnRankDown 是在降级操作时执行的命令列表。当你从该等级降级时会执行这些命令。

统计要求 (StatsRequirements)🔗

主要部分是 StatsRequirements,它可以在其中包含很多不同的值:

一般来说,格式如下:主统计:数量 例如,MonsterKills:100 将要求玩家有 100 次怪物击杀,而 MonsterKills:Zombie:100 将要求有 100 次僵尸击杀。如果需要,两者都可以使用。

可能的统计要求列表及基本说明:

按方块距离: - Travel – 总旅行距离 - Walk – 必须行走 - Sneak – 必须潜行 - Sprint – 必须疾跑 - Swim – 必须游泳 - Fall – 必须坠落 - Climb – 必须攀爬 - Fly – 必须飞行 - WalkUnderWater – 必须在水下行走 - WalkOnWater – 必须在水上行走 - MinecartTravel – 必须乘坐矿车旅行 - BoatTravel – 必须乘船旅行 - PigTravel – 必须骑猪 - HorseTravel – 必须骑马 - ElytraTravel – 必须使用鞘翅飞行 - GhastTravel – 必须骑恶魂 - NautilusTravel – 必须骑鹦鹉螺 - Strider travel – 必须骑炽足兽

按秒计的时间: - PlayTime – 总游戏时间 - AccountAge – 从玩家第一次登录服务器算起的时间 - FromLastDeath – 距上次死亡的时间 - SneakTime – 潜行时间 - TotalWorldTime

数量类: - GameQuit – 玩家离开游戏的次数 - Jump – 跳跃次数 - DamageDealt – 造成的总伤害 - DamageTaken – 承受的总伤害 - Deaths – 死亡次数 - MobKills – 玩家击杀的怪物总数 - PlayerKills – 击杀玩家的总数。间接击杀不计入 - ItemEnchanted – 附魔物品的数量 - AnimalsBred – 繁殖的动物数量 - FishCaught – 钓到的鱼数量 - TalkedToVillager – 与村民交谈的次数 - TradedWithVillager – 与村民交易的次数 - CakeSlicesEaten – 吃掉的蛋糕片数量 - CauldronFilled – 装满的炼药锅数量 - CouldronUsed – 使用炼药锅的次数 - ArmorCleaned – 清洁盔甲的次数(皮革盔甲) - BannerCleaned – 清洁旗帜的次数 - BrewingstandInteractions – 酿造台交互次数 - BeaconInteractions – 信标交互次数 - CraftingTableInteractions – 工作台交互次数 - FurnaceInteractions – 熔炉交互次数 - DispenserInspected – 检查发射器的次数 - DropperInspected – 检查投掷器的次数 - HopperInspected – 检查漏斗的次数 - ChestOpen – 打开箱子次数 - TrappedChestTriggered – 触发陷阱箱次数 - EnderchestOpened – 打开末影箱次数 - NoteblockPlayed – 播放音符盒次数 - NoteblockTuned – 调谐音符盒次数 - FlowerPotted – 盆栽次数 - RecordPlayed – 播放唱片次数 - SleeptInBed – 床上睡觉次数 - ShulkerBoxOpened – 打开潜影盒次数 - ShulkerBoxCleaned – 清洁潜影盒次数 - ItemDropped – 定义丢弃物品的数量。如果未定义特定物品,则使用总量 - ItemPickups – 定义拾取物品的数量。如果未定义特定物品,则使用总量 - BlocksMined – 定义挖掘方块的数量。如果未定义特定方块,则使用总量 - ItemBreaks – 定义损坏物品的数量。如果未定义特定物品,则使用总量 - ItemCrafts – 定义制作物品的数量。如果未定义特定物品,则使用总量 - ItemsUsed – 定义物品使用量,例如用镐挖矿。如果未定义特定物品,则使用总量 - MonsterKills – 定义怪物击杀数量。如果未定义特定怪物,则使用总量 - KilledBy – 定义被怪物杀死的次数。如果未定义特定怪物,则使用总量 - InteractionWithBlastFurnace – 高炉交互次数 - InteractionWithSmoker – 烟熏炉交互次数 - InteractionWithLectern – 讲台交互次数 - InteractionWithCampfire – 营火交互次数 - InteractionWithCartographyTable – 制图台交互次数 - InteractionWithLoom – 织布机交互次数 - InteractionWithStonecutter – 切石机交互次数 - InteractionWithAnvil – 铁砧交互次数 - InteractionWithGrindstone – 砂轮交互次数 - InteractionWithSmithingTable – 锻造台交互次数 - BellRing – 敲钟次数 - RaidTrigger – 触发袭击次数 - RaidWin – 赢得袭击次数 - TargetHit – 击中靶子次数 - OpenBarrel – 打开木桶次数 - DropCount – 掉落次数

  StatsRequirements:
  - "PlayTime:3600"
  - "travel:1000"
  - "MonsterKills:zombie:10"
  - "MonsterKills:slime:5"
  - "MonsterKills:wolf:5"
  - "AccountAge:1209600"

物品要求 (ItemRequirement)🔗

玩家背包中需要拥有的物品列表。定义为材质后跟数量。

  ItemRequirement:
  - "stone:10"
  - "stone:1:20"
  - "book:20"

职业要求 (JobsRequirement)🔗

玩家需要加入的职业及其最低等级列表。此外,你还可以使用 totallevel 来要求所有已启用职业的总等级数量。

  JobsRequirement:
  - "miner:10"
  - "totallevel:20"

McMMO 要求 (McMMORequirement)🔗

mcmmo 技能及其最低等级列表。此外,你还可以使用 power 来要求特定的总技能等级。

  McMMORequirement:
  - "woodcutting:10"
  - "power:20"

权限要求 (PermissionRequirement)🔗

权限要求列表。它需要有实际的权限节点,并附上其简短显示名称,用于在游戏中显示晋级信息时使用。

  PermissionRequirement:
  - "cmi.command.fly:Fly"

占位符要求 (PlaceholderRequirements)🔗

占位符要求列表。这可以通过数字占位符或文本进行检查。对于数字占位符,使用 >= 或 == 来检查大于等于或精确值。对于基于文本的占位符,始终使用 == 来检查精确匹配,不过我们会忽略大小写。这需要包含一个简短描述,用作游戏中晋级信息的显示名称。

  PlaceholderRequirements:
  - '%cmi_user_level%>=10;Get to level 10'
  - '%cmi_user_homeamount%>=3;Get 3 homes'
  - '%cmi_user_weather%==rainy;We like rain'

默认配置文件示例 (Default file example)🔗

Newbie:
  Enabled: true
  DisplayName: "&2Newbie"
  DefaultRank: true
  AutoRankup: true
  NextRanks:
  - Branch1
  - Branch2
Branch1:
  Enabled: true
  DisplayName: "&2Branch1"
  AutoRankup: true
  RankupConfirmation: true
  Votes: 5
  PermissionRequirement:
  - "cmi.command.fly:Fly"
  McMMORequirement:
  - "woodcutting:10"
  - "power:20"
  JobsRequirement:
  - "miner:10"
  - "totallevel:20"
  ItemRequirement:
  - "stone:10"
  - "stone:1:20"
  - "book:20"
  NextRanks:
  - Branch1Rank1
  MoneyCost: 100
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Branch1 rank!"
  StatsRequirements:
  - "PlayTime:3600"
  - "travel:1000"
  - "MonsterKills:zombie:10"
  - "MonsterKills:slime:5"
  - "MonsterKills:wolf:5"
  - "AccountAge:1209600"
  PlaceholderRequirements:
  - '%cmi_user_level%>=10;Get to level 10'
  - '%cmi_user_homeamount%>=3;Get 3 homes'
  - '%cmi_user_weather%==rainy;We like rain'
Branch1Rank1:
  Enabled: true
  DisplayName: "&2Branch1Rank1"
  DefaultRank: false
  AutoRankup: true
  RankupConfirmation: false
  PermissionRequirement:
  - "cmi.command.heal:Heal"
  NextRanks:
  - Last
  MoneyCost: 300
  ExpCost: 350
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Branch1Rank1 rank!"
  StatsRequirements:
  - "travel:10000"
  - "blocksmined:3000"
  - "blocksmined:diamond_ore:30"
  - "MonsterKills:1000"
  - "AccountAge:1209600"
  McMMORequirement:
  - "taming:10"
  - "unarmed:30"
Branch2:
  Enabled: true
  DisplayName: "&2Branch2"
  AutoRankup: true
  RankupConfirmation: true
  MoneyCost: 150
  NextRanks:
  - Branch2Rank1
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Branch2 rank!"
  PermissionRequirement:
  - "cmi.command.tp:Teleport"
  StatsRequirements:
  - "PlayTime:3600"
  - "travel:2000"
  - "MonsterKills:zombie:15"
  - "MonsterKills:slime:10"
Branch2Rank1:
  Enabled: true
  DisplayName: "&2Branch2Rank1"
  AutoRankup: true
  RankupConfirmation: false
  MoneyCost: 100
  ExpCost: 150
  NextRanks:
  - Branch2Rank2
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Branch1Rank1 rank!"
  StatsRequirements:
  - "PlayTime:4600"
  - "Swim:1000"
  - "SneakTime:180"
  - "MonsterKills:100"
Branch2Rank2:
  Enabled: true
  DisplayName: "&2Branch2Rank2"
  AutoRankup: true
  RankupConfirmation: false
  MoneyCost: 100
  ExpCost: 150
  NextRanks:
  - Last
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Branch2Rank2 rank!"
  StatsRequirements:
  - "walk:15000"
  - "HorseTravel:1000"
  - "ItemsUsed:10000"
  - "PlayerKills:10"
Last:
  Enabled: true
  DisplayName: "&2Last"
  AutoRankup: true
  StatsRequirements:
  - "PlayTime:21600"
  - "walk:30000"
  - "MonsterKills:1000"
  - "blocksmined:30000"
  Commands:
  - "broadcast! &6[playerDisplayName] &eleveled up to Last rank!"
  - "cmi heal [playerName]"
  - "money give [playerName] 100"
(内容由AI生成,仅供参考)