Zombie Waves Codex

Một trận đấu trường được tính như thế nào — phân tích đầy đủ

Phân tích mã và cấu hình game: HP đến từ đâu, sát thương thực sự được tính từ đâu, chỉ số nào trên bảng hoàn toàn không hoạt động trong đấu trường, và robot tham chiến ra sao.

Ngắn
  • Trận đấu do máy chủ tính, không phải điện thoại của bạn: kết quả được tính trọn vẹn trước khi hoạt ảnh chạy, trong đó không có yếu tố may rủi. Thay trang bị chỉ có hiệu lực sau khi vào lại game.
  • HP của bạn trong đấu trường là độ bền của Chiến Xa, không phải máu anh hùng. Máu của anh hùng hoàn toàn không tham gia.
  • Sát thương đạn của bạn được tính từ CP, không phải từ chỉ số Tấn công. Bảng «Tấn công» không tham gia vào việc bắn.
  • Chí mạng vẫn nổ ra trong đấu trường, nhưng đánh y như một phát bắn thường. Khi chí mạng kích hoạt, game hiện hiệu ứng lóe sáng — còn con số sát thương thì đúng bằng lúc không chí mạng. Chính hệ số mà bạn cày cho chí mạng (ở màn chơi thường nó nhân đôi sát thương) không tồn tại trong đấu trường: game có tính, nhưng vào phút chót thay bằng sát thương thường. Đồng thời, xác suất chí mạng lại nâng CP nhiều hơn mọi chỉ số khác — mà sát thương đạn thì tính từ CP. Nên vẫn đáng nâng: sát thương tăng không phải vì chí mạng bắt đầu ăn, mà vì CP tăng.

Thêm nữa, một nửa bảng chỉ số bị nhân với 0 ngay trong trận: tốc độ bắn, nạp đạn, né đòn, toàn bộ chí mạng, sát thương lên Trùm. Nguyên tố bị hạ còn 20%. Nhưng cẩn thận: «không hoạt động trong trận» không có nghĩa là «vô dụng» — gần như tất cả các chỉ số này đều nâng CP, và sát thương của nhân vật được tính từ CP. Thứ duy nhất không nâng CP là thứ có trọng số bằng 0.

1.HP trong đấu trường KHÔNG phải là sức khỏe của anh hùng

Máu của anh hùng hoàn toàn không tham gia trận tay đôi. HP lấy từ Chiến Xa và được tính theo hai lớp:

HP = Độ bền Chiến Xa (theo cấp của nó trong gara) × (1 + «Độ Bền Chiến Xa»%)

Lớp chính là cấp của xe, tức là gara thuần túy. Độ chênh lệch cực lớn:

CấpĐộ bền
1300 000
1001.2 tỷ
2006.9 tỷ
50043.8 tỷ
900450 tỷ
950900 tỷ
1000 (Tối đa)4.5 nghìn tỷ

Từ cấp 100 lên 200 — gần ×6. Năm mươi cấp cuối (950→1000) — thêm ×5 nữa. Từ cấp đầu tới cấp cuối chênh nhau 15 triệu lần. Không đòn tấn công nào bù nổi khoảng đó.

Lớp thứ hai là chỉ số «Độ Bền Chiến Xa» (tối đa +42%), nó nhân lên phần nền đã tích được. Phần trăm thì đẹp, nhưng so với cấp gara thì chỉ là lớp kem trên bánh. Còn chỉ số «HP khởi đầu» trong trận tay đôi thì đơn giản là không được đọc: HP lấy hoàn toàn từ Chiến Xa, engine đấu trường không hỏi tới máu anh hùng.

Chuyện nhỏ: xe đổi kiểu sát thương ở mốc 1/2 và 1/3 HP — thuần túy hình ảnh.

2.Công thức sát thương

SÁT THƯƠNG = Cơ sở × Hệ số đạn × (1 + % nguyên tố) × (1 − «Giảm ST Đấu Trường» của mục tiêu + «ST Đấu Trường» của người tấn công) × Kháng của Chiến Xa mục tiêu

