仙五前修改吧 关注:135贴子:14,496
  • 51回复贴,共1

关于状态回合数的问题

只看楼主收藏回复

做回魂仙梦的时候就觉得五前的状态回合数很乱,好像有很多地方无法解释。
http://tieba.baidu.com/p/3706398001
上面这个帖子发现各种奇奇怪怪的问题,但是没有规律无从解释。
今天看到这个帖子:http://tieba.baidu.com/p/4546084602
一开始我是不信的,去试了一下,发现真有bug,配上循循善诱,一个烤鸭打3回合,可怕极了
bug开始呈现规律性:似乎与状态的同时消失有关。


设想状态是一个队列,每个状态一个计数器,到回合开始便-1,计数器为0的移除队列。经过测试,有这样的问题:
假设本回合角色有n个状态计数器即将减为0,则n个状态不是都消失,而是有一半会消失(向上取整)。
比如n=1,就一个状态,会消失
n=2,就上面帖子提到的bug,会消失一个,而且一定是先加的状态消失
n=3,消失2个状态,规律不明显,下同
n=4,消失2个状态
n=5,消失3个状态
n=9,消失5个状态
for i=1,14 do
 player.AddStat(0,1,200,i,2)
end
可以加9个状态

不消失的状态可以看成是计数器维持在1
所以我刚才测试加了人物9个状态1回合,实际消失5个,剩下4个,刚好是2个有利状态2个不利状态;然后下一回合消失1个有利状态1个不利状态;再下一回合消失1个不利状态;再下一回合消失所有状态。


可惜今天要赶作业不能逆向分析了,这个机制真是非常有趣,最有趣的是也许可以找到一个添加状态的方法使得武爆永远维持(可能性倒是不大)?


回复
1楼2016-05-15 20:51
    @hyz621 你的发现非常重要,还可以继续探究探究。要是你会使用脚本就方便多了。


    回复
    2楼2016-05-15 20:52
      @大港口舰


      回复
      3楼2016-05-15 20:55
        3个状态我也写了一个,我怀疑是因为buff也有id有关


        回复
        4楼2016-05-15 21:01
          还有隐蛊,单挑一贫的时候有时候3回话有效,有时候4回合有效,这样看应该跟身上的其它状态有关


          回复
          6楼2016-05-15 22:48
            这个东西会与状态的属性有关吗?


            收起回复
            7楼2016-05-15 22:57
              好像阴1500+去掉debuff也会因为第二回合自身之前的状态消失而延长debuff一回合
              所以,X5应该是把debuff变成1回合,不知道5Q为什么就不好用了


              回复
              8楼2016-05-15 23:00
                话说buff会不会和debuff一样是有等级的


                收起回复
                9楼2016-05-17 12:46
                  今天研究了状态回合问题,好像发现的点规律
                  对于buff而言,同时消失的话,对于人物而言,出现时间为单数(1.3……)的buff消失,双数的状态持续
                  潜龙耀就是这样的,所以为什么强袭神行是3回合,坚盾4回合,法障5回合
                  debuff我不会加,不知道是不是这样
                  @大港口舰
                  @风靡义磊


                  收起回复
                  10楼2016-05-21 18:31
                    结论是:
                    回合开始时,各状态回合数依次-1,若有减到0的,其下一个状态不减回合数。回合数减到0意味着状态消失。


                    当然这其中有一定的猜想成分,不妨验证。


                    收起回复
                    13楼2016-05-27 23:26
                      强袭2回合,坚盾2回合,法障3回合,神行2回合,因为坚盾代替了强袭的位置,所以没有消失,但是由于法障没有消失,神行没有被跳过结算所以消失了,如果后面还有屏系2回合应该也不会消失
                      而强袭2回合,坚盾3回合,法障2回合,神行2回合,因为坚盾代替了强袭的位置,所以没有结算,但是由于法障没有被跳过还是要结算,所以消失了,而神行由于替代了法障,所以跳过了结算
                      ps:现在有个新想到的问题,状况2的坚盾状态会不会多一个回合


                      收起回复
                      14楼2016-06-01 20:16
                        更新一下,经过@抽火不用烟 的提醒,我仔细看了下代码,实际操作如下:


                        for(i=0;i<s.Count;i++)
                        {
                          s[i].Round--; //Round为回合
                        }


                        for(i=0;i<s.Count;i++)
                        {
                          if(s[i].Round<=0)
                            s.RemoveAt(i);
                        }


                        带来的变化是某状态消失,其后跟着的状态回合数会-1,只是会跳过消失判断


                        收起回复
                        15楼2018-04-07 13:04
                          抽火不用烟做的动画图解(1P开头),不错不错哈
                          https://www.bilibili.com/video/av22538503


                          回复
                          16楼2018-04-28 19:36