Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG反馈【自动投币】【礼物到期时间】 #7

Closed
4266464 opened this issue Jul 16, 2020 · 8 comments
Closed

BUG反馈【自动投币】【礼物到期时间】 #7

4266464 opened this issue Jul 16, 2020 · 8 comments

Comments

@4266464
Copy link

4266464 commented Jul 16, 2020

【自动投币】硬币不足时会陷入死循环,控制台一直提示硬币不足,页面浮动提示[自动每日奖励][每日投币]'undefined
【礼物到期时间】默认为86400(即1天),但修改成其他数值后(比如172800(2天)、2592000(30天))再手动点击立即送礼,依然只会送出剩余时间为1天的礼物,2天以上的不会送出。
怀疑是设置未应用,或者数值溢出。
个人建议修复bug的同时将礼物到期时间改为以天为单位,因为包裹中的辣条是每天过期一次的,不需要精确到秒

@andywang425
Copy link
Owner

【自动投币】已修改,但我没有条件去测试。
【礼物到期时间】我测下来没这个bug。其实礼物的过期时间是精确到毫秒的(每种礼物的expire_at属性),我觉得有必要精确到秒。

@4266464
Copy link
Author

4266464 commented Jul 16, 2020

想问一下关于“礼物过期时间是精确到毫秒的”,是指“剩余有效时长”精确到毫秒还是“过期时间点”精确到毫秒?
因为我在包裹中看到的有效期都是以天为单位,并且实测也都是统一在24:00过期(为方便 使用24:00代表次日00:00),没见过哪个物品中午过期的。

我的理解是(基于实测):
假设现在时间是23:59:00,包裹中显示“1天”的礼物,它的剩余时长应该是t=60s,过期时间点是t0=24:00:00;
30s过后,当前时间来到23:59:30,则变为剩余时长t=30s,而过期时间点t0=24:00:00并不会变。

而按照你说的精确到毫秒的expire_at好像是对应于我上面的t0吗?也就是说并不是所有礼物都在某天的0点过期吗?如果程序是这样的,这与实际不符啊,实际就是所有礼物都会在0点过期啊(难道是有偷偷在中午过期的我没发现?)
如果过期时间点t0不都是在0点的话,包裹里的天数又是怎么计算的呢?显示1天的是指会在今天过期但可能不到24点就过期了吗?
————————————————————
而如果你说的expire_at是对应于我上面的t,也就是说这个数值会随着时间而减少,并在0点减小为0从而过期,那我觉得单位设置为天没有问题啊,就是把包裹中显示的天数小于等于设置天数的所有礼物都送出。
假如我在23:59送礼,那么包裹中道具的剩余时长t要么就是60,要么就是86460、60+86400*n,【礼物到期时间】设置在[60,86460)之间的任意值都不会影响送礼结果。(但我从变量命名来看应该不是这种情况,但同时从设置中的86400来看好像又应该是这种情况)

