ejade

【码农水】【长期实验中】关于5补给日常的实现机理讨论

[i=s] 本帖最后由 ejade 于 2015-5-28 13:28 编辑

好吧,虽然是我闲的O疼,但想了想还是把帖子分类到了游戏讨论里。。


KC十大灵异事件之——只有半只的幽灵补给船

众所周知的是,在5补给日常出现的时候,对于3补给日常是有双倍(不知道为什么看到双倍就想到蓝色呢o(* ̄▽ ̄*)o )加成的。(本人未曾严格的测试过该双倍BUFF是否对20补给周常和ro号有效,但想来应该是无效的,逻辑上考虑那两个任务大概要用另外的不同的计数器。但是还是希望能有做过实验的dalao出来证实/证伪一下~)

所以在有5补给日常的日子,大家的任务顺序大概是这样的。。1次出击,开出5补给。再1次出击,开出10出击和3补给。

接上3补给和5补给,去2-3打2个补给,于是3补给完成,5补给来到了80%。再出门打一次补给,5补给也完成了。(或者脸好的一次2-3出门打4个补给,双杀)

或者是接上3补给和5补给,去5-4打一个补给,5补给没提示,3补给到达50%,再打1次5-4,3补给完成,5补给80%。然后再打一次5-4,全做完。

然后我测试了同时接两个任务,打1个补给以后,5补给没有,3补给50%。然后取消3补给以后再打一个补给, 5补给没有像同时接两个一样显示80%,而是显示50%,并且3补给自动到了80%,even没有接。——这是我5月11/2号做的实验。

当时我觉得这个逻辑已经很清楚了,两个同时接,打1个对两个任务都算打2个。 只接其中一者,打1个对接的任务算打1个,对没接的任务算打半个。

尽管我并没能YY出打1个对接的任务算打1个,对没接的任务算打半个这样的逻辑后面有着如何扭曲的代码。

但是可以想象框架应该是

unsigned int x = 0; //x是今天打的任务用补给数,每日任务更新时清零。

然后每次战斗结算时,

if questonlist.find(3补给) && 打了n个补给 x+=n

if questonlist.find(5补给) && 打了n个补给 x+=n

然后进入任务界面时

if 有5补给的日子

if questlist.find(3补给)

根据(double)x/2/3 和0.5 0.8 1的比较显示50%,80%,达成等

5补给同理

else

if questlist.find(3补给)

根据(double)x/3 和0.5 0.8 1的比较显示50%,80%,达成等

至此为止可以很好的解释:两个同时接,打1个对两个任务都算打2个。的逻辑

但是无法解释:只接其中一者,打1个对接的任务算打1个,对没接的任务算打半个。的逻辑

当然通过某些更复杂更扭曲的代码还是可以实现上述逻辑的。。(多几个if的问题嘛,码农:只要有逻辑我们就能实现给你看 [s]没逻辑也还可以randomization嘛[/s])

我推测应该是原来只有3补给的代码,后来要在里面强行加入5补给的任务,但是娇【关ww键ww词】喘的码农又懒得推倒重写,改改改的过程中又改的不够机智,就越改越扭曲了_(:з」∠)_(我觉得如果某10护甲的倒霉蛋还只是码农粗心以及review没查出来的锅的话,能写出逻辑如此扭曲的代码的码农一定是一只比我还蹩脚的实习猴子)

然而,事情到这儿还不算完。今天又是一个有5补给的日子。我又做了如下测试:只接5补给,开始打。打2个补给,啥都没有(因为根据我们之前的逻辑处于1/3 2/5的状态)。再打2个补给,5补给也如愿来到了80%,但是3补给也直接上到了80%(如开始的图所示)。。然而3补给此时应该是2/3即50%的状态。。。于是这完全推翻了之前我们总结出的逻辑(╯‵□′)╯︵┻━┻

于是现在我也不知道这个里面到底是怎么实现的了_(:з」∠)_。。。特此发帖希望更多[s]闲的蛋疼但是又不想做那些很费资源的测试[/s]的志愿者们贡献各种做3、5补给的姿势,以期能够总结摸清其背后的代码的逻辑和实现。[s]然而摸清了也并没有什么*用[/s]

