code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_49
;-------------------------------------------------
@QST_TITLE_QUEST_49
[IF_DEBUG]
RESULTS '= "ロイド+αデバッグ加入"
RETURN
[ENDIF]
RESULTS '= "元騎士ロイド"

;ギルドメニューでクエストをフィルターする際のタグリスト。末尾の','を忘れないように
@QST_QUEST_TAG_49
RESULTS '= "単発,イベント,"

;-------------------------------------------------
;クエストの実行可能条件を定義
;-------------------------------------------------
@QST_AVAILABLE_QUEST_49(QUEST_ID)
#DIM QUEST_ID
[IF_DEBUG]
SIF CFLAG:NAME_TO_CHARA("UC_レアンナ"):所属 != 所属_プレイヤー
	RETURN 1
[ENDIF]
SIF CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 == 所属_プレイヤー
    RETURN 0
;前提としてQUEST_48_忌み地より来たる者の攻略が必要
SIF QST_SV_QUEST_FLAG:48 < 9
    RETURN 0
SIF QST_SV_QUEST_FLAG:QUEST_ID > 1
    RETURN 0
RETURN 1

;-------------------------------------------------
;クエスト固有の開始条件
;[このクエストを開始する]押下時に呼ばれる
;-------------------------------------------------
@QST_CAN_START_QUEST_49(QUEST_ID)
#DIM QUEST_ID
#DIM DYNAMIC ERR_CNT
#DIM DYNAMIC CHARA_ID

IF LIST_INDEXOF(_LIST_QST_PARTY, TOSTR(MASTER)) == -1
	PRINTFORMW このクエストには%ANAME(MASTER)%自らが出向く必要がある……
	RETURN 0
ENDIF
RETURN 1

;-------------------------------------------------
;クエストのタイプ
;マップ探索を伴う場合 "MAP"
;文章のみで完結する場合 "DIALOGUE"
;-------------------------------------------------
@QST_TYPE_QUEST_49
RESULTS '= "DIALOGUE"

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_49
RESULTS:0 '= "先の依頼で、依頼人であるエレノアにロイドという男性の後見人になるよう頼まれた"
RESULTS:1 '= "彼は数世紀昔に生きていた人物で、氷の中で長い眠りについていたらしい"
RESULTS:2 '= "無論、彼を受け入れるかの否かの選択権はこちらにある。どうするか……"
[IF_DEBUG]
SIF CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 != 所属_プレイヤー
	RESULTS:4 '= @"@C:{カラー_注意}@ロイドと実装予定ユニークを加入させます。今後実装するクエストに影響を及ぼす可能性があります@/C@"
SIF CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 == 所属_プレイヤー
	RESULTS:4 '= @"@C:{カラー_注意}@今後実装予定のユニークを加入させます。今後実装するクエストに影響を及ぼす可能性があります@/C@"
[ENDIF]

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_49
RESULTS:0 '= @"難易度：-"
RESULTS:1 '= "報酬:ロイドの加入"
RESULTS:2 '= "あなたの参加が必須"
SIF QST_SV_QUEST_FLAG:49 == 1
	RESULTS:3 '= @"@C:{カラー_注意}@受注すると保留は出来ません。加入を断るとクエストは消失します@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@「不躾なお願いであることは重々承知しております……」@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@「どうか、彼をよろしくお願いいたします」@/C@"

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_49
#DIM WEAPON_LIST_IDX
#DIM QUEST_ID

;ロイドとついでにその他にもタグ付与。魔族であるかどうかの判定を街クエストで入れたいため。まぁロイド＋アステ？を別で判定すればいいだけかもしれないが
CALL ADD_TAG(NAME_TO_CHARA("UC_ロイド"), タグ_人間)
CALL ADD_TAG(NAME_TO_CHARA("UC_ロイド"), タグ_魔族)
CALL ADD_TAG(NAME_TO_CHARA("UC_レアンナ"), タグ_霊魂)
CALL ADD_TAG(NAME_TO_CHARA("エレノア"), タグ_エルフ)
;回想用ロイドくん作成
SIF NAME_TO_CHARA("GUEST_NPC_ロイド") == -1
	CALL QST_QUEST_49_CREATE_NPC_Lloyd()

[IF_DEBUG]
PRINTFORMW デバッグでレアンナを加入させます
PRINTL
CALL COLOR_PRINTW("―― レアンナが仲間になった！", カラー_注意)
CFLAG:NAME_TO_CHARA("UC_レアンナ"):所属 = 所属_プレイヤー
PRINTL
;差し替え前(ロリ状態を一度表示)
CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_レアンナ"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
PRINTL
PRINTFORMW レアンナ差し替え処理
PRINTL
FACE_PARTS:NAME_TO_CHARA("UC_レアンナ"):IMG_後髪 '= "CC1_後髪_5"
FACE_PARTS:NAME_TO_CHARA("UC_レアンナ"):IMG_アクセサリ1 '= "CC1_アクセサリ1_コサージュ_2"
FACE_PARTS:NAME_TO_CHARA("UC_レアンナ"):IMG_首飾 '= "CC1_首飾_首飾_7"
CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_レアンナ"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
PRINTL
IF CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 != 所属_プレイヤー
	PRINTFORMW デバッグでロイドを加入させます
	PRINTL
	CALL COLOR_PRINTW("―― ロイドが仲間になった！", カラー_注意)
	PRINTL
	CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_プレイヤー
	CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_ロイド"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
	;穿孔、追撃、CRTブースト二種持ちの銀の剣。短剣でもないのに追撃2持ちはまずいかな……ウーツ鋼登場したし銀ならいけると思って入れましたが、ダメそうなら鋼にするか
	;ロイドから引きはがすことも想定して名前は入れない。この武器がQUEST48の実質的な報酬になります
	{
		CALL QST_GET_WEAPON(
			2
			,"『鈍らぬ騎士剣』"
			,WPN_材質_銀
			,0
			,"[WPN_ADDITIONAL_ATTACK:2][WPN_BOOST_CRT:4][WPN_BOOST_CRT_DAMAGE:4]"
			,"[WPN_ADD_FRAGILE:2]"
			,WPN_装備種別_武器
			,1
			)
	}
	WEAPON_LIST_IDX = RESULT
	CALL EQUIP_WEAPON(NAME_TO_CHARA("UC_ロイド"), WEAPON_LIST_IDX)
ENDIF
CALL REL_ADD(NAME_TO_CHARA("UC_レアンナ"), NAME_TO_CHARA("UC_ロイド"), 1400, 1000, 0, 500)
CALL REL_ADD(NAME_TO_CHARA("UC_ロイド"), NAME_TO_CHARA("UC_レアンナ"), 1400, 1000, 500, 0)
QST_SV_QUEST_FLAG:QST_有効クエストID = 2
PRINTFORMW
CALL TRAIN_EXIT()
RETURN
[ENDIF]

VARS TEXT
VARI CHARA_ID
CHARA_ID = NAME_TO_CHARA("エレノア")

CALL FL_PLAYBGM("Orient_2.ogg")
IF QST_SV_QUEST_FLAG:QST_有効クエストID < 1
	PRINTL
	{
		TEXT '= @"
			[エレノア]:「……[$MNAME]様。本日はお時間を頂きありがとうございます」[$W]\n
            \n
			[$MNAME]はエレノアに返答するため、彼女のもとを訪れた
			世間話の最中もエレノアは緊張した面持ちだったが、意を決したように本題を切り出してくる[$W]\n
            \n
			[エレノア]:「お答えを、頂きたいのです。ロイド様の後見人となっていただく件、考えていただけましたか」[$W]
			"
	}
	CALL PRINT_DIAG(TEXT)
	PRINTL
	CALL ASK_MULTI_JUDGE("了承する", 1, "保留する" , 1, "断る" , 1)
    SELECTCASE RESULT
        CASE 0
			CALL DRAW_PORTRAIT(CHARA_ID, "[感情:喜][サイズ:150px][POS_X:100]",, 1)
			{
				TEXT '= @"
					[エレノア]:「……本当ですか！　あ、いえ、失礼しました。ありがとうございます」[$W]\n
					\n
					エレノアは大きな声を出してしまったことが恥ずかしいのか、口元に手を当てている
					彼女はこほんと咳ばらいをして、表情を引き締める[$W]\n
					\n
					[エレノア]:「では、早速ロイド様の眠りを覚ましに向かいましょう。解呪の準備もしなければ……」[$W]\n
					\n
					その後、エレノアは解呪に用いる触媒等を用意し、馬車を手配して例の洞窟へ向かった
					[$MNAME]も護衛のため、その旅に同行する……[$W]\n
					\n
					"
			}
			CALL PRINT_DIAG(TEXT)
			CALL FL_STOPBGM()
			PRINTFORMW ……………………
			PRINTFORMW ………………
			PRINTFORMW …………
			PRINTL
			CALL FL_PLAYBGM("Shrine_2.ogg")
			{
				TEXT '= @"
					道中大きなアクシデントはなく、洞窟も静寂を保っていた
					冷気を発する石棺の前で、エレノアは杖を手に儀式の準備を整える[$W]\n
					\n
					[エレノア]:「……始めます」[$W]\n
					\n
					エレノアは詠唱を開始した。大気中のマナが目に見えるほどの濃度になってエレノアの周囲に集まり、世界が彼女に力を与える[$W]
					維持のために尽力していたとはいえ、数世紀もの間動き続けていた大魔術だ
					それを解除するのもまた、大量の魔力を必要とするのだろう[$W]\n
					\n
					詠唱に呼応して石棺の下に描かれていた魔法陣が徐々に発光を強めていき、氷で光が乱反射して洞窟内が青白く染まった[$W]
					そして変化が訪れる。石棺を覆っていた氷が徐々に体積を減らしだしたのだ
					氷は解けず、光の粒子となって上へ上へと昇っていき、大気に溶け込んでいく[$W]\n
					\n
					やがて氷が全て消え去り、ロイドの姿が露になった[$W]
					――胸が上下している。どうやら呼吸を開始したようだ。徐々に血色も良くなっていく
					数世紀の時を経て、彼は再び息を吹き返した[$W]\n
					\n
					[エレノア]:「終わり……ましたね……」[$W]\n
					\n
					肩で息をするエレノアは、崩れるようにしてその場に座りこんだ
					魔術の解除と呪術の解呪。双方を一度に行った彼女は疲労困憊の様子だ[$W]\n
					\n
					[エレノア]:「老体には……流石に、堪えますね……。ロイド様は、ご無事ですか……？」[$W]\n
					\n
					少なくとも、生きてはいる[$W]
					\n
					[エレノア]:「よかった……彼を運び出しましょう。あなたに、頼ることになりますが……」[$W]\n
					\n
					その程度は問題ない[$W]
					[$MNAME]はロイドを抱え上げ、石棺から運び出そうとする。その時、彼の懐から何かが零れ落ちた[$SE:Mining_0.mp3][$W]
					薔薇の装飾だろうか？　まるで枯れているかのようにくすんだ色をしている[$W]\n
					\n
					[エレノア]:「レアンナ……」\n
					\n
					"
			}
			CALL PRINT_DIAG(TEXT)
			CALL DRAW_PORTRAIT(CHARA_ID, "[感情:悲][目:閉じ(緩)][サイズ:150px][POS_X:100]",, 1)
			PRINTFORMW
			{
				TEXT '= @"
					エレノアはそう呟いて華の装飾を胸の前に持っていき、両手で握りしめる
					……それは？[$W]\n
					\n
					[エレノア]:「彼の……主人が身に着けていた物です。いわば形見にあたるでしょう。あなたが、良いと思うタイミングで渡してあげてください」[$W]\n
					\n
					"
			}
			;レリック。デイリーで取得させる
			CALL PRINT_DIAG(TEXT)
			CALL COLOR_PRINTW("―― 枯華の装飾を手に入れた！（アイテムには表示されません）", カラー_注意)
			PRINTL
			CALL FL_STOPBGM()
			PRINTFORMW ……………………
			PRINTFORMW ………………
			PRINTFORMW …………
			PRINTL
			{
				TEXT '= @"
					洞窟を離れ、近くの宿で部屋を取った[$MNAME]たち
					眠ったままのロイドを部屋のベッドに寝かせる[$W]\n
					\n
					[エレノア]:「しばらく、ロイド様と二人きりにしていただけませんか。彼が目を覚ました時に、見知った顔以外があると混乱させてしまうと思うのです」[$W]\n
					\n
					そういうことならと、[$MNAME]は部屋を後にした[$W]\n
					\n
					――しばらくの後、ロイドが目を覚ましたらしい。部屋からは、大きく取り乱す彼の声が聞こえた[$W]\n
					\n
					[UC_ロイド]:「何故……！　何故だエレノア！　答えろ！　俺はッ……彼女を見捨てるくらいなら、あのまま……！」[$W]\n
					\n
					[エレノア]:「レアンナたっての願いですのよ。何より、呪いで碌に動けもしなかった貴方が残ったとして、何が出来て？」[$W]\n
					\n
					[UC_ロイド]:「それは……ッ……それでも、俺は騎士だ！　それが何の冗談だ！　レアンナも！　アルヘルムも！　滅んだだって！？」[$W]
					[UC_ロイド]:「主も、国も守れない……そんな俺が……何故……何故、まだ、生きているんだ……」[$W]\n
					\n
					[エレノア]:「それでも、貴方は生きねばなりません。彼女の想いを、無駄にしないで」[$W]\n
					\n
					[UC_ロイド]:「レアンナは、死んだんだろう……？　なのに、俺なんかが、生きたところで……」[$W]\n
					\n
					[エレノア]:「少なくとも、わたくしは貴方に生きていてほしい。自分のために生きられないなら、誰かのために」
					[エレノア]:「わたくしのために、生きてください」[$W]\n
					\n
					[UC_ロイド]:「ぐ……そんな言い方……ずるいだろう……」[$W]\n
					\n
					[エレノア]:「知らなかったのですか？　女は、いくつになってもズルいものですわ……」[$W]\n
					\n
					"
			}
			;初期案でロイドくんが記憶喪失設定だったのは、守りたかったものがもう全部取り戻せないことをいい感じのタイミングで思い出してほしかったから
			;記憶を取り戻したロイドくんに優しくする選択肢と追い詰めて崩壊させる選択肢を用意したイベントとか入れたかったんですが、まぁこの流れだと無理ですね
			CALL PRINT_DIAG(TEXT)
			PRINTFORMW ……………………
			PRINTFORMW ………………
			PRINTFORMW …………
			PRINTL
			PRINTFORML ロイドはある程度落ち着きを取り戻したようで、部屋から聞こえる声は小さくなっていった
			PRINTFORMW エレノアが%QST_LEADER_NAME(1)%を部屋から出したのは、彼の取り乱す姿を見せないためだったのかもしれない
			PRINTL
			PRINTFORMW %QST_LEADER_NAME(1)%が騒がしくしたことを宿屋の主人に謝罪をしていると、エレノアが姿を現した
			CALL FL_PLAYBGM("Nostalgic_4.ogg")
			PRINTL
			CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:150px][POS_X:100]",, 1)
			PRINTL
			{
				TEXT '= @"
					彼は平気か？[$W]\n
					\n
					[エレノア]:「ええ。大分落ち着きました。あの様子なら早まった真似はしないかと」[$W]\n
					\n
					エレノアはくたびれた様子で息をついた。[$MNAME]は彼女を気遣う[$W]\n
					\n
					[エレノア]:「ありがとうございます。……ええ。少し、疲れました」
					[エレノア]:「恨まれるだろうとは想像していましたが……ああ言われてしまうのは……辛いものですね」[$W]\n
					\n
					椅子に腰かけ、エレノアは手で目を覆う。その態勢のまま、彼女は話す[$W]\n
					\n
					[エレノア]:「ロイド様が、あなたに会ってお礼をしたいそうです。後見人の件も伝えました」
					[エレノア]:「よろしく、お願いします……」[$W]\n
					\n
					[$MNAME]は首肯を返し、ロイドが待つ部屋へと向かった
					部屋の扉の前に立ち、ノックする[$W]\n
					\n
					[UC_ロイド]:「どうぞ、お入りください」[$W]\n
					\n
					扉を開け、部屋へと足を踏み入れる[$SE:Door_open_0.mp3][$W]
					ロイドはベッドの上で上半身を起こしており、会釈をしてきた[$W]\n
					\n
					"
			}
			CALL PRINT_DIAG(TEXT)
			CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_ロイド"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
			PRINTL
			;手は自傷の痕
			PRINTFORML 彼の目は涙の痕か赤くなっており、手には先ほどまで無かった包帯が巻かれている
			PRINTFORMW ロイドは%QST_LEADER_NAME(1)%の視線に気づくと手を背の後ろに回した
			PRINTL
			{
				TEXT '= @"
					[UC_ロイド]:「お呼びだてしてしまい、申し訳ありません。長い眠りのせいか身体に力が入らず……」[$W]\n
					\n
					数世紀ぶりの起床だ。無理もないだろう[$W]\n
					\n
					[UC_ロイド]:「まずは、お礼を言わせてください。危ないところを助けて頂いたとか」
					[UC_ロイド]:「さらに、後見人にまでなって頂けると。このご恩には必ず働きで報います」[$W]\n
					\n
					彼には領地に来てもらうことになるだろう。労働なり、戦闘なり、いくらでも使い出はある[$W]\n
					\n
					[UC_ロイド]:「私に出来ることであれば、何でも。如何様にもお使いください」[$W]\n
					\n
					ほう、何でもか[$W]\n
					\n
					[UC_ロイド]:「ええ、何でも」[$W]\n
					\n
					"
			}
			CALL PRINT_DIAG(TEXT)
			PRINTFORMW 彼の目からは強い決意を感じる。それだけの恩を感じているのか――
			PRINTFORMW あるいは、自棄になっているのか
			PRINTL
			PRINTFORMW さて、何と言おうか……
			;初期好感度とステータス、素質に補正
			CALL ASK_MULTI_JUDGE("戦働きを期待している", 1, "労働力として力を借してくれ" , 1, "性的なことも構わないのだろう？" , 1)
			SELECTCASE RESULT
				CASE 0
					PRINTL
					CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「承りました。あなたの剣、あるいは盾として。この身を捧げます」", 1)
					CFLAG:NAME_TO_CHARA("UC_ロイド"):好感度 += 250
					ABL:NAME_TO_CHARA("UC_ロイド"):戦闘 = 130
				CASE 1
					PRINTL
					CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「勿論です。誠心誠意、働かせていただきます」", 1)
					CFLAG:NAME_TO_CHARA("UC_ロイド"):好感度 += 150
					ABL:NAME_TO_CHARA("UC_ロイド"):身体 = 110
				CASE 2
					PRINTL
					CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「……ええ。無論です」", 1)
					CFLAG:NAME_TO_CHARA("UC_ロイド"):従属度 += 400
					TALENT:NAME_TO_CHARA("UC_ロイド"):快感の否定 = 0
					TALENT:NAME_TO_CHARA("UC_ロイド"):合意 = 1
					PRINTL
					PRINTFORMW ロイドの<合意>を得た
			ENDSELECT
			PRINTL
			PRINTFORML よし、これからよろしく頼む
			PRINTFORMW ――それと、無理に敬語を使わなくてもいい
			;どうなんだろーなーこれ。ロイドくん別に敬語キャラじゃないのですが、立場的には敬語使おうとするんですよねぇ
			;敬語使ってほしいあなたもいるだろうし、選択できるのが最良でしょうが、口上作成が地獄になりそうなので、妥協……
			PRINTL
			{
				TEXT '= @"
					[UC_ロイド]:「……まぁ、あれだけ騒げば聞かれてるか」
					[UC_ロイド]:「エレノアさんにも謝らないとな……」[$W]\n
					\n
					ロイドはばつが悪そうに目を逸らし、頬をかく。しばらく思い悩んでいたが、やがてこちらに向き直って言った[$W]\n
					\n
					[UC_ロイド]:「分かった。あなたがそう言うならば従おう」
					[UC_ロイド]:「では、改めて……助けてくれてありがとう。これからよろしく頼む」[$W]\n
					"
			}
			CALL PRINT_DIAG(TEXT)
			PRINTL
			CALL COLOR_PRINTW("―― ロイドが仲間になった！", カラー_注意)
			CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_プレイヤー
			PRINTL
			;穿孔、追撃、CRTブースト二種の銀の剣。短剣でもないのに追撃2持ちはまずいかな……ウーツ鋼登場したし銀ならいけると思って入れましたが、ダメそうなら鋼にするか
			;ロイドから引きはがすことも想定して名前は入れない。この武器がQUEST48の実質的な報酬になります
			{
				CALL QST_GET_WEAPON(
					2
					,"『鈍らぬ騎士剣』"
					,WPN_材質_銀
					,0
					,"[WPN_ADDITIONAL_ATTACK:2][WPN_BOOST_CRT:4][WPN_BOOST_CRT_DAMAGE:4]"
					,"[WPN_ADD_FRAGILE:2]"
					,WPN_装備種別_武器
					,1
					)
			}
			WEAPON_LIST_IDX = RESULT
			CALL EQUIP_WEAPON(NAME_TO_CHARA("UC_ロイド"), WEAPON_LIST_IDX)
			PRINTL
			PRINTFORMW ……………………
			PRINTFORMW ………………
			PRINTFORMW …………
			PRINTL
			;瞳の色を変える
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:0 = 476
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:1 = 44
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:2 = 160
			PRINTFORMW %QST_LEADER_NAME(1)%が立ち去った後の部屋で、ロイドは独り言ちる
			PRINTL
			CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「%QST_LEADER_NAME(1)%さん、か……」", 1)
			PRINTL
			CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_ロイド"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
			PRINTL
			CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「不思議なお人だったな」", 1)
			PRINTL
			PRINTFORMW そう呟く彼の瞳は、深紅に染まっていた
			PRINTL
			PRINTFORMW
			;瞳の色を戻す
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:0 = 220
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:1 = 300
			COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:2 = 432
			QST_SV_QUEST_FLAG:QST_有効クエストID = 2
			;好感度関係処理。ずっと墓守してただけあってエレノアさんの想いの方が深い
			;CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_プレイヤー
			CFLAG:NAME_TO_CHARA("エレノア"):好感度 += 400
			;CALL REL_ADD(NAME_TO_CHARA("エレノア"), NAME_TO_CHARA("UC_ロイド"), 1200, 500, 0, 0)
			;CALL REL_ADD(NAME_TO_CHARA("UC_ロイド"), NAME_TO_CHARA("エレノア"), 900, 100, 0, 0)
			CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_ゲストNPC
        CASE 1
			;時間ないって言ってるのに呼び出されて保留されるエレノアさんかわいそう。まあクエストの流れが見たい人もいるだろうし、一度だけ保留は出来るようにすべきでしょう
			CALL DRAW_PORTRAIT(CHARA_ID, "[感情:悲][サイズ:150px][POS_X:100]",, 1)
			{
				TEXT '= @"
					[エレノア]:「……分かりましたわ。ですが、あまり時間がありません。次はお答えを頂けるよう、お願いいたします」[$W]\n
					\n
					[$MNAME]はエレノアと別れ、帰路についた[$W]
					"
			}
			CALL PRINT_DIAG(TEXT)
			QST_SV_QUEST_FLAG:QST_有効クエストID = 1
        CASE 2
			CALL DRAW_PORTRAIT(CHARA_ID, "[感情:悲][口:通常][サイズ:150px][POS_X:100]",, 1)
			{
				TEXT '= @"
					[エレノア]:「……そう、ですか」[$W]\n
					\n
					エレノアは落胆した様子で呟いた
					彼女はしばし目を伏せていたが、やがて[$MNAME]の顔を見据えて話し出す[$W]\n
					\n
					[エレノア]:「ご無理を言ってしまい、申し訳ありませんでした。……ですが、おかげで決心がつきました」
					[エレノア]:「わたくしは、彼のことを託されたのです。その荷を他の誰かに押し付けるなど、あまりにも身勝手な行いでした」[$W]\n
					\n
					エレノアは[$MNAME]に頭を下げ、吹っ切れたような表情で語る[$W]\n
					\n
					[エレノア]:「ロイド様を起こそうと思います。わたくしに出来る限り、精一杯彼を支えていきますわ」
					[エレノア]:「いつか彼が過去を忘れ、胸を張って生きていけるように」[$W]\n
					\n
					[エレノア]:「もう一度お礼を。本当にありがとうございました」[$W]\n
					\n
					……………………[$W]
					………………[$W]
					…………[$W]\n
					\n
					その後、言葉通りエレノアはロイドを起こし、かけられていた呪いを解呪したらしい
					後日ヴェロエアを訪れた[$MNAME]は、エレノアの店で働いているロイドの姿を目にした[$W]
					錬金術を学ぶために精を出しており、エレノアとの関係も良好らしい。住人達にも受け入れられている様子だった[$W]\n
					\n
					きっと、彼らは前を向いて歩いていけるだろう。[$MNAME]は満足してその場を立ち去った[$W]
					"
			}
			CALL PRINT_DIAG(TEXT)
			PRINTL
			QST_SV_QUEST_FLAG:QST_有効クエストID = 10
			;好感度関係処理。ずっと墓守してただけあってエレノアさんの想いの方が深い
			;CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_プレイヤー
			;CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_プレイヤー
			CFLAG:NAME_TO_CHARA("エレノア"):好感度 += 250
			;CALL REL_ADD(NAME_TO_CHARA("エレノア"), NAME_TO_CHARA("UC_ロイド"), 1300, 700, 0, 0)
			;CALL REL_ADD(NAME_TO_CHARA("UC_ロイド"), NAME_TO_CHARA("エレノア"), 1200, 1100, 0, 0)
			CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_ゲストNPC
			CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_ゲストNPC
    ENDSELECT
