mlblys mlblys
关注数: 35 粉丝数: 54 发帖数: 7,683 关注贴吧数: 13
【多图警告】ini小白对优莱卡武器逻辑的一些测试 RT,起因是今日我改的用了乳齿象模式的铁龙在攻击一些建筑以及在高低差地形的时候出现了投射体命中后不爆炸或者干脆没有投射体射出的情况,经过多方调试无果后决定给我的单位新增一个切换成优莱卡攻击模式的选项,打出一条宽3格长10格的冲击波。于是我开始尝试解析优莱卡的武器逻辑 (武器的投射体直接复制了铁龙投射体但是加上了inaccurate和flakscatter=yes就出现前面所说的问题,之前也已经加过了subjectotrenches,subjectobuildings等行) (虽然这些和本贴的内容无关,不过如果可能的话还是希望能有高人指点一二,所以我就厚颜无耻地放在这里了)首先,做戏做全套,把优莱卡的所有代码复制出来单开一个ini保存(你问为什么注册代码数字这么大?因为在这些之前还有我自己改的ini)进游戏就能找到我们新注册的优莱卡,单位名称是missing说明我们新注册的单位运行基本正常(请不要在意旁边的女娲,那就是我改的投射体有点小问题的铁龙) 然后让我们进入正题 首先扫一眼代码,我们大致可以得知,优莱卡的攻击逻辑是: 首先优莱卡本体挂载的武器EurekaBlast开火,但是由于武器本身投射体的设置,导致该武器不会像其他武器发射一个炮弹出去打击目标,而是会在自己脚下爆炸。 具体原理我这代码小白就看不懂了,坐等dalao来解释。不过个人感觉原因可能和EurekaBlastP中的Dropping=yes有关。这一条决定炮弹是否下坠,一般是空军武器的代码。 然后由于本体武器的投射体EurekaBlastP带有空爆逻辑,所以会在武器爆炸后炸出一群空爆子武器EurekaBlastFrag,也就是我们在游戏中看到的那一群绿色气浪。 为了验证这一点,我们先把Eureka1WH中的对步兵倍率改为100,然后注释掉后文中的Versus.eureka=0%,这样一来理论上优莱卡开火时自己也会受到武器伤害。修改完的代码如图所示:进游戏测试:很好。我们可以注意到优莱卡的血条肉眼可见地减少了。这说明确实有一个武器在她的脚下爆炸,并且这个武器应该就是优莱卡自身挂载的EurekaBlast,也就是那个环。 一些朋友可能也记得,在早期版本中,那时同步浪人还是狂鲨的专属步兵,彼时的优莱卡开火会对自身造成不小的损伤,原因就在这里。 其次,根据 https://tieba.baidu.com/p/8277407363?pid=146939200924&cid=0#146939200924 这个帖子中5L大佬的描述,EurekaBlastP中的Cluster=决定冲击波的宽度,AirburstSpread=决定冲击波的长度。 我们先对Cluster=项目进行改动,将其改为1。按照大佬所说,这样之后优莱卡的攻击呈现出来的应该是一条宽1格长5格的直线。我们进游戏看看效果我们可以看到冲击波的宽度并没有按照我们预想的那样变成1(我这里忘了把弹头该回去,导致一只优莱卡为科学献出了宝贵的生命) 那么我们再把AirburstSpread=调低看一下效果AirburstSpread=2AirburstSpread=1AirburstSpread=0.3 发现什么了没? 优莱卡的气浪其实是一个正方形! 一个边长是{1+ AirburstSpread}格的正方形!(小数部分应该是被舍去了) 等一下,这不就是正常空爆武器的范围吗?那么为什么会有我们印象中直线前进的气浪的效果呢? 那么说到游戏中另一个带有“直线前进”,还用到了空爆逻辑的武器,那就是是库可夫将军的烟雾弹哒! 于是我们把优莱卡和库可夫烟雾弹的投射物代码放进ini对比器中检查一下几乎一模一样甚至这两个投射物在rulesmo中的位置都是相邻的 库可夫烟雾弹的AirburstSpread=2 而在游戏中库可夫烟雾弹的影响范围正是一个3x3的正方形,和我们刚刚发现的规律吻合 因此现在我们可以下结论,优莱卡的冲击波范围应该是一个6x6的正方形范围 如果是曾经用过空爆代码的同学可能已经注意到了,这两个投射体中都有一个最明显的特点,那就是他们都有Dropping=yes。 我尝试将这一句注释掉然后进游戏,现在发现优莱卡的攻击没有任何效果 之后我将EurekaBlastP中的Image换成了西风的投射物,并且将EurekaBlast中的Speed调高(炮弹飞行速度),进游戏之后woc 好帅(不是 图上大致就是去掉Dropping=yes以后的武器效果,效果意外地还不错 在这之中我注意到了以下几点: 1. 去掉Dropping=yes以后武器变成了比较标准的空武器+子武器模式的空爆武器,不过这个例子中的空武器是一个能造成伤害的有效武器 2. 炮弹投射体到达目标点上空时爆炸,正常触发EurekaBlast武器包含的所有的效果(伤害效果未测试) 3. 子武器EurekaBlastFrag几乎全部同时命中并爆炸 4. 子武器爆炸时确认到了类似MADMAN的自爆心逐渐扩散效果 5. 1-3条时武器AirburstSpread=3,第4条时AirburstSpread=5(原本数值)。或许是由于子武器数量不足,或许是由于游戏速度,总之当子武器数量较少时未确认到自爆心逐渐扩散的效果 既然上面的例子提到了madman,那么同理,将优莱卡和madman对应的武器投射体放入比较器中的话可以看到,优莱卡投射体和madman投射体的主要差别,除了炸出的子武器名和数量不同以外,madman的部分没有Dropping=yes,并且AroundTarget=no 那么如果按照madman投射体的样式去修改优莱卡投射体(实际只是将优莱卡EurekaBlastP中的AroundTarget改成no)之后就会得到这个效果:M.A.D.W.O.M.A.N, aka, 那女人终于疯了啊啊啊啊(不是 实际只需要将将优莱卡EurekaBlastP中的AroundTarget改成no就可达到图上的效果,如果将Dropping=yes注释掉的话就只能得到和前一个演示一样的正常空爆效果 具体原因可能是madman启动的时候实际是启动了MadBlastStart的空武器,其具有AreaFire条目,然后通过空爆炸出MadBlast(相当于前文中的EurekaBlast),后者才是实际启动空爆并挂载伤害子武器(也就是气浪)的“母武器”。又或者是由于部署启动的关系,开火位置和目标位置重合导致的 回到正题,根据测算(库可夫将军友情出演),从爆心到最远弹坑的距离刚好是8格,也就是上图中AirburstSpread的数值至此,有关优莱卡气浪武器的机制算是比较清楚了 首先在自己脚下爆炸一个母武器EurekaBlast。由于母武器对自身护甲类型比率为0所以自身不受伤害 然后由于母武器投射体EurekaBlastP启动空爆进程,炸出子武器EurekaBlastFrag 由于EurekaBlastP中带有Dropping=yes语句,使得炸出的子武器并非是想传统空爆武器一般,由于投射体在目标上方爆炸而向下炸出,而是从发起者至目标点逐次炸出,形成类似“直线前进”的效果。 不过由于本质仍然是空爆武器,因此炸出的子武器范围仍然是正方形或圆形,而不是直线。或许是由于其逐渐前进的视觉效果,而造成了直线范围的错觉。 至于EurekaBlastP中Cluster一项所代表的含义,按照我目前的测试并没有发现有什么明显含义。一说Cluster代表空爆武器影响范围内每个格子被子武器炸多少次,我尝试将EurekaBlastP的Cluster翻倍,让两个版本的优莱卡分别对同种建筑攻击,伤害并未见明显差别。 不过从目前的结果来看,我最初想做一个3x10范围的冲击波武器的想法看来没法实现了 目前关于优莱卡武器的构成仍然有几个尚不清楚的点 比如三轮为什么要让挂载空爆的母武器有伤害,还那么高,甚至填了弹头百分比。这个弹头会在优莱卡脚下爆炸,溅射范围又只有0.3,就算正常生效除了炸自己也炸不到任何别的东西。不过也许是将来某一天会让这个母武器发挥真正的作用 其次还有在优莱卡攻击时,不知道是不是错觉,每次那个绿圈范围内好像都见不到气浪,不知道这是什么原理 其次还有子武器EurekaBlastFrag底下有关于炮弹飞行距离的语句。这一句一般是用在分裂武器里面佣来控制母弹飞出去多远爆炸并释放子武器,放在一个基本开火即爆炸,发射即命中空爆子武器里面显得意义不明 以上就是我个人对优莱卡武器原理的一些探究,欢迎大家批评讨论 当然也希望有人能给我讲解以下为什么我的铁龙抛射体会失效的问题(事实上之前也改过几个盖特逻辑的武器,有时候也会因为不明原因而武器失效)
1 下一页