TISUnion/PrimeBackup

[功能请求]投票回档

Closed this issue · 1 comments

MCDR 权限和投票回档机制改进建议

1. 引入投票理由记录和通知机制

  • 记录投票理由:在投票过程中,要求每个投票者附上理由。
  • 显示投票理由:在投票结果公布时,一并显示所有理由。
  • 通知机制:投票结束后,自动发送结果和理由给所有玩家。

2. 设定动态等待时间和实时反馈

  • 动态等待时间:根据赞成票和反对票数设定不同的等待时间。
  • 实时反馈:在投票过程中实时显示当前赞成、反对和中立票数。

4. 优化小规模服务器和紧急回档机制

  • 小规模服务器:针对少数玩家的服务器设定更灵活的回档机制。
  • 紧急回档机制:增加紧急回档机制,在重大问题发生时,高权限玩家可以直接回档,无需投票。

改进后的具体规则和案例

规则总结

  1. 投票机制

    • 任何权限小于回档所需权限的玩家均可发起投票回档。
    • 如果游戏中只有一个真玩家(不包括假人[carpet fake player]),则无需权限即可进行回档。
    • 当有多个玩家时,发起投票,玩家可以输入 1y 表示赞成,输入 0n 表示反对。不投票则视为中立。
    • 如果赞成票数 >= 反对票数 * 1.5(向下取整),则可以无需权限等级2(helper)即可进行回档、删除备份等操作。
  2. 权限等级和投票通过条件

    • 权限等级1的玩家投票通过门槛为反对票数的2倍。
    • 权限等级2的玩家(helper)及以上可以直接回档,无需投票。
  3. 小规模服务器和紧急回档

    • 对于只有少数几个真玩家的服务器,可以通过配置文件设定更灵活的回档机制,比如降低赞成票数的门槛。
    • 设定紧急回档机制,在发生重大BUG或服务器崩溃时,由高权限玩家或管理员(op player)直接决定回档,无需投票。

案例

  1. 真玩家数:10;回档人权限:1;赞成:6;反对:1;中立:1

    • 结果:允许回档确认 (!!pb confirm)
    • 赞成数(6) >= 反对数(1) * 1.5 = 1.5(向下取整为1),允许回档。
  2. 真玩家数:1;回档人权限:1;赞成:0;反对:0;中立:0

    • 结果:允许回档确认 (!!pb confirm)
    • 只有一个真玩家,无需权限即可回档。
  3. 真玩家数:10;回档人权限:2;赞成:0;反对:9;中立:0

    • 结果:无需等待,直接回档 (!!pb confirm)
    • 权限等级2(helper)及以上无需投票即可回档。
  4. 真玩家数:10;回档人权限:0;赞成:5;反对:3;中立:1

    • 结果:不允许确认
    • 赞成数(5) < 反对数(3) * 1.5 = 4.5(向下取整为4),不满足回档条件。
  5. 真玩家数:10;回档人权限:3;赞成:0;反对:9;中立:0

    • 结果:允许立刻回档确认 (!!pb confirm)
    • 高权限玩家无需投票即可回档。
  6. 真玩家数:1;回档人权限:0;赞成:0;反对:0;中立:0

    • 结果:允许回档确认 (!!pb confirm)
    • 只有一个真玩家,无需权限即可回档,但需要等待时间确认。

自定义方式

1.用配置文件

  • 编辑pb的config
    2.高权限玩家在游戏中直接修改
  • 例如!!pb config rollback_vote_config coefficient 1.5
    • **即修改为赞成票数 >= 反对票数 * 1.5(向下取整)**才能通过投票

Thanks.
2024.06.27

这一种与具体服务器需求紧密关联,且与 PB 备份核心操作无关的需求,建议自行编写插件实现。你可以在自定义的插件中实现所需的投票 / 紧急回档逻辑,然后再调用 PB 的回档指令。当然记得提高回档指令所需权限,避免玩家直接操作回档