本站为民间玩家交流站,不对官方产生任何影响
请各位首次登录的玩家先阅读首页信息栏内公告
本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~
全站通知:

机制-底层机制

阅读

    

2026-02-14更新

    

最新编辑:Christine_nya

阅读:

  

更新日期:2026-02-14

  

最新编辑:Christine_nya

来自植物大战僵尸融合版WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
Christine_nya
40405640092_bili
一只莫名其妙的阿莲酋
落之弋
谁家牢机枪
Lpth
Fish7号
橙光明媚泡泡龙
影子小姐光先生
辉煌所致者
小部件ResourceLoader出错: Unable to load template 'wiki:ResourceLoader'
,请注意内容时效性

丨基础架构

基础架构

游戏引擎

  • 融合版采用Unity引擎制作,游戏安装包采用加密处理,以下数据为逆向工程,部分数据不保真
    • 游戏中数据单位多采用Unity单位,以100像素代表一个单位,本WIKI中移动速度、范围大小均以此为标准

地图大小

  • (融合版)地图上一个方格的大小为135*167像素,如果地图有6行,则为135*145像素
    • (原版)地图上一个方格的大小为80*100像素
  • 一张地图内通常有5-6行、10列(原版为9列)
    • 在右侧没有草坪的地方还有约1.5列,如果僵尸被击退出、魅惑僵尸走出地图右边界,则会强制判定死亡,并在在原地触发亡语,部分亡语会改在本行草坪的最右一列触发(如吃下毁灭魅惑菇的僵尸)
    • 在左侧没有草坪的地方还有约1列缓存区域,此处可停放小推车,如果僵尸走到底线,则会判定游戏结束
    • 在底线的左侧距离地图左边界仍有1.5列空窗区,部分关卡(如IZ)没有游戏结束的判定,僵尸走出地图左边界,也会强制判定死亡,并在原地触发亡语(如舞王冰车僵尸,会在本行立刻生成冰道)
  • 超级地图的大小扩大为12行、20列
  • 花园保卫战:诸神的地图大小为8行、12列;坚果台球3的地图大小为8行、17列

子弹速度

  • 一般豌豆射手的子弹飞行速度为4.44格(600像素)/秒
    • 机枪豌豆炮台提高射速后,子弹飞行速度也会相应的提高到6.66格(900像素)/秒、8.88格(1200像素)/秒
  • 豌豆大喷菇攻击时,使位于其右侧的、向右飞行的平射子弹,每0.02秒飞行速度提高0.15格(20像素)/秒


丨判定

判定

坐标

  • 我是僵尸地图为例
    • 基准线 x=0 大致在左数第4/5列交接处
    • 在第5列中:
      • 普通植物的横坐标(以大喷菇为例)为 0.669,不同植物略有不同
      • 小喷菇类植物的横坐标(以小喷菇为例)分别为 0.3455、0.5955、0.8455
    • 在第9列中:
      • 普通僵尸的横坐标(以木桩僵尸为例)为 5.5133
    • 大喷菇的射程为7、小喷菇的射程为4.5,此时他们的横坐标之差导致大喷菇可以攻击,小喷菇不能
  • 移动到其他格只需每格加减 1.35

碰撞箱

植物

    • 南瓜类植物、究极樱桃战神的碰撞箱在横向上比正常植物的大一些
    • 小喷菇类植物的碰撞框横向与纵向均远小于正常植物,约40*50像素(存疑),
    • 在原版,土豆雷存在两个起爆碰撞框,一个碰撞框用于被僵尸碰撞框直接接触时引爆,一个碰撞框用于僵尸在附近啃咬植物是也可以引爆,参考这个帖子的18楼

僵尸

  • 一般僵尸的碰撞框大小为 55*130 90*220像素(存疑),在纵向上超出格子高度
    • 在原版,僵尸存在两个碰撞框,一个碰撞框用于判断是否被植物阻挡/攻击,一个碰撞框用于判断是否攻击植物,参考这个帖子的6楼

