Zombie Waves Codex

競技場戰鬥怎麼算 — 完整解析

從遊戲程式碼與設定檔拆解:HP 從哪來、傷害實際上依什麼計算、競技場中哪些面板屬性根本不生效,以及機器人怎麼參戰。

重點摘要
  • 算戰鬥的是伺服器,不是你的手機:結果在動畫開始前就已經全部算完,中間沒有運氣可言。換裝備要重新進入遊戲後才會生效。
  • 你在競技場的 HP 是戰車的耐久度,不是英雄的生命值。英雄生命值完全不參與。
  • 子彈傷害依戰力計算,不是依攻擊力。「攻擊力」面板完全不進入射擊計算。
  • 競技場裡暴擊照樣會觸發,但打出來和普通射擊一模一樣。暴擊發動時遊戲會顯示特效,但傷害數字本身和沒暴擊時完全相同。玩家拼命堆暴擊圖的那個倍率(一般關卡中傷害翻倍)在競技場根本不存在:遊戲算出來了,卻在最後一刻換成普通傷害。可是戰力受暴擊機率的提升幅度勝過其他任何屬性,而子彈傷害正是從戰力算的。所以還是值得堆——傷害變高不是因為暴擊打出來了,而是因為戰力上去了。

另外,戰鬥中面板有一半直接乘以零:射擊速度、換彈速度、閃避幾率、所有暴擊相關、對 BOSS 傷害。元素則被砍到 20%。但要注意:「戰鬥中不生效」不等於「沒用」——這些屬性幾乎都會拉高戰力,而角色傷害正是從戰力算的。真正沒用的只有戰力權重為零的那些。

1.競技場的 HP 不是英雄的生命值

英雄的生命值完全不參與決鬥。HP 取自戰車,分兩層計算:

HP = 基礎戰車耐久(依車庫等級)×(1 +「戰車耐久」%)

主要那一層是戰車等級,也就是純粹的車庫。差距大得驚人:

等級耐久度
1300 000
1001.2 B
2006.9 B
50043.8 B
900450 B
950900 B
1000 (最大)4.5 T

100 級到 200 級之間差近 ×6。最後 50 級(950→1000)又是 ×5。從第一級到最後一級相差 1500 萬倍。任何攻擊力都補不回來。

第二層是「戰車耐久」屬性(最高 +42%),它乘在已經累積好的基礎值上。百分比是不錯,但擺在車庫等級旁邊只是錦上添花。而決鬥中的「初始生命」屬性根本不會被讀取:HP 完全取自戰車,競技場的引擎壓根不問英雄的生命值。

小細節:戰車在 HP 剩 1/2 與 1/3 時會換損毀外觀——純粹是視覺表現。

2.傷害公式

傷害 = 基礎值 × 子彈倍率 ×(1 + 元素 %) ×(1 − 目標的「競技免傷」 + 攻擊者的「競技場傷害」) × 目標戰車的抗性

這一行裡沒有暴擊。這不是筆誤——見第 3 點。而「基礎值」正是整個競技場中最出人意料的地方。

角色傷害的基礎值 = 你的戰力 + 元素(權重 20%)

不是攻擊力。角色的攻擊力在競技場中完全不進入射擊計算:競技場的武器是從戰力初始化的。也就是說,所有人都盯著看的「攻擊力」面板,和你的子彈傷害毫無關係。

唯一會讀取角色攻擊力的是機器人(第 5 點)。

這也回答了那個永恆的問題——「為什麼攻擊力比我低的人能把我拆了」:競技場比的不是攻擊力,而是戰力、戰車和各種百分比。攻擊力只是戰力的組成之一,而且不是主要的那個。

那戰力本身又是怎麼堆出來的

既然角色傷害是從戰力算的,「我能打多少」這個問題就變成了「戰力是怎麼累積的」。它的組成方式蠢得徹底:每項屬性在設定檔中都寫有一個權重,戰力就是所有屬性乘上各自權重後的總和。客戶端會自己算一遍再跟伺服器核對:差距超過 200 時,遊戲會在日誌裡發火並把報告送回伺服器。這說明客戶端和伺服器用的是同一條公式。

130 項屬性中只有 16 項有權重。全部列在這裡:

