ゲームのメニューのレコードには下記の項目がある。
(1) メニュー ID (string)。他のファイルから このレコードを特定するために使われる。
ID の手前に接頭子 menu_ が自動的に付加される。
(2) フラグ群 (int)。指定可能なフラグは header_game_menus.py を参照のこと。
menu_text_color() を論理和することで文字の色を指定できる。
(3) テキスト (string)。
(4) メッシュ名 (string)。現在は不使用。文字列 "none" を指定すること。
(5) 命令ブロック (list)。一連の命令。詳しくは header_operations.py を参照のこと。
このメニューが有効化された時に実行される。
(6) 選択肢群 (List)。
各選択肢のレコードはタプルで、中に次のような項目がある。
(6.1) 選択肢 ID (string)。他のファイルから特定するために使われる。
ID の手前に接頭子 mno_ が自動的に付加される。
(6.2) 条件ブロック (list)。一連の命令。詳しくは header_operations.py を参照のこと。
選択肢ごとに条件の成否が判定され、その選択肢がプレイヤーに見えるように表示されるかどうかが決まる。
(6.3) 選択肢テキスト (string)。
(6.4) 結果ブロック (list)。一連の命令。詳しくは header_operations.py を参照のこと。
プレイヤーが この選択肢を選んだ時に実行される。
注: メニューのリストのうち、先頭のレコードは、最初に人物を作成するためのもの。
一般的な構造: (メニュー ID, フラグ群, テキスト, "none", [<命令群>], [<選択肢群>]),
module_game_menus.py 未記入。
訳注:
メニューを扱う手始めとして、「モジュール開発システムを導入しよう」のページに注記した「Hello, world! を表示する例」が参考になるかも。
Menu Flags
フラグ群には次のようなものを指定できる。
| mnf_auto_enter | プレイヤーが最初の選択肢を選ぶと、自動的に街(など?)に入いるようにする。 |
| mnf_disable_all_keys | P、I、C の各キーを抑止。 |
| mnf_enable_hot_keys | P、I、C の各キーを許可。 |
| mnf_join_battle | プレイヤーが戦闘に加わる時に、ゲーム・エンジンがこのメニューを考慮するようにする。 |
| mnf_scale_picture | メニューで表示する画像を、画面のアスペクト比に合うよう伸縮する。 |
その他の注意点
メニューの文字色。 Caba`drin, Modding Q&A
シーン内の「通路」とメニューの選択肢。 Somebody, Modding Q&A
メニューの条件ブロックと結果ブロックの間で実行できることは 2 つだけだろう。絵の表示する関する既存スクリプトと、メニュー選択後の背景リフレッシュ。絵のスクリプトだけでなく、module_tableau_materials も調べるといい。 cmpxchg8b, Modding Q&A
シーン内の「通路」はメニュー選択肢に関連付けることができる。街が良い例。だから、全ての選択肢を抑止、という設計も あり得る。 Somebody, Modding Q&A
ホット・キーの許可。 Somebody, Modding Q&A
[メモ]-[人物](訳によっては「キャラクタ」)で表示される人名一覧がアルファベット順になるのは、ハード・コーディングされている。「それとて所詮モジュール・システムだから何とか迂回できるだろう」というのは甘い。どうしても迂回したければ、WSE のような「エレガントでないもの」を使うしかなさそう。 The_dragon, Modding Q&A
メニューは、ハード・コーディングされた「表示」(presentations)。何でも自由にしたければ、「表示」を作って手動で可能。 kalarhan, Modding Q&A
メニューに関して、役に立ちそうだが恐らく古い情報。 Khalid ibn Walid (credit), 0.89x game_menus - index