code:
;クエストフラグ
#DEFINE QUEST_58_QSTFLG_未クリア           0
#DEFINE QUEST_58_QSTFLG_クエストクリア      1
#DEFINE QUEST_58_QSTFLG_クエスト失敗        2

repo_name: napo/erafl

license: unknown


code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_58
;-------------------------------------------------
@QST_TITLE_QUEST_58
#DIM DYNAMIC CHARA_ID
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")
RESULTS '= @"%CALLNAME:CHARA_ID%救出作戦"

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

;-------------------------------------------------
;クエストの実行可能条件を定義
;-------------------------------------------------
@QST_AVAILABLE_QUEST_58(QUEST_ID)
#DIM DYNAMIC QUEST_ID
SIF (QST_SV_QUEST_FLAG:QUEST_ID == QUEST_58_QSTFLG_未クリア) && (QST_SV_QUEST_FLAG:57 == QUEST_57_QSTFLG_クエスト失敗)
    RETURN 1
RETURN 0

;クエストを開始できるか判定
@QST_CAN_START_QUEST_58(QUEST_ID)
#DIM DYNAMIC QUEST_ID

;受注制限
IF (LIST_GET(_LIST_QST_PARTY, 0) != TOSTR(MASTER))
    CALLF TAG_PRINT(@"クエスト受注時はパーティメンバーに@C:{カラー_注意}@%ANAME(MASTER)%@/C@を登録する必要があります。", 1)
    WAIT
	RETURN 0
ENDIF
RETURN 1

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

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_58
RESULTS:0 '= "ゴブリン討伐に協力していた猟師の女性が、作戦中に攫われてしまった。"
RESULTS:1 '= "こちらの劣勢を確信した奴等は勢いを増し、街の経済や物流にも致命的な影響が出始めている。"
RESULTS:2 '= "彼女を救い出し、ゴブリン達の殲滅をお願いしたい。"

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_58
RESULTS:0 '= @"難易度：@C:{カラー_注意}@★★★★★★ ～@/C@"
RESULTS:1 '= "報酬：30,000ディナリ"
RESULTS:2 '= "推奨パーティ人数:6人　　　推奨平均戦闘値：80以上"
RESULTS:3 '= ""
RESULTS:4 '= @"@C:{カラー_選択不可}@「……恐れていた事が現実となった」@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@「これ以上奴等をのさばらせると、街の壊滅にも繋がりかねない。早急な対処を求む」@/C@"

;-------------------------------------------------
;クエスト固有の初期化処理
;-------------------------------------------------
@QST_INIT_QUEST_58
;固有敵データの読み込み
CALL QST_QUEST_58_ENEMY_DATA

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_58
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC EV_RESULT
#DIM DYNAMIC CLEAR_LINE_NUM
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

PRINTFORMW ギルドから依頼を受け、リスノイに到着した%QST_LEADER_NAME()%は役場へ向かい、ブリーフィングを受けた……
PRINTL
CALL PRINT_TITLE(@"%CALLNAME:CHARA_ID%救出作戦", "イベント")
PRINTFORMW 重苦しい雰囲気の中、ブリーフィングを終えた%QST_LEADER_NAME()%は、%CALLNAME:CHARA_ID%を救出すべく自警団や他の冒険者と共に森へ向かった。
PRINTFORMW ……
PRINTFORMW …
PRINTL
PRINTFORMW ――ゴブリンの巣穴　最深部
PRINTFORML 勢力と統率力を増したゴブリン達の猛攻を何とか凌ぎつつ、自警団と%QST_LEADER_NAME()%の一団は、巣穴の最奥部へ到達した。
PRINTFORMW そこには……

CALL QST_QUEST_58_EVENT_GUEST_FALLEN(1)
RETURN

;-------------------------------------------------
;EV1 バトル
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_58_EVENT_1
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

;-------------------------------------------------
;実行するイベントの実行内容を記述
;イベント用の関数はTRYCALLFORMで呼ばれるため
;@QST_QUEST_{QUEST_ID}_EVENT_{EVENT_ID}の書式で記述する
;-------------------------------------------------
@QST_QUEST_58_EVENT_1
#DIM CONST EVENT_ID = 78
#DIM DYNAMIC EVENT_FLAG
#DIM DYNAMIC CHARA_ID
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

PRINTFORMW ……
PRINTFORMW …
CLEARLINE LINECOUNT
CALL PRINT_TITLE("悪鬼達の隷母", "イベント")
PRINTFORMW 巣穴の最深部に到達した%QST_LEADER_NAME()%が目にしたものは
PRINTFORMW ゴブリン達と淫堕な家族団欒を営む、変わり果てた%CALLNAME:CHARA_ID%の姿だった……
PRINTL

CALL DRAW_PORTRAIT(CHARA_ID, @"[目:細][眉:しわよせ][口:あっ][サイズ:180px][POS_X:0]",, 1)
CALL COLOR_PRINTW(@"「う、あ……%QST_LEADER_NAME(1)%さん、来て…しまったんですね……」", CFLAG:CHARA_ID:口上カラーコード)
PRINTFORMW %QST_LEADER_NAME()%の存在に気づき臨戦態勢に移るゴブリン達。そして%CALLNAME:CHARA_ID%がゆらり、と立ち上がった。
CALL COLOR_PRINTW(@"「ごめん…なさい。わ、私はもう……」", CFLAG:CHARA_ID:口上カラーコード)
PRINTFORMW 訥々とした話し方で、%CALLNAME:CHARA_ID%は静かに語り始めた……
PRINTL
CALL COLOR_PRINTW(@"「む、無理矢理だったとはいえ、私が初めてを捧げた相手、だから……」", CFLAG:CHARA_ID:口上カラーコード)
CALL COLOR_PRINTW(@"「最初は不本意だったとしても、自分の子を産んで、育てる喜びを知ってしまった、から……」", CFLAG:CHARA_ID:口上カラーコード)
CALL COLOR_PRINTW(@"「だから私は……彼の番として、この子達の母として、努めを果たさないといけないんです。だから……」", CFLAG:CHARA_ID:口上カラーコード)
PRINTFORMW %CALLNAME:CHARA_ID%は傍らの猟銃を掴むと、子ゴブリンを庇うようにゴブリンチーフの横に並び立った。
CALL COLOR_PRINTW(@"「だから%QST_LEADER_NAME(1)%さん、ごめんなさい。私はもう戻れません……」", CFLAG:CHARA_ID:口上カラーコード)
PRINTL
PRINTFORML 一部始終を眺めていたゴブリンチーフは、%CALLNAME:CHARA_ID%の腰に手を回すと、とびきり醜悪な笑顔を%QST_LEADER_NAME()%に見せつけた。
PRINTFORMW ……
PRINTFORMW …
PRINTFORMW %QST_LEADER_NAME()%は武器を構え、ゴブリンの一団へ攻撃を仕掛けた……

CALL FL_PLAYBGM("Boss_2.ogg")
CALL QST_QUEST_58_BOSS_BATTLE_RESCUE

;CLOSE_COMBATの戻り値は攻撃側勝利 = 1,防衛側勝利 = 2
IF RESULT == 1
    PRINTFORMW %QST_LEADER_NAME()%は配下のゴブリン達を倒し、ゴブリンチーフを追い詰める。
    PRINTFORML 窮地に追い込まれたゴブリンチーフは、気絶している%CALLNAME:CHARA_ID%を抱き寄せ、懐から短刀を取り出そうとした
    PRINTFORMW %CALLNAME:CHARA_ID%を人質に取り、状況を打開しようと考えたのだろう。しかし……
    PRINTL
    CALL FL_PLAYSE("HeavySlash_0.mp3")
    PRINTFORMW 一瞬の隙を見逃さなかった%ANAME(QST_RANDCHARA())%によりその目論見は阻まれ、止めの一撃を下される。
    PRINTFORMW ゴブリンチーフはぐらりと倒れると地面に突っ伏し、そのまま動かなくなった。
    PRINTL
    PRINTFORMW %QST_LEADER_NAME()%はゴブリンの残兵達を打ち払いながら%CALLNAME:CHARA_ID%を救出した……
    PRINTFORMW ……
    CALL FL_STOPBGM()
    PRINTFORMW …
    PRINTL
    CALL PRINT_TITLE("エピローグ -戻らなかった日常", "イベント")
    CALL FL_PLAYBGM("Ruin_0.ogg")
    PRINTFORMW ――リスノイ-官庁街　役場
    PRINTFORML ゴブリンチーフを討伐した%QST_LEADER_NAME()%は、役場にて一連の出来事を報告した。
    PRINTFORMW 指揮官から感謝の言葉と報酬を受け取ると、そのままリスノイを後にした……
    PRINTFORMW ……
    PRINTFORMW …
    PRINTFORMW 数日後、リスノイの指揮官から一通の手紙が届いた。%QST_LEADER_NAME()%は封を切り、中身を読み進めていく……
    PRINTL
    PRINTFORML 助け出された%CALLNAME:CHARA_ID%は、数日後に目を覚ましたものの茫然自失となり、今も病室に籠もりきりだそうだ。
    PRINTFORML また、%CALLNAME:CHARA_ID%が猟師として復帰できる見込みは薄く
    PRINTFORMW これまで慰み者にされた女性達と同様、日常生活に戻れるかどうかも定かではないという……
    PRINTL

    ;クリア報酬
    CALL COLOR_PRINTW(@"――　ギルドから成功報酬として30,000ディナリが支払われた", カラー_注意)
    MONEY += 30000
    CALL COLOR_PRINTW(@"――　名誉点を40点得た！", カラー_注意)
    QST_PRESTIGE_POINT += 40

    QST_SV_QUEST_FLAG:QST_有効クエストID = QUEST_58_QSTFLG_クエストクリア
    TFLAG:クエスト_完了フラグ = 1
    CALL FL_STOPBGM()
    CALL TRAIN_EXIT()

ELSE
    CALL FL_STOPBGM()
    CALL COLOR_PRINTW(@"%QST_LEADER_NAME()%はゴブリンたちに打ち負かされてしまった……", カラー_注意)
    PRINTFORML ゴブリン達が下卑た笑みを浮かべて%QST_LEADER_NAME()%の元へと迫り寄る……
    PRINTFORMW しかし、間一髪のところで%CALLNAME:CHARA_ID%が割り込み、それを制した。
    PRINTL
    CALL FL_PLAYBGM("Train_0.ogg")
    CALL PRINT_TITLE("エピローグ - ゴブリンと雪国の狩人", "イベント")
    CALL DRAW_PORTRAIT(CHARA_ID, @"[目:細][サイズ:180px][POS_X:0]",, 1)
    CALL COLOR_PRINTW(@"「……%QST_LEADER_NAME(1)%さん、取り引きをしましょう」", CFLAG:CHARA_ID:口上カラーコード)
    CALL COLOR_PRINTW(@"「事の始まりは私の不始末が招いた出来事です。だから今回は見逃してもらえるよう、掛け合ってみます」", CFLAG:CHARA_ID:口上カラーコード)
    IF HAS_VAGINA(LOCAL) == 1
        CALL COLOR_PRINTW(@"「その代わり、私達とはもう関わらないで下さい。貴方を私のようにしたくありませんから……」", CFLAG:CHARA_ID:口上カラーコード)
    ELSE
        CALL COLOR_PRINTW(@"「その代わり、私達とはもう関わらないで下さい。貴方を餌にしたくありませんから……」", CFLAG:CHARA_ID:口上カラーコード)
    ENDIF
    PRINTFORMW %CALLNAME:CHARA_ID%は淡々とそう告げると、ゴブリンチーフのもとへ駆け寄った。
    PRINTFORMW 遠くで会話をしている%CALLNAME:CHARA_ID%の声が微かに聞こえる……
    PRINTL
    CALL COLOR_PRINTW(@"「あ…人……を…………か？あ………ます」", CFLAG:CHARA_ID:口上カラーコード)
    CALL COLOR_PRINTW(@"「え？……わ………ました♥ …沢……種……して…孕……さい♥」", CFLAG:CHARA_ID:口上カラーコード)
    PRINTFORMW ……
    PRINTFORMW …
    PRINTFORMW 程なくして%CALLNAME:CHARA_ID%が戻ってきた。
    PRINTL
    CALL COLOR_PRINTL("「お待たせしました。今回は特別に見逃す、との事です」", CFLAG:CHARA_ID:口上カラーコード)
    CALL COLOR_PRINTW("「では、森の外まで私がお見送りします。あの子達に任せたら約束を反故にしてしまいますからね」", CFLAG:CHARA_ID:口上カラーコード)
    PRINTFORMW ……
    PRINTFORMW …
    PRINTFORMW %QST_LEADER_NAME()%と%CALLNAME:CHARA_ID%は森の入口に到着した。
    CALL COLOR_PRINTW(@"「では、さようなら。二度と会う事が無いことを願っています……」", CFLAG:CHARA_ID:口上カラーコード)
    PRINTFORMW %QST_LEADER_NAME()%は%CALLNAME:CHARA_ID%に見送られ、リスノイを後にした……
    TFLAG:クエスト_完了フラグ = 1

    ;ゲストキャラが妊娠すると里子へ出すイベントが発生するので、ここで発生条件を未達にする
    VARSET WOMB_SPERM_ID:CHARA_ID:0, 0
    QST_SV_QUEST_FLAG:QST_有効クエストID = QUEST_58_QSTFLG_クエスト失敗
    TFLAG:クエスト_完了フラグ = 1
    CALL FL_STOPBGM()
    CALL TRAIN_EXIT()
ENDIF

;-------------------------------------------------
;ボスバトル設定関数(救出ルート)
;-------------------------------------------------
@QST_QUEST_58_BOSS_BATTLE_RESCUE()

;戦闘イベント
CALL CC_INIT()
;クエストのパーティメンバーを攻撃側として追加
CALL CC_ADDPARTY("ATTACKER")

;防御側エネミー設定
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "QUEST_58_ゴブリンチーフ", "ゴブリンチーフ")
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "QUEST_58_『悪鬼達の隷母』", "『悪鬼達の隷母』")
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "熟練冒険者・魔術師", "ゴブリンシャーマン")
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "QUEST_58_ワーグ", "ワーグ")
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "QUEST_58_ゴブリンジュニア", "ゴブリンジュニア１")
CALL CC_ADDMOB_FROM_TABLE("DEFENDER", "QUEST_58_ゴブリンジュニア", "ゴブリンジュニア２")

;戦闘処理呼出
CALL CLOSE_COMBAT()
;CLOSE_COMBATの戻り値は攻撃側勝利 = 1,防衛側勝利 = 2
RETURN RESULT

;-------------------------------------------------
;ゲストキャラ陥落イベント
;-------------------------------------------------
@QST_QUEST_58_EVENT_GUEST_FALLEN(AFTER_EVENT, CHARA_ID = -1)
#DIM DYNAMIC AFTER_EVENT = -1
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC BOSS_ID

;IDの設定
SIF CHARA_ID == -1
    CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

FLAG:ウフフフラグ = 1
FLAG:調教モード = 調教_慰安
FLAG:調教スキップ可 = 1
CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0

;BGMの設定
CALL FL_PLAYBGM("Ambient_dark_0.ogg")

;ゲストユニットパラメータ設定
CALL QST_QUEST_58_SETPARAM_GUEST_FALLEN(CHARA_ID)

;ゲストユニットの判定
CFLAG:CHARA_ID:調教参加フラグ = 1
CFLAG:CHARA_ID:凌辱被害者フラグ = 0
CFLAG:CHARA_ID:強制友好化 = 1
;全脱衣
CALL HO_UNDRESS(CHARA_ID)

CALL ADD_EVENTTRAIN_CALLEE("EVENT_QUEST_52_INTRO_SET_TFLAG")

;終了時に呼ぶイベント
SIF AFTER_EVENT >= 0
    CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(AFTER_EVENT)
CALL START_TRAIN_COMMON

;-------------------------------------------------
; TFLAGはTRAIN開始時に初期化されるため、
; クエスト側でTFLAGを制御したい場合はEVENTTRAIN_CALLEEを使う
;-------------------------------------------------
@EVENTTRAIN_EVENT_QUEST_52_INTRO_SET_TFLAG
#DIM DYNAMIC BOSS_ID

;慰安モブを追加
;ボス系
CALL QST_TRAIN_MOB_PRESET("ゴブリン", @"ゴブリンチーフ")
BOSS_ID = RESULT
CALL QST_QUEST_58_TRAIN_CONFIG_BOSS_GOBLIN(RESULT)
;子供ゴブリン
CALL QST_TRAIN_MOB_PRESET("ゴブリン", @"ゴブリンチャイルド")
CALL QST_QUEST_58_GOBLIN_TRAINCOM_CHILD_GOBLIN(RESULT, BOSS_ID)
CALL QST_TRAIN_MOB_PRESET("ゴブリン", @"ゴブリンチャイルド")
CALL QST_QUEST_58_GOBLIN_TRAINCOM_CHILD_GOBLIN(RESULT, BOSS_ID)

