Neige
Banker
Version 1.0.0本帖插件及内容禁止任何人转载到任何地方使用过程中如果遇到bug请加群沟通提交Neige的插件交流群 | 插件Wiki | Github开源 | Javadoc
▎ 功能简介

本插件的主要功能是在MM怪物死亡后向玩家发送伤害统计信息,
并通过自带的多种模式,根据伤害占比、伤害排名、伤害数值等因素,
给予玩家不同的战利品

▎ 一图速览



▎ 功能介绍

怪物伤害统计
具有Banker配置的MM怪物被击杀后, 对该MM怪物造成过伤害的玩家将受到伤害统计(可于config.yml更改格式)
如果将config.yml中的LogAll选项设置为true, 所有MM怪物被击杀后均会对造成过伤害的玩家发送伤害统计
带有注释的默认配置参考: 默认配置


多种分配模式
本插件默认自带:
ALL 全体给予模式
PACK 打包抽取模式
MULTIPACK 打包多次抽取模式
SEPARATE 拆分抽取模式
RANK 排名奖励模式
五种分配模式,Wiki具有清晰的解释,请点击前往查看



▎ 插件指令

    []为必填, ()为选填, 仅后台或OP可执行
    /banker reload > 重新加载Banker配置
    /banker help > 查看帮助信息

▎ 插件配置

config.yml
# 是否记录全部MM怪物的伤害统计信息(包含未配置死后执行指令的怪物)
LogAll: false

Messages:
  # 怪物死亡提示文本
  Death: "§f§l§k|§r §c已击杀 {monster}, 讨伐奖励已发放! {damagemessage}"
  # 伤害统计查看提示
  Damage: "§f[§c§l查看讨伐报告§f]"
  # 怪物伤害统计前缀, 设置为 DamagePrefix: [] 代表不发送
  DamagePrefix:
    - "§c§m§l----------§f§l/ §c讨伐报告 §f§l/§c§m§l----------"
    - "§f§m  §f§l|  §7讨伐目标 - {monster}"
    - "§f§m  §f§l|  §7累计伤害 - {totaldamage}"
    - "§f§m  §f§l|  §7伤害统计: "
  # 怪物伤害统计
  DamageInfo: "  §f§l┕§f§m        §r §7{ranking}. {player}: §a{damage} §8({percentage})"
  # 怪物伤害统计后缀, 设置为 DamageSuffix: [] 代表不发送
  DamageSuffix:
    - ""
    - "§c§m§l----------------------------"
  # 战利品类型错误提示
  LootTypeError: "§e[Banker] §4未知战利品类型: {type}"
  InvalidPlugin: '§e[Banker] §6未发现前置插件: {plugin}'
  Reloaded: '§e[Banker] §6重载完毕'

Help:
  prefix: |-
    §6======================§eBanker§6======================
    §6==================[]为必填, ()为选填==================
  suffix: §6================>================
  amount: 10
  format: "{command} §7> {description}"
  prev: 上一页
  next: 下一页
  commands:
    reload:
      command: §e/banker §freload
      description: 重新加载config文件
    help:
      command: §e/banker §fhelp (页数)
      description: 查看帮助信息
复制代码
plugins/MythicMobs/Mobs/Banker/ExampleMobs.yml
SeparateExample:
  Type: ZOMBIE
  Health: 1
  Banker:
    # 当前战利品ID, 只要不重复就可以
    SeparateExample:
      # Separate模式下,每一组动作将分别进行随机,分派给不同玩家。比如:
      # 玩家A造成50%伤害,玩家B造成30%伤害,玩家C造成20%伤害
      # 根据动作组数进行多轮随机:
      # 第一组动作:50%交由A玩家执行,30%交由B玩家执行,20%交由C玩家执行
      # 第二组动作:50%交由A玩家执行,30%交由B玩家执行,20%交由C玩家执行
      # 第三组动作:50%交由A玩家执行,30%交由B玩家执行,20%交由C玩家执行
      # ......(同理)
      #
      # 普通动作(例如tell、console等动作)中:
      # 代表玩家造成的伤害, 保留两位小数
      # 代表所有玩家造成的总伤害, 保留两位小数
      # 条件和js动作中:
      # damage代表玩家造成的伤害, 保留两位小数
      # totalDamage代表所有玩家造成的总伤害, 保留两位小数
      LootType: "Separate"
      # 书写多组NI动作
      # 所有动作类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%9E%8B
      # 所有条件类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E6%9D%A1%E4%BB%B6%E7%B1%BB%E5%9E%8B
      LootAction:
      # 第一组动作
      - - "console: minecraft:give %player_name% stone 10"
        - "console: minecraft:give %player_name% diamond 10"
        - "tell: 你造成了点伤害, 全体总伤害"
      # 第二组动作
      - - "console: minecraft:give %player_name% stone 64"
        - "console: minecraft:give %player_name% diamond 64"
        - "tell: 你造成了点伤害, 全体总伤害"
      # 第三组动作
      - - condition: perm("test")
          actions:
          - "tell: 你拥有test权限"
        - condition: damage >= 1000
          actions:
          - "tell: 你造成了超过1000点伤害"
