커스텀 게임 내 모드 메뉴 API

저자:BoltTheMan마지막 업데이트:2023-04-29 01:39:14318.8K10KB

MONSTER HUNTER RISE 커스텀 게임 내 모드 메뉴 API-1-라고패스트 모드마스터
MONSTER HUNTER RISE 커스텀 게임 내 모드 메뉴 API-2-라고패스트 모드마스터
MONSTER HUNTER RISE 커스텀 게임 내 모드 메뉴 API-1-라고패스트 모드마스터
MONSTER HUNTER RISE 커스텀 게임 내 모드 메뉴 API-2-라고패스트 모드마스터

사전 종속성

모드 소개

REF 모드용 인게임 설정 메뉴를 그리기 위한, 사용자 친화적인 IMGUI 기반 API (MHRise)
와후!
확실히 까다로운 프로젝트였어
이 나쁜 녀석 안에는 흑마법이 가득하군. *슬쩍 때린다* GitHub 저장소*


어쨌든:


~이건 뭐 하는 거지?~
음, 그 자체로는 별거 없네.
하지만 모드 제작자의 손에서 설정 메뉴는 간단한 API를 통해 게임 내 옵션 메뉴에 직접 추가될 수 있습니다.
API 함수는 imgui와 매우 유사하지만, 몇 가지 주의사항이 있습니다*




~내가 뭘 해야 하지?~
다른 REFramework 모드처럼 설치하면 됩니다.
그걸 어떻게 하는지 모른다면, 이건 아마 네 첫 번째 도전이 아니어야 할 텐데.
옳은 위치에 있으면 옵션 메뉴에 자동으로 '모드' 카테고리가 추가됩니다.
그러면 지원되는 다른 REF 모드를 사용하기만 해도, 설정이 거기에 표시됩니다.




모드 제작자분들께:
파일에서 예시 모드 구현체를 다운로드하면 쉽게 시작할 수 있을 거예요.
자세한 API 정보는 다음에서 확인할 수 있습니다. GitHub 페이지.
약속하는데, 내장 imgui 기능만큼 사용하기 쉬울 거예요. 커뮤니티에서 메뉴를 추가하는 모습을 보는 것도 정말 멋질 거고요!
패키지를 불러온 후, imgui처럼 API를 사용하면 됩니다.
사용자가 해당 패키지를 설치했는지 확인할 수 있으며, 선택적으로 메뉴를 지원하여 강제로 설치하도록 하지 않아도 됩니다. 하지만 여전히 이 파일을 필수 항목으로 표시할 수 있다면 더 좋을 것입니다.

이 모드를 다른 모드와 함께 재배포하지 말아 주시길 부탁드립니다. 편리하실 수도 있겠지만 말이죠.
열심히 작업했지만, 여기서도 업데이트가 필요할 수 있어요. 여러 모드에서 충돌하는 버전이 생기면 곤란하잖아요.
이 메뉴를 사용한 모드를 출시하시면 알려주세요. 지원 모드 목록에 추가하도록 하겠습니다!


※ 제한 사항*
안타깝게도, 이 기능은 게임 자체 메뉴를 사용하기 때문에 게임이 기본적으로 지원하는 기능에만 제한됩니다.
고급 그리기 기능은 당연히 없지.
단지 미믹 imgui는 실제로 "draw" 함수들이 게임 UI에서 데이터를 가져오는 콜백 역할을 해. 동적 메뉴를 만들 수는 있지만, 너무 과한 건 피하는 게 좋아.
모든 모드에 적합하지는 않겠지만, 간단한 설정만 필요하시다면 꼭 고려해 주세요!




~크레딧~
스트래커 덕분에 (멋진 모드를 만들었을 뿐만 아니라 [허락 없이도]) 제가 그분의 모드 중 하나를 참고하여 코루틴과 시스템 메시지 프롬프트를 구현할 수 있었습니다. 게다가 실제로 REF에 코루틴을 추가해 주셨습니다.
그리고 물론, REFramework에서 모든 작업을 해주고 조언까지 아끼지 않은 praydog에게 감사드립니다.

기여도:
raffRun - 자동 줄바꿈 툴팁
Stracker - Lua 내 포인터에서 GUID 데이터를 읽는 방법 찾기
갈고리 거수 - 스트래커의 연구 결과 적용됨