TFLAG:調教ターン数 = 20

;-------------------------------------------------
;陥落後ゲストパラメータ設定
;-------------------------------------------------
@QST_QUEST_58_SETPARAM_GUEST_FALLEN(CHARA_ID)
#DIM DYNAMIC CHARA_ID

SETBIT K28_フラグ管理, K28_フラグ_陥落済み

SETBIT TALENT:CHARA_ID:特殊勢力陥落系, 特殊勢力_ゴブリン
SETBIT SEXUAL_PREFERENCE:CHARA_ID:0, 性的嗜好_奉仕したい
SETBIT SEXUAL_PREFERENCE:CHARA_ID:0, 性的嗜好_妊娠したい
SETBIT SEXUAL_PREFERENCE:CHARA_ID:0, 性的嗜好_近親相姦したい
SETBIT TALENT:CHARA_ID:淫乱系, 素質_淫乱_孕みたがり
SETBIT TALENT:CHARA_ID:淫乱系, 素質_淫乱_良質母胎
SETBIT TALENT:CHARA_ID:淫乱系, 素質_淫乱_精飲中毒

EXP:CHARA_ID:絶頂経験 = RAND(40, 60)
EXP:CHARA_ID:苦痛快楽経験 = RAND(50, 70)
EXP:CHARA_ID:Ｖ拡張経験 = RAND(40, 60)
EXP:CHARA_ID:Ａ拡張経験 = RAND(40, 60)
EXP:CHARA_ID:緊縛経験 = RAND(20, 30)
EXP:CHARA_ID:膣内射精経験 = RAND(20, 40)
EXP:CHARA_ID:腸内射精経験 = RAND(10, 30)
EXP:CHARA_ID:口内射精経験 = RAND(30, 40)
EXP:CHARA_ID:キス経験 = RAND(20, 30)
EXP:CHARA_ID:口淫経験 = RAND(40, 50)
EXP:CHARA_ID:Ｖ性交経験 = RAND(30, 40)
EXP:CHARA_ID:Ａ性交経験 = RAND(30, 40)
EXP:CHARA_ID:おもらし経験 = RAND(30, 45)
EXP:CHARA_ID:トラウマ経験 = RAND(70, 90)
EXP:CHARA_ID:出産経験 = RAND(3, 6)
EXP:CHARA_ID:異常経験 = RAND(60, 70)
EXP:CHARA_ID:輪姦経験 = RAND(40, 60)
EXP:CHARA_ID:近親相姦経験 = RAND(3, 4)

ABL:CHARA_ID:Ｃ感 = 6
ABL:CHARA_ID:Ｖ感 = 10
ABL:CHARA_ID:Ａ感 = 8
ABL:CHARA_ID:Ｂ感 = 7
ABL:CHARA_ID:Ｍ感 = 5
ABL:CHARA_ID:Ｕ感 = 1
ABL:CHARA_ID:欲望 = 8
ABL:CHARA_ID:性技 = 6
ABL:CHARA_ID:性知識 = 4
ABL:CHARA_ID:奉仕 = 9
ABL:CHARA_ID:性交 = 4
ABL:CHARA_ID:露出 = 2
ABL:CHARA_ID:精愛 = 6
ABL:CHARA_ID:噴乳 = 2
ABL:CHARA_ID:排泄 = 1
ABL:CHARA_ID:出産 = 2
ABL:CHARA_ID:マゾ = 4

ABL:CHARA_ID:主導度Ｕ = 1000
ABL:CHARA_ID:倒錯度 = 1000

TALENT:CHARA_ID:処女 = 0
TALENT:CHARA_ID:キス未経験 = 0
TALENT:CHARA_ID:アナル処女 = 0
TALENT:CHARA_ID:孤高 = 0
TALENT:CHARA_ID:汚臭敏感 = 0
TALENT:CHARA_ID:汚れ無視 = 1
TALENT:CHARA_ID:おもらし癖 = 1
TALENT:CHARA_ID:母乳体質 = 1
TALENT:CHARA_ID:母性 = 1
TALENT:CHARA_ID:Ｖ締まり = 締まり_ゆるめ
TALENT:CHARA_ID:Ａ締まり = 締まり_ゆるゆる
TALENT:CHARA_ID:バストサイズ ++

CFLAG:CHARA_ID:調教中BASE減らない = 1
CFLAG:CHARA_ID:妊娠時バストサイズ増加 = 1

CSTR:CHARA_ID:120 = CC1_後髪_4
CSTR:CHARA_ID:129 = CC1_前髪_10
CSTR:CHARA_ID:137 = CC1_化粧_目元_0
CSTR:CHARA_ID:138 = CC1_首飾_首輪_1
CSTR:CHARA_ID:139 = ;エクステ解除

FACE_PARTS:CHARA_ID:IMG_前髪 = %CSTR:CHARA_ID:129%
FACE_PARTS:CHARA_ID:IMG_後髪 = %CSTR:CHARA_ID:120%
FACE_PARTS:CHARA_ID:IMG_化粧 = %CSTR:CHARA_ID:137%
FACE_PARTS:CHARA_ID:IMG_首飾 = %CSTR:CHARA_ID:138%
FACE_PARTS:CHARA_ID:IMG_エクステ = %CSTR:CHARA_ID:139%

PALAM:CHARA_ID:欲情 = 500
PALAM:CHARA_ID:潤滑 = 3000

TATTOO:CHARA_ID:タトゥー_尻 = 【ゴブリンチーフの烙印】
CALL REFRESH_PREGNANT_RECORD(CHARA_ID, GET_SPERM_ID("ゴブリン"), EXP:CHARA_ID:出産経験)
CALL RECORD_BREAST_FEED(CHARA_ID, GET_SPERM_ID("ゴブリン"), RAND(100, 150) * EXP:CHARA_ID:出産経験)
CALL RECORD_CREAMPIE(CHARA_ID, GET_SPERM_ID("ゴブリン"), RAND(100, 120), 射精部位_膣内)
CALL RECORD_CREAMPIE(CHARA_ID, GET_SPERM_ID("ゴブリン"), RAND(100, 120), 射精部位_アナル)
CALL RECORD_CREAMPIE(CHARA_ID, GET_SPERM_ID("ゴブリン"), RAND(200, 250), 射精部位_口)

[IF_DEBUG]
SEXUAL_EXPERIENCE:CHARA_ID:初体験_処女 = ゴブリンチーフ
SEXUAL_EXPERIENCE_SITUATION:CHARA_ID:初体験_処女 = 調教
SEXUAL_EXPERIENCE:CHARA_ID:初体験_キス = ゴブリンチーフ
SEXUAL_EXPERIENCE_SITUATION:CHARA_ID:初体験_キス = 調教
SEXUAL_EXPERIENCE:CHARA_ID:初体験_アナル処女 = 愛用の猟銃
SEXUAL_EXPERIENCE_SITUATION:CHARA_ID:初体験_アナル処女 = ゴブリンに無理矢理挿れられる形
SEXUAL_LAST_EXPERIENCE:CHARA_ID:初体験_アナル処女 = %S_R("酒瓶/剣の鞘/ワーグ/ゴブリンの腕")%
SEXUAL_LAST_EXPERIENCE_SITUATION:CHARA_ID:初体験_アナル処女 = 調教
[ENDIF]

;実行可能な調教コマンドや優先度もここで設定
VARSET COM_FORBIDDEN:CHARA_ID:0, 1

COM_FORBIDDEN:CHARA_ID:T_N("キス") = 0
COM_FORBIDDEN:CHARA_ID:T_N("フェラチオ") = 0
COM_FORBIDDEN:CHARA_ID:T_N("パイズリ") = 0
COM_FORBIDDEN:CHARA_ID:T_N("手コキ") = 0
COM_FORBIDDEN:CHARA_ID:T_N("玉舐め") = 0
COM_FORBIDDEN:CHARA_ID:T_N("アナル舐め") = 0
COM_FORBIDDEN:CHARA_ID:T_N("おねだり") = 0
COM_FORBIDDEN:CHARA_ID:T_N("騎乗位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ騎乗位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("秘貝開帳") = 0
COM_FORBIDDEN:CHARA_ID:T_N("囁きかける") = 0
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "フェラチオ") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "パイズリ") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "手コキ") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "玉舐め") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "アナル舐め") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "おねだり") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "騎乗位") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "Ａ騎乗位") = 3

;-------------------------------------------------
;ゴブリン調教コマンド
;-------------------------------------------------
@QST_QUEST_58_GOBLIN_TRAINCOM_CHILD_GOBLIN(CHARA_ID, BOSS_ID)
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC BOSS_ID = 0
VARSET COM_FORBIDDEN:CHARA_ID:0, 1

SEXUAL_EXPERIENCE:CHARA_ID:初体験_キス = %NAME:(NAME_TO_CHARA("UC_オレーシャ"))%
SEXUAL_LAST_EXPERIENCE:CHARA_ID:初体験_キス = %SEXUAL_EXPERIENCE:CHARA_ID:初体験_キス%
SEXUAL_LAST_EXPERIENCE_SITUATION:CHARA_ID:初体験_キス = %SEXUAL_EXPERIENCE_SITUATION:CHARA_ID:初体験_キス%
SEXUAL_EXPERIENCE:CHARA_ID:初体験_童貞 = %NAME:(NAME_TO_CHARA("UC_オレーシャ"))%
SEXUAL_LAST_EXPERIENCE:CHARA_ID:初体験_童貞 = %SEXUAL_EXPERIENCE:CHARA_ID:初体験_童貞%
SEXUAL_LAST_EXPERIENCE_SITUATION:CHARA_ID:初体験_童貞 = %SEXUAL_EXPERIENCE_SITUATION:CHARA_ID:初体験_童貞%

TALENT:CHARA_ID:キス未経験 = 0
TALENT:CHARA_ID:童貞 = 0
TALENT:CHARA_ID:幼児 = 1
TALENT:CHARA_ID:幼稚 = 1
TALENT:CHARA_ID:ペニスサイズ = 0
TALENT:CHARA_ID:体格 = 体格_子供
TALENT:CHARA_ID:おもらし癖 = 1  ;放尿コマンドを常時実行できるように
TALENT:CHARA_ID:汚れ無視 = 1
CFLAG:CHARA_ID:慰安参加者 = 1
CFLAG:CHARA_ID:母親 = GET_ID(NAME_TO_CHARA("UC_オレーシャ"))
CFLAG:CHARA_ID:父親 = GET_SPERM_ID("ゴブリン")
ABL:CHARA_ID:射精 = 10
ABL:CHARA_ID:主導度Ｕ = 600
TCVAR:CHARA_ID:尿残量 = 2000

COM_FORBIDDEN:CHARA_ID:T_N("胸愛撫") = 0
COM_FORBIDDEN:CHARA_ID:T_N("クンニ") = 0
COM_FORBIDDEN:CHARA_ID:T_N("乳首吸い") = 0
COM_FORBIDDEN:CHARA_ID:T_N("乳首責め") = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"フェラチオ") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"パイズリ") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"手コキ") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"キス") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:T_N("イラマチオ") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ正常位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ後背位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ騎乗位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ背面騎乗位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("二本挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("順番に挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("代わる代わる挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("順番にＡ挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("代わる代わるＡ挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("Ａ二本挿入") = 0
COM_FORBIDDEN:CHARA_ID:T_N("口内放尿") = 0
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "乳首吸い") = 3
COM_TENDENCY:CHARA_ID:(GETNUM(TRAINNAME,"フェラチオ") + ADD_NUM_対象が実行) = 3
COM_TENDENCY:CHARA_ID:(GETNUM(TRAINNAME,"パイズリ") + ADD_NUM_対象が実行) = 3
COM_TENDENCY:CHARA_ID:(GETNUM(TRAINNAME,"手コキ") + ADD_NUM_対象が実行) = 3
COM_TENDENCY:CHARA_ID:(GETNUM(TRAINNAME,"キス") + ADD_NUM_対象が実行) = 3

@QST_QUEST_58_TRAIN_CONFIG_BOSS_GOBLIN(CHARA_ID)
#DIM DYNAMIC CHARA_ID
VARSET COM_FORBIDDEN:CHARA_ID:0, 1

TALENT:CHARA_ID:キス未経験 = 0
TALENT:CHARA_ID:童貞 = 0
TALENT:CHARA_ID:ペニスサイズ = 2
TALENT:CHARA_ID:体格 = 体格_長身
TALENT:CHARA_ID:おもらし癖 = 1  ;放尿コマンドを常時実行できるように
TALENT:CHARA_ID:汚れ無視 = 1
SETBIT TALENT:(CHARA_ID):淫乱系, 素質_淫乱_濃厚精液
CFLAG:CHARA_ID:慰安参加者 = 1
ABL:CHARA_ID:性技 = 7
ABL:CHARA_ID:射精 = 15
ABL:CHARA_ID:主導度Ｕ = 99999999
ABL:CHARA_ID:倒錯度 = 1000
TCVAR:CHARA_ID:尿残量 = 2000

COM_FORBIDDEN:CHARA_ID:T_N("キス") = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"フェラチオ") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:(GETNUM(TRAINNAME,"パイズリ") + ADD_NUM_対象が実行) = 0
COM_FORBIDDEN:CHARA_ID:T_N("正常位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("後背位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("騎乗位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("対面座位") = 0
COM_FORBIDDEN:CHARA_ID:T_N("駅弁") = 0
COM_FORBIDDEN:CHARA_ID:T_N("背面駅弁") = 0
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "正常位") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "騎乗位") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "対面座位") = 3
COM_TENDENCY:CHARA_ID:GETNUM(TRAINNAME, "駅弁") = 3

;-------------------------------------------------
;@QST_QUEST_42_ENEMY_DATA
; クエスト固有エネミーの読み込み処理
; クエストで共通的に使い回すエネミーの戦闘データは@CC_ENEMY_DATAに記述されているが
; クエスト側で後付で追加することもできる。(@QST_INIT_QUEST_XXなどで明示的に読込み処理を呼び出すこと)
; 特定のクエストでしか使わないエネミーのデータ（ボスなど）はクエスト側に記述するとよいだろう
; パラメータの詳細は @CC_ENEMY_DATA 参照
; ！！！ENEMY_DEF_NAMEはユニークである必要があるためクエスト側でエネミーを追加する場合はENEMY_DEF_NAMEに'QUEST_XX_'を接頭すること！！！
;-------------------------------------------------
@QST_QUEST_58_ENEMY_DATA
{
    DT_ROW_ADD "ENEMY_DATA"
        ,"ENEMY_DEF_NAME", "QUEST_58_ゴブリンチーフ"
        ,"MAX_HP", 4000
        ,"STR", 60
        ,"MAG", 0
        ,"ATTACK", 60
        ,"DEFENCE", 35
        ,"ARMOR", 150
        ,"AGILITY", 120
        ,"HATE_RATE", 80
        ,"TARGETING", WPN_脅威選定_低耐久
        ,"ENEMY_AI", "[SKILL_OVERRIDE_FUNC:QUEST_57_ゴブリン][SKILL_USE_RATE:50][SEX_ATTACK_USE_RATE:20]"
        ,"REGIST_DEATH", 100
        ,"ENEMY_PASSIVE_SKILL", "[PSV_ATTACK_ORDER:1]"
        ,"ENEMY_ACTIVE_SKILL", "[ACT_VOICE_OF_FRAGILE:2][ACT_DEPLOY_DECOY:1][ACT_MOLESTATION:1][ACT_TEMPTATION:1]"
        ,"EXP", 8
}
{
    DT_ROW_ADD "ENEMY_DATA"
        ,"ENEMY_DEF_NAME", "QUEST_58_『悪鬼達の隷母』"
        ,"MAX_HP", 4500
        ,"STR", 30
        ,"MAG", 0
        ,"ATTACK", 45
        ,"DEFENCE", 50
        ,"ARMOR", 300
        ,"AGILITY", 60
        ,"HATE_RATE", 120
        ,"TARGETING", WPN_脅威選定_高脅威
        ,"REGIST_POISON", 20
        ,"REGIST_STUN", 40
        ,"REGIST_CHARM", 100
        ,"REGIST_PANIC", 50
        ,"REGIST_BLIND", 70
        ,"REGIST_DEATH", 100
        ,"ENEMY_PASSIVE_SKILL", "[K28_UNIQUE_SKILL_FINAL_STUB:3][WPN_BEARTRAP:3]"
        ,"ENEMY_ACTIVE_SKILL", "[ACT_FRONT_DEFENCE:2]"
        ,"EXP", 8
}
{
    DT_ROW_ADD "ENEMY_DATA"
        ,"ENEMY_DEF_NAME", "QUEST_58_ワーグ"
        ,"MAX_HP", 2200
        ,"STR", 40
        ,"MAG", 20
        ,"ATTACK", 40
        ,"DEFENCE", 15
        ,"ARMOR", 100
        ,"AGILITY", 180
        ,"HATE_RATE", 100
        ,"TARGETING", WPN_脅威選定_低耐久
        ,"ENEMY_ACTIVE_SKILL", "[STUN_ROAR:1][SMITE:2][ACT_TORN_CLOTH:1]"
        ,"EXP", 4
}
{
    DT_ROW_ADD "ENEMY_DATA"
        ,"ENEMY_DEF_NAME", "QUEST_58_ゴブリンシャーマン"
        ,"MAX_HP", 2200
        ,"STR", 20
        ,"MAG", 60
        ,"ATTACK", 20
        ,"DEFENCE", 35
        ,"ARMOR", 200
        ,"AGILITY", 40
        ,"HATE_RATE", 100
        ,"TARGETING", WPN_脅威選定_低脅威
        ,"ENEMY_ACTIVE_SKILL", "[ACT_CAST_ATTACK_ALL:2]"
        ,"ENEMY_PASSIVE_SKILL", "[ATK_ADD_CAST_TOKEN:1]"
        ,"EXP", 3
}
{
    DT_ROW_ADD "ENEMY_DATA"
        ,"ENEMY_DEF_NAME", "QUEST_58_ゴブリンジュニア"
        ,"MAX_HP", 1700
        ,"STR", 30
        ,"MAG", 0
        ,"ATTACK", 45
        ,"DEFENCE", 18
        ,"ARMOR", 220
        ,"AGILITY", 110
        ,"HATE_RATE", 100
        ,"TARGETING", WPN_脅威選定_高脅威
        ,"ENEMY_AI", "[SKILL_USE_RATE:40][SEX_ATTACK_USE_RATE:30]"
        ,"ENEMY_PASSIVE_SKILL", "[CHASE_POISON:1]"
        ,"ENEMY_ACTIVE_SKILL", "[ACT_STUN_ENEMY:1][POISON_ATTACK:1][ACT_TORN_CLOTH:1][ACT_MOLESTATION:1]"
        ,"EXP", 2
}

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/QUEST_58_狩人救出作戦.ERB


