欢迎光临散文网 会员登陆 & 注册

炮阵快速入门——工具篇

2021-11-28 18:49 作者:Crescebdo  | 我要投稿

【炮阵工具大礼包】

百度网盘链接: https://pan.baidu.com/s/1AKp4ZUf0Rl7ry1MaiMjnog?pwd=tg1w


内容一览:

常用软件文件夹内的工具应当都是有公开下载链接的,如果有作者不希望以此方式传播的话可以私聊我。


以下为简单的使用说明书。


【常用软件】


PVZ内存记录 —— 可以读各种内存,连续读取时推荐配合TSV逐帧运行游戏。存在小概率跳过某些帧的小bug,不影响正常使用。


随机数修改器 —— 又名RND,神器。内含使用说明,关于各随机数的范围参见 https://tieba.baidu.com/p/6620690189、https://tieba.baidu.com/p/7290751385等。注意小喷和阳光是相反的,即小喷横移其实是阳光横移,纵移同理。对于非匀速前进的僵尸(巨人扶梯等),随机数锁出的极值不一定是最慢/最快的,可能有若干px的偏差。


ShowMe —— 实时显示内存数据。压缩包内的不是最新版。


ShowPvZIndex —— 栈位显示器。栈位是什么?


终极植物大战僵尸修改器(WPF) —— 其实功能有很多,做炮阵一般用来修改内存,比如僵尸坐标。


interception_calculator(拦截计算器) —— 神器*2。打开程序后输入helpfull有详细说明,常用功能有输入波长&用冰时机求巨人坐标范围,求全伤巨人或不伤巨人的炸点,以及给定炸点求拦截允差等等。还可以计算核武拦截/尾炸、冰杀时机及炮损、巨人精确坐标计算(可含多段相位)等等。非常建议整明白。


常用指令:wave, hit, nohit, delay, delay(), pos(), walk()

语法基于python,helpfull内有使用例。


TSV(高级暂停) —— 手测一些场景时会用到,达成cs精度级操作。


冰透支计算器 —— 窝叶好几年前的作品,里面有说明,不过我其实没弄明白过2333


【补充】AvZ平均分配僵尸行数插件——下载地址&使用说明戳我,用于优化视频效果并简化收尾



【分离】


原作者elovi。iced_X代表于Xcs用冰,所以iced_0就是不用冰,iced_1就是完美预判冰。此格式下同。


内置了几乎所有僵尸(在对应用冰条件下的)精确时空数据,并根据此分别计算分离三行与两行的分离时机。那张分离全收表比较特殊,是用来计算全收巨人与某种僵尸的最大波长。


里面有多张数据表,其中【距离】就是各个僵尸的判定距离。跳跳是按照理论上最难收的个体位置进行计算的,存在炮的情况下不一定与实际相符。掌握表的运行逻辑后,可以自行替换僵尸数据部分(甚至距离部分)。



【复合数据】


这部分其实都是我用rtvz测的……不过零度似乎没有公开发布过rtvz,所以我也就不越俎代庖了。


这些数据无法直接用简单工具计算出来,可偏偏实战里又用得较多,所以干脆就测出来了。例如446垫巨人+134铲的意思,就是446放垫,134后铲除,在之后的不同时刻最快&最慢巨人的坐标范围。用处有很多,比如知道最快巨人坐标后,可以适当前移热过渡炮炸点。



【脚本示范】


这个感觉其实都不用说明了……100%原创脚本,不过几乎无注释,有些注释还是错的,毕竟平常能用就懒得改了。不是每个脚本都能直接运行,因为里面涉及到一些我自己写的头文件。由于种种原因暂时不提供下载,主要是写得太乱了…… 但删掉或替换这些语句后肯定是可以正常运行的。



【时空数据】


俗称查表,excel多开噩梦。大部分作者仍为elovi。用这些表你就可以知道在某用冰时机下任意时刻某僵尸的最快/最慢可能坐标。其实拦截计算器就是复合了巨人这一部分的功能。


