〜〜 デビルスローンのスクリプト(battle.txt)のおおまかな流れ 〜〜  byハムおばさん ■【拠点】と【道のり】を組み合わせたマップ■ "上流"[4]←川[0]→"昼の町"[0]←山道[1]→"朝の町"[1]←火山[5]→"噴火口"[5]               ↑     ↑               東の海[2] 西の海[3]                 ↓  ↓                "夕の町"[2]←砂漠[4]→"夜の町"[3]←荒れ地[8]→"不毛の地"[8]←魔城[9]→"魔王の間"[9]                            ↑ ↑                       西の草原[6] 東の草原[7]                        ↓   ↓                      "西の森"[6]  "東の森"[7] ※現在位置をnowMapでカウント、その数=拠点番号となるので拠点の画像など各種データがnowMapで全て指定できる 【拠点】(宿屋などの店やイベントがある地点) 配列説明 CITY_IMG:画像ファイル ※最後の0が終わりの印 CITY_BGM:BGMファイル CITY_NM :名前 CITY_RD0:【道のり0】番号←ひとつの拠点で別の拠点への行先が4(つまりその拠点から出ている道が4本)設定できる CITY_RD1:【道のり1】番号 (行先がない場合は-1) CITY_RD2:【道のり2】番号 CITY_RD3:【道のり3】番号 CITY_INN:【宿屋】番号←宿泊代の違いで0〜2の3種類ある(宿屋がない拠点は-1) CITY_SHP:【ショップ】番号←販売アイテムの違いで0〜3の4種類ある(ショップのない拠点は-1) CITY_EV0:【イベント0】番号←ひとつの拠点でイベントをふたつまで設定できる(イベントない時は-1) CITY_EV1:【イベント1】番号 【道のり】(バトルの繰り返しで道のりとする)配列説明 ROAD_IMG:画像ファイル ※最後の0が終わりの印 ROAD_BGM:BGMファイル ROAD_NM :名前 ROAD_CNT:距離(敵遭遇回数) ROAD_ENE0:【キャラ0】番号←ひとつの道のりに4種類まで敵キャラを設定できる(-1のとき設定無し) ROAD_ENE1:【キャラ1】番号 はじめの道のりは弱い敵を、後の道のりほど強い敵を配置する ROAD_ENE2:【キャラ2】番号 ROAD_ENE3:【キャラ3】番号 ■スクリプトのおおまかな流れ■ ┌─基本画面────────┐こ ┌─移動先選択─┐こ ┌─道のり中の───────┐ ┌─通常バトル──┐ │*title          │こ │*idou     │こ │行動メニュー選択     │ │*Encount    │ │移動          ─┼で→│宿屋     │で │*goOut_500        │ │敵セット    │ │魔法⇔フィールドで魔法  │メ │武器屋⇔*shop │メ │進む          ←┼→│ ↓      │ │   *fieldTkg      │ニ │町の外   ─┼ニ→│引き返す        ←┼→│道のり中モンスタ│ │装備⇔フィールドで装備  │ュ │(イベント)  │ュ │魔法⇔フィールドで魔法  │ │ーデータをバトル│ │   *fieldSb      │ー │戻る     │ー │   *fieldTkg      │ │中用変数にセット│ │アイテム⇔アイテム一覧  │作 └───────┘作 │装備⇔フィールドで装備  │ │ ↓      │ │     *item   │成          成 │   *fieldSb      │ │バトル表示   │ │ステータス⇔ステータス表示│  ※イベントは   ・ │アイテム⇔アイテム一覧  │ │ ↓      │ │      *status    │   flgs(フラグ)で イ │     *item   │ │バトル⇔*battle …下へ │セーブ⇔*lblSave     │   処理      ベ │ステータス⇔ステータス表示│ │ ↓      │ │音を→止めるか出すか   │           ン │      *status    │ │バトル結果ごとの│ │タイトルへ        │           ト │※道のり中の進んだ回数計が│ │処理      │ └─────────────┘             │ 道のり距離(敵遭遇回数)│ └────────┘                             │ より小ならバトルへ   │                             └─────────────┘ (通常バトルからのサブルーチン) ┌─バトル────────────┐ │*battle             │ │たたかう⇔味方全員コマンド入力*allInput⇔1体コマンド入力*inputCommand⇔味方が敵を選択*selectAite │オート色々⇔全員コマンド自動セット*autoAll⇔1対コマンド自動セット*autoCommand⇔敵を自動選択*AutoAite │オート攻撃⇔全員コマンド自動セット*autoAll⇔1対コマンド自動セット*autoCommand⇔敵を自動選択*AutoAite │にげる             │※autoAll0(行動は敵?味方?)・autoKind(攻撃種類いろいろか?)のフラグでオートの種類を判別 ├────────────────┤ │素早さでバトル順決定⇔*setJunban⇔装備と魔法効果を考慮したステータス配列取得*getArySts │ ↓              │ │全員行動⇔*allAction⇔一体行動*action⇔(相手が既に他の味方によりやられていた時)敵を自動選択*AutoAite │ ↓              │  ⇔装備と魔法効果を考慮したステータス配列取得*getArySts │味方または敵全滅時の処理    │  ⇔ダメージ*damage │ ↓              │  ⇔魔法発動*actionTkg │バトル終了処理         │ ※状態異常(毒・攻撃力UP中など)の判別はフラグで処理 └────────────────┘ ※デビルスローンは味方・敵モンスターの各データをひとつの一次元配列でまとめて管理  バトル時はその時存在する味方・その道のりで現れる敵モンスターのデータをひとつのバトル中用の変数(一次元配列)に入れて使う  (これで素早さによるバトル順を決められる)(また、バトルのルーチンが攻守入れ替えても兼用で使え、スクリプトの節約になる)  フラグ・サブルーチン・一次元配列などの意味がわからない人は、作成講座でお勉強してください。  まー個人的には、スクリプトの改良は「スクリプト利用方法の例」程度にとどめ、自作のスクリプト作成には、このおおまかな流れを 参考に、自分なりのスクリプトをゼロから組みあげていく方がいいと思います。  各種データをサブルーチンごとに違う変数に入れなおして、サブルーチンをいろんな場合に対応して使えるようにしてるから、データ を追うだけでも大変だし。  部分まるごと引用は、有益かも。特に移動先選択・行動メニュー選択の「メニュー作成」スクリプトは、すごいですよねー。勉強に なります。