概率与随机偏移

来自RustedWarfare Wiki
N9tank留言 | 贡献2023年11月10日 (五) 19:22的版本 (创建页面,内容为“概率: 我们通常使用spawnChance来表达产生几率,它大部分上一章*随机数相识,不再说明。 这是它调用的方法。 public static final int a(ah ahVar, int i, int i2, int i3) { k t = k.t(); if (i < i2) { int i4; int i5 = t.bu + 1; int i6 = (int) (((float) ((int) (((float) ((int) (((float) ((int) (((float) ((int) (((long) t.bG) + (1313 * ahVar.ej)))) + (ahVar.eq * 13.0f)))) +…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

概率: 我们通常使用spawnChance来表达产生几率,它大部分上一章*随机数相识,不再说明。 这是它调用的方法。 public static final int a(ah ahVar, int i, int i2, int i3) {

       k t = k.t();
       if (i < i2) {
           int i4;
           int i5 = t.bu + 1;
           int i6 = (int) (((float) ((int) (((float) ((int) (((float) ((int) (((float) ((int) (((long) t.bG) + (1313 * ahVar.ej)))) + (ahVar.eq * 13.0f)))) + (ahVar.er * 13.0f)))) + (ahVar.eq * 130.0f)))) + (ahVar.er * 130.0f));
           if (ahVar instanceof ce) {
               i4 = ((ce) ahVar).bE;
               i4 = (i4 * i5) + (i6 + (i4 * 13131));
           } else {
               i4 = i6;
           }
           i4 = ((((int) (((long) (i4 + ((i3 * 133) * i2))) + ((((long) i3) * ahVar.ej) + ((long) i3)))) + ((i5 * 1313) * i3)) + ((i5 * 13) + (i5 % 10))) % (i2 - i);
           if (i4 < 0) {
               i4 = -i4;
           }
           return i + i4;
       } else if (i <= i2) {
           return i;
       } else {
           k.b("min>max");
           return i;
       }
   }

其中i4由单个spawnUnits第几项影响,这使多个spawnUnits生成结果相同。 它的生成范围是不均匀的,如果统计它的生成状况的话可能不会得到较好的效果。(生成从第一个开始) 随机偏移: 由于多个spawnUnits生成结果相同,为此必须使用一些延迟来避免它,过小是不适合的,这只会加上游戏帧影响的一个乘数,使它们从左上到右下生成连起开就是一条斜线。 因此我们需要等待游戏更新种子后再生成, 游戏更新种子的时间是不确定的,它可能在200~300区间,选择300延迟较稳定。