Q Q 堂 大 師 2


作者:自風yjliuw (Bilibili UID 90927121)

半身閃身粘死高倍原理大統一:你是否總死得莫名其妙?

其實我也是,但本文將說明大部分偶然中的必然。

半身是什麼?

人物的一種特殊站位,在這個位置可以不被此格單格糖漿炸到。

閃身是什麼?

人物從威力範圍外進入威力範圍內的操作。可能死,也可能不死,與 fps 有關,也與是競技還是探險有關。

粘死是什麼?

閃身而死。

高倍是什麼?

探險中不同糖漿疊加得到的高傷害效果。

這些都是死亡或傷害的判定規則產生的概念,因此這就是一個問題,被炸到的充分必要條件是什麼。

QQ堂官閘道器於被炸到而死亡的說明:

“如果玩家被爆炸的QQ糖漿的黏液碰到,即被QQ糖漿包圍成一團果凍給困住,人物不能移動。如果此時我方隊友碰觸被困角色,果凍會解除,被困角色恢復自由,繼續遊戲;如果被困角色被敵方碰觸或5秒內沒有我方隊員營救,則果凍爆炸,被困的人物死亡;”

From

“糖泡會在5秒後炸出糖漿。角色如果碰到糖漿就會被困住,並在5秒後窒息死亡。此時如果同伴從身邊走過即可被營救出來,如果對方走過則會立即死亡哦~”

From

(注:官網說明有誤,炸出糖漿的時間實際是 3 秒,果凍持續時間實際為 6 秒)

也就是說,人物“碰到”糖漿就會變成果凍。

視覺上,糖漿是從爆炸中心沿上下左右四個方向逐漸伸展的。但資料上,糖漿是在爆炸那一幀瞬間填滿威力範圍的。此幀人物若在範圍內,則變成果凍。所以如果看慢鏡頭,人物站在威力範圍內,並離爆炸中心有些距離時,我們能看到人物在“碰到”糖漿之前就先變成了果凍。

接著,糖漿會持續存在一段時間,0.5s. 此時間內人物進入威力範圍,則為“碰到”糖漿,從而變成果凍。

可以看出,這是兩種不同的情形:“在威力”和“進威力”。

“在威力”使用的是糖泡爆炸那一幀的人物座標:人物所在格子處有糖漿,則人物果凍。

“進威力”呢?如何判斷人物剛從別的格子到新的格子?想象一張照片中,一個人在一個門前,怎麼判斷這個人有沒有出門或進門?看人面朝向,假如人面對門,則人準備通過門,所以還沒有通過門?顯然,這不合適。人完全可以進門之後轉身。我們無法只看一張照片就得知人的運動過程。現在假設有兩張照片,拍攝時間足夠近,使得人無法繞過這個門。兩張照片中人分別處於門的兩側,那麼我們能夠斷定,人通過了門,因為人不會瞬移。回到QQ堂,“進威力”用的也是這個邏輯。如果上一幀人物座標和當前人物座標分別屬於不同的格子,則表示人物移動到了新格子。因此,如果被炸了之後馬上用叉子復活,在當前格子內移動並不會“進威力”;而如果用叉子後過快地移動到新格子,如果新格子有糖漿,那麼人物“進威力”了,再次變成果凍。

有人可能會問,為什麼要分兩種情況?每一幀都檢查人物所在格是否有糖漿,“在威力”不就行了?假設按這個方法,那麼用叉子原地復活很容易就又果凍了,除非等 0.5s 讓糖漿消失再使用。然而這 0.5s 你就可能沒了。

好了,這兩種情況我懂了,那半身該怎麼解釋?按座標計算人物所在格子,和放糖泡會在的格子一致,為什麼不會被炸到?

在判斷“在威力”時,其實不是直接計算人物座標所在格子,而是由這個點,往四個對角方向移動一點,座標分量上是 3 (以一格邊長為 40),得到含原來的點共 5 個點。

例如,人物當前座標 (20, 40),則其他 4 個點為 (17, 37), (17, 43), (23, 37), (23, 43).

延伸閱讀  三國殺改良武將界曹叡

對這 5 個點分別計算所在格子,若有多於 3 個點所在格子有糖漿,則認為被炸到。

類似地,“進威力”也不只用一個點,否則半身也有可能算成進威力而果凍。“進威力”中的判斷同樣是 5 個點,只不過移動的量多了 1,座標分量 4.

現在我們能回答問題了:為什麼高 fps (幀速率) 或者慢(人物移動)速度能更容易閃身?

高 fps 意味著相鄰兩幀之間的時間間隔小,所以人物位移小;慢速度也一樣,速度慢導致相鄰兩幀人物位移小。如果進入新格子時多出格子邊界的位移小於 4,則在“進威力”判斷中, 5 個點中有 2 個點在原格子中,最多 3 個點所在格子有糖漿,不認為被炸到。

