Skip to content
This repository has been archived by the owner on May 22, 2022. It is now read-only.

希望能够通过指令“撤销 @某人 #1”来指定撤销某人的某一刀 #54

Closed
jiubook opened this issue May 9, 2020 · 10 comments
Labels
enhancement New feature or request

Comments

@jiubook
Copy link

jiubook commented May 9, 2020

我们群有个群员早上7点钟打完两刀,
但是报刀报错了,报了三刀,而如今一直处于失联状态。


按照现有逻辑,如果之前报刀报错了,管理员有两个解决方案:
1.(管理员)通过修改boss血量全局修改。
2.(管理员)通过指令一个个撤销上去 → 撤销到错误位置 → 再重新报刀。

  • 方案1 会导致后续统计出现问题,且查刀的时候容易忘记那位还少一刀。
  • 方案2 较为繁琐,会出现大面积@打扰其他人,且可能出现二次错误。

所以试图来提两个建议:
1.通过指令“撤销 @某人 #1”来指定撤销某人的某一刀(#1代表第一刀)
2.通过指令“撤销 @某人”来指定撤销某人的全部刀

以及额外建议:
1.通过指令“更正报刀 123456 @某人 #1”来指定更正某人的某一刀(#1代表第一刀)

@jiubook jiubook changed the title [Feature request] 希望能够通过指令“撤销 @某人 #1”来指定撤销某人的某一刀 希望能够通过指令“撤销 @某人 #1”来指定撤销某人的某一刀 May 9, 2020
@yuudi yuudi added the enhancement New feature or request label May 9, 2020
@yuudi
Copy link
Owner

yuudi commented May 9, 2020

按照现在的数据存储方式,每一条记录都包含了当前状态,无法通过只修改一条过去的记录来修改后面所有的记录,而且在已经存在尾刀的情况下,修改过去的记录会导致后面的记录出现错误。

实际使用中,除了国服由于伤害很低,其他服只要出现错误记录都能很快发现并修正。

今后再看看国服的实际使用情况,如果上报出错的情况依然存在,会考虑增加“批量修正”的功能,以及一个后台的交互界面。

@Sisphyus
Copy link

如果是直接存关系型数据库的话可以试着将数据转换成双向链,将出刀转换成简单状态机,方便回溯到会战中的任意时间点进行CRUD并重置后续的出刀状态。

@yujincheng08
Copy link

同求。有人不小心把模拟刀报上了连删除某一刀都不行

@timeance
Copy link

可以考虑在网页加一个报刀的时间轴吗,就类似于这样的(见下图)
出刀记录.jpg

@yuudi
Copy link
Owner

yuudi commented May 14, 2020

因为有人问,我解释一下。
数据库里储存了每一刀的boss状态和伤害值,如果需要修改一条记录,那必须同时修改后面所有的记录才能获得准确数据。
如果要修改的记录到目前为止没有出现尾刀,那么修改很简单。
但是如果要修改的记录之后有一个尾刀,那么一定是有人的报刀存在错误,这是不能通过只修改一条记录就能够修正的,所以我维持了只能撤销最后一条记录的特性。

@cadaeibf1
Copy link

关于修改记录后出现尾刀,那么有两种情况
1,错误刀数字报少了,假设后续一系列正确,最后一个人尾刀的数字必然大于实际伤害,那么在修正的时候同时修改错误刀数字以及尾刀数字是否可以比较简单的完成这个操作?
2,错误刀数字报多了,假设后续一系列正确,直到某一个人报出正确数字的时候会收到系统提示他报尾刀。并且如果错误数字离谱,可能后续很多个人都无法正常报刀。那么理论上能发现这个情况的第一个人就可以at管理员进行撤销类修改了,那么貌似这样也可以相对简单的解决?
本人并非程序员,只是从场景上设想了一下,还请大佬指正。

@yuudi
Copy link
Owner

yuudi commented May 14, 2020

关于修改记录后出现尾刀,那么有两种情况
1,错误刀数字报少了,假设后续一系列正确,最后一个人尾刀的数字必然大于实际伤害,那么在修正的时候同时修改错误刀数字以及尾刀数字是否可以比较简单的完成这个操作?
2,错误刀数字报多了,假设后续一系列正确,直到某一个人报出正确数字的时候会收到系统提示他报尾刀。并且如果错误数字离谱,可能后续很多个人都无法正常报刀。那么理论上能发现这个情况的第一个人就可以at管理员进行撤销类修改了,那么貌似这样也可以相对简单的解决?

这个方法确实可行

@octopus3
Copy link

撤销的问题,其实如果是帮某人修改了,就只需要update后面那些人的尾刀的值了吧,只能假设前面每个人的报刀尾刀都正确

@yuudi yuudi pinned this issue May 30, 2020
@Glorybow
Copy link

Glorybow commented Jun 8, 2020

这个功能如果不方便,可以给予主人用户后台修改数据的权限,我们本次会战也遇到了这种情况,大合刀的时候很乱,报刀特别快,没来得及及撤回就被一大堆报刀数据所覆盖,但是后台也没法修改某条数据,所以只能修改BOSS状态草草了事

@chinazialy
Copy link

理论上可以撤销任何一刀,但是对于撤销后的boss状态很难确定,所以如果只是撤销任意一刀,或者是修改任意一刀的伤害而不去管boss状态(撤销修改后自行修改boss状态)还是比较好弄的。

@yuudi yuudi closed this as completed Jul 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants