玩窝头网络工作室 pvzchina.anyplace.cn
当前位置:首页 > 新闻资讯

植物大战僵尸吧:无尽基础教程

更新时间:2020-03-08

无尽新手阵型

以下默认时间单位 cs(厘秒), 空间单位 px(像素), 血量单位 HP.

以下只讨论 PC 原版(1.0.0.1051) 在获得金向日葵, 解锁生存无尽模式, 买齐所有紫卡植物/模仿者/坚果修复术, 买齐 10 格卡槽, 完成阵型布置之后, 不使用修改器完成生存无尽后期阵型运转.

持续存在的植物布置构成阵型, 在游戏设定框架内能够有效处理所有僵尸组合并且保持阵型完整的操作称为阵解. 非极限阵在冲关过程中保证阳光不减或者动态平衡.

阵型布置可借助修改器完成, 无需手动开局. 阵型运转可借助半自动化脚本, 再辅助以手动操作.

阵型和操作密不可分. 目前还不存在(可以预见的未来也不会有)(在战斗界面)无需任何操作实现挂机无尽的阵型.

模仿者变身的植物都是白色, 阵型布置使用白色植物多是出于美观因素. (选卡使用模仿者则是变相减少该卡片的冷却时间.)

植物种在草地花盆上没有实质作用. 无论有没有花盆花盆上植物的判定范围都不会变(只是贴图位置变高). 相比于花盆上面的永久植物消失而被破阵的代价来说, 花盆被多啃几口拖点时间这点好处几乎没有意义.

玉米炮的右判定相比前轮的花盆/睡莲要偏左(10px), 因此可以通过投石车/冰车/小丑僵尸碾压/炸掉的方法来实现玉米炮前轮悬空, 同样无实质作用.

南瓜的判定范围相比其内的植物偏右(30px), 南瓜壳被砸/碾时其内植物会被一起压扁, 可通过临时铲除南瓜壳骗击巨人/避免过早被碾.

在合适的时机生效冰蘑菇可以消除最后一大波水池的三只缠绕着珊瑚的僵尸上浮, 即冰消珊瑚. 释放咖啡豆的时机约为红字出现后玉米炮闪 6-8 下, 冰消屋顶空降三人组的时机相同.

通过临时铲除攻击植物/大蒜变道/厚血僵尸做盾等方法引导梯子僵尸靠近南瓜并将梯子搭在南瓜上构成梯子南瓜, 即搭梯. 作用是保护梯子南瓜里的植物, 实现南瓜和植物无伤, 减小经济压力.

可无尽的阵型都有就算不存在小推车救场也不会让僵尸进家的能力, 为了避免出现触发小推车这种尴尬情况的出现一般会在布阵的时候就把小推车去掉.

春哥为玉米加农炮, 曾哥为忧郁蘑菇, 都是纯爷们以及神一般的存在. 因为春哥粉丝称为玉米, 曾哥表情和博客底部图片神似忧郁菇而得名.

出怪生成机制

游戏内置函数 0x00425840 生成出怪类型, 结果位于 [[[6a9ec0] +768] +54d4] 开始的连续 33 个 bool 类型的地址.

游戏内置函数 0x004092e0 从出怪类型生成出怪列表, 结果位于 [[[6a9ec0] +768] +6b4] 开始的连续 1000 个 int_32 类型的地址.

无尽后期(大约 80flags 之后)每轮总共 1000 只僵尸, 每波 50 只(伴舞小鬼除外), 每次选卡 20 波, 按列表顺序刷出.

以下简述从出怪种子到出怪类型的算法:

:begin

设定出普僵.

合成 MT19937 随机数算法所需要的种子, 由以下几个数值相加, 若算出的种子为 0 则重置为 0x1105.

[[[6a9ec0] +82c] +20]              // 用户序号
[[6a9ec0] +7f8]                    // 当前模式
[[[[6a9ec0] +768] +160] +6c] * 65  // 当前轮数乘以 101
[[[6a9ec0] +768] +561c]            // 开局时生成的一个随机数

