rebf-gaiden/Scripts/_.22.rb
2025-04-26 17:06:34 -05:00

1654 lines
No EOL
53 KiB
Ruby
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=begin
RGSS3
★ 冒険メモ ★
現在のあらすじなど、任意の文章を表示する項目をメニューに追加します。
サブイベントの管理もできます。
● 仕様 ●==========================================================
イベントでのメッセージ表示と同様の制御文字が使用可能です。
使用する場合は\マークを2つ続けて入力するようにしてください。
【例】
\N[2] => \\N[2]
\C[1] => \\C[1]
====================================================================
※ RPGツクールVX サンプルゲーム「レクトールと黒獅子の紋章」にて
使用されているスクリプトを参考にしています。
ver1.00
Last Update : 2012/03/18
03/18 : 新規
ろかん   http://kaisou-ryouiki.sakura.ne.jp/
=end
#===========================================
# 設定箇所
#===========================================
module STORYEVENT
# メニューに表示される項目名
STORYEVENT_MENU_TEXT = "冒険メモ"
# 項目が表示されるメニューインデックス(一番上が0)
STORYEVENT_MENU_INDEX = 5
# 項目が有効になるスイッチ番号
STORYEVENT_ENABLE_SID = 5
#------------------------------------------------------------------------------
# あらすじに表示する見出し
STORYEVENT_CAPTION = "ストーリー"
# あらすじを管理する変数番号
STORYEVENT_VID = 18
# あらすじの設定
#【形式】
# ① => [②, ③],
# ① STORYEVENT_VIDに格納されている値(数値)
# ② 進行中ストーリーの名前(文字列)
# ③ 進行中ストーリーの詳細(文字列)
STORYEVENT_CONTENTS = {
1 => ["【エピソード0】チュートリアル",
"\\}別世界へと転移してきた謎の青年…彼はかつての戦闘力を失っていた。
まずはこの世界での戦いに慣れるべく訓練する必要がありそうだ。"],
20 => ["【エピソード1】グルームの少年",
"\\}フレイア大神殿で修道士を勤める\\N[1]にはもう一つの顔があった…
それは教皇に仇なす背教者に神罰を与える役目だ。
全ては教皇の為…心の中でそう誓い、今日も神殿の中で何かを思う。"],
24 => ["【エピソード1】グルームの少年",
"\\}次の任務が来るまではいつもどおりである…
神殿からの雑用を片付ける為にメマ神官の元へ向かおう。"],
26 => ["【エピソード1】グルームの少年",
"\\}使い魔を通して次の任務が与えられる…いつものように懺悔室へ向かおう。"],
27 => ["【エピソード1】グルームの少年",
"\\}受け取った指令書には次の任務が書かれている…自室で開けてみよう。"],
30 => ["【エピソード1】グルームの少年",
"\\}任務の集合場所はスードリ草原…そこで待っている依頼主の所へ行こう!"],
32 => ["【エピソード2】大神官の依頼",
"\\}依頼主はなんと大神官エルニンだった、
秘密裏に彼女の護衛を引き受けた\\N[1]はスードリ草原の奥地へと足を進める。"],
41 => ["【エピソード2】大神官の依頼",
"\\}教皇の姿を見に大聖堂へ急ごう。"],
50 => ["【エピソード2】大神官の依頼",
"\\}初めて見た教皇の姿は、神殿の人々に衝撃を与えた…
彼女は神罰に心を痛めている?では自分がやっていたことは誰のためなのか?"],
55 => ["【エピソード2】大神官の依頼",
"\\}再び大神官からの護衛任務を与えられた\\N[1]は、砂漠蟻の巣へと向かうことに…
そこには前回と同じく従者ルーの姿があった。"],
80 => ["【エピソード3】神罰と覚悟",
"\\}人の命を奪う任務ではなく、護る任務をやり遂げた\\N[1]…
彼の心の中で何かが、少しずつ揺らぎ始めていた。"],
86 => ["【エピソード3】神罰と覚悟",
"\\}懺悔室の指令で\\N[1]に与えられた物は神罰用の暗器だった…
ターゲットはバレルゼンのホテルにいる人物…
久しぶりにこの手を血で染める時が来たのだった。"],
95 => ["【エピソード3】神罰と覚悟",
"\\}\\N[1]の中で少しずつ何かが変わっていることに気づいたビダール…
しかし次に牙の任務に失敗した時に、自分等の居場所はあるのか?
尻元に突き立てられた刃は何も答えない。"],
96 => ["【エピソード3】神罰と覚悟",
"\\}部屋に戻って休もう…"],
100 => ["【エピソード3】神罰と覚悟",
"\\}懺悔室で依頼主が待っている…"],
102 => ["【エピソード4】覚醒",
"\\}次の失敗は許されない…そんな\\N[1]の前に現れたのはエルニン大神官だった。
3度目の護衛任務の為に氷結の洞窟へと向かうことになるが…
心の何処かで安堵している自分がいた。"],
111 => ["【エピソード4】覚醒",
"\\}聖都が魔族の襲撃を受けている!
エルニンとルーを神殿まで護衛しようとするが、とある魔族がそれを狙っていた。"],
117 => ["【エピソード5】最後の巡礼",
"\\}教皇は最後の巡礼の同行者として、再び\\N[1]に護衛を申しつけた。
最後の巡礼地…そこは熱気漂うムジョルニア火山であった。"],
122 => ["【エピソード6】ベラドンナの香り",
"\\}全ての巡礼は終わり、教皇から別れを告げられた\\N[1]…
出来ればこの先も彼女の為に戦いたい…しかしそれは叶わぬ夢なのだろう。
そして牙からの指令を静かに待っていたのだった。"],
125 => ["【エピソード6】ベラドンナの香り",
"\\}牙からの久しぶりの指令は、神殿内にいる重要人物への神罰だった…
そして牙から一つの条件が告げられる…それが達成された暁には
暗殺者からの除名が許可されるという条件であった。"],
127 => ["【エピソード7】再び舞う蝶",
"\\}記憶喪失の青年ノビッサは、蝶の羽という組織に救助されていた!
今回の依頼人は聖都歓楽街にある宝石商人…
果たしてそこに記憶を取り戻す鍵はあるのだろうか?"],
130 => ["【エピソード7】再び舞う蝶",
"\\}依頼人はフレイア神殿のジェマ大神官だった!
彼からの依頼は無実の罪で幽閉された少年の救出であった。
月に一度…神殿に立ち入ることができる日…決行はその時だ。"],
137 => ["【エピソード7】再び舞う蝶",
"\\}聖都の現状を聞かされた\\N[1]は、再び戦うことを決意した!
まずは神殿から脱出することを考えよう。"],
142 => ["【エピソード8】その牙は何の為に",
"\\}自分を陥れたのはビルドルフで、その魔手は神殿や教皇にまで
及ぼうとしていた。この命は教皇の為に…
\\N[1]の中に、真に戦う意味が芽生えようとしていた。"],
144 => ["【エピソード8】その牙は何の為に",
"\\}蝶の羽のアルケーから頼まれごとを受けた\\N[1]…
バレルゼンの東部にあるという貧民街に用があるそうだが…"],
152 => ["【エピソード9】決戦フレイア大神殿",
"\\}ビルドルフは偽の教皇を使い教団を我が物にしようと企んでいた!
本物の教皇が地下の最奥に囚われていると知った
蝶の羽は、救出の準備を静かに進めていたのだった。"],
155 => ["【エピソード9】決戦フレイア大神殿",
"\\}反撃の準備は整った!\\N[1]達は神殿の最下層へと
足を踏み入れる。
そこで一行が見た物とは…"],
165 => ["【エピソード10】魔王受肉",
"\\}教皇は無事救出できた…しかしその代償として、結界の要でもある
アウルの心臓を奪われてしまった。
魔族たちは心臓の力で、とあるモノの復活を目論んでいたようだ。"],
166 => ["【エピソード10】魔王受肉",
"\\}奪われた心臓と魔族の隠れ家が判明した!
まずはジェマ大神官の部屋へ行こう。"],
167 => ["【エピソード10】魔王受肉",
"\\}奪われた心臓の行方と魔族の隠れ家が判明した!
\\N[1]は最後の戦いの為に、大陸南部にある名無しの島へと足を運ぶ。"],
200 => ["ゲームクリア",
"\\}聖都や大陸ではまだまだ未解決の事件が残っている…
それらを解決してみよう。"],
201 => ["【エピソードX】求道者の野望",
"\\}ビダールからの救援信号を受信した!
西にあるヴァルフレイア神殿跡の地下…そこで彼らを待つモノとは。"],
500 => ["真ゲームクリア",
"to be continued"],
}
#------------------------------------------------------------------------------
# サブイベントリストに表示する見出し
SUBEVENT_CAPTION = "クエスト一覧"
# サブイベント達成率部分に表示する項目名
SUBEVENT_CLEARTEXT = "出現率"
# サブイベント詳細画面で使用されるウィンドウスキン名
SUBEVENT_SKIN = "Window"
SUBEVENT_SKINb = "Windowb"
# クリアしたサブイベントに表示する文字列
# サブイベント詳細画面に表示されます
SUBEVENT_CLEARED_TEXT = "- クリア -"
# クリアしたサブイベントに表示するアイコンID
# サブイベントリストに表示されます
SUBEVENT_CLEARED_ICON = 539
# サブイベントスタートと見做す変数値
# サブイベントに対応する変数に、ここでの設定値以上の値が格納されている場合、
# イベント実行中と判断され、サブイベントリストに表示されるようになります
SUBEVENT_STARTED = 1
# サブイベントクリアと見做す変数値
# サブイベントに対応する変数に、ここでの設定値以上の値が格納されている場合、
# イベントクリアと判断され、サブイベントリストの表記がクリア時のものになります
SUBEVENT_CLEARED = 99
# サブイベントの概要設定
#【形式】
# ① => [②, ③, ④],
# ① サブイベントに対応する変数番号(数値)
# ② 進行中サブイベントの名前。サブイベントリストに表示(文字列)
# ③ サブイベント発生中の文章。サブイベント詳細画面に表示(文字列) ※
# ④ サブイベントクリア後の文章。サブイベント詳細画面に表示(文字列)
#
# ※ SUBEVENT_CONTENTSに有効な設定がある場合はそちらが優先されます。
SUBEVENT_TITLES = {
#101 => ["大統領に手紙を","",""],
102 => ["海岸のゴミ拾い","",""],
103 => ["別荘売ります","",""],
104 => ["荷馬車護衛求む","",""],
105 => ["自惚れ者を分からせろ","",""],
106 => ["野良ガーディアン討伐","",""],
107 => ["ワルハラの花の採取","",""],
108 => ["傭兵救出","",""],
109 => ["求・化粧品","",""],
110 => ["フレイア一番くじ","",""],
111 => ["エユタヤーのトムヤンクン","",""],
112 => ["求・雇用主","",""],
113 => ["聖書を届けて","",""],
114 => ["キッスプラント駆除","",""],
115 => ["求・グリフォンの卵","",""],
116 => ["求・フェーニの下着×3","",""],
117 => ["求・状態異常付与カード","",""],
118 => ["求・鉄鉱石5つ","",""],
119 => ["太陽のレース","",""],
120 => ["鳥人間をやっつけろ","",""],
121 => ["ヴァルキリーの試練","",""],
122 => ["牙の最後の試練","",""],
123 => ["魔法使い救出","",""],
124 => ["違法店への潜入捜査","",""],
125 => ["奴隷商人を追え","",""],
126 => ["画家の悩み","",""],
127 => ["脱走者を追え","",""],
128 => ["求・5色のハーブ","",""],
129 => ["考古学者と遺跡の巨人伝","",""],
130 => ["動く島の謎","",""],
131 => ["不老不死の水","",""],
132 => ["ババヤンの魔術","",""],
133 => ["青いゼリンの謎","",""],
134 => ["暴食の魔獣","",""],
135 => ["地下からの脅威","",""],
136 => ["鳥人間の女王","",""],
137 => ["動き出した残党たち","",""],
138 => ["ムジョルニア火山の秘密","",""],
139 => ["限界突破","",""],
140 => ["親の仇","",""],
141 => ["生命研究所跡探索","",""],
142 => ["聖十字隊からの挑戦","",""],
143 => ["神器作成の文献","",""],
144 => ["闘技場の鬼","",""],
145 => ["賢者バルムンク","",""],
146 => ["聖職者育成ツアーを救え!","",""],
147 => ["忘れられた島","",""],
148 => ["現れた幽霊船","",""],
149 => ["修道士童貞争奪戦","",""],
150 => ["教皇とルーの覚めない夢","",""],
151 => ["鍵を開けてください","",""],
152 => ["ゴブリンの巣","",""],
153 => ["聖都式逮捕術","",""],
154 => ["求道者の野望","",""],
}
# サブイベントの詳細設定
#【形式】
# ① => [[②, ③], [②, ③], [②, ③],......],
# ① サブイベントに対応する変数番号(数値)
# ② ①に格納されている値(数値)
# ③ ②の条件を満たす際のサブイベント発生中の文章。サブイベント詳細画面に表示(文字列)
SUBEVENT_CONTENTS = {
#101 => [
#[1, "【場所】  コモドカジノ跡
#閉鎖したコモドカジノを冒険者ギルドとして再利
#用する事にした、受付には話を通してある、是非
#とも一度訪れてくれ。"],
#],
102 => [
[1, "      ティアーズビーチ
      フレイア大神殿・階段前の女神官
      1000ジェニス
海岸に流れ着いたゴミの掃除を
してくれる人募集
           \\C[1]2\\C[0]"],
],
103 => [
[1, "      ラ・フェール歓楽街
      ラ・フェール不動産
      拠点地
北西の空き物件売ります!
…というか誰か買って!
お願いします!
           \\C[1]?\\C[0]"],
],
104 => [
[1, "      行商海道
      聖都南門前の商人
      歓楽街通行許可証
最近、うちの荷馬車が盗賊に
襲われて困っているので
腕利きの用心棒がほしい。
腕に覚えのあるものは
依頼人の所まで!
           \\C[1]9\\C[0]"],
],
105 => [
[1, "      ベインスゥ・酒場
      
      特別経験値5000
自信過剰な知り合いを
分からせてくれる腕利きの男性
探してます。
興味のある方は
ベインスゥの酒場まで。
           \\C[1]28\\C[0]"],
],
106 => [
[1, "      ムジョルニア火山03
      ベインスゥ・酒場
      5000ジェニス
ムジョルニア火山03エリアで
野良のガーディアンが暴れていて
手に負えない!
討伐してくれる者を探している。
           \\C[1]25\\C[0]"],
],
107 => [
[1, "      ヴァルフレイア神殿跡
      フレイア大神殿礼拝堂の修道女
      1000ジェニス
献花用の花を切らしてしまったので
西の神殿跡から取ってきてくれる方
いませんでしょうか?
           \\C[1]1\\C[0]"],
],
108 => [
[1, "      砂漠蟻の巣
      聖都南東で待つ細長い顔の傭兵
      3000ジェニス
砂漠蟻の巣に向かった
3人の仲間たちが帰ってこない…
嫌な予感がする。
           \\C[1]12\\C[0]"],
],
109 => [
[1, "      歓楽街バー・スクサマッド
      ランカー嬢
      プリズムステッキ
いい化粧品探してるんだけどぉ~
誰か持ってきて~
           \\C[1]?\\C[0]"],
],
110 => [
[1, "      ヴァルキリー礼拝堂
      みんなの聖母ちゃん
      豪華景品あり!
フレイアいちばんくじキャンペーンを
始めました!
豪華景品たくさんございますので
ふるってご参加下さい。
           \\C[1]?\\C[0]"],
],
111 => [
[1, "      エユタヤー大衆酒場
      観光客
      料理詰め合わせ
トムヤンクンが食べたい…
はるばるここまで来たのに
売り切れだと?
           \\C[1]?\\C[0]"],
],
112 => [
[1, "      歓楽街にある旅の酒場
      傭兵のクルセイダーとプリースト
      サポーターとして加入
路銀が尽きてしまったので
雇用主を探している…
戦いの援護には自信あり!
           \\C[1]?\\C[0]"],
],
113 => [
[1, "      ラ・フェール歓楽街
      神殿正門・ベンチ前の修道士
      1500ジェニス
歓楽街に住む知り合いに聖書を
届けてほしい…
           \\C[1]?\\C[0]"],
],
114 => [
[1, "      ヴァルフレイア神殿跡
      聖都中央右ベンチの中年
      2000ジェニス
神殿跡にキッスプラントが
出現したので駆除してほしい。
           \\C[1]6\\C[0]"],
],
115 => [
[1, "      大神殿訓練室
      聖十字隊員
      モンスター捕獲の方法
野生のグリフォンを捕まえてくれる
人を探している。
捕まえ方は教えるので
初心者でもOK
           \\C[1]3\\C[0]"],
],
116 => [
[1, "      ベインスゥの宿
      ローブ職人
      ボス耐性のカード
フェーニの下着を探している…
出来れば3枚頼む
           \\C[1]24\\C[0]"],
],
117 => [
[1, "      大神殿・北図書エリア
      老学者
      カードデル20
状態異常を付与するカードを
探している…
ただしレアカードは対象外じゃ
           \\C[1]?\\C[0]"],
],
118 => [
[1, "      聖都・鍛冶ギルド
      店主
      製錬所解放
鍛冶場を開けようと思ったんだけど
鉄鉱石が足りなくなってねぇ…
どうしていつも鉄鉱石が
不足するのか謎だよ。
           \\C[1]?\\C[0]"],
],
119 => [
[1, "      大神殿・入口付近 
      情熱を燃やす神官
      黄金の林檎
朝礼で最前列を確保したいのだが、
朝の場所取りのマラソンでいつも負け
てしまう。
足の速い代行者に席取りを頼みたい
のだ!
           \\C[1]?\\C[0]"],
],
120 => [
[1, "      ポルナトル渓谷
      神殿医務室の神官
      3000ジェニス
渓谷に現れる鳥人間たちによる
被害が続出して困っている。
彼女たちを軽く懲らしめて
やってほしい。
           \\C[1]17\\C[0]"],
],
121 => [
[1, "      聖都・ヴァルキリー礼拝堂
      
      新たなる力
若き戦士よ、この先の戦いには
新たな力が必要でしょう…
ヴァルキリー礼拝堂にて
お待ちしております。
           \\C[1]20\\C[0]"],
],
122 => [
[1, "      フレイア大神殿・地下3号棟入口
      
      
汝に最後の試練を与える…
           \\C[1]50\\C[0]"],
],
123 => [
[1, "      氷結の洞窟2B
      魔術師アヒオ
      とっておきの物
だ、誰か助けてくれ…
俺はここから一歩もうごけな…
           \\C[1]20\\C[0]"],
],
124 => [
[1, "      歓楽街の違法店
      宝石店店員
      宝石セット
うちのお得意様が君たちに仕事を
頼みたいそうだ…
是非とも力になってあげてほしい。
           \\C[1]40\\C[0]"],
],
125 => [
[1, "      歓楽街のどこか
      懺悔室前の神官
      3500ジェニス
教皇のお膝元で奴隷商人が
幅を利かせているらしい…
これは、どうにかしないといけない。
           \\C[1]15\\C[0]"],
],
126 => [
[1, "      企業都市バレルゼン公園
      画家
      彫刻刀
ネタが浮かばない…
誰か…私に創作の種を与えてくれ!
           \\C[1]?\\C[0]"],
],
127 => [
[1, "      大陸各所
      聖都北・石像前の教徒
      ユグドラシルの果実3つ
人を捜してほしいのです。
取り返しの付かないことになる前に…
           \\C[1]?\\C[0]"],
],
128 => [
[1, "      エユタヤー
      橋の上のシャーマン
      プレゼントボックス3つ
儀式に使うハーブを探しておる…
近くの狩り場からでも
集めてきてほしい。
           \\C[1]?\\C[0]"],
],
129 => [
[1, "      エユタヤー遺跡
      エユタヤー神殿の考古学者
      カードデル20
遺跡内部にある石碑の文章を
コピーしてきてほしいのだ…
詳細は会ってから話す。
           \\C[1]35\\C[0]"],
],
130 => [
[1, "      モスフィア島
      ホラ吹きベルウエフ
      黒の魔石
俺は見たんだ!巨大な動く島を…
それを話しても誰も信じてくれない。
こうなったら外から腕利きの冒険者を
雇い入れて…
あっ、モスフィア島には空港から
行けるからよろしくね。
           \\C[1]?\\C[0]"],
],
131 => [
[1, "      モスフィア王宮
      モスフィア王
      金塊3つ
動く島を見つけたと言われる冒険者に
是非とも頼みたいことがある。
宮殿まで来てもらえないだろうか?
           \\C[1]39\\C[0]"],
],
132 => [
[1, "      モスフィア王宮
      女官
      沈んだ太陽
陛下がよく話されていた冒険者…
貴方に頼みたいことがございますの。
           \\C[1]38\\C[0]"],
],
133 => [
[1, "      ホテル・ドラゴンエンペラーロビー
      デュランダル研究所員
      調査費用現地支給
新種の青いゼリンの目撃情報が確認
されたので生体データを取りたい。
戦ってくれる者を探している。
           \\C[1]20?\\C[0]"],
],
134 => [
[1, "      砂漠蟻の巣1B
      ベインスゥの負傷した冒険者
      漆黒の騎士カード
砂漠蟻の巣に凶悪なボスモンスター
が出現した!
あの舌技を前に俺達は…全滅した!
           \\C[1]50\\C[0]"],
],
135 => [
[1, "      大神殿地下
      神殿西通路の司祭
      10000ジェニス
祈祷室の地下からなにやら
不気味な音がしているのだ…
なにかの前触れでなければいいが。
           \\C[1]50\\C[0]"],
],
136 => [
[1, "      鳥人間の集落
      神殿医務室の神官
      10000ジェニス
鳥人間たちが集落で徒党と組み、
再び、旅人を襲い始めた。
背後には彼女たちを統率する
女王までもが現れたとか…
           \\C[1]50\\C[0]"],
],
137 => [
[1, "      蝶の羽ラ・フェール支部
      ゼロジー
      忠誠の証5つ
俺達が追っている研究所の残党に
ついての手がかりになりそうな
事件を嗅ぎつけた…
力を貸してほしい。
           \\C[1]38\\C[0]"],
],
138 => [
[1, "      ムジョルニア火山02
      ベインスゥの少年
      スーパーエッグボール
妹と火山に遊びにいったら怖い人が
いて…妹はそいつらに…
お願いします、妹を助けて!
助けてください!
           \\C[1]42\\C[0]"],
],
139 => [
[1, "      ヴァルフレイア神殿跡
      グルームの牙
      デスプードルカード
頭目から貴様を鍛えるようにと
言われた…待っている。
           \\C[1]50\\C[0]"],
],
140 => [
[1, "      聖都西口
      聖都市民
      サポーター????加入
最近、聖都内の女神像に
ラクガキする輩がいるようなのだ…
じつにけしからん!
           \\C[1]?\\C[0]"],
],
141 => [
[1, "      バレルゼン貧民街
      匿名
      5000ジェニス
主任から君の話は聞いている…
研究所跡の調査を頼みたい…
貧民街北西で待つ。
           \\C[1]44\\C[0]"],
],
142 => [
[1, "      大神殿訓練室
      パラコーン
      貴殿が望むならいかようにも…
話がある…
神殿の訓練室にて待っている。
           \\C[1]?\\C[0]"],
],
143 => [
[1, "      大神殿礼拝堂
      ビルドルフ派の神官
      会ってからお渡しします
貴方にお渡ししたいものが
ございます…
礼拝堂までご足労願えません
でしょうか?
           \\C[1]?\\C[0]"],
],
144 => [
[1, "      歓楽街・性技場
      歓楽街協会
      特別経験値10000
最近出没する辻斬りの実態を
調べてほしい…
性技場医務室の被害者達なら、
何か知っているかもしれない。
           \\C[1]43\\C[0]"],
],
145 => [
[1, "      宝石店2F
      ノビッサ
      とある秘伝書
教皇補佐となったお前に
頼みたいことがある…
宝石店の2階で待つ…
任務中で外出している場合は
終了後に頼む。
           \\C[1]?\\C[0]"],
],
146 => [
[1, "      名無しの島
      大神殿正門で待つ聖職者
      グールの力を宿したアレ
修行中行方不明になった
聖職者たちを救出して下さい!
           \\C[1]50\\C[0]"],
],
147 => [
[1, "      大陸南方の孤島
      フレイア調査官
      フレイア教特別接待券
大陸南部で正体不明の孤島と
知らない集落を見た…という話を
いくつも聞いている。
あの辺りには魔族が拠点としていた
島しかなかったはず…
調査を頼みたいので、\\C[1]そのまま直接
島に向かってほしい\\C[0]。
           \\C[1]55\\C[0]"],
],
148 => [
[1, "      ティアーズビーチ
      大聖堂の司祭
      プレミアムボックス3つ
南の海岸で幽霊船を見たという
噂があってな…
大神官が話がしたいとのことだ。
           \\C[1]53\\C[0]"],
],
149 => [
[1, "      大神殿食堂
      コアンタで~す
      
ちょっとお願いがあるんだけど…
食堂で待ってま~す。
           \\C[1]50\\C[0]"],
],
150 => [
[1, "      
      エルニン大神官
      それなりの対価を
非常事態です…
至急、正門前までお願いします。
           \\C[1]58\\C[0]"],
],
151 => [
[1, "      神殿西通路
      付き人修道士
      3000ジェニス
箱の鍵をうっかり無くしてしまった!
上司にバレたら怒られるのでなんとか
したい。
至急、解錠スキルを持った人を探して
ます。
           \\C[1]?\\C[0]"],
],
152 => [
[1, "      歓楽街ラフェルムーン
      顔の丸い冒険者
      5000ジェニス
ゴブリンの巣に討伐に行ったのだが奴
らの罠にかかって、仲間が一人捕らわ
れてしまった!
潜伏行動に優れた戦士を探している!
仲間を奴らの巣から助けてほしい!
           \\C[1]?\\C[0]"],
],
153 => [
[1, "      神殿正門
      石像前の女教官
      2000ジェニス
新兵の訓練に付き合ってくれる犯人役
を探している。
無抵抗で攻撃を受け続ける為、タフネ
スと我慢強さが必要とされる。
           \\C[1]6\\C[0]"],
],
154 => [
[1, "      
      ジェマ大神官
      
ゼロジー主任が調べていた例の件…
こちらでも手がかりを掴みました。
恐らく大きな決戦となるでしょう。
           \\C[1]65\\C[0]"],
],
}end
#===========================================
# ここまで
#===========================================
$rsi ||= {}
$rsi["冒険メモ"] = true
module STORYEVENT
#--------------------------------------------------------------------------
# ● 色々キャッシュ
#--------------------------------------------------------------------------
def self.cache
self.cache_story_data
self.cache_event_list
end
#--------------------------------------------------------------------------
# ● あらすじ 見出しの取得
#--------------------------------------------------------------------------
def self.story_caption
STORYEVENT_CAPTION
end
#--------------------------------------------------------------------------
# ● メインストーリー情報の取得
#--------------------------------------------------------------------------
def self.cache_story_data
@story_data = STORYEVENT_CONTENTS[$game_variables[STORYEVENT_VID]]
unless @story_data
$game_variables[STORYEVENT_VID].downto(0){|n|
if STORYEVENT_CONTENTS.has_key?(n)
@story_data = STORYEVENT_CONTENTS[n]
break
end
}
end
end
#--------------------------------------------------------------------------
# ● あらすじ タイトルの取得
#--------------------------------------------------------------------------
def self.story_title
@story_data[0]
end
#--------------------------------------------------------------------------
# ● あらすじ テキストの取得
#--------------------------------------------------------------------------
def self.story_text
@story_data[1]
end
#--------------------------------------------------------------------------
# ● サブイベント 見出しの取得
#--------------------------------------------------------------------------
def self.event_caption
SUBEVENT_CAPTION
end
#--------------------------------------------------------------------------
# ● サブイベント リスト数の取得
#--------------------------------------------------------------------------
def self.event_number
SUBEVENT_TITLES.size
end
#--------------------------------------------------------------------------
# ● サブイベントが発生しているかどうかの判定
#--------------------------------------------------------------------------
def self.event_start?(id)
$game_variables[id] >= SUBEVENT_STARTED
end
#--------------------------------------------------------------------------
# ● サブイベントをクリアしたかどうかの判定
#--------------------------------------------------------------------------
def self.event_clear?(id)
$game_variables[id] >= SUBEVENT_CLEARED
end
#--------------------------------------------------------------------------
# ● サブイベント フラグ変数リストの取得
#--------------------------------------------------------------------------
def self.cache_event_list
@event_list = SUBEVENT_TITLES.keys.sort
@event_list.sort!{|a, b|
title_a = self.event_start?(a) ? 0 : 1
title_b = self.event_start?(b) ? 0 : 1
if title_a != title_b
title_a <=> title_b
else
a <=> b
end
}
end
#--------------------------------------------------------------------------
# ● サブイベントリストのゲッター
#--------------------------------------------------------------------------
def self.event_list
@event_list
end
#--------------------------------------------------------------------------
# ● サブイベント タイトルの取得
#--------------------------------------------------------------------------
def self.event_title(id)
if event_start?(id)
SUBEVENT_TITLES[id][0]
else
"--------------------"
end
end
#--------------------------------------------------------------------------
# ● サブイベント テキストの取得
#--------------------------------------------------------------------------
def self.event_text(id)
if event_clear?(id)
SUBEVENT_TITLES[id][2]
elsif event_start?(id)
text = nil
if SUBEVENT_CONTENTS[id]
SUBEVENT_CONTENTS[id].each{|data|
text = data[1] if data[0] <= $game_variables[id]
}
end
text ? text : SUBEVENT_TITLES[id][1]
else
""
end
end
#--------------------------------------------------------------------------
# ● シナリオ達成率の取得
#--------------------------------------------------------------------------
def self.completed
n = 0
for i in @event_list
if event_clear?(i)
n += 2
elsif event_start?(i)
n += 1
end
end
n * 100 / (event_number * 2)
end
end
class WindowInfo < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(368, 152, window_width, window_height)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
160
end
#--------------------------------------------------------------------------
# ● ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
line_height + 32
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
draw_text(0, 0, 124, line_height, STORYEVENT::SUBEVENT_CLEARTEXT)
text = ""
contents.font.size = 20
cx = text_size(text).width
change_color(system_color)
draw_text(0, 0, 124, line_height, text, 2)
contents.font.size = 20
change_color(normal_color)
draw_text(0, 0, 124-cx-4, line_height, STORYEVENT.completed, 2)
end
end
class WindowOutlineSub < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 152, window_width, window_height)
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
Graphics.width
end
#--------------------------------------------------------------------------
# ● ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
Graphics.height - 152
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
change_color(system_color)
draw_text(0, 0, 352, line_height, STORYEVENT.event_caption)
end
end
class WindowOutlineList < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 192, window_width, window_height)
self.index = 0
self.opacity = 0
refresh
activate
end
#--------------------------------------------------------------------------
# ● 選択項目の有効状態を取得
#--------------------------------------------------------------------------
def current_item_enabled?
STORYEVENT.event_start?(STORYEVENT.event_list[index])
end
#--------------------------------------------------------------------------
# ● 桁数の取得
#--------------------------------------------------------------------------
def col_max
2
end
#--------------------------------------------------------------------------
# ● 横に項目が並ぶときの空白の幅を取得
#--------------------------------------------------------------------------
def spacing
16
end
#--------------------------------------------------------------------------
# ● 項目数の取得
#--------------------------------------------------------------------------
def item_max
STORYEVENT.event_number
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
Graphics.width
end
#--------------------------------------------------------------------------
# ● ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
Graphics.height - 192
end
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def draw_item(index)
event_id = STORYEVENT.event_list[index]
rect = item_rect(index)
rect.x += 2
color = normal_color
enabled = STORYEVENT.event_start?(event_id)
if enabled
if STORYEVENT.event_clear?(event_id)
color = text_color(1)
draw_icon(STORYEVENT::SUBEVENT_CLEARED_ICON, rect.x, rect.y)
end
end
rect.x += 24
rect.width -= 28
change_color(color, enabled)
draw_text(rect, STORYEVENT.event_title(event_id))
end
end
class WindowOutlineMain < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, window_width, window_height)
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
Graphics.width
end
#--------------------------------------------------------------------------
# ● ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
152
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
cw = contents.width - 32
change_color(system_color)
draw_text(0, 0, contents.width - 32, line_height, STORYEVENT.story_caption)
change_color(normal_color)
cx = text_size(STORYEVENT.story_caption).width + 16
draw_text(cx, 0, cw - cx, line_height, STORYEVENT.story_title)
draw_text_ex(16, line_height + 16, STORYEVENT.story_text.dup)
end
end
class WindoOutlineText < Window_Selectable
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :item_index # 表示するインデックス
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(window_x, window_y, window_width, window_height)
if $game_switches[111] == true#紅茶走
self.windowskin = Cache.system(STORYEVENT::SUBEVENT_SKINb)#紅茶走
else #紅茶走
self.windowskin = Cache.system(STORYEVENT::SUBEVENT_SKIN)#紅茶走
end#紅茶走
self.z = 200
self.active = false
self.openness = 0
self.opacity = 0#紅茶走透過度
@item_index = 0
end
#--------------------------------------------------------------------------
# ● ウィンドウ X 座標の取得
#--------------------------------------------------------------------------
def window_x
(Graphics.width - window_width) / 2
end
#--------------------------------------------------------------------------
# ● ウィンドウ Y 座標の取得
#--------------------------------------------------------------------------
def window_y
(Graphics.height - window_height) / 2
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
640
end
#--------------------------------------------------------------------------
# ● ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
480
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
contents.clear
bitmap = Cache.picture("kueback")#紅茶走 ここ改変
self.contents.blt(0, 0, bitmap, bitmap.rect)#紅茶走 ここ改変
id = STORYEVENT.event_list[@item_index]
text = STORYEVENT.event_title(id)
contents.font.shadow = false
contents.font.bold = true
contents.font.name = "みかちゃん"#紅茶走ここだけフォント使えなかった
contents.font.size = 24
change_color(system_color)
cx = contents.width - 96
cw = text_size(text).width
# contents.fill_rect(Rect.new(4, 32, cw + 8, 2), system_color)
contents.draw_text(8+170, 8+52, cx - 24, line_height, text)
contents.font.bold = false
contents.font.name = "いろはマルみかみ Mediam"#紅茶走もどす
contents.font.size = 20
change_color(normal_color)
contents.draw_text(220, 240, cx, line_height, STORYEVENT::SUBEVENT_CLEARED_TEXT) if STORYEVENT.event_clear?(id)
draw_text_ex(20+20, line_height * 2+52, STORYEVENT.event_text(id).clone)
end
#--------------------------------------------------------------------------
# ● 表示するインデックスの設定
#--------------------------------------------------------------------------
def item_index=(index)
@item_index = index
end
#--------------------------------------------------------------------------
# ● ウィンドウのアクティブ化
#--------------------------------------------------------------------------
def activate
refresh
open
super
end
#--------------------------------------------------------------------------
# ● ウィンドウの非アクティブ化
#--------------------------------------------------------------------------
def deactivate
close
super
end
end
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# ● コマンドリストの作成
#--------------------------------------------------------------------------
alias _make_command_list_with_story_command make_command_list
def make_command_list
_make_command_list_with_story_command
add_story_command
end
#--------------------------------------------------------------------------
# ● インデックスを指定したコマンドの追加
#--------------------------------------------------------------------------
def add_command_with_index(name, symbol, index, enabled = true, ext = nil)
@list[index, 0] = {:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext}
end
#--------------------------------------------------------------------------
# ● 冒険メモコマンドの有効判定
#--------------------------------------------------------------------------
def enable_story_command?
$game_switches[STORYEVENT::STORYEVENT_ENABLE_SID]
end
#--------------------------------------------------------------------------
# ● 冒険メモコマンドの追加
#--------------------------------------------------------------------------
def add_story_command
add_command_with_index(STORYEVENT::STORYEVENT_MENU_TEXT, :story,
STORYEVENT::STORYEVENT_MENU_INDEX, enable_story_command?)
end
end
class SceneOutline < Scene_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
STORYEVENT.cache
@index = 0
end
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
create_background
create_backsprite
create_windows
set_handler
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
def create_background
@background_sprite = Sprite.new
@background_sprite.bitmap = SceneManager.background_bitmap
@background_sprite.color.set(16, 16, 16, 128)
end
#--------------------------------------------------------------------------
# ● サブイベント閲覧時用の背景スプライトの作成
#--------------------------------------------------------------------------
def create_backsprite
@back_sprite = Sprite.new
@back_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
@back_sprite.bitmap.fill_rect(@back_sprite.bitmap.rect, Color.new(0, 0, 0, 192))
@back_sprite.visible = false
@back_sprite.z = 190
end
#--------------------------------------------------------------------------
# ● 各種ウィンドウの作成
#--------------------------------------------------------------------------
def create_windows
@main_window = WindowOutlineMain.new
@sub_window = WindowOutlineSub.new
@list_window = WindowOutlineList.new
@info_window = WindowInfo.new
@text_window = WindoOutlineText.new
end
#--------------------------------------------------------------------------
# ● ハンドラのセット
#--------------------------------------------------------------------------
def set_handler
@list_window.set_handler(:ok, method(:open_text_window))
@list_window.set_handler(:cancel, method(:return_scene))
@text_window.set_handler(:cancel, method(:close_text_window))
end
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
def terminate
super
dispose_background
dispose_backsprite
dispose_windows
SceneManager.call(Scene_Menu)#紅茶走
end
#--------------------------------------------------------------------------
# ● 背景の解放
#--------------------------------------------------------------------------
def dispose_background
@background_sprite.dispose
end
#--------------------------------------------------------------------------
# ● サブイベント閲覧時用の背景スプライトの解放
#--------------------------------------------------------------------------
def dispose_backsprite
@back_sprite.dispose
end
#--------------------------------------------------------------------------
# ● 各種ウィンドウの解放
#--------------------------------------------------------------------------
def dispose_windows
@main_window.dispose
@sub_window.dispose
@list_window.dispose
@info_window.dispose
@text_window.dispose
end
#--------------------------------------------------------------------------
# ● サブイベントの詳細ウィンドウ表示
#--------------------------------------------------------------------------
def open_text_window
@list_window.visible = false
@main_window.visible = false
@sub_window.visible = false
@info_window.visible = false
@back_sprite.visible = true
@text_window.item_index = @list_window.index
@text_window.activate
end
#--------------------------------------------------------------------------
# ● サブイベントの詳細ウィンドウ非表示
#--------------------------------------------------------------------------
def close_text_window
@list_window.visible = true
@main_window.visible = true
@sub_window.visible = true
@info_window.visible = true
@back_sprite.visible = false
@list_window.activate
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成
#--------------------------------------------------------------------------
alias _create_story_command create_command_window
def create_command_window
_create_story_command
@command_window.set_handler(:story, method(:command_story))
end
#--------------------------------------------------------------------------
# ● コマンド[冒険メモ]
#--------------------------------------------------------------------------
def command_story
SceneManager.call(SceneOutline)
end
end