Trong công thức này không có chí mạng. Đó không phải lỗi đánh máy — xem mục 3. Và «Cơ sở» chính là chỗ bất ngờ nhất của cả đấu trường.

Cơ sở sát thương của nhân vật = CP của bạn + nguyên tố với trọng số 20%

Không phải chỉ số Tấn công. Tấn công của nhân vật hoàn toàn không tham gia việc bắn trong đấu trường: vũ khí ở đây được khởi tạo từ CP. Nghĩa là bảng «Tấn công» mà ai cũng nhìn chẳng liên quan gì tới sát thương đạn của bạn.

Thứ duy nhất đọc chỉ số Tấn công của nhân vật là robot (mục 5).

Từ đó có câu trả lời cho thắc mắc muôn thuở «sao thằng ít Tấn công hơn lại xé được mình»: trong đấu trường người ta đo bằng CP, xe và phần trăm, chứ không phải bằng Tấn công. Tấn công chỉ là một thành phần của CP, và không phải thành phần chính.

Và CP được làm từ gì?

Vì sát thương của nhân vật tính từ CP, câu hỏi «mình đánh mạnh cỡ nào» thành câu hỏi «CP được cộng ra sao». Nó được ghép lại một cách cực kỳ thô sơ: mỗi chỉ số có một trọng số ghi trong cấu hình, và CP là tổng của tất cả chỉ số nhân trọng số của chúng. Client tự tính rồi đối chiếu với máy chủ: nếu lệch quá 200, game chửi vào log và gửi báo cáo lên máy chủ. Nghĩa là client và máy chủ dùng chung một công thức.

Chỉ 16 chỉ số trong số 130 là có trọng số. Đây là tất cả:

Chỉ sốTrọng số trong CPTrong chính trận chiến
Xác Suất Chí Tử500 000không hoạt động
Xác Suất Chí Mạng100 000không hoạt động
Tốc Độ Bắn · TĐ Nạp40 000không hoạt động
Sát Thương Đạn20 000hoạt động ở mức 20%
Nguyên tố (bảy cái còn lại)10 000hoạt động ở mức 20%
ST gây ra cho quái Tinh Anh · ST gây ra cho Trùm10 000không hoạt động
Máu Khởi Đầu1 000không hoạt động
Tổng Tấn Công1chỉ thông qua một robot

Nhìn mà xem. Trọng số nặng nhất lại rơi đúng vào những chỉ số bị đặt về 0 trong trận. Xác suất chí tử nặng 500.000, xác suất chí mạng nặng 100.000, còn Tấn công tổng mà ai cũng cầu khấn thì nặng đúng 1. Nhưng Tấn công thắng nhờ khối lượng: nó có hàng chục nghìn đơn vị, còn xác suất thì chỉ là phần lẻ của 1.

Từ đó rút ra kết luận thực dụng. «Không hoạt động trong trận» và «không cần cho đấu trường» là hai chuyện khác nhau. Xác suất chí mạng, tốc độ bắn, nạp đạn và sát thương lên Trùm không tham gia tính trận một chút nào, nhưng chúng đều đặn biến thành CP, mà CP thì biến thẳng thành sát thương đạn của bạn. Nên kiểm tra theo trọng số: nếu trọng số bằng 0, chỉ số vừa không cho trận đấu vừa không cho CP — đó mới là rác thật sự. Sát thương chí mạng, sát thương chí tử và né đòn chính là loại đó.

Và một sự thật soi gương: các chỉ số của đấu trường — «ST Đấu Trường», «Giảm ST Đấu Trường», «Độ Bền Chiến Xa», cả ba chỉ số robot — đều có trọng số 0 trong CP. Chúng không cho bạn điểm CP nào, nhưng lại chạy trực tiếp trong trận. Nghĩa là bảng CP và sức mạnh thật trong đấu trường là hai bộ chỉ số khác nhau, và chúng gần như không giao nhau.