产生一个 0-4 的随机数, 等于 0 则出报纸, 否则出路障.

设定剩余出怪类型数为 min{当前轮数 + 1, 9}. (第一次选卡轮数为 0.)

生成 0-32 的随机数(僵尸类型代号), 符合下列任一条件则重新生成, 设定要出最终得到的类型僵尸.

已设定出该类型僵尸.
非泳池/浓雾场景的潜水/海豚.
屋顶/月夜场景的舞王/矿工.
夜晚场景的冰车.
轮数小于 2 时的白眼/冰车.
轮数小于 5 时的红眼.
伴舞/鸭子/雪人/雪橇/小鬼.
豌豆/坚果/辣椒/机枪/窝瓜/高坚果僵尸.

重复上一步骤直到已设定的僵尸类型数等于剩余出怪类型数.

:end

旗帜/僵博即使设定也不会出现在出怪列表, 因此后期实际出现的僵尸类型总数为 9-11.

使用修改器调节出怪时所选择的僵尸种类数为 8-12 种比较合理.

设可出怪类型数是 m, 剩余出怪类型数是 n:

普僵/路障/读报/其他僵尸出现的概率分别为 10.8+0.2*n/m0.2+0.8*n/mn/m.

僵尸类型总数为 9/10/11 的概率分别为 n*(n-1)/(m*(m-1))n*(m-n)*2/(m*(m-1))(m-n)*(m-n-1)/(m*(m-1)).

普僵必出, 路障/报纸必出一种, 伴舞/鸭子/雪人/雪橇/小鬼不出, 豌豆/坚果/辣椒/机枪/窝瓜/高坚果僵尸不出, 白天/黑夜/屋顶/月夜不出潜水/海豚, 黑夜不出冰车, 屋顶/月夜不出舞王/矿工.

六大场地的 m 取值分别为 18/17/20/20/16/16, n 从第九次选卡开始取值为 9. 可得如下表格:

\ 普僵 路障 读报 其他
白天 1 90.00% 60.00% 50.00%
黑夜 1 90.59% 62.35% 52.94%
泳池 1 89.00% 56.00% 45.00%
浓雾 1 89.00% 56.00% 45.00%
屋顶 1 91.25% 65.00% 56.25%
月夜 1 91.25% 65.00% 56.25%
\ 9 种 10 种 11 种
白天 23.53% 52.94% 23.53%
黑夜 26.47% 52.94% 20.59%
泳池 18.95% 52.11% 28.95%
浓雾 18.95% 52.11% 28.95%
屋顶 30.00% 52.50% 17.50%
月夜 30.00% 52.50% 17.50%

僵尸刷新机制

每次选卡(一轮) 20 波僵尸, 上半场 9 波, 下半场 10 波, 关底 1 波. 第 10/20 波称为大波(旗帜波).

除第一次选卡外刷新倒计时开场均为 600 (第一次选卡为 1800), 开场后从 599 正常减少至 1 再刷出第一波.

第 9/19 波(旗帜波前一波)刷新时, 倒计时被设置为 4500 并正常减少, 倒计时初始值与当前倒计时的差值大于 400 (即本波刷出至少 401cs)并且倒计时大于 200 时将本波僵尸(除伴舞)全部消灭则倒计时立即被设置为 200. 倒计时减少至 5 时显示红字, 在 5 停留 25cs 在 4 停留 725cs, 由红字倒计时代替该值从 750 减少, 即倒计时减少至 5 之后 750cs(减少至 4 之后 725cs)刷出下一波. (视觉红字约在刷出前 85cs 消失.)

第 20 波(最后一波)刷新时, 倒计时被设置为 5500, 减少至 0 时激活白字, 刷出后将场上僵尸全部消灭则立即停止倒计时并激活白字. 白字显示 500cs 后结束本次选卡并将倒计时重置为 600.

