仙五前修改吧 关注:137贴子:14,515
  • 5回复贴,共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
        结论是:
        回合开始时,各状态回合数依次-1,若有减到0的,其下一个状态不减回合数。回合数减到0意味着状态消失。


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


        收起回复
        13楼2016-05-27 23:26
          更新一下,经过@抽火不用烟 的提醒,我仔细看了下代码,实际操作如下:


          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