3.Chí mạng trong đấu trường không gây thêm sát thương

Game vẫn quay số ngẫu nhiên tử tế, vẫn chớp hiệu ứng — rồi vứt kết quả đi. Hệ số chí mạng được tính rồi lập tức đặt về 1 trước khi sát thương chạm mục tiêu. Điều này thấy được bằng ba cách cùng lúc, và cả ba đều khớp:

  • trong mã của đấu trường, hệ số chí mạng bị đặt về 0, còn trong mã màn chơi thường thì nó được áp dụng. Khác biệt nằm ở đấu trường;
  • cả bốn chỉ số chí mạng (xác suất chí mạng, sát thương chí mạng, xác suất chí tử, sát thương chí tử) đều bị đánh dấu hệ số PVP bằng 0 trong cấu hình;
  • chính điều đó nằm trong bản client hiện tại — vẫn đặt về 0 tại chỗ, dù mã chí mạng trong đó gần đây có được sửa.

Sát thương chí mạng và sát thương chí tử trong đấu trường là gánh nặng vô ích: chúng không cho hệ số nhân, cũng không cho CP. Nhưng xác suất lại là chuyện khác. Chúng cũng không cho hệ số nhân, nhưng đây là hai chỉ số nặng CP nhất game: xác suất chí tử nặng gấp 500 nghìn lần một đơn vị Tấn công, xác suất chí mạng gấp 100 nghìn. Mà sát thương đạn trong đấu trường lại tính từ CP. Thành ra nghịch lý: cày xác suất chí mạng cho đấu trường vẫn có lời — không phải với tư cách chí mạng, mà với tư cách CP. Nhân tiện, robot không hề chí mạng: trong đấu trường đơn giản là không có nhánh chí mạng cho chúng.

4.Có thể cộng dồn tối đa bao nhiêu?

«ST Đấu Trường» và «Giảm ST Đấu Trường» nằm trong cùng một ngoặc và trừ nhau: × (1 − Giảm_của_mục_tiêu + ST_của_người_tấn_công). Tuyến tính, không đường cong. Bấm vào tên bộ sẽ hiện thành phần và hiệu ứng cộng hưởng.

🗡 ST Đấu Trường

NguồnBao nhiêu
Phụ kiện vũ khí S: họng súng + laser + ống ngắm (3 × 8%)24%
Vật phẩm sưu tầm: 10% · 10% · 10%30%
Thiên phú gara (80 nút × 0,2%)16%
Skin Trại (cấp tối đa)10%
Người Sống Sót «Giai Nhân Sân Cỏ», 5★10%
Album thẻ6%
Tổng cộng96%

🛡 Giảm ST Đấu Trường

NguồnBao nhiêu
Phụ kiện vũ khí S: tay cầm + báng súng + băng đạn (3 × 8%)24%
Vật phẩm sưu tầm: 10% · 10% · 5%25%
Thiên phú gara (80 nút × 0,2%)16%
Album thẻ12.5%
Skin Trại (cấp tối đa)10%
Tổng cộng87.5%

🚗 Máu Chiến Xa

NguồnBao nhiêu
Vật phẩm sưu tầm: 16% · 10%26%
Album thẻ10%
Skin Trại (cấp tối đa)6%
Tổng cộng42%

🧪 Đại Dược — bonus theo loại vũ khí

NguồnTăng chỉ số nàoBao nhiêu
Đại Dược Dũng KhíSát thương đấu trường (loại vũ khí)10%
Đại Dược Thịnh NộSát thương đấu trường (loại vũ khí)25%
Đại Dược Kiên TrìGiảm sát thương đấu trường (loại vũ khí)10%
Đại Dược Bất TửGiảm sát thương đấu trường (loại vũ khí)25%
Tổng cho một loại35% sát thương + 35% giảm