行判定

  • 限制植物/僵尸/子弹所在行,如果行判定不在同一行,即使碰撞框有所重叠,也无法产生交互
    • 植物行判定为其种植时所在行
      • 当用手套移动植物,直到移动结束开始播放动画,其行判定均不会发生改变,如果换行结果导致植物死亡(如融合),则会在其移动前所在位置触发亡语
    • 僵尸行判定为其出现时所在行
      • 当僵尸发生换行时,直到换行结束开始水平移动,其行判定均不会发生改变,如果在换行途中死亡,则会在其换行前所在位置触发亡语
    • 子弹行判断一般与其发射者处在同一行
    • 以下类型的子弹没有行判定:

行限制

  • 限制范围伤害只能伤害到附近几行的目标,超出行限制范围外,即使碰撞框有所重叠,也无法产生交互
    • 代码中的写法是 if ( ( ...... ) - this->fields.thePlantRow ) <= 1,即行差小于等于1,为了更直观的展示范围,表格中直接把覆盖的行数写出来了
一些范围伤害的行限制展开/折叠
范围 有限制 举例 无限制 举例
宽0.74格(100像素),高1.19格(200像素)的方形 限1行
(本行)
无限制
(可伤害相邻两行)
基本玩法-锤子.png
半径0.37格(50像素)的圆范围 限1行
(本行)
子弹弹跳时的范围伤害的小窝瓜
半径0.74格(100像素)的圆范围 限1行
(本行)
的光爆
拖拽后的600范围伤害
半径1.11格(150像素)的圆范围 限3行
(可以溅射到相邻行)
的光爆
半径1.48格(200像素)的圆范围 限3行
(可以覆盖到相邻行)
无限制
(可以覆盖到上方2行+下方1行)
0级光照时的吸引范围
半径2.96格(400像素)的圆范围 限3行
(可以覆盖到相邻1行)
的本体伤害
半径2.96格(400像素)的圆范围 限5行
(可以覆盖到相邻2行)
的大毁灭菇子弹的吸引范围
半径3.70格(500像素)的圆范围 限7行
(可以覆盖到相邻3行)
1级光照时的吸引范围 无限制 的大流星
半径4.44格(600像素)的圆范围 限9行
(可以覆盖到相邻4行)
2级光照时的吸引范围
半径5.18格(700像素)的圆范围 限11行
(可以覆盖到相邻5行)
3级以上光照时的吸引范围 无限制 的超级流星
半径8.14格(1100像素)的圆范围 无限制 的究极流星

子弹弹道

  • 代码名:BulletMoveWay
ID 代码名 人肉机翻 举例 说明
-1 Jump
0 MoveRight 向右飞行 普通子弹
1 Roll 滚动 坚果射手
2 Free 释放 豌豆土豆雷亡语
3 Puff 喷出 小喷菇
4 Three_up 三_上 三线射手
5 Three_down 三_下 三线射手
6 Track 追踪 猫尾草
7 Fly 仙人掌
8 Fly2 飞2
9 Left 裂荚射手
10 Stable 稳固的 仙桃、光桃、超桃、究桃子弹发射前0.3秒
11 Rounding 绕行
12 LittleFly 小飞
13 Throw 投掷 投手
14 Cannon 加农 加农炮
15 Right_free 右_释放 大哥大招
16 Convolute 盘旋 卷心菜弹射
17 Quick_throw 快速_投掷 绿伞低平弹道
18 Freefly 释放飞翔 究仙大招
19 Split_left 分裂_左
20 Track_air_singleRow 追踪_空中_单排
21 Sin 正弦
22 Cos 余弦
23 Pirouette 单脚尖旋转 究极云杉
24 MoveRight2 向右飞行_2

交互

  • 对大部分植物/僵尸/子弹来说,碰撞框重叠是产生交互的前提
    • 小喷菇大喷菇这类有距离限制的“射手”,其索敌依据与僵尸的坐标距离;忧郁菇窝瓜存疑
    • 大嘴花类植物、叶子保护伞的融合植物虽然也有索敌距离限制,但它依据的是碰撞框;
    • 杨桃类植物索敌依据的也是碰撞框:预设的子弹弹道碰撞框

