rebf-gaiden/Scripts/_.22.rb
2025-04-30 12:43:16 -05:00

1727 lines
No EOL
51 KiB
Ruby
Raw 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 = "Adventure Memo"
# 項目が表示されるメニューインデックス(一番上が0)
STORYEVENT_MENU_INDEX = 5
# 項目が有効になるスイッチ番号
STORYEVENT_ENABLE_SID = 5
#------------------------------------------------------------------------------
# あらすじに表示する見出し
STORYEVENT_CAPTION = "Story"
# あらすじを管理する変数番号
STORYEVENT_VID = 18
# あらすじの設定
#【形式】
# ① => [②, ③],
# ① STORYEVENT_VIDに格納されている値(数値)
# ② 進行中ストーリーの名前(文字列)
# ③ 進行中ストーリーの詳細(文字列)
STORYEVENT_CONTENTS = {
1 => ["[Episode 0] Tutorial",
"\\}A mysterious young man who transferred to another world...
He had lost his former fighting strength.
First, it seems necessary to train and get used to battle in this world."],
20 => ["[Episode 1] The Gloomy Boy",
"\\}To \\N[1], a monk working at the Freia Grand Temple, there was another side...
That was the role of dispensing divine punishment to heretics who went against the Pope.
Everything is for the Pope... Swearing so in his heart, he
ponders something again within the temple today."],
24 => ["[Episode 1] The Gloomy Boy",
"\\}Until the next mission comes, its business as usual...
Let's head to Mema the priestess to take care of chores from
the temple."],
26 => ["[Episode 1] The Gloomy Boy",
"\\}The next mission is delivered through a familiar...
As always, let's head to the confessional."],
27 => ["[Episode 1] The Gloomy Boy",
"\\}The received directive contains the next mission... Let's
open it in his own room."],
30 => ["[Episode 1] The Gloomy Boy",
"\\}The meeting place for the mission is the Soudri Prairie...
Let's go to the client waiting there!"],
32 => ["[Episode 2] The High Priests Request",
"\\}The client was none other than High Priestess Elnin.
Having secretly accepted her escort request, \\N[1] heads deeper
into the Soudri Prairie."],
41 => ["[Episode 2] The High Priests Request",
"\\}Hurry to the cathedral to see the Pope."],
50 => ["[Episode 2] The High Priests Request",
"\\}The Pope's appearance, seen for the first time, shocked the
people of the temple...
Is she tormented over the divine punishment? Then who was all
this done for?"],
55 => ["[Episode 2] The High Priests Request",
"\\}Given another escort mission by the High Priestess, \\N[1]
heads to the desert ant nest...
There, just like last time, was her attendant Rue."],
80 => ["[Episode 3] Divine Punishment and Resolve",
"\\}Not a mission to take life, but to protect it, \\N[1] accomplished it...
Something inside him was beginning to waver little by little."],
86 => ["[Episode 3] Divine Punishment and Resolve",
"\\}The tool given to \\N[1] by the order from the confessional
was a dagger for divine punishment...
The target is someone in a hotel in Barrelzen...
It was finally time to stain these hands with blood again."],
95 => ["[Episode 3] Divine Punishment and Resolve",
"\\}Vidar noticed that something was slowly changing inside \\N[1]...
But if they fail the next Fang mission, will there be a place
left for them?
The blade driven into his lower back gives no answer."],
96 => ["[Episode 3] Divine Punishment and Resolve",
"\\}Let's go back to the room and rest..."],
100 => ["[Episode 3] Divine Punishment and Resolve",
"\\}The client is waiting in the confessional..."],
102 => ["[Episode 4] Awakening",
"\\}The next failure will not be forgiven... Before \\N[1] appeared
High Priestess Elnin.
For the third escort mission, they must head to the Frozen Cavern...
Somewhere in his heart, he felt relief."],
111 => ["[Episode 4] Awakening",
"\\}The Holy Capital is under attack by demons!
Trying to escort Elnin and Rue to the temple, a particular
demon targets them."],
117 => ["[Episode 5] The Final Pilgrimage",
"\\}The Pope once again requested \\N[1] to escort her as her
companion for the final pilgrimage.
The last pilgrimage site... was the sweltering Mjolnir Volcano."],
122 => ["[Episode 6] The Scent of Belladonna",
"\\}All the pilgrimages were over, and the Pope bid \\N[1] farewell...
He wished, if possible, to continue fighting for her...
But perhaps that was an impossible dream.
And so, he waited quietly for orders from the Fang."],
125 => ["[Episode 6] The Scent of Belladonna",
"\\}The first order from the Fang in a while was to deliver
divine punishment to an important person within the temple...
And with that, the Fang announced one condition... If fulfilled,
permission would be granted to be released from the assassins."],
127 => ["[Episode 7] The Butterfly Dances Again",
"\\}The amnesiac youth Novissa was saved by an organization
called Butterfly Wings! This time, the client is a
jeweler in the Holy Capitals entertainment district...
Is there a key to regaining his memory there?"],
130 => ["[Episode 7] The Butterfly Dances Again",
"\\}The client was High Priestess Gemma of the Freia Temple!
Her request was to rescue a boy falsely imprisoned.
Once a month... the day one can enter the temple... that
is when the plan will take place."],
137 => ["[Episode 7] The Butterfly Dances Again",
"\\}Hearing about the current state of the Holy Capital,
N[1] resolved to fight again!
First, think about escaping the temple."],
142 => ["[Episode 8] What Are These Fangs For?",
"\\}It was Bildolf who set him up, and now his evil hand was
reaching towards the temple and the Pope.
This life is for the Pope...
Within \\N[1], the true meaning of fighting was beginning to emerge."],
144 => ["[Episode 8] What Are These Fangs For?",
"\\}\\N[1], having received a favor from Arche in Butterfly Wings...
Apparently, theres business in the slums in the eastern
part of Barrelzen..."],
152 => ["[Episode 9] Showdown! Freia Grand Temple",
"\\}Bildolf was plotting to use a fake Pope to seize the cult for himself!
Learning that the real Pope was imprisoned in the deepest underground,
Butterfly Wings was quietly preparing for her rescue."],
155 => ["[Episode 9] Showdown! Freia Grand Temple",
"\\}Preparations for the counterattack are complete! \\N[1] and the others step
into the lowest level of the temple.
What awaits them there..."],
165 => ["[Episode 10] Demon King Incarnation",
"\\}The Pope was rescued safely... But as a consequence, the Heart of Owl,
which was the key to the barrier, was stolen.
The demons seemed to be plotting to use the heart's power
to revive something."],
166 => ["[Episode 10] Demon King Incarnation",
"\\}The stolen heart and the demons hideout have been identified!
First, head to High Priestess Gemma's room."],
167 => ["[Episode 10] Demon King Incarnation",
"\\}The whereabouts of the stolen heart and the demons
hideout have been revealed!
N[1] heads to the nameless island in the southern continent
for the final battle."],
200 => ["Game Clear",
"\\}There are still many unsolved cases left in the Holy Capital
and across the continent...
Try to solve all of them."],
201 => ["[Episode X] The Seeker's Ambition",
"\\}A distress signal from Vidar has been received!
Underground, beneath the ruins of Valfreia Temple to the west...
What awaits them there."],
500 => ["True Game Clear",
"to be continued"],
}
#------------------------------------------------------------------------------
# サブイベントリストに表示する見出し
SUBEVENT_CAPTION = "Quest List"
# サブイベント達成率部分に表示する項目名
SUBEVENT_CLEARTEXT = "Total"
# サブイベント詳細画面で使用されるウィンドウスキン名
SUBEVENT_SKIN = "Window"
SUBEVENT_SKINb = "Windowb"
# クリアしたサブイベントに表示する文字列
# サブイベント詳細画面に表示されます
SUBEVENT_CLEARED_TEXT = "- Clear -"
# クリアしたサブイベントに表示するアイコンID
# サブイベントリストに表示されます
SUBEVENT_CLEARED_ICON = 539
# サブイベントスタートと見做す変数値
# サブイベントに対応する変数に、ここでの設定値以上の値が格納されている場合、
# イベント実行中と判断され、サブイベントリストに表示されるようになります
SUBEVENT_STARTED = 1
# サブイベントクリアと見做す変数値
# サブイベントに対応する変数に、ここでの設定値以上の値が格納されている場合、
# イベントクリアと判断され、サブイベントリストの表記がクリア時のものになります
SUBEVENT_CLEARED = 99
# サブイベントの概要設定
#【形式】
# ① => [②, ③, ④],
# ① サブイベントに対応する変数番号(数値)
# ② 進行中サブイベントの名前。サブイベントリストに表示(文字列)
# ③ サブイベント発生中の文章。サブイベント詳細画面に表示(文字列) ※
# ④ サブイベントクリア後の文章。サブイベント詳細画面に表示(文字列)
#
# ※ SUBEVENT_CONTENTSに有効な設定がある場合はそちらが優先されます。
SUBEVENT_TITLES = {
101 => ["A Letter to the President","",""],
102 => ["Picking Up Trash on the Beach","",""],
103 => ["Villa for Sale","",""],
104 => ["Seeking Wagon Guards","",""],
105 => ["Put the Conceited Man in His Place","",""],
106 => ["Wild Guardian Hunt","",""],
107 => ["Collecting Waruhara Flowers","",""],
108 => ["Mercenary Rescue","",""],
109 => ["Wanted: Cosmetics","",""],
110 => ["Freia Lottery","",""],
111 => ["Eyutaya's Tom Yum Kung","",""],
112 => ["Wanted: Employer","",""],
113 => ["Deliver the Holy Bible","",""],
114 => ["Kissplant Extermination","",""],
115 => ["Wanted: Griffin Eggs","",""],
116 => ["Wanted: 3 Paeni Panties","",""],
117 => ["Wanted: Status Effect Cards","",""],
118 => ["Wanted: 5 Iron Ores","",""],
119 => ["Race of the Sun","",""],
120 => ["Beat Up the Birdman","",""],
121 => ["Valkyries Trial","",""],
122 => ["The Fangs Final Trial","",""],
123 => ["Wizard Rescue","",""],
124 => ["Undercover Investigation of Illegal Store","",""],
125 => ["Pursue the Slave Merchant","",""],
126 => ["The Painters Troubles","",""],
127 => ["Chase the Escapee","",""],
128 => ["Wanted: 5-colored Herbs","",""],
129 => ["The Archaeologist & the Legend of the Ruins Giant","",""],
130 => ["Mystery of the Moving Island","",""],
131 => ["Water of Immortality","",""],
132 => ["Babayangs Magic","",""],
133 => ["The Mystery of the Blue Zellin","",""],
134 => ["The Gluttonous Demon Beast","",""],
135 => ["Threat from Underground","",""],
136 => ["Queen of the Birdmen","",""],
137 => ["The Remaining Faction Moves","",""],
138 => ["Secret of the Mjolnir Volcano","",""],
139 => ["Break Through Your Limits","",""],
140 => ["Parental Revenge","",""],
141 => ["Exploring the Former Life Research Lab","",""],
142 => ["Holy Cross Brigades Challenge","",""],
143 => ["Artifact Crafting Documents","",""],
144 => ["Demon of the Arena","",""],
145 => ["Balmung the Sage","",""],
146 => ["Save the Clergy Training Tour!","",""],
147 => ["The Forgotten Island","",""],
148 => ["The Ghost Ship Appears","",""],
149 => ["Monk Virginity Contest","",""],
150 => ["The Pope and Rues Endless Dream","",""],
151 => ["Please Unlock the Door","",""],
152 => ["Goblin's Nest","",""],
153 => ["Holy Capital-style Arrest Techniques","",""],
154 => ["Seeker's Ambition","",""],
}
# サブイベントの詳細設定
#【形式】
# ① => [[②, ③], [②, ③], [②, ③],......],
# ① サブイベントに対応する変数番号(数値)
# ② ①に格納されている値(数値)
# ③ ②の条件を満たす際のサブイベント発生中の文章。サブイベント詳細画面に表示(文字列)
SUBEVENT_CONTENTS = {
#101 => [
#[1, "【場所】  コモドカジノ跡
#閉鎖したコモドカジノを冒険者ギルドとして再利
#用する事にした、受付には話を通してある、是非
#とも一度訪れてくれ。"],
#],
102 => [
[1, "      Tears Beach
      Goddess Priestess Freia Grand Temple Stairs
      1000 Jenis
Seeking someone to help clean up the trash
washed ashore on the beach.
           \\C[1]2\\C[0]"],
],
103 => [
[1, "      La Ferre Entertainment District
      La Ferre Real Estate
      Base Location
Northwest vacant property for sale!
...Or rather, someone please buy it!
I'm begging you!
           \\C[1]?\\C[0]"],
],
104 => [
[1, "      Merchant's Sea Road
      Merchant Holy City South Gate
      Entertainment District Pass
Lately, my wagon has been getting
attacked by bandits and I'm in trouble.
I need a skilled bodyguard.
If you're confident in your skills,
go see the client!
           \\C[1]9\\C[0]"],
],
105 => [
[1, "      Veins Tavern
      ?
      Special EXP 5000
Looking for a skilled man
who can knock some sense into
my arrogant associate.
If interested,
come to Veins Tavern.
           \\C[1]28\\C[0]"],
],
106 => [
[1, "      Mjolnir Volcano 03
      Veins Tavern
      5000 Jenis
Wild Guardians are rampaging
in the Mjolnir Volcano 03 area,
and it's gotten out of hand!
I'm looking for someone to defeat them.
           \\C[1]25\\C[0]"],
],
107 => [
[1, "      Valfreia Temple Ruins
      Nun in Freia Grand Temple Chapel
      1000 Jenis
We're out of flowers for offerings.
Could anyone get some from the
Western Temple Ruins?
           \\C[1]1\\C[0]"],
],
108 => [
[1, "      Desert Ant Nest
      Long-faced Mercenary southeast of Holy City
      3000 Jenis
Three of my companions who headed
to the Desert Ant Nest haven't returned...
I've got a bad feeling about this.
           \\C[1]12\\C[0]"],
],
109 => [
[1, "      Entertainment District Bar Suksamad
      Miss Ranker
      Prism Stick
I'm looking for good cosmetics~
Will someone bring some for me~?
           \\C[1]?\\C[0]"],
],
110 => [
[1, "      Valkyrie Chapel
      Everyone's Beloved Holy Mother-chan
      Luxurious prizes available!
We've started the Freia Premium Lottery Campaign!
There are lots of fabulous prizes,
so please join us!
           \\C[1]?\\C[0]"],
],
111 => [
[1, "      Eutaya Public Tavern
      Tourist
      Assorted Dishes
I want to eat Tom Yum Kung...
I came all this way,
and you're telling me it's sold out?
           \\C[1]?\\C[0]"],
],
112 => [
[1, "      Travelers' Tavern Entertainment District
      Crusader and Priest Mercenaries
      Join as Supporters
We're out of travel expenses
and looking for an employer...
We're confident in supporting your battles!
           \\C[1]?\\C[0]"],
],
113 => [
[1, "      La Ferre Entertainment District
      Monk on Bench at Temple Main Gate
      1500 Jenis
I'd like you to deliver a Bible
to an acquaintance living in the district.
           \\C[1]?\\C[0]"],
],
114 => [
[1, "      Valfreia Temple Ruins
      Middle-aged Man Bench in Holy City
      2000 Jenis
A Kiss Plant has appeared
at the temple ruins, and I'd like it removed.
           \\C[1]6\\C[0]"],
],
115 => [
[1, "      Grand Temple Training Room
      Holy Cross Squad Member
      How to capture monsters
Looking for someone to capture a wild griffon.
I'll teach you how,
so beginners are welcome!
           \\C[1]3\\C[0]"],
],
116 => [
[1, "      Veins's Inn
      Robe Craftsman
      Boss Resistance Card
I'm looking for Feni's underwear...
If possible, I need x3!
           \\C[1]24\\C[0]"],
],
117 => [
[1, "      Grand Temple North Library Area
      Old Scholar
      Card Del 20
I'm looking for cards
that inflict status ailments...
But rare cards aren't included.
           \\C[1]?\\C[0]"],
],
118 => [
[1, "      Holy City Blacksmith Guild
      Shop Owner
      Smithy Opening
I was about to open the blacksmith workshop,
but I ran out of iron ore...
Why is it I always seem
to be short on iron ore, I wonder.
           \\C[1]?\\C[0]"],
],
119 => [
[1, "      Grand Temple Entrance Area
      Passionate Priest
      Golden Apple
I want to secure the front row at the morning assembly,
but I always lose the seat-racing marathon.
I want a fast runner to save me a seat!
           \\C[1]?\\C[0]"],
],
120 => [
[1, "      Polnator Valley
      Priest from Temple Infirmary
      3000 Jenis
There have been ongoing incidents caused
by the bird people in the valley.
I'd like you to give those girls a light punishment.
           \\C[1]17\\C[0]"],
],
121 => [
[1, "      Holy City Valkyrie Chapel
      ?
      A New Power
Young warrior, you'll need new power
for battles ahead...
I'll be waiting for you
at the Valkyrie Chapel.
           \\C[1]20\\C[0]"],
],
122 => [
[1, "      Grand Temple Underground Building 3
      ?
      ?
I will give you your final trial...
           \\C[1]50\\C[0]"],
],
123 => [
[1, "      Frozen Cavern 2B
      Mage Ahio
      Special Item
S-someone help me...
I can't move a step from here...
           \\C[1]20\\C[0]"],
],
124 => [
[1, "      Illegal Shop in Entertainment District
      Jewelry Store Clerk
      Jewelry Set
Our valued customer wants to
ask a favor of you...
Please do help them.
           \\C[1]40\\C[0]"],
],
125 => [
[1, "      Somewhere in the Entertainment District
      Priest in front of the Confessional
      3500 Jenis
Rumor has it that slave traders are operating
right under the Pope's nose...
Something must be done about this.
           \\C[1]15\\C[0]"],
],
126 => [
[1, "      Barrelzen Industrial City Park
      Painter
      Carving Knife
I can't think of any ideas...
Someone...please give me a seed of inspiration!
           \\C[1]?\\C[0]"],
],
127 => [
[1, "      Various parts of the continent
      Follower by Statue North of Holy City
      3 Yggdrasil Fruits
I want you to search for a person.
Before something irreversible happens...
           \\C[1]?\\C[0]"],
],
128 => [
[1, "      Eutaya
      Shaman on the Bridge
      3 Present Boxes
I'm searching for herbs needed for a ritual...
Please gather them
even from a nearby hunting ground.
           \\C[1]?\\C[0]"],
],
129 => [
[1, "      Eutaya Ruins
      Archaeologist at Eutaya Temple
      Card Del 20
I'd like you to copy the inscription
inside the ruins...
I will explain the details when we meet.
           \\C[1]35\\C[0]"],
],
130 => [
[1, "      Mosfia Island
      Boaster Belwef
      Black Magic Stone
I saw it! A giant moving island...
But no one believes me when I say it.
In that case, I'll hire a skilled adventurer
from outside...
Ah, you can get to Mosfia Island from the airport,
so I'm counting on you.
           \\C[1]?\\C[0]"],
],
131 => [
[1, "      Mosfia Royal Palace
      King of Mosfia
      3 Gold Ingots
I have a request for the adventurer
who claims to have seen the moving island.
Could you please come to the palace?
           \\C[1]39\\C[0]"],
],
132 => [
[1, "      Mosfia Royal Palace
      Lady-in-Waiting
      Sunk Sun
The adventurer His Majesty often spoke of...
I have a request for you.
           \\C[1]38\\C[0]"],
],
133 => [
[1, "      Hotel Dragon Emperor Lobby
      Durandal Research Institute Staff
      On-Site Research Cost Provided
New sightings of blue Zellins have been
confirmed. I want to collect biological data.
I'm looking for someone to fight.
           \\C[1]20?\\C[0]"],
],
134 => [
[1, "      Desert Ant Nest 1B
      Wounded Adventurer from Veins
      Jet Black Knight Card
A ferocious boss monster appeared
at the Desert Ant Nest!
Faced with that tongue technique, we... were wiped out!
           \\C[1]50\\C[0]"],
],
135 => [
[1, "      Grand Temple Basement
      Priest in Temple West Corridor
      10000 Jenis
I keep hearing creepy sounds coming
from below the prayer room...
I hope it's not an omen of something worse.
           \\C[1]50\\C[0]"],
],
136 => [
[1, "      Birdfolk Settlement
      Priest from Temple Infirmary
      10000 Jenis
The birdfolk have banded together in a settlement,
and they've started attacking travelers again.
I've heard even their queen, who leads them,
has appeared...
           \\C[1]50\\C[0]"],
],
137 => [
[1, "      Butterfly Wing La Ferre Branch
      Zero-G
      5 Proof of Loyalty
We caught wind of an incident
that might be a lead on the research lab remnants
we've been chasing...
I need your help.
           \\C[1]38\\C[0]"],
],
138 => [
[1, "      Mjolnir Volcano 02
      Veins Boy
      Super Egg Ball
I went to play at the volcano with my little sister,
but scary people were there... and my sister...
Please, save my sister!
Please help!
           \\C[1]42\\C[0]"],
],
139 => [
[1, "      Valfreia Temple Ruins
      Groom's Fang
      Death Poodle Card
The boss ordered me to toughen you up... I'm waiting.
           \\C[1]50\\C[0]"],
],
140 => [
[1, "      West Gate of Holy City
      Holy City Citizen
      Supporter???? Join
Recently, someone has been scribbling graffiti
on the goddess statues in the Holy City...
Absolutely outrageous!
           \\C[1]?\\C[0]"],
],
141 => [
[1, "      Barrelzen Slums
      Anonymous
      5000 Jenis
I've heard about you from the chief...
I need you to help investigate the laboratory ruins...
I'll be waiting in the northwest slums.
           \\C[1]44\\C[0]"],
],
142 => [
[1, "      Grand Temple Training Room
      Paracon
      Whatever you wish, if that's what you desire...
I need to talk to you...
I'll be waiting at the temple training room.
           \\C[1]?\\C[0]"],
],
143 => [
[1, "      Grand Temple Chapel
      Priest from the Bildorf Faction
      Will give it to you in person
There is something I wish to give you...
Could you come to the chapel?
           \\C[1]?\\C[0]"],
],
144 => [
[1, "      Entertainment District Sex Techniques Hall
      Entertainment District Association
      Special EXP 10000
I want you to investigate the recent rise in roadside
slashings...
Victims in the Sex Techniques Hall Infirmary
might know something about it.
           \\C[1]43\\C[0]"],
],
145 => [
[1, "      Jewelry Shop 2F
      Novissa
      A Certain Secret Manual
Now that youre the Pope's assistant,
I have something to ask of you...
I'll be waiting on the second floor of the jewelry shop...
If I'm out on a mission, come see me when I'm back.
           \\C[1]?\\C[0]"],
],
146 => [
[1, "      Nameless Island
      Cleric waiting at Grand Temple Main Gate
      That Which Holds the Power of a Ghoul
Please rescue the clergy who
went missing during their training!
           \\C[1]50\\C[0]"],
],
147 => [
[1, "      Remote Island South of the Continent
      Freia Investigator
      Freia Church Special Hospitality Ticket
I've been hearing multiple stories of a mysterious island
and unknown settlement in the southern continent.
Supposedly, only the demon tribe used to have
a base there...
I want you to investigate—\\C[1]Just head
straight to the island from here\\C[0].
           \\C[1]55\\C[0]"],
],
148 => [
[1, "      Tears Beach
      Cathedral Priest
      3 Premium Boxes
There are rumors of a ghost ship
off the southern coast...
The High Priest wants to talk to you.
           \\C[1]53\\C[0]"],
],
149 => [
[1, "      Grand Temple Cafeteria
      It's Koanta~!
      ?
I have a little favor to ask...
I'm waiting in the cafeteria~
           \\C[1]50\\C[0]"],
],
150 => [
[1, "      ?
      High Priest Elnin
      Appropriate Compensation
We have an emergency...
Please come to the main gate immediately.
           \\C[1]58\\C[0]"],
],
151 => [
[1, "      Temple West Passage
      Attendant Monk
      3000 Jenis
I accidentally lost the box key!
If my boss finds out, I'll be in trouble.
I need to do something about this.
Looking for someone with unlocking skills
as soon as possible.
           \\C[1]?\\C[0]"],
],
152 => [
[1, "      Entertainment District Lafell Moon
      Round-faced Adventurer
      5000 Jenis
I went to subdue the goblin nest, but I fell
into their trap and one of my companions
got captured!
I'm looking for a warrior skilled in stealth!
Please save my friend from their nest!
           \\C[1]?\\C[0]"],
],
153 => [
[1, "      Temple Main Gate
      Female Instructor in front of Statue
      2000 Jenis
Looking for someone to act as the criminal
for the new recruits' training.
You need to be tough and patient,
since youll be taking attacks
without fighting back.
           \\C[1]6\\C[0]"],
],
154 => [
[1, "      ?
      High Priest Jema
      ?
That case Chief Zero-G was investigating...
We've found some clues on our end too.
This will probably be a major battle.
           \\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