Đại Dược tăng một chỉ số riêng gắn với loại vũ khí: nó chỉ hoạt động khi bạn cầm vũ khí thuộc loại đó, và không hiện trong bảng chỉ số — giống chỉ số ẩn của người sống sót «Cô Nàng Bóng Đá». Mỗi lần dùng cho 0.2% với Dũng Khí và Kiên Trì, 0.5% với Thịnh Nộ và Bất Tử; giới hạn lượt dùng tăng theo cấp và dừng ở 50 mỗi loại. Đại Dược của các loại vũ khí khác nhau không cộng dồn — hãy nuôi đúng loại vũ khí bạn dùng.

Trong số này, cái nào thực dụng:

  • Miếng sát thương lớn nhất là phụ kiện vũ khí S: 24% + 24%, tức ba ô mỗi bên.
  • Vật phẩm sưu tầm đứng thứ hai (30% / 25%), và cũng cho phần lớn hệ số độ bền.
  • Gara đánh vào bạn từ mọi phía cùng lúc: nền HP (cấp), thiên phú (16 + 16), hạng xe (kháng, xem bên dưới). Tụt hậu ở gara thì không thứ gì bù được.
  • Phần đóng góp của «Giai Nhân Sân Cỏ» không hiện trên bảng chỉ số — chỉ số này ẩn và chạy ngầm.

5.Robot: được tính riêng biệt với nhân vật

Robot trong đấu trường sống theo luật riêng, và đây là phần bị đánh giá thấp nhất của cả đội hình.

Trước hết, chúng không bắn. Hoàn toàn không. Trong đấu trường, robot đỗ xa ngoài bản đồ và chỉ ló ra để dùng kỹ năng: dịch chuyển tới xe địch, ra đòn, rồi chạy về. Kỹ năng của robot trong đấu trường tách khỏi kỹ năng thường — chúng có bộ kỹ năng PVP riêng, hai ô mỗi robot, và mở theo hạng (xanh lục / tím / cam / đỏ). Hạng của robot trong đấu trường không phải là «thêm chút chỉ số», mà quyết định nó dùng được kỹ năng nào.

Sát thương của robot được tính từ cơ sở KHÁC so với sát thương của nhân vật.

Nhân vật đánh từ CP. Robot đánh từ Tấn công của chính nó theo cấp, cộng với phần Tấn công chia sẻ từ nhân vật. Nghĩa là chỉ số Tấn công của nhân vật — thứ vô dụng với đạn của bạn — vẫn có tác dụng, nhưng chỉ thông qua robot.

Ba chỉ số đẩy mạnh bộ đôi này, và cả ba đều nằm trong cộng hưởng của vật phẩm sưu tầm:

Chỉ sốTác dụngTrong đấu trường
ST RobotHệ số sát thương của robot100%
Lực TC Nhân Vật chia sẻ cho RobotPhần lớn đòn tấn công của bạn mà robot thừa hưởng100%
Lực TC Nhân Vật do Robot chia sẻHệ số tấn công mà robot mang lại cho nhân vật100%

Cả ba đều chạy hết công suất. «ST Robot» được ghi hệ số 0,1 trong cấu hình — tức là lẽ ra phải cắt còn 10%. Nhưng đoạn mã thực sự tính sát thương robot lại đọc thẳng chỉ số này, bỏ qua chỗ áp hệ số. Kết quả: hệ số cắt không bao giờ được đọc, và chỉ số chạy 100%.

Cẩn thận: «ST Robot» và «Lực TC Nhân Vật chia sẻ cho Robot» cũng buff luôn robot của đối thủ

Trận đấu được tính cho phía bạn — nhưng ở nhánh pet, game lấy hai chỉ số này từ hồ sơ CỦA BẠN mà không tách hai phe. Tức là chúng áp cho cả robot của bạn lẫn robot của địch. Cày chúng lên là bạn buff cả hai. Có lời hay không tùy robot bên nào đánh mạnh hơn: nếu robot của địch mạnh hơn của bạn, bạn đang làm không công cho hắn.

Vì sao lại thế thì không rõ. Chỉ thấy kết quả: nhánh pet đọc hai chỉ số này từ hồ sơ chung của người chơi, chứ không từ hồ sơ của phe mà robot thuộc về.

