自訂遊戲內模組選單 API

作者:BoltTheMan最後更新:2023-04-29 01:39:14318.8K10KB

MONSTER HUNTER RISE 自訂遊戲內模組選單 API-1-lagofast 模組大師
MONSTER HUNTER RISE 自訂遊戲內模組選單 API-2-lagofast 模組大師
MONSTER HUNTER RISE 自訂遊戲內模組選單 API-1-lagofast 模組大師
MONSTER HUNTER RISE 自訂遊戲內模組選單 API-2-lagofast 模組大師

預依賴項

模組介紹

【REF模組用】專為《魔物獵人 崛起》設計,易於使用的IMGUI風格遊戲內設定選單繪製API
哇呼——
這個專案確實不好處理
這小子身上黑魔法可深了。 *掌擊 GitHub 儲存庫*


總之:


~這是做什麼的?~
嗯,單獨這樣看沒什麼特別的。
但在模組製作者手中,設定選單可透過簡易的API直接新增至遊戲內的選項選單中。
API 函式與 imgui 極為相似,但有以下幾項注意事項*




~我該怎麼辦?~
像其他REFramework模組一樣安裝即可。
如果你不知道該怎麼做,這大概不是你第一次上場了。
一旦位於正確位置,系統應自動在選項選單中新增「模組」類別。
接著只要使用其他支援的 REF 模組,設定便會在那邊顯示出來。




**给模组作者:**
從檔案中下載範例模組實作,就能讓你輕鬆上手。
如需更多 API 詳細資訊,可參閱 GitHub 頁面.
我保證這用起來幾乎跟內建的 imgui 函式一樣簡單,而且看到社群加入選單肯定超酷的!
只需引用套件並使用像 imgui 那樣的 API 即可。
你可以選擇檢查玩家是否已安裝該套件,並可選擇支援選單功能,這樣就不必強迫玩家安裝。不過,若能將此標記為必要檔案,會是更好的作法。

請您不要將此模組與您的模組一併重新發布,即便那樣做會很方便。
我對這個下了不少功夫,但可能還需要更新一些地方,而且你應該不希望不同模組之間出現版本衝突吧。
如果你有使用此選單發佈模組,請務必讓我知道,這樣我就能將其加入支援的模組清單中!


限制*
不幸的是,由於這使用了遊戲自帶的選單,我們所能做的僅限於遊戲本身的功能。
顯然沒有進階繪圖功能。
只此 擬態者 一個 imgui,實際上「繪製」函數是回呼,用來從遊戲 UI 抓取資料。你可以製作動態選單,但盡量別搞得太誇張。
這未必適合所有模組,但如果你只需要一些簡單的設定,請考慮看看吧!




~製作人員名單~
感謝 Stracker 不僅(製作酷炫的模組,雖然[未經許可])讓我能參考他們的模組來實作協程與系統訊息提示,而且還實際將協程加入了 REF。
當然,也要感謝 praydog 在 REFramework 上的所有付出,以及給予的相關指導。

貢獻:
raffRun - 自動換行提示
Stracker - 在 Lua 中透過指標讀取 GUID 資料之方法
HookedBehemoth - 已套用Stracker的研究成果



Discord:Bolt#6265
GitHub: GitHub https://github.com/BoltManGuy/MHR-InGame-ModMenu-API



使用此選單的模組:




隨筆與趣味小知識:
這個案子把我搞得很慘,所以我有一堆廢話想說。
這是我近期印象中最困難的挑戰之一,除了要在48小時的遊戲創作活動中做出一款節奏遊戲以外。
遊戲真的不希望你這麼做,只要你沒完美執行,它就會逮到機會就崩潰。
忘了加那個陣列的引用?崩潰。字串?崩潰。選項數據?崩潰。
從遊戲的 UI 函式中任意位置呼叫更新函式?會崩潰。
沒有填寫不需要資料的選項?遊戲崩潰。
說來話長,我大概把遊戲弄當機將近上百次了。
但我認為,這一切讓它成為了一個格外引人入勝的挑戰,我已經很久沒有這麼投入於一個專案了。它總是感覺觸手可及,卻又總是有某個重大問題需要克服。



一些有趣的備註:
分類列表中的模組頁籤實際上是存檔資料頁籤的複製,因為無法新增其他類型,所以我會根據滾動列表的索引來切換顯示的資料。
有好一段時間,我一直借用進階圖形設定選單來讓子選單能正常運作,而且幾乎就要成功了——直到我發現他們不知為何硬是把那個選單寫死,列表中只能有五個項目……而且如果你設成其他數字,遊戲當然就會直接崩潰。
此外,不知為何該選單中的滑桿無法接收滑鼠輸入,所以我最終找到了一組正確的呼叫組合,將選項轉變為按鈕形式,並替換資料與重新繪製,使它能切換子選單,而無需實際更換整個選單。
而且這一切的邏輯無可避免地變得相當複雜…

由於 REF 的限制,我實際上為此寫了一個小型 C++ 外掛程式,其唯一用途是取得 GUID 的指標並進行解參考,以便從中取出資料。若缺少這個步驟,整個功能便無法運作,因為就無法正確覆寫遊戲中的在地化字串。
還算可以,但用 Lua 和 sol2 建置 C++ 專案真是折騰人……那些教學文件幾乎幫不上忙。
同樣地,由於某些原因,我無法為 REF 中的物件設定 GUID 值,但透過在正確的偏移量處直接使用 write_dword 來寫入資料,便成功繞過了這個問題。

總的來說,我覺得這個結果真的很棒。
我幾乎不太在意有沒有人會使用它,光是看到它能運作就已經是足夠的回報了,不過我認為大家還是會喜歡這個的。

隨你提建議吧,不過忙完這些我肯定會想偷懶。
大概就這樣了,希望你玩得開心!
本工具由三方[bufftool]提供注意圖標

立即下载模组

安裝 LagoFast,啟動 MONSTER HUNTER RISE 並暢玩你喜愛的模組。