code:
;ノード名
#DEFINE QUEST_59_南門           0
#DEFINE QUEST_59_役場           1
#DEFINE QUEST_59_宿屋           2
#DEFINE QUEST_59_大通り         3
#DEFINE QUEST_59_港前広場       4
#DEFINE QUEST_59_ギルドホール   5
#DEFINE QUEST_59_商店街         6
#DEFINE QUEST_59_教会           7
#DEFINE QUEST_59_船着場         8
#DEFINE QUEST_59_官庁街         9
#DEFINE QUEST_59_造船地区      10
#DEFINE QUEST_59_居住区        11
#DEFINE QUEST_59_歓楽街        12
#DEFINE QUEST_59_倉庫街        13
#DEFINE QUEST_59_北門          14
#DEFINE QUEST_59_東の森へ      20
#DEFINE QUEST_59_猟師の小屋    21

#DEFINE QUEST_59_猟師の小屋_寝室        211
#DEFINE QUEST_59_猟師の小屋_リビング    214

;ショップ在庫
#DIMS QUEST_59_DIC_SHOP_STOCK_雑貨屋, 10
#DIMS QUEST_59_DIC_SHOP_STOCK_食料品店, 10
#DIMS QUEST_59_DIC_SHOP_STOCK_露店, 10
#DIMS SAVEDATA QUEST_59_DIC_SHOP_STOCK_アクセサリ屋, 10


code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_59
;-------------------------------------------------
@QST_TITLE_QUEST_59
RESULTS '= "北港都市リスノイ"

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

;-------------------------------------------------
;クエストの実行可能条件を定義
;-------------------------------------------------
@QST_AVAILABLE_QUEST_59(QUEST_ID)
#DIM DYNAMIC QUEST_ID
SIF (QST_SV_QUEST_FLAG:57 == QUEST_57_QSTFLG_クエストクリア) || (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
    RETURN 1
RETURN 0

;クエストを開始できるか判定
@QST_CAN_START_QUEST_59(QUEST_ID)
#DIM DYNAMIC QUEST_ID = 50
RETURN 1

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

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_59
RESULTS:0 '= "コモンウェルスの北方に位置する雪国の港湾都市"
RESULTS:1 '= "一年の殆どが雪で覆われる厳しい土地柄であるが、近くを流れる暖流の影響で海面が凍結することは無く"
RESULTS:2 '= "冬季でも貿易船が出入りできる数少ない港街の一つ"
RESULTS:3 '= ""
RESULTS:4 '= "かつては凶暴な魔獣が徘徊する広大な森だったが、今では開拓が進み、街道の整備も行われている"
RESULTS:5 '= "北方の工業地帯への原材料供給、そして工業製品の輸出を担う重要な交易拠点である"

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_59
RESULTS:0 '= @"難易度：- (実装途中のクエストです)"
RESULTS:1 '= "報酬：-"
RESULTS:2 '= "推奨パーティ人数:1人以上"
RESULTS:3 '= @"@C:{カラー_選択不可}@「厄介なゴブリンが去り、この街もようやく賑わいを取り戻した」@/C@"
RESULTS:4 '= @"@C:{カラー_選択不可}@「閑散としていた市場には、新鮮な魚や果物や交易品が並びはじめ」@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@「寂れた港は商船でひしめき、船乗りたちの歓声と商人達の元気な声で溢れるようになった」@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@「おかげで此方の商売も大繁盛だ。ありがとうよ、感謝しているぜ」@/C@"

;-------------------------------------------------
;マップデータ定義
;[ROOM_ID:]　…　配置するエリアの種類
;[ROOM_PATH:]　…　エリア間の接続情報(※)
;[EVENT_LIST:]　…　エリアに配置するイベントのID(※)
;(※)要素の末尾の','を忘れないように注意
;EmueraをDEBUGMODEで起動した場合、[領地の手入れ]画面から編集したエリア情報をテキストファイルにエクスポートできる
;出力txtをベースに編集すると少し楽かもしれない
;-------------------------------------------------
@QST_SET_MAPDATA_QUEST_59(MAP_ID)

#DIM MAP_ID
;mapdata定義ファイルの格納先フォルダを指定
QST_GMAPDATA_PATH '= "ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人"
;マップデータ定義XMLとTXTのファイル名を指定。
;2ファイルの名称は拡張子を除いて一致している必要がある
QST_GMAPDATA_FILENAME '= "北港都市リスノイ"
;このフラグを1にすると経路描画が行われなくなる。屋内マップなどあえて経路を図示する必要がない場合に立てるとよい
QST_HIDE_PATH = 1

;各エリア（ノード）に配置するイベントIDを記入。0-24はノード番号に対応
;EVENT_LIST末尾の’,’を忘れないように
_DIC_HO_MAPDATA:MAP_ID:0   '= "[EVENT_LIST:0,1,2,]"                 ;南門
_DIC_HO_MAPDATA:MAP_ID:1   '= "[EVENT_LIST:0,11,]"                  ;役場
_DIC_HO_MAPDATA:MAP_ID:2   '= "[EVENT_LIST:0,20,21,]"               ;宿屋
_DIC_HO_MAPDATA:MAP_ID:3   '= "[EVENT_LIST:0,]"                     ;大通り
_DIC_HO_MAPDATA:MAP_ID:4   '= "[EVENT_LIST:0,40,41,]"               ;港前広場
_DIC_HO_MAPDATA:MAP_ID:5   '= "[EVENT_LIST:0,50,51,]"               ;ギルドホール
_DIC_HO_MAPDATA:MAP_ID:6   '= "[EVENT_LIST:0,60,61,62,]"            ;商店街
_DIC_HO_MAPDATA:MAP_ID:7   '= "[EVENT_LIST:0,]"                     ;教会
_DIC_HO_MAPDATA:MAP_ID:8   '= "[EVENT_LIST:0,80,]"                  ;船着場
_DIC_HO_MAPDATA:MAP_ID:9   '= "[EVENT_LIST:0,90,]"                  ;官庁街
_DIC_HO_MAPDATA:MAP_ID:10  '= "[EVENT_LIST:0,100,]"                 ;造船地区
_DIC_HO_MAPDATA:MAP_ID:11  '= "[EVENT_LIST:0,]"                     ;居住区
_DIC_HO_MAPDATA:MAP_ID:12  '= "[EVENT_LIST:0,120,121,]"             ;歓楽街
_DIC_HO_MAPDATA:MAP_ID:13  '= "[EVENT_LIST:0,]"                     ;倉庫街
_DIC_HO_MAPDATA:MAP_ID:14  '= "[EVENT_LIST:0,141,]"                 ;北門
_DIC_HO_MAPDATA:MAP_ID:21  '= "[EVENT_LIST:0,210,214,211,212,213,]" ;猟師の小屋

;-------------------------------------------------
;クエスト固有の初期化処理
;-------------------------------------------------
@QST_INIT_QUEST_59

;-------------------------------------------------
;クエストの探索状態保持設定
;-------------------------------------------------
@QST_QUEST_59_SAVE_EXPLORED
RETURN 1

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_59
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC EV_RESULT
#DIM DYNAMIC CLEAR_LINE_NUM
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

PRINTFORMW %QST_LEADER_NAME()%は、北国の港街リスノイに到着した。
PRINTL
PRINTFORML 港街はかつての活気を取り戻しつつあり、船乗りや商人で賑わいをみせていた。
PRINTFORML 柔らかな日差しと穏やかな海風が、街の賑わいに花を添える。
PRINTL

;ゲスト加入イベントが完了しているか
CALL QST_GET_SV_EVENT_FLAG(210)
IF (RESULT < 1)  && (QST_SV_QUEST_FLAG:58 != QUEST_58_QSTFLG_クエストクリア)
    PRINTFORMW %CALLNAME:CHARA_ID%はどうしてるだろうか。会いに行ってみるのもいいかもしれない
    PRINTFORMW %QST_LEADER_NAME()%はそんな事を考えながら港街の大通りへ歩みを進めた……
ELSE
    PRINTFORMW %QST_LEADER_NAME()%はそんな港街の大通りへ歩みを進めた……
ENDIF

;ゲーム内時刻を8:00にセット
HO_TIME = HO_CLOCK(800)
FLAG:クエスト_中断を許可 = 1
;居住区で実行可能なコマンドの一部を実行可能にするフラグ
FLAG:クエスト_交流コマンド許可 = 1
;0時にクエスト強制終了
FLAG:QST_終了時刻 = HO_CLOCK(2400)

;BGM
CALL FL_PLAYBGM("Town_noon_1.ogg")
;ログ表示
CALL QST_QUEST_59_EVENT_0

;-------------------------------------------------
;EV0 汎用処理
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_0
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
RESULTS:0 = %EVENT_TRIGGER%

;-------------------------------------------------
;実行するイベントの実行内容を記述
;イベント用の関数はTRYCALLFORMで呼ばれるため
;@QST_QUEST_{QUEST_ID}_EVENT_{EVENT_ID}の書式で記述する
;-------------------------------------------------
@QST_QUEST_59_EVENT_0
;ログクリア
CALL HO_CREAR_LOG()
;クエストログ表示
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;ログ表示
;-------------------------------------------------
@QST_QUEST_59_EVENT_0_LOG
#DIM  DYNAMIC CHARA_ID
#DIM  DYNAMIC 猟師の小屋_利用設備
#DIM  DYNAMIC ROOM_IDX
#DIM  DYNAMIC MODULE_IDX
#DIMS DYNAMIC ROOM_EFFECT_MAP
#DIMS DYNAMIC MODULE_EFFECT_MAP
#DIMS DYNAMIC LOGTEXT

CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")
ROOM_IDX = C_COND_MAP_GET(MASTER, "エリアIDX")
ROOM_EFFECT_MAP '= @"MAP_{ROOM_IDX}_ROOM_EFFECT"
MODULE_IDX = C_COND_MAP_GET(MASTER, "設備IDX")
MODULE_EFFECT_MAP '= @"MAP_{MODULE_IDX}_MODULE_EFFECT"

CALL QST_GET_EVENT_FLAG(QUEST_59_猟師の小屋_寝室)
SIF RESULT
    猟師の小屋_利用設備 = QUEST_59_猟師の小屋_寝室
CALL QST_GET_EVENT_FLAG(QUEST_59_猟師の小屋_リビング)
SIF RESULT
    猟師の小屋_利用設備 = QUEST_59_猟師の小屋_リビング

CALL HO_CREAR_LOG()
SELECTCASE HO_MASTER現在地
    CASE QUEST_59_役場
        CALL HO_PRINT_LOG("役場のカウンターに立つ職員が忙しそうに書類を整理している。", 1)
    CASE QUEST_59_宿屋
        CALL HO_PRINT_LOG("暖かなスープの香りが宿屋から流れてくる……", 1)
    CASE QUEST_59_港前広場
        CALL HO_PRINT_LOG("潮風が香る中、商人たちは威勢のいい声で品物を売り込んでいる。", 1)
    CASE QUEST_59_ギルドホール
        {
            LOGTEXT = 壁に貼られた地図や航路図を指し示しながら、商人たちは議論を交わしている……
            /談話室では、商人たちが小さなテーブルを囲んで熱心に商談を交わしている……
            /ギルドホールの一角に設置された巨大な掲示板には、最新の交易情報や依頼が貼り出されている
        }
        SIF HO_SEASON() == HO_季節_冬
            LOGTEXT += "/ギルドホールの内部には大きな暖炉が設置され、薪がパチパチと音を立てて燃えている/"
        CALL HO_PRINT_LOG(@"%SPLIT_RAND(@"%LOGTEXT%")%", 1)
    CASE QUEST_59_商店街
        CALL HO_PRINT_LOG("海風が吹き抜ける大通りには、活気ある町民たちの声が響いている。", 1)
    CASE QUEST_59_船着場
        CALL HO_PRINT_LOG("海風に吹かれた漁師たちが、網を抱えながら大通りを進んでいる。", 1)
    CASE QUEST_59_造船地区
        CALL HO_PRINT_LOG("港の鐘が鳴り響く中、次の仕事へ向かう人々の、忙しない足音が辺りに響く……", 1)
    CASE QUEST_59_居住区
        CALL HO_PRINT_LOG("子どもたちが雪の中で笑い声を上げながら走り回っている……", 1)
    CASE QUEST_59_猟師の小屋
        IF (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
            CALL HO_PRINT_LOG("主を失った小屋には蜘蛛の巣がかかり、外壁は微かに朽ち始めている……", 1)
        ELSE
            SELECTCASE 猟師の小屋_利用設備
                CASE QUEST_59_猟師の小屋_寝室
                    IF MAP_HAS(ROOM_EFFECT_MAP, "むせ返るような精臭") > 0
                        CALL HO_PRINT_LOG("清潔だったリネンは大量の精液で汚され、むせ返るような精臭を寝室に充満させている", 1)
                    ELSE
                        CALL HO_PRINT_LOG("ベッドには清潔なリネンが丁寧に敷かれている。素朴だが、どこか安心感を与える空間だ", 1)
                    ENDIF
                CASE QUEST_59_猟師の小屋_リビング
                    CALL HO_PRINT_LOG("質素な木製のテーブルと、数脚の椅子が据えられ、食器棚にはマグと皿が整然と並んでいる", 1)
                    SIF HO_SEASON() == HO_季節_冬
                        CALL HO_PRINT_LOG("暖炉の傍にはハーブや干し肉が掛けられ、薪の弾ける音が時折聞こえる……", 1)
                CASEELSE
                    CALL HO_PRINT_LOG("整理整頓された室内には、手入れの行き届いた狩猟道具が並んでいる", 1)
            ENDSELECT
        ENDIF
    CASEELSE
        SELECTCASE HO_SEASON()
            CASE HO_季節_春
                CALL HO_PRINT_LOG("長い冬の終わりとともに、港には新たな航海の準備をする船乗りたちが集っている", 1)
            CASE HO_季節_夏
                CALL HO_PRINT_LOG("短い夏の間も、港町は涼やかな風と共に観光客で賑わい、市場は新鮮な海の幸で賑わっている", 1)
            CASE HO_季節_秋
                CALL HO_PRINT_LOG("紅葉が街を彩る中、冬に備える人々の姿が見られる……", 1)
            CASE HO_季節_冬
                IF HO_OCLOCK() < 2000
                    CALL HO_PRINT_LOG("厳しい寒さの中でも港は賑わいを見せ、往来の人々は活気に満ちている……", 1)
                ELSE
                    CALL HO_PRINT_LOG("雪景色の中での港の灯りが、幻想的な風景を作り出している……", 1)
                ENDIF
        ENDSELECT
ENDSELECT

;-------------------------------------------------
;EV1 会話系イベント　門番
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_1
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "門番"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_1
IF HO_SEASON()==HO_季節_冬
    PRINTDATAW
        DATAFORM 「北風が冷たいだろう？　町に入れば暖かい炉と新鮮な魚が待ってるぜ」
        DATAFORM 「北の海は荒れることが多いが、それでもこの港町には活気が絶えないんだ。」
        DATAFORM 「潮の香りと寒さは気にならなくなるもんだ。この町で生きるなら慣れるしかないからな」
    ENDDATA
ELSE
    PRINTDATAW
        DATAFORM 「船乗りが酔っ払って喧嘩するのはいつものことだが、お前は面倒事を起こしてくれるなよ？」
        DATAFORM 「ここは北の港町、リスノイだ。面倒事を起こさなければ歓迎するぞ」
        DATAFORM 「潮の香りと寒さは気にならなくなるもんだ。この町で生きるなら慣れるしかないからな」
    ENDDATA
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV1 会話系イベント　地図を眺める冒険者
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_2
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "地図を眺める冒険者"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_2
PRINTFORML 「おや？あんたも冒険者かい？」
PRINTFORML 「クエストを受けたいなら、ギルドホールに行くといい」
PRINTFORMW 「場所はえーと、港前広場の近くにある建物のようだな……」
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV11 会話系イベント　受付係
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_11
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "受付係"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_11
IF HO_SEASON()==HO_季節_冬
    PRINTDATAW
        DATAFORM 「ようこそリスノイへ。何かお困りですか？船の許可証や商取引の登録なら、ここで手続きできますよ。」
        DATAFORM 「港町に初めて来た方には、この地図がおすすめです。観光名所も載っていますから、きっと役に立つはずです」
        DATAFORM 「今の時期は市場が賑やかですよ。新鮮な魚や果物が入荷したばかりですので、ぜひ立ち寄ってみてくださいね」
        DATAFORM 「今日の風は冷たいですね。寒くないですか？港町の風は時々骨まで冷えることがありますから、ご注意を」
        DATAFORM 「冒険者の方ですか？クエストを受けたいのであれば、港前広場にあるギルドホールへお越しください」
    ENDDATA
ELSE
    PRINTDATAW
        DATAFORM 「ようこそリスノイへ。何かお困りですか？船の許可証や商取引の登録なら、ここで手続きできますよ。」
        DATAFORM 「港町に初めて来た方には、この地図がおすすめです。観光名所も載っていますから、きっと役に立つはずです」
        DATAFORM 「今の時期は市場が賑やかですよ。新鮮な魚や果物が入荷したばかりですので、ぜひ立ち寄ってみてくださいね」
        DATAFORM 「冒険者の方ですか？クエストを受けたいのであれば、港前広場にあるギルドホールへお越しください」
    ENDDATA
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV20 宿屋　部屋を借りる
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_20
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "宿屋-部屋を借りる"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:CHESS-ROOK]"

@QST_QUEST_59_EVENT_20
PRINTFORML いらっしゃいませ。宿泊代金は一泊1,500ディナリです。いかがいたしますか？
PRINTL
CALL ASK_YN("部屋を借りる", "やめておく")
PRINTL
IF RESULT
    PRINTFORMW やめておこう……
    RETURN
ELSE
    IF MONEY < 1500
        PRINTFORMW お金が足りないようだ……
        RETURN
    ENDIF
ENDIF
PRINTFORMW 確かに頂戴いたしました。ご利用ありがとうございます。
CALL PRINT_NOTICE("店主から客室の鍵を受け取った")
CALL QST_CHANGE_ITEM("MONEY,-1500,")
CALL QST_ACTIVATE_EVENT(21)
CALL QST_SET_FLAGMAP("客室の鍵", "入手済")
CALL QST_DEACTIVATE_THIS_EVENT()
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV21 宿屋　部屋に入る
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_21
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "宿屋-客室に入る"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
;初期状態をイベント非活性に
;EVENT12で客室を借りると有効化される
RESULTS:3 '= "[EVENT_STATE:DEACTIVE][EVENT_ICON:CHESS-ROOK]"

@QST_QUEST_59_EVENT_21
#DIM DYNAMIC EVENT_FLAG
#DIM DYNAMIC CHARA_ID

CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

IF !EVENT_FLAG
    PRINTFORMW %QST_LEADER_NAME()%は客室の鍵を開けた……
    CALL QST_SET_EVENT_SLOT_NAME(, @"客室を出る")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 1)
    ;このイベントIDのイベント以外実行不可に
    QST_イベント選択制限 = QST_NOWEV
    ;1=隣接エリアのみ移動可,2=エリア移動不可
    FLAG:移動制限フラグ = 2
    ;ウフフ系コマンドの実行を許可
    FLAG:クエスト_ウフフ許可 = 1
    ;擬似的に設備:ベッド(ID=8)を使っている状態にする
    TFLAG:クエスト_ダミー設備ID = 8