ELSE
	PRINTL
	{
		TEXT '= @"
			[エレノア]:「……[$MNAME]様。本日はお時間を頂きありがとうございます」[$W]\n
			\n
			[$MNAME]はエレノアに返答するため、彼女のもとを訪れた
			世間話の最中もエレノアは緊張した面持ちだったが、意を決したように本題を切り出してくる[$W]\n
			\n
			[エレノア]:「今日こそは、お答えを頂きたいのです。ロイド様の後見人となっていただく件、考えていただけましたか」[$W]
			"
	}
	CALL PRINT_DIAG(TEXT)
	PRINTL
	CALL ASK_YN("了承する","断る")
	IF !RESULT
		CALL DRAW_PORTRAIT(CHARA_ID, "[感情:喜][サイズ:150px][POS_X:100]",, 1)
		{
			TEXT '= @"
				[エレノア]:「……本当ですか！　あ、いえ、失礼しました。ありがとうございます」[$W]\n
				\n
				エレノアは大きな声を出してしまったことが恥ずかしいのか、口元に手を当てている
				彼女はこほんと咳ばらいをして、表情を引き締める[$W]\n
				\n
				[エレノア]:「では、早速ロイド様の眠りを覚ましに向かいましょう。解呪の準備もしなければ……」[$W]\n
				\n
				その後、エレノアは解呪に用いる触媒等を用意し、馬車を手配して例の洞窟へ向かった
				[$MNAME]も護衛のため、その旅に同行する……[$W]\n
				\n
				"
		}
		CALL PRINT_DIAG(TEXT)
		CALL FL_STOPBGM()
		PRINTFORMW ……………………
		PRINTFORMW ………………
		PRINTFORMW …………
		PRINTL
		CALL FL_PLAYBGM("Shrine_2.ogg")
		{
			TEXT '= @"
				道中大きなアクシデントはなく、洞窟も静寂を保っていた
				冷気を発する石棺の前で、エレノアは杖を手に儀式の準備を整える[$W]\n
				\n
				[エレノア]:「……始めます」[$W]\n
				\n
				エレノアは詠唱を開始した。大気中のマナが目に見えるほどの濃度になってエレノアの周囲に集まり、世界が彼女に力を与える[$W]
				維持のために尽力していたとはいえ、数世紀もの間動き続けていた大魔術だ
				それを解除するのもまた、大量の魔力を必要とするのだろう[$W]\n
				\n
				詠唱に呼応して石棺の下に描かれていた魔法陣が徐々に発光を強めていき、氷で光が乱反射して洞窟内が青白く染まった[$W]
				そして変化が訪れる。石棺を覆っていた氷が徐々に体積を減らしだしたのだ
				氷は解けず、光の粒子となって上へ上へと昇っていき、大気に溶け込んでいく[$W]\n
				\n
				やがて氷が全て消え去り、ロイドの姿が露になった[$W]
				――胸が上下している。どうやら呼吸を開始したようだ。徐々に血色も良くなっていく
				数世紀の時を経て、彼は再び息を吹き返した[$W]\n
				\n
				[エレノア]:「終わり……ましたね……」[$W]\n
				\n
				肩で息をするエレノアは、崩れるようにしてその場に座りこんだ
				魔術の解除と呪術の解呪。双方を一度に行った彼女は疲労困憊の様子だ[$W]\n
				\n
				[エレノア]:「老体には……流石に、堪えますね……。ロイド様は、ご無事ですか……？」[$W]\n
				\n
				少なくとも、生きてはいる[$W]
				\n
				[エレノア]:「よかった……彼を運び出しましょう。あなたに、頼ることになりますが……」[$W]\n
				\n
				その程度は問題ない[$W]
				[$MNAME]はロイドを抱え上げ、石棺から運び出そうとする。その時、彼の懐から何かが零れ落ちた[$SE:Mining_0.mp3][$W]
				薔薇の装飾だろうか？　まるで枯れているかのようにくすんだ色をしている[$W]\n
				\n
				[エレノア]:「レアンナ……」\n
				\n
				"
		}
		CALL PRINT_DIAG(TEXT)
		CALL DRAW_PORTRAIT(CHARA_ID, "[感情:悲][目:閉じ(緩)][口:通常][サイズ:150px][POS_X:100]",, 1)
		PRINTFORMW
		{
			TEXT '= @"
				エレノアはそう呟いて華の装飾を胸の前に持っていき、両手で握りしめる
				……それは？[$W]\n
				\n
				[エレノア]:「彼の……主人が身に着けていた物です。いわば形見にあたるでしょう。あなたが、良いと思うタイミングで渡してあげてください」[$W]\n
				\n
				"
		}
		;レリック。デイリーで取得させる
		CALL PRINT_DIAG(TEXT)
		CALL COLOR_PRINTW("―― 枯華の装飾を手に入れた！（アイテムには表示されません）", カラー_注意)
		PRINTL
		CALL FL_STOPBGM()
		PRINTFORMW ……………………
		PRINTFORMW ………………
		PRINTFORMW …………
		PRINTL
		{
			TEXT '= @"
				洞窟を離れ、近くの宿で部屋を取った[$MNAME]たち
				眠ったままのロイドを部屋のベッドに寝かせる[$W]\n
				\n
				[エレノア]:「しばらく、ロイド様と二人きりにしていただけませんか。彼が目を覚ました時に、見知った顔以外があると混乱させてしまうと思うのです」[$W]\n
				\n
				そういうことならと、[$MNAME]は部屋を後にした[$W]\n
				\n
				――しばらくの後、ロイドが目を覚ましたらしい。部屋からは、大きく取り乱す彼の声が聞こえた[$W]\n
				\n
				[UC_ロイド]:「何故……！　何故だエレノア！　答えろ！　俺はッ……彼女を見捨てるくらいなら、あのまま……！」[$W]\n
				\n
				[エレノア]:「レアンナたっての願いですのよ。何より、呪いで碌に動けもしなかった貴方が残ったとして、何が出来て？」[$W]\n
				\n
				[UC_ロイド]:「それは……ッ……それでも、俺は騎士だ！　それが何の冗談だ！　レアンナも！　アルヘルムも！　滅んだだって！？」[$W]
				[UC_ロイド]:「主も、国も守れない……そんな俺が……何故……何故、まだ、生きているんだ……」[$W]\n
				\n
				[エレノア]:「それでも、貴方は生きねばなりません。彼女の想いを、無駄にしないで」[$W]\n
				\n
				[UC_ロイド]:「レアンナは、死んだんだろう……？　なのに、俺なんかが、生きたところで……」[$W]\n
				\n
				[エレノア]:「少なくとも、わたくしは貴方に生きていてほしい。自分のために生きられないなら、誰かのために」
				[エレノア]:「わたくしのために、生きてください」[$W]\n
				\n
				[UC_ロイド]:「ぐ……そんな言い方……ずるいだろう……」[$W]\n
				\n
				[エレノア]:「知らなかったのですか？　女は、いくつになってもズルいものですわ……」[$W]\n
				\n
				"
		}
		;初期案でロイドくんが記憶喪失設定だったのは、守りたかったものがもう全部取り戻せないことをいい感じのタイミングで思い出してほしかったから
		;記憶を取り戻したロイドくんに優しくする選択肢と追い詰めて崩壊させる選択肢を用意したイベントとか入れたかったんですが、まぁこの流れだと無理ですね
		CALL PRINT_DIAG(TEXT)
		PRINTFORMW ……………………
		PRINTFORMW ………………
		PRINTFORMW …………
		PRINTL
		PRINTFORML ロイドはある程度落ち着きを取り戻したようで、部屋から聞こえる声は小さくなっていった
		PRINTFORMW エレノアが%QST_LEADER_NAME(1)%を部屋から出したのは、彼の取り乱す姿を見せないためだったのかもしれない
		PRINTL
		PRINTFORMW %QST_LEADER_NAME(1)%が騒がしくしたことを宿屋の主人に謝罪をしていると、エレノアが姿を現した
		CALL FL_PLAYBGM("Nostalgic_4.ogg")
		PRINTL
		CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:150px][POS_X:100]",, 1)
		PRINTL
		{
			TEXT '= @"
				彼は平気か？[$W]\n
				\n
				[エレノア]:「ええ。大分落ち着きました。あの様子なら早まった真似はしないかと」[$W]\n
				\n
				エレノアはくたびれた様子で息をついた。[$MNAME]は彼女を気遣う[$W]\n
				\n
				[エレノア]:「ありがとうございます。……ええ。少し、疲れました」
				[エレノア]:「恨まれるだろうとは想像していましたが……ああ言われてしまうのは……辛いものですね」[$W]\n
				\n
				椅子に腰かけ、エレノアは手で目を覆う。その態勢のまま、彼女は話す[$W]\n
				\n
				[エレノア]:「ロイド様が、あなたに会ってお礼をしたいそうです。後見人の件も伝えました」
				[エレノア]:「よろしく、お願いします……」[$W]\n
				\n
				[$MNAME]は首肯を返し、ロイドが待つ部屋へと向かった
				部屋の扉の前に立ち、ノックする[$W]\n
				\n
				[UC_ロイド]:「どうぞ、お入りください」[$W]\n
				\n
				扉を開け、部屋へと足を踏み入れる[$SE:Door_open_0.mp3][$W]
				ロイドはベッドの上で上半身を起こしており、会釈をしてきた[$W]\n
				\n
				"
		}
		CALL PRINT_DIAG(TEXT)
		CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_ロイド"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
		PRINTL
		;手は自傷の痕
		PRINTFORML 彼の目は涙の痕か赤くなっており、手には先ほどまで無かった包帯が巻かれている
		PRINTFORMW ロイドは%QST_LEADER_NAME(1)%の視線に気づくと手を背の後ろに回した
			PRINTL
		{
			TEXT '= @"
				[UC_ロイド]:「お呼びだてしてしまい、申し訳ありません。長い眠りのせいか身体に力が入らず……」[$W]\n
				\n
				数世紀ぶりの起床だ。無理もないだろう[$W]\n
				\n
				[UC_ロイド]:「まずは、お礼を言わせてください。危ないところを助けて頂いたとか」
				[UC_ロイド]:「さらに、後見人にまでなって頂けると。このご恩には必ず働きで報います」[$W]\n
				\n
				彼には領地に来てもらうことになるだろう。労働なり、戦闘なり、いくらでも使い出はある[$W]\n
				\n
				[UC_ロイド]:「私に出来ることであれば、何でも。如何様にもお使いください」[$W]\n
				\n
				ほう、何でもか[$W]\n
				\n
				[UC_ロイド]:「ええ、何でも」[$W]\n
				\n
				"
		}
		CALL PRINT_DIAG(TEXT)
		PRINTFORMW 彼の目からは強い決意を感じる。それだけの恩を感じているのか――
		PRINTFORMW あるいは、自棄になっているのか
		PRINTL
		PRINTFORMW さて、何と言おうか……
		;初期好感度とステータス、素質に補正
		CALL ASK_MULTI_JUDGE("戦働きを期待している", 1, "労働力として力を借してくれ" , 1, "性的なことも構わないのだろう？" , 1)
		SELECTCASE RESULT
			CASE 0
				PRINTL
				CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「承りました。あなたの剣、あるいは盾として。この身を捧げます」", 1)
				CFLAG:NAME_TO_CHARA("UC_ロイド"):好感度 += 250
				ABL:NAME_TO_CHARA("UC_ロイド"):戦闘 = 130
			CASE 1
				PRINTL
				CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「勿論です。誠心誠意、働かせていただきます」", 1)
				CFLAG:NAME_TO_CHARA("UC_ロイド"):好感度 += 150
				ABL:NAME_TO_CHARA("UC_ロイド"):身体 = 110
			CASE 2
				PRINTL
				CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「……ええ。無論です」", 1)
				CFLAG:NAME_TO_CHARA("UC_ロイド"):従属度 += 400
				TALENT:NAME_TO_CHARA("UC_ロイド"):快感の否定 = 0
				TALENT:NAME_TO_CHARA("UC_ロイド"):合意 = 1
				PRINTL
				PRINTFORMW ロイドの<合意>を得た
		ENDSELECT
		PRINTL
		PRINTFORML よし、これからよろしく頼む
		PRINTFORMW ――それと、無理に敬語を使わなくてもいい
		;どうなんだろーなーこれ。ロイドくん別に敬語キャラじゃないのですが、立場的には敬語使おうとするんですよねぇ
		;敬語使ってほしいあなたもいるだろうし、選択できるのが最良でしょうが、口上作成が地獄になりそうなので、妥協……
		PRINTL
		{
			TEXT '= @"
				[UC_ロイド]:「……まぁ、あれだけ騒げば聞かれてるか」
				[UC_ロイド]:「エレノアさんにも謝らないとな……」[$W]\n
				\n
				ロイドはばつが悪そうに目を逸らし、頬をかく。しばらく思い悩んでいたが、やがてこちらに向き直って言った[$W]\n
				\n
				[UC_ロイド]:「分かった。あなたがそう言うならば従おう」
				[UC_ロイド]:「では、改めて……助けてくれてありがとう。これからよろしく頼む」[$W]\n
				"
		}
		CALL PRINT_DIAG(TEXT)
		PRINTL
		CALL COLOR_PRINTW("―― ロイドが仲間になった！", カラー_注意)
		CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_プレイヤー
		PRINTL
		;穿孔、追撃、CRTブースト二種の銀の剣。短剣でもないのに追撃2持ちはまずいかな……ウーツ鋼登場したし銀ならいけると思って入れましたが、ダメそうなら鋼にするか
		;ロイドから引きはがすことも想定して名前は入れない。この武器がQUEST48の実質的な報酬になります
		{
			CALL QST_GET_WEAPON(
				2
				,"『鈍らぬ騎士剣』"
				,WPN_材質_銀
				,0
				,"[WPN_ADDITIONAL_ATTACK:2][WPN_BOOST_CRT:4][WPN_BOOST_CRT_DAMAGE:4]"
				,"[WPN_ADD_FRAGILE:2]"
				,WPN_装備種別_武器
				,1
				)
		}
		WEAPON_LIST_IDX = RESULT
		CALL EQUIP_WEAPON(NAME_TO_CHARA("UC_ロイド"), WEAPON_LIST_IDX)
		PRINTL
		PRINTFORMW ……………………
		PRINTFORMW ………………
		PRINTFORMW …………
		PRINTL
		;瞳の色を変える
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:0 = 476
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:1 = 44
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:2 = 160
		PRINTFORMW %QST_LEADER_NAME(1)%が立ち去った後の部屋で、ロイドは独り言ちる
		PRINTL
		CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「%QST_LEADER_NAME(1)%さん、か……」", 1)
		PRINTL
		CALL DRAW_PORTRAIT(NAME_TO_CHARA("UC_ロイド"), "[感情:通常][サイズ:150px][POS_X:100]",, 1)
		PRINTL
		CALL KJ_PRINT(NAME_TO_CHARA("UC_ロイド"), @"「不思議なお人だったな」", 1)
		PRINTL
		PRINTFORMW そう呟く彼の瞳は、深紅に染まっていた
		PRINTL
		PRINTFORMW
		;瞳の色を戻す
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:0 = 220
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:1 = 300
		COLOR_MATRIX_RGB:NAME_TO_CHARA("UC_ロイド"):IMG_瞳:2 = 432
		QST_SV_QUEST_FLAG:QST_有効クエストID = 2
		;好感度関係処理。ずっと墓守してただけあってエレノアさんの想いの方が深い
		;CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_プレイヤー
		CFLAG:NAME_TO_CHARA("エレノア"):好感度 += 400
		;CALL REL_ADD(NAME_TO_CHARA("エレノア"), NAME_TO_CHARA("UC_ロイド"), 1200, 500, 0, 0)
		;CALL REL_ADD(NAME_TO_CHARA("UC_ロイド"), NAME_TO_CHARA("エレノア"), 900, 100, 0, 0)
		CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_ゲストNPC
	ELSE
		CALL DRAW_PORTRAIT(CHARA_ID, "[感情:悲][サイズ:150px][POS_X:100]",, 1)
		{
			TEXT '= @"
				[エレノア]:「……そう、ですか」[$W]\n
				\n
				エレノアは落胆した様子で呟いた
				彼女はしばし目を伏せていたが、やがて[$MNAME]の顔を見据えて話し出す[$W]\n
				\n
				[エレノア]:「ご無理を言ってしまい、申し訳ありませんでした。……ですが、おかげで決心がつきました」
				[エレノア]:「わたくしは、彼のことを託されたのです。その荷を他の誰かに押し付けるなど、あまりにも身勝手な行いでした」[$W]\n
				\n
				エレノアは[$MNAME]に頭を下げ、吹っ切れたような表情で語る[$W]\n
				\n
				[エレノア]:「ロイド様を起こそうと思います。わたくしに出来る限り、精一杯彼を支えていきますわ」
				[エレノア]:「いつか彼が過去を忘れ、胸を張って生きていけるように」[$W]\n
				\n
				[エレノア]:「もう一度お礼を。本当にありがとうございました」[$W]\n
				\n
				……………………[$W]
				………………[$W]
				…………[$W]\n
				\n
				その後、言葉通りエレノアはロイドを起こし、かけられていた呪いを解呪したらしい
				後日ヴェロエアを訪れた[$MNAME]は、エレノアの店で働いているロイドの姿を目にした[$W]
				錬金術を学ぶために精を出しており、エレノアとの関係も良好らしい。住人達にも受け入れられている様子だった[$W]\n
				\n
				きっと、彼らは前を向いて歩いていけるだろう。[$MNAME]は満足してその場を立ち去った[$W]
				"
		}
		CALL PRINT_DIAG(TEXT)
		PRINTL
		QST_SV_QUEST_FLAG:QST_有効クエストID = 10
		;好感度関係処理。ずっと墓守してただけあってエレノアさんの想いの方が深い
		;CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_プレイヤー
		;CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_プレイヤー
		CFLAG:NAME_TO_CHARA("エレノア"):好感度 += 250
		;CALL REL_ADD(NAME_TO_CHARA("エレノア"), NAME_TO_CHARA("UC_ロイド"), 1300, 700, 0, 0)
		;CALL REL_ADD(NAME_TO_CHARA("UC_ロイド"), NAME_TO_CHARA("エレノア"), 1200, 1100, 0, 0)
		CFLAG:NAME_TO_CHARA("UC_ロイド"):所属 = 所属_ゲストNPC
		CFLAG:NAME_TO_CHARA("エレノア"):所属 = 所属_ゲストNPC
	ENDIF