디스코드: 볼트#6265
GitHub: 抱歉,您提供的链接是一个GitHub仓库地址,而非可直接翻译的游戏文本内容。请直接粘贴需要翻译的游戏文本(如UI文本、对话、任务描述等),我将为您翻译成韩语,并确保符合游戏本地化规范。



이 메뉴를 사용 중인 모드:




**지껄임 & 재미있는 사실들**
이 프로젝트 때문에 정신이 빠져서, 멍청한 소리만 잔뜩 하게 됐네.
이건 최근 기억에 남은 가장 어려운 도전 중 하나였어. 48시간 게임 잼으로 리듬 게임을 만드는 거 빼고 말이지?
이 게임은 진짜 이걸 못 하게 막으려고 해요. 완벽하게 하지 않으면 기회만 되면 계속 튕길 거예요.
배열 추가_ref를 잊었나? 크래시. 문자열? 크래시. 옵션 데이터? 크래시.
게임 UI 함수 내에서 아무데서나 업데이트 함수를 호출하면? 충돌 발생.
필요 없는 옵션에 데이터를 입력하지 않았나? 충돌 발생.
말이 옆으로 샜는데, 게임을 거의 백 번은 팅긴 것 같아.
하지만 이런 점들이 오히려 이 프로젝트를 특히나 몰입감 있는 도전으로 만들어준 것 같아요. 오랜만에 이렇게 푹 빠져서 작업한 적이 없네요. 항상 손에 잡힐 듯 잘 돌아갈 것 같다가도, 또 큰 문제를 하나씩 던져주더라고요.



일부 흥미로운 기록들:
카테고리 목록의 모드 탭은 추가 유형을 추가할 방법이 없어 저장 데이터 탭을 복사해 만든 겁니다. 그래서 스크롤 목록 인덱스에 따라 데이터를 바꿔치기하는 방식이에요.
한동안 고급 그래픽 설정 메뉴를 하위 메뉴 구현 수단으로 활용하고 있었는데, 거의 성공할 뻔했죠. 근데 알고 보니 그 메뉴가 어떤 이유에서인지 목록에 5개 항목만 들어가도록 하드코딩되어 있더라고요... 당연히 5 이외의 값으로 설정하면 게임이 크래시 나고요.
게다가 알 수 없는 이유로 그 메뉴에서는 슬라이더가 마우스 입력을 받지 않아서, 결국 옵션을 버튼처럼 바꾸고 데이터를 교체한 다음 다시 그려서 메뉴 자체를 변경하지 않고도 서브메뉴가 전환되도록 하는 적절한 조합을 찾아냈습니다.
그리고 이 모든 걸 위한 논리는 필연적으로 복잡해졌다..

REF의 제한으로 인해, GUID 포인터를 역참조하여 데이터를 추출하기 위한 작은 C++ 플러그인을 함께 작성했습니다. 이것이 없으면 게임의 지역화 문자열을 제대로 재정의할 방법이 없어 전체가 작동하지 않을 것입니다.
별로 나쁘진 않았는데, C++ 프로젝트에 lua랑 sol2를 설정하는 게 정말 끔찍했어.. 가이드가 거의 도움이 안 됐거든.
마찬가지로, 어떤 이유에서인지 REF 내 객체에 GUID 값을 설정할 수 없었지만, 올바른 오프셋에 write_dword를 사용해 데이터를 직접 작성함으로써 이를 우회할 수 있었습니다.

결국에는 결과물이 정말 멋진 것 같아.
누군가가 이걸 사용하는지 거의 신경 쓰지 않아요. 그냥 작동하는 모습만 봐도 충분히 보람차니까요. 하지만 사람들이 좋아할 거라고 생각해요.

기능 제안은 자유롭게 해주세요. 하지만 이걸 다 끝내고 나면 저는 분명히 게을러질 거예요.
지금으로서는 이쯤인 것 같네요. 재미있게 즐겨주세요!
본 도구는 타사 [bufftool]에서 제공합니다.주의 아이콘

지금 모드를 다운로드하세요

LagoFast를 설치하고 MONSTER HUNTER RISE을(를) 시작한 후 좋아하는 모드로 플레이해 보세요.