ELSE
    PRINTFORMW %QST_LEADER_NAME()%は客室を立ち去った……
    CALL QST_SET_EVENT_SLOT_NAME(, @"客室に入る")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 0)
    QST_イベント選択制限 = -1
    FLAG:移動制限フラグ = 0
    FLAG:クエスト_ウフフ許可 = 0
    TFLAG:クエスト_ダミー設備ID = 0
    CALL QST_REDRESSALL
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV40 港前広場　屋台
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_40
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "屋台"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:SHOP]"

@QST_QUEST_59_EVENT_40
#DIM CONST EVENT_ID = 14
#DIM DYNAMIC TARGET_ID
#DIM DYNAMIC PARTY_COUNT
#DIM DYNAMIC 食事代_ディナリ = 200

PARTY_COUNT = LIST_COUNT(_LIST_QST_PARTY)
食事代_ディナリ *= PARTY_COUNT

SELECTCASE HO_OCLOCK()
    CASE 800 TO 1000
        IF QST_GET_FLAGMAP("食事状態") == "朝食済"
            PRINTFORMW 今は満腹だ……
            RETURN
        ELSE
            PRINTFORML %TOSTR(食事代_ディナリ)%ディナリで軽い食事をとることができるようだ
            PRINTL
            CALL ASK_YN("食事にする", "やめておく")
            PRINTL
            IF !RESULT
                IF MONEY < 食事代_ディナリ
                    PRINTFORMW %ANAME(QST_RANDCHARA())%は財布の中身を見て肩を落とした…
                    RETURN
                ELSE
                    CALL QST_SET_FLAGMAP("食事状態", "朝食済")
                ENDIF
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF

    CASE 1100 TO 1600
        IF QST_GET_FLAGMAP("食事状態") == "昼食済"
            PRINTFORMW 今は満腹だ……
            RETURN
        ELSE
            PRINTFORML %TOSTR(食事代_ディナリ)%ディナリで軽い食事をとることができるようだ
            PRINTL
            CALL ASK_YN("食事にする", "やめておく")
            PRINTL
            IF !RESULT
                IF MONEY < 食事代_ディナリ
                    PRINTFORMW %ANAME(QST_RANDCHARA())%は財布の中身を見て肩を落とした…
                    RETURN
                ELSE
                    CALL QST_SET_FLAGMAP("食事状態", "昼食済")
                ENDIF
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF

    CASE 1830 TO 2700
        IF QST_GET_FLAGMAP("食事状態") == "夕食済"
            PRINTFORMW 食べすぎても良くないだろう…
            RETURN
        ELSE
            PRINTFORML %TOSTR(食事代_ディナリ)%ディナリで軽い食事をとることができるようだ
            PRINTL
            CALL ASK_YN("食事にする", "やめておく")
            PRINTL
            IF !RESULT
                IF MONEY < 500
                    PRINTFORMW %ANAME(QST_RANDCHARA())%は財布の中身を見て肩を落とした…
                    RETURN
                ELSE
                    CALL QST_SET_FLAGMAP("食事状態", "夕食済")
                ENDIF
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF
    CASEELSE
        PRINTFORMW 準備中のようだ……
        RETURN
ENDSELECT

CALL FL_PLAYSE("Put_0.mp3")
PRINTFORMW %ANAME(QST_RANDCHARA())%が見つけてきた、%SPLIT_RAND("リスノイ風漁師飯/北方漁師の船場汁/港街のホタテグラタン/北海イカの串焼き/北海タラのクラブサンド/ノルディアン・シチュー",1)%の屋台で食事をすることになった…
CALL COLOR_PRINTW(@"%TOSTR(食事代_ディナリ)%ディナリを支払った", カラー_注意)
MONEY -= 食事代_ディナリ
FOR LOCAL, 0, QST_PARTYNUM
    TARGET_ID = TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))
    CALL QST_CHANGE_HP(TARGET_ID, 2500)
NEXT
PRINTL
PRINTFORMW ……食事を楽しんだことでお腹も心も満たされ、体力が回復した！
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV41 商店街　露店
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_41
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "露店"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:SHOP]"

@QST_QUEST_59_EVENT_41
CALL HO_SHOP_MENU("QUEST_59_露店", "露店", "QUEST_59_DIC_SHOP_STOCK_露店")

;-------------------------------------------------
;ショップの定義
;関数名は@HO_SHOP_MANAGE_SHOP_{ショップ名称}で定義
;【メモ】
;在庫データをセーブするために専用の広域変数を確保している。
;在庫をセーブに保持する必要がないならDICS_SHOP_STOCK:nに直接販売したいアイテムの情報を書き込めば良い
;-------------------------------------------------
@HO_SHOP_MANAGE_SHOP_QUEST_59_露店(DICS_SHOP_STOCK)
#DIMS REF DICS_SHOP_STOCK
#DIM DYNAMIC ITEM_ID
#DIM DYNAMIC SHOP_STOCK
#DIM DYNAMIC PRICE
#DIM DYNAMIC PRICE_RATE

PRICE_RATE = 250