此外每波僵尸刷新时倒计时被设置为 2500 + rand(600), 减少至 1 后刷出下一波. 同时确定的还有刷新激活(触发/临界)血量, 为本波总血量的 0.50-0.65 倍. 在本波刷出至少 401cs 并且倒计时减少至 200 前, 若本波僵尸总血量小于等于刷新激活血量, 则刷新倒计时被设置为 200, 即激活刷新 200cs 后刷出下一波. (相邻两波僵尸的刷新间隔不小于 601cs, 即自然上限.)

本波僵尸总血量计算方式为: (除被魅惑/已不存在/消失状态/变黑状态/秒杀状态/蹦极之外僵尸的)本体血量 + I 类饰品(路障/铁桶/橄榄球帽/雪橇车/气球/矿工帽/僵尸坚果/僵尸高坚果)血量 + 0.20 * II 类饰品(报纸/铁栅门/扶梯)血量.

一次选卡总时长:

每波僵尸刷新即消灭: 599+(401+200)*17+(401+200-5+750)*2+1+500 = 14009 (cs)

P6 第 9/19/20 波拖够时间: 599+(401+200)*17+(4500-5+750)*2+5500+500 = 27306 (cs)

全程 ch4 并拖够时间: 599+(401+200)*2+1800*15+(4500-5+750)*2+5500+500 = 45291 (cs)

相关内存地址:

6A9EC0
├┬768
│├―5564  // 本轮总波数
│├―5568  // 游戏时钟
│├―556C  // 游戏时钟(包括选卡时)
│├―557C  // 已刷新波数
│├―5594  // 刷新触发血量
│├―5598  // 本波总血量
│├―559C  // 刷新倒计时
│├―55A0  // 刷新倒计时初始值
│├―55A4  // 旗帜波刷新倒计时

同样的自然输出的情况下出怪有无巨人时的刷新速度不同, 因此可以分为慢速关和快速关. 自然出怪下很容易出现第 10 波之后某波突然不出红眼的情况, 亦即变速关.

录制表演视频时会使用修改器调出全难度出怪组合(对阵型有威胁的僵尸), 通常都是慢速(极限全红, 修改器均匀填充使每波都有红眼).

自然出怪下旗帜波红眼密度较大(约为其他波次的 3.5 倍), 部分僵尸出生点右移, 通常采用推迟玉米炮发射时机以及补加运算量的方法来避免刷怪延迟.

常用精确数据

六大场地及特性:

白天/白昼(Day), 黑夜(Night), 泳池(Pool), 浓雾(Fog), 屋顶(Roof), 月夜(Moon).

对应的六大场地无尽模式(Survival: Endless)简称为: DE, NE, PE, FE, RE, ME.

除泳池无尽外其他场地无尽需要通过混乱进入. 先进入对应场地的 生存困难/隐藏无尽/僵王的复仇 模式再混乱到(修改器混乱/改存档编号) 泳池无尽 模式.

DE/PE/RE 白天有天降阳光, 掉落间隔 = min{已掉落阳光数量 x 10 + 425, 950} + rand(0, 275), 开局掉落较快, 掉落 52 个之后稳定在 950-1225.

NE/FE/ME 夜间蘑菇无须唤醒.

DE/NE 舞王只在 2/3/4 路出现.

NE 无冰车, 关底前五列冒出一块墓碑, 每块墓碑冒出一只普僵/路障. 场上最多 12 块墓碑, 墓碑未满且前场没空位则顶掉植物(玉米炮顶掉前轮不受影响, 即"压碑").

PE/FE 3/4 路有水池, 水路植物需要种植在睡莲上, 有鸭子潜水海豚, 关底水路前四列出现珊瑚三人组(普僵/路障/铁桶).

FE 前场有浓雾, 可用三叶草临时吹走或者灯笼(火树)照亮.

RE/ME 后场倾斜, 植物需要种植在花盆上, 无矿工舞王, 存在上界之风, 关底前五列出现空降三人组(普僵/路障/铁桶).

上界之风: 疑似游戏 bug, 屋顶场景底线玉米炮打不准, 只能炸两行的一般僵尸,以及三行的巨人小鬼冰车气球.