Warning:这些数据都是锁随机数极值得出的,直接在空场地PE测的所以海豚和潜水的数据都是针对水路无植物。由于https://tieba.baidu.com/p/7290751385里提及的原因,随机数得到的极值不一定绝对准确,可能有若干px偏差,但常规使用是没有问题的。


Tip1:拦截计算器的巨人数据用的是另一套计算方法,是100%准确的。如果和此表出现出入,请相信拦截计算器(虽然也就差那么几个px,至于吗(


Tip2:游戏内存里的坐标虽然是浮点,实际判定都是直接取整数部分的。


Tip3:部分表里冰车和矿工的列宽特别宽……嗯,这个其实是为了方便查阅弄的,平常查得实在太多(。选中最左边一列(time列),然后ctrl+F,输入要查询的时机,就可以直接查到该时机所有僵尸的坐标。



【数据资料】


一些重要判定数据贴的备份。截止目前为止这些贴子在贴吧还应该都是存活的,不过以防万一嘛。


注意时空贴是09年的上古老贴,虽然其精度之高涵盖范围之广足以让十几年后的我们不断卧槽,里面的数据不是100%准确的,比如土豆的爆炸范围就不对。以及其使用的都是旧坐标系,换算成新判定坐标系需要右移、上移各20px,仍请注意。在没有100%把握的情况下不要依赖于时空贴给出的数据,因为你的解读可能有误(


不在宝前没什么可说的,神。进入贴吧个人空间可以查看更多~



【速度计算器】


四个字形容就是真的流批。


首先这个东西跟拦截计算器一样,是100%精确的,其使用的数据不是锁随机数极值得到的那么简单。使用方法是将相位分段输入,即可得到对应僵尸坐标。


嗯你问什么是相位?相位就是僵尸播放行走动画的进度,可以理解为从0到1然后又到0的一个循环过程。但是!相位会被特定动作打断,具体来说就是巨人举锤,巨人投掷,和一般僵尸啃食等。受冻解冻不改变相位,只是改变变化速率。


比如我想知道精确ch4(11冰,1738波长)下红眼最快什么时候砸前置炮。那么我就可以在第一行先输入 11+(1738+1538-700-11)/2,这是红眼投掷前行走的全部时长(折算为原速)。之后再试第二个数,试到正好举锤,加上投掷耗时、受冻耗时、砸扁耗时就可以了。更详细的使用说明戳我



【其它文件】

0511_Endless数据整理_by Crescendo —— 非常实用的一个东西。有同名贴发在贴吧。绝大多数常用但没法直接用以上工具算出来的数据都在这里有。


pvz常数_v2.2_修复 —— 修复后的零度大表,用于查询各种时空数据。

Note1: 和旧版相比,主要修复了小丑啃食、矿工啃2炮等数据上的偏差。lcx站已更新新版。

Note2: 所有数据由锁随机数得到,故存在极小范围误差问题。

Note3: 由于历史原因,制表时记录的时间坐标有误,故所有数据理论上都应-1,比如巨人全伤是225而非226。不过撑杆比较复杂,表里是359,也就是对应358,但因为随机数的精度问题实际上还是359。遇事不决建议多留点容错。


pvz常数v2.2 —— 零度大表数据版,基本上是前面时空数据表的另一个版本?内容差别不大。仍然要注意时标差1的小问题。


复用计算器 —— 又一神。一般用逐波功能,输入炮数,可以精确排布轨道并得知哪些炮会在哪些波次恢复。提示:做夜间节奏时不建议滥用循环功能,因为许多循环不成立的节奏在逐波上其实是可以成立的,不要把自己绕进去。


判定距离 —— 一句话概括就是从僵尸坐标换算到炮坐标。炮有两种坐标,一个是准星坐标,一个是爆炸中心坐标,除准星在屏幕边界的极端情况外都是爆心 = 准星-7。这里的单位都是px。写脚本时需换算成列数,直接除以80即可。


比如判定距离里说,本行巨人的炮左距是132。那么要伤坐标为800的巨人,最左爆心坐标就是 800-132。再换算成准星坐标就是+7, = 675,再/80 = 8.4375列。“炮左距”的意思就是爆心在僵尸左侧,炮右距同理。


炮弹僵尸计算 —— 给定灰烬(炮or核武)的爆炸中心坐标与爆炸半径,计算能伤到的各类僵尸的坐标范围。如时空贴所述,炮半径为115,核武半径为250,炮和核武的爆炸中心y坐标是一样的,右边有表格供参考。炮的x坐标如上所述;核武的x坐标是核武所在列*80。樱桃在这里毫无存在感,因为X列樱桃等同于爆心在80*X的炮。


时间计算器v2.0 —— 计算循环节奏冰透支情况,比窝叶计算器稍微直观一点。


炸率(不完全) —— 一些关于小丑炸率的数据。样本量和测试方法里面都有,这个炸率是针对极限出怪下(每波5梯5丑)随机分布得出的单波炸率,还没做完,敬请期待《炸率概述》有朝一日的发布。




总结:

  1. 专栏真是个好东西,在贴吧发这些个链接又不知道要被吞到哪里去(

  2. 本文虽长,但远远不足以算得上是一份完整的使用指南,只是快餐而已。这些工具几乎每个都是必要的,如果有做炮阵经验者应当能切实体会到。即使是现在一窍不通的新手,若能熟练掌握每个工具的用法,也无疑可以进化为炮阵好手。

  3. “这么多东西好麻烦qwq”——你说得对,但也不能一味怪开发者,其实许多工具已经有在整合了,比如那个拦截计算器显然可以计算很多跟拦截无关的东西。说到底炮阵里的数据元素的确多,精确炮阵非一朝一夕之功,这是【高精度键控】这个操作方式必然带来的特性。

  4. 那么以后会有整合了以上所有功能的多合一含gui软件吗?问得好,下一个问题

  5. 我发现我完全不懂某些游戏机制 —— 点我听视频教学 还有我。如果这些视频里的内容都无法平滑理解的话,可以考虑先去看下路的新手教程……

  6. 我是玩无炮的,纯路过 —— 嗯,其实无炮简史里就有云,极限超多炮和极限无炮在某种角度上是统一的。实际上无炮从来离不开数据,具体例子略,但我个人觉得同一个游戏同一种僵尸,多知道一点总是有益无害的。

  7. 本文很好地总结了渐强平时说“做个阵要开十几个窗口”到底开了哪些窗口


BONUS:实例一枚——求如何不让后置炮被啃

无脑答案:炸78列交界……额,2009年某贴子里说的(

正确答案:首先我们要知道,坐标如何的小鬼刚好会啃后置炮。可以用【数据资料→不在宝前→部分判定范围的计算】里给的小鬼攻击域,结合【数据资料→时空贴】里给的玉米炮防御域,计算出极端小鬼坐标。当然,也可以用【WPF】等工具开游戏实测。之后,使用【拦截计算器】的calcImp()原生函数,输出不同坐标的巨人投掷最右小鬼的坐标。比如x=700能投出的最右小鬼的坐标就是 print(calcImp(700, 50, 100, 400, 0))。50是y坐标(这里无所谓,随便取了个PE场地的第一行);100是投掷随机数,0代表力气最小100代表力气最大(有够形象的);400是延迟,这个函数默认小鬼落地后原地不动,所以这里设个大点的数就可以确保得到小鬼落地坐标;最后的0是栈位,在0和1里取值,在此处无所谓。之后反复试巨人坐标,可以得出x<687的巨人一定无法搞事。由此可以推断出炸(687-126)/80=7.0125列的炮是真正安全的,完爆78列交界……

高端答案:随便找个群@零度,完爆楼上


2023/8/24注:这一段的科学精神是好的。但是里面的数据和对随机数的说明全是错的。:)


炮阵快速入门——工具篇的评论 (共 条)

分享到微博请遵守国家法律