IF QUEST_59_DIC_SHOP_STOCK_露店:0 == ""
    ITEM_ID = ITEM_木材
    SHOP_STOCK = RAND(10, 20)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:0 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:1 == ""
    ITEM_ID = ITEM_石材
    SHOP_STOCK = RAND(10, 20)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:1 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:2 == ""
    ITEM_ID = ITEM_動物の革
    SHOP_STOCK = RAND(5, 15)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:2 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:3 == ""
    ITEM_ID = ITEM_石炭
    SHOP_STOCK = RAND(4, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:3 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:4 == ""
    ITEM_ID = ITEM_鉄鉱石
    SHOP_STOCK = RAND(4, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:4 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:5 == ""
    ITEM_ID = ITEM_硫黄
    SHOP_STOCK = RAND(4, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    DICS_SHOP_STOCK:5 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:6 == ""
    ITEM_ID = ITEM_銀鉱石
    SHOP_STOCK = RAND(3, 5)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    DICS_SHOP_STOCK:6 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_露店:7 == ""
    ITEM_ID = ITEM_建築資材
    SHOP_STOCK = RAND(3, 5)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_露店:7 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

ARRAYCOPY "QUEST_59_DIC_SHOP_STOCK_露店", "DICS_SHOP_STOCK"

;-------------------------------------------------
;EV50 掲示板
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_50
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "掲示板"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_50
#DIM DYNAMIC 再描画行数
#DIM DYNAMIC QST59_QUESTFLG,10
#DIMS DYNAMIC QST59_QUESTNAME,10

PRINTFORML カウンターの横には告知板があり、船乗り向けの募集の他に冒険者向けの依頼もいくつか掲示しているようだ
PRINTFORMW 興味がある案件があれば取り掛かってみてもいいだろう……
SETCOLOR カラー_注意
PRINTFORMW 簡単な依頼をこの場で受注できるが、クエスト後には補給・治療のため一度拠点に帰還する必要がある
RESETCOLOR
PRINTL

再描画行数 = LINECOUNT
$QUEST_59_EVENT_50_QSTSELECT
;フラグ取得
VARI LOCAL
FOR LOCAL, 0, 10
    TRYCCALLFORM QST_QUEST_59_EVENT_{250+LOCAL}_REGISTRATION
        DEBUGPRINTFORML {250+LOCAL}：{RESULT}
        ;登録不可ならスキップ
        SIF RESULT == 0
            CONTINUE
        ;受注可能かを取得
        TRYCALLFORM QST_QUEST_59_EVENT_{250+LOCAL}_QSTAVAILABLE
        QST59_QUESTFLG:LOCAL = RESULT
        ;クエスト名と概要を取得
        TRYCALLFORMF QST_QUEST_59_EVENT_{250+LOCAL}_SUMMARY
        QST59_QUESTNAME:LOCAL = %RESULTS%
    CATCH
        ;存在しないクエストならスキップ
        CONTINUE
    ENDCATCH
NEXT

;選択肢表示
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇受注可能なクエスト◇@/C@", 1)
CALL SINGLE_DRAWLINE
{
    CALL ASK_MULTI_JUDGE(
        @"%QST59_QUESTNAME:0%", QST59_QUESTFLG:0
        ,@"%QST59_QUESTNAME:1%", QST59_QUESTFLG:1
        ,@"%QST59_QUESTNAME:2%", QST59_QUESTFLG:2
        ,@"%QST59_QUESTNAME:3%", QST59_QUESTFLG:3
        ,@"%QST59_QUESTNAME:4%", QST59_QUESTFLG:4
        ,@"%QST59_QUESTNAME:5%", QST59_QUESTFLG:5
        ,@"%QST59_QUESTNAME:6%", QST59_QUESTFLG:6
        ,@"%QST59_QUESTNAME:7%", QST59_QUESTFLG:7
        ,@"%QST59_QUESTNAME:8%", QST59_QUESTFLG:8
        ,@"%QST59_QUESTNAME:9%", QST59_QUESTFLG:9
        , "やめておく", 1
        )
}

;クエスト開始
TRYCALLFORM QST_QUEST_59_EVENT_{RESULT+250}
IF RESULT == -1
    CLEARLINE 1
    CLEARLINE LINECOUNT - 再描画行数
	GOTO QUEST_59_EVENT_50_QSTSELECT
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV51 会話系イベント　雑談する商人達
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_51
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "雑談する商人達"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_51
SELECTCASE RAND:3
    CASE 0
        IF QST_SV_QUEST_FLAG:52 == 0
            PRINTFORML 「聞いたか？東方へ向かう交易路に悪霊が出たらしい」
            PRINTFORMW 「ああ、知っている。こちらの知り合いの商隊も手酷い目に遭わされたよ」
            PRINTFORMW 「当面の交易ルートは海路頼みになりそうだな……」
        ELSE
            PRINTFORML 「聞いたか？東方へ向かう交易路に居座っていた悪霊が討伐されたらしいぞ」
            PRINTFORMW 「本当か！　せっかく広げた海路のシェアだったが、今後は厳しくなりそうだな……」
        ENDIF
    CASE 1
        PRINTFORML 「最近、近くの森で魔物が増えているらしい。」
        PRINTFORML 「それは困ったな。また交易路の安全が脅かされたら、たまったもんじゃないぞ」
        PRINTFORMW 「冒険者に依頼を出すよう、ギルドに伝えておくか……」
    CASEELSE
        IF HO_SEASON()==HO_季節_冬
            PRINTFORML 「先週の雪はひどかったな。どこもかしこも雪で埋もれて大変だったよ」
            PRINTFORMW 「ああ、でもそのおかげで除雪道具や薪が飛ぶように売れたよ」
        ELSE
            PRINTFORML 「次の商隊の出発はいつだ？」
            PRINTFORML 「明後日の予定です。物資の準備は整っています」
            PRINTFORMW 「よしわかった。いつも通り安全最優先で行こう」
        ENDIF
ENDSELECT
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV60 商店街　雑貨屋
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_60
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "雑貨屋"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:SHOP]"

@QST_QUEST_59_EVENT_60
CALL HO_SHOP_MENU("QUEST_59_雑貨屋", "雑貨屋", "QUEST_59_DIC_SHOP_STOCK_雑貨屋")

;-------------------------------------------------
;ショップの定義
;関数名は@HO_SHOP_MANAGE_SHOP_{ショップ名称}で定義
;【メモ】
;在庫データをセーブするために専用の広域変数を確保している。
;在庫をセーブに保持する必要がないならDICS_SHOP_STOCK:nに直接販売したいアイテムの情報を書き込めば良い
;-------------------------------------------------
@HO_SHOP_MANAGE_SHOP_QUEST_59_雑貨屋(DICS_SHOP_STOCK)
#DIMS REF DICS_SHOP_STOCK
#DIM DYNAMIC ITEM_ID
#DIM DYNAMIC SHOP_STOCK
#DIM DYNAMIC PRICE
#DIM DYNAMIC PRICE_RATE

PRICE_RATE = 300

IF QUEST_59_DIC_SHOP_STOCK_雑貨屋:0 == ""
    ITEM_ID = ITEM_ポーション
    SHOP_STOCK = RAND(5, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_雑貨屋:0 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_雑貨屋:1 == ""
    ITEM_ID = ITEM_縄
    SHOP_STOCK = RAND(2, 4)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    DICS_SHOP_STOCK:1 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_雑貨屋:2 == ""
    SHOP_STOCK = RAND(3, 6)
    {
        QUEST_59_DIC_SHOP_STOCK_雑貨屋:2 '= @"
            [WEAPON_ID:1][EQUIP_TYPE:0][WEAPON_NAME:鉄のナイフ]
            [WEAPON_RANK:0][MATERIAL:{WPN_材質_鉄}][WPN_STATUS:WPN_攻撃力, 100]
            [ITEM_PRICE:{25*PRICE_RATE}][SHOP_STOCK:{SHOP_STOCK}]"
    }
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_雑貨屋:3 == ""
    SHOP_STOCK = RAND(2, 4)
    {
        DICS_SHOP_STOCK:3 '= @"
            [WEAPON_ID:2][EQUIP_TYPE:0][WEAPON_NAME:カットラス]
            [WEAPON_RANK:0][MATERIAL:{WPN_材質_鉄}]
            [ITEM_PRICE:{30*PRICE_RATE}][SHOP_STOCK:{SHOP_STOCK}]"
    }
ENDIF
ARRAYCOPY "QUEST_59_DIC_SHOP_STOCK_雑貨屋", "DICS_SHOP_STOCK"

;-------------------------------------------------
;EV61 商店街　食料品店
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_61
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "食料品店"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:SHOP]"

@QST_QUEST_59_EVENT_61
CALL HO_SHOP_MENU("QUEST_59_食料品店", "食料品店", "QUEST_59_DIC_SHOP_STOCK_食料品店")

;-------------------------------------------------
;ショップの定義
;関数名は@HO_SHOP_MANAGE_SHOP_{ショップ名称}で定義
;【メモ】
;在庫データをセーブするために専用の広域変数を確保している。
;在庫をセーブに保持する必要がないならDICS_SHOP_STOCK:nに直接販売したいアイテムの情報を書き込めば良い
;-------------------------------------------------
@HO_SHOP_MANAGE_SHOP_QUEST_59_食料品店(DICS_SHOP_STOCK)
#DIMS REF DICS_SHOP_STOCK
#DIM DYNAMIC ITEM_ID
#DIM DYNAMIC SHOP_STOCK
#DIM DYNAMIC PRICE
#DIM DYNAMIC PRICE_RATE

PRICE_RATE = 300

IF QUEST_59_DIC_SHOP_STOCK_食料品店:0 == ""
    ITEM_ID = ITEM_動物の肉
    SHOP_STOCK = RAND(5, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_食料品店:0 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_食料品店:1 == ""
    ITEM_ID = ITEM_乳
    SHOP_STOCK = RAND(5, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_食料品店:1 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_食料品店:2 == ""
    ITEM_ID = ITEM_小麦
    SHOP_STOCK = RAND(5, 10)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    QUEST_59_DIC_SHOP_STOCK_食料品店:2 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

IF QUEST_59_DIC_SHOP_STOCK_食料品店:3 == ""
    ITEM_ID = ITEM_パン
    SHOP_STOCK = RAND(4, 8)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    DICS_SHOP_STOCK:3 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF
IF QUEST_59_DIC_SHOP_STOCK_食料品店:4 == ""
    ITEM_ID = ITEM_サンドウィッチ
    SHOP_STOCK = RAND(3, 6)
    CALL GET_ITEM_INFO(ITEM_ID, ITEM_PRICE)
    PRICE = FTIMES(RESULT, PRICE_RATE)
    DICS_SHOP_STOCK:4 '= @"[ITEM_ID:{ITEM_ID}][ITEM_PRICE:{PRICE}][SHOP_STOCK:{SHOP_STOCK}]"
ENDIF

ARRAYCOPY "QUEST_59_DIC_SHOP_STOCK_食料品店", "DICS_SHOP_STOCK"

;-------------------------------------------------
;EV62 商店街　アクセサリ屋
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_62
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "アクセサリ屋"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:SHOP]"

@QST_QUEST_59_EVENT_62
CALL HO_SHOP_MENU("QUEST_59_アクセサリ屋", "アクセサリ屋", "QUEST_59_DIC_SHOP_STOCK_アクセサリ屋")

;-------------------------------------------------
;ショップの定義
;関数名は@HO_SHOP_MANAGE_SHOP_{ショップ名称}で定義
;【メモ】
;在庫データをセーブするために専用の広域変数を確保している。
;在庫をセーブに保持する必要がないならDICS_SHOP_STOCK:nに直接販売したいアイテムの情報を書き込めば良い
;-------------------------------------------------
@HO_SHOP_MANAGE_SHOP_QUEST_59_アクセサリ屋(DICS_SHOP_STOCK)
#DIMS REF DICS_SHOP_STOCK

IF QUEST_59_DIC_SHOP_STOCK_アクセサリ屋:0 == ""
    {
        QUEST_59_DIC_SHOP_STOCK_アクセサリ屋:0 '= @""
            + @"[WEAPON_ID:2][EQUIP_TYPE:1][WEAPON_NAME:海図のメダリオン]"
            + @"[WEAPON_RANK:0][MATERIAL:{WPN_材質_鉄}]"
            + @"[PASSIVE_WEAPON_SKILL:WPN_BOOST_REGIST_BLIND,2,WPN_BOOST_CRT,1,]"
            + @"[ITEM_PRICE:30000][SHOP_STOCK:2]"
    }
    {
        QUEST_59_DIC_SHOP_STOCK_アクセサリ屋:1 '= @""
            + @"[WEAPON_ID:6][EQUIP_TYPE:1][WEAPON_NAME:船乗りの指輪]"
            + @"[WEAPON_RANK:0][MATERIAL:{WPN_材質_鉄}]"
            + @"[PASSIVE_WEAPON_SKILL:WPN_TRAMPLE,1,WPN_ATK_BONUS,1,]"
            + @"[ITEM_PRICE:30000][SHOP_STOCK:2]"
    }
    {
        QUEST_59_DIC_SHOP_STOCK_アクセサリ屋:2 '= @""
            + @"[WEAPON_ID:3][EQUIP_TYPE:1][WEAPON_NAME:セクスタント]"
            + @"[WEAPON_RANK:0][MATERIAL:{WPN_材質_銅}]"
            + @"[PASSIVE_WEAPON_SKILL:WPN_BOOST_CRT,1,WPN_BOOST_CRT_DAMAGE,1,]"
            + @"[ITEM_PRICE:40000][SHOP_STOCK:1]"
    }
    {
        QUEST_59_DIC_SHOP_STOCK_アクセサリ屋:3 '= @""
            + @"[WEAPON_ID:3][EQUIP_TYPE:1][WEAPON_NAME:鯨骨のネックレス]"
            + @"[WEAPON_RANK:0][MATERIAL:{WPN_材質_その他}]"
            + @"[PASSIVE_WEAPON_SKILL:WPN_ADD_SONG_AT_START,1,WPN_MAG_DEFENCE_UP,1,]"
            + @"[ITEM_PRICE:60000][SHOP_STOCK:1]"
    }
ENDIF
ARRAYCOPY "QUEST_59_DIC_SHOP_STOCK_アクセサリ屋", "DICS_SHOP_STOCK"

;-------------------------------------------------
;EV80 船着場　雑談する船乗りたち
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_80
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "雑談する船乗り達"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[[EVENT_ICON:TALK]]"

@QST_QUEST_59_EVENT_80
IF !(DAY % 5)
    PRINTFORML 「どうやら明日の天気は荒れるらしい。出航は見合わせた方が良さそうだな」
    PRINTFORMW 「ああ、そうだな……。はぁ……船長の機嫌も明日の天気みたいにならなきゃいいが……」
ELSE
    PRINTFORML 「次の航海はいつ出発だ？」
    PRINTFORMW 「明後日の朝だ。荷物の積み込みを急がないとな」
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV90 官庁街　案内所
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_90
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "案内所"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_59_EVENT_90
#DIM DYNAMIC CLEAR_LINE_NUM
#DIM DYNAMIC CHARA_ID
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

PRINTL
PRINTFORMW この場所では、この街について書籍本が読めるようだ。どれを読もうか……
PRINTL

$ASK
CLEAR_LINE_NUM = LINECOUNT
CALL ASK_MULTI_JUDGE("お手柄！猟師の少女、ゴブリンのリーダー討伐に成功", 1, "リスノイの歴史について", 1, "リスノイの交易について", 1, "やめておく", 1)
SELECTCASE RESULT
    CASE 0
        PRINTFORMW どうやらこれは、過去の新聞記事のようだ……
        PRINTL
        SETCOLOR カラー_ライトグリーン
        PRINTFORMW 【お手柄！猟師の少女、ゴブリンのリーダー討伐に成功】
        PRINTFORML 長年、地域の安全を脅かしていたゴブリンのリーダーがついに討伐された。
        PRINTFORMW この偉業を成し遂げたのは、自警団との連携のもと活躍した、一人の若き猟師の少女である。
        PRINTFORML
        PRINTFORML 「彼女の卓越した狙撃技術と、猟師としての知見がなければ、この結果は得られなかっただろう」と、自警団の隊長は感謝と賛辞を惜しまない。
        PRINTFORMW また、多くの市民からも称賛の声が寄せられており、彼女の名前と功績は街中で語り草となっている。
        PRINTFORML
        CALL COLOR_PRINTW("そして、インタビューに対し当の本人は", カラー_ライトグリーン, "「自分の成すべきことをしただけです」", CFLAG:CHARA_ID:口上カラーコード, "と静かに答えた。", カラー_ライトグリーン)
        RESETCOLOR
        PRINTL
    CASE 1
        PRINTL
        SETCOLOR カラー_ライトグリーン
        PRINTFORML リスノイは広大な森を切り拓いて生まれた港街である。
        PRINTFORML 一年の殆どが雪で覆われる厳しい土地柄であるが、近くを流れる暖流の影響で海面が凍結することは無く
        PRINTFORMW 冬季でも貿易船が出入りできる重要な交易拠点として、今日に至るまで機能している。
        PRINTL
        PRINTFORML かつては北部の山から石炭が産出し、炭鉱街としての側面も持っていたが
        PRINTFORMW 産出量の低下により閉山し、現在ではゴブリン等の魔物の住処と化している。
        RESETCOLOR
        PRINTL
    CASE 2
        PRINTL
        SETCOLOR カラー_ライトグリーン
        PRINTFORML 寒さと雪が支配するこの土地において、大規模な輸送手段の確立は大きな課題であった。
        PRINTFORML 不凍港であるリスノイは、一年を通して海路による大規模な交易路を実現し
        PRINTFORMW 近隣の工業地帯への原材料供給、そして連合国家への工業製品の輸出を担っている。
        PRINTL
        PRINTFORML 北方列島の中でも特に北側に位置するリスノイは、その立地条件から
        PRINTFORMW 他勢力へ向けた輸出入は殆ど行われておらず、コモンウェルス内での交易が主となっている。
        RESETCOLOR
        PRINTL
    CASEELSE
        RETURN
ENDSELECT
CLEARLINE LINECOUNT - CLEAR_LINE_NUM
GOTO ASK

;-------------------------------------------------
;EV100 会話系イベント　作業をする船大工達
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_100
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "作業をする船大工達"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_100
SELECTCASE RAND:3
    CASE 0
        PRINTFORML 「この船体の補強は完了したか？」
        PRINTFORMW 「ああ、昨日終わらせた。次は甲板の修理に取り掛かるぞ」
    CASE 1
        PRINTFORML 「次の作業に必要な釘が足りないようだ。追加の発注をお願いできるか？」
        PRINTFORMW 「了解した。すぐに手配するから、他の作業を進めていてくれ」
    CASEELSE
        IF HO_SEASON()==HO_季節_冬
            PRINTFORML 「今日は雪が強くなりそうだな。外での作業は注意が必要だ」
            PRINTFORMW 「そうだな。足元に気をつけて、安全第一で行こう」
        ELSE
            PRINTFORML 「先日の嵐で漁船が何隻か損傷したらしい。修理の依頼が増えそうだな」
            PRINTFORMW 「そうか……しばらくは忙しくなりそうだな」
        ENDIF
ENDSELECT
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV120 会話系イベント　酒を酌み交わす漁師達
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_120
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "酒を酌み交わす漁師達"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_120
SELECTCASE DAY % 3
    CASE 0
        PRINTFORML 「今日の漁は大漁だったな！しこたま魚を獲った後の酒はやっぱり最高だ！」
        PRINTFORMW 「ああ……まったくだ！！」
    CASEELSE
        PRINTFORML 「今日の漁はどうだった？」
        PRINTFORMW 「ああ、まるでダメだった」
        PRINTFORMW 「だからこうして、嫌な気分を酒で洗い流してるってわけだ」
ENDSELECT
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV121 会話系イベント　呼び込みの声
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_121
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "呼び込みの声"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_121
PRINTDATAW
    DATAFORM 「いらっしゃい！熱々の焼き魚はいかがですか？今朝獲れたばかりですよ」
    DATAFORM 「%S_R("お兄さん/旦那さん",1)%、寒い夜には温かいスープと美人の笑顔が一番だよ。寄っていかないかい？」
    DATAFORM 「そこの%S_R("お兄さん/旦那さん/お嬢さん/お姉さん",1)%どうだい？　暖かい部屋と美味しい料理が待ってるよ」
ENDDATA
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV141 会話系イベント　門番
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_141
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "門番"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:TALK]"

@QST_QUEST_59_EVENT_141
IF HO_SEASON()==HO_季節_冬
    PRINTDATAW
        DATAFORM 「北風が冷たいだろう？　町に入れば暖かい炉と新鮮な魚が待ってるぜ」
        DATAFORM 「北の海は荒れることが多いが、それでもこの港町には活気が絶えないんだ。」
        DATAFORM 「潮の香りと寒さは気にならなくなるもんだ。この町で生きるなら慣れるしかないからな」
        DATAFORM 「ここから先は通行止めだ、ゴブリンの残党がまだうろついているからな」
    ENDDATA
ELSE
    PRINTDATAW
        DATAFORM 「船乗りが酔っ払って喧嘩するのはいつものことだが、お前は面倒事を起こしてくれるなよ？」
        DATAFORM 「潮の香りと寒さは気にならなくなるもんだ。この町で生きるなら慣れるしかないからな」
        DATAFORM 「ここから先は通行止めだ、ゴブリンの残党がまだうろついているからな」
    ENDDATA
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV210 猟師の小屋　リビング
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_210
#DIM CONST EVENT_ID = 210
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "リビング"
;ゴブリン陥落済みであれば発生させない
SIF (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
    RETURN
;パーティにあなたがいないor加入イベント完了しているなら終了
CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
SIF (LIST_GET(_LIST_QST_PARTY, 0) != TOSTR(MASTER)) || (RESULT == 1)
    RETURN
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%
RESULTS:3 '= "[EVENT_ICON:CHESS-KNIGHT]"

@QST_QUEST_59_EVENT_210
#DIM CONST EVENT_ID = 210
#DIM DYNAMIC EVENT_FLAG
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC WEAPON_ID
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

IF CFLAG:CHARA_ID:所属 != 所属_プレイヤー
    PRINTFORMW %QST_LEADER_NAME()%が小屋を訪れると、そこには%CALLNAME:CHARA_ID%が居た。
    CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:180px][POS_X:0]",,1)
    CALL COLOR_PRINTW(@"「おや？%QST_LEADER_NAME(1)%さんじゃないですか。お久しぶりです」", CFLAG:CHARA_ID:口上カラーコード)
    CALL COLOR_PRINTW(@"「何かご用事ですか？」", CFLAG:CHARA_ID:口上カラーコード)
    PRINTL
    CALL ASK_MULTI_JUDGE("仲間に誘う", 1, "今はやめておく",1)

    SELECTCASE RESULT
        CASE 0
            CALL PRINT_TITLE(@"%CALLNAME:MASTER%と雪国の狩人", "イベント")
            PRINTFORMW %QST_LEADER_NAME(1)%は%CALLNAME:CHARA_ID%の勧誘を試みた。
            CALL COLOR_PRINTW("「私を仲間に、ですか。なるほど……」", CFLAG:CHARA_ID:口上カラーコード)
            CALL COLOR_PRINTW("「分かりました。いいですよ」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORMW 一瞬考え込む素振りを見せたものの、%CALLNAME:CHARA_ID%はあっさりと承諾した。
            PRINTL
            CALL COLOR_PRINTL("「あれ以降、ゴブリン達も静かになりましたし、貴方には助けてもらった恩がありますからね」", CFLAG:CHARA_ID:口上カラーコード)
            CALL COLOR_PRINTW("「療養期間を終えたばかりで本調子ではありませんが、私でよければ是非とも力を貸しましょう」", CFLAG:CHARA_ID:口上カラーコード)
            CALL COLOR_PRINTW(@"「という事で……これからよろしくお願いしますね。%QST_LEADER_NAME(1)%さん」", CFLAG:CHARA_ID:口上カラーコード)
            CALL COLOR_PRINTW("―― 猟師のオレーシャが仲間になった！", カラー_注意)
            CFLAG:CHARA_ID:所属 = 所属_プレイヤー

            ;無傷でゲスト救出済みなら好感度依存度ボーナスと、猟銃入手
            IF GETBIT(K28_フラグ管理, K28_フラグ_救出失敗) == 0
                CFLAG:CHARA_ID:好感度 = MAX(CFLAG:CHARA_ID:好感度, 300)
                CFLAG:CHARA_ID:依存度 = MAX(CFLAG:CHARA_ID:依存度, 50)

                ;武器:オレーシャの猟銃を入手
                {
                    CALL QST_GET_WEAPON(
                        6
                        ,"オレーシャの猟銃"
                        ,WPN_材質_鋼
                        ,0
                        ,""
                        ,"[WPN_HARDSHOT:1]"
                        ,WPN_装備種別_武器
                        ,0
                        )
                }
                WEAPON_ID = RESULT
                DT_CELL_SET "WEAPON_STOCK", WEAPON_ID, WPN_STATUS_NAME_ENG:WPN_行動力, 100, 1
                DT_CELL_SET "WEAPON_STOCK", WEAPON_ID, WPN_STATUS_NAME_ENG:WPN_敵視, 60, 1
                CALL EQUIP_WEAPON(CHARA_ID, WEAPON_ID)
            ENDIF

            ;レリック:トラバサミを入手
            {
                CALL QST_GET_WEAPON(
                    2
                    ,"トラバサミ"
                    ,WPN_材質_銅
                    ,0
                    ,""
                    ,"[WPN_BEARTRAP:1]"
                    ,WPN_装備種別_レリック
                    ,0
                    )
            }
            WEAPON_ID = RESULT
            CALL EQUIP_WEAPON(CHARA_ID, WEAPON_ID, 14)
            SETBIT K28_フラグ管理, K28_フラグ_正式加入
            EVENT_FLAG = 1
        CASEELSE
            PRINTFORMW %QST_LEADER_NAME()%は近況報告を交えながら、%CALLNAME:CHARA_ID%と雑談を交わした……
    ENDSELECT
ENDIF

;イベントが完了していれば消去
SIF EVENT_FLAG
    CALL QST_DEACTIVATE_THIS_EVENT()

CALL QST_SET_SV_EVENT_FLAG(EVENT_ID, EVENT_FLAG)

;-------------------------------------------------
;EV211 猟師の小屋　寝室
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_211
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "寝室"
;ゴブリン陥落済みであれば発生させない
SIF (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
    RETURN
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_59_EVENT_211
#DIM DYNAMIC EVENT_FLAG

;陥落済みオレーシャ不在なら入室不可
SIF !PARTY_CONTAINS("UC_オレーシャ") || !IS_FALLEN(NAME_TO_CHARA("UC_オレーシャ"))
    RETURN 0

CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

IF !EVENT_FLAG
    PRINTFORMW %QST_LEADER_NAME(1)%は寝室に足を運んだ……
    CALL QST_SET_EVENT_SLOT_NAME(, @"寝室を出る")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 1)
    ;このイベントIDのイベント以外実行不可に
    QST_イベント選択制限 = QST_NOWEV
    ;1=隣接エリアのみ移動可,2=エリア移動不可
    FLAG:移動制限フラグ = 2
    ;ウフフ系コマンドの実行を許可
    SIF (LIST_GET(_LIST_QST_PARTY, 0) == TOSTR(MASTER)) && LIST_COUNT(_LIST_QST_PARTY) <= 2
        FLAG:クエスト_ウフフ許可 = 1
    ;擬似的に設備:ベッド(ID=8)を使っている状態にする
    TFLAG:クエスト_ダミー設備ID = 8
ELSE
    PRINTFORMW %QST_LEADER_NAME(1)%は寝室を立ち去った……
    CALL QST_SET_EVENT_SLOT_NAME(, @"寝室")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 0)
    QST_イベント選択制限 = -1
    FLAG:移動制限フラグ = 0
    FLAG:クエスト_ウフフ許可 = 0
    TFLAG:クエスト_ダミー設備ID = 0
    CALL QST_REDRESSALL
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV212 猟師の小屋　キッチン
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_212
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "キッチン"
;ゴブリン陥落済みであれば発生させない
SIF (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
    RETURN
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_59_EVENT_212
#DIM DYNAMIC EVENT_FLAG
#DIM DYNAMIC TARGET_ID
#DIM DYNAMIC CHARA_ID
VARS UC_オレーシャ = "UC_オレーシャ"
VARS TEXT

;陥落済みオレーシャ不在なら入室不可
SIF !PARTY_CONTAINS("UC_オレーシャ") || !IS_FALLEN(NAME_TO_CHARA("UC_オレーシャ"))
    RETURN 0

CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")
PRINTL

SELECTCASE HO_OCLOCK()
    CASE 800 TO 1000
        IF QST_GET_FLAGMAP("食事状態") == "朝食済"
            RETURN
        ELSE
            PRINTFORMW %QST_LEADER_NAME(1)%が所在なさげに台所を眺めていると、%CALLNAME:CHARA_ID%が声をかけてきた。
            PRINTL
            CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:180px][POS_X:0]",,1)
            CALL COLOR_PRINTW("「……もしかしてお腹が空きました？　ありあわせのもので良ければ、私が何か作りますよ」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORML ……どうする？
            PRINTL
            CALL ASK_YN("いただきます", "やめておく")
            PRINTL
            IF !RESULT
                CALL QST_SET_FLAGMAP("食事状態", "朝食済")
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF

    CASE 1100 TO 1600
        IF QST_GET_FLAGMAP("食事状態") == "昼食済"
            RETURN
        ELSE
            PRINTFORMW %QST_LEADER_NAME(1)%が所在なさげに台所を眺めていると、%CALLNAME:CHARA_ID%が声をかけてきた。
            PRINTL
            CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:180px][POS_X:0]",,1)
            CALL COLOR_PRINTW("「……もしかしてお腹が空きました？　ありあわせのもので良ければ、私が何か作りますよ」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORML ……どうする？
            PRINTL
            CALL ASK_YN("いただきます", "やめておく")
            PRINTL
            IF !RESULT
                CALL QST_SET_FLAGMAP("食事状態", "昼食済")
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF

    CASE 1830 TO 2700
        IF QST_GET_FLAGMAP("食事状態") == "夕食済"
            RETURN
        ELSE
            PRINTFORMW %QST_LEADER_NAME(1)%が所在なさげに台所を眺めていると、%CALLNAME:CHARA_ID%が声をかけてきた。
            PRINTL
            CALL DRAW_PORTRAIT(CHARA_ID, "[感情:通常][サイズ:180px][POS_X:0]",,1)
            CALL COLOR_PRINTW("「……もしかしてお腹が空きました？　ありあわせのもので良ければ、私が何か作りますよ」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORML ……どうする？
            PRINTL
            CALL ASK_YN("いただきます", "やめておく")
            PRINTL
            IF !RESULT
                CALL QST_SET_FLAGMAP("食事状態", "夕食済")
            ELSE
                PRINTFORMW やめておこう…
                RETURN
            ENDIF
        ENDIF
    CASEELSE
        RETURN
ENDSELECT

CALL FL_PLAYSE("Put_0.mp3")
PRINTFORMW %CALLNAME:CHARA_ID%は%SPLIT_RAND("野菜と野ウサギのスープ/野鳥とハーブの包み焼き/イノシシと野草の即席鍋/リスの肉団子スープ",1)%を作ると、%QST_LEADER_NAME()%に振る舞った……
FOR LOCAL, 0, QST_PARTYNUM
    CALL QST_CHANGE_HP(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)), 2500)
    TCVAR:LOCAL:空腹度 = 0
NEXT
PRINTL
PRINTFORMW ……食事を楽しんだことでお腹も心も満たされ、体力が回復した！
PRINTL
CALL PRINT_ADD_EXP(CHARA_ID, "料理経験値", QST_PARTYNUM, 1)
CALL TRAIN_AUTO_ABLUP(CHARA_ID)
WAIT
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV213 猟師の小屋　浴室
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_213
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "浴室"
;ゴブリン陥落済みであれば発生させない
SIF (QST_SV_QUEST_FLAG:58 == QUEST_58_QSTFLG_クエストクリア)
    RETURN
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_59_EVENT_213
#DIM DYNAMIC EVENT_FLAG

;陥落済みオレーシャ不在なら入室不可
SIF !PARTY_CONTAINS("UC_オレーシャ") || !IS_FALLEN(NAME_TO_CHARA("UC_オレーシャ"))
    RETURN 0

CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

IF !EVENT_FLAG
    PRINTFORMW %QST_LEADER_NAME(1)%は浴室に足を運んだ……
    CALL QST_SET_EVENT_SLOT_NAME(, @"浴室を出る")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 1)
    ;このイベントIDのイベント以外実行不可に
    QST_イベント選択制限 = QST_NOWEV
    ;1=隣接エリアのみ移動可,2=エリア移動不可
    FLAG:移動制限フラグ = 2
    IF (LIST_GET(_LIST_QST_PARTY, 0) == TOSTR(MASTER)) && LIST_COUNT(_LIST_QST_PARTY) <= 2
        ;ウフフ系コマンドの実行を許可
        FLAG:クエスト_ウフフ許可 = 1
        ;擬似的に設備:642,2: ;大浴場(ID=8)を使っている状態にする
        TFLAG:クエスト_ダミー設備ID = 29
    ENDIF
ELSE
    PRINTFORMW %QST_LEADER_NAME(1)%は浴室を立ち去った……
    CALL QST_SET_EVENT_SLOT_NAME(, @"浴室")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 0)
    QST_イベント選択制限 = -1
    FLAG:移動制限フラグ = 0
    FLAG:クエスト_ウフフ許可 = 0
    TFLAG:クエスト_ダミー設備ID = 0
    CALL QST_REDRESSALL
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;-------------------------------------------------
;EV214 猟師の小屋　リビング(加入イベント後)
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_214
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "リビング"
;オレーシャ未加入なら発生させない
SIF CFLAG:NAME_TO_CHARA("UC_オレーシャ"):所属 != CFLAG:MASTER:所属
    RETURN 0
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_59_EVENT_214
#DIM DYNAMIC EVENT_FLAG