ENDIF
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()

;-------------------------------------------------
; ロイドの回想時の表示(TS想定してるので)、後のクエスト用にNPCを生成。弱体化前ステータスの想定
;-------------------------------------------------
@QST_QUEST_49_CREATE_NPC_Lloyd()
#DIM 対象
#DIMS 名前
#DIM 主導除外フラグ

名前 = ロイドの虚像

CALL CREATE_RANDOM_CHARA(0, -1, 1)
FLAG:汎用武将カウント --
対象 = RESULT
IF LOCAL == -1
	RETURN -1
ENDIF

NO:対象 = GET_EMPTY_NO()
;ユニークキャラとして一度だけ生成するのでCSTR:99を登録
;CSTR:99は他キャラと重複できないので固有の名称が望ましい
CSTR:対象:99 '= "GUEST_NPC_ロイド"
NAME:対象 = %名前%
CALLNAME:対象 = %名前%
BASE:対象:体力 = 6000
BASE:対象:気力 = 4500
BASE:対象:精神力 = 3500
MAXBASE:対象:体力 = 6000
MAXBASE:対象:気力 = 4500
MAXBASE:対象:精神力 = 3500
TALENT:対象:処女 = 1
TALENT:対象:キス未経験 = 1
TALENT:対象:童貞 = 1
TALENT:対象:アナル処女 = 1
TALENT:対象:体格 = 体格_長身
TALENT:対象:体型 = 体型_スレンダー
TALENT:対象:ペニスサイズ = 1
TALENT:対象:成長型 = 成長型_天才
CSTR:対象:0 =
CSTR:対象:1 =
TALENT:対象:性別 = 0
TALENT:対象:一線越えない = 1
TALENT:対象:痛みに強い = 1
TALENT:対象:習得早い = 1
TALENT:対象:献身的 = 1
TALENT:対象:快感の否定 = 1
TALENT:対象:中毒しやすい = 1
TALENT:対象:謎の魅力 = 1
TALENT:対象:人気 = 1
TALENT:対象:魔術師 = 1
TALENT:対象:母乳体質 = 0
ABL:対象:身体 = 170
ABL:対象:戦闘 = 190
ABL:対象:器用 = 150
ABL:対象:知識 = 48
ABL:対象:社交 = 44
ABL:対象:魔術 = 20
ABL:対象:観察 = 220
ABL:対象:歌唱 = 17
ABL:対象:料理 = 51
ABL:対象:話術 = 40
ABL:対象:性知識 = 2
ABL:対象:主導度Ｎ = -100
ABL:対象:主導度Ｕ = -50

CFLAG:対象:口上カラーコード = 0xFFF420
;0xFC1404
CFLAG:対象:所属 = 所属_ゲストNPC

;[ポートレイトパーツ情報]
;※ポートレイト・口上編集画面の[パーツ情報出力]の出力ファイルを編集すると設定しやすいです
CSTR:対象:120 '= "CC1_後髪_6"
CSTR:対象:121 '= "CC1_身体_1"
CSTR:対象:122 '= "CC1_顔_4"
CSTR:対象:123 '= "CC1_瞳_0"
CSTR:対象:124 '= "CC1_目_7"
CSTR:対象:126 '= "CC1_鼻_2"
CSTR:対象:127 '= "CC1_口_5"
CSTR:対象:128 '= "CC1_服_鎧_2"
CSTR:対象:129 '= "CC1_前髪_14"
CSTR:対象:130 '= "CC1_眉_1"
CSTR:対象:150 '= "288:220:104"
CSTR:対象:151 '= "288:256:256"
CSTR:対象:152 '= "288:256:256"
CSTR:対象:153 '= "220:300:432"
;CSTR:対象:153 '= "476:44:160"
CSTR:対象:154 '= ""
CSTR:対象:156 '= ""
CSTR:対象:157 '= ""
CSTR:対象:158 '= ""
CSTR:対象:159 '= "288:220:104"
CSTR:対象:160 '= ""
CSTR:対象:181 '= "[FACE_PARTS_OFFSET_X:-34][FACE_PARTS_SIZE_MOD_X:55]"
CSTR:対象:183 '= "[FACE_PARTS_OFFSET_Y:4][FACE_PARTS_SIZE_MOD_X:1][FACE_PARTS_SIZE_MOD_Y:-21]"
CSTR:対象:184 '= "[FACE_PARTS_OFFSET_Y:4][FACE_PARTS_SIZE_MOD_X:1][FACE_PARTS_SIZE_MOD_Y:-21]"
CSTR:対象:187 '= "[FACE_PARTS_OFFSET_Y:1][FACE_PARTS_SIZE_MOD_X:1][FACE_PARTS_SIZE_MOD_Y:1]"
CSTR:対象:188 '= "[FACE_PARTS_OFFSET_X:-34][FACE_PARTS_SIZE_MOD_X:55]"
CSTR:対象:189 '= "[FACE_PARTS_OFFSET_Y:-3][FACE_PARTS_SIZE_MOD_Y:-13]"
CSTR:対象:190 '= "[FACE_PARTS_OFFSET_Y:-11][FACE_PARTS_SIZE_MOD_X:1][FACE_PARTS_SIZE_MOD_Y:30]"

CALL SET_BODYSIZE(対象)


code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_4:サンプルクエスト
;-------------------------------------------------
@QST_TITLE_QUEST_4
RESULTS '= "隊商護衛"

;ギルドメニューでクエストをフィルターする際のタグリスト。末尾の','を忘れないように
@QST_QUEST_TAG_4
RESULTS '= "周期,イベント,"

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_4
RESULTS:0 '= "辺境地域の街道の治安は決して良いとはいえず"
RESULTS:1 '= "常日頃魔獣やならず者たちによって危険に晒されている"
RESULTS:2 '= "そのため街道を行き来するキャラバンの護衛の需要はほぼ絶え間なく存在している"
RESULTS:4 '= "冒険者ギルドに寄せられる最も一般的な依頼の一つ。だが危険も大きい"

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_4
RESULTS:0 '= @"難易度：@C:{カラー_注意}@★★★ ～ ★★★★★@/C@"
RESULTS:1 '= "報酬：10,000ディナリ～"
RESULTS:2 '= "推奨パーティ人数:3人以上　　　推奨平均戦闘値：40以上"
RESULTS:4 '= @"@C:{カラー_選択不可}@「あんたら自身が略奪品にならんよう、せいぜい注意するこった」@/C@"

;-------------------------------------------------
;クエストの実行可能条件を定義
;3期に一度
;-------------------------------------------------
@QST_AVAILABLE_QUEST_4(QUEST_ID)
#DIM QUEST_ID
;前提としてQUEST_0_ゴブリンの洞窟の攻略が必要
SIF !QST_SV_QUEST_FLAG:0
    RETURN 0
;クエストのクールタイム。完了時に加算され、期終了時に減算される
IF QST_COOLTIME:QUEST_ID
    RETURN 0
ELSE
    RETURN 1
ENDIF

;-------------------------------------------------
;クエストのタイプ
;マップ探索を伴う場合 "MAP"
;文章のみで完結する場合 "DIALOGUE"
;-------------------------------------------------
@QST_TYPE_QUEST_4
RESULTS '= "DIALOGUE"

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_4
#DIM CONST 派生イベントID = 4
#DIM  DYNAMIC CHARA_ID
#DIMS DYNAMIC _LIST_ENEMY_PARTY
#DIMS DYNAMIC _LIST_CHARA
#DIM  DYNAMIC 判定済フラグ, 4

#DIM  レイプを許容
#DIM  牢獄使用可
#DIM  報酬_名誉点
#DIM  報酬_戦闘経験値

PRINTL
PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTL

報酬_名誉点 = 20
報酬_戦闘経験値 = 4

;2回目以降の選択肢
IF QST_SV_QUEST_FLAG:QST_有効クエストID == 1
    PRINTFORMW 「よおあんた、以前は世話になったな」
    PRINTL
    PRINTFORML 「あんたの腕を見込んで頼みがある。実はこの先を崖沿いに進むと街まで二、三日ばかり早くつけるんだ」
    PRINTFORMW 「ただこのルートはより厄介な山賊が張っててな……危険も大きい」
    PRINTL
    PRINTFORMW 「リスクは避けたいが商売はスピードも大事だ、もし崖沿いのルートの護衛を引きうけてくれるなら報酬を上乗せしよう」
    PRINTL
    PRINTFORML さて……どうしたものだろうか？
    CALL ASK_YN("リスクの低い通常ルートを選択する", "リスクの高い近道のルートを選択する（難易度増・報酬増）")
    IF RESULT
        PRINTFORMW 「そいつはありがたい！街についたらたっぷり礼は弾ませてもらおう！」
        QST_FLAG:QST_有効クエストID = 1
        報酬_名誉点 = 30
        報酬_戦闘経験値 = 8
    ELSE
        PRINTFORMW 「……不用意な危険は冒すべきではないか。お前さんの言う通りだ、いつものルートを使おう」
        QST_FLAG:QST_有効クエストID = 0
    ENDIF
ENDIF

;低難易度ルート
IF QST_FLAG:QST_有効クエストID != 1
    PRINTFORMW %QST_LEADER_NAME()%を乗せた隊商は開けた平地を抜けて森へと差し掛かった
    PRINTL
    PRINTFORML 馬車の騎手は荷台越しに%QST_LEADER_NAME()%に警戒を強めるよう呼びかける
    PRINTFORMW 左右ともに見通しが悪く、待ち伏せには絶好の場所だ
    PRINTL
    PRINTFORMW ―― 案の定襲撃を告げる警笛が鳴り響く！
    PRINTL
    PRINTFORMW 「さぁ出番だ、頼んだぞ！」
    PRINTL
    CALLF TAG_PRINT(@"@C:{カラー_注意}@%QST_LEADER_NAME()%は武器を手に取り襲撃者たちに対峙した@/C@", 1)
    WAIT

    ;;敵モブキャラを生成
    ;一人はスキル持ちの女性
    CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0 ;味方の調教参加者は後で選択するので、フラグ付きでモブを生成する前に一度初期化
    CALL QST_QUEST_4_CREATE_VICTIMS(1)
    CHARA_ID = RESULT
    _DIC_SKILL_LIST:CHARA_ID:1 '= "[ATK_BUFF:2][ARMOR_DECAY:2]"
    _LIST_ENEMY_PARTY = %LIST_ADD(_LIST_ENEMY_PARTY, TOSTR(CHARA_ID))%
    ;あとは適当に
    FOR LOCAL, 0, RAND(2, 3)
        CALL QST_QUEST_4_CREATE_VICTIMS(RAND:2)
        _LIST_ENEMY_PARTY = %LIST_ADD(_LIST_ENEMY_PARTY, TOSTR(RESULT))%
    NEXT
ELSE
    ;高難易度ルート
    PRINTFORMW %QST_LEADER_NAME()%を乗せた隊商は山道へ入り見通しの悪い崖にそって進む
    PRINTL
    PRINTFORML 馬車の騎手は荷台越しに%QST_LEADER_NAME()%に警戒を強めるよう呼びかける
    PRINTFORMW 左右ともに見通しが悪く、待ち伏せには絶好の場所だ
    PRINTL
    PRINTFORMW ―― 案の定襲撃を告げる警笛が鳴り響く！
    PRINTL
    PRINTFORMW 「さぁ出番だ、頼んだぞ！」
    PRINTL
    CALLF TAG_PRINT(@"@C:{カラー_注意}@%QST_LEADER_NAME()%は武器を手に取り襲撃者たちに対峙した@/C@", 1)
    WAIT
    ;;敵モブキャラを生成
    CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0 ;味方の調教参加者は後で選択するので、フラグ付きでモブを生成する前に一度初期化
    FOR LOCAL, 0, 2
        CALL QST_QUEST_4_CREATE_VICTIMS(1)
        CHARA_ID = RESULT
        _DIC_SKILL_LIST:CHARA_ID:1 '= "[ATK_BUFF:2][ARMOR_DECAY:2]"
        _LIST_ENEMY_PARTY = %LIST_ADD(_LIST_ENEMY_PARTY, TOSTR(CHARA_ID))%
    NEXT
    FOR LOCAL, 0, 3
        CALL QST_QUEST_4_CREATE_VICTIMS(RAND:2)
        _LIST_ENEMY_PARTY = %LIST_ADD(_LIST_ENEMY_PARTY, TOSTR(RESULT))%
    NEXT
ENDIF