火炬树桩点燃

  • 火炬树桩点燃碰撞框在横向上与植物碰撞框一致,在纵向上与格子高度基本一致
    • 磁力坚果牵引的子弹在上下两行交接处碰到火炬树桩的碰撞框,会沿着分界线发射出去,此时子弹的碰撞框可以接触到上下2行的僵尸
    • 究极樱桃射手在获得火力全开词条后额外发射的子弹看似运动到相邻行,但碰撞框其实并没有离开本行,故不能被相邻行的火炬树桩影响;只是由于僵尸的碰撞框比较大,可以被靠近分界线的子弹攻击到罢了

一些特殊交互要求

一些特殊交互要求(表象)展开/折叠
实体子弹 只要碰撞框有接触就行 包括平射子弹
追踪子弹
tips:追踪子弹只有在子弹锁敌时触发投掷子弹
墓碑向日葵.png墓碑阳光菇.png 包括平射子弹
追踪子弹
平射、实体子弹 碰撞框接触

拥有行判定

如追踪子弹;杨桃大哥大招斜向发射的子弹;火力全开额外发射的子弹交互
只能转化豌豆子弹
射程无限制(小喷菇)
弹道无下坠(坚果射手)
转换的子弹会被打上“已被转化”的Tag,不会被重复转化
射程无限制
弹道无下坠
方向严格向右
(Vx>0,Vy=0)
(杨桃大哥大招子弹)
可以让非实体子弹的大喷菇忧郁菇以及普通杨桃植物发动攻击,但无法产生牵引
裂荚射手向后发射的子弹在折返前不会被牵引
可以牵引浮空植物发射的子弹、对空发射的子弹,但无法牵引具有追踪能力子弹、激光
牵引的子弹会被打上“已被牵引”的Tag,不会被其他吸金磁影响
子弹在牵引后受到仍和火炬树桩效果影响均可被再次牵引
(包括点燃、覆盖点燃、熄灭、冰镇、融化、转化、分裂)
牵引的子弹会被打上“已被牵引”的Tag,不会被其他磁力坚果影响;
牵引的子弹在运动过程中接触火炬树桩时会产生以下交互:
普通火炬树桩:向前以旋转时的线速度发射出去,此时仍然不具备行判定,不可被上述植物重复吸引/分裂;
极寒树桩子弹变成冰豆、极寒冰豆时,会清除“已被磁力坚果牵引”的Tag,随机立刻被重新牵引,由于短时间内被重复附加标签,很多时候子弹会停留在原地不动(该bug3.0版本已修复,目前与其他火炬树桩一致)
究极向日葵的范围灼烧:变成子弹可被吸收,发射方改变,速度及方向重置,重新拥有行判定,可以被吸引/分裂
射程无限制
弹道无下坠
方向严格向右
子弹飞行轨迹始终为直线
(三线射手上下两行子弹)


丨特色机制

特色机制

坚果修补术

  • 融合版没这东西!
    • 坚果上种植坚果虽然会回复所有韧性,但是坚果会变成保龄球滚出去,别被骗了!

南瓜修补术

豆荚增生

边路补偿

代替承伤

 植物位于多个承伤植物的承伤范围内时,优先由承伤等级较高的植物承伤,其次为最左侧的承伤植物,再次为最上方的承伤植物。
  • 最高:究极黑曜石高坚果、究极黑曜石土豆坚果,次高:平安果、三叶坚果、机械坚果、超级机械坚果、樱桃保护伞,次低:小蘑菇南瓜,最低:黑曜石辣椒菇

魅惑概率

  • 代码名:TrySetMindControl