Còn có chiều ngược lại: mỗi robot trong đội hình cộng thẳng cho nhân vật một lượng Tấn công gốc — theo cấp và hạng của nó, nhân với «Lực TC Nhân Vật do Robot chia sẻ». Cấp và hạng của robot được đọc từ cùng một bảng nhưng khác cột: một cột là robot tự đánh mạnh bao nhiêu, cột kia là nó cho nhân vật bao nhiêu.

Những gì cần thu thập cho robot

Chỉ sốVật phẩm sưu tầmBao nhiêu
Lực TC Nhân Vật do Robot chia sẻ 10% · 10% · 10%30%
Lực TC Nhân Vật chia sẻ cho Robot 10%10%
ST Robot 10% · 10%20%

Ngoài ra, thiên phú Trại cho 10% cho «ST Robot» và «Lực TC Nhân Vật do Robot chia sẻ».

6.Xe khắc chế một loại vũ khí cụ thể

Kháng = 1 − (chung + kháng riêng nếu vũ khí địch trùng loại) × Hệ số hạng

Phần trăm — ở hạng đỏ:

XeKhắc chếChống lại người khácChống lại mục tiêu của bạn
Bán Chiến Xa10%10%
Lâm SuySúng Trường Tấn Công10%25%
Lửa và BiểnSúng Săn10%25%
Người Tuần Tra GraffitiSúng Máy10%25%
Tử ẢnhSúng Bắn Tỉa10%25%
Lam QuáiMáy Phóng Tên Lửa10%25%
Cổ KiếmNỏ10%25%
Gai Lưu ĐàySúng Bắn Tỉa12.5%37.5%
Máy Cán Hủy DiệtSúng Máy12.5%37.5%
Cá Mập Xương NeonSúng Săn12.5%37.5%
Bá Tước DraculaNỏ12.5%37.5%
Dòng Thép Cuồn CuộnMáy Phóng Tên Lửa12.5%37.5%
Hiệp Sĩ Ngân ThươngSúng Trường Tấn Công12.5%37.5%
Tử ThầnSúng Bắn Tỉa12.5%37.5%
Huyết LưuSúng Máy12.5%37.5%
Pháo Đài Rừng RậmSúng Săn12.5%37.5%
Bóng Tối Vực SâuNỏ12.5%37.5%
Người Thu Nhặt Hoang ThổMáy Phóng Tên Lửa12.5%37.5%

Hạng nhân lên toàn bộ kháng: trắng 0,3 · xanh lục 0,4 · xanh lam 0,5 · tím 0,6 · tím+1 0,63 · +2 0,66 · +3 0,7 · cam 0,8 · +1 0,82 · +2 0,84 · +3 0,87 · +4 0,9 · đỏ 1,0. Các mức trung gian của tím và cam là hạng thật, không phải trang trí: cam+4 (0,9) cắt tốt gấp ba so với trắng.

«Tử Thần» đấu với bắn tỉa: hạng đỏ → cắt 37,5%; cũng xe đó ở hạng trắng → chỉ 11%. Hạng làm phòng thủ mạnh gấp ba.

7.Điều gì KHÔNG có tác dụng trong đấu trường?

Ở đây có hai trường hợp khác nhau, nên phân biệt. Thứ nhất: mỗi chỉ số có hệ số PVP riêng ghi trong cấu hình, chỉ số bị nhân ngầm với nó khi vào trận — với một số chỉ số hệ số đó bằng 0. Thứ hai: chỉ số không bị đặt lại, nhưng đơn giản là không ai đọc nó. Và một lưu ý quan trọng cho cả bảng: «không hoạt động» ở đây nghĩa là «không tham gia vào việc tính trận đấu». Các chỉ số này vẫn nâng CP, mà sát thương của nhân vật lại tính từ CP — nên không thể bỏ chúng khỏi build đấu trường.