;敵モブを攻撃側に
CALL CC_INIT()
FOR LOCAL, 0, LIST_COUNT(_LIST_ENEMY_PARTY)
    CHARA_ID = TOINT(LIST_GET(_LIST_ENEMY_PARTY, LOCAL))
    ;NPCに戦闘時のみ有効な武器を持たせる
    CALL CC_SET_TEMP_WEAPON(CHARA_ID, RAND(1,3), "", WPN_材質_鋼)
    CALL CC_ADDCHARA("ATTACKER", CHARA_ID)
NEXT
;味方を防御側に
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CALL CC_ADDCHARA("DEFFENDER", TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)))
NEXT

CALL CLOSE_COMBAT()

IF RESULT == 2
    CALL COLOR_PRINTW(@"―― %QST_LEADER_NAME()%はならず者たちとの戦いに勝利した！", カラー_注意)
    CALL CC_ADD_COMBAT_EXP(4)
    PRINTL
    PRINTFORMW ……………………
    PRINTFORMW ………………
    PRINTFORMW …………
    PRINTL
    PRINTFORMW ならず者たちはことごとく捕縛されうなだれている。今や生殺与奪は%QST_LEADER_NAME()%のものだ
    PRINTL
    PRINTFORMW 彼らを街で官憲に引き渡してもよいし、奴隷として行商人たちに引き渡してもよい
    PRINTL
    PRINTFORMW ……あるいは、彼らを欲望の捌け口としたところでこの場にはそれを咎める法は存在しない……
    PRINTL
    PRINTFORML %QST_LEADER_NAME()%は彼らを……
    CALL QST_GET_CHARA_CAN_ACCEPT_RAPE
    レイプを許容 = RESULT
    _LIST_CHARA = %RESULTS%
    ;空きの居房が必要
    CALL HO_GET_VACANT_PRISON_CELL_COUNT
    IF RESULT > 0 && QST_PRESTIGE_POINT > 250
        牢獄使用可 = 1
    ENDIF

    $ASK_LOOP_WIN
    CALL ASK_MULTI_JUDGE(@"街で官憲に引き渡す(名誉点+{報酬_名誉点})", 1, @"奴隷として商人に引き渡す(+4,000ディナリ)", 1, "欲望の捌け口にする", レイプを許容, "同業のテントに放り込む", 1, "捕虜として連れ帰る(空の独房と名誉点250点が必要)", 牢獄使用可)
    PRINTL
    SELECTCASE RESULT
        CASE 0
            PRINTFORMW %QST_LEADER_NAME()%はならず者らを街まで連行し、官憲に引き渡した
            CALL COLOR_PRINTW(@"――　名誉点を{報酬_名誉点}点得た！", カラー_注意)
            QST_PRESTIGE_POINT += 報酬_名誉点
            ;エル口上デイリーフラグ
            IF !K7_DFLAG_世界を学ぶ && LIST_INDEXOF(_LIST_QST_PARTY, TOSTR(NAME_TO_CHARA("エル"))) != -1
                K7_DFLAG_世界を学ぶ = 1
            ENDIF
            CALL QST_QUEST_4_EVENT_2
        CASE 1
            PRINTFORMW %QST_LEADER_NAME()%はその場で彼らを行商人たちの競りにかけ、奴隷として売却した
            CALL COLOR_PRINTW(@"――　4,000ディナリを得た！", カラー_注意)
            MONEY += 4000
            CALL QST_QUEST_4_EVENT_2
        CASE 2
            PRINTFORMW 震えて許しを請うならず者をたちを前にして%ANAME(TOINT(LIST_RAND(_LIST_CHARA)))%は嗜虐心がうずくのを感じた……
            PRINTL
            PRINTFORML 意のままに動く奴隷、または嗜虐的な嗜好を持つ仲間は行為に加担させることができる
            CALL SELECT_CHARA_LIST_INIT
            CALL SELECT_CHARA_LIST_MULTI_ONLY_LOGIC_SLG(6, "PARTY_MEMBER", "IS_RAPE_ACCEPTABLE")
            IF SELECTED_CHARA_NUM == 0
                PRINTFORMW やはりやめておこう……
                GOTO ASK_LOOP_WIN
            ENDIF
            CALL COLOR_PRINTW(@"%ANAME(SELECTED_CHARA:0)%はならず者らの服を強引に剥ぎ取り、地面に組み伏せた……", カラー_ピンク)
            ;襲撃者を捕虜調教
            FLAG:ウフフフラグ = 1
            FLAG:調教モード = 調教_捕虜調教
            QST_調教ターン数 = 20
            FOR LOCAL, 0, SELECTED_CHARA_NUM
                CFLAG:(SELECTED_CHARA:LOCAL):調教参加フラグ = 1
            NEXT
            FOR LOCAL, 0, LIST_COUNT(_LIST_ENEMY_PARTY)
                PRISONER_TARGET:LOCAL = TOINT(LIST_GET(_LIST_ENEMY_PARTY, LOCAL))
            NEXT
            CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(2)
            CALL START_TRAIN_COMMON
            RETURN
        CASE 3
            PRINTFORMW %QST_LEADER_NAME()%は野営地で乱痴気騒ぎに興ずる同業者に近づくと、おもむろに虜囚たちを引き渡した
            PRINTL
            PRINTFORMW 意を解した同業者は感謝の言葉ともに下卑た笑みを浮かべると、ならず者の女の服をその場で引き裂き、組み伏せた
            CALL COLOR_PRINTW(@"たちまち手当たり次第の乱暴狼藉が始まった……", カラー_ピンク)
            FLAG:ウフフフラグ = 1
            FLAG:調教スキップ可 = 1
            FLAG:調教モード = 調教_慰安
            QST_調教ターン数 = 20
            ;竿役生成
            FOR LOCAL, 0, 3
                CALL QST_QUEST_4_CREATE_VICTIMS(0)
                CHARA_ID = RESULT
                NAME:CHARA_ID = %S_R("キャラバンガード/行商人/冒険者")%
                CALLNAME:CHARA_ID = %NAME:CHARA_ID%
                CFLAG:CHARA_ID:調教参加フラグ = 1
                CFLAG:CHARA_ID:慰安参加者 = 1
                CFLAG:CHARA_ID:強制友好化 = 1
                CFLAG:CHARA_ID:慰安参加者非対象化 = 1
            NEXT
            CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(2)
            CALL START_TRAIN_COMMON
            RETURN
        CASE 4
            CHARA_ID = TOINT(LIST_GET(_LIST_ENEMY_PARTY, RAND(0, LIST_COUNT(_LIST_ENEMY_PARTY))))
            PRINTFORML %QST_LEADER_NAME()%の領地には虜囚を収監できる牢獄がある
            PRINTFORML 望むなら一人は領地に連れ帰ることもできるだろう
            PRINTFORMW さて、このならず者はまだ身動き出来る程度の体力が残っており、連れ帰ることが出来そうだが……
            ;捕獲処理
            CALL QST_TRAIN_MOB_CAPTURE(CHARA_ID)
            IF !RESULT
                PRINTFORMW やはりやめておこう……
                PRINTL
                GOTO ASK_LOOP_WIN
            ENDIF
            CALL PRINT_NOTICE(@"%ANAME(CHARA_ID)%を捕虜に取った！")
            CALL QST_QUEST_4_EVENT_2()
    ENDSELECT
ELSEIF RESULT == 1
    CALL COLOR_PRINTW(@"―― %QST_LEADER_NAME()%はならず者たちに叩きのめされてしまった！", カラー_注意)
    PRINTL
    PRINTFORMW ……………………
    PRINTFORMW ………………
    PRINTFORMW …………
    PRINTL
    PRINTFORMW 敗北しうなだれる%QST_LEADER_NAME()%をならず者たちは下卑た笑みを浮かべ、嘲っている
    PRINTFORMW どうやら彼らは%QST_LEADER_NAME()%を奴隷として売り飛ばす前に"味見"することにしたらしい……
    PRINTL
    PRINTFORMW なんとか逃げ出せないものか……
    $ASK_LOOP_DEFEAT
    {
        CALL ASK_MULTI_JUDGE("身代金を支払う(-15,000ディナリ)", 1,
            "縄を切って逃走する(器用)", 判定済フラグ:1 == 1 ? 0 # 1,
            "懐柔をはかる(話術)", 判定済フラグ:2 == 1 ? 0 # 1,
            "あきらめる", 1)
    }
    PRINTL
    SELECTCASE RESULT
        CASE 0
            PRINTFORMW %QST_LEADER_NAME()%はならず者たちに身代金の支払いを提案した……
            IF MONEY < 15000
                PRINTFORMW ……しかし提示額を支払えるだけの持ち合わせがない
                GOTO ASK_LOOP_DEFEAT
            ELSE
                PRINTFORMW 「……まぁいいだろう、とっとと失せな」
                MONEY -= 15000
                CALL COLOR_PRINTW(@"――　%QST_LEADER_NAME()%は身代金として15,000ディナリを支払い、辛くも窮地を脱した……", カラー_注意)
                CALL QST_QUEST_4_EVENT_1
            ENDIF
        CASE 1
            PRINTFORMW %QST_LEADER_NAME()%は拘束の解除を試みる
            CALL QST_PARTY_ROLL("器用", 300, 0, 5)
            CHARA_ID = RESULT:1
            IF RESULT == 1
                CALL COLOR_PRINTW(@"――　%ANAME(CHARA_ID)%が拘束を解くことに成功した！", カラー_注意)
                PRINTL
                PRINTFORMW  ならず者たちが戦利品を物色してる間に、%QST_LEADER_NAME()%はその場から逃走した
                CALL QST_QUEST_4_EVENT_1
            ELSEIF RESULT == 0
                PRINTFORMW ……縄はきつく結ばれておりとても解けそうにない……
                判定済フラグ:1 = 1
                GOTO ASK_LOOP_DEFEAT
            ELSEIF RESULT == -1
                GOTO ASK_LOOP_DEFEAT
            ENDIF
        CASE 2
            PRINTFORMW %QST_LEADER_NAME()%は懐柔をはかるべく頭目らしき男に声をかけた
            CALL QST_PARTY_ROLL("話術", 550, 0, 5)
            CHARA_ID = RESULT:1
            IF RESULT == 1
                PRINTFORMW 「……くっくっく、弁の立つ奴だ。気に入った、気が変わる前に失せな」
                CALL COLOR_PRINTW(@"――　%ANAME(CHARA_ID)%の説得にならず者が応じ、その場を立ち去ることを許された……", カラー_注意)
                CALL QST_QUEST_4_EVENT_1
            ELSEIF RESULT == 0
                PRINTFORMW %ANAME(CHARA_ID)%の説得はならず者たちに鼻であしらわれてしまった……
                判定済フラグ:2 = 1
                GOTO ASK_LOOP_DEFEAT
            ELSEIF RESULT == -1
                GOTO ASK_LOOP_DEFEAT
            ENDIF
        CASEELSE
            PRINTFORMW どうにもなりそうもない……。　%QST_LEADER_NAME()%は抵抗を諦めた……
            CALL COLOR_PRINTW(@"ならず者たちは%QST_LEADER_NAME()%を組み伏せた！", カラー_ピンク)
            ;攻撃側勝利で襲撃者の慰み者に
            FLAG:ウフフフラグ = 1
            FLAG:調教モード = 調教_慰安
            TFLAG:調教ターン数 = 25
            FOR LOCAL, 0, LIST_COUNT(_LIST_ENEMY_PARTY)
                CHARA_ID = TOINT(LIST_GET(_LIST_ENEMY_PARTY, LOCAL))
                CFLAG:CHARA_ID:慰安参加者 = 1
                CFLAG:CHARA_ID:強制友好化 = 1
                CFLAG:CHARA_ID:慰安参加者非対象化 = 1
            NEXT
            FOR LOCAL, 0, QST_PARTYNUM
                CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):主導除外 = 1
                CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):凌辱被害者フラグ = 1
                CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):調教参加フラグ = 1
            NEXT
            CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(1)
            CALL START_TRAIN_COMMON
            RETURN
    ENDSELECT
ENDIF
;-------------------------------------------------
;EV1
;エンディング（クエスト失敗）
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_4_EVENT_1
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

@QST_QUEST_4_EVENT_1
#DIM CONST EVENT_ID = 1
#DIM EVENT_FLAG
#DIM TARGET_ID

PRINTL
PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTL

PRINTFORMW 護衛は失敗に終わり、隊商は散々に略奪されてしまった
PRINTFORML
PRINTFORMW %QST_LEADER_NAME()%はボロボロの身を引きずってなんとか帰還した……
PRINTFORML
TFLAG:クエスト_完了フラグ = 1
QST_COOLTIME:QST_有効クエストID += 3

CALL TRAIN_EXIT()

;-------------------------------------------------
;EV2
;エンディング（クエスト成功）
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_4_EVENT_2
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

@QST_QUEST_4_EVENT_2
#DIM CONST EVENT_ID = 2
#DIM EVENT_FLAG
#DIM TARGET_ID
#DIM 報酬_ディナリ

IF QST_FLAG:QST_有効クエストID != 1
    報酬_ディナリ = 10000
ELSE
    報酬_ディナリ = 15000
ENDIF

PRINTL
PRINTFORMW 護衛は成功裏に終わり、行商人たちは口々に%QST_LEADER_NAME()%に感謝の言葉を投げた
PRINTFORML
PRINTFORMW %QST_LEADER_NAME()%はクエストを完遂した！
PRINTFORML
CALL COLOR_PRINTW(@"――　商人ギルドから成功報酬として%TOSTR(報酬_ディナリ)%ディナリが支払われた", カラー_注意)
MONEY += 報酬_ディナリ
TFLAG:クエスト_完了フラグ = 1
QST_COOLTIME:QST_有効クエストID += 3
QST_SV_QUEST_FLAG:QST_有効クエストID = 1

CALL TRAIN_EXIT()
;-------------------------------------------------
;慰安モブの定義
;-------------------------------------------------
@QST_QUEST_4_CREATE_VICTIMS(SEX)
#DIM SEX
#DIM 対象
#DIMS 名前
#DIM 主導除外フラグ

名前 = %SPLIT_RAND("野盗/傭兵くずれ/盗賊/冒険者くずれ",1)%

CALL CREATE_RANDOM_CHARA(0, -1, SEX)
FLAG:汎用武将カウント --
対象 = RESULT
IF LOCAL == -1
    RETURN -1
ENDIF

NO:対象 = GET_EMPTY_NO()
NAME:対象 = %名前%
CALLNAME:対象 = %名前%
TALENT:対象:処女 = 0
TALENT:対象:キス未経験 = 0
TALENT:対象:童貞 = 0
TALENT:対象:アナル処女 = 0
CSTR:対象:0 =
CSTR:対象:1 =
TALENT:対象:性別 = SEX
ABL:対象:戦闘 =  RAND(35, 50)
ABL:対象:性知識 = 3
ABL:対象:奉仕 = 1
ABL:対象:性技 = RAND(0, 4)
ABL:対象:欲望 = RAND(3, 7)
ABL:対象:性交 = RAND(3, 5)
ABL:対象:射精 = RAND(3, 5)
ABL:対象:サド = RAND(0, 3)
ABL:対象:主導度Ｕ = RAND(0, 500)
ABL:対象:倒錯度 = RAND(0, 300)
CFLAG:対象:調教参加フラグ = 1
CFLAG:対象:慰安モブ = 1

;素質に合わせた性経験初期設定
CALL QST_TRAIN_MOB_INIT_SEXUAL_EXPERIENCE(対象)

COM_TENDENCY:対象:GETNUM(TRAINNAME, "代わる代わる挿入") = 3
COM_TENDENCY:対象:GETNUM(TRAINNAME, "代わる代わるＡ挿入") = 3
COM_TENDENCY:対象:GETNUM(TRAINNAME, "順番に挿入") = 3
COM_TENDENCY:対象:GETNUM(TRAINNAME, "順番にＡ挿入") = 3

RETURN 対象

repo_name: napo/erafl

license: unknown


code:
;フロア進行形イベントをまとめて非活性化
@QST_QUEST_50_EVENT_DEACTIVATE_FLOOR_EVENT()
CALL QST_DEACTIVATE_EVENT(1)
CALL QST_DEACTIVATE_EVENT(2)
CALL QST_DEACTIVATE_EVENT(3)
FLAG:クエスト_中断を許可 = 0

;フロア進行形イベントをまとめて活性化
@QST_QUEST_50_EVENT_ACTIVATE_FLOOR_EVENT()
CALL QST_ACTIVATE_EVENT(1)
CALL QST_ACTIVATE_EVENT(2)
CALL QST_ACTIVATE_EVENT(3)
FLAG:クエスト_中断を許可 = 1


code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_50:めくるめくる淫魔の奇譚
;-------------------------------------------------
@QST_TITLE_QUEST_50
RESULTS '= "めくりめぐる淫魔の奇譚"

;ギルドメニューでクエストをフィルターする際のタグリスト。末尾の','を忘れないように
@QST_QUEST_TAG_50
RESULTS '= "周期,連戦,"

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_50
RESULTS:0 '= @"あくる日の夜、%ANAME(MASTER)%は書棚に見慣れぬ一冊の本が収まっていることに気がつく"
RESULTS:1 '= @"その奇妙な本には表題が無く、表紙には代わりに奇妙な流線型の紋が刻まれている"
RESULTS:2 '= @"%ANAME(MASTER)%はその紋様の主に心当たりがある"
RESULTS:3 '= @"迷宮に巣食いヒトの精をすする双子の淫魔。彼らの笑い声が脳裏に響いた気がした"
RESULTS:5 '= @"この書籍を開けば何が起こるかは想像に難くない……"
RESULTS:6 '= @"放って置くもよし、あえて手に取るもよし、その判断は%ANAME(MASTER)%に委ねられている"

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_50
RESULTS:0 '= @"難易度：@C:{カラー_ピンク}@❤×6@/C@"
RESULTS:1 '= "報酬：-"
RESULTS:2 '= "パーティ人数:2人～3人　　　必要性技スキル：誘蛾の色香LV2以上"
RESULTS:3 '= "備考:定期性クエスト(4期毎)、退却可能　　　推奨平均戦闘値：45以上"
RESULTS:4 '= @"@C:{カラー_選択不可}@「迷宮に通い詰めるのも面倒くさがる出不精な豚ちゃん向けのとっておきの一品だよ！大事にしてね！」@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@「今回は男の人も女の人も楽しめるように誂えてあるんだ」@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@「……君たちの言葉では…たよ…んーなんだったかな？まぁ何でもいいや。楽しんでね！」@/C@"

;-------------------------------------------------
;クエストの実行可能条件を定義
;3期に一度
;-------------------------------------------------
@QST_AVAILABLE_QUEST_50(QUEST_ID)
#DIM QUEST_ID
;前提としてQUEST_11_淫魔の小迷宮の攻略が必要
SIF QST_SV_QUEST_FLAG:11 != 2
    RETURN 0
