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. SAK-WING说道:

    来看,知道有这个问题不过没心情去想别人写出来的神奇逻辑_(:зゝ∠)_{:4_96:}

  2. ejade说道:

    chbedivere 发表于 2015-5-22 14:48

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

    这很正常啊,4-2是有2补给的配置了,你同时接打完2个补给就是这个样子

  3. ejade说道:

    都谷捻柏 发表于 2015-5-22 15:37

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

    主要是我不知道这个部分是用什么语言写的,所以无法揣摩语言背后是否有啥特性……{:4_113:}

  4. aajiangzz说道:

    并不是加半个是加了一个,但是没接的任务不能完成强制80%。那个一次性的演习任务就是这样

  5. ejade说道:

    aajiangzz 发表于 2015-5-23 03:21

    并不是加半个是加了一个,但是没接的任务不能完成强制80%。那个一次性的演习任务就是这样

    但是演习任务和烙饼任务(至少烙饼任务是)不接,显示80%。一接上能自动完成。但是3补给显示80%接上还是80%啊。。。

  6. aajiangzz说道:

    ejade 发表于 2015-5-23 03:24
    但是演习任务和烙饼任务(至少烙饼任务是)不接,显示80%。一接上能自动完成。但是3补给显示80%接上还是8 …

    演习任务不能自动完成吧,我就是没接变成80%只能等第二天再打一场了,捞饼应该是单独做的任务和这些完全不同,因为这些任务是接了同类任务统计器重复才能不接就加进度,而捞饼是完全不需要接任务

  7. intotherain711说道:

    三补给的计数已经8个了,8/3大于80%所以显示80%,怕不怕

  8. ejade说道:

    intotherain711 发表于 2015-5-23 05:25

    三补给的计数已经8个了,8/3大于80%所以显示80%,怕不怕

    然而比较肯定是和0.5 0.8 1这三个值比的{:4_88:}

  9. chbedivere说道:

    ejade 发表于 2015-5-23 00:41
    这很正常啊,4-2是有2补给的配置了,你同时接打完2个补给就是这个样子

    打的是三艘补给

  10. intotherain711说道:

    ejade 发表于 2015-5-23 07:18

    然而比较肯定是和0.5 0.8 1这三个值比的

    我不会编程的东西, 瞎说说的.

    这游戏里 出击任务好像一定要在勾选的前提下 经过出击->回港后进行一次是否”达成”的判定.

  11. ejade说道:

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

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

    今天测试了单接3补给的情况。。先打了2个补给 3补给显示50% 5补给没有

    再打2个补给,3补给完成,5补给显示80% 基本符合你的假设

    但是因为是在2-3打的,没有观察到最关键的打了3个补给的时候的情况。。如果5补给是50%的话就比较有说服力了。。

    顺便召唤反例~

  12. MaJi说道:

    今天打了3艘,打了两次,

    1.一艘,俩任务都没显示

    2.两艘,日常三艘完成,5艘显示80%

  13. ejade说道:

    MaJi 发表于 2015-5-28 11:25

    今天打了3艘,打了两次,

    1.一艘,俩任务都没显示

    2.两艘,日常三艘完成,5艘显示80% …

    接任务的顺序呢?还是全程两个都接了?

  14. MaJi说道:

    [i=s] 本帖最后由 MaJi 于 2015-5-28 11:47 编辑

    ejade 发表于 2015-5-28 11:29

    接任务的顺序呢?还是全程两个都接了?

    ,先接5艘的,然后接的3艘的,出击了一次后,修理的时候3艘的取消了一次,出击的时候俩任务都是接的。

  15. 我只接了5艘的,打完5艘出3艘的80%

    我怀疑这两个用的是同一个计数器,只是触发任务完成需要击沉运输船

  16. ejade说道:

    普通的魔法使 发表于 2015-5-28 11:54

    我只接了5艘的,打完5艘出3艘的80%

    我怀疑这两个用的是同一个计数器,只是触发任务完成需要击沉运输船 …

    恩这个情况在正文里谈过了

  17. ejade说道:

    MaJi 发表于 2015-5-28 11:45

    ,先接5艘的,然后接的3艘的,出击了一次后,修理的时候3艘的取消了一次,出击的时候俩任务都是接的。 …

    不应该啊……根据我们现有的结论如果你出击时2个都接了 打1艘 3补给应该就到50%了才对。。可能的话下次5补给日再试一下?

  18. MaJi说道:

    ejade 发表于 2015-5-28 12:10

    不应该啊……根据我们现有的结论如果你出击时2个都接了 打1艘 3补给应该就到50%了才对。。可能的话下次5 …

    可以,我记录下顺序,

    接5,3,出击,1,放弃3,接3,出击,2

  19. ejade说道:

    MaJi 发表于 2015-5-28 12:11

    可以,我记录下顺序,

    接5,3,出击,1,放弃3,接3,出击,2

    我的意思就是

    你记录的顺序和显示出来的结果



    我们前面共同讨论研究出来的结论

    不符……

    所以请下个5补给日再按这个顺序确认一下~

    下个5补给日我也会试一下你这个顺序~

  20. 鸣沢律佳说道:

    用同一个计数器x的话,那就不用判断2次分别作x+=n计算了吧

  21. MaJi说道:

    ejade 发表于 2015-5-28 13:27

    我的意思就是

    你记录的顺序和显示出来的结果

    所以记录啊,怕忘了

  22. ejade说道:

    MaJi 发表于 2015-5-28 15:40

    所以记录啊,怕忘了

    =w= 那路或多

  23. MaJi说道:

    今天第一次出击,打了1艘之后三艘的就显示50%了、、、、

  24. ejade说道:

    MaJi 发表于 2015-6-2 10:53

    今天第一次出击,打了1艘之后三艘的就显示50%了、、、、

    恩。。这个是正常的剧本。。

  25. MaJi说道:

    今天,同时接了3补给和5补给,

    2-3走了下路,H点昼战打掉1补给,夜战没打掉第二艘补给舰,然后进入K点,昼战打掉1补给,夜战打掉第二艘补给。然而

    {:4_108:}{:4_108:}{:4_108:}

  26. ejade说道:

    MaJi 发表于 2015-6-12 08:43

    今天,同时接了3补给和5补给,

    2-3走了下路,H点昼战打掉1补给,夜战没打掉第二艘补给舰,然后进入K点,昼 …

    这个如果你的观察,描述,和我的理解都没有问题的话。。无法用现有的理论解释啊。。

    而且这个过程要重现好难%>_<%

  27. MaJi说道:

    ejade 发表于 2015-6-12 08:46

    这个如果你的观察,描述,和我的理解都没有问题的话。。无法用现有的理论解释啊。。

    而且这个过程要重现 …

    因为就出击了一次就完成了(我以为),然后就被娇【关ww键ww词】喘打击了,现在绝赞2-3进boss中

  28. MaJi说道:

    ejade 发表于 2015-6-12 08:46

    这个如果你的观察,描述,和我的理解都没有问题的话。。无法用现有的理论解释啊。。

    而且这个过程要重现 …

    完全无法理解为什么打掉了3艘 会算 打了4艘,总不会是,K点的补给不算双倍吧

官方微信

Login

跳至工具栏