PackExample:
  Type: ZOMBIE
  Health: 1
  Banker:
    # 当前战利品ID, 只要不重复就可以
    PackExample:
      # Pack模式下,所有动作将作为一个整体进行随机,分派给同一个玩家。比如:
      # 玩家A造成50%伤害,玩家B造成30%伤害,玩家C造成20%伤害
      # 根据玩家伤害进行一次随机:
      # 所有动作:50%交由A玩家执行,30%交由B玩家执行,20%交由C玩家执行
      #
      # 普通动作(例如tell、console等动作)中:
      # 代表玩家造成的伤害, 保留两位小数
      # 代表所有玩家造成的总伤害, 保留两位小数
      # 条件和js动作中:
      # damage代表玩家造成的伤害, 保留两位小数
      # totalDamage代表所有玩家造成的总伤害, 保留两位小数
      LootType: "Pack"
      # 书写多组NI动作
      # 所有动作类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%9E%8B
      # 所有条件类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E6%9D%A1%E4%BB%B6%E7%B1%BB%E5%9E%8B
      LootAction:
        # 第一组动作
        - - "console: minecraft:give %player_name% stone 10"
          - "console: minecraft:give %player_name% diamond 10"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第二组动作
        - - "console: minecraft:give %player_name% stone 64"
          - "console: minecraft:give %player_name% diamond 64"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第三组动作
        - - condition: perm("test")
            actions:
              - "tell: 你拥有test权限"
          - condition: damage >= 1000
            actions:
              - "tell: 你造成了超过1000点伤害"
MultiPackExample:
  Type: ZOMBIE
  Health: 1
  Banker:
    # 当前战利品ID, 只要不重复就可以
    MultiPackExample:
      # MultiPack模式下,所有动作将作为一个整体,将伤害占比作为权重,选取Amount个玩家,进行多次执行。比如:
      # 玩家A造成40%伤害,玩家B造成30%伤害,玩家C造成20%伤害,玩家D造成10%伤害,Amount为3
      # 在4人中选取3人执行LootAction
      # 选取第一人时,4/10选取A玩家,3/10选取B玩家,2/10选取C玩家,1/10选取D玩家
      # 假如第一人为B,则剩余玩家造成的总伤害从100%变为70%,则:
      # 选取第二人时,4/7选取A玩家,2/7选取C玩家,1/7选取D玩家
      # 假如第二人为D,则剩余玩家造成的总伤害从70%变为60%,则:
      # 选取第三人时,4/6选取A玩家,2/6选取C玩家,1/6选取D玩家
      # 以上述逻辑,选取Amount个玩家,每个玩家执行一次所有动作
      #
      # 普通动作(例如tell、console等动作)中:
      # 代表玩家造成的伤害, 保留两位小数
      # 代表所有玩家造成的总伤害, 保留两位小数
      # 条件和js动作中:
      # damage代表玩家造成的伤害, 保留两位小数
      # totalDamage代表所有玩家造成的总伤害, 保留两位小数
      LootType: "MultiPack"
      # 选取3个玩家
      Amount: 3
      # 书写多组NI动作
      # 所有动作类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%9E%8B
      # 所有条件类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E6%9D%A1%E4%BB%B6%E7%B1%BB%E5%9E%8B
      LootAction:
        # 第一组动作
        - - "console: minecraft:give %player_name% stone 10"
          - "console: minecraft:give %player_name% diamond 10"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第二组动作
        - - "console: minecraft:give %player_name% stone 64"
          - "console: minecraft:give %player_name% diamond 64"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第三组动作
        - - condition: perm("test")
            actions:
              - "tell: 你拥有test权限"
          - condition: damage >= 1000
            actions:
              - "tell: 你造成了超过1000点伤害"
