两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
技术:精确数据 [2022/12/19 16:40] – [出怪列表] OTZzzz | 技术:精确数据 [2024/10/28 15:58] (当前版本) – 小文233 |
---|
| |
/* 以上为所有页面共用的排版格式,请勿删除。 */ | /* 以上为所有页面共用的排版格式,请勿删除。 */ |
| |
| |
| ~~SNIPPET_O1730431970~~snippet:优秀条目~~ |
| {{tag>[优秀条目]}} |
| <WRAP center round tip note> |
| 经OP鉴定,本词条内容清晰,排版优美,是值得参考的优秀范例。 |
| </WRAP> |
| ~~SNIPPET_C~~snippet:优秀条目~~ |
| |
| |
~~SNIPPET_C~~snippet:通用排版~~ | ~~SNIPPET_C~~snippet:通用排版~~ |
| |
| |
{{tag>[事实待核查]}} | |
<WRAP center round help note> | <WRAP center round help note> |
**本条目的部分内容不一定真实或已经过期**,仍有待核查。 | 以下内容涉及较多精确数据,除非确信某处有误,否则**请勿修改**。 |
| |
以下内容涉及较多精确数据,除非确信某处有误,否则请谨慎修改。 | |
</WRAP> | </WRAP> |
| |
======精确数据====== | ======精确数据====== |
| |
| |
| |
| <callout type="tip" title="引用源" icon="true"> |
| /* 使用时请取消勾选【保持同步】,否则无法输入内容! */ |
| |
| [[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]] |
| </callout> |
| |
本条目收录了由高精度测量或反汇编得到的精确游戏内时间、空间数据,包括但不限于植物、僵尸、子弹、场地等的机制与特性。 | 本条目收录了由高精度测量或反汇编得到的精确游戏内时间、空间数据,包括但不限于植物、僵尸、子弹、场地等的机制与特性。 |
| |
===== 基础说明 ===== | ===== 基础说明 ===== |
(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) | |
| |
==== 数据体系 ==== | ==== 数据体系 ==== |
* 植物/僵尸坐标:以游戏内存值为准,单位px | * 植物/僵尸坐标:以游戏内存值为准,单位px |
* 坐标轴原点为1-1格左上角,↓→为正方向 | * 坐标轴原点为1-1格左上角,↓→为正方向 |
* 判定:以游戏内调试模式为准 | * 绘制判定区域时,需将坐标轴原点平移至可见画面左上角,以大致符合游戏内调试模式的视觉逻辑。若仅进行判定计算,无需考虑这一点 |
* 坐标轴原点为可视区左上角((该坐标系最先由[[人物:不在宝前]]在[[https://tieba.baidu.com/p/6054349816|【补充贴】部分判定范围的计算方法]]中正式提出,优点在于可以直接通过内存值加减得到判定范围)),↓→为正方向 | |
* 时间:以游戏最小时间单位,单位cs | * 时间:以游戏最小时间单位,单位cs |
| |
==== 判定计算 ==== | ==== 判定计算 ==== |
[{{ :技术:pasted:20221218-100348.png?250|游戏内圆的实际判定范围}}] | [{{ :技术:pasted:20221218-100348.png?250|游戏内圆的实际判定范围}}] |
内存值中存在16位浮点数,但几乎所有判定计算时都会向零取整(即抹去小数部分)。圆的判定是''(Δx)^2+(Δy)^2<nowiki><=</nowiki>R^2'',其中''(Δx)''、''(Δy)''均以此法取整,因此相应的圆不是一般画图软件出来的圆,判定圆图形如右。 | 内存值中存在16位浮点数,但所有判定计算时都会向零取整(即抹去小数部分)。圆的判定是''(Δx)^2+(Δy)^2<nowiki><=</nowiki>R^2'',其中''(Δx)''、''(Δy)''均以此法取整,因此相应的圆不是一般画图软件出来的圆,判定圆图形如右。 |
<WRAP clear/> | <WRAP clear/> |
| |
| |
===== 场地 ===== | ===== 场地 ===== |
(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) | |
| |
====场景边界==== | ====场景边界==== |
* 伤害区 -50 ~ 800 | |
* 触车 -20 ~ 28 | * 僵尸可伤: |
* 警戒区 0 ~ 800 | * 防御域左端''≤800'' |
* 屋外区 -21 ~ + | * 僵尸进家: |
| * 橄榄、冰车、投篮:''x≤-175'' |
| * 撑杆、巨人:''x≤-150'' |
| * 舞王、伴舞、潜水:''x≤-130'' |
| * 其它:''x≤-100'' |
| |
====植僵坐标==== | ====植僵坐标==== |
^5|40,510|120,490|200,470|280,450|360,430|440,410|520,410|600,410|680,410| | ^5|40,510|120,490|200,470|280,450|360,430|440,410|520,410|600,410|680,410| |
| |
====地形图==== | |
<WRAP centerimgbox> | |
[{{ :技术:pasted:ne.jpg?direct&600 |前院地形图}}]</WRAP> | |
<WRAP centerimgbox> | |
[{{ :技术:pasted:fe.jpg?direct&600 |后院地形图}}]</WRAP> | |
<WRAP centerimgbox> | |
[{{ :技术:pasted:me.jpg?direct&600 |屋顶地形图}}]</WRAP> | |
| |
注: | ===== 植物概览 ===== |
* 两种线有重合时,重合段用两者颜色相间的线表示 | |
* 白线为坐标轴,x轴向右为正,y轴向下为正 | |
* 紫色和暗品红色为各控制格的边框 | |
* 绿线为可见区的边界 | |
* 右红线为伤害区和警戒区的右界——若僵尸防御域都在其右方则无敌且不被当作目标 | |
* 蓝线为警戒区的左界——若僵尸防御域都在其左方则不被当作目标 | |
* 黄竖线为碰车区的边界 | |
* 左红线为屋外区的左界——若僵尸防御域都在其左方则其进屋 | |
* 黄横线或斜线为僵尸基准轨迹,没有纵向偏移且正常前进的僵尸坐标在其上 | |
* 绿十字为植物基准点,通常植物坐标在那些位置 | |
| |
===== 植物概览 ===== | |
(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) | |
====坐标==== | ====坐标==== |
^ 植物 ^ x偏移 ^ y偏移 | | ^ 植物 ^ x偏移 ^ y偏移 | |
</callout> | </callout> |
|<100% 7em>| | |<100% 7em>| |
^ 植物 ^触发 ^触发特判 ^命中 ^命中特判 | | ^ 植物 ^ 触发 ^ 触发特判 ^ 命中 ^ 命中特判 ^ |
| 樱桃炸弹 | | |圆心''(x+40,y+40)'',半径''115'' | | | | 樱桃炸弹 | | | 圆心''(x+40,y+40)'',半径''115'' | | |
| 土豆地雷 |''x~+55'' |对正在啃的''左右各伸30''\\ 对跳后撑杆''左缩40*(1+N)'',N为比该撑杆编号小的跳后撑杆数 |圆心''(x+20,y+40)'',半径''60'' | | | | 土豆地雷 | ''x~+55'' | 对正在啃的''左右各伸30''\\ 对所有僵尸''左缩40*N'',N为编号小于等于该僵尸的跳后撑杆数 | 圆心''(x+20,y+40)'',半径''60'' | | |
| 大嘴花 |''x+80~+120'' |对正在啃的''左右各伸60''\\ 对反向矿''左缩20'' |范围内编号最小的僵尸 | | | | 大嘴花 | ''x+80~+120'' | 对正在啃的''左右各伸60''\\ 对所有僵尸''左缩20*N'',N为编号小于等于该僵尸的反向矿工数 | 范围内编号最小的僵尸 | | |
| 窝瓜 |''x+20~+135'' |对正在啃的''右伸40''\\ 对跳后撑杆、海豚、橄榄、小鬼''左伸60''\\ 对反向矿、雪人''左伸70'',正在啃再''左伸40''\\ ''窝瓜x-118≤奔跑撑杆x≤窝瓜x-17''时触发窝瓜 |压区跨度''43'' |对橄榄''左右各伸20'' | | | 毁灭菇 | | | 圆心''(x+40,y+40)'',半径''250'' | | |
| 缠绕海草 |''x~+80'' | |范围内编号最小的僵尸 | | | | 窝瓜 | ''x+20~+135'' | 对正在啃的''右伸40''\\ 对跳后撑杆、海豚、橄榄、小鬼''左伸60''\\ 对反向矿、雪人''左伸70'',正在啃再''左伸40''\\ ''窝瓜x-118≤奔跑撑杆x≤窝瓜x-17''时触发窝瓜 | 压区跨度''43'' | 对橄榄''左右各伸20'' | |
| 普通植物向右 |''x+60''| |(取整后)坐标相同取小编号,否则取左坐标 | | | | 缠绕海草 | ''x~+80'' | | 范围内编号最小的僵尸 | | |
| 裂荚射手向左 |''x+16'' | | | | | | 普通植物向右 | ''x+60'' | | (取整后)坐标相同取小编号,否则取左坐标 | | |
| 杨桃向左 |''x-3'' | | | | | | 裂荚射手向左 | ''x+16'' | | | | |
| 反向双发 |''x'' | | | | | | 杨桃向左 | ''x+40''(判定僵尸防御域右界) | | | | |
| 小喷菇 |''x+60~+290'' | |''x+40~+323'' | | | | 反向双发 | ''x'' | | | | |
| 海蘑菇 |同上 | |''x+45~+328'' | | | | 火炬树桩 | 右向非三线豌豆''x-20''过火;\\ 三线中间豌豆''x-22''过火;\\ 左向豌豆''x+45''过火;\\ 三线上下豌豆''x-22''过火;\\ 过火前后子弹坐标无变化(上面数据均在静态环境\\ 下测定,豌豆植物摇头以及子弹以3.33为最小单位\\ 位移会使过火实际为一个范围) | | 豌豆、冰豆命中''x+25~+80'' \\ 火豆命中''x+40~+70'' | 火炬在豌豆右列时,豌豆与火炬距离(坐标差)小于''56''时在过火前将不命中僵尸(卡火炬“特性”的由来);火炬在同列或者左列时,火炬编号大则优先过火,豌豆编号大则优先命中僵尸。 | |
| 大喷菇 |''x+60~+400'' | |''x+61~+399'' | | | | 小喷菇 | ''x+60~+290'' | | ''x+40~+323'' | | |
| 忧郁蘑菇 |''x-80~+160'' | |''x-79~+159'' | | | | 大喷菇 | ''x+60~+400'' | | ''x+61~+399'' | | |
| 地刺(王) |''x+20~+50'' | |''x+21~+49'' | | | | 胆小菇害怕 | 圆心''(x,y+20)'',半径''120'' | | | | |
| 胆小菇害怕 |圆心''(x,y+20)'',半径''120'' | | | | | | 海蘑菇 | 同上 | | ''x+45~+328'' | | |
| 磁力菇 |圆心''(x,y+20)'',半径''270'' |对正在啃食的半径''320''(([[https://tieba.baidu.com/p/5760333415|磁力菇对于正在啃食的僵尸的作用范围是半径320像素]])) | | | | | 磁力菇 | 圆心''(x,y+20)'',半径''270'' | 对正在啃食的半径''320''(([[https://tieba.baidu.com/p/5760333415|磁力菇对于正在啃食的僵尸的作用范围是半径320像素]])) | | | |
| 玉米加农炮 | | |圆心为爆炸中心(见下文),半径''115''| | | | 忧郁菇 | ''x-80~+160'' | | ''x-79~+159'' | | |
| | 地刺(王) | ''x+20~+50'' | | ''x+21~+49'' | | |
| | 玉米加农炮 | | | 圆心为爆炸中心(见下文),半径''115'' | | |
| |
=== 命中范围 === | === 命中范围 === |
[{{ :技术:pasted:20221218-165906.png|直线攻击类植物的命中范围}}] | [{{ :技术:pasted:20221218-165906.png|直线攻击类植物的命中范围}}] |
紫色竖线及右侧是触发区域,豌豆类的红色区域是必定击中范围,黄色区域是可能击中范围(越左击中可能越小),三线射手对三行的击中范围相同,仙人掌的黄色区域是飞行气球的击中范围。(([[https://tieba.baidu.com/p/6054349816|【补充贴】部分判定范围的计算方法]])) | 紫色竖线及右侧是触发区域,豌豆类的红色区域是必定击中范围,黄色区域是可能击中范围(越左击中可能越小),三线射手对三行的击中范围相同,仙人掌的黄色区域是飞行气球的击中范围。 |
| (([[https://tieba.baidu.com/p/6054349816|【补充贴】部分判定范围的计算方法]])) |
<WRAP clear/> | <WRAP clear/> |
| |
[{{ :技术:pasted:20221218-170000.png|投掷攻击类植物的命中范围}}] | [{{ :技术:pasted:20221218-170000.png|投掷攻击类植物的命中范围}}] |
玉米投手左侧的黄色区域表示黄油能击中、玉米粒不能击中。 | 玉米投手左侧的黄色区域表示黄油能击中、玉米粒不能击中。 |
| <WRAP clear/> |
| |
| === 投掷类子弹 === |
| |
| == 子弹初始速度 == |
| |
| 投手植物在发出子弹时,再查找范围内最近的僵尸,来确定子弹的初始速度,飞行路径在发出时就确定了。(([[https://tieba.baidu.com/p/6761145155|投手类子弹初始速度的计算方法]])) |
| |
| * 水平方向初始速度:''( 僵尸防御左边界横坐标 - 9 - 僵尸速度参数((又称“相对速度”)) * 50 - 子弹初始横坐标 ) / 120'' |
| * 竖直方向初始速度:''-7 + ( 僵尸防御上边界纵坐标 - 子弹初始纵坐标 ) / 120'' |
| |
| 其中,僵尸边界坐标只取整数部分,僵尸的“速度参数”是僵尸内存''[+34]''数据。如果僵尸被寒冰菇冻结或者被黄油定身,计算时去掉“速度参数”部分。如果僵尸只是被减速或者在啃食,计算方法不变。 |
| |
| 如果子弹发出时,范围内没有僵尸: |
| |
| * 水平初速 = ''( 705 - 子弹初始横坐标 ) / 120'' |
| * 竖直初速 = ''-7'' |
| |
| 水平初速下限是''1/3'' ,如果水平初速的计算结果小于''1/3'' ,水平初速设为''1/3''。 |
| |
| 在平地场合,投手子弹的纵坐标不变,竖直速度影响的是高度,高度向上为负,向下为正。 |
| |
| ''高度>-30时'',有僵尸就击中;如果没有僵尸,''高度>80''时拍地。 |
| |
| == 飞行用时 == |
| [{{ :技术:pasted:20221221-060049.png|平地投掷类子弹飞行用时}}] |
| 在平地上,如果从头顶击中僵尸,子弹飞行时间与僵尸植物的距离无关。 |
| |
| 表格中的僵尸指发出子弹时找到的僵尸,与击中的僵尸无关。 |
| |
| 飞行时间是发出子弹到击中僵尸的时间,总时间是开始投掷到击中僵尸的时间。 |
<WRAP clear/> | <WRAP clear/> |
| |
==== 攻击机制 ==== | ==== 攻击机制 ==== |
| |
| 植物攻击间隔准确数据:(([[https://tieba.baidu.com/p/6001851164|植物触发攻击机制的一些细节]])) |
| * 大部分植物攻击间隔是1.36s~1.50s |
| * 投掷类植物攻击间隔是2.86s~3.00s |
| * 忧郁菇的攻击间隔是1.86s~2.00s |
| * 地刺和地刺王的攻击间隔是1.01s |
| * 僵尸进入大嘴花的触发范围后,下一厘秒开咬(因为同一厘秒内先计算范围内有没有僵尸,后计算僵尸的运动),再延迟0.70秒咬中,整个咬动作1.05秒,所以咬间隔1.06秒。消化40.00秒,咽2.34秒,所以吞间隔43.40秒 |
| |
| 命中延迟:(([[https://tieba.baidu.com/p/6620690189|各种细节]])) |
| ^ 植物 ^ 命中延迟(cs) ^ |
| | 豌豆射手、寒冰射手、仙人掌、裂荚射手(右向) | 34 | |
| | 双发射手、裂荚射手(左向)、反向双发射手 | 25、50 | |
| | 小喷菇、海蘑菇 | 28 | |
| | 大喷菇 | 49 | |
| | 胆小菇 | 25 | |
| | 地刺 | 25 | |
| | 杨桃 | 39 | |
| | 卷心菜投手 | 31 | |
| | 玉米投手 | 29 | |
| | 西瓜投手、冰瓜 | 35 | |
| | 机枪射手 | 32、49、65、82 | |
| | 忧郁菇 | 74、102、130、158 | |
| | 猫尾草 | 31、81 | |
| | 地刺王 | 30、68 | |
| |
| 子弹类的击中判定: |
| * 击中行是当前所在行,击中的横向范围是上一厘秒的范围,可以理解为先改变纵坐标,确定所在行,根据横坐标伤害僵尸,再改变横坐标。 |
| * 豌豆(包括左向)击中范围左15像素,右40像素,共56像素; |
| * 孢子、星星、卷心菜、玉米粒、黄油 击中右40像素,共41像素; |
| * 刺击中左25像素,右40像素,共66像素; |
| * 火豌豆击中范围0~+30,溅射范围0~+100;溅射伤害值为 40/溅射僵尸数量,再取整数部分,大于13伤害13,小于1伤害1(([[https://tieba.baidu.com/p/6012199040|火豌豆和西瓜溅射伤害值计算方法]]))((溅射僵尸数量不包括直接击中的僵尸,下同)); |
| * 西瓜、冰瓜的击中范围和溅射范围都是右20像素至右80像素,共61像素;溅射伤害值是 574/溅射僵尸数量,再取整数部分,大于26伤害26,小于1伤害1。 |
| |
| 大喷菇和忧郁菇都是对范围内僵尸同时伤害,发出的孢子只是动画效果。 |
| |
| [{{ :技术:pasted:20221221-084246.png|子弹的判定范围}}] |
| 如图,绿色加号中心是豌豆当前坐标点,红色加号中心是豌豆上一厘秒坐标点,红色矩形是当前伤害范围,绿色矩形是下一厘秒伤害范围。 |
| |
| 豌豆射手刚种下时,内存''[+58]''是范围在0~150的一个随机数,每厘秒减一,减到0时,重置为136~150中的一个随机数,如果触发范围内有僵尸,把内存''[+90]''值设为35,每厘秒减1,在减到1的那一厘秒,先判断这个值等于2发出豌豆,再把值减到1。 |
| |
| <WRAP clear/> |
| |
| [{{ :技术:pasted:20221221-084318.png?350|子弹的发射位置}}] |
| |
| 如图,<fc #c0c0c0>白色</fc>矩形是所在格范围,<fc #00ff00>绿色</fc>加号中心是植物坐标点,<fc #00ff00>绿色</fc>矩形是受小丑炸的判定范围,也是调试模式显示的范围,<fc #4682b4>蓝色</fc>矩形是受啃碾砸的判定范围,<fc #ffa500>橙色</fc>是触发范围。 |
| |
| 豌豆射手发出豌豆的初始点很可能与头部晃动有关,图上的豌豆射手嘴上方的<fc #ff0000>红线</fc>是发出豌豆的初始坐标点,有20个点。因为豌豆初始点有波动,击中范围也有波动,<fc #dda0dd>浅紫色</fc>是必定击中范围,<fc #ffff00>黄色</fc>矩形是可能击中范围,越往左击中可能越小。(击中范围上下边界随便画的,因为已经画过了当前行的上下边界) |
| <WRAP clear/> |
| <WRAP centerimgbox> |
| [{{:技术:pasted:20221221-084357.png|豌豆各位置发射频率,颜色越深表示出现次数越多}}][{{:技术:pasted:20221221-084857.png|晃动路线图,每个线段用时一样,线段内匀速}}] |
| </WRAP> |
| |
| <WRAP clear/> |
| [{{ :技术:pasted:20221221-084551.png|植物触发攻击数据}}] |
| 红色字表示直接伤害。子弹初始点是相对于植物坐标基点的偏移,未标xy的是x偏移,因为y偏移不影响击中范围,只影响显示位置。 |
| |
| <WRAP clear/> |
| === 香蒲 === |
| {{ :技术:pasted:20221221-084617.png}} |
| 香蒲的初始击中范围如右图所示。 |
| |
| 白色矩形是格范围,蓝色加号是植物坐标点,黑色加号是刺的初始点,这个点属于上一行,红色矩形是初始击中范围。刺的初始方向是向右,范围右边很容易击中,其它地方都需要绕弯。 |
| |
| === 飞行速度 === |
| 直线类子弹的飞行速度是每厘秒3.33像素,这个3.33只有两位小数,不是10/3。 |
| |
| 星星的斜前方向与水平方向成30度角,横坐标每厘秒加2.883865,纵坐标每厘秒减或加1.665。 |
| |
| 香蒲的刺飞行速度是每厘秒2像素。 |
| |
| === 同一厘秒的计算顺序 === |
| 同一厘秒内的执行顺序是:发出子弹或范围伤害、植物触发、僵尸移动、子弹伤害。 |
| |
| 僵尸进入地刺(王)的触发范围后,下一厘秒地刺(王)触发。倒计时到0后,下一厘秒再变为100,所以地刺(王)的攻击间隔是1.01s。 |
| |
| 子弹发出的同一厘秒,就会移动,存在时间为1,击中初始范围(移动前的范围)。 |
| |
| 子弹在内存中的坐标是以界面左上角为起点的。 |
| |
| === 仙人掌 === |
| 地面状态的仙人掌对气球是实时检测的,气球进入范围的下一厘秒,仙人掌开始伸长,伸长过程中''[+58]''正常倒计时,到0时不改''[+90]'',伸长过程1.25s,伸长结束时,''[+58]''重置,''[+90]=23'',当''[+90]=1''时,发出尖刺,x偏移''+53''。发刺动作结束时,如果范围内没有飞行的气球,仙人掌开始缩短,持续1.09s,过程中不触发(''[+58]''到0时不改''[+90]'')。 |
| |
| 仙人掌打气球经常是这样的:第2发刺是空中的,到达时气球僵尸已落地,打不中,下一个倒计时结束时仙人掌正在缩短,不发刺。击中气球与本体的间隔超过了4秒。 |
==== 晃动间隔 ==== | ==== 晃动间隔 ==== |
不同植物晃动时间不同,同一个植物晃动时间固定,状态改变可能会改变晃动时间。晃动时间指完成整个动作的时间,例如从最左到最右再到最左(([[https://tieba.baidu.com/p/6063909116|植物晃动时间统计]]))。 | 不同植物晃动时间不同,同一个植物晃动时间固定,状态改变可能会改变晃动时间。晃动时间指完成整个动作的时间,例如从最左到最右再到最左(([[https://tieba.baidu.com/p/6063909116|植物晃动时间统计]]))。 |
| |
===== 植物详解 ===== | ===== 植物详解 ===== |
(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) | |
| ==== 向日葵 ==== |
| |
| [{{ :技术:向日葵首次生产阳光的时间.jpg?400|十万次向日葵首次生产阳光时间,横坐标表示首次生产时间,纵坐标表示时间出现次数}}] |
| |
| 向日葵首次生产阳光的时间是3~12.5秒,在这个范围内概率均匀分布。(([[https://tieba.baidu.com/p/5795821583|向日葵首次生产阳光的时间很可能是3~12.5秒]])) |
| |
| 阳光菇生产阳光的时间相同,向日葵升级为双子向日葵生产阳光时间重置为3~12.5秒。 |
| |
| 金盏花首次生产的时间是0~25秒,范围内概率均匀。 |
| |
| 修改器v1.8.7种出的向日葵首次生产阳光的时间是0~12秒,偶尔超出范围,小于2秒和大于10秒的概率偏小。 |
| |
| <WRAP clear/> |
| |
==== 磁力菇 ==== | ==== 磁力菇 ==== |
* “准星”即红叉的中心,单位为整数像素,除以80后得到列数 | * “准星”即红叉的中心,单位为整数像素,除以80后得到列数 |
* 例如''准星x=721''的炮,等价于炸''9.0125列''的炮,等价于''AvZ::pao_operator.pao(x, 9.0125)'' | * 例如''准星x=721''的炮,等价于炸''9.0125列''的炮,等价于''AvZ::pao_operator.pao(x, 9.0125)'' |
* 爆炸中心”即实际爆炸的圆心 | * “爆炸中心”即实际爆炸的圆心 |
* 非天台场景''爆炸中心x=准星x-7, 爆炸中心y=准星同行植物y+40'' | * 非天台场景''爆炸中心x=准星x-7, 爆炸中心y=准星同行植物y+40'' |
* 对于r行c列的梯子南瓜,梯子被炮炸飞的条件是''r-1≤准星行数≤r+1'',且''80*c-113≤准星x≤80*c+126'' | * 对于r行c列的梯子南瓜,梯子被炮炸飞的条件是''r-1≤准星行数≤r+1'',且''80*c-113≤准星x≤80*c+126'' |
| * 闪烁亮度由游戏计时除以75的余数决定,余数是0和1时最亮,余数是38时最暗(([[https://tieba.baidu.com/p/6020771545|原创发现整理合集]])) |
| <WRAP centerimgbox> |
| [{{:技术:pasted:20221221-053321.png|最亮状态}}][{{:技术:pasted:20221221-053326.png|最暗状态}}] |
| </WRAP> |
| |
| <WRAP centerimgbox> |
| [{{:技术:pasted:20221221-053449.png?370|计时和亮度关系图,横轴表示计时,数字是除以75的余数,纵轴表示亮度}}] |
| </WRAP> |
===== 僵尸概览 ===== | ===== 僵尸概览 ===== |
(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) | |
| |
==== 坐标 ==== | ==== 坐标 ==== |
</WRAP> | </WRAP> |
| |
| 订正: |
| * 表中跳跳防御域y仅适用于跳跃跳跳,行走跳跳防御域y为''+17~+132''. |
| ==== 飞跃行为 ==== |
| ^ 僵尸 ^ 落地时坐标 ^ 备注 | |
| | 撑杆 | 目标植物x-70 | | |
| | 海豚 | 起跳时自身x-150 | | |
| | 跳跳 | 下次到达最低点时位于目标植物x-60 | 以速度实现,从而受减速影响 | |
==== 濒死减血 ==== | ==== 濒死减血 ==== |
(([[https://tieba.baidu.com/p/5829792266|僵尸血量小于临界点时的血量自动减少速度]])) | 僵尸血量小于临界点时: |
* 如果僵尸本体血量上限小于500,每cs有20%概率减少1点血量,每秒大约减少20 | * 如果僵尸本体血量上限小于500,每cs有20%概率减少1点血量,每秒大约减少20(([[https://tieba.baidu.com/p/5829792266|僵尸血量小于临界点时的血量自动减少速度]])) |
* 如果僵尸本体血量上限大于等于500,每cs有60%概率减少1点血量,每秒大约减少60 | * 如果僵尸本体血量上限大于等于500,每cs有60%概率减少1点血量,每秒大约减少60 |
| |
===== 僵尸详解 ===== | ===== 僵尸详解 ===== |
| |
| ==== 巨人坐标与小鬼落点坐标的对应关系 ==== |
| |
| |
| <WRAP centerimgbox> |
| [{{:技术:巨人坐标与小鬼落点坐标的对应关系图1.jpg?400|极值}}][{{:技术:巨人坐标与小鬼落点坐标的对应关系图2.jpg?400|全部数据}}] |
| </WRAP> |
| |
| 图表中的横轴表示巨人扔小鬼时巨人的横坐标,纵轴表示小鬼落点横坐标。绿色表示平地落点,红色表示屋顶落点。(([[https://tieba.baidu.com/p/5788011835|巨人坐标与小鬼落点坐标的对应关系图]])) |
==== 僵尸水族馆中的潜水僵尸 ==== | ==== 僵尸水族馆中的潜水僵尸 ==== |
| |
| |
===== 植僵互动 ===== | ===== 植僵互动 ===== |
| ==== 最早地刺扎车 ==== |
| ^ ^ 9列全扎 ^ 8列全扎 ^ 7列全扎 ^ |
| | 冰车 | 292 | 622 | 1014 | |
| | 篮球 | 428 | - | - | |
| ==== 初次攻击分布 ==== |
| 一个放置充分长时间的发射子弹植物,面对一个早已存在于场上的僵尸,于任何一个时间点,距离其下一次触发__子弹发射倒计时__的时间点(不包含当前时间点)的时长x,服从一个固定的分布律。该分布律只与植物自身的攻击间隔有关,也被称为初次攻击分布。 |
| |
==== 2列曾的小鬼盲点 ==== | 该分布__常常被误认为__ ''[1,最大攻击间隔] ''的均匀分布。 |
| |
[{{ :技术:pasted:20221218-170546.png?300|部分不搭梯阵型的小鬼盲点}}] | 射击类植物(攻击间隔1.36s~1.50s)的初次攻击分布: |
| |
仅在2列设曾且不给南瓜搭梯,则会出现如右图所示的小鬼盲点。(([[https://tieba.baidu.com/p/6054349816|【补充贴】部分判定范围的计算方法]])) | $$P\{X=x\}=\begin{cases}\frac{1}{143}&,1\le x\le 136\\ \frac{151-x}{2145}&,137\le x\le 150\end{cases}$$ |
| |
图中,绿色矩形是小鬼的防御范围,黄色竖线是触发区域边界,红色竖线是击中区域边界,小鬼盲点有3像素,其中左边1像素能构建永动曾。 | <WRAP centerimgbox> |
| [{{:技术:分布律.png?500|射击类植物初次攻击分布律直观图像}}] |
| </WRAP> |
| |
另外有15像素区域,小鬼在冰瓜的击中范围,但不在冰瓜的触发范围。在这15像素内,冰瓜右侧有僵尸触发冰瓜,冰瓜才能击中小鬼。 | 以射击类植物为例,有时候初次攻击分布表述为“于0cs放置的僵尸最早触发__子弹发射倒计时__的时长(2cs~151cs)”对应的概率分布,在这个表述下原分布横坐标1~150改为2~151。 |
| |
===== 出怪规律 ===== | 有时候初次攻击分布表述为“距离其下一次触发__子弹发射倒计时__的时间点(包含当前时间点)的时长(0cs~149cs)”对应的概率分布,在这个表述下原分布横坐标1~150改为0~149。 |
(([[https://pvz.tools/wiki/#%E5%87%BA%E6%80%AA%E8%A7%84%E5%BE%8B|植僵百科知识:出怪规律]])) | |
| |
==== 出怪类型 ==== | 投掷类植物(攻击间隔2.86s~3.00s)的初次攻击分布: |
| |
出怪类型指本次选卡<wrap hi>准许</wrap>生成的僵尸种类。 | $$P\{X=x\}=\begin{cases}\frac{1}{293}&,1\le x\le 286\\ \frac{301-x}{4395}&,287\le x\le 300\end{cases}$$ |
| |
<callout type="info" title="准许" icon="true"> | 忧郁菇(攻击间隔1.86s~2.00s)的初次攻击分布: |
即使准许生成某僵尸,也不代表该僵尸一定会出现。例如,即便出怪类型中含有蹦极僵尸,也可能不生成蹦极,取决于生成时的随机结果。 | |
| |
另有一部分僵尸无需准许亦能生成,如固定出现的旗帜僵尸、小概率随机出现的雪人僵尸。 | $$P\{X=x\}=\begin{cases}\frac{1}{193}&,1\le x\le 186\\ \frac{201-x}{2895}&,187\le x\le 200\end{cases}$$ |
</callout> | ==== 蹦极偷曾概率 ==== |
| |
出怪类型位于''%%[[[6a9ec0]+768]+54d4]%%''开始的连续33个''bool''类型的地址,''true''代表准许,''false''代表不准许。 | === 基础数据 === |
| |
出怪类型的决定方式如下(([[https://tieba.baidu.com/p/2316788883|出怪种子到出怪类型的算法和示例代码]])): | 忧郁菇相关:(([[https://tieba.baidu.com/p/6020771545|原创发现整理合集]])) |
| * 忧郁菇攻击间隔186cs~200cs,15种情况概率相等,第一发击中延迟74cs,二三四发击中间隔28cs |
| |
- 设定要出普僵 | 蹦极相关: |
- 产生一个0~4的伪随机整数(后文详解),若等于0则设定要出读报,否则设定要出路障((此处读报和路障中未被选中者,仍有可能在后面的步骤中被选中,因而“读报路障不同出”系谣言)) | * 蹦极僵尸停留300cs,抓取63cs |
- 若''轮数(([[技术:精确数据#轮数|轮数的定义]]))<8'',则设定剩余出怪类型数为''轮数+1'',否则设定剩余出怪类型数为9 | |
- 产生一个0~33的伪随机整数,若未设定要出此类僵尸且没有禁止出此类僵尸((伴舞/鸭子/雪橇/雪人/小鬼、植物僵尸、黑夜的冰车、非后院的潜水/海豚、屋顶的舞王/矿工、''轮数<2''时的冰车/白眼、''轮数<5''时的红眼)),则设定要出此类僵尸并进入第5步,否则重复第4步 | |
- 若第4步中已设定要出的僵尸类型数等于第3步的剩余出怪类型数,则进入第6步,否则重复第4步 | |
- 忽略摇旗、僵博,即强制设为''false''((若均未选中,为常规“11怪”;若选中其一,为“10怪”;若均选中,为“9怪”)) | |
| |
| 实测现象: |
| * 忧郁菇触发与蹦极僵尸落下在同一厘秒,忧郁菇不触发 |
| * 忧郁菇击中与蹦极僵尸开始抓取在同一厘秒,击中有效 |
| * 没被抓的忧郁菇击中与蹦极僵尸离开在同一厘秒,击中有效 |
| |
<callout type="info" title="轮数" icon="true"> | 寒冰菇对蹦极僵尸的作用: |
轮数即''选卡时已完成flag数/2-1''。 | * 下落状态,不受冰冻,只有减速状态,没有减速效果 |
</callout> | * 停留状态,受冰冻,有减速状态,没有减速效果 |
| * 抓取状态,不受冰冻,如果全程减速,抓取持续1.25秒 |
| |
| 计算忧郁菇击中次数概率: |
| |
随机数生成器算法为[[https://baike.baidu.com/item/%E6%A2%85%E6%A3%AE%E6%97%8B%E8%BD%AC%E7%AE%97%E6%B3%95|MT19937]],种子由以下几个数值相加: | <WRAP centerimgbox> |
| [{{:技术:pasted:20221221-082619.png|没被抓的忧郁菇各击中次数概率}}][{{:技术:pasted:20221221-082625.png|被抓的忧郁菇各击中次数概率}}] |
| </WRAP> |
| |
| === 仅一个蹦极僵尸的情况 === |
| |
| * 没曾被抓,3曾被偷99.8%,4曾被偷77.6%,5曾被偷15%,6曾不被偷; |
| * 有曾被抓,3曾必被偷,4曾被偷89.9%,5曾被偷27.7%,6曾被偷0.38%。 |
| |
| 这只是一个蹦极僵尸的情况,如果有多个蹦极僵尸,以上击中次数概率不适用。 |
| |
| 蹦极僵尸初始高度3000~3150,每厘秒减8,减到0时落下。例如初始高度3001,第375cs高度1,第376cs减到0。蹦极僵尸下落用时3.75~3.94秒,先落下的蹦极僵尸可能先触发忧郁菇,先抓取。 |
| |
| === 双曾冰杀且被抓一曾时的被偷概率 === |
| [{{ :技术:pasted:20221221-082937.png|被抓的忧郁菇只击中9次的时间线}}] |
| 最极限的情况,触发与落地同时,忧郁菇三次触发都间隔2.00秒,寒冰菇冰冻4.00秒。 |
| |
| 蹦极在7.00s抓取,忧郁菇第10次击中应该在7.02s,只击中9次。 |
| |
| 除了最极限的情况,蹦极僵尸迟0.01s落地,忧郁菇某次触发间隔1.99s,寒冰菇冰冻4.01秒,这5种情况忧郁菇也击中9次,总共6种情况。 |
| |
| 没有被抓的忧郁菇最少击中12次,加上寒冰菇的一次伤害,总共22次,没打死蹦极僵尸。 |
| |
| 没被抓的忧郁菇击中12次的概率,冰冻4.00秒10.3%、冰冻4.01秒9.8%。 |
| |
| 假设寒冰菇冰冻4~6秒均匀分布,冰冻4.00秒概率是1/201。 |
| |
| 根据初始攻击分布,触发与蹦极落地同时概率是1/193,蹦极迟0.01s落地相当于蹦极落地前0.01s忧郁菇触发,概率同样是1/193。 |
| |
| 被偷概率 |
<code> | <code> |
[[[6a9ec0] +82c] +20] // 用户序号 | 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.103 |
[[[6a9ec0] +768] +561c] // 出怪种子 | + 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.103 |
[[[[6a9ec0] +768] +160] +6c] * 65 // 完成选卡次数 * 101 | + 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.103 |
[[6a9ec0] +7f8] // [[教程:名词大全#序号-2|游戏模式]] | + 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.103 |
| + 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.103 |
| + 1/193 * 1/15 * 1/15 * 1/15 * 1/201 * 0.098 |
</code> | </code> |
| |
==== 出怪概率 ==== | 结果大约十亿分之4.7,小到可以忽略不计。 |
| |
以下表格列出了不同轮数下,各僵尸出现在出怪类型中的概率,以及出怪类型中僵尸总数((普僵与鸭子计一种,不计旗帜(固定生成)、雪人(极小概率随机生存)))各取值的概率。(([[https://tieba.baidu.com/p/5714350581|无尽生存僵尸出现概率统计]])) | ==== 地刺王对巨人的伤害 ==== |
| |
''轮数=1'': | [{{ :技术:pasted:20221221-083316.png?250|巨人砸地刺王时的判定情况}}] |
^ ^ 路障 ^ 读报 ^ 其他 ^ 2种 ^ 3种 ^ 4种 ^ | |
^ 前院 | 82.67% | 30.67% | 13.33% | 0.95% | 24.76% | 74.29% | | |
^ 后院 | 82.35% | 29.41% | 11.76% | 0.74% | 22.06% | 77.21% | | |
^ 屋顶 | 83.08% | 32.31% | 15.38% | 1.28% | 28.21% | 70.51% | | |
| |
''轮数=2'': | 巨人砸地刺王的条件是巨人的攻击范围与地刺王的防御范围重叠。(([[https://tieba.baidu.com/p/6020771545|原创发现整理合集]])) |
^ ^ 路障 ^ 读报 ^ 其他 ^ 3种 ^ 4种 ^ 5种 ^ | |
^ 白昼 | 83.53% | 34.12% | 17.65% | 2.21% | 30.88% | 66.91% | | |
^ 黑夜 | 83.75% | 35.00% | 18.75% | 2.50% | 32.50% | 65.00% | | |
^ 后院 | 83.16% | 32.63% | 15.79% | 1.75% | 28.07% | 70.18% | | |
^ 屋顶 | 84.00% | 36.00% | 20.00% | 2.86% | 34.29% | 62.86% | | |
| |
''轮数=3'': | 如图,红色矩形是巨人的攻击范围,绿色矩形是巨人的防御范围,蓝色矩形是地刺王的防御范围,浅紫色矩形是地刺王的触发范围,白色矩形是地刺王的击中范围。 |
^ ^ 路障 ^ 读报 ^ 其他 ^ 4种 ^ 5种 ^ 6种 | | |
^ 白昼 | 84.71% | 38.82% | 23.53% | 4.41% | 38.24% | 57.35% | | |
^ 黑夜 | 85.00% | 40.00% | 25.00% | 5.00% | 40.00% | 55.00% | | |
^ 后院 | 84.21% | 36.84% | 21.05% | 3.51% | 35.09% | 61.40% | | |
^ 屋顶 | 85.33% | 41.33% | 26.67% | 5.71% | 41.90% | 52.38% | | |
| |
''轮数=4'': | 巨人砸地刺王时,地刺王的击中范围与巨人的防御范围没重叠,地刺王不能击中巨人,但是巨人受到20点伤害,同时触发地刺王。 |
^ ^ 路障 ^ 读报 ^ 其他 ^ 5种 ^ 6种 ^ 7种 | | |
^ 白昼 | 85.88% | 43.53% | 29.41% | 7.35% | 44.12% | 48.53% | | |
^ 黑夜 | 86.25% | 45.00% | 31.25% | 8.33% | 45.83% | 45.83% | | |
^ 后院 | 85.26% | 41.05% | 26.32% | 5.85% | 40.94% | 53.22% | | |
^ 屋顶 | 86.67% | 46.67% | 33.33% | 9.52% | 47.62% | 42.86% | | |
| |
''轮数=5'': | <WRAP clear/> |
^ ^ 路障 ^ 读报 ^ 其他 ^ 6种 ^ 7种 ^ 8种 | | |
^ 白昼 | 86.67% | 46.67% | 33.33% | 9.80% | 47.06% | 43.14% | | |
^ 黑夜 | 87.06% | 48.24% | 35.29% | 11.03% | 48.53% | 40.44% | | |
^ 后院 | 86.00% | 44.00% | 30.00% | 7.89% | 44.21% | 47.89% | | |
^ 屋顶 | 87.50% | 50.00% | 37.50% | 12.50% | 50.00% | 37.50% | | |
| |
''轮数=6'': | 这是某次测试的数据,地刺王在属性倒计时70和32时伤害击中范围内的僵尸,没有伤害巨人。 |
^ ^ 路障 ^ 读报 ^ 其他 ^ 7种 ^ 8种 ^ 9种 | | |
^ 白昼 | 87.78% | 51.11% | 38.89% | 13.73% | 50.33% | 35.95% | | |
^ 黑夜 | 88.24% | 52.94% | 41.18% | 15.44% | 51.47% | 33.09% | | |
^ 后院 | 87.00% | 48.00% | 35.00% | 11.05% | 47.89% | 41.05% | | |
^ 屋顶 | 88.75% | 55.00% | 43.75% | 17.50% | 52.50% | 30.00% | | |
| |
''轮数=7'': | <WRAP centerimgbox> |
^ ^ 路障 ^ 读报 ^ 其他 ^ 8种 ^ 9种 ^ 10种 | | [{{:技术:pasted:20221221-083346.png|地刺王与巨人的内存信息}}] |
^ 白昼 | 88.89% | 55.56% | 44.44% | 18.30% | 52.29% | 29.41% | | </WRAP> |
^ 黑夜 | 89.41% | 57.65% | 47.06% | 20.59% | 52.94% | 26.47% | | ==== 2列曾的小鬼盲点 ==== |
^ 后院 | 88.00% | 52.00% | 40.00% | 14.74% | 50.53% | 34.74% | | |
^ 屋顶 | 90.00% | 60.00% | 50.00% | 23.33% | 53.33% | 23.33% | | |
| |
| [{{ :技术:pasted:20221218-170546.png?250|部分不搭梯阵型的小鬼盲点}}] |
| |
''轮数≥8'': | 仅在2列设曾且不给南瓜搭梯,则会出现如右图所示的小鬼盲点。(([[https://tieba.baidu.com/p/6054349816|【补充贴】部分判定范围的计算方法]])) |
^ ^ 路障 ^ 读报 ^ 其他 ^ 9种 ^ 10种 ^ 11种 | | |
^ 白天 | 90.00% | 60.00% | 50.00% | 23.53% | 52.94% | 23.53% | | |
^ 黑夜 | 90.59% | 62.35% | 52.94% | 26.47% | 52.94% | 20.59% | | |
^ 后院 | 89.00% | 56.00% | 45.00% | 18.95% | 52.11% | 28.95% | | |
^ 屋顶 | 91.25% | 65.00% | 56.25% | 30.00% | 52.50% | 17.50% | | |
| |
<callout type="info" title="计算公式" icon="true"> | 图中,绿色矩形是小鬼的防御范围,黄色竖线是触发区域边界,红色竖线是击中区域边界,小鬼盲点有3像素,其中左边1像素能构建永动曾。 |
设可出怪类型数是''a'',剩余出怪类型数是''b'',则: | |
* 路障出现概率''0.8+0.2*b/a'' | |
* 读报出现概率''0.2+0.8*b/a'' | |
* 其他出现概率''b/a'' | |
僵尸种类数的三种情况概率分别为: | |
* ''b*(b-1)/(a*(a-1))'' | |
* ''b*(a-b)*2/(a*(a-1))'' | |
* ''(a-b)*(a-b-1)/(a*(a-1))'' | |
六大场地的''a''值分别为18/17/20/20/16/16,''b''值在''轮数≥8''时取值为9。 | |
</callout> | |
| |
==== 出怪列表 ==== | 另外有15像素区域,小鬼在冰瓜的击中范围,但不在冰瓜的触发范围。在这15像素内,冰瓜右侧有僵尸触发冰瓜,冰瓜才能击中小鬼。 |
| <WRAP clear/> |
| |
出怪列表决定了实际生成的僵尸的具体种类与个数,在选卡页面就已经确定。退出重进选卡页面会刷新出怪列表。 | ==== 寒冰菇取消投掷小鬼 ==== |
| |
完整的出怪列表长度2000(([[https://tieba.baidu.com/p/2306159144|这两天研究了一下PVZ的出怪机制]])),位于''%%[[[6a9ec0]+768]+6b4]%%''开始的连续2000个int_32类型的地址,每50个为1波,总共记录40波。因此,每波至多生成50只僵尸。若出怪列表中留空,则对应波次会生成少于50只。 | === 现象 === |
| |
生存无尽模式中每轮仅20波,故只使用前1000个值。<wrap lo>老虎机、宝石迷阵等无限出怪的模式中,第41波起会重复循环第40波的出怪。</wrap> | 巨人投掷小鬼时,若投掷小鬼的一瞬间受冰,则投掷会被取消,解冻后收手并重新投掷小鬼。该bug也被称作“[[攻略:冰代奏#ice3|ICE3]]”。 |
| |
每波僵尸刷新时,游戏会严格按照出怪列表预先设定的顺序依次生成对应僵尸。 | 巨人扔出小鬼由投掷动画播放进度决定,修改内存数据,测出的现象是(([[https://tieba.baidu.com/p/6072351951|原因分析:寒冰菇取消投掷小鬼,各种僵尸啃大蒜伤害值不同]])): |
| * 在扔出小鬼前,把动画进度改到大于0.74,本次投掷动作不扔小鬼; |
| * 在扔出小鬼后,把动画进度改到小于0.74,巨人再扔出一个小鬼,扔出后再改就再扔,虽然之前扔出小鬼时巨人已经记录自己没小鬼了,但是扔小鬼时不判断有没有小鬼,只看动画进度。 |
| |
出怪列表的生成受以下因素影响:权重、级别、阶数、红眼数量上限。 | === 原因分析 === |
| [{{ :技术:pasted:20230221-070726.png?400|内存数据}}] |
| |
=== 权重 === | 因为动画进度不会正好等于0.74,巨人扔出小鬼的判定大约是:投掷动画前一帧进度≤0.74,当前进度>0.74。 |
| |
权重位于''%%[0x0069da94 + i * 0x1c]%%'',游戏依此**加权随机**决定下一个要填入出怪列表的僵尸。 | 右图是某次测试的内存数据,据此推测,同一帧内执行顺序是:寒冰菇生效,僵尸减倒计时,判断动画进度,改变动画进度。 |
| |
<callout type="info" title="加权随机" icon="true"> | 寒冰菇生效那一帧,动画进度符合扔小鬼的条件,因为已冻结,不扔小鬼(可能不判断动画进度),之后的动画进度都不符合扔小鬼的条件了。 |
即调整不同结果被随机到的概率。 | |
| |
例如从箱中抽红球与黄球,若红球权重2,黄球权重1,等同于抽到红球的概率为3分之2,抽到黄球的概率为3分之1。 | === 推论 === |
</callout> | |
| |
| 同一帧内的执行顺序中,黄油生效相对靠后,所以黄油在扔出小鬼的前一帧生效取消扔小鬼。 |
| |
=== 级别 === | 巨人砸植物,在动画进度0.64时砸中,也可以被寒冰菇或黄油取消(也被称作“[[攻略:冰代奏#ice4|ICE4]]”)。 |
| |
每波所出僵尸的**级别**总和不超过该波**级别上限**。 | 投篮僵尸在投篮开始时生成3秒倒计时,动画进度0.545时扔出篮球,动画结束时减少篮球数量,倒计时到0再投且重置倒计时为3秒。所以减速的投篮僵尸的投篮间隔还是3秒,只是投篮动画变慢,延迟扔出篮球。用寒冰菇或黄油取消投篮,篮球数量就真的减少了,因为不管有没有扔出篮球,都在动画结束时减少篮球数量。 |
| |
<callout type="info" title="级别上限" icon="true"> | |
每波级别上限 = ''int(int((当前波数 + 已完成选卡数 * 每轮总波数) * 0.8) / 2) + 1'',旗帜波再''* 2.5''并向零取整。 | |
</callout> | |
| |
=== 阶数 === | <WRAP clear/> |
| |
阶数决定了这个僵尸从第几波才会出现(([[https://tieba.baidu.com/p/7861483105|【无尽开局出怪规律科普】你知道多少轮以后出怪饱和吗?]]))。 | ==== 各种僵尸啃大蒜伤害值不同 ==== |
| |
^ 阶数 ^ 包含 ^ 限制 | | [{{ :技术:pasted:20230221-071249.png?400|僵尸啃大蒜数据表}}] |
| 一阶僵尸 | 普僵、路障、铁桶、读报、雪人 | 第1波开始就可以出现 | | |
| 二阶僵尸 | 撑杆、铁门、橄榄、舞王 | 至少从第5波开始才可以出现 | | |
| 三阶僵尸 | 潜水、海豚、冰车、小丑、气球、矿工、跳跳、梯子、投篮 | 至少从第10波开始才可以出现 | | |
| 四阶僵尸 | 白眼、红眼 | 至少从第15波开始才可以出现,''轮数=9''起每轮-1,''轮数=23''起固定为1 | | |
| |
=== 红眼数量上限 === | 与巨人扔小鬼类似,僵尸啃大蒜结束也由动画进度决定,也能被寒冰菇或黄油取消(([[https://tieba.baidu.com/p/6072351951|原因分析:寒冰菇取消投掷小鬼,各种僵尸啃大蒜伤害值不同]]))。 |
| * 大部分僵尸在啃食动画进度0.14和0.68时完成啃大蒜,如果在进度0.14时被寒冰菇取消,在进度0.68时完成啃食 |
| * 撑杆为0.38和0.8 |
| * 读报和梯子为0.42 |
| * 雪橇为0.33和0.83 |
| * 小丑为0.53 |
| * 小鬼为0.33和0.79 |
| |
已生成的红眼总数达到红眼数量上限后,非旗帜波不再出红眼,立刻生效。 | 僵尸啃食伤害值由啃食时间决定,不同种类的僵尸啃食动画播放速度不同,完成进度的时间不同,所以啃食伤害值不同。 |
| |
红眼数量上限初始为0,''轮数=5''起每轮+1,''轮数=54''起固定为50。 | 潜水僵尸啃大蒜的完成进度与普通僵尸一样,啃食伤害值最多是因为有0.5秒出水过程,出水的同时也在啃植物,出水完成后才播放啃食动画。 |
| |
| <callout type="info" title="计算方式" icon="true"> |
| 啃大蒜时间:1+ceil(帧数/帧速*进度*100) |
| |
生存无尽中,出怪列表根据以下规律随机生成: | 啃食伤害: |
* 旗帜波((w10与w20))固定先出8只普僵和1只旗帜 | * 正常 ceil(啃食时间/4)*4 |
* 出完50只红眼后,非旗帜波不再出红眼,立刻生效 | * 减速 ceil(啃食时间/8)*4 |
* “50只”包含先前旗帜波次的红眼 | |
* 该规律也被称作“变速” | |
* | |
* 满足以上条件的情况下,从出怪类型准许生成的僵尸以及雪人中,根据各僵尸**权重**加权随机得到要生成的僵尸 | |
| |
| </callout> |
| |
| <WRAP clear/> |
| |
=== 各僵尸级别与权重一览 === | 普通僵尸啃完大蒜的最后20点生命值后是不换行的。用修改器重叠放置两个大蒜测试,普通僵尸啃完一个大蒜的最后20点生命值后换行,不啃另一个大蒜。如果用撑杆僵尸把一个大蒜啃的只剩8点生命值,再来一个撑杆僵尸,啃掉这8点生命值后,对另一个大蒜只啃掉48点,总共啃56点。(([[https://tieba.baidu.com/p/5731214218|各种僵尸对大蒜的伤害值]])) |
每种僵尸的级别位于''%%[0x0069da88 + i * 0x1c]%%'',权重位于。下表以内存值为准,实际有调整的标于备注。 | |
| |
<sortable 3phase 2=nosort 5=nosort> | 对于窝瓜僵尸,大蒜和一般植物没区别,窝瓜僵尸会在死前啃掉植物4点生命值。窝瓜僵尸在啃唤醒的魅惑菇时可能有啃食音效,但魅惑菇生命值不减。当窝瓜僵尸走到某一格正中间时,在这一格种植物,窝瓜僵尸会砸左边的一格,不管左边这一格有没有植物。如果左边这一格是地刺,地刺会被砸扁;如果左边这一格是地刺王,地刺王不会受到伤害。 |
^ 序号 ^ 简称 ^ 级别 ^ 权重 ^ 备注 | | |
| 0 | 普僵 | 1 | 4000 | ''轮数=5''起每轮-180,''轮数=25''起固定为400 | | |
| 1 | 旗帜 | 1 | 0 | 在旗帜波固定出现,不参与随机过程 | | |
| 2 | 路障 | 2 | 4000 | ''轮数=5''起每轮-150,''轮数=25''起固定为1000 | | |
| 3 | 撑杆 | 2 | 2000 | | | |
| 4 | 铁桶 | 4 | 3000 | | | |
| 5 | 读报 | 2 | 1000 | | | |
| 6 | 铁门 | 4 | 3500 | | | |
| 7 | 橄榄 | 7 | 2000 | | | |
| 8 | 舞王 | 5 | 1000 | | | |
| 9 | 伴舞 | 1 | 0 | 衍生于舞王 | | |
| 10 | 鸭子 | 1 | 0 | 实际出现的鸭子僵尸为出现在水路的普僵/路障/铁桶自动转换而来 | | |
| 11 | 潜水 | 3 | 2000 | | | |
| 12 | 冰车 | 7 | 2000 | | | |
| 13 | 雪橇 | 3 | 2000 | | | |
| 14 | 海豚 | 3 | 1500 | | | |
| 15 | 小丑 | 3 | 1000 | | | |
| 16 | 气球 | 2 | 2000 | | | |
| 17 | 矿工 | 4 | 1000 | | | |
| 18 | 跳跳 | 4 | 1000 | | | |
| 19 | 雪人 | 4 | 1 | 无需出怪类型准许亦可生成,需已在[[教程:冒险模式|冒险]]二周目4-10见到雪人 | | |
| 20 | 蹦极 | 3 | 1000 | 仅在旗帜波生成 | | |
| 21 | 梯子 | 4 | 1000 | | | |
| 22 | 投篮 | 5 | 1500 | | | |
| 23 | 白眼 | 10 | 1500 | | | |
| 24 | 小鬼 | 10 | 0 | 衍生于巨人 | | |
| 25 | 僵博 | 10 | 0 | | | |
| 26 | 豌豆 | 1 | 4000 | | | |
| 27 | 坚果 | 4 | 3000 | | | |
| 28 | 辣椒 | 3 | 1000 | | | |
| 29 | 机枪 | 3 | 2000 | | | |
| 30 | 窝瓜 | 3 | 2000 | | | |
| 31 | 高坚果 | 4 | 2000 | | | |
| 32 | 红眼 | 10 | 6000 | 非旗帜波调整为1000 | | |
</sortable> | |
| |
=== 不同轮数下各波级别上限 === | |
| |
^ 轮数/已完成flag数 ^ w1 ^ w2 ^ w3 ^ w4 ^ w5 ^ w6 ^ w7 ^ w8 ^ w9 ^ w10 ^ w11 ^ w12 ^ w13 ^ w14 ^ w15 ^ w16 ^ w17 ^ w18 ^ w19 ^ w20 | | ==== 底线大嘴花吃反向矿的概率 ==== |
| 0 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 3 | 4 | 10 | 5 | 5 | 5 | 6 | 6 | 7 | 7 | 7 | 8 | 20 | | |
| 1轮 / 2 flags | 9 | 9 | 9 | 10 | 10 | 11 | 11 | 11 | 12 | 30 | 13 | 13 | 13 | 14 | 14 | 15 | 15 | 15 | 16 | 40 | | |
| 2轮 / 4 flags | 17 | 17 | 17 | 18 | 18 | 19 | 19 | 19 | 20 | 50 | 21 | 21 | 21 | 22 | 22 | 23 | 23 | 23 | 24 | 60 | | |
| 3轮 / 6 flags | 25 | 25 | 25 | 26 | 26 | 27 | 27 | 27 | 28 | 70 | 29 | 29 | 29 | 30 | 30 | 31 | 31 | 31 | 32 | 80 | | |
| 4轮 / 8 flags | 33 | 33 | 33 | 34 | 34 | 35 | 35 | 35 | 36 | 90 | 37 | 37 | 37 | 38 | 38 | 39 | 39 | 39 | 40 | 100 | | |
| 5轮 / 10 flags | 41 | 41 | 41 | 42 | 42 | 43 | 43 | 43 | 44 | 110 | 45 | 45 | 45 | 46 | 46 | 47 | 47 | 47 | 48 | 120 | | |
| 6轮 / 12 flags | 49 | 49 | 49 | 50 | 50 | 51 | 51 | 51 | 52 | 130 | 53 | 53 | 53 | 54 | 54 | 55 | 55 | 55 | 56 | 140 | | |
| 7轮 / 14 flags | 57 | 57 | 57 | 58 | 58 | 59 | 59 | 59 | 60 | 150 | 61 | 61 | 61 | 62 | 62 | 63 | 63 | 63 | 64 | 160 | | |
| 8轮 / 16 flags | 65 | 65 | 65 | 66 | 66 | 67 | 67 | 67 | 68 | 170 | 69 | 69 | 69 | 70 | 70 | 71 | 71 | 71 | 72 | 180 | | |
| 9轮 / 18 flags | 73 | 73 | 73 | 74 | 74 | 75 | 75 | 75 | 76 | 190 | 77 | 77 | 77 | 78 | 78 | 79 | 79 | 79 | 80 | 200 | | |
| 10轮 / 20 flags | 81 | 81 | 81 | 82 | 82 | 83 | 83 | 83 | 84 | 210 | 85 | 85 | 85 | 86 | 86 | 87 | 87 | 87 | 88 | 220 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| 20轮 / 40 flags | 161 | 161 | 161 | 162 | 162 | 163 | 163 | 163 | 164 | 410 | 165 | 165 | 165 | 166 | 166 | 167 | 167 | 167 | 168 | 420 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| 30轮 / 60 flags | 241 | 241 | 241 | 242 | 242 | 243 | 243 | 243 | 244 | 610 | 245 | 245 | 245 | 246 | 246 | 247 | 247 | 247 | 248 | 620 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| 40轮 / 80 flags | 321 | 321 | 321 | 322 | 322 | 323 | 323 | 323 | 324 | 810 | 325 | 325 | 325 | 326 | 326 | 327 | 327 | 327 | 328 | 820 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| 50轮 / 100 flags | 401 | 401 | 401 | 402 | 402 | 403 | 403 | 403 | 404 | 1010 | 405 | 405 | 405 | 406 | 406 | 407 | 407 | 407 | 408 | 1020 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| 60轮 / 120 flags | 481 | 481 | 481 | 482 | 482 | 483 | 483 | 483 | 484 | 1210 | 485 | 485 | 485 | 486 | 486 | 487 | 487 | 487 | 488 | 1220 | | |
| 61轮 / 122 flags | 489 | 489 | 489 | 490 | 490 | 491 | 491 | 491 | 492 | 1230 | 493 | 493 | 493 | 494 | 494 | 495 | 495 | 495 | 496 | 1240 | | |
| 62轮 / 124 flags | 497 | 497 | 497 | 498 | 498 | 499 | 499 | 499 | 500 | 1250 | 501 | 501 | 501 | 502 | 502 | 503 | 503 | 503 | 504 | 1260 | | |
| … … | | | | | | | | | | | | | | | | | | | | | | |
| |
> 所有僵尸中,级别最高者为10(白眼/红眼),而每波至多50只僵尸,因此''级别上限≥500''后(第125flag的w9起),将彻底失去其限制作用 | 1列大嘴花有概率吃掉后面的矿工,2~9列的不能。(([[https://tieba.baidu.com/p/6360716531|大嘴花能否吃掉后面的矿工]] 4L回复)) |
| |
| * 普通关:被吃概率约为18.10%(0.048932*37*0.1((采用比原贴更精准的估算方法,来自wiki群群友“诗意”))) |
| * 我是僵尸:被吃概率约为34.70%(0.093786*37*0.1) |
| |
| ==== 普通僵尸啃食杨桃时受伤分析 ==== |
| |
| {{:技术:普通僵尸受杨桃啃食分析.png?400}}(([[https://tieba.baidu.com/p/5766902572|【伪技术贴】杨桃击不中僵尸的分析和疑问]])) |
===== 时间体系 ===== | ===== 时间体系 ===== |
| |
| ==== 植物时间 ==== |
| ^ 植物 ^ 行为 ^ 耗时((单位:cs)) | |
| | 樱桃炸弹/火爆辣椒/(夜间)寒冰菇、毁灭菇 | 放置到生效 | 100 | |
| | 土豆地雷 | 放置到破土 | 1500 | |
| |:::| 破土到生效 | 106 | |
| | 大嘴花 | 开咬到命中 | 70 | |
| |:::| 空开咬间隔 | 107 | |
| |:::| 吃到再次开咬间隔 | 4340 | |
| | 墓碑吞噬者 | 吞碑 | 448~471((均匀随机)) | |
| | 寒冰菇 | 冰冻+减速总时长 | 2000((由于同一cs里先结算植物后结算僵尸,实际效果为1999)) | |
| |:::| 冻结水面和云朵 | 300 | |
| |:::| 一次冰冻((即僵尸未减速时受冰的情况)) | 400~600((由于同一cs里先结算植物后结算僵尸,实际效果为399~599)) | |
| |:::| 二次冰冻((即僵尸已减速时受冰的情况)) | 300~400((由于同一cs里先结算植物后结算僵尸,实际效果为299~399)) | |
| | 窝瓜 | 触发到起跳((起跳时若原目标消失,重新索敌)) | 126 | |
| |:::| 触发到命中 | 182 | |
| | 咖啡豆 | 放下到开始唤醒((若小偷开始擒拿在中间这段时间,则偷走咖啡豆而蘑菇仍将正常醒来)) | 100 | |
| |:::| 放下到完成唤醒 | 199((但咖啡豆编号小于蘑菇时,唤醒的同一帧会结算蘑菇(变相缩短1cs),否则下一帧结算。因此,白昼点冰到生效为298/299)) | |
| | 玉米炮 | 释放到分离 | 205 | |
| |:::| 释放到爆炸(非屋顶水路) | 378 | |
| |:::| 释放到爆炸(非屋顶陆路) | 373~376((373起,若本行爆炸范围内无僵尸则延迟,至多延迟3)) | |
| |:::| 释放到爆炸(屋顶) | 359~392,见[[攻略:斜坡与上界之风#上界之风]] | |
| |:::| 释放到完成装填 | 3475 | |
| | 模仿者 | 放置到完成模仿 | 320((但模仿者编号小于变身后植物编号时,变身完毕的同一帧会结算变身后植物(变相缩短1cs),否则下一帧才结算。因此,夜间模仿冰放置到生效为419/420)) | |
| |
| |
| |
| ==== 僵尸时间 ==== |
| |
| [{{ :攻略:零度大表第三版.jpg?600|僵尸时间表(([[https://tieba.baidu.com/p/8261158487|时间与判定的若干细节,及大黄表修订]]))}}] |
| |
| ^ 僵尸 ^ 行为 ^ 耗时((单位:cs)) | |
| | 小丑 | 开盒到爆炸 | 110 | |
| | 跳跳 | 一个跳跃周期 | 80 | |
| | 矿工 | 开始出土到晕 | 130 | |
| |:::| 晕眩 | 350(减速×2) | |
| | 投篮 | 攻击间隔 | 300 | |
| |
| |
| <WRAP clear/> |
| |
| ==== 普僵啃食数据补充 ==== |
| |
| 普通僵尸共有四种行走方式(([[https://tieba.baidu.com/p/6754574095|普通僵尸啃食植物的最早时间数据的补充]])): |
| - 两手前后摆动 |
| - 两手在前 |
| - 开启dance指令 |
| - 反复开启/关闭dance指令(该方式行走速度最快) |
| |
| 实际游戏中,前两种行走方式出现的概率各为50%。 |
| |
| 上面的“僵尸时间表”中,“普僵啃食”数据均对应“两手前后摆动”,右下角“dc快”对应“反复开启/关闭dance指令”。 |
| |
| 以下为前三种行走方式啃食数据的补充。 |
| |
| <WRAP centerimgbox> |
| [{{:技术:pasted:20230221-070023.png|通常波}}] |
| [{{:技术:pasted:20230221-070038.png|旗帜波}}] |
| </WRAP> |
| |