炮陣快速入門——工具篇
【炮陣工具大禮包】
百度網(wǎng)盤鏈接: https://pan.baidu.com/s/1AKp4ZUf0Rl7ry1MaiMjnog?pwd=tg1w
內(nèi)容一覽:

常用軟件文件夾內(nèi)的工具應當都是有公開下載鏈接的,如果有作者不希望以此方式傳播的話可以私聊我。
以下為簡單的使用說明書。
【常用軟件】

PVZ內(nèi)存記錄 —— 可以讀各種內(nèi)存,連續(xù)讀取時推薦配合TSV逐幀運行游戲。存在小概率跳過某些幀的小bug,不影響正常使用。
隨機數(shù)修改器 —— 又名RND,神器。內(nèi)含使用說明,關于各隨機數(shù)的范圍參見?https://tieba.baidu.com/p/6620690189、https://tieba.baidu.com/p/7290751385等。注意小噴和陽光是相反的,即小噴橫移其實是陽光橫移,縱移同理。對于非勻速前進的僵尸(巨人扶梯等),隨機數(shù)鎖出的極值不一定是最慢/最快的,可能有若干px的偏差。
ShowMe —— 實時顯示內(nèi)存數(shù)據(jù)。壓縮包內(nèi)的不是最新版。
ShowPvZIndex —— 棧位顯示器。棧位是什么?
終極植物大戰(zhàn)僵尸修改器(WPF) —— 其實功能有很多,做炮陣一般用來修改內(nèi)存,比如僵尸坐標。
interception_calculator(攔截計算器) —— 神器*2。打開程序后輸入helpfull有詳細說明,常用功能有輸入波長&用冰時機求巨人坐標范圍,求全傷巨人或不傷巨人的炸點,以及給定炸點求攔截允差等等。還可以計算核武攔截/尾炸、冰殺時機及炮損、巨人精確坐標計算(可含多段相位)等等。非常建議整明白。
常用指令:wave, hit, nohit, delay, delay(), pos(), walk()
語法基于python,helpfull內(nèi)有使用例。
TSV(高級暫停) —— 手測一些場景時會用到,達成cs精度級操作。
冰透支計算器 —— 窩葉好幾年前的作品,里面有說明,不過我其實沒弄明白過2333
【補充】AvZ平均分配僵尸行數(shù)插件——下載地址&使用說明戳我,用于優(yōu)化視頻效果并簡化收尾
【分離】

原作者elovi。iced_X代表于Xcs用冰,所以iced_0就是不用冰,iced_1就是完美預判冰。此格式下同。
內(nèi)置了幾乎所有僵尸(在對應用冰條件下的)精確時空數(shù)據(jù),并根據(jù)此分別計算分離三行與兩行的分離時機。那張分離全收表比較特殊,是用來計算全收巨人與某種僵尸的最大波長。
里面有多張數(shù)據(jù)表,其中【距離】就是各個僵尸的判定距離。跳跳是按照理論上最難收的個體位置進行計算的,存在炮的情況下不一定與實際相符。掌握表的運行邏輯后,可以自行替換僵尸數(shù)據(jù)部分(甚至距離部分)。
【復合數(shù)據(jù)】

這部分其實都是我用rtvz測的……不過零度似乎沒有公開發(fā)布過rtvz,所以我也就不越俎代庖了。
這些數(shù)據(jù)無法直接用簡單工具計算出來,可偏偏實戰(zhàn)里又用得較多,所以干脆就測出來了。例如446墊巨人+134鏟的意思,就是446放墊,134后鏟除,在之后的不同時刻最快&最慢巨人的坐標范圍。用處有很多,比如知道最快巨人坐標后,可以適當前移熱過渡炮炸點。
【腳本示范】

這個感覺其實都不用說明了……100%原創(chuàng)腳本,不過幾乎無注釋,有些注釋還是錯的,畢竟平常能用就懶得改了。不是每個腳本都能直接運行,因為里面涉及到一些我自己寫的頭文件。由于種種原因暫時不提供下載,主要是寫得太亂了…… 但刪掉或替換這些語句后肯定是可以正常運行的。
【時空數(shù)據(jù)】