魅惑概率曲线.png
魅惑概率曲线.png
魅惑概率相关代码展开/折叠
究极仙人掌子弹
(Bullet_ultimateCactus)
究极大喷菇
(UltimateFume)
魅惑大喷菇
(HyponoFume)
超级魅惑菇子弹
(Bullet_puffLove)
3.2版本前) 3.2版本后)
血量比例n (当前生命值 + 当前一类防具韧性)/(最大生命值 + 最大一类防具韧性)
(theHealth + theFirstArmorHealth)/(theMaxHealth + theFirstArmorMaxHealth)
阈值m 40% 50% 60%(普度众生词条将该值提升至100%)
系数a 血量比例n>40%:系数a = 1.0

血量比例n≤40%:系数a = n/40%

血量比例n>50%:系数a = 1.0

血量比例n≤50%:系数a = n×2

血量比例n>60%:系数a = 1.0
(拥有普度众生词条改为n/60%)

血量比例n≤60%:系数a = n/60%


仅血量比例n≤阈值m时计算:
反向系数a = 1-(n/m)
修正值b 修正值b = (系数a)  修正值b = 系数a - 魅惑抗性等级d×5%

魅惑抗性等级d = 命中僵尸的魅惑胆小菇子弹种类数量
血量比例n>60%:
修正值b = ((系数a) )

血量比例n≤60%:
修正值b = (系数a) 

限制反向系数a的范围为 (0, 1)
输出值c限定范围 输出值c = max(0.75, 修正值b) 输出值c = max((修正值b), 0.75 - 魅惑抗性等级d × 5%) 血量比例n>60%:
输出值c = max(0.9, 修正值b)

血量比例n≤60%:
输出值c = max(0.75, 修正值b)

输出值c = 反向系数a × 25%
(0, 1)随机数r判定 当随机数r<输出值c时,判定失败 当随机数r≥输出值c时,判定成功 当随机数r<输出值c时,判定成功
判定成功时执行 1) 标记僵尸受控   

2) 播放音效 / 特效
3) 生成新受控僵尸
4) 原僵尸死亡       

仅标记僵尸为受控状态
判定失败时执行 1) 造成伤害等同于子弹damage的伤害
凛风刺骨词条使造成的伤害×3)

2) 附加20点冻结值

无事发生 造成等同于自身attackDamage的伤害 无事发生
翻译一下 血量比例>40%时
魅惑概率 = 0
血量比例>50%时
魅惑概率 ≥ 0
每种魅惑胆小菇子弹使该僵尸被魅惑概率提升至:2.53% / 5.13% / 7.80% / 10.57% / 13.40% / 16.33%
血量比例>60%时
魅惑概率 = 0

拥有普度众生词条改为:
1-((血量比例/100%))
最大魅惑概率10%
血量低于65.61%时达到最大

血量比例>60%或100%时
魅惑概率 = 0
血量比例≤40%时
魅惑概率 = 1-(血量比例/40%)
血量比例≤50%时
魅惑概率 = 1-[(血量比例*2)-5n%]
血量比例≤60%时
魅惑概率 = 1-(血量比例/60%)
血量比例≤60%时
魅惑概率 = (1-(血量比例/60%))×25%
最大魅惑概率25%
血量低于22.5%时达到最大
最大魅惑概率25%+5n%
血量低于28.125%时达到最大
最大魅惑概率25%
血量低于33.75%时达到最大
血量为0时魅惑概率为25%


丨各类代码原理


各类代码原理

DamageType

  • 相关代码集在Zombie_ApplyDamage