RankExample:
  Type: ZOMBIE
  Health: 1
  Banker:
    # 当前战利品ID, 只要不重复就可以
    RankExample:
      # Rank模式下,将根据玩家排名进行奖励。比如:
      # 玩家A造成50%伤害,玩家B造成30%伤害,玩家C造成20%伤害
      # 根据玩家伤害排名进行分配:
      # 第一组动作:交由A玩家执行
      # 第二组动作:交由B玩家执行
      # 第三组动作:交由C玩家执行
      # 对于未获得奖励的玩家,执行GuaranteeAction,比如:
      # D玩家造成0.01伤害,排名第四,LootAction只书写了三组动作
      # 即:D玩家执行GuaranteeAction,收到消息“再接再厉”
      #
      # 普通动作(例如tell、console等动作)中:
      # 代表玩家的整体排名
      # 代表玩家造成的伤害, 保留两位小数
      # 代表所有玩家造成的总伤害, 保留两位小数
      # 条件和js动作中:
      # rank代表玩家的整体排名
      # damage代表玩家造成的伤害, 保留两位小数
      # totalDamage代表所有玩家造成的总伤害, 保留两位小数
      LootType: "Rank"
      # 书写多组NI动作
      # 所有动作类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%9E%8B
      # 所有条件类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E6%9D%A1%E4%BB%B6%E7%B1%BB%E5%9E%8B
      LootAction:
        # 第一组动作
        - - "console: minecraft:give %player_name% stone 10"
          - "console: minecraft:give %player_name% diamond 10"
          - "tell: 你造成了点伤害, 全体总伤害"
          - "tell: 你的伤害排名是"
          - condition: rank
            actions:
              - "tell: 你的伤害达到了前五名"
        # 第二组动作
        - - "console: minecraft:give %player_name% stone 64"
          - "console: minecraft:give %player_name% diamond 64"
          - "tell: 你造成了点伤害, 全体总伤害"
          - "tell: 你的伤害排名是"
          - condition: rank
            actions:
              - "tell: 你的伤害达到了前五名"
        # 第三组动作
        - - condition: perm("test")
            actions:
              - "tell: 你拥有test权限"
          - condition: damage >= 1000
            actions:
              - "tell: 你造成了超过1000点伤害"
          - condition: rank
            actions:
              - "tell: 你的伤害达到了前五名"
      GuaranteeAction:
        - "tell: 再接再厉"
AllExample:
  Type: ZOMBIE
  Health: 1
  Banker:
    # 当前战利品ID, 只要不重复就可以
    AllExample:
      # All模式下,所有造成伤害的玩家均可获得奖励。比如:
      # 玩家A造成50%伤害,玩家B造成30%伤害,玩家C造成20%伤害
      # 所有动作多次重复:A玩家执行一次,B玩家执行一次,C玩家执行一次
      #
      # 普通动作(例如tell、console等动作)中:
      # 代表玩家造成的伤害, 保留两位小数
      # 代表所有玩家造成的总伤害, 保留两位小数
      # 条件和js动作中:
      # damage代表玩家造成的伤害, 保留两位小数
      # totalDamage代表所有玩家造成的总伤害, 保留两位小数
      LootType: "All"
      # 书写多组NI动作
      # 所有动作类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%9E%8B
      # 所有条件类型详见 https://neige7.github.io/NeigeItems-Wiki-Docusaurus/%E7%89%A9%E5%93%81/%E7%89%A9%E5%93%81%E5%8A%A8%E4%BD%9C/%E6%9D%A1%E4%BB%B6%E7%B1%BB%E5%9E%8B
      LootAction:
        # 第一组动作
        - - "console: minecraft:give %player_name% stone 10"
          - "console: minecraft:give %player_name% diamond 10"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第二组动作
        - - "console: minecraft:give %player_name% stone 64"
          - "console: minecraft:give %player_name% diamond 64"
          - "tell: 你造成了点伤害, 全体总伤害"
        # 第三组动作
        - - condition: perm("test")
            actions:
              - "tell: 你拥有test权限"
          - condition: damage >= 1000
            actions:
              - "tell: 你造成了超过1000点伤害"
          - condition: totalDamage >= 1000
            actions:
              - "tell: 所有人共造成了超过1000点伤害"复制代码

▎ 插件下载

      





Banker-1.0.0.jar

(1.91 MB, 下载次数: 0)






▎ 插件安装

    1. 安装前置插件NeigeItems
    2. 下载本插件
    3. 将文件丢入plugins文件夹
    4. 重启服务器

▎ 应用实例

给予所有造成伤害的玩家奖励
伤害前三名将获得对应奖励
根据公式不同排名不同奖励
伤害前100名获得奖励
按伤害占比抽取获得奖励的玩家
按伤害占比抽取多个获得奖励的玩家
伤害最高的玩家获得奖励

▎ 更新日志

功能性更新标红 重要BUG修复标蓝

V1.0.0 插件发布


▎ 使用协议
    ☑你可以在你的服务器中随意使用此插件;
    ☒你不可以声称此插件是你编写的,禁止倒卖本插件。


本插件所用所有代码均为原创,不存在借用/抄袭等行为

第一页 上一页 下一页 最后一页