;前提としてQUEST_30_深森の忘都の攻略が必要
SIF QST_SV_QUEST_FLAG:30 != 2
    RETURN 0
;クエストのクールタイム。完了時に加算され、期終了時に減算される
SIF QST_COOLTIME:QUEST_ID
    RETURN 0

RETURN 1

;-------------------------------------------------
;クエスト固有の開始条件
;[このクエストを開始する]押下時に呼ばれる
;パーティ人数2～3人・誘蛾の芳香LV2以上が必要
;-------------------------------------------------
@QST_CAN_START_QUEST_50(QUEST_ID)
#DIM QUEST_ID
#DIM DYNAMIC ERR_CNT
#DIM DYNAMIC CHARA_ID
LOCALS '= ""
;人数制限
IF !INRANGE(QST_PARTYNUM, 2, 3)
    CALLF TAG_PRINT(@"@C:{カラー_注意}@二人～三人のみ参加可能です@/C@", 1)
    WAIT
    RETURN 0
ENDIF
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CHARA_ID = TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))
    CALL SKILL_GET_LEVEL(CHARA_ID, スキル_大分類_性技, "SEDUCTION")
    IF RESULT < 2
        ERR_CNT ++
        LOCALS += @"<%ANAME(CHARA_ID)%>"
    ENDIF
NEXT
IF ERR_CNT
    CALLF TAG_PRINT(@"@C:{カラー_注意}@参加条件を満たしてないキャラが編成されています(性技スキル:誘蛾の色香LV2以上が必要)@/C@", 1)
    CALLF TAG_PRINT(@"@C:{カラー_注意}@条件を満たしていないキャラ：%LOCALS%@/C@", 1)
    WAIT
    RETURN 0
ELSE
    RETURN 1
ENDIF

;-------------------------------------------------
;マップデータ定義
;-------------------------------------------------
@QST_SET_MAPDATA_QUEST_50(MAP_ID)
#DIM MAP_ID
QST_MAPNAME '= "淫魔の奇譚"
_DIC_HO_MAPDATA:MAP_ID:0   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:1   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:2   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:3   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:4   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:5   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:6   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:7   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:8   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:9   '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:10  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:11  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:12  '= "[ROOM_ID:200][ROOM_PATH:][ROOM_NAME:小部屋][EVENT_LIST:1,2,3,4,5,6,10,11,]"
_DIC_HO_MAPDATA:MAP_ID:13  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:14  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:15  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:16  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:17  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:18  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:19  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:20  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:21  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:22  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:23  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:24  '= "[ROOM_ID:0][MODULE_SLOT:][ROOM_PATH:]"

;-------------------------------------------------
;クエストのタイプ
;マップ探索を伴う場合 "MAP"
;文章のみで完結する場合 "DIALOGUE"
;-------------------------------------------------
@QST_TYPE_QUEST_50
RESULTS '= "MAP"

;-------------------------------------------------
;クエスト固有の初期化処理
;-------------------------------------------------
@QST_INIT_QUEST_50
FLAG:クエスト_中断を許可 = 1

;-------------------------------------------------
;クエスト中断時の処理
;-------------------------------------------------
@QST_QUEST_50_ABORT
#DIM DYNAMIC REWARD_MONEY
#DIM DYNAMIC REWARD_PRESTEAGE

PRINTFORMW 身の危険を感じた%QST_LEADER_NAME()%は撤退を決意した
PRINTFORMW この異常な空間の中で尽き果てれば何が起こるかわかったものではない、体力があるうちに帰還するのが懸命であろう
PRINTL
PRINTFORMW %QST_LEADER_NAME(1)%が「お帰りはこちら」と書かれたノブに手を掛けると、どこかで不服そうなぼやきが聞こえた気がした……
PRINTL
PRINTL

QST_COOLTIME:QST_有効クエストID += 5

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_50
CALL QST_QUEST_50_ENEMY_DATA
IF !QST_SV_QUEST_FLAG:50
    PRINTL
    PRINTFORMW ……………………
    PRINTFORMW ………………
    PRINTFORMW …………
    PRINTL
    PRINTFORMW 書籍のページを開くと同時に、意識が吸い込まれるように遠のく
    PRINTFORMW 気がつくと%QST_LEADER_NAME()%は小さな、奇妙な小部屋の中にいた
    PRINTFORMW 窓の無い小さな部屋で、小綺麗な調度品が誂えられており、テーブルの上には空になったティーカップが二つ置かれている
    PRINTFORMW つい先程まで誰かが茶会に興じていたかのようだ
    PRINTL
    PRINTFORMW 部屋の四方には扉が設けられている。そのうちの一つには汚い文字で「お帰りはこちら」と書かれている
    PRINTFORMW その他の扉はそれぞれこの空間の奥へと続いているようだ
    PRINTL
    PRINTFORMW さて、どうしたものだろうか……
    PRINTFORMW この先にはかの淫魔の趣味趣向で満ちた空間が広がっているに違いない
    PRINTFORMW 気まぐれな彼らの欲求を満たすことが出来れば、何か得るものもあるかもしれない
    PRINTFORMW しかしそれは代償として人としての尊厳を捧げる覚悟があれば、の話であるのだが……
    PRINTL
    PRINTL
    PRINTL
    ;進捗度を初回挑戦済みに
    QST_SV_QUEST_FLAG:50 = 1
ENDIF
CALL COLOR_PRINTW(@"このクエストでは体力の許す限り探索を行うことができる", カラー_注意)
CALL COLOR_PRINTW(@"途中で撤退することも出来る。が、ある程度進まないと得られるものはあまりないかもしれない……", カラー_オレンジ)

;初回フロアの作成
CALL QST_QUEST_50_SET_FLOOR()
CALL QST_QUEST_50_SET_EVENT_NAME()
;カールとカーラのクローンを生成する
CALL CREATE_CLONE(NAME_TO_CHARA("インキュバス・カール"))
CALL CREATE_CLONE(NAME_TO_CHARA("サキュバス・カーラ"))
;クエスト用ダミーモブの生成
CALL QST_TRAIN_MOB_PRESET("触手", "正体不明")
CFLAG:RESULT:調教参加フラグ = 0
CALL QST_SET_FLAGMAP("DUMMY_MOB_ID", TOSTR(RESULT))
;BGM再生
CALL FL_PLAYBGM("Train_0.ogg")

;-------------------------------------------------
;EV0
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_0
; #region EV0
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = ""
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

@QST_QUEST_50_EVENT_0
; #endregion

;-------------------------------------------------
;EV1
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_1
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "西の部屋へ進む()"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= @"[EVENT_ICON:DOOR]"

@QST_QUEST_50_EVENT_1
#DIM EVENT_FLAG
#DIMS ENEMY_PRESET_NAME

CALL QST_QUEST_50_EVENT_MANAGER()

;-------------------------------------------------
;EV2
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_2
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "北の部屋へ進む()"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= @"[EVENT_ICON:DOOR]"

@QST_QUEST_50_EVENT_2
#DIM EVENT_FLAG
#DIMS ENEMY_PRESET_NAME

CALL QST_QUEST_50_EVENT_MANAGER()

;-------------------------------------------------
;EV3
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_3
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "東の部屋へ進む()"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= @"[EVENT_ICON:DOOR]"

@QST_QUEST_50_EVENT_3
#DIM EVENT_FLAG
#DIMS ENEMY_PRESET_NAME

CALL QST_QUEST_50_EVENT_MANAGER()

;-------------------------------------------------
; 各イベントを制御
;-------------------------------------------------
@QST_QUEST_50_EVENT_MANAGER()
; #region イベント制御部
#DIM  DYNAMIC FLOOR
#DIMS DYNAMIC EVENT
#DIMS DYNAMIC ENEMY_PRESET_NAME

FLOOR = TOINT(QST_GET_FLAGMAP("フロア")) + 1
;未実行の報酬イベントを非活性化
CALL QST_DEACTIVATE_EVENT(4)
CALL QST_DEACTIVATE_EVENT(5)
CALL QST_DEACTIVATE_EVENT(6)

EVENT = %QST_GET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR")%
SELECTCASE EVENT
    CASE "休憩"
        CALL PRINT_TITLE("休憩室", "イベント")
        PRINTFORML 部屋の中央のテーブルには茶器が置かれている
        PRINTFORMW なみなみと茶が注がれたティーカップがテーブルに置かれていること以外は……不自然な点はない
        PRINTL
        CALL QST_ACTIVATE_EVENT(4)
    CASE "宝物"
        CALL PRINT_TITLE("宝箱", "イベント")
        PRINTFORML 扉を開け、次の部屋へと進むと眼前には稀少品が収められていると思しき箱がある
        PRINTFORMW 望むなら調べてみてもよいだろう
        PRINTL
        IF RAND:100 >= 18
            CALL QST_ACTIVATE_EVENT(5)
        ELSE
            CALL QST_ACTIVATE_EVENT(6)
        ENDIF
    CASE "エロイベント"
        PRINTFORML 扉の先には長い回廊が続いており、その奥には再び扉がある
        PRINTFORMW あたりには剣呑な気配が立ち込めている。用心すべきだろう……
        PRINTL
        VARS EVENT_NAME
        CALL RAND_WT_INIT()
        CALL RAND_WT_SET(0, 10)
        CALL RAND_WT_SET(1, 10)
        CALL RAND_WT_SET(2, 10)
        CALL RAND_WT_SET(3, 10)
        CALL RAND_WT_SET(4, 10)
        CALL RAND_WT_SET(5, 10)
        SELECTCASE RAND_WT_RESULT()
            CASE 0
                CALL QST_SET_FLAGMAP("EVENT_NAME", "股縄渡り")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
            CASE 1
                CALL QST_SET_FLAGMAP("EVENT_NAME", "触手穴")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
            CASE 2
                CALL QST_SET_FLAGMAP("EVENT_NAME", "スライム")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
            CASE 3
                CALL QST_SET_FLAGMAP("EVENT_NAME", "精液風呂")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
            CASE 4
                CALL QST_SET_FLAGMAP("EVENT_NAME", "見習い淫魔")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
            CASE 5
                CALL QST_SET_FLAGMAP("EVENT_NAME", "催眠相互自慰")
                CALL QST_SET_EVENT_SLOT_NAME(10, "扉の先へ進む")
                CALL QST_ACTIVATE_EVENT(10)
        ENDSELECT
        CALL QST_QUEST_50_EVENT_DEACTIVATE_FLOOR_EVENT()
    CASE "戦闘"
        ENEMY_PRESET_NAME = %S_R("サキュバス/インキュバス/淫蟲/蠢く肉腫/ゴブリンの群れ/スライム")%
        CALL PRINT_TITLE("", "戦闘")
        CALL QST_QUEST_50_MESSAGE_BEFORE_BATTLE(ENEMY_PRESET_NAME)
        CALL QST_QUEST_50_COMBAT(ENEMY_PRESET_NAME)
        IF RESULT
            CALLF TAG_PRINTH(@"どうやら脅威は去ったようだ…@C:{カラー_緑}@(評点+1)@/C@", 1)
            WAIT
            QST_FLAG:50 += 1
        ELSE
            CALL QST_QUEST_50_DEFEAT_COMBAT()
        ENDIF
    CASE "イベント"
        ;2割は戦闘
        IF RAND:100 < 20
            CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "戦闘")
            RESTART
        ELSE
            CALL RAND_WT_INIT()
            CALL RAND_WT_SET(0, 30)
            CALL RAND_WT_SET(1, 20)
            CALL RAND_WT_SET(2, 20)
            CALL RAND_WT_SET(3, 10)
            CALL RAND_WT_SET(4, 5)
            SELECTCASE RAND_WT_RESULT()
                CASE 0
                    CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "宝物")
                    RESTART
                CASE 1
                    CALL PRINT_TITLE("有用な品", "イベント")
                    PRINTFORML この部屋には治療に役立ちそうな器具や薬が置かれている
                    CALLF TAG_PRINTH(@"応急治療に役立つ器具や薬を回収した…@C:{カラー_緑}@(応急治療点+1)@/C@", 1)
                    WAIT
                    QST_応急治療点 += 1
                CASE 2
                    CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "エロイベント")
                    RESTART
                CASE 3
                    CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "休憩")
                    RESTART
                CASE 4
                    CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "戦闘")
                    RESTART
            ENDSELECT
        ENDIF
    CASE "確定戦闘"
        CALL QST_SET_FLAGMAP(@"EV{QST_NOWEV}_FLOOR", "戦闘")
        RESTART
    CASE "淫魔の間"
        CALL QST_QUEST_50_EVENT_淫魔の間
ENDSELECT

CALL QST_SET_FLAGMAP("フロア", TOSTR(FLOOR))
CALL QST_QUEST_50_SET_FLOOR()
CALL QST_QUEST_50_SET_EVENT_NAME()
CALL QST_QUEST_50_PRINT_LOG()

@QST_QUEST_50_PRINT_LOG
#DIM DYNAMIC FLOOR
FLOOR = TOINT(QST_GET_FLAGMAP("フロア"))
CALL HO_CREAR_LOG()
CALL HO_PRINT_LOG(@"現在位置:{FLOOR}ページ 記された評点:@C:{カラー_緑}@{QST_FLAG:50}点@/C@", 1)

@QST_QUEST_50_SET_EVENT_NAME
#DIMS DYNAMIC EVENT_NAME
#DIMS DYNAMIC EVENT

FOR LOCAL, 0, 3
    CALL QST_GET_EVENT_SLOT_NAME(LOCAL + 1)
    EVENT_NAME = %RESULTS%
    EVENT = %QST_GET_FLAGMAP(@"EV{LOCAL + 1}_FLOOR")%
    SELECTCASE EVENT
        CASE "エロイベント"
            CALL QST_SET_EVENT_SLOT_NAME(LOCAL + 1, REPLACE(EVENT_NAME, "\\((.*?)\\)", @"(@C:{カラー_ピンク}@❤❤@/C@)"))
        CASE "イベント"
            CALL QST_SET_EVENT_SLOT_NAME(LOCAL + 1, REPLACE(EVENT_NAME, "\\((.*?)\\)", "(？？)"))
        CASEELSE
            CALL QST_SET_EVENT_SLOT_NAME(LOCAL + 1, REPLACE(EVENT_NAME, "\\((.*?)\\)", @"(%EVENT%)"))
    ENDSELECT
NEXT
; #endregion

; #region フロア作成処理
@QST_QUEST_50_SET_FLOOR()
#DIM FLOOR
#DIM CONST フロア_戦闘 = 0
#DIM CONST フロア_休憩 = 1
#DIM CONST フロア_ボス = 2
#DIM CONST フロア_宝物 = 3
#DIM CONST フロア_イベント = 4
#DIM CONST フロア_エロイベント = 5
#DIM CONST フロア_淫魔の間 = 6
#DIM DYNAMIC 休憩フロア生成済み
#DIMS DYNAMIC LIST_FLOOR
FLOOR =  TOINT(QST_GET_FLAGMAP("フロア"))

FOR LOCAL ,0 ,3
    CALL RAND_WT_INIT()
    IF FLOOR != 0 && FLOOR % 12 == 0
        CALL RAND_WT_SET(フロア_淫魔の間, 99)
    ELSEIF FLOOR != 0 && FLOOR % 6 == 0
        CALL RAND_WT_SET(フロア_戦闘, 99)
    ELSEIF FLOOR != 0 && FLOOR % 3 == 0 && !休憩フロア生成済み
        CALL RAND_WT_SET(フロア_休憩, 99)
        休憩フロア生成済み += 1
    ELSEIF FLOOR != 0 && FLOOR % 3 == 0
        CALL RAND_WT_SET(フロア_宝物, 99)
    ELSE
        CALL RAND_WT_SET(フロア_エロイベント, 40)
        IF TOINT(QST_GET_FLAGMAP("前回宝物フロア生成済")) == 0
            CALL RAND_WT_SET(フロア_宝物, 20)
        ENDIF
        CALL RAND_WT_SET(フロア_イベント, 60)
    ENDIF

    SELECTCASE RAND_WT_RESULT()
        CASE フロア_エロイベント
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "エロイベント")%
        CASE フロア_休憩
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "休憩")%
        CASE フロア_戦闘
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "戦闘")%
        CASE フロア_イベント
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "イベント")%
        CASE フロア_宝物
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "宝物")%
        CASE フロア_淫魔の間
            LIST_FLOOR = %LIST_ADD(LIST_FLOOR, "淫魔の間")%
    ENDSELECT
NEXT
CALL LIST_SHUFFLE(LIST_FLOOR)
FOR LOCAL, 0, LIST_COUNT(LIST_FLOOR)
    CALL QST_SET_FLAGMAP(@"EV{LOCAL + 1}_FLOOR", LIST_GET(LIST_FLOOR, LOCAL))
NEXT

;特定のフロアは連続では生成させない
IF LIST_INDEXOF(LIST_FLOOR, "宝物") != -1
    CALL QST_SET_FLAGMAP("前回宝物フロア生成済", "1")
ELSE
    CALL QST_SET_FLAGMAP("前回宝物フロア生成済", "0")
ENDIF
; #endregion

;-------------------------------------------------
;休憩イベント
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_4
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "休憩する"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
;初期状態をイベント非活性に
;休憩フロア到達時に有効化される
RESULTS:3 '= @"[EVENT_STATE:DEACTIVE][EVENT_ICON:HEALTH][EVENT_COLOR:{カラー_緑}]"

@QST_QUEST_50_EVENT_4
#DIM EVENT_FLAG
#DIM TARGET_ID

PRINTFORML ここでは軽く休憩をとり全員の疲れをわずかに癒やすことができそうだ
PRINTL
; CALL ASK_YN("休憩する", "やめておく")
; IF !RESULT
PRINTFORMW %QST_LEADER_NAME(QST_PARTYNUM)%は簡潔に手当を済ませ、幾ばくかの休息をとった(体力+350)
;パーティ全員の体力を回復
FOR LOCAL, 0, QST_PARTYNUM
    TARGET_ID = TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))
    CALL QST_CHANGE_HP(TARGET_ID, 350)
NEXT
CALL QST_DEACTIVATE_THIS_EVENT()
; ELSE
; ENDIF

;-------------------------------------------------
;宝物イベント
;-------------------------------------------------
;イベント登録
@QST_ADD_EVENT_QUEST_50_EVENT_5
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME

EVENT_SLOT_NAME '= @"宝箱"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
;初期状態をイベント非活性に
;休憩フロア到達時に有効化される
RESULTS:3 '= @"[EVENT_STATE:DEACTIVE][EVENT_ICON:CHEST][EVENT_COLOR:{カラー_オレンジ}]"

;イベント実行内容
@QST_QUEST_50_EVENT_5
#DIMS DYNAMIC LIST_ITEM
#DIM  DYNAMIC CHEST_TYPE