这部分内容来自代码 这部分内容为本WIKI总结
ID Name 二类防具 一类防具 本体 说明 理解 举例
0 Normal 1st 2nd 3rd 大部分单体伤害平射
子弹直击(弹跳伤害为NormalAll
(火焰豌豆类的溅射伤害无法穿透二类防具,也无法对其生效)
部分穿透子弹 (因为究极炮台初设子弹不能穿透,飘飘一定是忘记改了)
部分范围伤害 等保护伞的击退的切割伤害
部分直击伤害 的直击伤害
有二类防具时必定伤害二类防具 大部分有追踪能力的实体子弹 的子弹
部分融合配方中含有磁力菇的子弹
普通杨桃/三星堆/胆小桃/海桃/0级光桃等普通杨桃子弹向后发射时可无视二类防具;磁力玉米投手系列由于对一类防具特攻,是Shieldless
1 NormalAll 1st 1st 2nd 大部分范围伤害

的光爆合体后的范围伤害
大部分可以无限穿透的攻击 有2级光照的
部分特殊单体伤害子弹 小毁灭菇子弹
这些西瓜子弹 以及大部分西瓜的溅射伤害
(在2.8版本,魅惑西瓜被错误的设置为Realdamage
2 Ice 1st 2nd 3rd 击破二类防具后,减速10s 寒冰实体子弹 的副炮有能量时的切割伤害
3 IceAll 1st 1st 2nd 减速10s 大部分寒冰范围伤害
冰锥、冰刺、冰棱子弹
一些可以产生溅射的实体子弹
4 Shieldless 1st 2nd 大部分投掷子弹 以及所有其他投手
大部分可以穿透的子弹 的直接伤害(爆炸属于NormalAll
部分火焰属性的子弹
部分范围伤害 的光爆的所有攻击
的辐射伤害的僚机伤害
部分直击伤害
各种反伤、红温爆炸、中毒毒伤也是Shieldless
5 IceShieldless 1st 2nd 减速10s 部分投掷寒冰子弹 (冰瓜的伤害类型是IceAll
部分可以穿透的寒冰子弹 的直接伤害(爆炸属于IceAll
部分范围寒冰伤害
6 Realdamage 1st 1st 1st 橄榄大喷菇的伤害种类 的子弹(火海属于NormalAll
10 Explode 1st 1st 2nd 普通范围伤害的伤害种类
大部分可以产生无衰减溅射的子弹 大毁灭菇子弹的额外范围伤害
11 Squash 1st 1st 2nd 如果一类+本体血量<伤害值,且,直接死亡(reason2) 窝瓜的伤害种类;如果敌人剩余血量低,会把它压扁(仅对小体型僵尸有效)
12 Carorange 1st 1st 2nd 本体受伤前,如果本体血量<剩余伤害值,化灰(Carred疑为Charred误写) 大名鼎鼎的灰烬伤害
毁灭大喷菇西瓜加农炮金玉米投手的大招炮弹是NormalAll
13 Hammer 1st 2nd 3rd 分段伤害,有二类则不会伤害一类和本体,没有二类有一类则不会伤害本体 锤僵尸模式的锤子伤害种类 基本玩法-锤子.png
14 MaxDamage 1st 1st 2nd 各种描述为“秒杀”但不是代码杀的伤害种类;领袖僵尸免疫此种类型的伤害,仅受到5000伤害 基本玩法-锤子.png的爆头
WIKI导览
植物 植物 植物图鉴 · 融合配方 · 融合图鉴 · 亚种切换素材 · 花园及商店
融合度 一级植物 · 二级植物 · 超级植物 · 究极植物 · 巨型植物 · 衍生植物
类型 基础植物 · 融合植物 · 功能植物 · 金属植物 · 特殊植物 · 限定植物 · 彩蛋植物
僵尸 僵尸 僵尸图鉴 · 武器与防具 · 难度与出怪
类型 普通僵尸 · 植物僵尸 · 究极僵尸 · 其他僵尸 · 异次元僵尸
融合度 一级僵尸 · 二级僵尸 · 三级僵尸 · 原型僵尸 · 融合僵尸 · 旅行僵尸 · 领袖僵尸
通用 基本玩法 · 旅行词条 · 深渊词条 · 废稿与卫星 · 底层机制 · 子弹与特效 · 攻击与伤害
游戏 关卡 · 机制 · 联动 · 特殊图鉴 · 地图 · 成就系统 · 设置 · 科普
二创 融合DLC · 二创Mod · 机鱼整活 · 猫瓜表情包 · 蓝蝶小剧场 · 同人文 · 其他二创
其他 公告 · 攻略 · 创作组 · 融合技术研究所