PTT推薦

Re: [問卦] 如果不是超導體,但是浮起來有搞頭嗎?

看板Gossiping標題Re: [問卦] 如果不是超導體,但是浮起來有搞頭嗎?作者
Xaymaca
(夏)
時間推噓 3 推:3 噓:0 →:3

唉唷

我跟你說啦

懶的講而已

https://youtu.be/U5gK12oxCUU?t=163

有沒有用?


不能講太多了


講太多會變這樣 我勸你現在離開 不要按下一頁













你影片都沒看完 就急著按下一頁....



















https://youtu.be/U5gK12oxCUU?t=163



先看這一段影片


在考慮要不要按下一頁 我有勸你不要





























首先要尋找的事情之一就是找出導致美國大兵凱爾 的 無影摔 bug原因
從最早、bug最多的版本 SF2UA(日期 910206)開始

快打旋風2中的“動作”使用三個變量進行編碼
一個表示該動作是否為站立/蹲伏/跳躍攻擊 另一個表示拳擊/踢擊以及一個 ID
另一個變量跟踪他們是否站立、行走、攻擊或執行強力動作
這每一幀都用在有限狀態機來處理動畫

這些錯誤是由於"在選擇普通攻擊後仍然檢查移動輸入"(因為允許玩家在執行其他移動
的同時進行前進的動作) 以及按鈕解碼器直接設置拳頭/踢腿變量產生的副作用
也沒有考慮想到有些玩家操作習慣的背景
(類似核四工程師自以為把所有可能會出問題的狀況都想好了 哈哈 結果想得太簡單)
因為你懶得再想更多了




首先,我們來看看“立場”錯誤
本來你想要得到的動作是這樣:
距離對手足夠近來倒踢(<70 像素內)
向前衝鋒、集氣然後開始用腳踢 然後在踢腳完成之前
還發一個阿力固

你必須在集氣後有用力按下 並且程式應該允許在同一窗口內使用

結果呢其實這時美國大兵凱爾 執行了倒踢但他沒有回到站立位置
而是卡在了倒踢動畫的最後一禎圖
照理他可能會被擊中(看對手角色) 但如果是電腦對手通常就不會這樣做
因為他們認為你仍在做某種似乎永遠持續的踢擊
所以像遇到爪子(維加)就會感到非常困惑並反復進行滑行攻擊


倒踢是站立踢腿動作

發生的情況是選擇站立踢 然後叫動畫正常開始
阿力固 和 腳刀 在整個攻擊過程中保持運行
這是允許玩家在執行移動的同時向後或向下衝刺所必需的
在此階段 因為我們已經蓄積了足夠長的時間
並且現在正在向前推進 所以 阿力固 狀態機現在正在檢查按鈕按下的情況
只要當它檢測到按鈕按下時 它就會調用按鈕解碼器

按鈕解碼器(可以在 SF2UA ROM 中的地址 0x3296 處找到它)
基本上是一系列“if”語句

用於測試每個按鈕的位元 並設置相應的 出拳/踢腳 和 力道
在第一次if有匹配時就會退出
最後一個條件 就重腿 就沒有經過進一步檢測 就讓它默認返回
即沒有檢測到其他按鈕
只有當已知按鈕有按下時,調用子例程才有意義。

出拳在踢之前進行測試
當你按下出拳按鈕時 玩家的出拳/踢腳變量將被設置為「出拳」
因此玩家的狀態現在是「站立 出拳動作#6」
這實際上代表了 凱爾的"摔"之一 動畫不會改變 但"摔"的狀態機會運行
這是在 0x2f922

踢的狀態機只是等待動畫完成 然後將玩家的狀態變成正常的站立姿勢
可是"摔"的程序則不同
它會在動畫中尋找一個特殊的標誌 表明被摔的角色現在應該被釋放
但這永遠不會出現 所以 凱爾 就可以不斷地做出

「無影摔」


↙集氣 ---> 重腳+重拳 (重腳要比重拳快一點按)









好了 如果你有看完


你知道的太多了



--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 206.116.133.147 (加拿大)
PTT 網址
※ 編輯: Xaymaca (206.116.133.147 加拿大), 07/31/2023 06:27:34

wasiayang 07/31 06:28我看了什麼

pc0805 07/31 06:32中文太多,可以寫成程式碼嗎==

yeardoss 07/31 07:05凡事都有可能 無影摔也是無意間發現的

AllFake 07/31 07:37好像頗專業,如果狀態機能畫出來就給你

AllFake 07/31 07:38100分

https://i.imgur.com/aRHKyK6.jpg

圖 如果不是超導體,但是浮起來有搞頭嗎?
※ 編輯: Xaymaca (206.116.133.147 加拿大), 07/31/2023 07:47:57

TsmcEE 07/31 08:23coverage 不足,測試出來坦啊