;陥落済みオレーシャ不在なら入室不可
SIF !PARTY_CONTAINS("UC_オレーシャ") || !IS_FALLEN(NAME_TO_CHARA("UC_オレーシャ"))
    RETURN 0

CALL QST_GET_EVENT_FLAG(QST_NOWEV)
EVENT_FLAG = RESULT

IF !EVENT_FLAG
    PRINTFORMW %QST_LEADER_NAME(1)%はリビングに足を運んだ……
    CALL QST_SET_EVENT_SLOT_NAME(, @"リビングを出る")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 1)
    ;このイベントIDのイベント以外実行不可に
    QST_イベント選択制限 = QST_NOWEV
    ;1=隣接エリアのみ移動可,2=エリア移動不可
    FLAG:移動制限フラグ = 2
    ;擬似的に設備:ティーテーブル(ID=19)を使っている状態にする
    TFLAG:クエスト_ダミー設備ID = 19
ELSE
    PRINTFORMW %QST_LEADER_NAME(1)%はリビングを立ち去った……
    CALL QST_SET_EVENT_SLOT_NAME(, @"リビング")
    CALL QST_SET_EVENT_FLAG(QST_NOWEV, 0)
    QST_イベント選択制限 = -1
    FLAG:移動制限フラグ = 0
    TFLAG:クエスト_ダミー設備ID = 0
ENDIF
;ログ更新
CALL QST_QUEST_59_EVENT_0_LOG

;---------------------------------------------------------------------------------------------------------------------------------------
;                                                   簡易クエスト（クエストID：250～259）
;---------------------------------------------------------------------------------------------------------------------------------------
;-------------------------------------------------
;EV250 簡易クエスト_浴場再建計画
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_250

;クエスト概要(クエスト選択時に表示)
@QST_QUEST_59_EVENT_250_SUMMARY
#FUNCTIONS
RESULTS = [単発]%QST_QUEST_59_EVENT_250_QSTNAME()%　※必須メンバー：%ANAME(MASTER)%
RETURNF RESULTS

;クエスト名
@QST_QUEST_59_EVENT_250_QSTNAME
#FUNCTIONS
RESULTS = 浴場再建計画
RETURNF RESULTS

;クエスト登録可否判定
@QST_QUEST_59_EVENT_250_REGISTRATION
CALL QST_GET_SV_EVENT_FLAG(250)
SIF RESULT == 0
    RETURN 1
RETURN 0

;クエスト実施可能判定
@QST_QUEST_59_EVENT_250_QSTAVAILABLE
SIF (LIST_GET(_LIST_QST_PARTY, 0) == TOSTR(MASTER))
    RETURN 1
RETURN 0

@QST_QUEST_59_EVENT_250
#DIM CONST イベントID = 250
#DIM CONST 設備ID = 32
#DIM CONST 木材目標値 = 20
#DIM DYNAMIC 木材累計値
#DIM DYNAMIC 木材入手量
#DIM DYNAMIC 報酬金 = 6000
#DIMS DYNAMIC 設備名
#DIM DYNAMIC CHARA_ID
CHARA_ID = NAME_TO_CHARA("UC_オレーシャ")

CALL HO_GET_MODULE_DATA(設備ID, "MODULE_NAME")
設備名 = %RESULTS%

CALL SINGLE_DRAWLINE
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇%QST_QUEST_59_EVENT_250_QSTNAME()%◇@/C@", 1)
PRINTFORML うちの大浴場だが、年季が入りすぎてだいぶガタがきちまっている。このままじゃ客も寄りつかねぇ。
PRINTFORML そこで、近くの森から新しい木材を調達してきてほしい。雪深い森だが、お前ら冒険者なら楽勝だろ？
PRINTFORML 報酬として{報酬金}ディナリを用意してある。興味がある奴は、ぜひ名乗り出てくれ。
PRINTFORML ――港町の大浴場管理人より
PRINTL
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇備考◇@/C@", 1)
CALLF TAG_PRINT(@"難易度：@C:{カラー_注意}@★★★★☆@/C@", 1)
CALL HO_GET_MODULE_DATA(設備ID, "MODULE_NAME")
PRINTFORML 報酬：{報酬金}ディナリ、設備[%設備名%]のクラフト解禁
PRINTFORML 推奨パーティ人数:6人　　　推奨平均戦闘値：50以上
PRINTFORML 必須メンバー：%ANAME(MASTER)%
SETCOLOR カラー_選択不可
PRINTFORML 「作業中に伐採音を聞きつけた魔物が襲ってくる事が予想される」
PRINTFORML 「伐採と連戦、両方をこなすための体力管理が重要になってくるだろう」
PRINTL
RESETCOLOR
CALL SINGLE_DRAWLINE
PRINTFORML …この依頼を受けようか？
PRINTL

;選択肢表示＆実施可否判定
CALL ASK_YN("このクエストにする", "他のクエストを探す")
SIF RESULT
    RETURN -1
;受注制限
CALL QST_QUEST_59_EVENT_250_QSTAVAILABLE
IF RESULT == 0
    CALL COLOR_PRINTW(@"クエスト受注時はパーティメンバーに@C:{カラー_注意}@%ANAME(MASTER)%@/C@を登録する必要があります。", 1)
    RETURN -1