坐标表示:

横行九格称为  或者 . DE/NE/RE/ME 场地共有五路, PE/FE 场地共有六路. 从上到下称为 1/2/3/4/5(/6) 路.

六行场地 1/6 路称为边路, 2/5 路称为岸路, 3/4 路称为水路, 1/2/5/6 路称为陆路.

竖列五/六格称为 . 从左到右称为 1/2/3/4/5/6/7/8/9 列.

格子坐标用其所在的路和列来表示, 比如 2-3 (2, 3) 均为二路三列.

游戏分辨率为 800x600, 左上角坐标 (0, 0), 右下角 (799, 599).

每个格子宽度 80, DE/NE 格子高度 100, PE/FE/RE/ME 格子高度 85.

从 路数列数 r-c 到 像素坐标 x-y 的转换时为了精确路数列数可以用小数. (最终得到的像素坐标必须取整处理.)

参考转换过程:

# PE/FE x = 80 * c
y = 55 + 85 * r# RE/ME x = 80 * cif c >= 6:
    y = 45 + 85 * relse:
    y = 45 + 85 * r + 20 * (6 - c)# 其他 x = 80 * c
y = 40 + 100 * r

卡片(种子包)相关数据:

玉米炮种下后 625 可用, 发射到分离 205, 发射到命中 373, 冷却时间 3475.

屋顶落点位于前场(7~9 列)时 1~7 列(左轮坐标)玉米炮的飞行时间分别为 359 362 364 367 369 372 373.

咖啡豆种下到开始唤醒 100, 种下到完成唤醒 198.

核蘑菇/冰蘑菇/樱桃/辣椒 种下到生效 100.

冰蘑菇首次冻结 400~600, 多次冻结 300~400, 冻结加减速 2000, 冻结水面和云朵 300. 减速效果 50%(部分僵尸 40%), 附带 20 HP 攻击.

倭瓜瞪眼到起跳 126, 瞪眼到生效 181.

垫材常用 CD 750 的植物(花盆/胆小菇/阳光菇/小喷菇).

土豆准备时间 1500, 破土用时 106.

核蘑菇/冰蘑菇/樱桃/辣椒 CD 5000, 土豆/倭瓜 CD 3000.

灰烬生效期间可被小丑炸掉/巨人敲击引爆/两车碾压引爆.

南瓜/坚果/高坚果 CD 3000, 可使用坚果修复术不铲除直接更新处于破损状态的植物.

模仿者变身 320.

向日葵种下(升级为双子向日葵) 300~1250 后首次生产阳光, 生产间隔 2350~2500.

HP: 坚果/南瓜 4000, 高坚果 8000, 大蒜 400, 地刺王 450, 其余植物 300.

种植坐标偏移 (x, y): 小喷菇/海蘑菇 (-5~+4, -3~+2), 阳光菇 (-5~+4, -5~+4).

冷却时间为 750/3000/5000 的卡片开局冷却时间为 0/2000/3500.

僵尸相关数据:

撑杆入场较晚(贴图左对齐), 刷新后 358 完全进入可伤害域(等效 15 预判炮). 对超前置炮最早 607 开始跳跃, 跳跃用时 180. 跳跃后 70 啃普通植物, 113 啃炮.

舞王滑步 300-311, 最早的刚好不能开始召唤伴舞的时间, 超前置炮存在时约为 318(等效 55 预判炮), 超前置炮不存在时约为 340(等效 33 预判炮). 可在刷新后 175 垫舞王.

潜水最早能够对 9 列植物造成伤害 300(等效 73 预判炮).

海豚最早跳过 8 列啃食 650, 最早跳过 7 列啃食 702.

冰车碾压南瓜/普通植物/玉米炮的时间: 九列 197 317 357, 八列 520 652 698, 七列 892 1052 1108, 六列 1350 1553 1625, 五列 1945 2223 2323.

冰道阻止种植: 九列 740, 八列 1178, 七列 1716, 六列 2443. 冰道持续时间 3000.

