[功能请求]投票回档
Closed this issue · 1 comments
PeterFujiyu commented
MCDR 权限和投票回档机制改进建议
1. 引入投票理由记录和通知机制
- 记录投票理由:在投票过程中,要求每个投票者附上理由。
- 显示投票理由:在投票结果公布时,一并显示所有理由。
- 通知机制:投票结束后,自动发送结果和理由给所有玩家。
2. 设定动态等待时间和实时反馈
- 动态等待时间:根据赞成票和反对票数设定不同的等待时间。
- 实时反馈:在投票过程中实时显示当前赞成、反对和中立票数。
4. 优化小规模服务器和紧急回档机制
- 小规模服务器:针对少数玩家的服务器设定更灵活的回档机制。
- 紧急回档机制:增加紧急回档机制,在重大问题发生时,高权限玩家可以直接回档,无需投票。
改进后的具体规则和案例
规则总结
-
投票机制:
- 任何权限小于回档所需权限的玩家均可发起投票回档。
- 如果游戏中只有一个真玩家(不包括假人[carpet fake player]),则无需权限即可进行回档。
- 当有多个玩家时,发起投票,玩家可以输入
1
或y
表示赞成,输入0
或n
表示反对。不投票则视为中立。 - 如果赞成票数 >= 反对票数 * 1.5(向下取整),则可以无需权限等级2(helper)即可进行回档、删除备份等操作。
-
权限等级和投票通过条件:
- 权限等级1的玩家投票通过门槛为反对票数的2倍。
- 权限等级2的玩家(helper)及以上可以直接回档,无需投票。
-
小规模服务器和紧急回档:
- 对于只有少数几个真玩家的服务器,可以通过配置文件设定更灵活的回档机制,比如降低赞成票数的门槛。
- 设定紧急回档机制,在发生重大BUG或服务器崩溃时,由高权限玩家或管理员(op player)直接决定回档,无需投票。
案例
-
真玩家数:10;回档人权限:1;赞成:6;反对:1;中立:1
- 结果:允许回档确认 (!!pb confirm)
- 赞成数(6) >= 反对数(1) * 1.5 = 1.5(向下取整为1),允许回档。
-
真玩家数:1;回档人权限:1;赞成:0;反对:0;中立:0
- 结果:允许回档确认 (!!pb confirm)
- 只有一个真玩家,无需权限即可回档。
-
真玩家数:10;回档人权限:2;赞成:0;反对:9;中立:0
- 结果:无需等待,直接回档 (!!pb confirm)
- 权限等级2(helper)及以上无需投票即可回档。
-
真玩家数:10;回档人权限:0;赞成:5;反对:3;中立:1
- 结果:不允许确认
- 赞成数(5) < 反对数(3) * 1.5 = 4.5(向下取整为4),不满足回档条件。
-
真玩家数:10;回档人权限:3;赞成:0;反对:9;中立:0
- 结果:允许立刻回档确认 (!!pb confirm)
- 高权限玩家无需投票即可回档。
-
真玩家数: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
Fallen-Breath commented
这一种与具体服务器需求紧密关联,且与 PB 备份核心操作无关的需求,建议自行编写插件实现。你可以在自定义的插件中实现所需的投票 / 紧急回档逻辑,然后再调用 PB 的回档指令。当然记得提高回档指令所需权限,避免玩家直接操作回档