ENDIF

CALL FL_STOPBGM()
PRINTFORMW %QST_LEADER_NAME()%は受付カウンターに足を運び、クエストを申請した……
PRINTFORMW ……
PRINTFORMW …
PRINTL
CALL FL_PLAYBGM("Nostalgic_2.ogg")
CALL PRINT_TITLE(@"%QST_QUEST_59_EVENT_250_QSTNAME()%", "イベント")

;伐採クエストメイン処理
CALL QST_QUEST_59_QST_LOGGING(1)

;リザルト
SELECTCASE RESULT
    CASE 1
        CALL FL_PLAYBGM("Nostalgic_2.ogg")
        PRINTFORMW 街に帰還した%QST_LEADER_NAME()%は、ギルドホールへ向かいクエストの完了を報告した……
        CALL COLOR_PRINTW(@"報酬として{報酬金}ディナリを得た", カラー_注意)
        CALL QST_CHANGE_ITEM("名誉点,20,")
        PRINTL
        CALL PRINT_TITLE("熱い出会い", "イベント")
        PRINTFORMW 報告を終えた%QST_LEADER_NAME()%がホール内で一息ついていると、いかつい老人が入ってきた。
        PRINTFORMW 彼がギルドスタッフと会話している様子を何気なく眺めていると、彼の鋭い眼光がこちらを捉える。
        PRINTL
        PRINTFORMW 「おお！お前さんはゴブリンどもから街を救ってくれた冒険者だな。ギルドの受付から聞かせてもらったぜ」
        PRINTFORMW 「いやぁ、あの時は世話になった。それと俺からの依頼もこなしてくれてありがとうな！」
        PRINTFORMW 彼は大きな手で%QST_LEADER_NAME(1)%の肩を叩くと豪快に笑った。そして懐から書類を取り出すと、こちらに差し出した。
        PRINTL
        PRINTFORMW 「これは"サウナ"っていう蒸し風呂の設計図でな、コイツはうちの浴場でも一二を争う人気の設備だ！」
        PRINTFORMW 「あの時の礼という事でコイツをお前さんに贈りたい。急拵えの礼ですまねぇが受け取ってくれ」
        PRINTFORML 思いがけない贈り物に感謝しつつも、%QST_LEADER_NAME(1)%は設計図を受け取る。
        PRINTFORMW それを見た彼は満足げに頷くと、力強い足取りでギルドホールを後にした……
        IF LIST_INDEXOF(_LIST_QST_PARTY, TOSTR(CHARA_ID)) >= 0
            PRINTL
            PRINTFORMW その一部始終を物陰から静かに眺めていた%CALLNAME:CHARA_ID%は、老人が立ち去ると興味ありげに設計図を覗き込んだ。
            PRINTL
            CALL DRAW_PORTRAIT(CHARA_ID, "[目:細目][眉:通常][口:笑い2][サイズ:180px][POS_X:0]",,1)
            CALL COLOR_PRINTW(@"「ふむふむ、サウナの設計図ですか……。素晴らしいものを頂けましたね、%QST_LEADER_NAME(1)%さん」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTL
            CALL COLOR_PRINTL("「サウナは良いですよ。蒸気と温熱効果により、老廃物の代謝や体の調子を整えてくれます」", CFLAG:CHARA_ID:口上カラーコード)
            CALL COLOR_PRINTW("「それだけなく、血流改善や肩こり腰痛など様々な症状にも効果があります。さらに……」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORMW ……
            PRINTFORMW …
            CALL COLOR_PRINTW("「……というわけで領地に戻ったら、可及的速やかに設置しましょう。もちろん私も手伝います」", CFLAG:CHARA_ID:口上カラーコード)
            PRINTFORMW %CALLNAME:CHARA_ID%から並々ならぬ熱意を感じながら、%QST_LEADER_NAME(1)%は帰路についた……
        ENDIF
        PRINTL
        CALL PRINT_NOTICE(@"設備[%設備名%]のクラフトが可能になった！", カラー_緑)
        PRINTL
        MONEY += 報酬金
        HO_MODULE_UNLOCK_FLAG:32 = 1
        CALL QST_SET_SV_EVENT_FLAG(イベントID, 1)
    CASE 0
        PRINTFORMW これ以上は危険と判断した%QST_LEADER_NAME()%は街に帰還し、クエストの失敗を報告した……
        CALL PRINT_NOTICE("報酬から謝礼等を差し引き、500ディナリを失った……")
        MONEY -= 500
    CASE -1
        PRINTFORMW 収集した木材を置いて逃げ出した%QST_LEADER_NAME()%は、ボロボロの身を引きずってなんとか街まで帰還した……
        CALL PRINT_NOTICE("報酬から治療費や謝礼を差し引き、1,000ディナリを失った……")
        MONEY -= 1000
ENDSELECT
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()
RETURN 0

;-------------------------------------------------
;EV251 簡易クエスト_木材調達の依頼
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_251

;クエスト概要(クエスト選択時に表示)
@QST_QUEST_59_EVENT_251_SUMMARY
#FUNCTIONS
RESULTS = [周期]%QST_QUEST_59_EVENT_251_QSTNAME()%
SIF (QST_GET_SV_EVENT_FLAGF(251) - DAY) > 0
    RESULTS += @"　※再受注可能まで残り{QST_GET_SV_EVENT_FLAGF(251) - DAY}期"
RETURNF RESULTS

;クエスト名
@QST_QUEST_59_EVENT_251_QSTNAME
#FUNCTIONS
RESULTS = 木材調達の依頼
RETURNF RESULTS

;クエスト登録可否判定
@QST_QUEST_59_EVENT_251_REGISTRATION
CALL QST_GET_SV_EVENT_FLAG(250)
SIF RESULT == 1
    RETURN 1
RETURN 0

;クエスト実施可能判定
@QST_QUEST_59_EVENT_251_QSTAVAILABLE
CALL QST_GET_SV_EVENT_FLAG(251)
SIF RESULT > DAY
    RETURN 0
RETURN 1

@QST_QUEST_59_EVENT_251
#DIM CONST イベントID = 251
#DIM CONST クエストCT = 3
#DIM CONST 木材目標値 = 20
#DIM DYNAMIC 木材累計値
#DIM DYNAMIC 木材入手量
#DIM DYNAMIC 報酬金 = 6000
#DIM DYNAMIC 追加報酬金
#DIM DYNAMIC 名誉点

CALL SINGLE_DRAWLINE
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇%QST_QUEST_59_EVENT_251_QSTNAME()%◇@/C@", 1)

PRINTFORML ゴブリンの襲撃で被害を受けた施設の修復に必要な資材を集めてほしい。
PRINTFORML 近隣の森で木材を伐採し、指定の場所まで運搬してくれ。
PRINTFORML 報酬は{報酬金}ディナリだが、納入した木材の量に応じて追加報酬金を用意しよう。
PRINTFORML ――くたびれた表情の役人より
PRINTL
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇備考◇@/C@", 1)
CALLF TAG_PRINT(@"難易度：@C:{カラー_注意}@★★★★☆@/C@", 1)
PRINTFORML 報酬：{報酬金}ディナリ～
PRINTFORML 推奨パーティ人数:6人　　　推奨平均戦闘値：50以上
SETCOLOR カラー_選択不可
PRINTFORML 「伐採と連戦をこなす体力管理だけでなく、リスクとリターンの管理が本依頼における重要なポイントだ」
PRINTFORML 「また"木材を荷台に積み過ぎた結果、魔物の群れから逃げ切れず襲われた"という報告も挙がっている。くれぐれも無理はしないように」
PRINTL
RESETCOLOR
CALL SINGLE_DRAWLINE
PRINTFORML …この依頼を受けようか？
PRINTL

;選択肢表示＆実施可否判定
CALL ASK_YN("このクエストにする", "他のクエストを探す")
SIF RESULT
    RETURN -1
;受注制限
CALL QST_QUEST_59_EVENT_251_QSTAVAILABLE
IF RESULT == 0
    CALL COLOR_PRINTW(@"クエスト受注時はパーティメンバーに@C:{カラー_注意}@%ANAME(MASTER)%@/C@を登録する必要があります。", 1)
    RETURN -1
ENDIF

CALL FL_STOPBGM()
PRINTFORMW %QST_LEADER_NAME()%は受付カウンターに足を運び、クエストを申請した……
PRINTFORMW ……
PRINTFORMW …
PRINTL
CALL FL_PLAYBGM("Nostalgic_2.ogg")
CALL PRINT_TITLE(@"%QST_QUEST_59_EVENT_251_QSTNAME()%", "イベント")

;伐採クエストメイン処理
CALL QST_QUEST_59_QST_LOGGING()
追加報酬金 = RESULT:1 * 150
名誉点 = RESULT:1 + 20

;リザルト
SELECTCASE RESULT
    CASE 1
        CALL FL_PLAYBGM("Nostalgic_2.ogg")
        PRINTFORMW 街に帰還した%QST_LEADER_NAME()%は、ギルドホールへ向かいクエストの完了を報告した……
        CALL COLOR_PRINTW(@"報酬として{報酬金}ディナリを得た", カラー_注意)
        SIF 追加報酬金 > 0
            CALL COLOR_PRINTW(@"さらに追加報酬として{追加報酬金}ディナリを得た", カラー_注意)
        CALL QST_CHANGE_ITEM(@"名誉点,{名誉点},")
        MONEY += 報酬金 + 追加報酬金
    CASE 0
        PRINTFORMW これ以上は危険と判断した%QST_LEADER_NAME()%は街に帰還し、クエストの失敗を報告した……
        CALL PRINT_NOTICE("報酬から謝礼等を差し引き、500ディナリを失った……")
        MONEY -= 500
    CASE -1
        PRINTFORMW 収集した木材を置いて逃げ出した%QST_LEADER_NAME()%は、ボロボロの身を引きずってなんとか街まで帰還した……
        CALL PRINT_NOTICE("報酬から治療費や謝礼を差し引き、1,000ディナリを失った……")
        MONEY -= 1000
ENDSELECT
CALL QST_SET_SV_EVENT_FLAG(イベントID, DAY + クエストCT + 1);クエスト終了直前に加算するため1を加算して代入
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()
RETURN 0

;-------------------------------------------------
;EV252 簡易クエスト_消えた灯台の光
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_59_EVENT_252

;クエスト概要(クエスト選択時に表示)
@QST_QUEST_59_EVENT_252_SUMMARY
#FUNCTIONS
RESULTS = [単発]%QST_QUEST_59_EVENT_252_QSTNAME()%　※準備中
RETURNF RESULTS

;クエスト名
@QST_QUEST_59_EVENT_252_QSTNAME
#FUNCTIONS
RESULTS = 消えた灯台の光
RETURNF RESULTS

;クエスト登録可否判定
@QST_QUEST_59_EVENT_252_REGISTRATION
CALL QST_GET_SV_EVENT_FLAG(251)
SIF RESULT != 0
    RETURN 1
RETURN 0

;クエスト実施可能判定
@QST_QUEST_59_EVENT_252_QSTAVAILABLE
CALL QST_GET_SV_EVENT_FLAG(252)
    RETURN 0
SIF RESULT
    RETURN 0
RETURN 1

@QST_QUEST_59_EVENT_252
#DIM CONST イベントID = 252
#DIM CONST クエストCT = 3
#DIM DYNAMIC 報酬金 = 8000
#DIM DYNAMIC 追加報酬金
#DIM DYNAMIC 追加名誉点
#DIM DYNAMIC 出現規模
#DIM DYNAMIC 出現率 = 0

CALL SINGLE_DRAWLINE
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇%QST_QUEST_59_EVENT_252_QSTNAME()%◇@/C@", 1)

PRINTFORML 近頃、灯台から奇妙な光が放たれ、船舶の航行に支障をきたしています。
PRINTFORML 調査の結果、灯台内部の未知の霊的存在が影響を及ぼしている事が判明しました。
PRINTFORML 冒険者には灯台に潜入してもらい、問題解決と灯台の正常化をお願いします。
PRINTFORML ――幽霊に怯える灯台守より
PRINTL
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇備考◇@/C@", 1)
CALLF TAG_PRINT(@"難易度：@C:{カラー_注意}@★★★★☆@/C@", 1)
PRINTFORML 報酬：{報酬金}ディナリ～
PRINTFORML 推奨パーティ人数:6人　　　推奨平均戦闘値：50以上
SETCOLOR カラー_選択不可
PRINTFORML 「生前に未練を残した者が霊になると一般的には言われています」
PRINTFORML 「その未練を晴らす事が解決の鍵となるかもしれません。もちろん力ずくで収めてもらっても構いませんが……」
PRINTL
RESETCOLOR
CALL SINGLE_DRAWLINE
PRINTFORML …この依頼を受けようか？
PRINTL

;選択肢表示＆実施可否判定
CALL ASK_YN("このクエストにする", "他のクエストを探す")
SIF RESULT
    RETURN -1
;受注制限
CALL QST_QUEST_59_EVENT_252_QSTAVAILABLE
IF RESULT == 0
    RETURN -1
ENDIF

CALL FL_STOPBGM()
PRINTFORMW %QST_LEADER_NAME()%は受付カウンターに足を運び、クエストを申請した……
PRINTFORMW ……
PRINTFORMW …
PRINTL
CALL FL_PLAYBGM("Nostalgic_2.ogg")
CALL PRINT_TITLE(@"%QST_QUEST_59_EVENT_252_QSTNAME()%", "イベント")

;伐採クエストメイン処理
CALL QST_QUEST_59_QST_LIGHTHOUSE()
追加報酬金 = RESULT:1 * 150

;リザルト
SELECTCASE RESULT
    CASE 1
        CALL FL_PLAYBGM("Nostalgic_2.ogg")
        PRINTFORMW 街に帰還した%QST_LEADER_NAME()%は、ギルドホールへ向かいクエストの完了を報告した……
        CALL COLOR_PRINTW(@"報酬として{報酬金}ディナリを得た", カラー_注意)
        SIF 追加報酬金 > 0
            CALL COLOR_PRINTW(@"さらに追加報酬として{追加報酬金}ディナリを得た", カラー_注意)
        MONEY += 報酬金 + 追加報酬金
    CASE 0
        PRINTFORMW これ以上は危険と判断した%QST_LEADER_NAME()%は帰還し、クエストの失敗を報告した……
        CALL PRINT_NOTICE("報酬から謝礼等を差し引き、500ディナリを失った……")
        MONEY -= 500
    CASE -1
        PRINTFORMW 収集した木材を置いて逃げ出した%QST_LEADER_NAME()%は、ボロボロの身を引きずってなんとか帰還した……
        CALL PRINT_NOTICE("報酬から治療費や謝礼を差し引き、1,000ディナリを失った……")
        MONEY -= 1000
ENDSELECT
CALL QST_SET_SV_EVENT_FLAG(イベントID, 1)
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()
RETURN 0

;---------------------------------------------------------------------------------------------------------------------------------------
;                                                   共通処理
;---------------------------------------------------------------------------------------------------------------------------------------
;**************************************************************************************************
;簡易クエストに関する処理
;**************************************************************************************************
;-------------------------------------------------
;簡易クエスト_伐採クエストメイン処理
;採掘助手クエをもとに作成
;戻り値　1：クリア、0：失敗(リタイア)、-1；失敗(敗北撤退)
;-------------------------------------------------
@QST_QUEST_59_QST_LOGGING(残業不可フラグ = 0)
#DIM CONST 設備ID = 32
#DIM CONST 木材目標値 = 20
#DIM DYNAMIC 残業不可フラグ
#DIM DYNAMIC 木材累計値
#DIM DYNAMIC 木材入手量
#DIM DYNAMIC 難易度
#DIM DYNAMIC 出現規模
#DIM DYNAMIC 出現率 = 0
#DIM DYNAMIC 進行フラグ
#DIMS DYNAMIC 設備名

PRINTFORMW ――リスノイ東部-森林地帯
PRINTFORMW 伐採ポイントに到着した%QST_LEADER_NAME()%は作業を始めることにした。
$ASK_LOOP_59_EVENT_LOGGING

PRINTFORML 寒冷な環境下での伐採は、想像以上に疲れる作業になるだろう……(一名選択)(0名選択時クエスト帰還)
IF 進行フラグ == 1
    CALL COLOR_PRINTL(@"必要な木材はすべて採集した。後は帰還するだけだ", カラー_シアン)
ELSEIF 進行フラグ >= 2
    CALL COLOR_PRINTL(@"ピリピリとした嫌な雰囲気が森中に満ちていく……", カラー_警告)
ENDIF
SIF 進行フラグ >= 4
    CALL COLOR_PRINTL(@"荷台には採集した木材がうず高く積まれている……", カラー_警告)
PRINTL
PRINTFORML 現在入手した木材：{木材累計値}本　目標：{木材目標値}本
CALL SELECT_CHARA_LIST_INIT
CALL SELECT_CHARA_LIST_MULTI_ONLY_LOGIC_SLG(1, "PARTY_MEMBER", "NONE")
IF SELECTED_CHARA_NUM == 0
    IF 木材累計値 < 木材目標値
        PRINTFORMW 木材の量が目標値に達していませんが、帰還しますか？
        CALL ASK_YN()
        PRINTL
        SIF !RESULT
            RETURN 0
    ELSE
        PRINTFORMW 木材を十分確保しました。帰還しますか？
        CALL ASK_YN()
        PRINTL
        IF !RESULT
            IF 進行フラグ >= 4
                CALL QST_QUEST_59_QST_LOGGING_EXBATTLE(難易度)
                SIF RESULT == 0
                    RETURN -1
            ENDIF
            RESULT:1 = MAX(木材累計値 - 木材目標値, 0)
            RETURN 1
        ENDIF
    ENDIF
	GOTO ASK_LOOP_59_EVENT_LOGGING
ENDIF
IF SELECTED_CHARA_NUM >= 2
	PRINTFORMW 一人だけ選択してください
	GOTO ASK_LOOP_59_EVENT_LOGGING
ENDIF

$ASK_LOOP_59_EVENT_LOGGING_START
;理論上無限に伐採できてしまうので、ここで強制帰還
IF 進行フラグ == 5
    PRINTFORMW 伐採を始めようと思ったが、荷台には溢れんばかりの木材が積まれている……
    PRINTFORMW これ以上の積載は不可能と判断した%QST_LEADER_NAME()%は帰還の準備を始めた……
    PRINTL
    CALL QST_QUEST_59_QST_LOGGING_EXBATTLE(難易度)
    SIF RESULT == 0
        RETURN -1
    RESULT:1 = MAX(木材累計値 - 木材目標値, 0)
    RETURN 1
ENDIF

IF BASE:(SELECTED_CHARA):体力 <= 600
	PRINTFORMW %ANAME(SELECTED_CHARA:0)%は疲れているようだ……
	GOTO ASK_LOOP_59_EVENT_LOGGING
ENDIF
PRINTL

;木材の加算
CALL FL_PLAYSE("Woodcut_0.mp3")
PRINTFORMW コーン……コーン……
CALL QST_CHANGE_HP(SELECTED_CHARA, -100)
LOCAL = ABL:(SELECTED_CHARA):身体
IF LOCAL <= RAND:150
	木材入手量 = 1
ELSEIF LOCAL <= RAND:300
	木材入手量 = 2
ELSE
	木材入手量 = 3
ENDIF
木材累計値 += 木材入手量
CALL PRINT_ADD_EXP(SELECTED_CHARA, "身体経験値", 3, 1)
CALL TRAIN_AUTO_ABLUP(SELECTED_CHARA)
CALL COLOR_PRINTW(@"――針葉樹の木材を{木材入手量}つ手に入れた", カラー_注意)

;エンカウント処理
出現率 += RAND(10,20)
SIF 進行フラグ >= 2
    出現率 += RAND(5,10)

IF RAND:100 < 出現率
	PRINTFORMW 伐採音に引き寄せられた魔物が集まってきた！戦闘は避けられない！

    ;戦闘イベント処理
    ;白兵戦参加メンバーの初期化
    CALL CC_INIT()
    ;クエストのパーティメンバーを攻撃側として追加
    CALL CC_ADDPARTY("DEFENDER")
    ;敵の選定
    出現規模 = RAND:100
    出現規模 += 木材累計値*2
    ;難易度
    SIF 進行フラグ >= 2
        難易度 = (木材累計値 - 木材目標値)*進行フラグ
    ;敵テーブル
    IF 進行フラグ >= 2
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト",100 + 難易度)
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ１",20 + 難易度)
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ２",20 + 難易度)
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ゴブリンライダー１",難易度)
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ゴブリンライダー２", 難易度)
        CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ホブゴブリン",難易度)
    ELSE
        SELECTCASE 出現規模
            CASE IS <= 30
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト１",40)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト２",40)
            CASE IS <= 70
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト１",60)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト２",60)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ワーグ")
                SIF RAND:3
                    CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ")
            CASEELSE
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト",80)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ",-20)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ワーグ",20)
                CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ゴブリンライダー",20)
                SIF !RAND:5
                    CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ホブゴブリン")
        ENDSELECT
    ENDIF

    ;戦闘処理呼出
    CALL CLOSE_COMBAT()
    IF RESULT == 1
        ;敗北
        RETURN -1
    ELSE
        ;戦闘終了後のHPをパーティに適用
        CALL QST_QUEST_38_CC_APPLY_CHARA_HP()
        ;防御側エネミーから戦利品を獲得
        CALL CC_GET_LOOT_FROM("ATTACKER")
        出現率 = 0
        PRINTFORMW 魔物を倒して作業を再開した
        PRINTL
    ENDIF