屬性戰力權重戰鬥中
致命幾率500 000不起作用
暴擊機率100 000不起作用
射擊速度 · 換彈速度40 000不起作用
子彈傷害20 000以 20% 生效
元素(其他七個)10 000以 20% 生效
對精英傷害 · BOSS傷害10 000不起作用
初始生命1 000不起作用
總攻擊1只透過機器人

看看這是什麼情況。權重最重的,正好就是那些在戰鬥中被歸零的屬性。致命一擊機率的權重是 500,000,暴擊機率是 100,000,而所有人都在拜的總攻擊只有 1。不過攻擊力靠的是量:它動輒好幾萬,而機率只是零點幾。

由此得出一個實用結論。「戰鬥中不生效」和「競技場不需要」是兩回事。暴擊機率、射擊速度、換彈速度和對 BOSS 傷害,一分一毫都不參與戰鬥計算,卻會老老實實轉成戰力,而戰力又直接轉成你的子彈傷害。判斷標準是權重:權重為零的屬性,既不給戰鬥也不給戰力——那才是真正的垃圾。暴擊傷害、致命傷害和閃避幾率就是這樣。

還有一個鏡像的事實:競技場專屬屬性——「競技場傷害」「競技免傷」「戰車耐久」以及三項機器人屬性——在戰力中的權重都是零。它們一點戰力都不會給你,卻在戰鬥中直接生效。也就是說,戰力面板和競技場中的真實強度,是兩套不同的屬性,而且幾乎不重疊。

3.競技場的暴擊不會多打傷害

遊戲老老實實擲骰、播特效——然後把結果丟掉。暴擊倍率算出來了,卻在傷害打到目標前一刻被重設為 1。這件事能從三個角度同時看出來,而且三者結論一致:

  • 競技場的程式碼把暴擊倍率歸零,一般關卡的程式碼則正常套用。有差別的是競技場;
  • 四項暴擊屬性(暴擊機率、暴擊傷害、致命幾率、致命傷害)在設定檔中全部標記為 PVP 係數 0;
  • 目前版本的客戶端也是同一套——歸零的處理原封不動,儘管其中的暴擊程式碼最近才動過。

競技場中的暴擊傷害和致命傷害是十足的累贅:既不給倍率也不給戰力。但機率就是另一回事了。它們同樣不給倍率,卻是遊戲中最重的兩項戰力屬性:致命一擊機率的權重是攻擊力單位的 50 萬倍,暴擊機率則是 10 萬倍。而競技場中子彈的傷害正是從戰力算的。於是就出現了悖論:為了競技場去堆暴擊機率是划算的——只是它不是以暴擊的身分生效,而是以戰力的身分。順帶一提,機器人根本不會暴擊:競技場的計算裡壓根沒有暴擊分支。

4.最多能堆多少

「競技場傷害」和「競技免傷」處在同一個括號內互相抵銷:×(1 − 目標免傷 + 攻擊者傷害)。線性,沒有遞減曲線。點套裝名稱可以看到組成與共鳴效果。

🗡 競技傷害

來源數值
S 武器配件:槍口 + 鐳射 + 瞄具(3 × 8%,滿級)24%
收藏品: 10% · 10% · 10%30%
車庫天賦(80個節點×0.2%)16%
營地皮膚(滿級)10%
倖存者「足球寶貝」,5★10%
集卡冊6%
合計96%

🛡 競技免傷

來源數值
S 武器配件:握把 + 槍托 + 彈匣(3 × 8%,滿級)24%
收藏品: 10% · 10% · 5%25%
車庫天賦(80個節點×0.2%)16%
集卡冊12.5%
營地皮膚(滿級)10%
合計87.5%

🚗 戰車生命

來源數值
收藏品: 16% · 10%26%
集卡冊10%
營地皮膚(滿級)6%
合計42%

🧪 合劑 — 依武器類型的加成

來源提升什麼數值
英勇合劑競技場傷害(武器類型)10%
狂怒合劑競技場傷害(武器類型)25%
堅韌合劑競技場傷害減免(武器類型)10%
不朽合劑競技場傷害減免(武器類型)25%
單一類型合計傷害 35% + 減免 35%

