====== 概要 ====== 当ページでは[[ランダム依頼|ランダム依頼]]について、新規依頼の作り方を説明する。\\ ランダム依頼はかなり定型化されているため、フォーマットに従えば簡単に新規の依頼が作成できる。\\ 事前に用意されたダンジョンを利用して、ダンジョン付きの依頼を作ることも可能なため\\ 新しいイベントなどを作ってみたいけど自信がない、という方はランダム依頼の作成に挑戦してみるのもいいかもしれない。\\ ====== ランダム依頼の新規作成方法について ====== 以下の2つのランダム依頼を新規作成してみるという実戦形式で説明する。\\ ・ランダム依頼34:ダンジョンなしテスト\\ ・ランダム依頼35:ダンジョンありテスト\\ ※番号が34,35なのは当記事を作成した時点で依頼番号33まで作成されているためである。\\  この記事をお読みの方が実際に試してみる場合、依頼番号がどこまで使われているのかを確認の上でお試しください。\\ ====== ダンジョンなしのランダム依頼を追加する ====== ===== 依頼ファイルの追加 ===== ERB\RPG\依頼\REQUEST_108_新ランダム依頼\\ 上記ディレクトリに新規の依頼ファイルを作成する。\\ ファイル名は「REQUEST_108_[依頼番号]_[依頼名].ERB」\\ 当記事では例として「REQUEST_108_34_ダンジョンなしテスト.ERB」というファイルをここに置く。\\ ==== 依頼ファイルの中身(あくまで一例です) ==== ++++ 長いため折り畳み | =||\\ ;説明===================================================================\\ @TITLE_RANDOM_REQUEST_108_34\\ RESULT = ダンジョンなしテスト(難易度 ☆☆)\\ RETUNR 1\\ @REQUEST_EXPLAIN_108_34\\ PRINTL\\ PRINTL 【依頼主】メシア教\\ PRINTL\\ PRINTL  若手テンプルナイトの戦闘訓練に強力して欲しい。\\ PRINTL  5名のテンプルナイトと戦い、これに勝利せよ!\\ PRINTL\\ PRINTL 【作戦領域】都内のとある教会\\ PRINTL 【敵の戦力】若手のテンプルナイト6名\\ PRINTL 【成功条件】戦闘に勝利すること\\ PRINTL\\ ;内容====================================================================\\ @REQUEST_108_34\\ ;----------------------\\ ;依頼の導入部分\\ ;----------------------\\ CUSTOMDRAWLINE =\\ PRINTFORMW ――都内のとある教会――\\ PRINTFORML\\ PRINTFORMW >指定された教会に到着した。\\ PRINTFORML テンプルナイト(ベテラン)\\ PRINTFORMW 「依頼を受けて下さったダマナーの方ですね?」\\ PRINTFORMW 「こちらが今回訓練を付けていただきたい若手のナイト達です」\\ PRINTFORML\\ PRINTFORML >紹介されたテンプルナイトたちと軽く挨拶をかわす。\\ PRINTFORMW >どうやら、装備も動きも一般的なテンプルナイトのそれだ。あなたが苦戦する相手でもなさそうだ。\\ PRINTFORML\\ PRINTFORML テンプルナイト(ベテラン)\\ PRINTFORMW 「それでは」\\ PRINTFORML\\ PRINTFORMW >テンプルナイトたちが飛び掛かってきた!\\ WAIT\\ ;----------------------\\ ;依頼の本題部分(戦闘)\\ ;----------------------\\ ;戦闘に関する各種フラグを設定する(例として会話で仲間にするとかできるとまずいため)\\ FLAG:逃走不可フラグ = 1\\ FLAG:会話不能フラグ = 1\\ FLAG:先制不意打ちキャンセル = 1\\ ;どの位置にどの敵キャラをセットするか設定する\\ FOR LOCAL, 7, 13\\ CALL SET_ENEMY, LOCAL ,[[キャラ_テンプルナイト|キャラ:テンプルナイト]],12+RAND:5,1,0\\ CALL SYNC_STATUS,(CHARANUM-1)\\ CALL HEALTH_CHARA,(CHARANUM-1)\\ NEXT\\ ;戦闘開始\\ CALL BATTLE_START\\ ;戦闘に関する各種フラグをデフォルトに戻す\\ FLAG:逃走不可フラグ = 0\\ FLAG:会話不能フラグ = 0\\ FLAG:先制不意打ちキャンセル = 0\\ ;----------------------\\ ;依頼の終了部分\\ ;----------------------\\ ;依頼終了後の文章\\ PRINTFORMW >テンプルナイトたちは満足したようだ。\\ ;報酬\\ 依頼フラグ:108:5 = 2;難易度\\ 依頼フラグ:108:6 = 0;日本円\\ 依頼フラグ:108:7 = 1;メシア教\\ CALL PRIZE_REQUEST_108\\ | | = | ++++ ==== 依頼名と難易度表示 ==== 「**@TITLE_RANDOM_REQUEST_108_[依頼番号]**」\\ この関数の中に、依頼の名前と難易度の表示を記入する。\\ ※星の数は難易度。星の色が白色の場合はダンジョン無し、黒色の場合はダンジョン有り。\\ ==== 依頼内容の説明文 ==== 「**@REQUEST_EXPLAIN_108_[依頼番号]**」\\ この関数の中に、依頼の説明分を用意する。\\ これは最初にランダム依頼を受注するときに、どういう依頼であるか説明を表示するために使用される。\\ ***二行で収めるのが基本**\\ ==== 依頼の本処理 ==== 「**@REQUEST_108_[依頼番号]**」\\ この関数の中で、依頼の本処理を用意する。\\ 中身は自由に作成してOKであるが、基本的な流れを以下に説明する。\\ �^様衙粗�の文章\\ どのような場所でどんなことをしているのか、など状況の描写を行う。\\ 必須ではないものの、描写が素敵だと雰囲気が出て魅力的な依頼になるため是非力を入れてみてはいかがだろうか。\\ ��依頼の本題部分\\ 多くの場合、依頼の本題部分では戦闘を行っている。\\ 必ずしも戦闘しなければならないわけではないため\\ アイテムの交換やミニゲーム、その他を行っても良い。\\ �0様蠅僚�了部分\\ 依頼が終了したことを示す文章の表示や\\ 報酬の取得を行う。\\ ==== 報酬の設定方法は以下の通り ==== 「**依頼フラグ:108:5**」\\  →依頼の難易度を設定する。難易度が高いほど報酬金額が高くなる仕組みである。1〜5の範囲で設定\\ 「**依頼フラグ:108:7**」\\  →依頼人の陣営を設定する。メシアやガイアから依頼を受けるとアライメントが変動する仕組みである。(0:その他 / 1:メシア教 / 2:ガイア教)\\ 「**CALL PRIZE_REQUEST_108**」\\  →報酬の計算と獲得を行う関数を実行する。報酬内容は日本円と名声であり、また金額などは直前に行っている難易度などの設定で決まる。\\ **[補足]**\\ 上記の報酬設定は共通関数「CALL PRIZE_REQUEST_108」を利用することを前提としている。\\ これは難易度ごとの金額や報酬の上限金額の設定などを共通処理で行うことで「ランダム依頼」全体のバランスを整えるためのものである。\\ これを利用せず独自の処理で報酬を設定することもできるが、出来れば上記の処理に合わせていただけると幸いです。\\ (一部のランダム依頼で超高額報酬が発生して問題になったことがあるため)\\ ===== サンプルで用意したランダム依頼を実行してみる ===== ++++ 長いため折り畳み | ==== 依頼の説明 ==== {{:eraten:y3mn5uqgzu_04224247.bmp}}\\ ==== 依頼冒頭 ==== {{:eraten:fgfhgjolp3_fdc6e83d.bmp}}\\ ==== 戦闘画面 ==== {{:eraten:fqjlckq_bg_00448099.bmp}}\\ ==== 報酬画面 ==== {{:eraten:fxeofqz7qk_28e28102.bmp}}\\ ++++ ====== ダンジョンありのランダム依頼を追加する ====== ===== 依頼ファイルの追加 ===== ERB\RPG\依頼\REQUEST_108_新ランダム依頼\\ 上記ディレクトリに新規の依頼ファイルを作成する。\\ ファイル名は「REQUEST_108_[依頼番号]_[依頼名].ERB」\\ 当記事では例として「REQUEST_108_35_ダンジョンありテスト.ERB」というファイルをここに置く。\\ ===== 依頼ファイルの中身(あくまで一例です) ===== ++++ 長いため折り畳み | =||\\ ;説明===================================================================\\ @REQUEST_EXPLAIN_108_35\\ PRINTL\\ PRINTL 【依頼主】ガイア教徒\\ PRINTL\\ PRINTL  俺たちは修行とか異能への覚醒のためにある薬草を使用しているんだが\\ PRINTL  最近、メシア教の連中にこの件を勘付かれたらしくて周辺をマークしてやがる。\\ PRINTL  奴らに細かい場所を知られずに薬草を採取したい。ちょっとの間でいいから追い払ってくれ!\\ PRINTL\\ PRINTL 【作戦領域】森\\ PRINTL 【敵の戦力】テンプルナイト\\ PRINTL 【成功条件】テンプルナイトの排除\\ PRINTL 【注意事項】ダンジョン攻略が必要\\ PRINTL\\ ;内容====================================================================\\ @REQUEST_108_35\\ ;----------------------\\ ;依頼の導入部分\\ ;----------------------\\ ;どのダンジョンに入れるようになったかを説明する\\ PRINTFORMW 【森】に入れるようになった。\\ ;ダンジョン設定を行う\\ 依頼フラグ:108:2 = 1 ;ダンジョンの有無(1:ダンジョンあり)\\ 依頼フラグ:108:3 = 4 ;ダンジョンの種類(4:森)\\ ;----------------------\\ ;依頼の本題部分\\ ;----------------------\\ ;ダンジョンありの依頼のため、ここでは依頼の本題を設定しない\\ ;----------------------\\ ;ダンジョン内イベント\\ ;----------------------\\ @DUNGEON_EVENT_108_4_35\\ CALL MESSAGE_WINDOW_D, "" , @">メシア教のテンプルナイトを発見した。", , , , , 4\\ CALL MESSAGE_WINDOW_D, "" , @">森の中を探索しているようだ。", , , , , 4\\ CALL MESSAGE_WINDOW_D, "テンプルナイト" , @"キミ、ここは反社会集団の出没が確認されている危険な場所だ。", , , , , 4\\ CALL MESSAGE_WINDOW_D, "テンプルナイト" , @"立ち入るのはやめたまえ。", , , , , 4\\ CALL MESSAGE_WINDOW_D, "" , @">あなたはテンプルナイト達を追い払うべく剣を構えた!", , , , , 4\\ ;戦闘に関する各種フラグを設定する(例として会話で仲間にするとかできるとまずいため)\\ FLAG:逃走不可フラグ = 1\\ FLAG:会話不能フラグ = 1\\ FLAG:先制不意打ちキャンセル = 1\\ ;どの位置にどの敵キャラをセットするか設定する\\ FOR LOCAL:2, 7, 12\\ CALL SET_ENEMY, LOCAL:2 ,[[キャラ_テンプルナイト|キャラ:テンプルナイト]],31+RAND:5,0,0\\ CALL SYNC_STATUS,(CHARANUM-1)\\ CALL HEALTH_CHARA,(CHARANUM-1)\\ NEXT\\ ;戦闘開始\\ CALL BATTLE_START\\ ;戦闘に関する各種フラグをデフォルトに戻す\\ FLAG:逃走不可フラグ = 0\\ FLAG:会話不能フラグ = 0\\ FLAG:先制不意打ちキャンセル = 0\\ ;----------------------\\ ;依頼の終了部分\\ ;----------------------\\ PRINTFORMW >テンプルナイト達を森から追い払った。\\ ;報酬\\ 依頼フラグ:108:5 = 4;難易度\\ 依頼フラグ:108:6 = 0;日本円\\ 依頼フラグ:108:7 = 2;ガイア教\\ CALL PRIZE_REQUEST_108\\ ;依頼受諾フラグを0に\\ 依頼フラグ:108:2 = 0\\ FLAG:脱出 = 1\\ | | = | ++++ ==== 依頼内容の説明文 ==== 「@REQUEST_EXPLAIN_108_[依頼番号]」\\ この関数の中に、依頼の説明分を用意する。\\ これは最初にランダム依頼を受注するときに、どういう依頼であるか説明を表示するために使用される。\\ ダンジョンありの場合は、どの種類のダンジョンであるかなども記載する。(工場、森など)\\ ==== 依頼の本処理 ==== 「@REQUEST_108_[依頼番号]」\\ 通常はこの関数の中で、依頼の本処理を用意する。\\ ただしダンジョンありのランダム依頼の場合、本題となる処理はダンジョン側のイベントで行うため\\ 以下のようにどのダンジョンに行けるようになったのかなどの表示とフラグ設定だけ行う。\\ フラグ設定は以下の通り\\ 「依頼フラグ:108:2」\\  →ランダム依頼のダンジョンに突入可能な状態であるかどうか(0:突入不可 / 1:突入可能)\\ 「依頼フラグ:108:3」\\  →実際に突入するダンジョンの種類を設定する。\\   ランダムダンジョンのマップは既存の者が用意されているため、それを利用する形式となる。\\   (1:ビル / 2:下水道 / 3:工場 / 4:森 / 5:山 / 6:地下迷宮 / 8:ランダム迷宮) ※7は不明\\ ==== ダンジョン内イベント ==== @DUNGEON_EVENT_108_4_[依頼番号]\\ ダンジョン内で特定のイベントマスを踏んだ時に発生するイベントをここで指定する。\\ ※@DUNGEON_EVENT_108_4_[依頼番号]の_4_の部分はイベントマス(!)を意味している。\\ すこし難易度が上がってしまうが、ダンジョン内に複数のイベントマスを用意することもできる。\\ この場合、『現在どの座標のイベントマスに乗っているか』を判断してそれぞれ処理を行うこともできる。\\ =||\\ @DUNGEON_EVENT_108_3_35\\ IF FLAG:現M == 1 && FLAG:現X == 31 && FLAG:現Y == 18\\ ;1階のx=31,y=18の座標のイベントマスの処理\\ ELSEIF FLAG:現M == 2 && FLAG:現X == 24 && FLAG:現Y == 14\\ ;2階のx=24,y=14の座標のイベントマスの処理\\ ENDIF\\ | | = | ダンジョン内イベントの最後に\\ 報酬設定とダンジョン脱出処理を記載する。\\ 今回の例では以下の部分が該当する\\ =||\\ ;----------------------\\ ;依頼の終了部分\\ ;----------------------\\ PRINTFORMW >テンプルナイト達を森から追い払った。\\ ;報酬\\ 依頼フラグ:108:5 = 4;難易度\\ 依頼フラグ:108:6 = 0;日本円\\ 依頼フラグ:108:7 = 2;ガイア教\\ CALL PRIZE_REQUEST_108\\ ;依頼受諾フラグを0に\\ 依頼フラグ:108:2 = 0\\ FLAG:脱出 = 1\\ | | = | 報酬設定は以下の通り\\ 「依頼フラグ:108:5」\\  →依頼の難易度を設定する。難易度が高いほど報酬金額が高くなる仕組みである。1〜5の範囲で設定\\ 「依頼フラグ:108:6」\\  →依頼の報酬の種類を設定する。(0:日本円 / 1:マッカ)\\   ※ランダム依頼でマッカ獲得が問題視されたため、現在は常に「0:日本円」にすることを推奨。Rev142にて「依頼フラグ:108:6」を設定不要なったがRev143では再び設定が必要になってしまった。(何らかのミス?)\\ 「依頼フラグ:108:7」\\  →依頼人の陣営を設定する。(0:その他 / 1:メシア教 / 2:ガイア教)\\ 「CALL PRIZE_REQUEST_108」\\  →報酬の計算と獲得を行う関数を実行する。報酬内容は日本円と名声であり、また金額などは直前に行っている難易度などの設定で決まる。\\ 脱出処理は以下の通り\\ 依頼フラグ:108:2 = 0\\  →ランダム依頼のダンジョン突入可能フラグを(0:突入不可)にする\\ FLAG:脱出 = 1\\  →ダンジョンから脱出する\\ ===== ダンジョン側にイベントマスを設置する ===== ERB\RPG\ダンジョンアタック\ダンジョンデータ\DUNGEON108_新ランダム依頼\DUNGEON108_ランダム依頼_MAP.ERB\\ 上記のファイル内の関数「@MAKE_FLOOR_108」にて\\ ランダム依頼用のダンジョンマップとイベントマスを設定する。\\ ++++ 長いため折り畳み | =||\\ ;===================\\ ;4.森(トキワ)\\ ;===================\\ ELSEIF 依頼フラグ:108:3 == 4\\ SELECTCASE FLAG:現M\\ CASE 0\\ FLAG:最大X = 25\\ FLAG:最大Y = 28\\ ; 1 2\\ ; 0123456789012345678901234\\ CALL MAKE_FLOOR_LINE, 0, " 8 "\\ CALL MAKE_FLOOR_LINE, 1, " 111 111 111111 "\\ CALL MAKE_FLOOR_LINE, 2, " 111 11 11 11 111 "\\ CALL MAKE_FLOOR_LINE, 3, " 111 11 11 111 1 "\\ CALL MAKE_FLOOR_LINE, 4, " 111 11 11 11111111 1 "\\ CALL MAKE_FLOOR_LINE, 5, " 111 11 11 1111111111 "\\ CALL MAKE_FLOOR_LINE, 6, " 111 11 11 1111111111 "\\ CALL MAKE_FLOOR_LINE, 7, " 111111 11 111 11 "\\ CALL MAKE_FLOOR_LINE, 8, " 111 1111 11 "\\ CALL MAKE_FLOOR_LINE, 9, " 111 11 "\\ CALL MAKE_FLOOR_LINE,10, " 1 11111 "\\ CALL MAKE_FLOOR_LINE,11, " 1111 11111 "\\ CALL MAKE_FLOOR_LINE,12, " 11 11 11 "\\ CALL MAKE_FLOOR_LINE,13, " 11 11 "\\ CALL MAKE_FLOOR_LINE,14, " 111 11 11 "\\ CALL MAKE_FLOOR_LINE,15, " 1 1 11 11 "\\ CALL MAKE_FLOOR_LINE,16, " 111 11 11 "\\ CALL MAKE_FLOOR_LINE,17, " 111111 11 11 "\\ CALL MAKE_FLOOR_LINE,18, " 111111 111 "\\ CALL MAKE_FLOOR_LINE,19, " 111111 111 "\\ CALL MAKE_FLOOR_LINE,20, " 1111111111111 11111 "\\ CALL MAKE_FLOOR_LINE,21, " 11 11111 1 1111 "\\ CALL MAKE_FLOOR_LINE,22, " 11 11111 1 11 1 "\\ CALL MAKE_FLOOR_LINE,23, " 11 1111111 11 1 11 1 "\\ CALL MAKE_FLOOR_LINE,24, " 1111111111 11111 1111 "\\ CALL MAKE_FLOOR_LINE,25, " 11111111111111111 1111 "\\ CALL MAKE_FLOOR_LINE,26, " 11 111111 1111111 "\\ CALL MAKE_FLOOR_LINE,27, " 8 "\\ ; 0123456789012345678901234\\ ; 0 1 2\\ ;ゴブリン排除ではX == 21,Y == 10にイベント(=4)を設置\\ CALL SET_TILE, 21 , 10 , 依頼フラグ:108:1 , 15 , 4\\ ;ドリアードを間引いてくれではX == 8,Y == 12にイベント(=4)を設置\\ CALL SET_TILE, 8 , 12 , 依頼フラグ:108:1 , 30 , 4\\ | | = | 上記では「CALL SET_TILE」という関数の中で実際のイベントマスの位置と順番を指定している。\\ CALL SET_TILE, [x座標] , [y座標], 依頼フラグ:108:1 , [依頼番号] , 4\\ 例として、今回は依頼番号35,座標を(13,5)とする。この場合は以下の内容を追加してあげればよい。\\ =||\\ ;ダンジョンありテストではX == 13,Y == 5にイベント(=4)を設置\\ CALL SET_TILE, 13 , 5 , 依頼フラグ:108:1 , 35 , 4\\ | | = | ++++ ===== ダンジョン名の設定 ===== ERB\RPG\ダンジョンアタック\ダンジョンデータ\DUNGEON108_新ランダム依頼\DUNGEON108_ランダム依頼_BASE.ERB\\ 上記ファイルの関数「GET_DUNGEON_NAME_108」にてダンジョンの名前を設定している。\\ ++++ 長いため折り畳み | =||\\ @GET_DUNGEON_NAME_108\\ SELECTCASE 依頼フラグ:108:1\\ ;氷漬けの工場\\ CASE 0\\ RESULTS = 凍った製菓工場\\ ;下水道の異音\\ CASE 3,\\ RESULTS = 下水道\\ ...(途中省略)...\\ ;地下洞窟調査\\ CASE 32\\ RESULTS = 地下洞窟\\ ENDSELECT\\ | | = | これは「依頼フラグ:108:1」に設定された依頼番号ごとにダンジョンの名前を設定している。\\ 今回は例として「依頼番号:35」であり、またダンジョン名を"薬草のある森"とする。\\ したがって、以下の内容を追記する\\ =||\\ ;ダンジョンありテスト\\ CASE 35\\ RESULTS = 薬草のある森\\ | | = | ++++ ===== ダンジョン突入時のイベント ===== ERB\RPG\ダンジョンアタック\ダンジョンデータ\DUNGEON108_新ランダム依頼\DUNGEON108_ランダム依頼_BASE.ERB\\ 上記ファイルの関数「EVENT_DUNGEON_START_108」にてそれぞれ\\ ダンジョン突入時、脱出時のイベントを設定している。\\ ++++ 長いため折り畳み | =||\\ @EVENT_DUNGEON_START_108\\ SELECTCASE 依頼フラグ:108:1\\ ;氷漬けの工場\\ CASE 0\\ CALL MESSAGE_WINDOW_D, "", @">工場内に入ると、あたり一面が氷漬けにされている。", , , , , 4\\ ;下水道の異音\\ CASE 3\\ CALL MESSAGE_WINDOW_D, "", @">下水道内に入ると、何か聞こえてきた。", , , , , 4\\ CALL MESSAGE_WINDOW_D, "???" , @"「……とけて……とけて……」「……いたいよぉ……くるしいよぉ……」", , , , , 4\\ ...(途中省略)...\\ ;ドリアードを間引いてくれ\\ CASE 30\\ CALL MESSAGE_WINDOW_D, "" , @">森林地帯に足を踏み入れた。/>MAGによって変異した高濃度の花粉が漂っている……", , , , , 4\\ CASE 32\\ CALL MESSAGE_WINDOW_D, "" , @">洞窟に足を踏み入れた。/>……強烈な腐臭が鼻をつく。さっさと終わらせよう。", , , , , 4\\ ENDSELECT\\ | | = | 今回は例として「依頼番号:35」用に以下の内容を追加する\\ =||\\ ;ダンジョンありテスト\\ CASE 30\\ CALL MESSAGE_WINDOW_D, "" , @">薬草が自生するという森へやってきた。どこかに敵のテンプルナイトがいるはずだ。", , , , , 4\\ | | = | ===== ダンジョン内に出現する敵などの設定 ===== ERB\RPG\ダンジョンアタック\ダンジョンデータ\DUNGEON108_新ランダム依頼\DUNGEON108_ランダム依頼_ENEMY.ERB\\ 上記ファイル内で以下の設定を行う\\ ・必要レベル目安\\ ・敵の総数\\ ・敵の種類\\ ++++ ==== 必要レベル目安 ==== 「DUNGEON108_ランダム依頼_ENEMY.ERB」ファイルの関数「GET_DUNGEON_LV_108」にて設定する。\\ ++++ 長いため折り畳み | =||\\ @GET_DUNGEON_LV_108\\ SELECTCASE 依頼フラグ:108:1\\ ;氷漬けの工場\\ CASE 0\\ RETURN 20, 50,50, 50\\ ;下水道の異音\\ CASE 3,\\ RETURN 10, 50,50, 50\\ ...(途中省略)...\\ ;地下洞窟調査\\ CASE 32\\ RETURN 30, 50,50, 50\\ CASEELSE\\ RETURN 50, 50,50, 50\\ ENDSELECT\\ | | = | これは「依頼フラグ:108:1」に設定された依頼番号ごとに\\ RETURN 推奨LV, 雑魚最低LV, 雑魚最高LV, ボスLV\\ をそれぞれ設定している。\\ 今回は例として「依頼番号:35」であり、また「推奨レベル30」「雑魚最低15」「雑魚最低20」「ボスLV35」とする。\\ したがって、以下の内容を追記する\\ =||\\ ;ダンジョンありテスト\\ CASE 35\\ RETURN 30, 15, 20, 35\\ | | = | ++++ ==== 敵の総数 ==== 「DUNGEON108_ランダム依頼_ENEMY.ERB」ファイルの関数「ENEMY_NUM_108」にて設定する。\\ =||\\ @ENEMY_NUM_108, ARG\\ SELECTCASE 依頼フラグ:108:1\\ ;氷漬けの工場\\ CASE 0\\ RETURN ENEMY_NUM_COMMON("初級", ARG)\\ ;下水道の異音\\ CASE 3,\\ RETURN ENEMY_NUM_COMMON("初級", ARG)\\ ...(途中省略)...\\ ;地下洞窟調査\\ CASE 32\\ RETURN ENEMY_NUM_COMMON("中級", ARG)\\ CASEELSE\\ RETURN ENEMY_NUM_COMMON("中級", ARG)\\ ENDSELECT\\ | | = | これは依頼の難易度に応じて初級、中級、上級の設定を行う。\\ ;〜☆☆ 初級\\ ;〜☆☆☆☆ 中級\\ ;〜☆☆☆☆☆☆☆ 上級\\ ;〜☆☆☆☆☆☆☆☆☆☆ 最上級\\ 今回の例では「依頼番号:35」かつ星4の依頼であるため中級である。\\ 従って以下の内容を追記する。\\ =||\\ ;ダンジョンありテスト\\ CASE 35\\ RETURN ENEMY_NUM_COMMON("中級", ARG)\\ | | = | ==== 敵の種類 ==== 「DUNGEON108_ランダム依頼_ENEMY.ERB」ファイルの関数「ENEMY_108」にて設定する。\\ =||\\ @ENEMY_108, ARG\\ SELECTCASE 依頼フラグ:108:1\\ ;氷漬けの工場\\ CASE 0\\ RETURN [[キャラ_ジャックフロスト|キャラ:ジャックフロスト]], 13\\ ;下水道の異音\\ CASE 3\\ RETURN [[キャラ_スライム|キャラ:スライム]], 1\\ ...(途中省略)...\\ ;ドリアードを間引いてくれ\\ CASE 30\\ RETURN [[キャラ_ドリアード|キャラ:ドリアード]], 12\\ CASE 32\\ RETURN [[キャラ_ゾンビドッグ|キャラ:ゾンビドッグ]], 10\\ ENDSELECT\\ | | = | これはダンジョン内で出現する雑魚敵の種類とレベルである。(1種類のみ)\\ 今回の例では「依頼番号:35」かつLv15〜20妖精の「オベロン」を出現させてみる。\\ 従って以下の内容を追記する。\\ =||\\ ;ダンジョンありテスト\\ CASE 35\\ RETURN [[キャラ_オベロン|キャラ:オベロン]], 15+RAND:6\\ | | = | ===== 追加したランダム依頼を実際に発生させるための処理 ===== ERB\RPG\依頼\REQUEST_108_ランダム依頼.ERB\\ 上記ファイル内で、実際にどのランダム依頼が発生するのかの判定などを行っている。\\ ==== 新しい依頼番号の依頼が発生するように設定する ==== ※ダンジョンなしの場合と同じ内容です。\\  また、ダンジョンなしの方を先に追加した後でこちらを追加しています。\\ 「@PLAYABLE_REQUEST_108」\\ この関数の中に以下のような記載が存在する\\ =||\\ ;ランダムな依頼を表示する\\ SELECTCASE RAND(0,35)\\ CASE 0\\ RESULTS = 氷漬けの工場(難易度 ★★)\\ 依頼フラグ:108:1 = 0\\ CASE 1\\ RESULTS = 教会施設を防衛(難易度 ☆☆☆)\\ 依頼フラグ:108:1 = 1\\ ...(途中省略)...\\ CASE 33\\ RESULTS = 侵攻勢力調査(難易度 ☆☆)\\ 依頼フラグ:108:1 = 33\\ CASE 34\\ RESULTS = ダンジョンなしテスト(難易度 ☆☆)\\ 依頼フラグ:108:1 = 34\\ ENDSELECT\\ RETURN 1\\ | | = | 最初の「SELECTCASE RAND(0,35)」の部分は\\ 0〜34番(35ではないことに注意!)までのランダムな番号の依頼を発生させている。\\ 今回の例では「ランダム依頼34:ダンジョンなしテスト」を追加するため\\ 0〜35番までを発生させるように変更しなければならない。\\ 従ってこのように修正する\\ =||\\ ;ランダムな依頼を表示する\\ SELECTCASE RAND(0,35)\\ ↓\\ ;ランダムな依頼を表示する\\ SELECTCASE RAND(0,36)\\ | | = | ==== 新しい依頼の詳細を設定する ==== 上記の「Case xx」の部分では\\ その番号の依頼の名前を設定している。\\ =||\\ CASE 34\\ RESULTS = ダンジョンなしテスト(難易度 ☆☆)\\ 依頼フラグ:108:1 = 34\\ | | = | 例えば上記の場合は\\ 「依頼番号:34番」の依頼の表示名を「ダンジョンなしテスト(難易度 ☆☆)」に設定している。\\  ※星の数は難易度。星の色が白色の場合はダンジョン無し、黒色の場合はダンジョン有り。\\  ※「依頼フラグ:108:1」は依頼番号を保存する。「Case xx」のxxと同じ番号をセットすればOK\\ 今回の場合は、「依頼番号:35番」であり名前が「ダンジョンありテスト」、ダンジョンはなしなので\\ 以下の内容を追加する。\\ =||\\ CASE 35\\ RESULTS = ダンジョンありテスト(難易度 ★★★★)\\ 依頼フラグ:108:1 = 35\\ | | = | ===== サンプルで用意したランダム依頼を実行してみる ===== ++++ 長いため折り畳み | ==== 依頼の説明 ==== {{:eraten:ezpw5qepnq_6eb6762e.bmp}}\\ ==== ダンジョンに入れるようになる ==== {{:eraten:ldpvyuidp9_3adb25cf.bmp}}\\ ==== ダンジョン内の様子 ==== {{:eraten:wmpxmfdajo_762acbea.bmp}}\\ ==== 雑魚敵 ==== {{:eraten:ziv4nlprgi_5459a02f.bmp}}\\ ==== イベントマス ==== {{:eraten:o_tbtj87bh_7f547315.bmp}}\\ {{:eraten:prhpje_szp_86f4c597.bmp}}\\ ==== イベント戦闘 ==== {{:eraten:uxko6u6n5y_8262bd64.bmp}}\\ ==== 報酬画面 ==== {{:eraten:yomnkklnht_ae456a07.bmp}}\\ ++++