总之就是,如果礼物都是在某天0点过期,那设置为天是没问题的。但是如果不是都在0点过期,那就超出我的认知范围了,可以忽略我的这些看法。
(我刚刚测试了23:59领了3个舰长辣条(1天)并且不送出,然后到0点时这3个辣条就从包裹里消失了;原来显示2天的辣条变为显示1天,但数量也没有增加,说明那3个确实过期了而不是合并到第二天的辣条里了。也就是说这3个辣条从领取到过期只有几十秒。基于测试我还是认为礼物是在0点过期的。如果不是的话能告诉我一下领取的舰长辣条的过期时间点/有效时长是多少吗?

@andywang425
Copy link
Owner

这么说的话可以改成天。我自己算了下发现所有礼物确实都在0点过期。

@4266464
Copy link
Author

4266464 commented Jul 17, 2020

【自动投币】实测还是会死循环
需要提供什么信息请告诉我,我也不知道应该提供什么信息才可以找到bug
我是用了自己的小号通过脚本给大号投币,但是前2个硬币可以正常投出,之后不够了就会进入死循环。
使用的Microsoft Edge浏览器的InPrivate模式
控制台日志如下:
coin_log

@4266464
Copy link
Author

4266464 commented Jul 17, 2020

【礼物到期时间】(下文以【时间】代替)
我发现了之前我修改【时间】无效、2天的礼物没有送出的原因。
是因为我没有对应直播间的粉丝勋章,所以是通过【剩余礼物送礼直播间】赠送的,
这个功能好像只会送1天的,所以修改【时间】没有用。

我下面说一下我个人关于【礼物到期时间】的看法。
首先一般来说,【时间】设置为1天最为常用,因为这些礼物不送就过期了。
那么什么情况下【时间】会设置成不是1天(大于1天)呢?

  1. 只送1天的礼物送不满亲密度上限,需要提前送出后面几天的。但是这种情况完全可以使用【送满全部勋章】功能来达到目的,而无需修改【时间】
  2. 并不是每天都能挂脚本,需要提前送出几天后过期的礼物,以防后面几天不能使用脚本自动送礼导致礼物过期未送出。在这种情况下,【剩余礼物全部送出】也应该应用【时间】,因为如果不送出就只能等着过期。
  3. 暂时还没想到……(可能你设计时有其他考虑)

所以我个人短浅地认为,除了情况2,一般也不需要修改【时间】,所以还是希望将【时间】应用到【剩余礼物全部送出】上。
不知道作为开发者你对【时间】这个选项的功能定位是什么,预期在什么情景下发挥作用。
至于最终是否要将【时间】应用到【剩余礼物全部送出】,也请根据你对这个功能的定位自己决定。

@andywang425
Copy link
Owner

我觉得【礼物到期时间】这个功能意义肯定是有的,就算对某些用户来说没用也不碍事。
【自动投币】bug:最大的问题就在于我两个号硬币都很多,我是真舍不得把币全投了来测这个bug,所以没法测试改得对不对。
谢谢你给出的日志,我觉得可以从错误码为-104入手,这样投错一次后可以及时终止投币。

@4266464
Copy link
Author

4266464 commented Jul 17, 2020

我觉得【礼物到期时间】这个功能意义肯定是有的,就算对某些用户来说没用也不碍事。
【自动投币】bug:最大的问题就在于我两个号硬币都很多,我是真舍不得把币全投了来测这个bug,所以没法测试改得对不对。
谢谢你给出的日志,我觉得可以从错误码为-104入手,这样投错一次后可以及时终止投币。

我的重点不是在【礼物到期时间】有没有意义,可能我说的太多了重点不突出。
我是希望将“剩余礼物:指送完了所有粉丝牌,但仍有剩余的将在1天内过期的礼物。”这个“1天”也改为由【礼物到期时间】指定。也就是用户可以自由定义剩余礼物是几天内的礼物。
这个只是我个人需要用到这个功能,如果你不认为这个需求具有普遍性,那不改也无妨。

@andywang425
Copy link
Owner

andywang425 commented Jul 17, 2020

我觉得【礼物到期时间】这个功能意义肯定是有的,就算对某些用户来说没用也不碍事。
【自动投币】bug:最大的问题就在于我两个号硬币都很多,我是真舍不得把币全投了来测这个bug,所以没法测试改得对不对。
谢谢你给出的日志,我觉得可以从错误码为-104入手,这样投错一次后可以及时终止投币。

我的重点不是在【礼物到期时间】有没有意义,可能我说的太多了重点不突出。
我是希望将“剩余礼物:指送完了所有粉丝牌,但仍有剩余的将在1天内过期的礼物。”这个“1天”也改为由【礼物到期时间】指定。也就是用户可以自由定义剩余礼物是几天内的礼物。
这个只是我个人需要用到这个功能,如果你不认为这个需求具有普遍性,那不改也无妨。

好像确实没啥普遍性,不大想做。如果你想修改这个时间的话,在原格式代码中搜索let limit = 86400,修改86400(单位秒)这个常量即可。

@4266464 4266464 closed this as completed Jul 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants