少しずつゲームを作るスレ (975レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
912: ルナドンぽいの [sage] 2024/10/06(日) 00:13:07.73 ID:C9d7EWhn(1/3) AAS
DLL呼び出し側(Text Dungeon)のコード
画像リンク


メイン画面のロード時にText Dungeon.exeがある場所のDLLフォルダ内の.dllを読み込んで
名前がClass1だったらインスタンスを作成する、という雑な内容
まあ実験だから、動けばいいから……

>>911
911(1): ルナドンぽいの [sage] 2024/10/05(土) 23:59:16.18 ID:MO4LcY3V(2/2) AAS
結局のところMODとはDLL(プラグイン)のことで、MOD用APIとはゲーム内のクラスやメソッドに
アクセスするためのインターフェースやクラスのことだという結論に至った
勘違いしているかもしれないが、とりあえずその理解で前作(テキストRPG)のMOD対応らしきことができた
まあ言葉で上手く説明できないので実際に作ったものをしょうかい(←漢字にするとNGになる)

・作ったMOD
装備画面で持ち物にマウスカーソルを合わせるとその能力(火の耐性を与えるとか、体力+1だとか)をツールヒントで表示するMOD

MOD(DLL)の作成画面
画像リンク


このスレを日記帳にして4年近く、初のコード公開w、ざっくり概要だけ説明
Visual Studioの新規プロジェクト作成でWindowsフォームコントロールライブラリを選択して、
Text Dungeon.exeを参照に追加(通常ゲーム本体のexeを参照したりはしないみたいだが今回は特殊な例ということで)
そしてプロジェクトにクラスを追加(名前はデフォのままClass1としている)

Class1のコンストラクタでUserControl_Equipment.inst.labelTx1(〜13)のマウスオーバーイベントにViewSpTextを追加
UserControl_Equipment.inst.labelTx1って何だよと思うだろうが、これが装備画面の右側に出る持ち物を表示するためのラベルである
装備リストにマウスカーソルが重なったらViewSpTextを実行するという内容

ViewSpTextの中身は下の方に書いてあって、ラベルに関連付けられている装備(LabelTx.obje)の
特殊能力(Equipment.special)をツールヒント(toolTip1)に表示するという内容になっている
で作った.dllをDLLフォルダにぶち込んでText Dungeon.exeを起動
いざ装備画面の持ち物にマウスカーソルを合わせると……ツールヒントが表示された!
画像リンク


どうでもいいけど実際にマウスカーソルを動かしてツールヒントが表示されるところを動画にしようかと思ったら
ウィンドウズの標準録画機能だとツールヒント表示部分は録画されないんすね、初めて知った
913: ルナドンぽいの [sage] 2024/10/06(日) 00:26:45.24 ID:C9d7EWhn(2/3) AAS
上にも書いたが、普通はゲーム本体のexeを直接参照するのではなく、
MOD作成用にゲーム製作者側が用意したDLLを参照して、
そのDLL内のインターフェースやクラスを介してゲームのデータにアクセスする
(つまりこのDLLがMOD用APIにあたる)という手法をとるようだが、
Visual Studioで作ったexeはVisual Studioで参照出来てしまうようなので
そんならいっそゲーム本体のクラス仕様を(一部)公開してしまう方が
お互い手っ取り早いんじゃないかと思った次第

というか、今回MOD(プラグイン)を作ってみて初めて分かったけど
参照が出来た時点でプログラムの中身をかなり見れてしまうのはヤバいっすね
仕様を公開するまでもなく見れば内容は分かってしまうし、改造(クローン)とかやりたい放題のような……

コードの難読化とか逆コンパイル対策とかこれまで今一つピンとこなかったけど、初めて必要性を実感できた気がする
914: ルナドンぽいの [sage] 2024/10/06(日) 00:39:58.18 ID:C9d7EWhn(3/3) AAS
そんで今作っているゲーム(ルナドンぽいの)のMOD対応だけど
「必要性が生じたらまたそのとき考える」ことにしようかと
(結局後回しにする製作者の屑)

一応今回の検討でMOD対応の仕方は分かったので、後はゲームができてから
実際にユーザーから「こんなMODを作りたい」という要望があったら適宜対応できる気がしている
(ちなみにMOD用API(DLL)を作るやり方でのMOD作成も一応できている)
そんなユーザーは未来永劫出てこない気もするし、そもそもゲームが完成するか分からんのだけど(白目)

まあ製作中でも何か要望があったら言ってみて下さい
前向きに検討したいと思います(政治家的答弁)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s