俗稱查表,excel多開噩夢。大部分作者仍為elovi。用這些表你就可以知道在某用冰時機下任意時刻某僵尸的最快/最慢可能坐標。其實攔截計算器就是復合了巨人這一部分的功能。
Warning:這些數(shù)據(jù)都是鎖隨機數(shù)極值得出的,直接在空場地PE測的所以海豚和潛水的數(shù)據(jù)都是針對水路無植物。由于https://tieba.baidu.com/p/7290751385里提及的原因,隨機數(shù)得到的極值不一定絕對準確,可能有若干px偏差,但常規(guī)使用是沒有問題的。
Tip1:攔截計算器的巨人數(shù)據(jù)用的是另一套計算方法,是100%準確的。如果和此表出現(xiàn)出入,請相信攔截計算器(雖然也就差那么幾個px,至于嗎(
Tip2:游戲內(nèi)存里的坐標雖然是浮點,實際判定都是直接取整數(shù)部分的。
Tip3:部分表里冰車和礦工的列寬特別寬……嗯,這個其實是為了方便查閱弄的,平常查得實在太多(。選中最左邊一列(time列),然后ctrl+F,輸入要查詢的時機,就可以直接查到該時機所有僵尸的坐標。
【數(shù)據(jù)資料】

一些重要判定數(shù)據(jù)貼的備份。截止目前為止這些貼子在貼吧還應該都是存活的,不過以防萬一嘛。
注意時空貼是09年的上古老貼,雖然其精度之高涵蓋范圍之廣足以讓十幾年后的我們不斷臥槽,里面的數(shù)據(jù)不是100%準確的,比如土豆的爆炸范圍就不對。以及其使用的都是舊坐標系,換算成新判定坐標系需要右移、上移各20px,仍請注意。在沒有100%把握的情況下不要依賴于時空貼給出的數(shù)據(jù),因為你的解讀可能有誤(
不在寶前沒什么可說的,神。進入貼吧個人空間可以查看更多~
【速度計算器】

四個字形容就是真的流批。
首先這個東西跟攔截計算器一樣,是100%精確的,其使用的數(shù)據(jù)不是鎖隨機數(shù)極值得到的那么簡單。使用方法是將相位分段輸入,即可得到對應僵尸坐標。
嗯你問什么是相位?相位就是僵尸播放行走動畫的進度,可以理解為從0到1然后又到0的一個循環(huán)過程。但是!相位會被特定動作打斷,具體來說就是巨人舉錘,巨人投擲,和一般僵尸啃食等。受凍解凍不改變相位,只是改變變化速率。
比如我想知道精確ch4(11冰,1738波長)下紅眼最快什么時候砸前置炮。那么我就可以在第一行先輸入 11+(1738+1538-700-11)/2,這是紅眼投擲前行走的全部時長(折算為原速)。之后再試第二個數(shù),試到正好舉錘,加上投擲耗時、受凍耗時、砸扁耗時就可以了。更詳細的使用說明戳我
【其它文件】
0511_Endless數(shù)據(jù)整理_by Crescendo —— 非常實用的一個東西。有同名貼發(fā)在貼吧。絕大多數(shù)常用但沒法直接用以上工具算出來的數(shù)據(jù)都在這里有。
pvz常數(shù)_v2.2_修復 —— 修復后的零度大表,用于查詢各種時空數(shù)據(jù)。
Note1: 和舊版相比,主要修復了小丑啃食、礦工啃2炮等數(shù)據(jù)上的偏差。lcx站已更新新版。
Note2: 所有數(shù)據(jù)由鎖隨機數(shù)得到,故存在極小范圍誤差問題。
Note3: 由于歷史原因,制表時記錄的時間坐標有誤,故所有數(shù)據(jù)理論上都應-1,比如巨人全傷是225而非226。不過撐桿比較復雜,表里是359,也就是對應358,但因為隨機數(shù)的精度問題實際上還是359。遇事不決建議多留點容錯。
pvz常數(shù)v2.2 —— 零度大表數(shù)據(jù)版,基本上是前面時空數(shù)據(jù)表的另一個版本?內(nèi)容差別不大。仍然要注意時標差1的小問題。
復用計算器 —— 又一神。一般用逐波功能,輸入炮數(shù),可以精確排布軌道并得知哪些炮會在哪些波次恢復。提示:做夜間節(jié)奏時不建議濫用循環(huán)功能,因為許多循環(huán)不成立的節(jié)奏在逐波上其實是可以成立的,不要把自己繞進去。
判定距離 —— 一句話概括就是從僵尸坐標換算到炮坐標。炮有兩種坐標,一個是準星坐標,一個是爆炸中心坐標,除準星在屏幕邊界的極端情況外都是爆心 = 準星-7。這里的單位都是px。寫腳本時需換算成列數(shù),直接除以80即可。
比如判定距離里說,本行巨人的炮左距是132。那么要傷坐標為800的巨人,最左爆心坐標就是 800-132。再換算成準星坐標就是+7, = 675,再/80 = 8.4375列。“炮左距”的意思就是爆心在僵尸左側(cè),炮右距同理。
炮彈僵尸計算 —— 給定灰燼(炮or核武)的爆炸中心坐標與爆炸半徑,計算能傷到的各類僵尸的坐標范圍。如時空貼所述,炮半徑為115,核武半徑為250,炮和核武的爆炸中心y坐標是一樣的,右邊有表格供參考。炮的x坐標如上所述;核武的x坐標是核武所在列*80。櫻桃在這里毫無存在感,因為X列櫻桃等同于爆心在80*X的炮。
時間計算器v2.0 —— 計算循環(huán)節(jié)奏冰透支情況,比窩葉計算器稍微直觀一點。
炸率(不完全) —— 一些關于小丑炸率的數(shù)據(jù)。樣本量和測試方法里面都有,這個炸率是針對極限出怪下(每波5梯5丑)隨機分布得出的單波炸率,還沒做完,敬請期待《炸率概述》有朝一日的發(fā)布。

總結(jié):
專欄真是個好東西,在貼吧發(fā)這些個鏈接又不知道要被吞到哪里去(
本文雖長,但遠遠不足以算得上是一份完整的使用指南,只是快餐而已。這些工具幾乎每個都是必要的,如果有做炮陣經(jīng)驗者應當能切實體會到。即使是現(xiàn)在一竅不通的新手,若能熟練掌握每個工具的用法,也無疑可以進化為炮陣好手。
“這么多東西好麻煩qwq”——你說得對,但也不能一味怪開發(fā)者,其實許多工具已經(jīng)有在整合了,比如那個攔截計算器顯然可以計算很多跟攔截無關的東西。說到底炮陣里的數(shù)據(jù)元素的確多,精確炮陣非一朝一夕之功,這是【高精度鍵控】這個操作方式必然帶來的特性。
那么以后會有整合了以上所有功能的多合一含gui軟件嗎?問得好,下一個問題
我發(fā)現(xiàn)我完全不懂某些游戲機制 ——?點我聽視頻教學?還有我。如果這些視頻里的內(nèi)容都無法平滑理解的話,可以考慮先去看下路的新手教程……
我是玩無炮的,純路過 —— 嗯,其實無炮簡史里就有云,極限超多炮和極限無炮在某種角度上是統(tǒng)一的。實際上無炮從來離不開數(shù)據(jù),具體例子略,但我個人覺得同一個游戲同一種僵尸,多知道一點總是有益無害的。
本文很好地總結(jié)了漸強平時說“做個陣要開十幾個窗口”到底開了哪些窗口

BONUS:實例一枚——求如何不讓后置炮被啃
無腦答案:炸78列交界……額,2009年某貼子里說的(
正確答案:首先我們要知道,坐標如何的小鬼剛好會啃后置炮。可以用【數(shù)據(jù)資料→不在寶前→部分判定范圍的計算】里給的小鬼攻擊域,結(jié)合【數(shù)據(jù)資料→時空貼】里給的玉米炮防御域,計算出極端小鬼坐標。當然,也可以用【W(wǎng)PF】等工具開游戲?qū)崪y。之后,使用【攔截計算器】的calcImp()原生函數(shù),輸出不同坐標的巨人投擲最右小鬼的坐標。比如x=700能投出的最右小鬼的坐標就是 print(calcImp(700, 50, 100, 400, 0))。50是y坐標(這里無所謂,隨便取了個PE場地的第一行);100是投擲隨機數(shù),0代表力氣最小100代表力氣最大(有夠形象的);400是延遲,這個函數(shù)默認小鬼落地后原地不動,所以這里設個大點的數(shù)就可以確保得到小鬼落地坐標;最后的0是棧位,在0和1里取值,在此處無所謂。之后反復試巨人坐標,可以得出x<687的巨人一定無法搞事。由此可以推斷出炸(687-126)/80=7.0125列的炮是真正安全的,完爆78列交界……
高端答案:隨便找個群@零度,完爆樓上
2023/8/24注:這一段的科學精神是好的。但是里面的數(shù)據(jù)和對隨機數(shù)的說明全是錯的。:)