CALL RAND_WT_INIT()
CALL RAND_WT_SET(0, 85)
CALL RAND_WT_SET(1, 10)
CALL RAND_WT_SET(2, 5)
SELECTCASE RAND_WT_RESULT()
    CASE 0
        SELECTCASE RAND:13
            CASE 0
                LIST_ITEM '= @"MONEY,{RAND(20,40) * 100},"
            CASE 1
                LIST_ITEM '= @"{ITEM_ポーション},2,"
            CASE 2
                LIST_ITEM '= @"{ITEM_鋼インゴット},{RAND(2,4)},"
            CASE 3
                LIST_ITEM '= @"{ITEM_清貧のクッキー},1,"
            CASE 4
                LIST_ITEM '= @"{ITEM_成熟のマフィン},1,"
            CASE 5
                LIST_ITEM '= @"{ITEM_チーズ},{RAND(1,2)},"
            CASE 6
                LIST_ITEM '= @"{ITEM_ミルク},{RAND(1,2)},"
            CASE 7
                LIST_ITEM '= @"{ITEM_ローター},1,"
            CASE 8
                LIST_ITEM '= @"{ITEM_バイブ},1,"
            CASE 9
                LIST_ITEM '= @"{ITEM_アナルバイブ},1,"
            CASE 10
                LIST_ITEM '= @"{ITEM_セモリナス粉},{RAND(1,3)},"
            CASEELSE
                LIST_ITEM '= @"{ITEM_鎮静剤},{RAND(1,2)},"
        ENDSELECT
        CALL QST_CEV_CHEST(LIST_ITEM)
    CASE 1
        LIST_ITEM '= @"{ITEM_スキュラのフェロモン},{RAND(1,2)},"
        CALL QST_CEV_CHEST(LIST_ITEM)
    CASE 2
        CALL QST_CEV_CHEST(LIST_ITEM)
        CALL QST_RANDOM_EQUIP_LOOT_RUNE()
ENDSELECT

CALL QST_DEACTIVATE_THIS_EVENT()

;-------------------------------------------------
;宝物イベント(レア)
;-------------------------------------------------
;イベント登録
@QST_ADD_EVENT_QUEST_50_EVENT_6
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME

EVENT_SLOT_NAME '= @"豪奢な宝箱"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
;初期状態をイベント非活性に
;休憩フロア到達時に有効化される
RESULTS:3 '= @"[EVENT_STATE:DEACTIVE][EVENT_ICON:CHEST][EVENT_COLOR:{カラー_オレンジ}]"

;イベント実行内容
@QST_QUEST_50_EVENT_6
#DIMS DYNAMIC LIST_ITEM
#DIM  DYNAMIC CHEST_TYPE
#DIMS DYNAMIC STRS

SELECTCASE RAND:100
    CASE 0 TO 59
        CALL QST_CEV_CHEST()
        CALL QST_RANDOM_EQUIP_LOOT_RELIC()
    CASE 60 TO 85
        CALL QST_CEV_CHEST()
        CALL QST_RANDOM_EQUIP_LOOT_WEAPON()
    CASEELSE
        SELECTCASE RAND:3
            CASE 0
                ;少し上質なルーン
                CALL QST_CEV_CHEST(LIST_ITEM)
                CALL QST_RANDOM_EQUIP_LOOT_RUNE(1)
            CASEELSE
                ;ノーマルルーン
                CALL QST_CEV_CHEST(LIST_ITEM)
                CALL QST_RANDOM_EQUIP_LOOT_RUNE()
        ENDSELECT
        CALL QST_CEV_CHEST(LIST_ITEM)
ENDSELECT

CALL QST_DEACTIVATE_THIS_EVENT()

; #endregion
;-------------------------------------------------
;敗北処理
;-------------------------------------------------
@QST_QUEST_50_DEFEAT_COMBAT
; #region 敗北汎用
VARS LIST_MOB_ID
VARI MOB_ID

LIST_MOB_ID = %QST_GET_FLAGMAP("LIST_MOB_ID")%
SIF LIST_MOB_ID == ""
    RETURN
PRINTL

PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTL
MOB_ID = LIST_GETINT(LIST_MOB_ID, 0)
PRINTFORMW 打ち負かされ膝をつく%QST_LEADER_NAME()%に%ANAME(MOB_ID, 1)%がにじり寄ってきた……

FLAG:ウフフフラグ = 1
FLAG:調教モード = 調教_慰安
TFLAG:調教経過時間 = 0
TFLAG:調教ターン数 = 24
;スキップ許可
FLAG:調教スキップ可 = 1
CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
VARI I
VARI CHARA_ID
FOR I, 0, QST_PARTYNUM
    CHARA_ID = TOINT(LIST_GET(_LIST_QST_PARTY, I))
    ;調教コマンドのプレイヤーにならなくなる。一方的に嬲られるシチュ用
    CFLAG:CHARA_ID:主導除外 = 1
    ;良感情を極めて得にくくなるフラグ
    CFLAG:CHARA_ID:凌辱被害者フラグ = 1
    CFLAG:CHARA_ID:調教参加フラグ = 1
    ;別イベントで慰安参加者側に回っている場合はリセット
    CFLAG:CHARA_ID:慰安参加者 = 0
NEXT
FOR I, 0, LIST_COUNT(LIST_MOB_ID)
    MOB_ID = LIST_GETINT(LIST_MOB_ID, I)
    CFLAG:MOB_ID:調教参加フラグ = 1
NEXT
CALL QST_SET_FLAGMAP("TRAIN_EXIT_CALLEE", "QST_QUEST_50_EVENT_敗北凌辱終了")
; #endregion

@QST_QUEST_50_EVENT_敗北凌辱終了
; #region 敗北凌辱終了
VARI カールID
VARI カーラID
VARS カール
VARS カーラ

カールID = NAME_TO_CHARA("インキュバス・カール_CLONE_0")
カーラID = NAME_TO_CHARA("サキュバス・カーラ_CLONE_0")
カール = %"インキュバス・カール_CLONE_0"%
カーラ = %"サキュバス・カーラ_CLONE_0"%

PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTL

VARS TEXT
{
    TEXT '= @"
        魔物の情け容赦のない凌辱に蹂躙され尽くし、次第に意識が薄れ苦痛と快楽の境界が曖昧になっていく……[$W]\n
        視界が暗転し、意識が暗闇に落ちていく中、不意に耳元で笑い声が聞こえた気がした[$W]\n
        \n
        [%カーラ%]:「あはは、やられちゃったんだね！」[$W]\n
        \n
        [%カール%]:「ちぇっ、存外つまらかったなぁ。まぁただのニンゲンならこんなもんか」[$W]\n
        [%カーラ%]:「でもクッキー食べながら眺めるにはちょうど良かったよ！」[$W]\n
        \n
        [%カーラ%]:「まぁ次はもう少し楽しませてくれることを期待してるよ、ニンゲン」[$W]\n
        [%カーラ%]:「次はもうちょっと頑張ってね～！」[$W]\n
        \n
        \n
        意識が次第に薄れていく。淫魔たちの高笑いがゆっくりと遠のいていく……[$W]\n
        \n
        気がつくと%QST_LEADER_NAME()%は書庫の一角で身を横たえてた[$W]\n
        全身から汗がぐっしょりと流れ出る。先程までの出来事は夢か現か、今ひとつ判然としない[$W]\n
        \n
        だが、身体に残された凌辱の苦痛が、それが確かに起きた出来事であったことを雄弁に物語っていた……[$W]\n
        "
}
CALL PRINT_DIAG(TEXT)

CALL QST_QUEST_50_攻略失敗

@QST_QUEST_50_攻略成功
; #region 攻略成功

TFLAG:クエスト_完了フラグ = 1
QST_COOLTIME:QST_有効クエストID += 5
QST_SV_QUEST_FLAG:QST_有効クエストID = 3
QST_SV_CLEAR_COUNT:QST_有効クエストID ++
CALL TRAIN_EXIT()

; #endregion

@QST_QUEST_50_攻略失敗
; #region 攻略失敗

TFLAG:クエスト_完了フラグ = 1
QST_COOLTIME:QST_有効クエストID += 5
CALL TRAIN_EXIT()

; #endregion

;-------------------------------------------------
; QUEST_50戦闘イベント
;-------------------------------------------------
@QST_QUEST_50_COMBAT(PRESET_NAME)
#DIMS PRESET_NAME
#DIM  DYNAMIC GROUP_SIZE
#DIMS DYNAMIC _LIST_REWARD

;白兵戦参加メンバーの初期化
CALL CC_INIT()
;攻撃側キャラクターの設定(最大6名)
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CALL CC_ADDCHARA("ATTACKER", TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)))
NEXT
CALL QST_QUEST_50_COMBAT_MOB_PRESET(PRESET_NAME)
_LIST_REWARD = %RESULTS%
CALL CLOSE_COMBAT()
PRINTL
IF RESULT == 1
    CALL CC_APPLY_CHARA_HP()
    CALL PRINT_NOTICE(@"%QST_LEADER_NAME()%は戦闘に勝利した！")
    CALL CC_GET_LOOT_FROM("DEFENDER")
    WAIT
    RETURN 1
ELSE
    CALL CC_APPLY_CHARA_HP()
    CALL PRINT_NOTICE(@"%QST_LEADER_NAME()%は戦闘に敗北してしまった……")
    WAIT
    RETURN 0
ENDIF

@QST_QUEST_50_COMBAT_MOB_PRESET(PRESET_NAME)
#DIMS PRESET_NAME
#DIMS DYNAMIC _LIST_REWARD
#DIM  DYNAMIC GROUP_SIZE
VARS ENEMY_NAME
VARI ENEMY_DID
VARI MOB_ID
VARI 補正値
VARS LIST_MOB_ID

補正値 = QST_FLAG:50 / 2