ENDIF

;進行度に応じたテキスト表示
IF (進行フラグ == 0) && (木材累計値 >= 木材目標値)
    PRINTL
    CALL COLOR_PRINTW(@"納入に必要な木材をすべて揃えた！", カラー_シアン)
    IF 残業不可フラグ == 1
        PRINTFORMW 木材の採集を終えた%QST_LEADER_NAME()%は、街へ帰還する事にした
        PRINTFORMW ……
        PRINTFORMW …
        PRINTL
        RETURN 1
    ENDIF
    進行フラグ = 1
ELSEIF (進行フラグ == 1) && (木材累計値 >= FTIMES(木材目標値, 150))
    PRINTL
    CALL FL_STOPBGM()
    PRINTFORMW 森の中が騒がしい……伐採音と度重なる戦闘で、森中の魔物達を刺激してしまったようだ……
    PRINTFORMW 今のうちに撤退すべきだろう……
    CALL FL_PLAYBGM("Ambient_dark_2.mp3")
    進行フラグ = 2
ELSEIF (進行フラグ == 2) && (木材累計値 >= FTIMES(木材目標値, 200))
    CALL COLOR_PRINTW(@"荷台にはたくさんの木材が積まれている。これ以上採集すると運搬に支障が出そうだ……", カラー_注意)
    進行フラグ = 3
ELSEIF (進行フラグ == 3) && (木材累計値 >= FTIMES(木材目標値, 225))
    進行フラグ = 4
ELSEIF (進行フラグ == 4) && (木材累計値 >= FTIMES(木材目標値, 300))
    進行フラグ = 5
ENDIF

PRINTL
PRINTFORML 引き続き%CALLNAME:SELECTED_CHARA%が伐採を行いますか？
PRINTFORML 現在入手した木材：{木材累計値}本　目標：{木材目標値}本
CALL ASK_YN()
SIF RESULT == 0
	GOTO ASK_LOOP_59_EVENT_LOGGING_START
GOTO ASK_LOOP_59_EVENT_LOGGING

;過積載時の追撃イベント
@QST_QUEST_59_QST_LOGGING_EXBATTLE(難易度)
#DIM DYNAMIC 難易度

CALL FL_STOPBGM()
PRINTFORMW %QST_LEADER_NAME()%は帰宅の準備を進め、街へと帰還しようとした
PRINTFORMW しかし、過積載の荷台は想像以上に重く、%QST_LEADER_NAME()%は運搬に手間取っている……
PRINTFORMW そんな中、追い打ちをかけるように、たくさんの魔物が集まってきた！
CALL FL_PLAYBGM("Boss_0.ogg")

;戦闘イベント処理
;白兵戦参加メンバーの初期化
CALL CC_INIT()
;クエストのパーティメンバーを攻撃側として追加
CALL CC_ADDPARTY("DEFENDER")

CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリン", "ゴブリンスカウト",200 + 難易度)
CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ１",120 + 難易度)
CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ゴブリンの群れ２",120 + 難易度)
CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ゴブリンライダー１",100 + 難易度)
CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ワーグ", "ゴブリンライダー２", 100 + 難易度)
CALL CC_ADDMOB_FROM_TABLE("ATTACKER", "ゴブリンの群れ", "ホブゴブリン",100 + 難易度)

;戦闘処理呼出
CALL CLOSE_COMBAT()
IF RESULT == 1
    ;敗北
    RETURN 0
ELSE
    ;戦闘終了後のHPをパーティに適用
    CALL QST_QUEST_38_CC_APPLY_CHARA_HP()
    ;防御側エネミーから戦利品を獲得
    CALL CC_GET_LOOT_FROM("ATTACKER")
    PRINTFORMW 魔物達の追撃を振り払い、%QST_LEADER_NAME()%は何とか帰宅する事に成功した！
    CALL FL_STOPBGM()
    PRINTFORMW ……
    PRINTFORMW …
    RETURN 1
ENDIF

;-------------------------------------------------
;簡易クエスト_灯台クエストメイン処理
;戻り値　1：クリア、0：失敗(リタイア)、-1；失敗(敗北撤退)
@QST_QUEST_59_QST_LIGHTHOUSE()
RETURN 1

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/QUEST_59_北港都市リスノイ.ERB


code:
MAP_NAME = "ゴブリンと雪国の狩人"
MAP_IMAGE = "bg06.webp"
PATH_COLOR = "0xff00"
PATH_ALPHA = "0x7d"
NODE_BASE_COLOR = "0xe8"

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/ゴブリンと雪国の狩人.txt


code:
<DocumentElement>
  <GMAPDATA>
    <id>638536614494084848</id>
    <NODE_ID>0</NODE_ID>
    <NODE_NAME>リスノイ-大通り</NODE_NAME>
    <POS_X>320</POS_X>
    <POS_Y>300</POS_Y>
    <PATH_LIST>1,3,10,2,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536614541269533</id>
    <NODE_ID>1</NODE_ID>
    <NODE_NAME>リスノイ-官庁街</NODE_NAME>
    <POS_X>360</POS_X>
    <POS_Y>320</POS_Y>
    <PATH_LIST>0,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638593607050810435</id>
    <NODE_ID>2</NODE_ID>
    <NODE_NAME>リスノイ-市場</NODE_NAME>
    <POS_X>280</POS_X>
    <POS_Y>320</POS_Y>
    <PATH_LIST>0,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638541557223686865</id>
    <NODE_ID>3</NODE_ID>
    <NODE_NAME>猟師の小屋</NODE_NAME>
    <POS_X>520</POS_X>
    <POS_Y>240</POS_Y>
    <PATH_LIST>0,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536614717965927</id>
    <NODE_ID>10</NODE_ID>
    <NODE_NAME>森の入口</NODE_NAME>
    <POS_X>300</POS_X>
    <POS_Y>220</POS_Y>
    <PATH_LIST>0,11,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536614802866061</id>
    <NODE_ID>11</NODE_ID>
    <NODE_NAME>森中の空地</NODE_NAME>
    <POS_X>300</POS_X>
    <POS_Y>120</POS_Y>
    <PATH_LIST>13,12,14,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536614871695556</id>
    <NODE_ID>12</NODE_ID>
    <NODE_NAME>森-西部</NODE_NAME>
    <POS_X>200</POS_X>
    <POS_Y>140</POS_Y>
    <PATH_LIST>11,13,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536614907635365</id>
    <NODE_ID>13</NODE_ID>
    <NODE_NAME>森-北西部</NODE_NAME>
    <POS_X>240</POS_X>
    <POS_Y>60</POS_Y>
    <PATH_LIST>11,14,12,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638536615135515452</id>
    <NODE_ID>14</NODE_ID>
    <NODE_NAME>ゴブリンの巣穴</NODE_NAME>
    <POS_X>360</POS_X>
    <POS_Y>60</POS_Y>
    <PATH_LIST>13,11,</PATH_LIST>
  </GMAPDATA>
</DocumentElement>

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/ゴブリンと雪国の狩人.xml


code:
MAP_NAME = "北港都市リスノイ"
MAP_IMAGE = "port01.webp"
PATH_COLOR = "0xff00"
PATH_ALPHA = "0x7d"
NODE_BASE_COLOR = "0xe8"

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/北港都市リスノイ.txt


code:
<DocumentElement>
  <GMAPDATA>
    <id>638632501704083500</id>
    <NODE_ID>0</NODE_ID>
    <NODE_NAME>南門</NODE_NAME>
    <POS_X>400</POS_X>
    <POS_Y>320</POS_Y>
    <PATH_LIST>1,2,21,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632520978784315</id>
    <NODE_ID>1</NODE_ID>
    <NODE_NAME>役場</NODE_NAME>
    <POS_X>400</POS_X>
    <POS_Y>220</POS_Y>
    <PATH_LIST>0,2,3,9,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632521046425413</id>
    <NODE_ID>2</NODE_ID>
    <NODE_NAME>宿屋</NODE_NAME>
    <POS_X>340</POS_X>
    <POS_Y>240</POS_Y>
    <PATH_LIST>0,1,3,12,7,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632521267283397</id>
    <NODE_ID>3</NODE_ID>
    <NODE_NAME>大通り</NODE_NAME>
    <POS_X>280</POS_X>
    <POS_Y>200</POS_Y>
    <PATH_LIST>1,6,4,9,10,2,11,12,14,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632521336984671</id>
    <NODE_ID>4</NODE_ID>
    <NODE_NAME>港前広場</NODE_NAME>
    <POS_X>160</POS_X>
    <POS_Y>180</POS_Y>
    <PATH_LIST>5,6,3,8,10,13,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632521360164166</id>
    <NODE_ID>5</NODE_ID>
    <NODE_NAME>ギルドホール</NODE_NAME>
    <POS_X>160</POS_X>
    <POS_Y>120</POS_Y>
    <PATH_LIST>4,6,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632521638285067</id>
    <NODE_ID>6</NODE_ID>
    <NODE_NAME>商店街</NODE_NAME>
    <POS_X>220</POS_X>
    <POS_Y>160</POS_Y>
    <PATH_LIST>3,4,5,11,13,14,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632522291839387</id>
    <NODE_ID>8</NODE_ID>
    <NODE_NAME>船着場</NODE_NAME>
    <POS_X>120</POS_X>
    <POS_Y>200</POS_Y>
    <PATH_LIST>4,10,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632552230905393</id>
    <NODE_ID>9</NODE_ID>
    <NODE_NAME>官庁街</NODE_NAME>
    <POS_X>440</POS_X>
    <POS_Y>160</POS_Y>
    <PATH_LIST>1,3,11,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632553336509144</id>
    <NODE_ID>10</NODE_ID>
    <NODE_NAME>造船地区</NODE_NAME>
    <POS_X>160</POS_X>
    <POS_Y>280</POS_Y>
    <PATH_LIST>4,8,3,12,7,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632558131210715</id>
    <NODE_ID>11</NODE_ID>
    <NODE_NAME>居住区</NODE_NAME>
    <POS_X>360</POS_X>
    <POS_Y>100</POS_Y>
    <PATH_LIST>9,3,6,14,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632565027187425</id>
    <NODE_ID>21</NODE_ID>
    <NODE_NAME>猟師の小屋</NODE_NAME>
    <POS_X>540</POS_X>
    <POS_Y>360</POS_Y>
    <PATH_LIST>0,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632566430706694</id>
    <NODE_ID>12</NODE_ID>
    <NODE_NAME>歓楽街</NODE_NAME>
    <POS_X>260</POS_X>
    <POS_Y>260</POS_Y>
    <PATH_LIST>2,3,10,7,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632567314093644</id>
    <NODE_ID>7</NODE_ID>
    <NODE_NAME>教会</NODE_NAME>
    <POS_X>240</POS_X>
    <POS_Y>340</POS_Y>
    <PATH_LIST>10,12,2,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632573782401126</id>
    <NODE_ID>13</NODE_ID>
    <NODE_NAME>倉庫街</NODE_NAME>
    <POS_X>180</POS_X>
    <POS_Y>60</POS_Y>
    <PATH_LIST>4,6,14,</PATH_LIST>
  </GMAPDATA>
  <GMAPDATA>
    <id>638632574792469711</id>
    <NODE_ID>14</NODE_ID>
    <NODE_NAME>北門</NODE_NAME>
    <POS_X>240</POS_X>
    <POS_Y>40</POS_Y>
    <PATH_LIST>6,11,3,13,</PATH_LIST>
  </GMAPDATA>
</DocumentElement>

path: ERB/QUEST/クエストデータ/QUEST_57～59_ゴブリンと雪国の狩人/北港都市リスノイ.xml