小丑生成时开盒倒计时均为偶数, 区间 440~754(早爆, 占 5%) 及 1322~2268(晚爆, 占 95%), 边界值出现频率低, 寒冰菇冻结/黄油定身时倒计时停滞, 开盒到爆炸 40+70.

矿工出土到站稳 130, 眩晕时间 350, 出土后开始啃食 1 列植物最早时机 1620.

跳跳运动过程中判定范围随之变化, 因此在炮落点上一行容易漏掉, 尤其是在前院场地.

小偷刷新后最早 375 可受伤害/冻结, 最晚至少 670 时仍可受冻结. 靶子触地到小偷可被攻击 325, 等待 300. 判定范围 1x3, 在两个曾哥的攻击范围内冻住可稳定冰杀. 小偷不会主动偷取场上最后一株阳光植物.

梯子最早开始啃食时机: 九列普通 126, 九列炮 179, 八列普通 358, 超前置炮 370, 七列普通 543, 准超前置 553, 六列普通 726, 前置炮 780, 五列普通 957, 后置炮 974. 梯子从开始放到放下 48.

投篮坐标达到 650 进入可投篮模式, 转把手时间 73, 攻击间隔 300. 对底线植物刷新后 550-560 之间投掷启动, 完美预判冰免疫波长 1975(此数据有误).

白眼血量 3000, 红眼血量 6000. 巨人血量低于一半且横坐标大于 400 时会扔小鬼, 进入伤害域最晚时间为刷新后 218(等效 155 预判炮). 开敲到命中 134, 收手用时 74, 开始扔小鬼到分离 105, 收手用时 37.

巨人对南瓜/普通植物/玉米炮开始举锤的时间: 九列 202 441 468, 八列 732 854 887, 七列 1156 1245 1417, 六列 1573 1811 1844.

小鬼拦截时机为 106-126, 减速则为 210 之后. 平地(非屋顶)玉米炮及樱桃拦截的范围是生效点所在行及其下一行(共两路).

尾炸小鬼原速延时 250, 减速延时 350. (仅供参考, 追求无伤应适当减小. 小鬼落地后大约 25 开啃并非变黑就有伤.)

珊瑚三人组刷新后 200 出现, 50 之后开啃. 水面冻结期间无法出现(冰消珊瑚).

出生点: 旗帜 800, 撑杆 870~879, 冰车 800~809, 投篮 825~834, 巨人 845~854, 雪橇 880~1030, 其他 780~819(旗帜波整体右移 40).

僵尸啃植物 4HP/4cs, 减速 4HP/8cs.

以上数据部分为精确内存数值, 部分为实战测量值, 部分为理论计算值, 可能存在一定偏差.

轨道理论简述

可无尽的操作都是可循环的, 一个循环里的操作称为节奏, 用指定语言记录的循环操作称为轨道.

P 类循环常用时长 34.75~36s. C 类循环常用时长 50~56s.

用炮操作: P 玉米炮 B 提前炮 S 同步炮 D 延迟炮 d 尾炸炮 p 铲种炮

用卡操作: I 冰蘑菇 N 核蘑菇 A/A'/a 灰烬植物(樱桃/辣椒/倭瓜) C 垫材

"|": 隔离符, 区分对应不同波次僵尸的操作.

"-": 刷新符, 区分同一波次中的过渡和刷新操作.

"/": 分场符, 区分上下半场在同一波次的不同步操作.

括号内的数字: 波长, 本波到下波的刷新间隔.

催化僵尸刷新(灰烬植物)的行为称为 加法操作, 延缓僵尸刷新(冰蘑菇/垫材)的行为称为 减法操作.

刷新时不用冰/立即触发刷新的一波称为 无冰波/加速波, 刷新时用冰减速则称为 冰波/减速波.

代奏: 使用加速卡片起到代替玉米炮的效果.

变奏: 有规律有目的地使用冰蘑菇改变循环的节奏.

双冰变奏: 一个循环用两个冰的节奏.

常用节奏. (不包含过渡冰和激活炸之外的附加轨, 波长单位秒.)

