#============================================================================== # ■ VX-RGSS2-16 クエストシステム [Ver.1.1.0] by Claimh #------------------------------------------------------------------------------ #・クエスト(依頼)を受けて、イベントを進行するシステムを構築します #・クエストはイベントから発生させるかギルドで依頼を受けることで発生 #・クエストリストで確認できる内容 # 現在進行中のクエスト、クリアしたクエスト、失敗したクエスト #・クエストのランクは10段階。初期ランクは1 # 自分のランクが低い場合はギルドからの依頼は受けれない #・ギルドで受けたクエストは基本的にギルドに報告することで完了となる # (イベントから完了させることも可能) #・ギルドで受けるクエストは表示状態がtrueになったら、受けることができる #・【定義】よりも下のセクションに配置する必要があります #------------------------------------------------------------------------------ #【クエスト名、依頼主、クエスト内容 で使える制御文字】 # \\n[n] : ID:nのアクター名 # \\e[n] : ID:nのエネミー名 # \\j[n] : ID:nのクラス名 # \\s[n] : ID:nのスキル名 # \\i[n] : ID:nのアイテム名 # \\w[n] : ID:nの武器名 # \\a[n] : ID:nの防具名 # \\m[n] : ID:nのマップ名 # \\q[n] : ID:nのクエスト名 #【クエスト内容 で使える制御文字】 # \\c[n] : 文字色変更 # \\+ : ボールド表示 開始/終了 # \\- : イタリック表示 開始/終了 # \\x[n] : X軸方向 n の場所から描画 # \\n : 改行 # \\p : 改ページ #============================================================================== module Quest #============================================================================== #【全般設定】 #============================================================================== # 同時進行可能なクエスト数 # 初期状態にStGuildクラスを設定したクエストのみカウントする # これを超えると、ギルドでの受付ができない # イベントからのクエスト発生は可能 # nilにすると制限なし MAX = nil # クエスト成功時の音(BGMを止めたくなければSEで) CLR_A_FILE = RPG::ME.new("Victory2") # CLR_A_FILE = RPG::SE.new("Bell") # クエスト失敗時の音(BGMを止めたくなければSEで) FAIL_A_FILE = RPG::ME.new("Gameover") # FAIL_A_FILE = RPG::SE.new("Buzzer2") # ランクの表示 SHOW_RANK = true # クエストのランク名称 RANK={1=>"G",2=>"F",3=>"E",4=>"D",5=>"C",6=>"B",7=>"A",8=>"A+",9=>"S",10=>"SS"} # ランクごとの文字色 RANK_CLR = { 1 => Color.new(255, 255, 255, 128), 2 => Color.new(255, 255, 255, 255), 3 => Color.new(128, 255, 255, 255), 4 => Color.new(128, 128, 255, 255), 5 => Color.new(255, 255, 128, 255), 6 => Color.new(128, 255, 128, 255), 7 => Color.new(255, 128, 128, 255), 8 => Color.new(255, 255, 0, 255), 9 => Color.new(255, 0, 255, 255), 10 => Color.new(255, 0, 0, 255) } # クエストリストの種別(3種類まで自由選択 & 順序も自由) # PLAYING : 進行中クエスト # CLEAR : クリア済みクエスト # FAIL : 失敗クエスト QUEST_LIST = [PLAYING, CLEAR, FAIL] ## [PLAYING] -> 進捗中のみ表示 # クエストリストの表示名称 LIST_NAME = { PLAYING => "進行中クエスト", CLEAR => "クリア済みクエスト", FAIL => "失敗クエスト" } # ギルドの種別(3種類まで自由選択 & 順序も自由) # REPORT : クエストの報告 # SHOP : クエストを受ける # EXIT : ギルドを出る GUILD_LIST = [SHOP, REPORT, EXIT] ## [SHOP] -> クエスト受付のみ表示 # ギルドの種別の表示名称 GUILD_NAME = { REPORT => "クエストの報告", SHOP => "クエストを受ける", EXIT => "ギルドを出る" } #============================================================================== #【クエスト設定】 ※クエストIDに0は使えません #============================================================================== QUEST = { =begin [説明] クエストごとの設定をします。 Rank、StXXX、CondXXX、RsltXXX、Swの詳細(何かが使えるか、引数など)については 【定義】のセクションをよく見てください [記述形式] クエストID => { # クエスト名, # 依頼主(""なら表示なし), # ランク Rank.new(quest, r_next, r_down), # 初期状態 StXXX.new, # 前提条件[CondXXX.new, …], # クリア条件[CondXXX.new, …], # 報酬[RsltXXX.new, …], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), # クエスト内容 }, =end #=begin ## 設定サンプル[START] #----------------------------------------------------------------------------- 1 => [ # クエスト名 "初めてのおつかい", # 依頼主(""なら表示なし), "パパ", # ランク Rank.new(quest, r_next, r_down), Rank.new(1, 0), # 成功時にランク上昇 # 初期状態 StXXX.new, StEv.new, # イベントによるクエスト # 前提条件[CondXXX.new, …], [], # 条件なし # クリア条件[CondXXX.new, …], [], # 条件なし # 報酬[RsltXXX.new, …], [RsltMoney.new(50), # 成功時:50 G RsltItem.new(1, 5), # 成功時:アイテム[1]×5 RsltWeapon.new(1), # 成功時:武器[1] RsltArmor.new(1), # 成功時:防具[1] RsltCmnEv.new(1)], # 成功時:コモンイベント[1] # スイッチ操作Sw.new(play, clear, fail), Sw.new(1, 2, 3), # 開始時SW[1]、成功時SW[2]、失敗時SW[3] # クエスト内容 "「きょうは\\c[3]ママ\\c[0]にないしょで、"+ "\\c[5]にしのどうくつ\\c[0]にいくの\\n"+ "こわいまものがいっぱいでちょっとこわいけど、"+ "\\c[3]ママ\\c[0]のだいすきな\\c[4]\\+きょうりゅうのたまご\\+\\c[0]"+ "をとってきて、びっくりさせるんだ!」\\n\\n"+ "という置き手紙を残して、行方が分からなくなった娘をどうか探してください!" ], #----------------------------------------------------------------------------- 2 => [ # クエスト名, "漆黒の狼", # 依頼主(""なら表示なし), "妖精シェリー", # ランク Rank.new(quest, r_next, r_down), Rank.new(1, 0), # 成功時にランク上昇 # 初期状態 StXXX.new, StEv.new, # イベントによるクエスト # 前提条件[CondXXX.new, …], [CondQuestT.new(1)], # クエスト[1]が完了(成功)していること # クリア条件[CondXXX.new, …], [], # 条件なし # 報酬[RsltXXX.new, …], [RsltMoney.new(100), # 成功時:100G RsltLevel.new(0, 1), # 成功時:全員 Lv+1 RsltCmnEvP.new(1)], # 失敗時:コモンイベント[1] # スイッチ操作Sw.new(play, clear, fail), Sw.new(4, 5, 6), # 開始時SW[4]、成功時SW[5]、失敗時SW[6] # クエスト内容 "深夜、妖精の村で\\c[3]フェンリル\\c[0]という狼が暴れまわっています\\n"+ "私たち妖精族には\\c[3]フェンリル\\c[0]に立ち向かう力はありません\\n"+ "どうか、\\c[3]フェンリル\\c[0]を討伐し、"+ "私たちの村に平穏な夜を取り戻してください!!\\p"+ "\\c[3]フェンリル\\c[0]は漆黒の毛並みと真紅の眼を持ち、"+ "その体は通常の狼の3倍もあるそうです\\n"+ "それだけではなく、爪や牙は鋭く、口からは炎までも放つ恐ろしい狼です\\n\\n"+ "\\c[3]フェンリル\\c[0]を倒せる程の強者を探しています" ], #----------------------------------------------------------------------------- 3 => [ # クエスト名, "初級試練@1", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(1, 0), # 成功時にランク上昇 # 初期状態 StXXX.new, StGuild.new(true), # ギルドのクエスト、初期表示ON # 前提条件[CondXXX.new, …], [], # 条件なし # クリア条件[CondXXX.new, …], [CondItem.new(1, 2)], # アイテム[1]×2持っている # 報酬[RsltXXX.new, …], [RsltMoney.new(500), # 成功時:500G RsltItem.new(2), # 成功時:アイテム[2] RsltCmnEv.new(1), # 成功時:コモンイベント[1] RsltLevel.new(0, 1, false)], # 成功時:全員Lv+1、報酬欄には表示しない # スイッチ操作Sw.new(play, clear, fail), Sw.new, # SW操作しない # クエスト内容 "簡単な仕事" ], #----------------------------------------------------------------------------- 4 => [ # クエスト名, "初級試練@2", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(4, 0), # 成功時にランク+1 # 初期状態 StXXX.new, StGuild.new(true), # ギルドのクエスト、初期表示ON # 前提条件[CondXXX.new, …], [CondQuestT.new(2), # クエスト[2]が完了(成功)していること CondQuestT.new(3)], # クエスト[3]が完了(成功)していること # クリア条件[CondXXX.new, …], [CondItem.new(1, 2), # アイテム[1]×2、クリア時に減らす CondEv.new("話かける")], # イベントからquest_clear/quest_failをする必要あり、進捗欄の表示名称"話しかける" # 報酬[RsltXXX.new, …], [RsltMoney.new(1000)], # 成功時:1000G # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # SW操作しない # クエスト内容 "この程度な仕事" ], #----------------------------------------------------------------------------- 5 => [ # クエスト名, "中級試練@1", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(5, 0), # 成功時にランク+1 # 初期状態 StXXX.new, StGuild.new, # ギルドのクエスト、初期表示OFF # 前提条件[CondXXX.new, …], [CondQuestT.new(4)], # クエスト[4]が完了(成功)していること # クリア条件[CondXXX.new, …], [CondWeapon.new(1, 2, false)], # 武器[1]×2、クリア時に減らさない # 報酬[RsltXXX.new, …], [RsltMoney.new(2500)], # 成功時:2500G # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # SW操作しない # クエスト内容 "出来て当然の仕事" ], #----------------------------------------------------------------------------- 6 => [ # クエスト名, "中級試練@2", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(6, 0), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(5)], # クリア条件[CondXXX.new, …], [CondArmor.new(1, 2), CondEv.new("話しかける")], # 報酬[RsltXXX.new, …], [RsltMoney.new(5000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "ようやく一人前な仕事" ], #----------------------------------------------------------------------------- 7 => [ # クエスト名, "上級試練@1", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(7, 0), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(6)], # クリア条件[CondXXX.new, …], [CondMoney.new(50)], # 報酬[RsltXXX.new, …], [RsltMoney.new(10000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "お前に任せたっ仕事" ], #----------------------------------------------------------------------------- 8 => [ # クエスト名, "上級試練@2", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(8, 0), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(7)], # クリア条件[CondXXX.new, …], [CondMoney.new(500), CondEv.new("話しかける")], # 報酬[RsltXXX.new, …], [RsltMoney.new(25000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "お前じゃなきゃできないっ仕事" ], #----------------------------------------------------------------------------- 9 => [ # クエスト名, "神への冒涜", # 依頼主(""なら表示なし), "マフート", # ランク Rank.new(quest, r_next, r_down), Rank.new(9, 0, 0), # 成功時:ランク+1、失敗時:ランク-1 # 初期状態 StXXX.new, StEv.new, # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltMoney.new(50000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(21, 22, 23), # クエスト内容 "神\\c[3]アヌビス\\c[0]が冥界の使徒を引き連れ、地上界へ攻めこんでくるらしい\\n"+ "冥界の力は強大、このままでは地上界は崩壊してしまうのは確実・・・\\n\\n"+ "神\\c[3]アヌビス\\c[0]の野望を阻止し、この地上界を守ってくれ!!" ], #----------------------------------------------------------------------------- 10 => [ # クエスト名, "深紅の魔王", # 依頼主(""なら表示なし), "水棲ウンディーネ", # ランク Rank.new(quest, r_next, r_down), Rank.new(10, nil, 1), # 成功時:変動なし、失敗時:ランク1へダウン # 初期状態 StXXX.new, StEv.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(9)], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltMoney.new(100000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(24, 25, 26), # クエスト内容 "魔王\\c[3]ディアボロス\\c[0]を倒してください" ], #----------------------------------------------------------------------------- 11 => [ # クエスト名, "秘宝の謎(仮)", # 依頼主(""なら表示なし), "謎の紳士", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new(true, true, false), # 前提条件[CondXXX.new, …], [CondMoney.new(100)], # クリア条件[CondXXX.new, …], [CondActor.new(1), # アクター[1]がいる CondEnemy.new(30), # エネミー[30]を1体倒した CondLevel.new(0, 50), # 平均レベル50以上 CondMoney.new(10000), # 10000G持っている CondItem.new(1), # アイテム[1] CondWeapon.new(4,2), # 武器[4]×2 CondArmor.new(16), # 防具[16] CondSw.new(1), # スイッチ[1]がON CondVal.new(1, 7), # 変数[1]が7以上 CondQuestT.new(10) # クエスト[10]が完了(成功) ], # 報酬[RsltXXX.new, …], [RsltMoney.new(500000), # 成功時:500000G RsltItem.new(24), # 成功時:アイテム[24] RsltItem.new(29), # 成功時:アイテム[29] RsltItem.new(30), # 成功時:アイテム[30] RsltItem.new(31)], # 成功時:アイテム[31] # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # SW操作しない # クエスト内容 "数々の試練を乗り越えて、かの神聖なる大地にたどり着いた私は、"+ "そこである秘宝を見つけた\\n"+ "しかし、私にはあの宝に秘められし、謎を解読できなかった・・・\\n"+ "どこかにこの秘宝の謎を解くことのできる賢者はいないだろうか?" ], #----------------------------------------------------------------------------- 20 => [ # クエスト名, "\\e[11]バスターズ", # 依頼主(""なら表示なし), "\\n[6]", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new(true), # ギルドのイベント # 前提条件[CondXXX.new, …], [], # 条件なし # クリア条件[CondXXX.new, …], [CondEnemy.new(11, 10)], # エネミー[11]×10 倒す # 報酬[RsltXXX.new, …], [RsltMoney.new(1000)], # 成功時:1000G # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(7), # 開始SW[7]、成功SW・失敗SWなし # クエスト内容 "どうやら地下道で\\c[1]アレ\\c[0]が出るらしい・・・\\n"+ "怖がる者が多いから\\c[3]\\e[11]\\c[0]たちを退治してくれないか?\\n"+ "言っておくが・・・おっ、俺が怖いわけではないぞ?!" ], #----------------------------------------------------------------------------- 21 => [ # クエスト名, "\\e[13]退治", # 依頼主(""なら表示なし), "\\n[4]", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new(true), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondEnemy.new(13, 5)], # 報酬[RsltXXX.new, …], [RsltMoney.new(2000), # 成功時:2000 G RsltQuestS.new(22)], # 成功時:クエスト[22]を開始 # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(8), # 開始SW[8]、成功・失敗SWなし # クエスト内容 "北西の神殿に\\e[13]たちが蔓延ってるらしい\\n"+ "モンスターどもを排除して、神殿を守ってくれないか?" ], #----------------------------------------------------------------------------- 22 => [ # クエスト名, "\\e[23]討伐", # 依頼主(""なら表示なし), "\\n[3]", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondEnemy.new(23, 1)], # 報酬[RsltXXX.new, …], [RsltMoney.new(5000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(9), # クエスト内容 "南東部の鉱山に\\e[23]が出現したらしい\\n"+ "\\e[23]を倒し、鉱山に平和を取り戻してくれ!" ], #----------------------------------------------------------------------------- 23 => [ # クエスト名, "秘薬コレクター", # 依頼主(""なら表示なし), "\\n[5]", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new(true), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondItem.new(7, 2)], # 報酬[RsltXXX.new, …], [RsltMoney.new(1000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "世にも珍しい秘薬を集めています\\n"+ "今回は\\i[7]という秘薬を探しているのですが、"+ "どこかに\\i[7]を持っている方はいませんか?" ], #----------------------------------------------------------------------------- 24 => [ # クエスト名, "\\j[5]試験", # 依頼主(""なら表示なし), "\\j[5]協会", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuildEv.new(true), # クエストはギルドで受ける # イベントからquest_clear / quest_failすると完了(ギルドへの報告はなし) # 初期表示ON # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltMoney.new(1000), # 成功時:1000G RsltMoneyP.new(1000), # 失敗時:1000G失う RsltClass.new(5, 1)], # 成功時:アクター[1]がクラス[5]にクラスチェンジ # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "西の大国で\\j[5]試験が開かれます\\n"+ "この試験に合格すると、\\j[5]の称号を得ることができます\\n"+ "\\j[5]になりたいそこのあなた!\\nぜひ参加してみてください" ], #----------------------------------------------------------------------------- 25 => [ # クエスト名, "奥義習得!", # 依頼主(""なら表示なし), "闘法腐敗", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuildEv.new(true, false), # クエストはギルドで受ける # イベントからquest_clear / quest_failすると完了(ギルドへの報告はなし) # 初期表示ON、報酬表示OFF # 前提条件[CondXXX.new, …], [CondActor.new(1), # アクター[1]がいる CondMoney.new(100)], # 100G手数料として支払う # クリア条件[CondXXX.new, …], [CondActor.new(1), # アクター[1]がいる CondClass.new(1,1), # アクター[1]のクラスがクラス[1] CondSkill.new(57,1), # アクター[1]がスキル[57]を習得している CondMoney.new(1000, false)], # 1000G持っている(支払いはしない) # 報酬[RsltXXX.new, …], [RsltSkill.new(65, 1), # 成功時: アクター[1]がスキル[65]を習得 RsltSkill.new(66, 1), # 成功時: アクター[1]がスキル[66]を習得 RsltSkill.new(71, 1), # 成功時: アクター[1]がスキル[71]を習得 RsltSkill.new(72, 1)], # 成功時: アクター[1]がスキル[72]を習得 # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "我が奥義を伝授してやろう!\\n\\n\\n\\n\\n\\n\\n\\n\\n"+ "\\x[200]by 闘法腐敗" ], #----------------------------------------------------------------------------- 26 => [ # クエスト名, "鉄姫", # 依頼主(""なら表示なし), "アイアン・メイデン", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new(true), # ギルドのクエスト、初期表示ON # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondArmor.new(9), # 防具[9] CondArmor.new(19)], # 防具[19] # 報酬[RsltXXX.new, …], [RsltMoney.new(2000), # 成功時:2000G RsltQuestT.new(27)], # 成功時:クエスト[27]の表示ON # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "鉄の防具を我が手に・・・" ], #----------------------------------------------------------------------------- 27 => [ # クエスト名, "鉄姫U", # 依頼主(""なら表示なし), "アイアン・メイデン", # ランク Rank.new(quest, r_next, r_down), Rank.new(1), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(26)], # クエスト[26]が完了(成功)していること # クリア条件[CondXXX.new, …], [CondWeapon.new(7)], # 報酬[RsltXXX.new, …], [RsltMoney.new(4000)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(0, 27, 0), # 開始SWなし、成功SW[27]、失敗SWなし # クエスト内容 "鉄の武器を我が手に・・・" ], #----------------------------------------------------------------------------- 28 => [ # クエスト名, "鉄姫V", # 依頼主(""なら表示なし), "", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StEv.new, # 前提条件[CondXXX.new, …], [CondQuestT.new(27)], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltMoney.new(8000), RsltWeapon.new(2), RsltWeapon.new(6), RsltWeapon.new(26), RsltWeapon.new(30), RsltArmor.new(9), RsltArmor.new(19)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new(27, 0, 0), # クエスト内容 "アイアン・メイデンの怨念が\\n[1]たちを襲う!" ], #----------------------------------------------------------------------------- 30 => [ # クエスト名, "レベルアッパー", # 依頼主(""なら表示なし), "風紀委員", # ランク Rank.new(quest, r_next, r_down), Rank.new(1, 5), # 成功時:ランク5までアップ # 初期状態 StXXX.new, StGuild.new(true, false, false), # ギルド、初期表示ON、報酬表示OFF、進捗表示OFF # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondEv.new("犯人確保")], # イベントからquest_clear / quest_failする # 報酬[RsltXXX.new, …], [RsltLevel.new(0, 10), # 成功時:全員のLv+10 RsltLevelP.new(0, 10)], # 失敗時:全員のLv-10 # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "簡単に能力の上がる道具があるらしい" ], #----------------------------------------------------------------------------- 31 => [ # クエスト名, "シスターズ", # 依頼主(""なら表示なし), "電撃使い", # ランク Rank.new(quest, r_next, r_down), Rank.new(2, 5), # 成功時:ランク5までアップ # 初期状態 StXXX.new, StGuild.new(true, false, false), # ギルド、初期表示ON、報酬表示OFF、進捗表示OFF # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltQuestF.new(30), # 成功時:クエスト[30]の表示OFF RsltQuestT.new(32)], # 成功時:クエスト[32]の表示ON # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "クローンの製造が行われているらしい" ], #----------------------------------------------------------------------------- 32 => [ # クエスト名, "ラストオーダー", # 依頼主(""なら表示なし), "一方通行", # ランク Rank.new(quest, r_next, r_down), Rank.new(3, 5), # 初期状態 StXXX.new, StGuild.new, # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "クローンを使ったテロが計画されているらしい" ], #----------------------------------------------------------------------------- 41 => [ # クエスト名, "街崩壊", # 依頼主(""なら表示なし), "黒衣の騎士", # ランク Rank.new(quest, r_next, r_down), Rank.new(2), # 初期状態 StXXX.new, StGuild.new(true, false, false), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltQuestT.new(44)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "ある街のエネルギー源が切れ、崩壊の危機が訪れている" ], #----------------------------------------------------------------------------- 42 => [ # クエスト名, "空中庭園", # 依頼主(""なら表示なし), "空賊", # ランク Rank.new(quest, r_next, r_down), Rank.new(2), # 初期状態 StXXX.new, StGuild.new(true, false, false), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltQuestT.new(44)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "厚い雲におおわれた空中に浮かぶ島が存在するらしい" ], #----------------------------------------------------------------------------- 43 => [ # クエスト名, "千里眼からの逃走", # 依頼主(""なら表示なし), "双剣", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StGuild.new(true, false, false), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [RsltQuestT.new(45)], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "双剣使いの少年は生まれた街からの逃走を図るが、"+ "追っ手には千里眼を持つ姉がいた・・・" ], #----------------------------------------------------------------------------- 44 => [ # クエスト名, "世界樹の種", # 依頼主(""なら表示なし), "人形使い", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StGuild.new(false, false, false), # 前提条件[CondXXX.new, …], [CondQuestT.new(41), CondQuestT.new(42)], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "人形使いの少年は世界樹の種を持って、ある研究所へ向かおうとしていた" ], #----------------------------------------------------------------------------- 45 => [ # クエスト名, "己の正義", # 依頼主(""なら表示なし), "悪魔使い", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StGuild.new(false, false, false), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondQuestT.new(43), CondQuestT.new(44)], # 報酬[RsltXXX.new, …], [], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "己の正義をかけ、悪魔使いの少女は幻影使いの少年と対峙する" ], #----------------------------------------------------------------------------- 46 => [ # クエスト名, "未来を託して", # 依頼主(""なら表示なし), "執政官", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StGuild.new(true, false, false), # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [CondQuestT.new(45)], # 報酬[RsltXXX.new, …], [], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "なりゆきから、ある人物の護衛につく事になったが・・・" ], #----------------------------------------------------------------------------- 50 => [ # クエスト名, "地下水路の魔獣", # 依頼主(""なら表示なし), "ギルドマスター", # ランク Rank.new(quest, r_next, r_down), Rank.new(5), # 初期状態 StXXX.new, StGuild.new(true, false, false, [1]), # 特定ギルド用クエスト # 前提条件[CondXXX.new, …], [], # クリア条件[CondXXX.new, …], [], # 報酬[RsltXXX.new, …], [], # スイッチ操作Sw.new(play_sw, clear_sw, fail_sw), Sw.new, # クエスト内容 "地下水路に強力な魔獣グリファンが出没している。\\n"+ "ギルドメンバーは早急に対処するように。" ], #----------------------------------------------------------------------------- #=end ## 設定サンプル[END] } #============================================================================== #【イベント追記用 自由記述欄】 # イベントスクリプトで入力できる文字数に制限があるので # ここに固定値を用意しておくことで長い文章も入力可能になる #============================================================================== #=begin ## 設定サンプル[START] Q_1_CLEAR = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "娘は無事かえってきました\\nありがとうございます" Q_1_FAIL = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "・・・私から言うことは何もありません" Q_2_CLEAR = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "\\c[3]フェンリル\\c[0]を討伐して頂き、ありがとうございました\\n"+ "これで私たちの村にも平穏な日々が帰ってきます" Q_2_FAIL = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "村が・・・\\nはやり、人間なんかに助けを求めたのが間違いだったのですね・・・" Q_9_CLEAR = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "神\\c[3]アヌビス\\c[0]を倒すことはできなかったが、冥界からの侵略は阻止することができた\\n"+ "天界を代表し、心から礼を言おう" Q_9_FAIL = "\\p\\c[1]【クエスト結果】\\c[0]\\n"+ "やはり人間風情には荷が重かったか・・・\\nこの地上界はもう終わりだ" #=end ## 設定サンプル[END] #============================================================================== # ■ スクリプトによる条件チェック(上級者向け) # 前提条件、クリア条件でCondScriptクラスを設定した場合のみ設定必要です #============================================================================== class Condition #-------------------------------------------------------------------------- # ● 条件チェック #【説明】 # 条件に適合しているか? #【引数】 # id : 設定時に入れたid # num : 設定時に入れたnum #【戻り値】 # true : 条件に適合 # false : 条件に不適合 #-------------------------------------------------------------------------- def script_clear?(id, num) =begin # 例 case id when 0 # パーティー人数チェック return ($game_party.members.size >= num) # 人数がnum以上なら条件適合 when 1 # パーティー人数チェック return ($game_party.members.size <= num) # 人数がnum以下なら条件適合 end =end return true end #-------------------------------------------------------------------------- # ● 条件不適合時のメッセージ #【説明】 # 条件に適合していないかった場合のメッセージ #【引数】 # type : 前提条件未適合(0) or クリア条件未適合(1) # id : 設定時に入れたid # num : 設定時に入れたnum #【戻り値】 # メッセージ表示する文章 #-------------------------------------------------------------------------- def script_cause(type, id, num) =begin # 例 case id when 0 # パーティー人数チェック return "パーティー人数が\\nあと#{(num - $game_party.members.size)}人、足りません" when 1 # パーティー人数チェック return "パーティー人数を\\n#{num}人以下にする必要があります" end =end return (type==0 ? "開始" : "クリア") + "条件が満たされていません" end end end