合劑提升的是綁定武器類型的獨立屬性:只有手持該類型武器時才生效,而且完全不會顯示在屬性面板上——和倖存者「足球寶貝」的隱藏屬性一樣。每次使用,英勇與堅韌各加 0.2%,狂怒與不朽各加 0.5%;使用次數上限隨等級提升,每種合劑最多 50 次。不同武器類型的合劑不會疊加,練自己在用的那一種才有意義。

其中哪些實際有用:

  • 傷害佔比最大的一塊是 S 武器配件:24% + 24%,兩側各三個插槽。
  • 第二大的是收藏品(30% / 25%),耐久倍率的大部分也來自這裡。
  • 車庫是從各個方向同時加成:HP 基礎值(等級)、天賦(16 + 16)、戰車品階(抗性,見下文)。車庫落後了,沒有任何東西補得回來。
  • 「足球寶貝」的貢獻不會顯示在面板上——這是隱藏屬性,默默生效。

5.機器人:與角色分開計算

競技場的機器人自成一套規則,而這是整個陣容中最被低估的部分。

首先,它們不開槍。完全不開。在競技場中,機器人停在地圖外很遠的地方,只有要放技能時才出場:瞬移到敵方戰車旁,打完一輪再開回去。競技場的機器人技能和平常那套是分開的——是它們自己的 PVP 技能,每台機器人兩個插槽,依品階(綠 / 紫 / 橙 / 紅)解鎖。機器人在競技場的品階不是「屬性多一點」,而是決定它到底能放哪個技能。

機器人的傷害,是從和角色傷害「不同的」基礎值算起的

角色依戰力打傷害。機器人則依自身等級對應的攻擊力,加上從角色繼承來的那份攻擊力。也就是說,對你的子彈毫無用處的角色攻擊力其實有在生效——但只透過機器人。

帶動這套組合的有三項屬性,三項都能在收藏品的共鳴中找到:

屬性作用競技場中
機器人傷害機器人傷害的倍率100%
機器人繼承主角攻擊比例機器人繼承你攻擊力的比例更高100%
機器人提供的主角攻擊機器人回饋給角色的攻擊力倍率100%

三項全都以完整效果運作。設定檔中給「機器人傷害」寫了 0.1 的係數——原本是想把它砍到 10%。但真正計算機器人傷害的程式碼在讀這項屬性時,繞過了套用係數的那個位置。結果削減倍率從來沒被讀到,屬性以 100% 生效。

注意:「機器人傷害」和「機器人繼承攻擊比例」也會強化敵方機器人

這場戰鬥由你的手機計算,而在寵物分支中,遊戲是從「你的」個人資料取這兩項屬性的,並不區分敵我。也就是說,它們同時套用在你的機器人和敵方機器人身上。你堆得越高,兩邊都越強。划不划算取決於誰的機器人打得更痛:如果敵方機器人比你強,那你就是在幫對手。

為什麼會這樣不得而知。能看到的只有結果:寵物分支讀這兩項屬性時,取的是玩家的通用資料,而不是機器人所屬那一方的資料。

反向也有回饋:陣容中的每台機器人都會給角色的基礎攻擊力一個固定加值——依它自己的等級與品階計算,再乘上「機器人提供的角色攻擊力」。機器人的等級與品階讀自同一張表,但取自不同欄位:一欄是機器人自己打多少,另一欄是它回饋給角色多少。

為機器人該堆什麼

屬性收藏品數值
機器人提供的主角攻擊 10% · 10% · 10%30%
機器人繼承主角攻擊比例 10%10%
機器人傷害 10% · 10%20%

此外,營地天賦還會給「機器人傷害」和「機器人提供的角色攻擊力」各 10%。

6.戰車會剋制特定武器

抗性 = 1 −(通用 + 敵方武器對得上時的剋制加成)× 品階倍率

百分比——以紅色品階計:

戰車剋制對象對其他武器對剋制對象
皮卡戰車10%10%
綠林俠盜步槍10%25%
炙炎與海霰彈槍10%25%
塗鴉巡者重機槍10%25%
紫色魅影狙擊槍10%25%
藍色野獸火箭炮10%25%
老式利刃弩箭10%25%
流放之刺狙擊槍12.5%37.5%
毀滅重碾重機槍12.5%37.5%
霓虹骨鯊霰彈槍12.5%37.5%
德古拉伯爵弩箭12.5%37.5%
鋼鐵洪流火箭炮12.5%37.5%
銀槍騎士步槍12.5%37.5%
靈魂收割者狙擊槍12.5%37.5%
緋色流光重機槍12.5%37.5%
叢林堡壘霰彈槍12.5%37.5%
幽淵掠影弩箭12.5%37.5%
廢土清道夫火箭炮12.5%37.5%