SELECTCASE PRESET_NAME
    CASE "サキュバス"
        FOR LOCAL, 0, 3
            ENEMY_NAME '= @"レッサーサキュバス%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("淫魔", ENEMY_NAME, 1)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "レッサーサキュバス", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ENEMY_DID = RESULT
            CALL CC_SETS_ENEMYDATA(ENEMY_DID, "PORTRAIT_OPTIONS", "[感情:喜]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
    CASE "インキュバス"
        FOR LOCAL, 0, 3
            ENEMY_NAME '= @"レッサーインキュバス%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("淫魔", ENEMY_NAME, 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "レッサーインキュバス", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
    CASE "淫蟲"
        FOR LOCAL, 0, RAND(3, 5)
            ENEMY_NAME '= @"淫蟲%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("蟲", ENEMY_NAME, 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "淫蟲", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
    CASE "蠢く肉腫"
        FOR LOCAL, 0, RAND(3, 4)
            ENEMY_NAME '= @"蠢く肉腫%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("触手", ENEMY_NAME, 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "低級触手", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
    CASE "ゴブリンの群れ"
        FOR LOCAL, 0, RAND(3, 4)
            ENEMY_NAME '= @"ゴブリン%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("ゴブリン", ENEMY_NAME, 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "ゴブリンの群れ", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
    CASE "スライム"
        FOR LOCAL, 0, RAND(3, 4)
            ENEMY_NAME '= @"スライム%TOFULL(TOSTR(LOCAL + 1))%"
            CALL QST_TRAIN_MOB_PRESET("スライム", ENEMY_NAME, 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "低級触手", ENEMY_NAME, 補正値, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
        NEXT
ENDSELECT
CALL QST_SET_FLAGMAP("LIST_MOB_ID", LIST_MOB_ID)

RESULTS = %_LIST_REWARD%

;-------------------------------------------------
;プリセットに応じた戦闘前メッセージ
;-------------------------------------------------
@QST_QUEST_50_MESSAGE_BEFORE_BATTLE(ENEMY_PRESET_NAME)
#DIMS ENEMY_PRESET_NAME
SELECTCASE ENEMY_PRESET_NAME
    CASE "サキュバス"
        PRINTFORMW %QST_LEADER_NAME()%が扉を開けるなり、強烈な香りが鼻を突いた
        PRINTFORMW 精臭と体液、香水の香りが濃く入り混じったそれは、少し嗅いだだけで意識を揺さぶった
        PRINTFORMW 室内では数匹の低級の淫魔が一糸まとわぬ姿で互いに交わり、一心不乱に情事に耽っている
        PRINTFORMW そのうちの一匹が%QST_LEADER_NAME()%の姿を見届めるや、精液の滴る指先を向け、妖しく手招きした……
    CASE "インキュバス"
        PRINTFORML 扉の先では数匹の雄の淫魔、インキュバスが一人の女性に群がっている
        PRINTFORMW 一糸まとわぬ姿で懇願する女性を、一匹の淫魔が強引に組み伏せ背後から注挿を繰り返している
        PRINTFORMW 別の一匹が嬌声の漏れる口腔に無理やり男根を突き入れ、塞ぐ
        PRINTL
        PRINTFORML 割って入り助けるべきか？一瞬の躊躇の間にインキュバスたちは%QST_LEADER_NAME()%の存在に気がついたのか
        PRINTFORMW 新たな獲物を求め殺到してきた！
    CASE "淫蟲"
        PRINTFORMW 扉の先には暗闇が広がっている
        PRINTFORMW いつの間にか携帯していたランタンを灯し中を伺うと、床と壁、天井をびっしりと何かが這い回っているのを見出した
        PRINTFORMW 次第に暗闇に目が慣れてくるとそれが無数の、芋虫のような蟲であることがわかった
        PRINTFORMW 滑りを帯びた肉々しい滑らかな外皮と、返しのついた頭部は否が応でも男性器を想起させた
        PRINTL
        PRINTFORMW それは%QST_LEADER_NAME()%の存在に気がつくと、眼のない頭部を向け一斉に殺到してきた！
    CASE "スライム"
        PRINTFORMW 扉の先には薄暗い空間が広がっている
        PRINTFORMW ……一見はなにもない部屋のようだ
        PRINTL
        PRINTFORMW %QST_LEADER_NAME()%は警戒しつつ室内へと歩みを進める
        PRINTFORMW ちょうど部屋の中央まで来たところで首筋にぽつりと、水滴が伝うのを感じた
        PRINTFORMW 水の出どころを追って天井へ視線を向ける
        PRINTFORMW ……天井一面を覆うように、ゲル状の物体が這い回っている……スライムだ！
    CASE "ゴブリンの群れ"
        PRINTFORMW 扉の先からぎゃあぎゃあと甲高い耳に触る鳴き声が聞こえてくる
        PRINTFORMW 様子を伺うと内部では無数のゴブリンが乱痴気騒ぎに興じている
        PRINTFORMW ヒトの女と思しき身体に群がり、欲望の限りを尽くしているようだ
        PRINTL
        PRINTFORMW ……そしてその爛と輝く醜悪な瞳は既に、戸口に立つ新たな獲物へと向けられている……
    CASE "蠢く肉腫"
        PRINTFORMW 室内に入るなり、湿気と熱気のこもった纏わりつくような空気が%QST_LEADER_NAME()%を包む
        PRINTFORMW ぬめりを帯びた肉腫が室内を絶えず蠕動している
        PRINTL
        PRINTFORMW 不意にくぐもった嬌声が室内に響く
        PRINTFORMW 声の方に目をやると裸体の女が壁に磔にされている
        PRINTFORMW 両手と両足、頭部は幾重にも巻き付いた触手によって拘束され、穴という穴は絶えず触手の激しい注挿を受けている
        PRINTL
        PRINTFORMW 常軌を逸して膨れ上がった腹の皮下では、凡そ胎児とは異なる何かが絶えず蠢いている
        PRINTFORMW ……おそらくは、救出は既に手遅れであろう。それどころか一歩間違えれば自身が次の苗床となりかねない……
    CASEELSE
        PRINTFORML ――敵襲だ！
        PRINTFORMW 階下のフロアに足を踏み入れた%QST_LEADER_NAME()%は武器を携え脅威に対峙した
ENDSELECT

path: ERB/QUEST/クエストデータ/QUEST_50_めくりめぐる淫魔の奇譚/QUEST_50_めくりめぐる淫魔の奇譚.ERB


code:
;-------------------------------------------------
;EV10 - EV13 トラップ系イベント開始汎用
;-------------------------------------------------
; #region トラップ汎用
@QST_ADD_EVENT_QUEST_50_EVENT_10
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "トラップ系汎用"

; 非活性状態で生成
CALL QST_DEACTIVATE_EVENT(10)
;返却値をセット
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_50_EVENT_10
#DIM  DYNAMIC EVENT_FLAG
#DIM  DYNAMIC CHARA_ID
#DIMS DYNAMIC EVENT_NAME

EVENT_NAME = %QST_GET_FLAGMAP("EVENT_NAME")%
TRYCCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("導入")
CATCH
    PRINTFORMW QUEST_50:イベント名「%EVENT_NAME%」が見つかりません
ENDCATCH

IF RESULT == 1
    ;イベントキャンセル
    TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("キャンセル")
    CALL QST_QUEST_50_EVENT_ACTIVATE_FLOOR_EVENT()
ELSE
    ;イベント開始
    TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("開始")
    CALL QST_ACTIVATE_EVENT(QST_NOWEV + 1)
    QST_イベント選択制限 = QST_NOWEV + 1
ENDIF
CALL QST_SET_EVENT_FLAG(QST_NOWEV, 0)
CALL QST_DEACTIVATE_THIS_EVENT()

;-------------------------------------------------
;EV11 トラップ系イベント　イベントスロット実行時汎用
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_50_EVENT_11
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "もがく"

;非活性状態で生成
CALL QST_DEACTIVATE_EVENT(11)
;返却値をセット
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= @"[EVENT_ICON:HRT][EVENT_COLOR:{カラー_ピンク}]"

@QST_QUEST_50_EVENT_11
VARI EVENT_FLAG
VARS EVENT_NAME

CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

EVENT_NAME = %QST_GET_FLAGMAP("EVENT_NAME")%

IF EVENT_FLAG > 1
    TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("実行")
ELSE
    TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("終了")
    CALL QST_QUEST_50_EVENT_イベント終了()
ENDIF
; #endregion

;-------------------------------------------------
;;; 調教中処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_調教中
VARS EVENT_NAME
EVENT_NAME = %QST_GET_FLAGMAP("EVENT_NAME")%
TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("調教中")

;-------------------------------------------------
;;; 調教終了イベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_調教終了
VARS EVENT_NAME
EVENT_NAME = %QST_GET_FLAGMAP("EVENT_NAME")%
TRYCALLFORM QST_QUEST_50_EVENT_%EVENT_NAME%("調教終了")

;-------------------------------------------------
;;; イベント終了処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_イベント終了
QST_イベント選択制限 = -1
FLAG:移動制限フラグ = 0
CALL QST_DEACTIVATE_EVENT(10)
CALL QST_DEACTIVATE_EVENT(11)
CALL QST_QUEST_50_PRINT_LOG()
CALL QST_QUEST_50_EVENT_ACTIVATE_FLOOR_EVENT()

;-------------------------------------------------
;;; 股縄渡りイベント処理
;;; 導入～開始まではEV12から呼び出し
;;; 実行～終了まではEV13から呼び出し
;-------------------------------------------------
@QST_QUEST_50_EVENT_股縄渡り(STATE)
; #region 股縄渡り
#DIMS STATE

VARI CHARA_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        ;ランダムなパーティメンバを一人抽選
        CHARA_ID = QST_RANDCHARA()
        CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
        ;メッセージ
        CALL COLOR_PRINTW(@"―――― 部屋に入るなり、縄が意志を持ったように%ANAME(CHARA_ID)%に一斉に絡みついた！", カラー_注意)
        CALL PRINT_TITLE("リビングロープの罠", "エロトラップ")
        PRINTW
        ;実行判定
        CALL QST_ROLL_MULTI("戦闘,身体,", "素早くナイフで断ち切る(戦闘値),全力で振りほどく(身体),","500,550,", 7, ,"なすがまま", CHARA_ID,,, 1)
        RETURN RESULT
    CASE "キャンセル"
        PRINTFORMW %ANAME(CHARA_ID)%は生ける縄の襲撃を辛うじて避けることができた！
        PRINTFORMW 無事に先に進めそうだ……
        QST_FLAG:50 += 1
    CASE "開始"
        ;要求ターン
        CALL QST_SET_EVENT_FLAG(QST_NOWEV + 1, RAND(5, 7))
        CALL QST_SET_EVENT_SLOT_NAME(QST_NOWEV + 1, "股縄を進む")
        ;メッセージ
        PRINTFORMW %ANAME(CHARA_ID)%は生ける縄に捉えられ天井に吊り上げられてしまった……
        PRINTL
        PRINTFORML もがき、逃れようとする%ANAME(CHARA_ID)%に部屋の奥までピンと張り詰めた縄が一本渡される
        PRINTFORMW 縄は逃れようとも逃れようとも%ANAME(CHARA_ID)%が無理やり縄に跨る格好となるよう強要してくる
        PRINTL
        PRINTFORML %ANAME(CHARA_ID)%は一本の縄の先、部屋の奥にスイッチがあるのを認めた
        PRINTFORMW 実にわざとらしいが……今はあれが解除用のスイッチと祈る他ないだろう……
        PRINTL
        PRINTFORMW 渡し縄にはねっとりとした潤滑油が塗られており、所々に結び目が設けられている
        PRINTFORMW この罠は明らかに侵入者を捕えるのではなく、捉えた者を苦悶させ痴態を晒させることを意図しているようだ……
        ;ログメッセージ
        CALL HO_PRINT_LOG(@"罠に捉えられてしまった……。今はこの股縄を進む他ない……", 1)
    CASE "実行"
        IF EVENT_FLAG != 3
            PRINTFORML %ANAME(CHARA_ID)%は股縄の擦れる感覚に耐えながら、一歩ずつ前へ進む
            PRINTFORMW たっぷりと潤滑油が塗られた縄に設けられた結び目が陰部の敏感な箇所を刺激する……
            ;ソース処理
            SOURCE:CHARA_ID:反感 = 100
            SOURCE:CHARA_ID:不安 = 10
            SOURCE:CHARA_ID:逸脱 = 50
            SOURCE:CHARA_ID:快Ｃ += SENSE_HOUSHI(CHARA_ID, CHARA_ID, 150)
        ELSE
            CALL COLOR_PRINTW(@"ようやく中央まで進んだところで、%ANAME(CHARA_ID)%の跨る縄が激しく前後左右に振動する！", カラー_注意)
            CALL COLOR_PRINTW(@"息絶え絶えになる%ANAME(CHARA_ID)%の股間を荒縄が激しく刺激する……", カラー_ピンク)
            ;ソース処理
            SOURCE:CHARA_ID:反感 = 150
            SOURCE:CHARA_ID:不安 = 30
            SOURCE:CHARA_ID:逸脱 = 80
            SOURCE:CHARA_ID:快Ｃ += SENSE_HOUSHI(CHARA_ID, CHARA_ID, 450)
        ENDIF
        ;実行/対象をセット
        CALL CLEAR_MPLY()
        CALL CLEAR_MTAR()
        CALL ADD_MPLY(CHARA_ID)
        ;ダミーコマンド実行
        TSTR:ダミーコマンド表示名 '= "股縄の刺激"
        CALL QST_EXEC_DUMMYCOM()
        ;イベントフラグの更新
        EVENT_FLAG --
        CALL QST_SET_EVENT_FLAG(QST_NOWEV, EVENT_FLAG)
        ;ログメッセージ
        CALL HO_CREAR_LOG()
        CALL HO_PRINT_LOG(@"渡り切るまであと@C:{カラー_黄}@{EVENT_FLAG}歩@/C@は必要だろう……", 1)
    CASE "終了"
        ;進捗度更新
        QST_FLAG:50 += 1
        ;ログメッセージ
        CALL HO_CREAR_LOG()
        ;メッセージ
        PRINTFORMW %ANAME(CHARA_ID)%は性感への執拗な刺激になんとか耐えながら足でスイッチを蹴る
        PRINTFORMW スイッチを解除すると、縄は力を失いあっけなく解けた
        PRINTL
        PRINTFORMW 全く単なる嫌がらせでしかない罠に悪態をつきつつ、%ANAME(CHARA_ID)%は先へと進む……
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
ENDSELECT
; #endregion

;-------------------------------------------------
;;; 触手穴イベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_触手穴(STATE)
; #region 触手穴
#DIMS STATE

VARI CHARA_ID
VARI MOB_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
MOB_ID = TOINT(QST_GET_FLAGMAP("MOB_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        ;ランダムなパーティメンバを一人抽選
        CHARA_ID = QST_RANDCHARA()
        CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
        ;メッセージ
        CALL COLOR_PRINTW(@"―――― 部屋を進む%ANAME(CHARA_ID)%の床が不意に崩れ落ちる！", カラー_注意)
        CALL PRINT_TITLE("肉腫穴の罠", "エロトラップ")
        PRINTW
        ;実行判定
        CALL QST_ROLL_MULTI("身体,", "とっさに跳ぶ(身体),","550,", 7, ,"なすがまま", CHARA_ID,,, 1)
        RETURN RESULT
    CASE "キャンセル"
        PRINTFORMW %ANAME(CHARA_ID)%は落とし穴を辛うじて避けることができた！
        PRINTFORMW 無事に先に進めそうだ……
        QST_FLAG:50 += 1
    CASE "開始"
        ;触手穴
        PRINTFORMW %ANAME(CHARA_ID)%は半ばはまり込む形で落とし穴に落ちてしまった
        PRINTL
        PRINTFORMW ……幸い落とし穴はそれほど深くはないようだ
        PRINTFORMW だが穴の中はひどく生温かく、湿気を帯びている
        PRINTL
        PRINTFORMW なお悪いことに何かぬるりとした感触が、%ANAME(CHARA_ID)%の下肢に触れた……
        ;要求ターン
        CALL QST_SET_EVENT_FLAG(QST_NOWEV + 1, RAND(5, 7))
        CALL QST_SET_EVENT_SLOT_NAME(QST_NOWEV + 1, "もがく")
        ;ダミーコマンド用モブ生成
        CALL QST_TRAIN_MOB_PRESET("ブラシ触手", "蠢く穴")
        CFLAG:RESULT:調教参加フラグ = 0
        CALL QST_SET_FLAGMAP("MOB_ID", TOSTR(RESULT))
        CALL HO_PRINT_LOG(@"罠に捉えられてしまった……。なんとか這い出さなければ……", 1)
    CASE "実行"
        ;実行/対象をセット
        CALL CLEAR_MPLY()
        CALL CLEAR_MTAR()
        CALL ADD_MPLY(MOB_ID)
        CALL ADD_MTAR(CHARA_ID)
        ;ダミーコマンド抽選
        CALL RAND_WT_INIT()
        IF HAS_PENIS(CHARA_ID, 1)
            CALL RAND_WT_SET(T_N("触手オナホ"), 100)
            CALL RAND_WT_SET(T_N("触手コキ"), 100)
        ENDIF
        IF HAS_VAGINA(CHARA_ID, 1)
            CALL RAND_WT_SET(T_N("触手クリ責め"), 100)
            IF C_COND("露出_秘部:露出",,CHARA_ID)
                CALL RAND_WT_SET(T_N("触手挿入"), 100)
                CALL RAND_WT_SET(T_N("触手Ａ挿入"), 100)
            ENDIF
        ENDIF
        CALL RAND_WT_SET(T_N("触手胸愛撫"), 100)
        ;ダミーコマンド実行
        TFLAG:主導権所有者 = MOB_ID
        CFLAG:CHARA_ID:主導除外 = 1
        CFLAG:CHARA_ID:凌辱被害者フラグ = 1
        TSTR:ダミーコマンド表示名 '= "触手に嬲られる"
        CALL QST_EXEC_DUMMYCOM(RAND_WT_RESULT())
        ;イベントフラグの更新とログ出力
        EVENT_FLAG --
        CALL QST_SET_EVENT_FLAG(QST_NOWEV, EVENT_FLAG)
        CALL HO_CREAR_LOG()
    CASE "終了"
        ;終了時処理
        CALL RELEASE_ALL_EQUIP(MOB_ID, 1)
        CFLAG:CHARA_ID:主導除外 = 0
        CFLAG:CHARA_ID:凌辱被害者フラグ = 0
        TSTR:ダミーコマンド表示名 '= ""
        QST_FLAG:50 += 1
        CALL HO_CREAR_LOG()
        ;メッセージ
        PRINTFORMW %ANAME(CHARA_ID)%は触手の執拗な刺激に耐えながらも、なんとか穴から這い出すことに成功した……
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
ENDSELECT
; #endregion

;-------------------------------------------------
;;; ねぶりスライムイベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_スライム(STATE)
; #region スライム
#DIMS STATE

VARI CHARA_ID
VARI MOB_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
MOB_ID = TOINT(QST_GET_FLAGMAP("MOB_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        ;ランダムなパーティメンバを一人抽選
        CHARA_ID = QST_RANDCHARA()
        CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
        ;メッセージ
        CALL COLOR_PRINTW(@"―――― 部屋を進む%ANAME(CHARA_ID)%の頭上から不意に何かが落ちてきた！", カラー_注意)
        CALL PRINT_TITLE("スライムの罠", "エロトラップ")
        PRINTW
        ;実行判定
        CALL QST_ROLL_MULTI("身体,", "とっさに避ける(身体),","500,", 7, ,"なすがまま", CHARA_ID,,, 1)
        RETURN RESULT
    CASE "キャンセル"
        PRINTFORMW %ANAME(CHARA_ID)%は落ちてきた粘体を辛うじて避けることができた！
        PRINTFORMW 無事に先に進めそうだ……
        QST_FLAG:50 += 1
    CASE "開始"
        ;触手穴
        PRINTFORMW %ANAME(CHARA_ID)%の身体は蠢く粘体に覆われてしまった……！
        PRINTL
        ;要求ターン
        CALL QST_SET_EVENT_FLAG(QST_NOWEV + 1, RAND(7, 9))
        CALL QST_SET_EVENT_SLOT_NAME(QST_NOWEV + 1, "もがく")
        ;ダミーコマンド用モブ生成
        CALL QST_TRAIN_MOB_PRESET("スライム", "蠢く粘体")
        CFLAG:RESULT:調教参加フラグ = 0
        CALL QST_SET_FLAGMAP("MOB_ID", TOSTR(RESULT))
        CALL HO_PRINT_LOG(@"スライムに捉えられてしまった……。なんとか抜け出さなければ……", 1)
        CALL QST_SET_FLAGMAP("MOB_TYPE", @"%S_R("口辱/乳首ねぶり/乳首ねぶり/乳首ねぶり/アナルねぶり")%")
    CASE "実行"
        ;実行/対象をセット
        CALL CLEAR_MPLY()
        CALL CLEAR_MTAR()
        CALL ADD_MPLY(MOB_ID)
        CALL ADD_MTAR(CHARA_ID)
        ;ダミーコマンド抽選
        CALL RAND_WT_INIT()
        SELECTCASE QST_GET_FLAGMAP("MOB_TYPE")
            CASE "口辱"
                CALL RAND_WT_SET(T_N("触手口辱"), 100)
            CASE "乳首ねぶり"
                CALL RAND_WT_SET(T_N("乳首責め"), 100)
                CALL RAND_WT_SET(T_N("胸愛撫"), 100)
                CALL RAND_WT_SET(T_N("乳首吸い"), 100)
            CASE "アナルねぶり"
                CALL RAND_WT_SET(T_N("アナル愛撫"), 100)
                CALL RAND_WT_SET(T_N("アナル舐め"), 100)
        ENDSELECT
        ;ダミーコマンド実行
        TFLAG:主導権所有者 = MOB_ID
        CFLAG:CHARA_ID:主導除外 = 1
        CFLAG:CHARA_ID:凌辱被害者フラグ = 1
        TSTR:ダミーコマンド表示名 '= "スライムに舐られる"
        CALL FL_PLAYSE("Poison_0.mp3")
        CALL QST_EXEC_DUMMYCOM(RAND_WT_RESULT())
        ;イベントフラグの更新とログ出力
        EVENT_FLAG --
        CALL QST_SET_EVENT_FLAG(QST_NOWEV, EVENT_FLAG)
        CALL HO_CREAR_LOG()
    CASE "終了"
        ;終了時処理
        CALL RELEASE_ALL_EQUIP(MOB_ID, 1)
        CFLAG:CHARA_ID:主導除外 = 0
        CFLAG:CHARA_ID:凌辱被害者フラグ = 0
        TSTR:ダミーコマンド表示名 '= ""
        QST_FLAG:50 += 1
        CALL HO_CREAR_LOG()
        ;メッセージ
        PRINTFORMW %ANAME(CHARA_ID)%はスライムの拘束からなんとか逃れることに成功した……
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
ENDSELECT
; #region

;-------------------------------------------------
;;; 精液風呂イベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_精液風呂(STATE)
; #region 精液風呂
#DIMS STATE

VARI CHARA_ID
VARI MOB_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
MOB_ID = TOINT(QST_GET_FLAGMAP("MOB_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        PRINTFORMW %QST_LEADER_NAME()%の前で道が二つに分岐している
        PRINTL
        PRINTFORML 一方は更に奥へと続いているようだが、分厚い金属製の扉で閉じられている
        PRINTFORMW みたところ扉には鍵穴がないようだ
        PRINTL
        PRINTFORML もう一方の通路の奥にはスイッチのようなものがある。あれが扉の開閉機構なのかもしれない
        PRINTFORML スイッチの手前には白く濁った、粘性の液体が波々と注がれた溜まりがある
        PRINTFORMW 鼻につく強烈に青臭い香りから、それは何か動物の体液のようだ……
        PRINTL
        CALL PRINT_TITLE("精液風呂の罠", "エロトラップ")
        PRINTL
        PRINTFORML 扉を開けるには液体で満たされた溜まりを進み、奥のスイッチを押す必要がある
        PRINTFORMW 誰かがその役目を担わなければならない……
        PRINTL
        PRINTFORMW さて、どうしたものか……？(一名選択する必要がある)
        PRINTL
        $ASK_LOOP_QUEST_50_EVENT_精液風呂_導入
        ;パーティメンバを一人選択
        CALL PRINTLINE_RESERVE
        CALL SELECT_CHARA_LIST_INIT
        CALL SELECT_CHARA_LIST_MULTI_ONLY_LOGIC_SLG(1, "PARTY_MEMBER", "NONE")
        IF SELECTED_CHARA_NUM == 0
            PRINTFORMW 1名選択する必要がある
            CALL PRINTLINE_CLEAR
            GOTO ASK_LOOP_QUEST_50_EVENT_精液風呂_導入
        ENDIF
        CHARA_ID = SELECTED_CHARA:0
        CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
        RETURN
    CASE "キャンセル"
        ;処理なし
    CASE "開始"
        PRINTL
        PRINTFORMW %ANAME(CHARA_ID)%は強烈な精臭を放つ液体におそるおそる半身を浸す
        PRINTFORMW 立ち込めるむせ返るような精臭に、目眩を催さずにはいられない
        PRINTFORMW だが今は白濁をかき分けて前に進むしかないようだ……
        PRINTL
        ;要求ターン
        CALL QST_SET_EVENT_FLAG(QST_NOWEV + 1, RAND(7, 9))
        CALL QST_SET_EVENT_SLOT_NAME(QST_NOWEV + 1, "精液をかき分けて進む")
        ;クエスト初期化時に生成した汎用ダミーモブ「正体不明」を取得
        CALL QST_SET_FLAGMAP("MOB_ID", QST_GET_FLAGMAP("DUMMY_MOB_ID"))
        CALL HO_PRINT_LOG(@"むせ返るような青臭い臭いが鼻をつく。だが前に進まなければ……", 1)
    CASE "実行"
        PRINTL
        PRINTFORML 一歩進むごとに立ち上る強烈な精臭に、目眩を催さずにはいられない
        PRINTFORMW 粘性の生温い液体が%ANAME(CHARA_ID)%の肌にこびり付く……。精臭が%ANAME(CHARA_ID)%の身体を汚してゆく……
        CUM_GET_AMOUNT:(CHARA_ID):射精部位_顔 += 3
        CUM_GET_AMOUNT:(CHARA_ID):射精部位_胸 += 3
        CUM_GET_AMOUNT:(CHARA_ID):射精部位_手 += 3
        CUM_GET_AMOUNT:(CHARA_ID):射精部位_足 += 3
        CUM_GET_AMOUNT:(CHARA_ID):射精部位_尻 += 3
        CALL FL_PLAYSE("Ejac_0.mp3")
        IF RAND:100 < 75
            ;ダミーコマンド用ソース処理
            SOURCE:CHARA_ID:反感 = 100
            SOURCE:CHARA_ID:液体追加 = 100
            SOURCE:CHARA_ID:不潔 = 50
            TSTR:ダミーコマンド表示名 '= "精液風呂の汚辱"
            ;実行/対象をセット
            CALL CLEAR_MPLY()
            CALL CLEAR_MTAR()
            CALL ADD_MPLY(CHARA_ID)
            ;ダミーコマンド実行
            CALL QST_EXEC_DUMMYCOM()
        ELSE
            PRINTL
            PRINTFORMW %ANAME(CHARA_ID)%は何かが身体に触れるのを感じ、思わず身体を震わせた
            PRINTFORMW どろりと白濁する水面の下で、何かが這い回っているようだ……！
            PRINTL
            CALL QST_ROLL_MULTI("器用,身体,", "壁の突起に捕まり避ける(器用),全力で振りほどく(身体),","200,200,", , ,"なすがまま", CHARA_ID,,, 1)
            IF RESULT == 1
                PRINTFORMW %ANAME(CHARA_ID)%は這い回る何かの魔手をなんとか避けることができた！
                CALL RELEASE_ALL_EQUIP(MOB_ID, 1)
            ELSE
                PRINTFORMW %ANAME(CHARA_ID)%の身体に何かが絡みついた……！
                ;実行/対象をセット
                CALL CLEAR_MPLY()
                CALL CLEAR_MTAR()
                CALL ADD_MPLY(MOB_ID)
                CALL ADD_MTAR(CHARA_ID)
                ;ダミーコマンド抽選
                CALL RAND_WT_INIT()
                IF HAS_PENIS(CHARA_ID, 1)
                    CALL RAND_WT_SET(T_N("触手オナホ"), 100)
                    CALL RAND_WT_SET(T_N("触手コキ"), 100)
                ENDIF
                IF HAS_VAGINA(CHARA_ID, 1)
                    CALL RAND_WT_SET(T_N("触手クリ責め"), 100)
                    IF C_COND("露出_秘部:露出",,CHARA_ID)
                        CALL RAND_WT_SET(T_N("触手挿入"), 100)
                        CALL RAND_WT_SET(T_N("触手Ａ挿入"), 100)
                    ENDIF
                ENDIF
                CALL RAND_WT_SET(T_N("触手胸愛撫"), 100)
                ;ダミーコマンド実行
                TFLAG:主導権所有者 = MOB_ID
                CFLAG:CHARA_ID:主導除外 = 1
                CFLAG:CHARA_ID:凌辱被害者フラグ = 1
                TSTR:ダミーコマンド表示名 '= "這い寄る者の汚辱"
                CALL QST_EXEC_DUMMYCOM(RAND_WT_RESULT())
            ENDIF
        ENDIF
        ;イベントフラグの更新とログ出力
        EVENT_FLAG --
        CALL QST_SET_EVENT_FLAG(QST_NOWEV, EVENT_FLAG)
        ;ログメッセージ
        CALL HO_CREAR_LOG()
        CALL HO_PRINT_LOG(@"渡り切るまであと@C:{カラー_黄}@{EVENT_FLAG}歩@/C@は必要だろう……", 1)
    CASE "終了"
        ;終了時処理
        CALL RELEASE_ALL_EQUIP(MOB_ID, 1)
        CFLAG:CHARA_ID:主導除外 = 0
        CFLAG:CHARA_ID:凌辱被害者フラグ = 0
        TSTR:ダミーコマンド表示名 '= ""
        QST_FLAG:50 += 1
        CALL HO_CREAR_LOG()
        ;メッセージ
        PRINTFORMW %ANAME(CHARA_ID)%は白濁液の溜まりを渡りきり、スイッチを押した
        PRINTFORMW なんとか扉を開くことができたようだ……
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
ENDSELECT
; #endregion
;-------------------------------------------------
;;; 見習い淫魔イベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_見習い淫魔(STATE)
; #region 見習い淫魔
#DIMS STATE
#DIM SERVICE_TYPE

VARI CHARA_ID
VARI MOB_ID
VARS LIST_MOB_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
MOB_ID = TOINT(QST_GET_FLAGMAP("MOB_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        PRINTL
        PRINTFORMW 扉を開けると部屋の中に二人の淫魔が佇んでいる
        PRINTL
        PRINTFORML 「人間だ」
        PRINTFORMW 「人間だね」
        PRINTL
        PRINTFORML 「通してほしいか？」
        PRINTFORMW 「タダでとは、言わないよね？」
        PRINTL
        PRINTFORML 「精力を分けてくれるなら、通してやってもいいよ」
        PRINTFORMW 「私達の力の源なの、ねぇ、ちょうだい？」
        PRINTL
        PRINTFORML ……さて、どうしたものだろうか？
        PRINTFORMW 彼らの要求どおり身体を差し出してもよいし、押し通ってもよいだろう
        PRINTL
        CALL ASK_YN("身体を差し出す", "押し通る")
        IF RESULT == 0
            CALL PRINT_TITLE("見習い淫魔にご奉仕", "エロトラップ")
            PRINTFORMW 誰が身体を捧げようか……？　一人選ばねばならない
            $ASK_LOOP_QUEST_50_EVENT_見習い淫魔_導入
            ;パーティメンバを一人選択
            CALL PRINTLINE_RESERVE
            CALL SELECT_CHARA_LIST_INIT
            CALL SELECT_CHARA_LIST_MULTI_ONLY_LOGIC_SLG(1, "PARTY_MEMBER", "NONE")
            IF SELECTED_CHARA_NUM == 0
                PRINTFORMW 1名選択する必要がある
                CALL PRINTLINE_CLEAR
                GOTO ASK_LOOP_QUEST_50_EVENT_見習い淫魔_導入
            ENDIF
            CHARA_ID = SELECTED_CHARA:0
            CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
            RETURN
        ELSE
            PRINTFORMW 辱めを受ける通りはない、淫魔を打ち倒すべく%QST_LEADER_NAME()%は武器を取った
            PRINTL
            PRINTFORML 「やっぱり人間って野蛮だなぁ……」
            PRINTFORMW 「それじゃあボコボコにして、滅茶苦茶に犯しちゃおうよ❤」
            VARI ENEMY_DID
            MOB_ID = RESULT
            CALL CC_INIT()
            ;パーティメンバー全員を攻撃側で設定
            CALL CC_ADDPARTY()
            ;サキュバスを追加
            CALL QST_TRAIN_MOB_PRESET("淫魔", "レッサーサキュバス", 1)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "レッサーサキュバス", "レッサーサキュバス", 25, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ENEMY_DID = RESULT
            CALL CC_SETS_ENEMYDATA(ENEMY_DID, "PORTRAIT_OPTIONS", "[感情:喜]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
            ;インキュバスを追加
            CALL QST_TRAIN_MOB_PRESET("淫魔", "レッサーインキュバス", 0)
            MOB_ID = RESULT
            CFLAG:MOB_ID:調教参加フラグ = 0
            CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "レッサーインキュバス", "レッサーインキュバス", 35, @"[CHARA_ID:%TOSTR(RESULT)%]")
            ENEMY_DID = RESULT
            CALL CC_SETS_ENEMYDATA(ENEMY_DID, "PORTRAIT_OPTIONS", "[感情:喜]")
            ;調教イベント用にモブのキャラIDを保存
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(MOB_ID))%
            ;敗北時の調教イベント用にモブIDをFLAGMAPに保存
            CALL QST_SET_FLAGMAP("LIST_MOB_ID", LIST_MOB_ID)
            ;戦闘開始
            CALL CLOSE_COMBAT()
            PRINTL
            IF RESULT == 1
                CALL CC_APPLY_CHARA_HP()
                CALL PRINT_NOTICE(@"%QST_LEADER_NAME()%は戦闘に勝利した！")
                CALL CC_GET_LOOT_FROM("DEFENDER")
                WAIT
                PRINTFORML %QST_LEADER_NAME()%は襲い来る淫魔を打ち倒した
                PRINTFORMW これで先へ進むことができそうだ
                QST_FLAG:50 += 1
                CALL QST_QUEST_50_EVENT_イベント終了()
                RETURN 1
            ELSE
                CALL CC_APPLY_CHARA_HP()
                CALL PRINT_NOTICE(@"%QST_LEADER_NAME()%は戦闘に敗北してしまった……")
                WAIT
                ;敗北時は汎用敗北イベントに直行
                CALL QST_QUEST_50_DEFEAT_COMBAT()
                CALL QST_QUEST_50_EVENT_イベント終了()
                RETURN 1
            ENDIF
        ENDIF
    CASE "キャンセル"
        ;未使用
    CASE "開始"
        CALL ASK_MULTI("口を捧げる", "尻穴を捧げる", "身体を好きにさせる")
        SELECTCASE RESULT
            CASE 0
                SERVICE_TYPE = 奉仕_口淫
            CASE 1
                SERVICE_TYPE = 奉仕_Ａ性交
            CASE 2
                SERVICE_TYPE = 奉仕_通常
        ENDSELECT
        PRINTFORMW %ANAME(CHARA_ID)%は淫魔に身体を差し出した……
        PRINTL
        ;ダミーコマンド用モブ生成
        VARI I
        FOR I, 0, RAND(1, 3)
            CALL QST_TRAIN_MOB_PRESET("淫魔", "サキュバス", 1)
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(RESULT))%
        NEXT
        FOR I, 0, RAND(1, 3)
            CALL QST_TRAIN_MOB_PRESET("淫魔", "インキュバス", 0)
            LIST_MOB_ID = %LIST_ADD(LIST_MOB_ID, TOSTR(RESULT))%
        NEXT

        CALL HO_PRINT_LOG(@"淫魔に凌辱され中……", 1)
        ;調教イベント系フラグセット
        FLAG:ウフフフラグ = 1
        FLAG:調教モード = 調教_慰安
        TFLAG:奉仕モード = 1
        FLAG:調教スキップ可 = 1
        TFLAG:調教経過時間 = 0
        TFLAG:調教ターン数 = 20
        CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
        ;被奉仕側設定
        VARI I
        FOR I, 0, LIST_COUNT(LIST_MOB_ID)
            MOB_ID = LIST_GETINT(LIST_MOB_ID, I)
            CFLAG:MOB_ID:調教参加フラグ = 1
            CFLAG:MOB_ID:慰安参加者 = 1
            TCVAR:MOB_ID:被奉仕者フラグ = SERVICE_TYPE
        NEXT
        ;奉仕側設定
        TCVAR:CHARA_ID:奉仕者フラグ = SERVICE_TYPE
        CFLAG:CHARA_ID:主導除外 = 1
        CFLAG:CHARA_ID:調教参加フラグ = 1
        CALL QST_SET_FLAGMAP("TRAIN_EXIT_CALLEE", "QST_QUEST_50_EVENT_調教終了")
        ;このイベントはイベントスロットを使用しないので非活性化
        CALL QST_DEACTIVATE_EVENT(QST_NOWEV + 1)
    CASE "実行"
        ;このイベントはイベントスロットを使用しないので未使用
    CASE "調教中"
        ;EVENTCOMENDより呼ばれる
        ;未使用
    CASE "調教終了"
        ;調教イベントの終了時に呼ばれる
        PRINTL
        PRINTFORMW 淫魔は%ANAME(CHARA_ID)%からひとしきり精力を採取すると満足気に鼻を鳴らして去っていった……
        PRINTFORMW %ANAME(CHARA_ID)%は散々に弄ばれてしまったが……これで先へ進めそうだ
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
        QST_FLAG:50 += 1
        CALL QST_QUEST_50_EVENT_イベント終了()
    CASE "終了"
        ;このイベントはイベントスロットを使用しないので未使用
ENDSELECT
; #endregion

;-------------------------------------------------
;;; 催眠相互自慰イベント処理
;-------------------------------------------------
@QST_QUEST_50_EVENT_催眠相互自慰(STATE)
; #region 相互自慰
#DIMS STATE

VARI CHARA_ID
VARI CHARA_ID2
VARI TARGET_ID
VARI MOB_ID
VARI EVENT_FLAG

CHARA_ID = TOINT(QST_GET_FLAGMAP("CHARA_ID"))
CHARA_ID2 = TOINT(QST_GET_FLAGMAP("CHARA_ID2"))
TARGET_ID = TOINT(QST_GET_FLAGMAP("TARGET_ID"))
MOB_ID = TOINT(QST_GET_FLAGMAP("MOB_ID"))
CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

SELECTCASE STATE
    CASE "導入"
        ;このイベントはイベントスロットを使用しないので非活性化
        CALL QST_DEACTIVATE_EVENT(QST_NOWEV + 1)
        PRINTFORML 一行の行く手を固く閉ざされた巨大な扉が遮っている
        PRINTFORMW 取っ手も錠もなく、普通の方法では開くことが出来ないようだ
        PRINTL
        PRINTFORMW %QST_LEADER_NAME()%は扉の脇の狭い小部屋に大掛かりなレバーがあるのを見出した
        PRINTFORMW 開閉装置のように見えるが、一人で動かすことは出来そうにない
        PRINTL
        PRINTFORML 閉ざされた扉を開くためには二人掛かりで仕掛けを動作させる必要がありそうだ
        PRINTFORMW 誰かがその役目を担わなければならない……
        PRINTL
        PRINTFORMW さて、どうしたものか……？　二人選ぶ必要がある
        PRINTL
        $ASK_LOOP_QUEST_50_EVENT_催眠相互自慰_導入
        ;パーティメンバを一人選択
        CALL PRINTLINE_RESERVE
        CALL SELECT_CHARA_LIST_INIT
        CALL SELECT_CHARA_LIST_MULTI_ONLY_LOGIC_SLG(2, "PARTY_MEMBER", "NONE")
        IF SELECTED_CHARA_NUM < 2
            PRINTFORMW 2名選択する必要がある
            CALL PRINTLINE_CLEAR
            GOTO ASK_LOOP_QUEST_50_EVENT_催眠相互自慰_導入
        ENDIF
        CHARA_ID = SELECTED_CHARA:0
        CHARA_ID2 = SELECTED_CHARA:1
        CALL QST_SET_FLAGMAP("CHARA_ID", TOSTR(CHARA_ID))
        CALL QST_SET_FLAGMAP("CHARA_ID2", TOSTR(CHARA_ID2))
        VARI TARGET_ID
        IF RAND:2
            TARGET_ID = CHARA_ID
        ELSE
            TARGET_ID = CHARA_ID2
        ENDIF
        CALL QST_SET_FLAGMAP("TARGET_ID", TOSTR(TARGET_ID))
        PRINTFORMW %ANAME(TARGET_ID, 2)%は開閉装置と思しきレバーに手を掛ける
        PRINTFORMW 途端、背後で扉が閉ざされる音が響き、装置から妖しく桃色に明滅する魔法陣が展開される。――これは罠だ！
        PRINTL
        CALL QST_ROLL_MULTI("魔術,", "呪術の相殺を試みる(魔術),","500,", 3, ,"なすがまま", TARGET_ID,,, 1)
        RETURN RESULT
    CASE "キャンセル"
        PRINTFORML %ANAME(TARGET_ID)%がすかさず対抗術式を唱えると、魔法陣は火花をちらして消滅した
        PRINTFORMW なんとか罠の発動を食い止めることが出来たようだ……
        PRINTL
        PRINTFORMW 二人がかりでレバーを引き倒すと、重い扉の開く金属音が辺りに響く。これで先に進めそうだ
        QST_FLAG:50 += 1
    CASE "開始"
        PRINTFORMW 対抗術式はまるで意味を成さず、桃色の輝きが%ANAME(CHARA_ID)%と%ANAME(CHARA_ID2)%を包み込む……
        PRINTL
        PRINTFORML %ANAME(CHARA_ID)%の耳にどこかひどく遠くで扉を叩く音と叫ぶ声が聞こえる……
        PRINTFORMW だが曖昧になり、遠のく意識の中ではどうでもよいことのように思えた
        PRINTL
        PRINTFORML 代わって頭の中を支配したのは猛烈な疼き。眼の前の%ANAME(CHARA_ID2)%に痴態を見せつけたいという猛烈な欲求……
        PRINTFORMW どうやらそれは%ANAME(CHARA_ID2)%も同じらしい
        PRINTL
        PRINTFORMW ……桃色に沈む意識の中で%ANAME(CHARA_ID, 2)%は互いに痴態を晒し始めた
        PRINTL
        CALL PRINT_TITLE("催眠自慰の罠", "エロトラップ")
        PRINTW
        CALL HO_PRINT_LOG(@"互いに痴態を見せ合っている……", 1)
        ;調教イベント系フラグセット
        FLAG:ウフフフラグ = 1
        FLAG:調教モード = 調教_慰安
        TFLAG:奉仕モード = 1
        FLAG:調教スキップ可 = 1
        TFLAG:調教ターン数 = 20
        CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
        ;奉仕側設定
        CFLAG:CHARA_ID2:調教参加フラグ = 1
        TCVAR:CHARA_ID2:奉仕者フラグ = 奉仕_自慰
        TCVAR:CHARA_ID2:催眠中 = 1
        TCVAR:CHARA_ID2:催眠実行者 = -1
        ;被奉仕側設定
        TCVAR:CHARA_ID:被奉仕者フラグ = 奉仕_自慰
        CFLAG:CHARA_ID:調教参加フラグ = 1
        TCVAR:CHARA_ID:催眠中 = 1
        TCVAR:CHARA_ID:催眠実行者 = -1
        CALL QST_SET_FLAGMAP("EVENTCOMEND_CALLEE_ONCE", "QST_QUEST_50_EVENT_調教中")
        CALL QST_SET_FLAGMAP("TRAIN_EXIT_CALLEE", "QST_QUEST_50_EVENT_調教終了")
    CASE "実行"
        ;このイベントはイベントスロットを使用しないので未使用
    CASE "調教中"
        ;EVENTCOMENDより呼ばれる
        IF TCVAR:CHARA_ID:催眠中 < 1 || TCVAR:CHARA_ID2:催眠中 < 1
            PRINTL
            CALL FL_PLAYSE("Whip_0.mp3")
            IF TCVAR:CHARA_ID:催眠中 < 1
                PRINTFORMW 催眠から目を覚ました%ANAME(CHARA_ID)%は%ANAME(CHARA_ID2)%の頬を何度か強く打った!
            ELSE
                PRINTFORMW 催眠から目を覚ました%ANAME(CHARA_ID2)%は%ANAME(CHARA_ID)%の頬を何度か強く打った！
            ENDIF
            CALL TRAIN_EXIT(0)
        ELSE
            CALL QST_SET_FLAGMAP("EVENTCOMEND_CALLEE_ONCE", "QST_QUEST_50_EVENT_調教中")
        ENDIF
    CASE "調教終了"
        ;調教イベントの終了時に呼ばれる
        PRINTL
        PRINTFORMW %ANAME(CHARA_ID)%と%ANAME(CHARA_ID2)%は我に返ったようだ
        PRINTL
        PRINTFORMW ……気がつけば既に扉は開いている。記憶が混濁しており、何があったのかははっきりしない
        PRINTFORMW %ANAME(CHARA_ID)%と%ANAME(CHARA_ID2)%は互いに高潮した顔を見合わせる
        PRINTFORMW 自らの装いが酷く乱れていることに気がついた%ANAME(CHARA_ID2)%はさっと局部を隠した
        PRINTL
        PRINTFORMW 正気に戻った%ANAME(CHARA_ID, 2)%は気まずい表情を浮かべつつ乱れた衣服を整える
        PRINTFORMW なにはともあれ、先に進むことはできそうだ……
        TCVAR:CHARA_ID:催眠中 = -1
        TCVAR:CHARA_ID2:催眠中 = -1
        QST_FLAG:50 += 1
        CALL QST_CHANGE_ITEM(@"淫堕点,10,")
        CALL QST_QUEST_50_EVENT_イベント終了()
    CASE "終了"
        ;このイベントはイベントスロットを使用しないので未使用
ENDSELECT
; #endregion

path: ERB/QUEST/クエストデータ/QUEST_50_めくりめぐる淫魔の奇譚/QUEST_50_エロイベント.ERB