Chỉ sốTại sao nó không hoạt động?
Tốc Độ BắnHệ số PVP bằng 0. Hơn nữa, đấu trường có đọc chỉ số này — đọc xong thì luôn ra 0
TĐ NạpHệ số PVP 0, hoàn toàn giống nhau
Xác Suất Chí Mạng · ST Chí Mạng · ST Chí TửHệ số PVP bằng 0, và bản thân hệ số chí mạng bị vô hiệu. Sát thương chí mạng và sát thương chí tử chết hẳn — chúng cũng có trọng số 0 trong CP
Xác Suất Né ĐònHệ số PVP 0
ST gây ra cho quái Tinh Anh · ST gây ra cho TrùmHệ số PVP bằng 0, trong tính toán đấu trường không có nhánh nào cho nó
Sát thương theo loại vũ khí (tất cả sáu)Hệ số PVP 0
Tấn công từ phụ kiện vũ khíHệ số PVP bằng 0. Phần trăm «ST Đấu Trường / Giảm ST Đấu Trường» từ phụ kiện thì vẫn chạy — đó là các chỉ số khác
Máu Khởi ĐầuKhông bị đặt lại, nhưng không được đọc: HP lấy từ Chiến Xa, engine không hề hỏi tới máu anh hùng

Bị cắt, nhưng còn sống:

  • Nguyên tố (cả tám) — chạy ở mức 20%.

Một chuyện lạ riêng: trong game có hai chỉ số khác nhau cùng tên «ST Đấu Trường». Một cái là hàng thật — cái mà phụ kiện vũ khí và vật phẩm sưu tầm cày lên. Cái thứ hai đã chết: hệ số PVP bằng 0 và không chỗ nào trong mã gọi tới nó. Chỉ là một chỉ số bị bỏ quên trùng tên.

Và chuyện lạ ngược lại: «ST Robot» được quy định hệ số 0,1, nhưng họ quên đọc nó — chỉ số chạy 100%. Cấu hình nói một đằng, mã làm một nẻo.

Epiphany (thưởng khoảng cách) - đã xóa.

8.Ai tính trận đấu

Máy chủ. Toàn bộ. Khi bạn bấm «đánh», máy chủ đã tính xong trận đấu từ đầu tới cuối và gửi về một protocol dựng sẵn: ảnh chụp HP của cả hai bên theo từng giây và người thắng đã được chỉ định. Điện thoại của bạn nhận protocol này TRƯỚC khi bạn thấy phát bắn đầu tiên.

Những gì diễn ra trên màn hình chỉ là bản ghi đang phát lại. Trong client có công thức tính cục bộ, nhưng khi báo cáo của máy chủ về thì nó bị vứt đi: HP được thay bằng số trong ảnh chụp, máy chủ chỉ định người thắng. Độ chính xác, phản xạ hay thời điểm bấm đều không ảnh hưởng gì — kết cục đã định trước khi hoạt ảnh bắt đầu.

Từ đó suy ra: trong trận không có yếu tố may rủi. Hai trận với cùng đối thủ và cùng chỉ số cho kết quả giống hệt nhau, tới từng chữ số HP ở mỗi giây. Điều này cũng giải thích vì sao chí mạng không có độ dao động: trong trận không hề có lượt quay số nào, kết cục là hàm thuần túy của chỉ số hai bên.

Quan trọng: việc thay đổi trang bị chỉ có hiệu lực sau khi vào lại trò chơi

Máy chủ giữ ảnh chụp riêng các chỉ số đấu trường của bạn và tính trận theo nó, chứ không theo những gì bảng chỉ số đang hiện. Nếu bạn tháo hay đeo một món rồi vào đánh ngay, trận sẽ được tính theo chỉ số cũ, sát thương không đổi chút nào. Ảnh chụp được ghi lại sau khi trận đã diễn ra và có hiệu lực từ lần vào game kế tiếp, tức là nó trễ một nhịp «đánh → vào lại». Quy tắc bỏ túi: đổi build xong thì đánh một trận, vào lại game, sau đó chỉ số mới mới thực sự có tác dụng.