品階會整體乘上抗性:白 0.3 · 綠 0.4 · 藍 0.5 · 紫 0.6 · 紫+1 0.63 · +2 0.66 · +3 0.7 · 橙 0.8 · +1 0.82 · +2 0.84 · +3 0.87 · +4 0.9 · 紅 1.0。紫色和橙色的中間階不是裝飾,而是實打實的品階:橙+4(0.9)的減傷效果是白色的三倍。

「死神之鐮」對狙擊槍:紅色品階時減傷 37.5%;同一台車在白色只有 11%。品階讓防禦力翻三倍。

7.競技場中哪些不生效

這裡有兩種不同的情況,值得分開看。第一種:每項屬性在設定檔中都寫有自己的 PVP 係數,進入戰鬥時會被悄悄乘上去——有些是零。第二種:屬性沒有被歸零,只是根本沒人去讀它。整張表還有一個重要前提:這裡的「不生效」指的是「不參與戰鬥計算」。這些屬性照樣會拉高戰力,而角色傷害正是從戰力算的——所以競技場配裝裡不能把它們拿掉。

屬性為什麼不生效
射擊速度PVP 係數為 0。而且競技場確實會讀這項屬性——讀了,但每次拿到的都是零
換彈速度PVP 係數 0,情況完全一樣
暴擊機率 · 暴擊傷害 · 致命傷害PVP 係數為 0,暴擊倍率本身也被抵銷。暴擊傷害和致命傷害更是徹底作廢——它們在戰力中的權重同樣是零
閃避幾率PVP 係數 0
對精英傷害 · BOSS傷害PVP 係數 0,競技場的計算裡沒有對應分支
以武器類型劃分的傷害(全部六種)PVP 係數 0
配件提供的攻擊力PVP 係數 0。配件上的「競技場傷害/競技免傷」百分比則有效——那是不同的屬性
初始生命沒有被歸零,但不會被讀取:HP 取自戰車,引擎不會去問英雄的生命值

被砍過,但還活著:

  • 元素(全部八種)——以 20% 生效。

另有一件怪事:遊戲中有兩項不同的屬性,名字都叫「競技場傷害」。一項是實際在幹活的那個,也就是靠配件和收藏品堆起來的那個。另一項是死的:PVP 係數為零,而且整份程式碼中對它的呼叫次數也是零。只是一個同名的、被遺忘的空殼。

還有一件反過來的怪事:「機器人傷害」被寫上了 0.1 的係數,卻忘了去讀它——這項屬性以 100% 生效。設定檔說一套,程式碼做另一套。

洞悉(距離加成)——已移除。

8.戰鬥是誰在算

伺服器。全部都是。當你按下「戰鬥」時,伺服器早已把整場戰鬥從頭算到尾,並送來一份現成的紀錄:雙方 HP 的逐秒快照,以及指定好的勝方。你的手機在看到第一發子彈之前就收到了這份紀錄。

螢幕上發生的一切都只是在播放這份紀錄。客戶端裡確實有一套本地公式,但伺服器回報一到就被丟棄:HP 直接從快照代入,勝方由伺服器指定。準度、反應、按下的時機通通不影響任何事——結果在動畫開始前就定了。

由此也能推出:戰鬥中沒有隨機。屬性相同的情況下,和同一個對手打兩場,結果會完全一致,精確到每一秒最後一位 HP 數字。這同時解釋了暴擊為什麼沒有浮動:戰鬥中根本不擲骰,結果只是雙方屬性的純函數。

重要提示:更換裝備需要重新進入遊戲後才能生效

伺服器保存著一份你自己的競技場屬性快照,並依這份快照計算戰鬥,而不是依面板上顯示的數值。如果你脫下或穿上裝備後立刻去打,這一場會按舊屬性計算,傷害一點都不會變。快照是在打完一場之後才記錄的,並從下次進入遊戲起生效,也就是說它落後了一個「戰鬥 → 重新進入」的循環。實用守則:改完配裝後先打一場,再重新進入遊戲,之後新屬性才會真的生效。