发表回复

  1. sakurakusa说道:

    今天一场打了四只然后完成了两个(

  2. NinthStar说道:

    = =这看上去非常诡异……娇【关ww键ww词】喘程序员不会写正常的代码么……

  3. ejade说道:

    sakurakusa 发表于 2015-5-22 09:50

    今天一场打了四只然后完成了两个(

    恩。。这个含在“大家的任务顺序大概是这样的”的情况里

  4. Aris说道:

    换个角度考虑,当初捞饼的时候不接任务的话完成度只能达到80%,这时候如果饼已经捞完直接接任务显示的就是完成状态

  5. ejade说道:

    Aris 发表于 2015-5-22 10:03

    换个角度考虑,当初捞饼的时候不接任务的话完成度只能达到80%,这时候如果饼已经捞完直接接任务显示的就是 …

    没太看懂。。能详细描述一下吗。。

  6. Aris说道:

    ejade 发表于 2015-5-22 10:44

    没太看懂。。能详细描述一下吗。。

    捞饼不是要10个完成后一个任务么,

    如果你不接任务,任务进程依然会继续,但是就算你捞满10个他不会显示100%,最多到80%。

    但是这个时候你接任务的时候就会直接变成任务完成

  7. 駆逐艦雪風说道:

    我从头看到尾,然后你跟我说上面的都是错的(摔)
    不过好多码农啊。。总感觉码农都好厉害 _(:3)∠)_

  8. wakawakashine说道:

    [i=s] 本帖最后由 wakawakashine 于 2015-5-22 12:00 编辑

    接3补给任务那么每打死一艘补给船这个任务进度增加1/3(很好理解)然后给5补给的记打死一艘(什么鬼),接5补给任务每打死一艘补给船这个任务记录打死一艘(正常),3补给任务进度增加1/5(这什么鬼),我觉得可以解释这个现象了,感觉这两个任务一个是计数的一个是记进度的

  9. 五更poi说道:

    首先2-3得进补给点,已经四连boss什么的_(:з」∠)_

  10. cbldabing说道:

    駆逐艦雪風 发表于 2015-5-22 11:18

    我从头看到尾,然后你跟我说上面的都是错的(摔)

    不过好多码农啊。。总感觉码农都好厉害 _(:3)∠)_

    雪老师又来卖萌了

  11. cbldabing说道:

    3补给还能80%。。。。。厉害

  12. lgzh1215说道:

    两个任务采用同一进度计数器,每击沉1补给船,3补给船给计数器+1,5补给船给计数器+1,所以击沉1补给船算俩。

    至于80%那个,参考【棱饼任务】和【3空母与吃撑任务(这两个任务也是共用计数器)】,不负责任的猜想:【出击任务已完成】但是【没接任务】就会显示80%

  13. ejade说道:

    Aris 发表于 2015-5-22 10:49

    捞饼不是要10个完成后一个任务么,

    如果你不接任务,任务进程依然会继续,但是就算你捞满10个他不会显示1 …

    那路或多。。。好神奇!

  14. ejade说道:

    lgzh1215 发表于 2015-5-22 12:25

    两个任务采用同一进度计数器,每击沉1补给船,3补给船给计数器+1,5补给船给计数器+1,所以击沉1补给船算俩 …

    但是这个和烙饼不一样。我接上了还是80% 烙饼看着是80%接上就自动完成了呀~

  15. ejade说道:

    wakawakashine 发表于 2015-5-22 11:43

    接3补给任务那么每打死一艘补给船这个任务进度增加1/3(很好理解)然后给5补给的记打死一艘(什么鬼),接5 …

    符合目前的例子。。{:4_119:}我在尝试构造能够测试的反例。。

  16. lgzh1215说道:

    ejade 发表于 2015-5-22 12:27

    但是这个和烙饼不一样。我接上了还是80% 烙饼看着是80%接上就自动完成了呀~ …

    烙饼那个我看是跟编成任务差不多,是那种接了就可以完成的类型

  17. ejade说道:

    lgzh1215 发表于 2015-5-22 12:30

    烙饼那个我看是跟编成任务差不多,是那种接了就可以完成的类型

    为什么这儿←左边的头像和新消息提醒那里的头像不一样_(:з」∠)_

  18. lgzh1215说道:

    ejade 发表于 2015-5-22 12:32

    为什么这儿←左边的头像和新消息提醒那里的头像不一样_(:з」∠)_

    因为我在换头像_(:з」∠)_可能是缓存没更新的缘故

  19. wakawakashine说道:

    ejade 发表于 2015-5-22 12:30

    符合目前的例子。。我在尝试构造能够测试的反例。。

    感觉你的猜想里面和我的不一样的地方就是认为没接的任务记半艘这个,转换成我的假定方式是进度+1/6,我的那个假定方式是进度+1/5

  20. ejade说道:

    wakawakashine 发表于 2015-5-22 12:44

    感觉你的猜想里面和我的不一样的地方就是认为没接的任务记半艘这个,转换成我的假定方式是进度+1/6,我的 …

    所以接下来应该试接3补给 不接5补给 然后一艘一艘打 看变化。

    如果5补给那边算半艘和5补给那边算1/3的差距是巨大的。

    有谁还没做这俩的试一下吗?或者等下个日子_(:з」∠)_

  21. ejade说道:

    駆逐艦雪風 发表于 2015-5-22 11:18

    我从头看到尾,然后你跟我说上面的都是错的(摔)

    不过好多码农啊。。总感觉码农都好厉害 _(:3)∠)_



    这是我的一贯风格啊。。你看我在我结婚帖里就是这么玩的{:4_102:}

    http://dz.aemedia.org/forum.php … =4067&fromuid=26322

  22. 虎纹鲨鱼说道:

    上次那个新的一次性任务:艦隊の練度向上に努めよ!

    需要3次演习胜利

    如果这个任务和日常 「演習」で他提督を圧倒せよ(5个演习胜利)一起接的话

    也会出现打一个算2次的情况,和补给船一样。

    不知道你有没有注意过。

  23. ejade说道:

    虎纹鲨鱼 发表于 2015-5-22 13:59

    上次那个新的一次性任务:艦隊の練度向上に努めよ!

    需要3次演习胜利

    如果这个任务和日常 「演習」で他提督 …

    恩。。这个我注意到了。。

    所以大概是任务计数的父类写的有问题?导致这些继承比较相近的子任务都有奇奇怪怪的BUG_(:з」∠)_

    比如变量类型定义的问题?

  24. ggggggq说道:

    表示没遇过这种情况,不说还没注意到{:4_102:}

    PS:不知LZ是不是指的是加速幻象隐身{:4_103:}

  25. ejade说道:

    ggggggq 发表于 2015-5-22 14:17

    表示没遇过这种情况,不说还没注意到

    PS:不知LZ是不是指的是加速幻象隐身 …

    {:4_102:}{:4_103:}

  26. chbedivere说道:

    {:4_113:}然而在4-2打了一波3补给出来3补给任务完成了然而5补给任务是80%

  27. 都谷捻柏说道:

    是不是继承之后这种小数字的任务都用到了某静态变量啊……没可能像主楼那样专门为了这个去加判断啊……

  28. 駆逐艦雪風说道:

    ejade 发表于 2015-5-22 12:55

    这是我的一贯风格啊。。你看我在我结婚帖里就是这么玩的

    http://dz.aemedia.org/forum.php … …

    {:4_114:}作为一个会从头到尾认真看完的人我表示强烈的不满

  29. hzhh95963说道:

    {:4_93:}自从某次发现3补给可以出现80%之后我就放弃研究这东西到底是怎么计算的了

  30. 星灵雨说道:

    {:4_102:}有时候我完成了5个补给船,一看3只补给船的。直接80%。然后3只得任务我没接

官方微信

Login

跳至工具栏