P3: P|P|P, (12|12|12)

P4: P|P|P|P, (9|9|9|9)

P5: P|P|P|P|P, (7|7|7|7|7)

P5u: P|P|P|P|P, (6|6|6|9|9)

P6: P|P|P|P|P|P, (6|6|6|6|6|6)

C2: IN|IAA', (25|25)

C3: N|IN|AA'a, (17|17|17)

ch4: I-P|I-P, (18|18)

ch5: I-P|I-P|P, (15|15|6)

ch6: I-P|P|I-P|P, (12|6|12|6)

ch7: I-P|I-P|N|A|P, (18|18|6|6|6)

ch8: I-P|I-P|P|N|A|P, (15|15|6|6|6|6)

ch9: I-P|P|I-P|P|N|A|P, (12|6|12|6|6|6|6)

ch4u: I-P|I-P, (16|19)

ch5u: I-P|I-P|P, (14|16|6)

C4u-36s: I-P|P|P, (18|9|9)

C5u-36s: I-P|P|P|P, (18|6|6|6)

C5u-50s: I-P|I-P|N, (21|21|8)

C6u-36s: I-P|P|P|P|P, (12|6|6|6|6)

C6u: I-P|I-P|N|P, (18|18|9|9)

C7u(邻): I-P|I-P|P|N|P, (17|17|6|6|6)

C7u(间): I-P|P|I-P|N|P, (17|6|17|6|6)

C8u(邻): I-P|I-P|P|P|N|P, (13|13|6|6|6|6)

C8u(间): I-P|P|I-P|P|N|P, (13|6|13|6|6|6)

C8u(对): I-P|P|P|I-P|N|P, (13|6|6|13|6|6)

C6i-36s: I-P|I-P|I-P, (12|12|12)

C7i: I-P|I-P|I-N|P, (18|18|12|6)

C8i-48s: I-P|I-P|I-P|N|P, (12|12|12|6|6)

C9i(ch6): I-P|P|I-P|P|I-P|P, (12|6|12|6|12|6)

常用复合运算:

IP-: 热过渡, 刷新后冰生效并炸掉矿工冰车, 几乎不会触发刷新

PD: D 不早于刷新前 15 收撑杆, 同时补刀红眼

PC: 垫材防撑杆, C 于 P 操作 81 之后种植并尽快铲除

PDC: P 早于刷新前 93, D 延迟 108 拦截小鬼, C 于 P 操作 81 之后种植并尽快铲除

CP: 九列垫舞王, P 不早于刷新前 15 收撑杆

I-CP: 较长冰波垫九列快速僵尸, 保护 78 列炮

P(S)D: P/PS 不早于刷新前 155 全收巨人, 延迟 106-126 拦截小鬼

Pd: 尾炸小鬼, 落点 2.4 列可同时收矿工.

PI (ICE1): 冰减压, 冻住红眼和撑杆

PI (ICE2): 冰同步或者稍早于炮生效, 冻住即将投掷小鬼的巨人于下一波解决

PI (ICE3): 冰延迟 105(减速 210) 生效取消小鬼投掷

PSD: PS 瞬杀白眼并触发红眼投掷, D 拦截小鬼并重复伤害红眼

I-PDD (IP-PD): P 激活炸, D 消灭白眼并调整红眼投掷时机, D 拦截小鬼同时分离下一波冰车矿工

PD (精准之舞): P 刷新前 15 以收撑杆, D 延迟 107 拦截小鬼以及炸未出土的伴舞

I-PD|PD (下半场节奏/连续拦截): P 冰波激活炮, D 延迟 220 落点前移, P 刷新前 135 拦截并触发本波白眼投掷, D 空拦(尾炸)白眼小鬼

PN (ND5): 前院 3 行核蘑菇延迟 106 生效空拦五路小鬼

PCD: C 于 P 生效之前种植, 延缓巨人投掷时间, D 拦截小鬼同时分离下一波快速僵尸

原文地址:https://pvz.lmintlcx.com/endless/