| 私はドラゴンライダーΦズです。
↓イベントデータここから(かなり長いです)
↓核となるイベント発動
プロローグ: IntermissionCommand グランママのホテルに入る 削除 IntermissionCommand グランママのホテルを出る 削除 Global 駅名 駅名[1] = 遠近高校周辺 駅名[2] = 草原 駅名[3] = グランママのホテル前 ForEach 移動拠点 In 乗車物情報(場所名,マリンライナー,地上) 移動用変数[移動拠点] = ("$(乗車物情報(場所名,マリンライナー,地上))" & "[$(移動拠点)]") Next Talk システム 5394921635469174;$(移動用変数[1]) 87689215653/6 End Input パパス&ママス 適当に入れてください 移動用変数[1] #WorldIntermission マリンライナー GameClear
↑ 現在変数代入テスト中。実際のインクルードを使う場合、 WorldIntermissionコマンド行のコメント化(?)を解除してください。 そして、GameClearコマンドをExitコマンドに変更してください。
↓汎用配列に指定された配列に入力された情報を代入する処理とBGM演奏+判別
WorldIntermission: ForEach 移動拠点 In 乗車物情報(場所名,Args(1),地上) 移動用変数[移動拠点] = ("$(乗車物情報(場所名,Args(1),地上))" & "[$(移動拠点)]") Next StartBGM 乗車物情報(テーマBGM,Args(1),地上) If ターン数 = 0 Then Confirm 乗車物情報(質問文,Args(1),地上) If 選択 = 0 Then FieldMove Args(1) EndIf Else FieldMove Args(1) EndIf Return
↑If文でプロローグイベントかそうでないかを判別しています。
↓移動先選択〜ステージ終了までの処理。
FieldMove: Do Ask 移動用変数 どこへ行きますか? 拡大 Loop While (移動先 = "$(乗車物情報(場所名,Args(1),地上))[選択]") UnSet 移動先 Global 移動先 移動先 = 移動用変数[選択] For 場所番号 = 1 To Count(移動用変数) If 移動先 = 移動用変数[場所番号] Then IntermissionCommand "$(移動用変数[場所番号])へ" "$(移動用変数[場所番号]).eve" Else IntermissionCommand "$(移動用変数[場所番号])へ" 削除 EndIf Next RemoveFile Midi\Intermission.mid CopyFile ("Midi" & "\" & "$(場所情報(場所テーマBGM,移動先))") Midi\Intermission.mid If ターン数 <> 0 Then Escape 味方 EndIf Continue
↑インターミッションBGM変更はここで行っています。
↓情報算出のためのCall関数用の処理。場所の名前の指定にどの配列を使うのかなどを指定しています。
乗車物情報: Local 情報算出結果 Switch Args(2) Case マリンライナー Switch Args(1) Case テーマBGM 情報算出結果 = Mightgaine.mid Case 場所名 Switch Args(3) Case 地上 情報算出結果 = "駅名" EndSw Case 質問文 Switch Args(3) Case 地上 情報算出結果 = 降りますか? EndSw EndSw Case マザー・バンガード Switch Args(1) Case テーマBGM 情報算出結果 = CrossboneGundam.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case アイアン・ギアー Switch Args(1) Case テーマBGM 情報算出結果 = Xabungle.mid Case 場所名 Switch Args(3) Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case アーガマ Switch Args(1) Case テーマBGM 情報算出結果 = Z Beyond the Time.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case ネェル・アーガマ Switch Args(1) Case テーマBGM 情報算出結果 = ZZ Gundam.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case エクスベンチャー Switch Args(1) Case テーマBGM 情報算出結果 = Harlock.mid Case 場所名 Switch Args(3) Case 地球圏外 情報算出結果 = "惑星名" EndSw Case 質問文 Switch Args(3) Case 地球圏外 情報算出結果 = 着陸しますか? EndSw EndSw Case マクロス Switch Args(1) Case テーマBGM 情報算出結果 = Macross_OP.mid Case 場所名 Switch Args(3) Case 地球圏外 情報算出結果 = "惑星名" Case 宇宙 情報算出結果 = "コロニー名" EndSw Case 質問文 Switch Args(3) Case 地球圏外 情報算出結果 = 着陸しますか? Case 宇宙 情報算出結果 = 入港しますか? EndSw EndSw Case Σストリーマー Switch Args(1) Case テーマBGM 情報算出結果 = Streamster.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = コロニー名 Case 地上 情報算出結果 = 拠点名 EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case グラン・ガラン ゴラオン Switch Args(1) Case テーマBGM 情報算出結果 = Dunbine.mid Case 場所名 Switch Args(3) Case 地球圏外 情報算出結果 = "惑星名" Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 地球圏外 情報算出結果 = 着陸しますか? Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case リボルバーガンドール Switch Args(1) Case テーマBGM 情報算出結果 = DancougarOVA.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case グラドス・トライポッド・キャリア Switch Args(1) Case テーマBGM 情報算出結果 = LAYZNER.mid Case 場所名 Switch Args(3) Case 地球圏外 情報算出結果 = "惑星名" Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 地球圏外 情報算出結果 = 着陸しますか? Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case アドベンジャー シュバンシュタイン デスギャリガン Switch Args(1) Case テーマBGM 情報算出結果 = Goldran.mid Case 場所名 Switch Args(3) Case 地球圏外 情報算出結果 = "惑星名" Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 地球圏外 情報算出結果 = 着陸しますか? Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case ダグベイザー Switch Args(1) Case テーマBGM 情報算出結果 = dagwon.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw Case VARSの方舟 Switch Args(1) Case テーマBGM 情報算出結果 = Baangaan.mid Case 場所名 Switch Args(3) Case 宇宙 情報算出結果 = "コロニー名" Case 地上 情報算出結果 = "拠点名" EndSw Case 質問文 Switch Args(3) Case 宇宙 情報算出結果 = 入港しますか? Case 地上 情報算出結果 = 着陸しますか? EndSw EndSw EndSw Return 情報算出結果
↑ここで得ることのできる情報は全てインクルードで使用しています。
↓場所の詳細情報取得用の処理。インクルードではBGMの取得に使用しています。
場所情報: Local 情報算出結果 Switch Args(2) Case 遠近高校周辺 Switch Args(1) Case 場所テーマBGM 情報算出結果 = LFTH_HappyPeople.mid EndSw Case 草原 Switch Args(1) Case 場所テーマBGM 情報算出結果 = BSF_HomeTown.mid EndSw Case グランママのホテル前 Switch Args(1) Case 場所テーマBGM 情報算出結果 = Hotel.mid EndSw EndSw Return 情報算出結果
↑現在はインターミッションで流すBGMだけです。
↓マップ離脱用のユニットコマンド。
ユニットコマンド テスト列車を呼ぶ 全: WorldIntermission 海底特急
↑マップ離脱用のユニットコマンド。
↑イベントデータここまで(かなり長いです) ※インクルードを使用する場合、スタートイベント以下をどんなものでもかまいませんので、 ファイル2つ分製作しておいてください。正常に動きません。
この処理は、 「マップ間移動する」 「移動後にインターミッション表示」 「表示されたインターミッションでは通常のインターミッション用BGMの代わりに指定のBGMを鳴らす」 「再度マップに入ったら本当にそのマップに入るかどうか確認する」 ということをしています。
「駅から駅まで電車で移動」や、 「特定の拠点を戦艦で飛行する」ということの再現のために作りました。 これを汎用インクルードとして採用しようとしていたのです。
|