這裡提供一下人物移動速度表,3 對應吃慢慢的速度,5~8 對應海王子吃 0~3 個鞋子的速度。可簡單計算,60 幀即平均每幀 1 / 60 秒,滿速海王子一幀位移大概 (1 / 60) * 6.7 * 40 = 4.4667. 只要不是最中間的半身,以這個位移從安全格子“進威力”都不會認為被炸到 。另外, (1 / 30) * 3.5 * 40 = 4.6667,也只比 4 多一點點,所以 30 幀的情況下吃了慢慢也基本不用擔心“進威力”而死。

延伸閱讀  【黑暗之魂3】小辛PVP隨筆回憶錄,雜談

速度    格/s

0    0

1    1

2    1.8

3    3.5

4    4

5    4.5

6    5.1

7    5.8

8    6.7

9    8

10    13

fps 怎麼時高時低,為什麼開 yy 就能讓幀數變得很高,又為什麼有些高配電腦都穩不住幀數?

我不知道,誰知道麻煩告拆我。

延遲泡和延遲傷害是怎麼回事?和 fps 有關嗎?

在爆炸那一幀,程式做的事是,把新的糖漿放到“糖漿矩陣”中,並從當前人物座標及其他 4 個座標得到對應格子座標,在“糖漿矩陣”裡查詢這些格子是否有糖漿,而不考慮糖漿是否為剛炸出來的,多於 3 個點處有糖漿則果凍。這就是為什麼閃身的時候,如果正好有即使很遙遠甚至在視野外的糖泡接著爆炸,它也能讓你果凍。其實閃身到的這格子還有威力沒消失,而接著又有爆炸發生,程式從人物座標找威力,找到了,“在威力”認為你被炸到了。

直觀上,後爆炸的這個泡就被叫做延遲泡,它相當於讓先炸的泡的威力又重新算了一次。延遲泡不是網速上的延遲,而是指與先炸的泡有一點點時間差。多出來的傷害可以稱為延遲傷害,但這個名字不意味著傷害被延遲了,因為先炸的泡的傷害仍然有,只是傷害會算兩次。如果有更多的泡在很短的時間內接連爆炸,還可能算更多次。

值得注意的是,糖漿在畫面中存在的時間小於 0.5s ,所以有時候雖然看不到糖漿了但依然能被後炸的泡炸到。

由於爆炸時的“在威力”只考慮一幀的座標,所以延遲泡和延遲傷害與 fps 關係不大。

延遲泡時間範圍?

即糖漿持續存在時間, 0.5s(不考慮網路等因素產生的波動).

在這段時間內有延遲傷害,否則沒有。

幀數越高越不容易粘死,那麼假如幀數沒有上限,閃身會有極限嗎?探險為什麼能隨意閃身?

假如閃身後移動到馬上下一個沒有糖漿的格子,那麼不會被炸到。假如是閃身後向有糖漿的格子移動,則在進新格子時,會呼叫“進威力”,由於原格子就有糖漿,“進威力”中計算的 5 個點全在有糖漿的格子中,被炸到。也就是說這種情況下最多走到格子邊緣半身位,閃身極限距離 1.5 格。

延伸閱讀  活動EDG晉級決賽各賽區炸鍋:EDG發推淚目十一硬剛黑粉,Bdd承認差距Gen宣佈重組

探險用的是不同邏輯,可以認為沒有“進威力”的判斷。

為什麼半身閃身容易死?

因為人物所處格子已是有糖漿的,“進威力”中的 5 個點已有 3 個點被炸到,只要是在 0.5s 內這一波威力同方向移動,這 3 個點總是一直被炸,快速進到另一方向的威力,就有了第 4 個點被炸到,於是死了。

另一種情況是,半身會比非半身更快進入新格子,所以更容易在這 0.5s 超過閃身極限距離。

閃身是 bug 嗎?

是。從“進威力”的邏輯判斷來看,程式碼只是給撞上糖漿加了點容錯,並不是希望能撞上糖漿而不果凍。

順帶提一句,現在的穿泡不是 bug,穿牆是。具體理由可從我上一篇專欄裡找到答案的蹤跡。

“傳說絕不是傳說!穿泡技能再現泰坦歸來版本!更讓人驚喜的是,新版本中的穿泡絕技在時間掌握上要求更加精密,在技術熟練上也更加苛刻。你可以從在戰鬥中領悟,也可以在冥想時頓悟,當你帥帥的身軀從糖泡上凌空而過,那麼恭喜,你成功了!”

From

Scroll to Top