code:
;調教コマンドの基幹部分とそれに関連する処理

;-------------------------------------------------
;実行可能なコマンドの記録
;-------------------------------------------------
@CREATE_COMABLE_LIST

;リストのクリア
VARSET COM_ABLE_FLAG
VARSET COM_CONFLICT_FLAG

;モード別のコマンドを走査
FOR LOCAL:0, 0, VARSIZE("TRAINNAME")
	SIF TRAINNAME:(LOCAL:0) == ""
		CONTINUE
	;実行可能かどうかを判定
	CALL CHECK_COMABLE(LOCAL:0)
	;COM_ABLE_FLAGに実行可能かどうか保存
	;0は実行不可、1は干渉せずに実行可能、2は干渉、3の場合は干渉コマンド外したら可能な継続実行
	SELECTCASE RESULT
		CASE 1
			COM_ABLE_FLAG:LOCAL = 1
		CASE 2
			COM_ABLE_FLAG:LOCAL = 1
			COM_CONFLICT_FLAG:(LOCAL) = 1
		CASE 3
			COM_ABLE_FLAG:LOCAL = 1
			COM_CONFLICT_FLAG:(LOCAL) = 1
	ENDSELECT
	;SIF GROUPMATCH(RESULT, 1, 3)
	;	COM_ABLE_FLAG:LOCAL = 1
	;IF GROUPMATCH(RESULT, 2, 3)
	;	COM_CONFLICT_FLAG:(LOCAL) = 1
	;	COM_ABLE_FLAG:LOCAL = 1
	;ENDIF
	;リストの記録位置を一つ進める
NEXT

;-------------------------------------------------
;コマンドARG:0が実行可能ならCOM_LISTに記録する
;-------------------------------------------------
@CHECK_COMABLE(ARG:0)
;TRAINNAMEが定義されていないなら無視
IF TRAINNAME:(ARG:0) != ""
	;コマンドフィルタ
	IF !COM_FILTER:(ARG:0)
		; ;Only check the currently selected category. Saves some processing time.
		; TRYCALLFORM COM_CATEGORY{ARG:0}
		; IF (RESULT != TFLAG:調教タブ設定) && (ARG:0 != 291)
		; 	RETURN 0
		; ENDIF

		;If a continuable action is already equipped with the same players and targets, make it selectable
		;Note: Doing this here instead of in each COM_ABLE means it works for the user, but not autoselect)
		;継続可能コマンドの場合
		TRYCALLFORM COM_IS_EQUIP{ARG:0}
		IF RESULT > 0
			;継続コマンドと同一条件のコマンド実行判定
			RESULT = 0
			TRYCALLFORM COM_ALREADY_HAPPENING{(ARG:0)}
			IF RESULT > 0 || COM_ALREADY_HAPPENING(ARG:0)
				;同一条件で再実行不可能なコマンド(主に道具系)
				;Non-repeatable continuable actions: Strap-on, strapon gag, condom, blindfold, rope, gag, nose hook, exposure play draw on body, shoot video, enema&plug, summon tentacles
				IF GROUPMATCH(ARG:0, 50, 68, 75, 78, 84, 85, 86, 93, 112, 114, 115, 142, 200)
					RETURN 0
					;それ以外
				ELSE
					RETURN 1
				ENDIF
			ENDIF
		ENDIF

		COM_ENABLE = 1
		TRYCALLFORM COM_ABLE{ARG:0}
		COM_ENABLE = 0
		LOCAL:1 = RESULT
		LOCAL:2 = RESULT
		;DEBUGPRINTFORML %TRAINNAME:ARG%,RESULT({RESULT})
		;clear out mequip, except for actions like "Summon Tentacles" that strictly enable other actions, which we move to the top
		;This way, we're only checking conditions like HAS_PENIS or IS_PLAYABLE instead of action-related conditions
		LOCAL:4 = 0
		FOR LOCAL, 0, MEQUIP_NUM
			IF GROUPMATCH(MEQUIP:LOCAL, 50, 200)
				CALL SWAP_MEQUIP(LOCAL, LOCAL:4)
				LOCAL:4++
			ENDIF
		NEXT
		LOCAL:5 = MEQUIP_NUM
		MEQUIP_NUM = LOCAL:4
		COM_ENABLE = 1
		TRYCALLFORM COM_ABLE{ARG:0}
		COM_ENABLE = 0
		LOCAL:2 = RESULT

		;Print the disabled actions - using this for debugging
		;SIF !RESULT && (ARG:0 < 250)
		;    PRINTFORM %ENTRAINNAME(ARG:0)%

		MEQUIP_NUM = LOCAL:5

		;初回実行時はだめだが2回目が通るケース
		;つまり既存コマンドと干渉するケース
		;DEBUGPRINTFORML %TRAINNAME:ARG%,LOCAL:1 = {LOCAL:1},LOCAL:2 = {LOCAL:2}
		IF LOCAL:1 == 0 && LOCAL:2 == 1
			RESULT = 0
			TRYCALLFORM COM_IS_EQUIP{ARG:0}
			SELECTCASE RESULT
				CASE 0
					RETURN 2
				CASE 1
					RETURN 2
				CASE 2
					RETURN 3
			ENDSELECT
			;1回目可、2回目不可は可として扱う
		ELSEIF LOCAL:1 == 1 && LOCAL:2 == 0
			RETURN 1
		ELSEIF LOCAL:1 == LOCAL:2
			RETURN LOCAL:1
		ELSE
			;DEBUGPRINTFORML %TRAINNAME:ARG%
			RETURN 2
		ENDIF
	ENDIF
ENDIF
RETURN 0

;-------------------------------------------------
;調教コマンドの表示＆実行可能コマンドの記録
;-------------------------------------------------
@SHOW_COMMAND
#DIM L_COUNTER
#DIM AUTO_MAIN_CHARA
#DIM SET_MPLY
#DIM SET_MTAR

CALL TITLE_CATEGORY_GENERAL("コマンド")
IF FLAG:ウフフフラグ
	CALL PRINT_SELECT_BUTTON("{愛撫}", 2000, TFLAG:調教タブ設定 == 0)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{V性交}", 2001, TFLAG:調教タブ設定 == 1)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{A性交}", 2011, TFLAG:調教タブ設定 == 11)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{道具}", 2002, TFLAG:調教タブ設定 == 2)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{嗜虐}", 2003, TFLAG:調教タブ設定 == 3)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{羞恥}", 2004, TFLAG:調教タブ設定 == 4)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{触手}", 2005, TFLAG:調教タブ設定 == 5)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
ELSEIF TFLAG:調教経過時間 == TFLAG:調教ターン数 && FLAG:調教モード != 調教_クエスト
	CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_会う
	CALL PRINT_SELECT_BUTTON("{交流}", 2007, TFLAG:調教タブ設定 == 7)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{訓練／内政}", 2008, TFLAG:調教タブ設定 == 8)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_捕虜会話
	CALL PRINT_SELECT_BUTTON("{交流}", 2007, TFLAG:調教タブ設定 == 7)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_居住区
	CALL PRINT_SELECT_BUTTON("{交流・活動}", 2009, TFLAG:調教タブ設定 == 9)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{性接触}", 2010, TFLAG:調教タブ設定 == 10)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{嗜虐}", 2012, TFLAG:調教タブ設定 == 12)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_クエスト
	CALL PRINT_SELECT_BUTTON("{ｸｴｽﾄ}", 2013, TFLAG:調教タブ設定 == 13)
	PRINTPLAIN
	IF FLAG:クエスト_交流コマンド許可
		CALL PRINT_SELECT_BUTTON("{交流・活動}", 2009, TFLAG:調教タブ設定 == 9)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{性接触}", 2010, TFLAG:調教タブ設定 == 10)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{嗜虐}", 2012, TFLAG:調教タブ設定 == 12)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{特殊}", 2006, TFLAG:調教タブ設定 == 6)
		PRINTPLAIN
	ENDIF
ENDIF

PRINTPLAIN
IF GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区)
	CALLF TAG_PRINTH(@" @B:5900$%TT_OPS_実行対象反転%@[実行⇔対象]@/B@")
	PRINTBUTTON " [対象ﾘｾｯﾄ]", 5901
ELSEIF FLAG:調教モード == 調教_クエスト
	IF FLAG:クエスト_交流コマンド許可
		CALLF TAG_PRINTH(@" @B:5900$%TT_OPS_実行対象反転%@[実行⇔対象]@/B@")
	ELSE
		CALLF TAG_PRINTH(@" @C:{カラー_選択不可}@[実行⇔対象]@/C@")
	ENDIF
	PRINTBUTTON " [対象ﾘｾｯﾄ]", 5901
ELSE
	SETCOLOR カラー_選択不可
	PRINTPLAIN  [実行⇔対象]
	PRINTPLAIN  [対象ﾘｾｯﾄ]
	RESETCOLOR
ENDIF
PRINT

;PRINTBUTTON "[コマンドフィルタ]", 5905

CALLF TAG_PRINTH(@"@B:5995$%TT_OPS_NPCオートコマンド%@[NPCｵｰﾄｺﾏﾝﾄﾞ:\@ FLCONFIG:リアクション許可 ? 許可 # 不可\@]@/B@  ", 0)

;逆調教・主人公が行動不能のときは終了ボタンをグレー表示(自分の意志で終了できない)
IF !GROUPMATCH(FLAG:調教モード, 調教_逆調教通常, 調教_慰安, 調教_逆調教特殊, 調教_クエスト) && IS_PLAYABLE(MASTER) && !TFLAG:交流中断不可
	IF (FLAG:ハウジングモード && !FLAG:クエストモード) || (FLAG:クエストモード && FLAG:クエスト_交流コマンド許可)
		SELECTCASE FLAG:調教モード
			CASE 調教_閨
				LOCALS '= "逢瀬をやめる"
			CASE 調教_捕虜調教
				LOCALS '= "調教をやめる"
			CASEELSE
				LOCALS '= "交流終了"
		ENDSELECT
		PRINTBUTTON @"[%LOCALS%]", 5999
	ELSE
		PRINTBUTTON "[交流終了]", 5999
	ENDIF
ELSEIF FLAG:調教スキップ可
	PRINTBUTTON "[イベントスキップ]", 5999
ELSE
	SETCOLOR カラー_選択不可
	PRINTFORM [交流終了]
	RESETCOLOR
ENDIF
[IF_DEBUG]
SIF GROUPMATCH(FLAG:調教モード, 調教_逆調教通常, 調教_慰安, 調教_逆調教特殊)
	PRINTBUTTON "  [DEBUG_次回コマンド指定]", 5996
PRINTBUTTON "  [DEBUG_交流終了]", 5999
[ENDIF]

PRINTL
PRINTL

;実行可能なコマンドの記録
CALL CREATE_COMABLE_LIST

;逆調教または主人公が行動不能
IF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安) || (!IS_PLAYABLE(MASTER) && !FLAG:クエスト_あなた不参加 && FLAG:調教モード != 調教_クエスト)
	PRINTPLAINFORM %TOSTR_SPACE(14)%
	IF !TFLAG:奉仕モード
		PRINTBUTTON @"[なすがまま]", 0
	ELSE
		IF TCVAR:MASTER:被奉仕者フラグ == 奉仕_押し倒された
			PRINTBUTTON @"[なすがまま]", 0
		ELSEIF TFLAG:覗き見モード
			PRINTBUTTON @"[のぞく]", 0
		ELSE
			IF TCVAR:MASTER:被奉仕者フラグ
				PRINTBUTTON @"[奉仕される]", 0
			ELSE
				PRINTBUTTON @"[奉仕をつづける]", 0
			ENDIF
		ENDIF
	ENDIF
	PRINTL

	RETURN
ENDIF

;非ウフフ中で最終ターンならコマンド種別のタブを「特殊」で固定
IF !FLAG:ウフフフラグ && TFLAG:調教経過時間 == TFLAG:調教ターン数 && FLAG:調教モード != 調教_クエスト
	TFLAG:調教タブ設定 = 6
ENDIF

;プレイヤー・ターゲットの一覧を文字列として記録
LOCALS:0 =
LOCALS:1 =
LOCALS:2 =
FOR LOCAL:0, 0, MPLY_NUM
	IF LOCAL:0 >= 1
		LOCALS:0 += @"・%ANAME(MPLY:(LOCAL:0))%"
	ELSE
		LOCALS:0 += @"%ANAME(MPLY:(LOCAL:0))%"
	ENDIF
NEXT
IF LOCALS:0 == ""
	LOCALS:0 = ----
ENDIF
FOR LOCAL:0, 0, MTAR_NUM
	IF LOCAL:0 >= 1
		LOCALS:1 += @"・%ANAME(MTAR:(LOCAL:0))%"
	ELSE
		LOCALS:1 += @"%ANAME(MTAR:(LOCAL:0))%"
	ENDIF
NEXT
IF LOCALS:1 == ""
	LOCALS:1 = ----
ENDIF

IF FLAG:ウフフフラグ && (TFLAG:調教タブ設定 != 5 || IS_EQUIP_PLAYER(MPLY:0, 200)) && TFLAG:調教タブ設定 != 6
	PRINT
	IF IS_MPLY(MASTER)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」に――
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」の命令で――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」の命令で「%LOCALS:0%」が「%LOCALS:1%」に――
		ENDIF
	ELSEIF IS_MTAR(MASTER)
		IF FLAG:主導権所有者 < 0 || IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:1%」が「%LOCALS:0%」に命令して――
		ELSEIF IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:1%」が「%LOCALS:0%」に――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」の命令で「%LOCALS:0%」が「%LOCALS:1%」に――
		ENDIF
	ELSE
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」に――
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」の命令で――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」の命令で「%LOCALS:0%」が「%LOCALS:1%」に――
		ENDIF
	ENDIF
ENDIF

LOCAL:2 = 0

CALL SET_TMP_MPLY()
SET_MPLY = RESULT
; CALL SET_TMP_MTAR()
; SET_MTAR = RESULT

;;コマンドリスト出力
CALL USERCOM_SHOW_COMLIST()

SIF SET_MPLY
	CALL DEL_MPLY(MPLY:0)
SIF SET_MTAR
	CALL DEL_MTAR(MTAR:0)

;-------------------------------------------------
; コマンドリスト出力
;-------------------------------------------------
@USERCOM_SHOW_COMLIST
#DIM COMMAND
#DIM DYNAMIC COM_NUM

;クエスト時専用処理
IF FLAG:調教モード == 調教_クエスト && TFLAG:調教タブ設定 == 13
	VARS _LIST_EVENT_SLOT
	VARI EVENT_LIST_IDX
	VARI EVENT_SLOT_IDX
	VARI EVENT_ID
	VARS EVENT_SLOT_NAME
	VARS EVENT_ICON
	VARI EVENT_COLOR
	VARI BTN_ID
	VARS STR_BUTTON
	VARS COLUMN
	VARI PRINT_CNT
	CALL HO_GET_MAPDATA(HO_有効マップID, HO_MASTER現在地, "EVENT_SLOT")
	_LIST_EVENT_SLOT = %RESULTS%
	STR_BUTTON = %TOSTR_SPACE(24)%
	FOR EVENT_SLOT_IDX, 0, LIST_COUNT(_LIST_EVENT_SLOT)
		BTN_ID = EVENT_SLOT_IDX + HO_モジュールボタンID
		EVENT_LIST_IDX = TOINT(LIST_GET(_LIST_EVENT_SLOT, EVENT_SLOT_IDX))
		CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_STATE")
		SIF RESULTS == "DEACTIVE"
			CONTINUE
		;イベントIDを取得
		CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_ID")
		EVENT_ID = RESULT
		IF QST_イベント選択制限 == -1 || QST_イベント選択制限 == EVENT_ID
			;イベント名を取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_SLOT_NAME")
			EVENT_SLOT_NAME = %RESULTS%
			;イベントアイコンを取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_ICON")
			EVENT_ICON '= RESULT == -1 ? "◇" # @"%ICON(RESULTS)%"
			;イベントの文字色を取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_COLOR")
			IF RESULT > 0
				STR_BUTTON '= @"@C:{RESULT}@%EVENT_SLOT_NAME% [ %EVENT_ICON% ]@/C@"
			ELSE
				STR_BUTTON '= @"%EVENT_SLOT_NAME% [ %EVENT_ICON% ]"
			ENDIF
			;整形と出力
			COLUMN += TAG_PRINT_SHAPE(@"@B:{BTN_ID}@%STR_BUTTON%@/B@", 38, 1, 1)
			COLUMN += TOSTR_SPACE(8)
			PRINT_CNT ++
		ENDIF
		;改行処理
		IF PRINT_CNT > 0 && PRINT_CNT % 3 == 0
			CALLF TAG_PRINTH(COLUMN, 5)
			PRINTL
			PRINT_CNT = 0
			COLUMN '= ""
		ENDIF
	NEXT
	IF COLUMN != ""
		CALLF TAG_PRINTH(COLUMN, 5)
		PRINTL
	ENDIF
ENDIF

VARSET LOCAL
VARSET LOCALS
VARI L_CNT
VARI COM_IS_EQUIP
VARI COM_HAS_OPTION
VARS STR_COMLIST
VARS COM_NAME
VARS TOOLTIP
;愛撫が0から始まるが、それより優先して出力したいコマンド群があるので負数から開始している
FOR LOCAL:0, -1, 1000
	;;待機だけは優先して出力
	IF LOCAL == -1
		COM_NUM = 700
	ELSE
		SIF LOCAL == 700
			CONTINUE
		COM_NUM = LOCAL
	ENDIF
	;COM_FILTERが立ってる場合、対応するCOM_ABLE_FLAGは折れてるので、
	;INPUT側でチェックする必要はなし
	SIF TRAINNAME:COM_NUM == "" || COM_FILTER:COM_NUM
		CONTINUE

	;コマンドがどのタブに含まれるかを取得
	;現在選択されているタブに対応するコマンドのみを表示
	TRYCALLFORM COM_CATEGORY{COM_NUM}
	SIF RESULT != TFLAG:調教タブ設定
		CONTINUE

	;コマンド名称の取得
	FOR LOCAL:3, 0, 6
		RESULTS:(LOCAL:3) =
	NEXT

	;コマンドオプションを設定
	COM_OPTION:COM_NUM = COM_OPTION_UI:COM_NUM
	TRYCALLFORM COM_NAME{COM_NUM}

	;主導権に応じて表示するメッセージを変更
	;主人公が実行者
	IF IS_MPLY(MASTER)
		;主導権設定なし、または主導権が実行者(主人公) (~する)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:0%
			;主導権が対象者 (~されられる)
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:1%
			;主導権が実行者・対象者以外の者 (~されられる)
		ELSE
			LOCALS:1 = %RESULTS:1%
		ENDIF
		;主人公が対象者
	ELSEIF IS_MTAR(MASTER)
		;主導権設定なし、または主導権が対象者(主人公) (~させる)
		IF FLAG:主導権所有者 < 0 || IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:2%
			;主導権が実行者 (~される)
		ELSEIF IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:3%
			;主導権が実行者・対象者以外の者 (~される)
		ELSE
			LOCALS:1 = %RESULTS:3%
		ENDIF
		;主人公が実行者でも対象者でもない
	ELSE
		;主導権設定なし、または主導権が実行者 (~する)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:0%
			;主導権が対象者 (~させる)
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:2%
			;主導権が実行者・対象者以外の者 (~させる)
		ELSE
			LOCALS:1 = %RESULTS:4%
		ENDIF
	ENDIF
	COM_NAME = %LOCALS:1%

	IF COM_ABLE_FLAG:COM_NUM
		L_CNT ++
		;コマンドの継続タイプを取得
		RESULT = 0
		TRYCALLFORM COM_IS_EQUIP{COM_NUM}
		COM_IS_EQUIP = RESULT
		;コマンドにオプションが存在するかを確認
		RESULT = 0
		TOOLTIP '= ""
		TRYCALLFORM COM_HAS_OPTION{COM_NUM}
		COM_HAS_OPTION = RESULT
		IF COM_HAS_OPTION
			COM_NAME '= @"[+]%COM_NAME%"
			TOOLTIP '= "title = 'このコマンドはクリックしてコマンド動作の切り替えが可能'"
		ENDIF

		;コマンドボタン印字処理
		IF COM_NAME != ""
			SIF STRLENS(COM_NAME) >= 24
				COM_NAME = %TOHALF(COM_NAME)%
			IF COM_HAS_OPTION
				STR_COMLIST += @"<button value = '[CHANGE_COM_OPTION:{COM_NUM}]' %TOOLTIP%>%COM_NAME, 24, RIGHT%</button>"
			ELSE
				STR_COMLIST += @"%COM_NAME, 24, RIGHT%"
			ENDIF
			IF COM_IS_EQUIP == 2
				STR_COMLIST += @"[----]"
			ELSEIF FLAG:調教モード == 調教_子育て || TFLAG:調教タブ設定 == 6
				STR_COMLIST +=  @"<button value = '{COM_NUM}' %TOOLTIP%>[実行]</button>"
			ELSE
				STR_COMLIST +=  @"<button value = '{COM_NUM}' %TOOLTIP%>[単発]</button>"
			ENDIF
			IF !(FLAG:調教モード == 調教_子育て || TFLAG:調教タブ設定 == 6)
				IF COM_IS_EQUIP == 0
					STR_COMLIST +=  @"[----]"
				ELSE
					STR_COMLIST +=  @"<button value = '{COM_NUM + 1000}' %TOOLTIP%>[継続]</button>"
				ENDIF
			ELSE
				STR_COMLIST +=  @"[----]"
			ENDIF
		ELSE
			STR_COMLIST += @"%TOSTR_REPEAT("-", 10), 24, RIGHT%[----][----]"
		ENDIF
		IF COM_CONFLICT_FLAG:(COM_NUM) == 1
			STR_COMLIST +=  @"<button value = '{COM_NUM + 10000}' %TOOLTIP%>[干渉]</button>"
			STR_COMLIST += @"%TOSTR_SPACE(2)%"
		ELSE
			STR_COMLIST += @"%TOSTR_SPACE(8)%"
		ENDIF
		;改行処理
		IF L_CNT > 0 && L_CNT % 3 == 0
			STR_COMLIST += "
"
		ENDIF
	ENDIF
NEXT
HTML_PRINT STR_COMLIST

;-------------------------------------------------
;調教画面における「対象キャラの選択」欄の表示
;-------------------------------------------------
@SHOW_PARTICIPANT_SELECTOR
#DIM 捕虜, VARSIZE("PRISONER_TARGET")
#DIM 慰安者, 8
#DIM カウンタ
VARSET 捕虜, 0
カウンタ = 0

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):調教参加フラグ || (FLAG:調教モード != 調教_慰安 && LOCAL:0 == MASTER)
		SIF FLAG:クエストモード && FLAG:クエスト_あなた不参加 && LOCAL:0 == MASTER
			CONTINUE
		;捕虜調教のメインターゲットは後回し
		IF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, LOCAL:0) != -1
			捕虜:カウンタ = LOCAL:1
			カウンタ ++
			;慰安系の調教で慰安参加者でない（ヤる側でない）キャラは後回し
		ELSEIF FLAG:調教モード == 調教_慰安 && !CFLAG:(LOCAL):慰安参加者
			慰安者:カウンタ = LOCAL:1
			カウンタ ++
		ELSE
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, LOCAL:1)
		ENDIF
		LOCAL:1 ++
	ENDIF
NEXT

カウンタ = 0
IF FLAG:調教モード == 調教_捕虜調教
	PRINTFORML %TOSTR_SPACE(7)%%TOSTR_REPEAT("-", 85)%
	;捕虜調教のメインターゲットについて処理
	FOR LOCAL:0, 0, CHARANUM
		IF FINDELEMENT(PRISONER_TARGET, LOCAL:0) != -1
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, 捕虜:カウンタ)
			カウンタ ++
		ENDIF
	NEXT
ELSEIF FLAG:調教モード == 調教_慰安
	PRINTFORML %TOSTR_SPACE(7)%%TOSTR_REPEAT("-", 85)%
	;民の慰安のメインターゲットの処理
	FOR LOCAL:0, 0, CHARANUM
		IF CFLAG:LOCAL:調教参加フラグ && !CFLAG:(LOCAL):慰安参加者
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, 慰安者:カウンタ)
			カウンタ ++
		ENDIF
	NEXT
ENDIF

;-------------------------------------------------
;調教画面におけるキャラARG:0の情報表示
;  ARG:0=キャラID, ARG:1=調教参加キャラの連番
;-------------------------------------------------
@SHOW_PARTICIPANT_INFO(ARG:0, ARG:1)

FOR LOCAL, 0, MPLY_NUM
	IF IS_MTAR(MPLY:LOCAL)
		CALL DEL_MTAR(MPLY:LOCAL)
	ENDIF
NEXT

LOCALS:0 = [＋]
IF IS_MPLY(ARG:0)
	LOCALS:0 = [－]
	SETCOLOR カラー_オレンジ
ENDIF

LOCALS:1 = [＋]
IF IS_MTAR(ARG:0)
	LOCALS:1 = [－]
	SETCOLOR カラー_シアン
ENDIF

IF !GROUPMATCH(TCVAR:(ARG:0):離脱フラグ, 0, 1)
	SETCOLOR カラー_選択不可
ENDIF

PRINTFORM   %SNAME(ARG:0), MAX_CHARANAME_LENGTH / 2, RIGHT%
RESETCOLOR
CALL PRINT_SEX(ARG:0, 1, 1, 4)

IF !GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安)
	PRINT
	IF (FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, ARG:0) != -1) || !IS_PLAYABLE(ARG:0) || TCVAR:(ARG:0):離脱フラグ
		PRINTPLAIN [×]
	ELSEIF FLAG:主導権所有者 == ARG:0
		PRINTBUTTON "[★]", ARG:1 + 4100
	ELSE
		PRINTBUTTON "[  ]", ARG:1 + 4100
	ENDIF
	PRINT

	IF TFLAG:参加者数
		IF !GROUPMATCH(TCVAR:(ARG:0):離脱フラグ, 0, 1)
			SETCOLOR カラー_選択不可
			PRINTPLAINFORM %LOCALS:0%[⇔]%LOCALS:1%[⇔]
			RESETCOLOR
		ELSE
			PRINTBUTTON LOCALS:0, ARG:1 + 4000
			PRINTBUTTON "[⇔]", ARG:1 + 4020
			PRINTBUTTON LOCALS:1, ARG:1 + 4040
			PRINTBUTTON "[⇔]", ARG:1 + 4060
		ENDIF
	ELSE
		IF IS_MPLY(ARG:0)
			PRINT <実行>
			;		ELSEIF IS_MTAR(ARG:0)
		ELSE
			PRINT <対象>
		ENDIF
	ENDIF
ENDIF
PRINTBUTTON "[情報]", ARG:1 + 4080

;it's nice, WOOT
SIF HAS_PENIS(ARG:0) && TALENT:(ARG:0):童貞
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 0, "Ｃ")
RESETCOLOR
SIF TALENT:(ARG:0):処女 && HAS_VAGINA(ARG:0)
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 1, "Ｖ", HAS_VAGINA(ARG:0))
RESETCOLOR

SIF TALENT:(ARG:0):アナル処女
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 2, "Ａ")
RESETCOLOR

CALL PRINT_SHORT_PALAM1(ARG:0, 3, "Ｂ")

SIF TALENT:(ARG:0):キス未経験
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 4, "Ｍ")
RESETCOLOR
CALL PRINT_SHORT_PALAM1(ARG:0, 5, "Ｕ")

CALL PRINT_SHORT_PALAM1(ARG:0, 6, "精", HAS_PENIS(ARG:0))
CALL PRINT_SHORT_PALAM1(ARG:0, 7, "乳", TALENT:(ARG:0):母乳体質)
CALL PRINT_SHORT_PALAM2(ARG:0, 40, "潤")

IF TFLAG:桃源香使用中 && TCVAR:(ARG:0):媚薬
	SETCOLOR 0xff1c99
ELSEIF TFLAG:桃源香使用中
	SETCOLOR 0xffaad9
ELSEIF TCVAR:(ARG:0):媚薬
	SETCOLOR 0xff5eb7
ENDIF
CALL PRINT_SHORT_PALAM2(ARG:0, 20, "欲")

CALL PRINT_SHORT_EMOTION(ARG:0)

;「会いに行く」のとき限定
IF FLAG:調教モード == 調教_会う
	CALL PRINT_SHORT_DRUNK(ARG:0)
ENDIF
;ウフフ中のみ
IF FLAG:ウフフフラグ || FLAG:ハウジングモード
	CALL PRINT_BASE1(ARG:0, 0, "体")
	CALL PRINT_BASE2(ARG:0, 1, "気")

	IF TALENT:(ARG:0):Ｃ敏感
		CALL COLOR_PRINT("Ｃ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｃ鈍感
		CALL COLOR_PRINT("Ｃ", カラー_選択不可)
	ELSE
		PRINT Ｃ
	ENDIF
	IF TALENT:(ARG:0):Ｖ敏感
		CALL COLOR_PRINT("Ｖ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｖ鈍感
		CALL COLOR_PRINT("Ｖ", カラー_選択不可)
	ELSE
		PRINT Ｖ
	ENDIF
	IF TALENT:(ARG:0):Ａ敏感
		CALL COLOR_PRINT("Ａ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ａ鈍感
		CALL COLOR_PRINT("Ａ", カラー_選択不可)
	ELSE
		PRINT Ａ
	ENDIF
	IF TALENT:(ARG:0):Ｂ敏感
		CALL COLOR_PRINT("Ｂ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｂ鈍感
		CALL COLOR_PRINT("Ｂ", カラー_選択不可)
	ELSE
		PRINT Ｂ
	ENDIF
	IF TALENT:(ARG:0):Ｍ敏感
		CALL COLOR_PRINT("Ｍ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｍ鈍感
		CALL COLOR_PRINT("Ｍ", カラー_選択不可)
	ELSE
		PRINT Ｍ
	ENDIF
	PRINT
	LOCALS:0 =
	SIF TCVAR:(ARG:0):離脱フラグ == 1
		LOCALS:0 += "眠"
	SIF IS_EQUIP_PLAYER((ARG:0), 50)
		LOCALS:0 += "竿"
	SIF IS_EQUIP_PLAYER((ARG:0), 75)
		LOCALS:0 += "ゴ"
	SIF TCVAR:(ARG:0):利尿剤
		LOCALS:0 += "尿"
	SIF TCVAR:(ARG:0):催眠中 > 0
		LOCALS:0 += "催"
	PRINTFORM %LOCALS:0%
	IF CFLAG:(ARG:0):避妊薬残ターン
		LOCALS:0 += "避"
	ELSE
		SIF IS_OVULATION(ARG:0) || CFLAG:(ARG:0):排卵誘発剤
			CALL COLOR_PRINT(" 排", カラー_ピンク)
		SIF TALENT:(ARG:0):妊娠
			CALL COLOR_PRINT(" 妊", カラー_ピンク)
	ENDIF
	;発情
	IF TCVAR:(ARG:0):媚薬
		CALL COLOR_PRINT(@" 発情Lv{TCVAR:(ARG:0):媚薬}", カラー_ピンク)
	ENDIF
	RESETCOLOR
ENDIF
;「捕虜の調教」のとき限定 メインターゲットに精神力ゲージを表示
IF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, ARG:0) != -1
	PRINTL
	IF BASE:(ARG:0):精神力 < 0
		PRINT                     崩壊度
	ELSE
		PRINT                     精神力
	ENDIF
	CALL PRINT_SHORT_MIND(ARG:0)
ENDIF
;「居住区」でウフフ以外のとき限定 空腹状態を表示
IF FLAG:調教モード == 調教_居住区 && !FLAG:ウフフフラグ
	IF TCVAR:(ARG:0):空腹度 >= 300
		CALL COLOR_PRINT(" 空腹", カラー_ピンク)
	ENDIF
ENDIF
PRINTL

;-------------------------------------------------
;短縮版パラメータ情報の表示(快感系)
;ARG:0はキャラ番号、ARG:1はPALAM番号、ARGS:2は短縮名、ARG:3が0ならグレー表示
;-------------------------------------------------
@PRINT_SHORT_PALAM1(ARG:0, ARG:1, ARGS:2, ARG:3 = 1)
IF !ARG:3
	SETCOLOR カラー_選択不可
ENDIF
PRINTFORM %ARGS:2%
LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):(ARG:1))
SETCOLOR 0xFF00FF
FOR LOCAL:1, 0, 2
	IF LOCAL:0 >= LOCAL:1 + 5
		PRINTFORM %UNICODE(0x2665)%
	ELSEIF LOCAL:0 >= LOCAL:1 + 3
		PRINTFORM %UNICODE(0x2661)%
	ELSEIF LOCAL:0 >= LOCAL:1 + 1
		PRINT -
	ELSE
		PRINT
	ENDIF
NEXT
RESETCOLOR

;-------------------------------------------------
;短縮版パラメータ情報の表示(快感系以外)
;ARG:0はキャラ番号、ARG:1はPALAM番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_SHORT_PALAM2(ARG:0, ARG:1, ARGS:2)
PRINTFORM %ARGS:2%
LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):(ARG:1))
IF LOCAL:0 >= 20
	SETCOLOR カラー_オレンジ
ELSEIF LOCAL:0 >= 10
	SETCOLOR カラー_注意
ELSE
	SETCOLOR カラー_緑
ENDIF
PRINTFORM {LOCAL:0, 2, LEFT}
RESETCOLOR

;;; @PRINT_SHORT_PARAM2の文字列をカラータグつき文字列で返す
@STR_TAG_PARAM2(ARG:0, ARG:1)
#FUNCTIONS
#DIM DYNAMIC PARAM_LV
#DIM DYNAMIC F_COL
PARAM_LV = GET_PALAMLV(PALAM:(ARG:0):(ARG:1))
IF PARAM_LV >= 20
	F_COL = カラー_オレンジ
ELSEIF PARAM_LV >= 10
	F_COL = カラー_注意
ELSE
	F_COL = カラー_緑
ENDIF
RETURNF @"@C:{F_COL}@%TOSTR(PARAM_LV, "#0")%@/C@"
;-------------------------------------------------
;短縮版パラメータ情報の表示(感情)
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_EMOTION(ARG:0)
IF TALENT:(ARG:0):特殊勢力陥落系
	SETCOLOR 0xA000A0
	IF !TCVAR:(ARG:0):麻薬
		PRINTFORM  堕
	ELSE
		PRINTFORM 堕
	ENDIF
	RESETCOLOR
ELSE
	SETCOLOR GETCOLOR_EMOTION(ARG:0)
	IF !TCVAR:(ARG:0):麻薬
		PRINTFORM  %TOSTR_EMOTION(ARG:0)%
	ELSE
		PRINTFORM %TOSTR_EMOTION(ARG:0)%
	ENDIF
	RESETCOLOR
ENDIF

IF TCVAR:(ARG:0):麻薬
	SETCOLOR カラー_警告
	PRINTFORM 麻
	RESETCOLOR
ENDIF

;-------------------------------------------------
;短縮版パラメータ情報の表示(酔い)
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_DRUNK(ARG:0)
PRINT
IF PALAM:(ARG:0):酔い <= 0
	PRINT 平
ELSEIF PALAM:(ARG:0):酔い <= 500
	SETCOLOR 0xA08080
	PRINT 微
ELSEIF PALAM:(ARG:0):酔い <= 1500
	SETCOLOR 0xD0A0A0
	PRINT 浅
ELSEIF PALAM:(ARG:0):酔い <= 3000
	SETCOLOR 0xFFC0C0
	PRINT 中
ELSEIF PALAM:(ARG:0):酔い <= 6000
	SETCOLOR 0xD08000
	PRINT 深
ELSE
	SETCOLOR 0x804000
	PRINT 泥
ENDIF
RESETCOLOR
PRINT

;-------------------------------------------------
;短縮版の精神力情報の表示
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_MIND(ARG:0)

IF TALENT:(ARG:0):崩壊
	CALL PRINT_COLORBAR(100, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_選択不可, 0x404040)
	PRINT
	CALL COLOR_PRINT("崩壊", カラー_選択不可)
ELSEIF TALENT:(ARG:0):虚ろ && BASE:(ARG:0):精神力 < 0
	LOCAL:0 = CFLAG:(ARG:0):崩壊 * 100 / (3500 + MAX(MAXBASE:(ARG:0):精神力, 1000))
	CALL PRINT_COLORBAR(LOCAL:0, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_警告, 0x404040)
	PRINT
	CALL COLOR_PRINT("虚ろ", カラー_選択不可)
ELSEIF BASE:(ARG:0):精神力 < 0
	LOCAL:0 = CFLAG:(ARG:0):崩壊 * 100 / (1000 + MAX(MAXBASE:(ARG:0):精神力, 1000))
	CALL PRINT_COLORBAR(LOCAL:0, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_警告, 0x404040)
	PRINT
	CALL COLOR_PRINT("絶望", カラー_選択不可)
ELSE
	IF MAXBASE:(ARG:0):精神力 > 0
		LOCAL:0 = BASE:(ARG:0):精神力 * 100 / MAXBASE:(ARG:0):精神力
	ELSE
		LOCAL:0 = 100
	ENDIF

	;CALL PRINT_SLIDER(-1000, MAXBASE:(LOCAL:0):精神力, BASE:(LOCAL:0):精神力, 44, 0x4128cc, 0xcb1267)

	IF LOCAL:0 < 0
		LOCAL:1 = 0xA0A0A0
	ELSEIF LOCAL:0 <= 50
		LOCAL:1 = カラー_注意
	ELSEIF LOCAL:0 <= 75
		LOCAL:1 = 0x00FF00
	ELSE
		LOCAL:1 = カラー_シアン
	ENDIF

	CALL PRINT_COLORBAR(BASE:(ARG:0):精神力, MAXBASE:(ARG:0):精神力, 43, UNICODE(0x2585), UNICODE(0x2585), LOCAL:1, 0x404040)
	PRINT

	SETCOLOR LOCAL:1

	IF LOCAL:0 < 0
		PRINT 絶望
	ELSEIF LOCAL:0 <= 50
		PRINT 屈服
	ELSEIF LOCAL:0 <= 75
		PRINT 消耗
	ELSE
		PRINT 平常
	ENDIF
	RESETCOLOR
	PRINT
ENDIF

;-------------------------------------------------
;短縮版BASE情報の表示(体力)
;ARG:0はキャラ番号、ARG:1はBASE番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_BASE1(ARG:0, ARG:1, ARGS:2)
;PRINTFORM %ARGS:2%:

LOCAL:0 = BASE:(ARG:0):(ARG:1) * 100 / MAXBASE:(ARG:0):(ARG:1)

IF LOCAL:0 >= 80
	SETCOLOR 0x8080FF
ELSEIF LOCAL:0 >= 40
	SETCOLOR 0x40FF40
ELSEIF BASE:(ARG:0):(ARG:1) >= 500
	SETCOLOR 0xD0D000
ELSEIF BASE:(ARG:0):(ARG:1) > 0
	SETCOLOR 0xD08000
ELSE
	SETCOLOR 0x808080
ENDIF
;PRINTFORM {LOCAL:0, 3, RIGHT}
PRINTFORM ({BASE:(ARG:0):(ARG:1), 4, LEFT}/{MAXBASE:(ARG:0):(ARG:1), 4, LEFT})

IF TCVAR:(ARG:0):行動不能フラグ
	SETCOLOR カラー_選択不可
	PRINT -
ELSEIF TCVAR:(ARG:0):メイガスの夜
	SETCOLOR 0x40FF40
	PRINT +
ELSE
	PRINT
ENDIF
RESETCOLOR
PRINT

;-------------------------------------------------
;短縮版BASE情報の表示(気力)
;ARG:0はキャラ番号、ARG:1はBASE番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_BASE2(ARG:0, ARG:1, ARGS:2)
;PRINTFORM %ARGS:2%:
LOCAL:0 = BASE:(ARG:0):(ARG:1) * 100 / MAXBASE:(ARG:0):(ARG:1)
IF LOCAL:0 >= 80
	SETCOLOR 0x8080FF
ELSEIF LOCAL:0 >= 40
	SETCOLOR 0x40FF40
ELSEIF BASE:(ARG:0):(ARG:1) >= 300
	SETCOLOR 0xD0D000
ELSEIF BASE:(ARG:0):(ARG:1) > 0
	SETCOLOR 0xD08000
ELSE
	SETCOLOR 0x808080
ENDIF
;PRINTFORM {LOCAL:0, 3, RIGHT}
PRINTFORM ({BASE:(ARG:0):(ARG:1), 4, LEFT}/{MAXBASE:(ARG:0):(ARG:1), 4, LEFT})
IF TCVAR:(ARG:0):失神フラグ
	SETCOLOR カラー_選択不可
	PRINT -
ELSEIF TCVAR:(ARG:0):メイガスの夜
	SETCOLOR 0x40FF40
	PRINT +
ELSE
	PRINT
ENDIF
RESETCOLOR

PRINT

;---------------------------------------------------------
;実行判定を呼び出してコマンドごとにチェックする処理
;TRYCCALLFORMを使うので式中関数にはできない
;---------------------------------------------------------
@PRE_COMORDER, ARG
;[323]髪を梳いて貰うコマンドだけは途中でINPUTあるので処理しない。
SIF ARG == 323
	RETURN 0

TFLAG:46 = -10000
TRYCCALLFORM COM_ORDER_{ARG}
	;実行できない場合
	IF TFLAG:46 < TFLAG:47
		RETURN 1
		;実行できる場合
	ELSE
		RETURN 0
	ENDIF
CATCH
	;元々実行判定のないコマンドの場合
	RETURN 0
ENDCATCH

;-------------------------------------------------
;独自コマンドの表示処理
;-------------------------------------------------
@SHOW_USERCOM

;-------------------------------------------------
;干渉するコマンドの解消
; COM_NUM コマンド番号
;-------------------------------------------------
@RELEASE_CONFLICT_COM(COM_NUM)
#DIM DYNAMIC COM_NUM
#DIM DYNAMIC IS_RELEASED
#DIM DYNAMIC MEQUIP_INDEX
#DIM DYNAMIC MEQUIP_INDEX_TMP
#DIM DYNAMIC CHARA_INDEX

;現在の装着物リストをTMPに退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	;SIF MEQUIP:MEQUIP_INDEX != -1
	;    PRINTFORML MEQUIP {MEQUIP:MEQUIP_INDEX} STORED AT TMP POSITION {MEQUIP_INDEX} WITH PLY {MEQUIP_PLAYER:MEQUIP_INDEX:0} TAR {MEQUIP_TARGET:MEQUIP_INDEX:0}
	MEQUIP_TMP:MEQUIP_INDEX = MEQUIP:MEQUIP_INDEX
	MEQUIP_PLAYER_NUM_TMP:MEQUIP_INDEX = MEQUIP_PLAYER_NUM:MEQUIP_INDEX
	MEQUIP_TARGET_NUM_TMP:MEQUIP_INDEX = MEQUIP_TARGET_NUM:MEQUIP_INDEX
	MEQUIP_INITIATIVE_TMP:MEQUIP_INDEX = MEQUIP_INITIATIVE:MEQUIP_INDEX
	MEQUIP_OPTION_TMP:MEQUIP_INDEX = MEQUIP_OPTION:MEQUIP_INDEX
	MEQUIP_TURN_TMP:MEQUIP_INDEX = MEQUIP_TURN:MEQUIP_INDEX
	HO_MEQUIP_LOCK_TMP:MEQUIP_INDEX = HO_MEQUIP_LOCK:MEQUIP_INDEX
NEXT
;装着物の実行者を退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
		MEQUIP_PLAYER_TMP:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX
	NEXT
NEXT
;装着物の対象者を退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
		MEQUIP_TARGET_TMP:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX
	NEXT
NEXT

;装着物リストを初期化
VARSET MEQUIP, -1
VARSET MEQUIP_PLAYER_NUM
VARSET MEQUIP_TARGET_NUM
VARSET MEQUIP_PLAYER, -1
VARSET MEQUIP_TARGET, -1
VARSET MEQUIP_INITIATIVE
VARSET MEQUIP_OPTION
VARSET HO_MEQUIP_LOCK
VARSET MEQUIP_TURN

;装着物の連番
MEQUIP_INDEX = 0
;退避した装着物を一つずつ戻す
FOR MEQUIP_INDEX_TMP, 0, MEQUIP_NUM
	;装着物の設定
	MEQUIP:MEQUIP_INDEX = MEQUIP_TMP:MEQUIP_INDEX_TMP
	MEQUIP_PLAYER_NUM:MEQUIP_INDEX = MEQUIP_PLAYER_NUM_TMP:MEQUIP_INDEX_TMP
	MEQUIP_TARGET_NUM:MEQUIP_INDEX = MEQUIP_TARGET_NUM_TMP:MEQUIP_INDEX_TMP
	FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
		MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_PLAYER_TMP:MEQUIP_INDEX_TMP:CHARA_INDEX
	NEXT
	FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
		MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_TARGET_TMP:MEQUIP_INDEX_TMP:CHARA_INDEX
	NEXT
	MEQUIP_INITIATIVE:MEQUIP_INDEX = MEQUIP_INITIATIVE:MEQUIP_INDEX_TMP
	MEQUIP_OPTION:MEQUIP_INDEX = MEQUIP_OPTION_TMP:MEQUIP_INDEX_TMP
	HO_MEQUIP_LOCK:MEQUIP_INDEX = HO_MEQUIP_LOCK:MEQUIP_INDEX_TMP
	MEQUIP_TURN:MEQUIP_INDEX = MEQUIP_TURN_TMP:MEQUIP_INDEX_TMP

	COM_ENABLE = 1
	;FLAG:RECHECKINGをONにすると、干渉中コマンドを解消してくれない場合があるのでコメントアウト
	;FLAG:RECHECKING = 1
	RESULT = 0
	;対象の装着物のみの状態でコマンド実行可能か確認することで干渉を判定
	TRYCALLFORM COM_ABLE{COM_NUM}
	COM_ENABLE = 0
	;FLAG:RECHECKING = 0
	;干渉しない場合は次の装着物を確認
	IF RESULT
		MEQUIP_INDEX ++
		;干渉する場合
	ELSE
		RESULT = 0
		;継続ロック時の強制解除判定
		IF HO_MEQUIP_LOCK:MEQUIP_INDEX
			COM_ENABLE = 1
			FLAG:RECHECKING = 1
			TRYCALLFORM COM_ABLE_AT_EQUIP_LOCKED{COM_NUM}
			COM_ENABLE = 0
			FLAG:RECHECKING = 0
			;DEBUGPRINTFORML TEST COM = {SELECTCOM}, MEQUIP_INDEX_TMP = {MEQUIP_INDEX}
		ENDIF
		IF RESULT
			MEQUIP_INDEX ++
			;装着物の解除
		ELSE
			MEQUIP:MEQUIP_INDEX = -1
			MEQUIP_PLAYER_NUM:MEQUIP_INDEX = 0
			MEQUIP_TARGET_NUM:MEQUIP_INDEX = 0
			FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
				MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX = -1
			NEXT
			FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
				MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX = -1
			NEXT
			MEQUIP_INITIATIVE:MEQUIP_INDEX = 0
			MEQUIP_OPTION:MEQUIP_INDEX = 0
			HO_MEQUIP_LOCK:MEQUIP_INDEX = 0
			MEQUIP_TURN:MEQUIP_INDEX = 0
			CALL COLOR_PRINTL(@"※%TRAINNAME:(COM_NUM)%と干渉する、%TRAINNAME:(MEQUIP_TMP:MEQUIP_INDEX_TMP)%を解除しました※", カラー_選択不可)
			IS_RELEASED = 1
		ENDIF
	ENDIF
NEXT
MEQUIP_NUM = MEQUIP_INDEX
IF IS_RELEASED
	WAIT
ENDIF

; #endregion
;-------------------------------------------------
@FORCE_COM()
;-------------------------------------------------
#DIM FIRST_LINE
#DIM 有効コマンド数
#DIM ページ数
#DIM 現在ページ
#DIM 始点
#DIM 終点
#DIM ページ内表示数
#DIM 改行カウンタ
#DIM スイッチ

;ページ数の計算
有効コマンド数 = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		有効コマンド数 ++
	ENDIF
NEXT
ページ数 = (有効コマンド数 - 1) / 66 + 1
現在ページ = 1

CALL SINGLE_DRAWLINE
PRINTFORML 分かってる人むけの機能です：バグってもサポートしません
SIF FLAG:逆調教コマンド強制 >= 0
	PRINTFORML 現在:%TRAINNAME:(FLAG:逆調教コマンド強制 % MAX(スイッチ * 1000, 1000))%
CALL SINGLE_DRAWLINE
FIRST_LINE = LINECOUNT
$SHOW_LOOP

;コマンドの表示
有効コマンド数 = 0
始点 = (現在ページ - 1) * 88
終点 = 現在ページ * 88
改行カウンタ = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		IF 有効コマンド数 >= 始点 && 有効コマンド数 < 終点
			IF 改行カウンタ >= 1 && 改行カウンタ % 4 == 0
				PRINTL
			ENDIF
			RESULT = 0
			PRINTFORM [{LOCAL:0, 3}] %TRAINNAME:(LOCAL:0), 21, LEFT%
			RESETCOLOR
			改行カウンタ ++
		ENDIF
		有効コマンド数 ++
	ENDIF
NEXT
PRINTL
CALL SINGLE_DRAWLINE

PRINT [990] 前のページ
PRINTPLAINFORM page{現在ページ}/{ページ数}
PRINTL [991] 次のページ

CALL SINGLE_DRAWLINE
CALL PRINTBUTTON_EX("[996] 本人が実行", 996, 1, スイッチ == 0)
PRINT
CALL PRINTBUTTON_EX("[997] 対象が実行", 997, 1, スイッチ == 1)
PRINT
CALL PRINTBUTTON_EX("[998] 第三者が実行", 998, 1, スイッチ == 2)
PRINT
PRINTL [999] 戻る

REDRAW 0

$INPUT_LOOP
INPUT

IF RESULT == 999
	FLAG:逆調教コマンド強制 = -1
	REDRAW 1
	RETURN
ELSEIF RESULT == 996
	スイッチ = 0
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 997
	スイッチ = 1
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 998
	スイッチ = 2
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 990
	現在ページ --
	IF 現在ページ < 1
		現在ページ = ページ数
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 991
	現在ページ ++
	IF 現在ページ > ページ数
		現在ページ = 1
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT >= 0 && RESULT < 1000
	LOCAL:5 = RESULT
	IF TRAINNAME:(LOCAL:5) != ""
		FLAG:逆調教コマンド強制 = LOCAL:5 + スイッチ * 1000
		PRINTFORMW 設定しました
		REDRAW 1
		RETURN
	ENDIF
ENDIF
CLEARLINE 1
GOTO INPUT_LOOP


code:
;-------------------------------------------------
; プレイヤー追加/解除(往来のボタン方式)
;-------------------------------------------------
@USERCOM_TOGGLE_PLAYER(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4000 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            IF IS_MPLY(LOCAL:0)
                CALL DEL_MPLY(LOCAL:0)
            ELSEIF IS_PLAYABLE(LOCAL:0)
                CALL ADD_MPLY(LOCAL:0)
                CALL DEL_MTAR(LOCAL:0)
            ENDIF
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー切り替え
;-------------------------------------------------
@USERCOM_CHANGE_PLAYER(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4020 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            CALL CLEAR_MPLY
            CALL ADD_MPLY(LOCAL:0)
            CALL DEL_MTAR(LOCAL:0)
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; ターゲット追加/解除
;-------------------------------------------------
@USERCOM_TOGGLE_TARGET(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        ;酔い限界(離脱フラグ = 1)はターゲットにはとれるように
        IF RESULT - 4040 == LOCAL:1 && !(TCVAR:(LOCAL:0):離脱フラグ > 1)
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            IF IS_MTAR(LOCAL:0)
                CALL DEL_MTAR(LOCAL:0)
            ELSE
                CALL ADD_MTAR(LOCAL:0)
                CALL DEL_MPLY(LOCAL:0)
            ENDIF
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; ターゲット切り替え
;-------------------------------------------------
@USERCOM_CHANGE_TARGET(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4060 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            CALL CLEAR_MTAR
            CALL ADD_MTAR(LOCAL:0)
            CALL DEL_MPLY(LOCAL:0)
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー追加/解除/切替(ポートレイトからのctrl+右クリック)
;-------------------------------------------------
@USERCOM_CHANGE_PLAYER_NEW(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM CHARA_ID

CHARA_ID = INPUT_VALUE - HO_キャラボタンID
IF !IS_PARTICIPATE_TRAIN(CHARA_ID)
    RETURN 0
ENDIF

IF !IS_MPLY(CHARA_ID)
    ;+SHIFT入力の場合プレイヤー追加
    IF !GETBIT(INPUT_OPTION2, 16)
        CALL CLEAR_MPLY()
    ENDIF
    CALL DEL_MTAR(CHARA_ID)
    CALL ADD_MPLY(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ELSEIF IS_MPLY(CHARA_ID)
    CALL DEL_MPLY(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ENDIF
RETURN 0

;-------------------------------------------------
; ターゲット追加/解除/切替(ポートレイトからのctrl+右クリック)
;-------------------------------------------------
@USERCOM_CHANGE_TARGET_NEW(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM CHARA_ID

CHARA_ID = INPUT_VALUE - HO_キャラボタンID
IF !IS_PARTICIPATE_TRAIN(CHARA_ID)
    RETURN 0
ENDIF

IF !IS_MTAR(CHARA_ID)
    ;+SHIFT入力の場合ターゲット追加
    IF !GETBIT(INPUT_OPTION2, 16)
        CALL CLEAR_MTAR()
    ENDIF
    CALL DEL_MPLY(CHARA_ID)
    CALL ADD_MTAR(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ELSEIF IS_MTAR(CHARA_ID)
    CALL DEL_MTAR(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ENDIF
RETURN 0

;-------------------------------------------------
; 主導権切り替え
;-------------------------------------------------
@USERCOM_CHANGE_INITIATIVE(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC TRAIN_CHARA_NO
#DIM DYNAMIC TARGET_TRAIN_CHARA_NO

TRAIN_CHARA_NO = 0
TARGET_TRAIN_CHARA_NO = INPUT_VALUE - 4100
FOR CHARA_ID, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(CHARA_ID)
        IF TRAIN_CHARA_NO == TARGET_TRAIN_CHARA_NO && !TCVAR:(CHARA_ID):行動不能フラグ && !TCVAR:(CHARA_ID):失神フラグ && !TCVAR:(CHARA_ID):離脱フラグ
            ;捕虜調教のメインターゲットは主導権を持てない
            IF !(FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, CHARA_ID) != -1)
                FLAG:継続コマンド表示絞り込み選択中キャラ = CHARA_ID
                IF FLAG:主導権所有者 == CHARA_ID
                    FLAG:主導権所有者 = -1
                ELSE
                    FLAG:主導権所有者 = CHARA_ID
                ENDIF
                ;実行可能なコマンドの記録
                CALL CREATE_COMABLE_LIST
                CLEARLINE LINECOUNT - LINES_TRAIN
                CALL RESERVE_ACTOR
                ;LINES_TRAIN = LINECOUNT
                RETURN 1
            ENDIF
        ENDIF
        TRAIN_CHARA_NO ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー/ターゲット反転
;-------------------------------------------------
@USERCOM_INVERT_ACTOR(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
CALL INVERT_ACTOR()
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
CALL RESERVE_ACTOR
RETURN 1

;-------------------------------------------------
; 対象リセット
;-------------------------------------------------
@USERCOM_RESET_ACTOR(INPUT_VALUE)
#DIM INPUT_VALUE
CALL RESET_ACTOR
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
CALL RESERVE_ACTOR
	RETURN 1

repo_name: napo/erafl

license: unknown


code:
;-------------------------------------------------
;独自コマンドの入力処理
;-------------------------------------------------
@FL_USERCOM
; #region USERCOM
#DIM FIRST_LINE
VARI MOUSE_BTN

INPUTS , 1
;RESULT:0 入力したボタン番号
;RESULT:1 クリックの種類(1=左クリック,2=右クリック,3=中央クリック)
;RESULT:2 補助キーの種類(Shift, Ctrl, Alt)
MOUSE_BTN = RESULT:1
;DEBUGPRINTFORML INPUT:{RESULT},INPUTS:%RESULTS% BTN = {RESULT:1}

IF ISNUMERIC(RESULTS)
	RESULT = TOINT(RESULTS)
	RESULTS '= ""
	CLEARLINE 1
	;ウィンドウのボタン以外が押された場合
ELSEIF RESULTS == "_"
	RESULT = -1
	RESULTS '= ""
	CLEARLINE 1
ELSE
	;非ボタンが押された場合
	RESULT = -1
ENDIF

;プレイヤー/ターゲット
;-------------------------------------------------
;プレイヤー追加・解除
IF RESULT >= 4000 && RESULT < 4020
	CALL USERCOM_TOGGLE_PLAYER(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;プレイヤー切り替え
ELSEIF RESULT >= 4020 && RESULT < 4040
	CALL USERCOM_CHANGE_PLAYER(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ターゲット追加・解除
ELSEIF RESULT >= 4040 && RESULT < 4060
	CALL USERCOM_TOGGLE_TARGET(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ターゲット切り替え
ELSEIF RESULT >= 4060 && RESULT < 4080
	CALL USERCOM_CHANGE_TARGET(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ポートレートからのミドルクリックによるP/T操作
ELSEIF RESULT:1 == 3 && INRANGE(RESULT:0, HO_キャラボタンID, HO_キャラボタンID + 10000) &&  GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	;Ctrlが押下されている場合PLAYER切替  && TFLAG:参加者数 >= 2
	IF GETBIT(RESULT:2, 17) && TFLAG:参加者数 >= 1
		CALL USERCOM_CHANGE_PLAYER_NEW(RESULT:0, RESULT:1, RESULT:2)
		RETURN RESULT
	ELSEIF TFLAG:参加者数 >= 1
		CALL USERCOM_CHANGE_TARGET_NEW(RESULT:0, RESULT:1, RESULT:2)
		RETURN RESULT
	ENDIF
	RETURN 0
	;主導権
	;-------------------------------------------------
	;主導権切り替え
ELSEIF RESULT >= 4100 && RESULT < 4120
	CALL USERCOM_CHANGE_INITIATIVE(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0
	;行動側反転
ELSEIF RESULT == 5900 && GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	CALL USERCOM_INVERT_ACTOR(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0
	;対象のリセット
ELSEIF RESULT == 5901 && GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	CALL USERCOM_RESET_ACTOR(RESULT:0)
	RETURN 0

	;情報
ELSEIF RESULT >= 4080 && RESULT < 4100
	CLEARLINE 1
	LOCAL:2 = RESULT - 4080
	LOCAL:1 = 0
	VARSET SHOP_CHARA_LIST, -1

	FOR LOCAL:0, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL:0)
			SHOP_CHARA_LIST:(LOCAL:1) = LOCAL:0
			LOCAL:1 ++
		ENDIF
	NEXT
	LOCAL:1 = 0
	FOR LOCAL:0, 0, CHARANUM
		SIF !IS_PARTICIPATE_TRAIN(LOCAL:0)
			CONTINUE
		IF SHOP_CHARA_LIST:(LOCAL:2) == LOCAL
			FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
			CALL SHOW_INFO_WITH_UI(LOCAL:0, 1, FLAG:ウフフフラグ)
			CLEARLINE LINECOUNT - LINES_TRAIN
			RETURN 1
		ENDIF
		LOCAL:1 ++
	NEXT
	CLEARLINE LINECOUNT - LINES_TRAIN
	;LINES_TRAIN = LINECOUNT
	RETURN 0
ELSEIF RESULT == 5903
	FLAG:調教中表示簡略化 = !FLAG:調教中表示簡略化
	IF FLAG:調教中表示簡略化
		PRINTFORML コマンド実行時の表示のうち、
		PRINTFORMW 体力変動やソース変動の表示をカットします。
	ELSE
		PRINTFORML コマンド実行時の表示のうち、
		PRINTFORMW 体力変動やソース変動の表示も表示します。
	ENDIF
ELSEIF RESULT == 5904
	FLAG:継続コマンド表示絞り込み = !FLAG:継続コマンド表示絞り込み
	IF FLAG:継続コマンド表示絞り込み
		PRINTFORML 継続中のコマンド一覧の表示を、
		PRINTFORMW 最後に選択したキャラが関係するもののみに絞ります。
	ELSE
		PRINTFORML 継続中のコマンド一覧の表示を、
		PRINTFORMW 全て表示します。
	ENDIF
ELSEIF RESULT == 5905
	CALL CONFIG_COM_FILTER
	;EQUIP解除
ELSEIF RESULT >= 6000 && RESULT <= 6000 + MAX_MEQUIP
	REDRAW 0
	CLEARLINE 1
	REDRAW 1
	LOCAL = RESULT - 6000
	TRYCALLFORM COM_BEFORE_RELEASE_EQUIP{MEQUIP:LOCAL}(LOCAL)
	;[IF_DEBUG]
	;CALL RELEASE_EQUIP(LOCAL, 1)
	;[ENDIF]
	;[IF_NDEBUG]
	CALL RELEASE_EQUIP(LOCAL)
	;[ENDIF]
ELSEIF RESULT == 5995
	INVERTBIT FLCONFIG:リアクション許可, 0
	[IF_DEBUG]
ELSEIF RESULT == 5996
	CALL FORCE_COM
	[ENDIF]

	;行動終了
ELSEIF RESULT == 5999
	;ハウジングモード時の処理
	IF FLAG:ハウジングモード == 1
		CALL TRAIN_EXIT(1)
		RETURN 1
	ENDIF
	;逆調教・主人公が行動不能のときは自分の意志で終了できない
	[IF_DEBUG]
	PRINTFORMW (デバッグ_調教を終了します)
	IF FLAG:調教モード == 調教_捕虜調教
		PRINTFORMW （調教を終了します）
		CALL FL_TRAINEXIT
		;ウフフ中
	ELSEIF FLAG:ウフフフラグ
		PRINTFORMW （夜伽を終了します）
		CALL FL_TRAINEXIT
	ELSE
		CALL TRAIN_EXIT()
	ENDIF
	RETURN 1
	[ENDIF]
	IF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常) || !IS_PLAYABLE(MASTER)
		RETURN 0
		;捕虜調教
	ELSEIF FLAG:調教モード == 調教_捕虜調教
		PRINTFORMW （調教を終了します）
		CALL FL_TRAINEXIT
		;ウフフ中
	ELSEIF FLAG:ウフフフラグ
		PRINTFORMW （夜伽を終了します）
		CALL FL_TRAINEXIT
	ELSE
		CALL TRAIN_EXIT()
	ENDIF
	RETURN 1

ELSEIF RESULT == 5997
	CALL CONFIG_HELPMENU

	;DEBUG_MENU
ELSEIF RESULT == 999999999
	[IF_DEBUG]
	CALL FL_TRAIN_DEBUG_MENU
	[ENDIF]
	;タブ設定
ELSEIF RESULT >= 2000 && RESULT <= 2013
	{
		IF FLAG:ウフフフラグ
			|| (FLAG:調教モード == 調教_会う && GROUPMATCH(RESULT, 2007, 2008, 2006))
			|| (FLAG:調教モード == 調教_子育て && GROUPMATCH(RESULT, 2007))
			|| (FLAG:調教モード == 調教_捕虜会話 && GROUPMATCH(RESULT, 2007, 2008))
			|| (FLAG:調教モード == 調教_居住区 && GROUPMATCH(RESULT, 2006, 2009, 2010, 2011, 2012))
			|| (FLAG:調教モード == 調教_クエスト && GROUPMATCH(RESULT, 2013))
			|| (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可 && GROUPMATCH(RESULT, 2013, 2006, 2009, 2010, 2011, 2012))
	}
		TFLAG:調教タブ設定 = RESULT - 2000
	ENDIF
	CLEARLINE LINECOUNT - LINES_TRAIN
	;LINES_TRAIN = LINECOUNT
	;逆調教・行動不能時の「なすがまま」、覗き見モード中の「のぞく」、奉仕モード中の「奉仕される」「奉仕をつづける」
ELSEIF RESULT == 0 && (GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安) || !IS_PLAYABLE(MASTER))
	;強制実行コマンドが設定されている場合
	IF TRAIN_FORCED_COM_NUM > 0
		CALL DO_TRAIN_FORCED_COM()
		RETURN 1
	ENDIF
	;おまかせフラグON(主導権所有者の変動やコマンド実行判定なし)
	TFLAG:おまかせ中 = 1
	TFLAG:主導権所有者 = 1
	CALL COM_AUTOSELECT
	CALL FL_DOTRAIN(RESULT:0, RESULT:1)
	;干渉解除
ELSEIF RESULT >= 10000 && RESULT < 11000
	LOCAL = RESULT - 10000
	SIF !COM_CONFLICT_FLAG:LOCAL
		RETURN 0
	RESULT = 0
	CALL RELEASE_CONFLICT_COM(LOCAL)
	;コマンド及び独自ユーティリティ実行
ELSEIF RESULT >= 0 && RESULT < 2000
	IF TRAIN_FORCED_COM_NUM > 0
		CALL DO_TRAIN_FORCED_COM()
		RETURN 1
	ENDIF

	VARI COM_NUM = -1
	;主人公主導、単発
	IF RESULT < 1000
		COM_NUM = RESULT
		TFLAG:非継続フラグ = 1
	ELSEIF RESULT < 2000
		COM_NUM = RESULT - 1000
		TFLAG:非継続フラグ = 0
	ENDIF

	;コマンドの実行
	IF COM_NUM >= 0 && COM_ABLE_FLAG:COM_NUM
		;290「欲望に従う」
		IF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "欲望に従う"))
			FLAG:主導権所有者 = MASTER
			CALL COM_AUTOSELECT(MPLY:0)
			CALL FL_DOTRAIN(RESULT:0, RESULT:1)
			;291「おまかせする」
		ELSEIF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "おまかせする"))
			CALL COM291_AUTOEXEC_COM
			;393「なりゆきまかせ」
		ELSEIF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "なりゆきまかせ"))
			;おまかせフラグON
			TFLAG:おまかせ中 = 1
			CALL COM_AUTOSELECT_N
			;それ以外の調教コマンド
		ELSE
			;おまかせフラグOFF
			TFLAG:おまかせ中 = 0
			;リアクションとしての実行でない場合、実行時のMPLY,MTARを保存
			IF !TFLAG:リアクションコマンド実行
				CALL RESERVE_ACTOR
			ENDIF
			CALL FL_DOTRAIN(COM_NUM)
		ENDIF
	ENDIF
	;ハウジング関連の処理実行
	;ELSEIF (FLAG:調教モード == 調教_居住区  || FLAG:ハウジングモード == 1) && RESULT >= HO_キャラボタンID
ELSEIF RESULT >= HO_キャラボタンID
	CALL HOUSING_TRAIN_INPUT(RESULT:0,RESULT:1, RESULT:2, RESULTS)
ELSEIF DIC_CONTAINSKEY(RESULTS, "STATUS_WINDOW")
	CALL HO_STATUS_WINDOW_INPUT(RESULTS)
	;ボタンのない箇所を右クリックした場合
ELSEIF (RESULT:1 >= 2 && RESULT:1 == FLCONFIG:ステータスタブ切替ショートカット) && RESULT:0 == -1 && RESULTS == ""
	HO_DRAW_GUI_MODE = HO_DRAW_GUI_MODE == 0 ? 1 # 0
ENDIF

IF RESULTS != ""
	IF DIC_CONTAINSKEY(RESULTS, "CHANGE_COM_OPTION")
		CLEARLINE 1
		LOCAL = DIC_GETINT(RESULTS, "CHANGE_COM_OPTION")
		TRYCALLFORM COM_HAS_OPTION(LOCAL)
		IF RESULT
			CALL COM_OPTION(LOCAL)
			RETURN
		ENDIF
	ENDIF
ENDIF

RETURN 0


code:
@COM_SLG_TRAIN_MAIN_PROCESS(能力, 育児フラグ)
#DIM 能力
#DIM 育児フラグ
#DIM 乱数基準値, 2
#DIM 適正, 2
;コマンドの成否をTFLAG:コマンド成否にセット
CALL JUDGE_COM_RESULT(MTAR:0, 5, 5)

乱数基準値:0 = MAX(100 - ABL:(MPLY:0):能力 / 3, 30)
乱数基準値:1 = MAX(100 - ABL:(MTAR:0):能力 / 3, 30)

IF ABL:(MPLY:0):能力 > ABL:(MTAR:0):能力 + 10
	乱数基準値:0 -= 10
	乱数基準値:1 += 10
ELSEIF ABL:(MTAR:0):能力 > ABL:(MPLY:0):能力 + 10
	乱数基準値:1 += 10
	乱数基準値:0 -= 10
ENDIF

SELECTCASE TFLAG:コマンド成否
	CASE -1
		乱数基準値:0 -= 10
		乱数基準値:1 -= 10
	CASE 0
	CASEELSE
		乱数基準値:0 += 10
		乱数基準値:1 += 10
ENDSELECT

適正:0 = GROWTYPE_RATE(MPLY:0, ABLNAME:能力)
適正:1 = GROWTYPE_RATE(MTAR:0, ABLNAME:能力)

乱数基準値:0 += (適正:0 - 100) / 10
乱数基準値:1 += (適正:1 - 100) / 10

IF ABL:(MPLY:0):能力 > ランク閾値:ランク_ＳＬＧ:ランク_B
	TIMES 乱数基準値:0, 0.75
ELSEIF ABL:(MPLY:0):能力 < ランク閾値:ランク_ＳＬＧ:ランク_D
	TIMES 乱数基準値:0, 1.3
ENDIF
IF ABL:(MTAR:0):能力 > ランク閾値:ランク_ＳＬＧ:ランク_B
	TIMES 乱数基準値:1, 0.75
ELSEIF ABL:(MTAR:0):能力 < ランク閾値:ランク_ＳＬＧ:ランク_D
	TIMES 乱数基準値:1, 1.3
ENDIF

SIF TALENT:(MPLY:0):サボり魔
	TIMES 乱数基準値:0, 0.8
SIF TALENT:(MTAR:0):サボり魔
	TIMES 乱数基準値:1, 0.8

IF 育児フラグ == 0
	;適性がなく好感度・従属度が低いと恐怖と反感のソースを得る
	IF 適正:1 < 100
		SOURCE:(MTAR:0):歓楽 = 0
		SOURCE:(MTAR:0):恐怖 = MAX(0, 100 - MAX(CFLAG:(MTAR:0):好感度, CFLAG:(MTAR:0):従属度) * 100 / 800)
		SOURCE:(MTAR:0):不安 = MAX(0, 200 - MAX(CFLAG:(MTAR:0):好感度, CFLAG:(MTAR:0):従属度) * 200 / 500)
	ENDIF

	SOURCE:(MTAR:0):歓楽 = 20 * 適正 / 100

	;親密に応じた歓楽のソース追加
	CALL ADD_SOURCE_KANRAKU(MTAR:0, 100 + (適正:1 - 100) /2)

	;主導権に応じたソースの追加
	CALL ADD_SOURCE_INITIATIVE_N(MPLY:0, 100, 100)
	CALL ADD_SOURCE_INITIATIVE_N(MTAR:0, 100, 100)

	;ターゲットがサボり魔なら効果減少
	IF TALENT:(MTAR:0):サボり魔
		TIMES SOURCE:(MTAR:0):歓楽, 0.80
		SOURCE:(MTAR:0):反感 = 70 - SOURCE:(MTAR:0):歓楽 / 3
	ENDIF

	;失敗
	IF TFLAG:コマンド成否 == -1
		TIMES SOURCE:(MTAR:0):歓楽, 0.20
		TIMES SOURCE:(MTAR:0):不安, 1.50
		SOURCE:(MTAR:0):不満 += 300
		;	LOCAL:2 = 1
		;成功
	ELSEIF TFLAG:コマンド成否 == 0
		;	LOCAL:2 = 1
		;大成功
	ELSE
		TIMES SOURCE:(MTAR:0):歓楽, 2.00
		TIMES SOURCE:(MTAR:0):不安, 0.50
		;	LOCAL:2 = 2
	ENDIF

	;運動することにより、締まりが改善する！　歌唱とか下腹部に力はいるし！
	;失敗0　成功0～1　大成功0～2
	IF (能力 == GETNUM(ABL, "身体")) || (能力 == GETNUM(ABL, "歌唱"))
		SIF HAS_VAGINA(MPLY:0)
			TALENT:(MPLY:0):Ｖ締まり = LIMIT(TALENT:(MPLY:0):Ｖ締まり + RAND:(TFLAG:コマンド成否 + 2), 締まり_最低値, 締まり_最高値)
		TALENT:(MPLY:0):Ａ締まり = LIMIT(TALENT:(MPLY:0):Ａ締まり + RAND:(TFLAG:コマンド成否 + 3), 締まり_最低値, 締まり_最高値)
		SIF HAS_VAGINA(MTAR:0)
			TALENT:(MTAR:0):Ｖ締まり = LIMIT(TALENT:(MTAR:0):Ｖ締まり + RAND:(TFLAG:コマンド成否 + 2), 締まり_最低値, 締まり_最高値)
		TALENT:(MTAR:0):Ａ締まり = LIMIT(TALENT:(MTAR:0):Ａ締まり + RAND:(TFLAG:コマンド成否 + 3), 締まり_最低値, 締まり_最高値)
	ENDIF

	;精神力の強化
	SIF MAXBASE:(MTAR:0):精神力 < 3000 || (MAXBASE:(MTAR:0):精神力 < 3500 && RAND:5 == 0)
		MAXBASE:(MTAR:0):精神力 = MIN(MAXBASE:(MTAR:0):精神力 + 2, 3500)

	;体力の強化
	IF MAXBASE:(MTAR:0):体力 < 1600
		MAXBASE:(MTAR:0):体力 += 2
	ELSEIF MAXBASE:(MTAR:0):体力 < 2000
		MAXBASE:(MTAR:0):体力 += 1
	ELSEIF MAXBASE:(MTAR:0):体力 < 3000 && RAND:5 == 0
		MAXBASE:(MTAR:0):体力 += 1
	ENDIF

	;気力の強化
	IF MAXBASE:(MTAR:0):気力 < 1600
		MAXBASE:(MTAR:0):気力 += 1
	ELSEIF MAXBASE:(MTAR:0):気力 < 2000 && RAND:2 == 0
		MAXBASE:(MTAR:0):気力 += 1
	ELSEIF MAXBASE:(MTAR:0):気力 < 2500 && RAND:6 == 0
		MAXBASE:(MTAR:0):気力 += 1
	ENDIF
	;主導度変化基準値
	TFLAG:主導度変化基準値 = 2

	;倒錯度変化基準値
	TFLAG:倒錯度変化基準値 = -1
ENDIF

IF !TALENT:(MTAR:0):幼児

	LOCAL = (RAND:100 < 乱数基準値:0)

	IF LOCAL
		SELECTCASE ABL:(MPLY:0):能力
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_C
				LOCAL += RAND:3
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_B
				LOCAL += RAND:2
		ENDSELECT
	ENDIF

	EXP:(MPLY:0):GET_EXP(能力) += LOCAL

	IF LOCAL:2
		LOCAL = RAND:2 + 2
	ELSE
		LOCAL = (RAND:100 < 乱数基準値:1)
	ENDIF

	IF LOCAL
		SELECTCASE ABL:(MTAR:0):能力
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_C
				LOCAL += RAND:3
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_B
				LOCAL += RAND:2
		ENDSELECT
	ENDIF

	EXP:(MTAR:0):GET_EXP(能力) += LOCAL

ELSE
	FOR LOCAL, 0, 10
		EXP:(MTAR:0):GET_EXP(能力) += (RAND:100 < 乱数基準値:1)
	NEXT
ENDIF


code:
;全般的に使用する変数を定義(SLG部分のみで使用する変数は SLG\SLG_VARIABLE.ERH へ)

;-------------------------------------------------
;■システムに関する変数
;-------------------------------------------------
;拡張CSV
#DIM  KOJOEVENT, 1000
;調教の行われている場所
#DIMS TRAIN_PLACE
#DIM CONST MAX_ACTOR = 100
;マルチターゲット、ターゲットを複数取るために導入する変数
;※ターゲットを追加・削除するときは必ずADD_MTAR、DEL_MTAR関数を使うこと
#DIM MTAR, MAX_ACTOR
#DIM MTAR_TMP, MAX_ACTOR

;現在のターゲット数
#DIM MTAR_NUM
#DIM MTAR_NUM_TMP

;マルチプレイヤー、プレイヤーを複数取るために導入する変数
;※プレイヤーを追加・削除するときは必ずADD_MPLY、DEL_MPLY関数を使うこと
#DIM MPLY, MAX_ACTOR
#DIM MPLY_TMP, MAX_ACTOR

;現在のプレイヤー数
#DIM MPLY_NUM
#DIM MPLY_NUM_TMP

;捕虜調教のターゲット
#DIM SAVEDATA PRISONER_TARGET, 9

;選んだ登録キャラID
#DIM MASTER_ID

;USERCOMでこのコマンドが使用できるか
#DIM COM_ABLE_FLAG, 1000
;排他的なコマンドの自動キャンセルをするようにしている際、
;当該コマンドをマークするためのリスト
#DIM COM_CONFLICT_FLAG, 1000

;コマンドのオプション番号
#DIM CONST COM_OPTION_NUM = 10 ;1コマンドあたりのオプション数の上限
#DIM COM_OPTION_UI, 1000 ;UI上の番号
#DIM COM_OPTION, 1000 ;実行上の番号
#DIM PREVCOM_OPTION, 1000 ;前回実行されたコマンドのオプション番号

;これが0だと全てのコマンドが無効になる(USERCOMにおけるコマンドの自動表示・実行を防止)
#DIM COM_ENABLE

;直前の調教モード
#DIM PREV_TRAINMODE

;今回選択したコマンドの名称
#DIMS SELECTCOM_NAME

;前回選択したコマンドの名称
#DIMS PREVCOM_NAME

;COSの値を保存する関数(処理の高速化のため事前に計算)
#DIM COS_LIST, 360

;SHOP画面におけるキャラクタの表示順
#DIM SHOP_CHARA_LIST, MAX_CHARA_NUM

;それぞれ今回・前回のコマンドの実行状態(0=主人公がプレイヤー、1=主人公がターゲット、2=どちらでもない)
#DIM SELECTCOM_TYPE
#DIM PREVCOM_TYPE

;前回コマンド実行時のプレイヤー、ターゲット
#DIM PREV_MPLY, 100
#DIM PREV_MTAR, 100

;口上システムのファンクションコール機能の引数として渡すための変数
#DIM CONST KJ_FUNC_ARG_LENGTH = 10
#DIM KJ_FUNC_ARG, KJ_FUNC_ARG_LENGTH
#DIMS KJ_FUNC_ARGS, KJ_FUNC_ARG_LENGTH

;それぞれ能力値の最小と最大を定義する変数
#DIM ABL_MIN, 100
#DIM ABL_MAX, 100

;前回コマンド実行時の絶頂を保存
#DIM CHARADATA PREV_EX, 100

;各コマンドを実行した回数
;0～999=プレイヤー 1000～1999=ターゲット 2000-2999=第三者
#DIM SAVEDATA CHARADATA COM_EXP, 3000
;今回の調教での実行回数
#DIM CHARADATA COM_COUNT_THIS_TRAIN, 3000, COM_OPTION_NUM
;今回のターンでの実行回数
#DIM CHARADATA COM_COUNT_THIS_TURN, 3000, COM_OPTION_NUM

;各コマンドの知識
#DIM SAVEDATA CHARADATA COM_KNOWLEDGE, 1000

;各コマンドの好み度(0～3、高いほど中毒充足＋＆おまかせ実行率アップ)
;0～999=プレイヤー 1000～1999=ターゲット 2000-2999=第三者
#DIM SAVEDATA CHARADATA COM_TENDENCY, 3000

;「おまかせ」で強制的に実行を禁止するコマンドを設定
;0～999=プレイヤー 1000～1999=ターゲット 2000-2999=第三者
#DIM CHARADATA COM_FORBIDDEN, 3000

; 調教開始直前のEX
#DIM CHARADATA PRETRAIN_EX, 100

;コマンドがどのタイミングで使用できるかを示す定数
#DIM コマンド_ウフフ = 0
#DIM コマンド_日常   = 1
#DIM コマンド_育児   = 2
#DIM コマンド_共通   = 3
#DIM コマンド_居住区 = 4
#DIM コマンド_クエスト = 5

;性的嗜好の値がどういう嗜好を示すかを対応づける定数

#DIM SAVEDATA CHARADATA SEXUAL_PREFERENCE
;有無をビット演算で処理するので64ぶん確保
#DIM SAVEDATA CHARADATA SEXUAL_PREFERENCE_EXP, 64

#DIM CONST 性的嗜好_愛撫したい = 0
#DIM CONST 性的嗜好_奉仕したい = 1
#DIM CONST 性的嗜好_性交したい = 2
#DIM CONST 性的嗜好_道具を使いたい = 3
#DIM CONST 性的嗜好_虐げたい = 4
#DIM CONST 性的嗜好_辱めたい = 5
#DIM CONST 性的嗜好_触手で犯したい = 6
#DIM CONST 性的嗜好_愛撫されたい = 7
#DIM CONST 性的嗜好_奉仕されたい = 8
#DIM CONST 性的嗜好_性交されたい = 9
#DIM CONST 性的嗜好_道具を使われたい = 10
#DIM CONST 性的嗜好_虐げられたい = 11
#DIM CONST 性的嗜好_辱められたい = 12
#DIM CONST 性的嗜好_触手で犯されたい = 13
#DIM CONST 性的嗜好_縛られたい = 14
#DIM CONST 性的嗜好_獣と交わりたい = 15
#DIM CONST 性的嗜好_露出したい = 16
#DIM CONST 性的嗜好_催眠をかけられたい = 17
#DIM CONST 性的嗜好_春を売りたい = 18
#DIM CONST 性的嗜好_撮影されたい = 19
#DIM CONST 性的嗜好_汚されたい = 20
#DIM CONST 性的嗜好_調教されたい = 21
#DIM CONST 性的嗜好_輪姦されたい = 22
#DIM CONST 性的嗜好_妊娠したい = 23
#DIM CONST 性的嗜好_近親相姦したい = 24
#DIM CONST 性的嗜好_同性と交わりたい = 25
{
	#DIMS CONST SEXUAL_PREFERENCE_STR =
		"愛撫したい", "奉仕したい", "性交したい", "道具を使いたい", "虐げたい",
		"辱めたい", "触手で犯したい", "愛撫されたい", "奉仕されたい", "性交されたい",
		"道具を使われたい", "虐げられたい", "辱められたい", "触手で犯されたい", "縛られたい",
		"獣と交わりたい", "露出したい", "催眠をかけられたい", "春を売りたい", "撮影されたい", "汚されたい",
		"調教されたい", "輪姦されたい", "妊娠したい", "近親相姦したい", "同性と交わりたい"

}
#DIM CONST 調教シチュエーション_和姦 = 1
#DIM CONST 調教シチュエーション_強姦 = 2
{
	#DIMS SEX_SITUATION_STR =
		"なし", "和姦", "強姦"
}

#DIMS CONST ORGASM_SURPRESS_STANCE_STR = "甘受", "受容", "中立", "軽い自制", "強固な自制"
#DIM  CONST ORGASM_SURPRESS_STANCE_VALUE = -2, -1, 0, 1, 2
{
	#DIMS CONST ORGASM_SURPRESS_STANCE_TOOLTIP =
		"快楽を積極的に受け入れます", "快楽を受け入れます", "ありのままに快楽に接します", "快楽に抗います", "快楽に強く抗います"
}
;日常フェーズのコマンド実行回数
#DIM SAVEDATA SHOP_TIME, 1

;日常フェーズの労働実行回数
#DIM SAVEDATA SHOP_WORK_COUNT, 1

;配列の読み込み順をランダムにするための配列。FISHER_YATES_SHAFFLEにてシャッフルします
#DIM SHAFFLE_ARRAY, 5000

;SELECT_CHARA_LIST_MULTIで利用する
#DIM SELECTED_CHARA, MAX_CHARA_NUM
#DIM SELECTED_CHARA_NUM
;キャラ選択用関数に与えるオプション
#DIMS SELECTOR_FUNC_OPTION

;一番長い名前の長さを意味する定数　とりあえず名前の長さで表示が崩れてるのを見つけたらこれに置き換えてみよう
#DIM CONST MAX_CHARANAME_LENGTH = STRLENS("１２３４５６７８９０１２") + 1

;@PRINTLINE_RESERVEで取得した行番号を保存
#DIM SYS_RESERVE_LINE

;「あてがう」時、好感度やら従属度やらを待避させておく領域。
#DIM TMP_MASTER
#DIM TMP_参加者, 10
#DIM TMP_好感度, 10
#DIM TMP_従属度, 10
#DIM TMP_依存度, 10

#DIM ランク閾値, 6, 9
#DIM CONST ランク_無 = 8
#DIM CONST ランク_G = 7
#DIM CONST ランク_F = 6
#DIM CONST ランク_E = 5
#DIM CONST ランク_D = 4
#DIM CONST ランク_C = 3
#DIM CONST ランク_B = 2
#DIM CONST ランク_A = 1
#DIM CONST ランク_S = 0
#DIM CONST ランク_ＳＬＧ = 0
#DIM CONST ランク_その他 = 1
#DIM CONST ランク_部隊 = 2
#DIM CONST ランク_性知識 = 3
#DIM CONST ランク_戦闘力 = 4
#DIM CONST ランク_防御力 = 5
#DIMS CONST ランク文字列 = "S", "A", "B", "C", "D", "E", "F", "G", "-"

;ファーストキス、処女、童貞を奪った相手を記録
#DIMS SAVEDATA CHARADATA SEXUAL_EXPERIENCE, 4
#DIMS SAVEDATA CHARADATA SEXUAL_LAST_EXPERIENCE, 4
#DIM CONST 初体験_キス = 0
#DIM CONST 初体験_童貞 = 1
#DIM CONST 初体験_処女 = 2
#DIM CONST 初体験_アナル処女 = 3

#DIMS SAVEDATA CHARADATA SEXUAL_EXPERIENCE_SITUATION, 4
#DIMS SAVEDATA CHARADATA SEXUAL_LAST_EXPERIENCE_SITUATION, 4

;賭場の資金
#DIM SAVEDATA GAMBLE_MONEY

#DIM CONST CUM_SLOT_NUM = 16
;射精部位
#DIM CONST 射精部位_無駄 = 0
#DIM CONST 射精部位_膣内 = 1
#DIM CONST 射精部位_アナル = 2
#DIM CONST 射精部位_手 = 3
#DIM CONST 射精部位_口 = 4
#DIM CONST 射精部位_胸 = 5
#DIM CONST 射精部位_足 = 6
#DIM CONST 射精部位_尻尾 = 7
#DIM CONST 射精部位_顔 = 8
#DIM CONST 射精部位_髪 = 9
#DIM CONST 射精部位_腋 = 10
#DIM CONST 射精部位_尻 = 11
#DIM CONST 射精部位_オナホ = 12
#DIM CONST 射精部位_触手 = 13
#DIM CONST 射精部位_ゴム = 14
#DIM CONST 射精部位_尿道 = 15

;その調教で射精された回数
#DIM CHARADATA CUM_GET_COUNT, CUM_SLOT_NUM
#DIM CHARADATA CUM_GET_AMOUNT, CUM_SLOT_NUM

;Mod - tracks current amount of cum instead of 'total taken this session'. Allows it to be swallowed etc.
#DIM CHARADATA CUM_CUR_AMOUNT, CUM_SLOT_NUM

;その調教で射精した回数
#DIM CHARADATA CUM_TO_COUNT, CUM_SLOT_NUM
#DIM CHARADATA CUM_TO_AMOUNT, CUM_SLOT_NUM

{
	#DIMS CONST CUM_SLOT_NAME =
		"無駄打ち", "膣内", "腸内", "手", "口", "胸", "足", "尻尾", "顔", "髪", "腋", "尻", "オナホ", "触手", "ゴム", "尿道"
}

;0=体(指定なし) 1=膣内 2=アナル 3=手 4=口 5=胸 6=足 7=尻尾 8=顔 9=髪 10=腋 11=尻 12=オナホ 13=触手 14 = ゴム

;オートセーブ領域
#DIM CONST AUTOSAVE_DOMAIN_NUM = 5
#DIM GLOBAL SAVEDATA AUTOSAVE_DOMAIN

;最後に使ったセーブデータのページ
#DIM GLOBAL SAVEDATA SAVELOAD_LASTPAGE

;EVENTTRAINCで呼ぶ関数を指定する
#DIMS EVENTTRAIN_CALLEE, 10
#DIM EVENTTRAIN_CALLEE_NUM

;EVENTENDで呼ぶ関数を指定する
#DIMS EVENTEND_CALLEE, 10
#DIM EVENTEND_CALLEE_NUM

;調教中に実行するコマンドを強制指定する
#DIM TRAIN_FORCED_COM, 100
#DIM TRAIN_FORCED_COM_EQUIP, 100
#DIM TRAIN_FORCED_COM_INITIATOR, 100
#DIM TRAIN_FORCED_COM_MPLY, 100, 10
#DIM TRAIN_FORCED_COM_MTAR, 100, 10
#DIM TRAIN_FORCED_COM_NUM
#DIM TRAIN_FORCED_COM_CUR

;SHOW_INFOの折り畳みを指定
#DIM SHOW_INFO_FOLD

#DIM CONST MEET_MAX_CANDIDATES = 5
#DIM SAVEDATA MEET_CANDIDATES, MEET_MAX_CANDIDATES
#DIM SAVEDATA MEET_CANDIDATES_REST_TURN

;-------------------------------------------------
;■継続状態に関する変数
;-------------------------------------------------
;継続状態に関する最大数
#DIM CONST MAX_MEQUIP = 75
#DIM CONST MAX_MEQUIP_PLAYER = 20
#DIM CONST MAX_MEQUIP_TARGET = 20

;継続状態の種類
#DIM MEQUIP, MAX_MEQUIP
#DIM MEQUIP_TMP, MAX_MEQUIP

;継続状態の数
#DIM MEQUIP_NUM

;継続状態のプレイヤーとその数
#DIM MEQUIP_PLAYER, MAX_MEQUIP, MAX_MEQUIP_PLAYER
#DIM MEQUIP_PLAYER_TMP, MAX_MEQUIP, MAX_MEQUIP_PLAYER
#DIM MEQUIP_PLAYER_NUM, MAX_MEQUIP
#DIM MEQUIP_PLAYER_NUM_TMP, MAX_MEQUIP

;継続状態のターゲットとその数
#DIM MEQUIP_TARGET, MAX_MEQUIP, MAX_MEQUIP_TARGET
#DIM MEQUIP_TARGET_TMP, MAX_MEQUIP, MAX_MEQUIP_TARGET
#DIM MEQUIP_TARGET_NUM, MAX_MEQUIP
#DIM MEQUIP_TARGET_NUM_TMP, MAX_MEQUIP

;継続状態のコマンドで主導権を握っていたやつ
#DIM MEQUIP_INITIATIVE, MAX_MEQUIP
#DIM MEQUIP_INITIATIVE_TMP, MAX_MEQUIP

;領内活動で調教後も解除されない継続状態を示すフラグ
;バイブ等の器具に使用
#DIM HO_MEQUIP_LOCK, MAX_MEQUIP
#DIM HO_MEQUIP_LOCK_TMP, MAX_MEQUIP

;継続状態の地の文カットフラグ
#DIM MEQUIP_CUT, MAX_MEQUIP

;継続状態がセットされてからのターン数
#DIM MEQUIP_TURN, MAX_MEQUIP
#DIM MEQUIP_TURN_TMP, MAX_MEQUIP

;継続コマンド実行時のオプション指定
#DIM MEQUIP_OPTION, MAX_MEQUIP
#DIM MEQUIP_OPTION_TMP, MAX_MEQUIP

;ソースを一時的に保存する変数
#DIM CHARADATA MEMORY_SOURCE, 100

;各コマンドごとの射精先マップ
#DIM CHARADATA STACK_SPERM_CHARA_MAP, MAX_CHARA_NUM
#DIM CHARADATA STACK_SPERM_TO_MAP, MAX_CHARA_NUM
#DIM CHARADATA STACK_SPERM_CHARA_NUM

;特定カテゴリのコマンドを纏めた定数リスト
;※LISTはスペースを詰める処理がないので直接定義するならスペースを混入しないよう注意
;判定等での参照用途
#DIMS CONST _LIST_COM_ORAL = "11,19,90,107,117,330,"
#DIMS CONST _LIST_COM_VSEX = "30,31,32,33,34,35,36,37,38,39,52,55,57,160,"
#DIMS CONST _LIST_COM_ASEX = "40,41,42,43,44,45,46,47,48,49,53,56,58,161,"
#DIMS CONST _LIST_COM_JOBS = "10,106,13,14,15,16,17,18,206,"

;;LISTの方が何かと取り回しやすいが処理速度では配列に劣る
;COMABLE判定等で多重に呼び出され速度が求められるため数値型配列で扱う
#DIM CONST FORBID_COM_LIST_IN_STANDING_POSITION = 14, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 101, 102, 103, 104, 105, 110
;公衆の面前では基本的に実行できないコマンド
{
	#DIM CONST FORBID_COM_LIST_IN_PUBLIC =
		0, 1, 3, 4, 9, 10, 11, 13, 14, 15, 16, 24, 27, 28,
		60, 61, 62, 63, 64, 65, 66,
		100, 106, 107, 120, 334, 335, 852, 853, 854, 855
}
;非押し倒しでNPCが情事中とみなすコマンド
#DIM CONST UFUFU_COM_LIST = 10, 11, 13, 14, 15, 100, 106, 107, 120, 330, 332
;非押し倒しで情事扱いではないがNPCが意識してしまう行為
#DIM CONST DOKIDOKI_COM_LIST = 20, 341, 342
;対象なしでも一人で実行できるコマンド
{
	#DIM CONST PERMIT_COM_LIST_SOLO = 75, 100, 120,
		325,
		700, 704, 705, 706, 708, 709, 720, 721, 722, 750, 751, 752, 753, 754, 799,
		855, 900
}
;-------------------------------------------------
;■設定に関する変数
;-------------------------------------------------
;コンフィグ設定
;0～299:一般  300～499:SLG関係  500～:予備
#DIM SAVEDATA CONFIG, 1000

;コマンドフィルタ
#DIM SAVEDATA COM_FILTER, 1000

;コンフィグ設定の保存用変数
#DIM GLOBAL SAVEDATA G_CONFIG, 5, 1000

;コマンドフィルタ・継続フィルタの保存用変数
#DIM GLOBAL SAVEDATA G_FILTER, 5, 1000

;コンフィグ設定セーブデータの名称設定
#DIMS GLOBAL SAVEDATA G_CONFIG_NAME, 5
#DIMS GLOBAL SAVEDATA G_CONFIG_FILTER_NAME, 5
#DIMS GLOBAL SAVEDATA G_CONFIG_DAILY_NAME, 5

;-------------------------------------------------
;■アイテムに関する変数
;-------------------------------------------------
;アイテム開発に必要な期間
#DIM ITEMTERM, 1000

;現在のアイテム開発期間
#DIM SAVEDATA ITEMTIME, 1000

;-------------------------------------------------
;■キャラ間の関係を表す変数(新)
;キャラ番号で管理するため、キャラのソートや削除に同期して変更する必要あり
;-------------------------------------------------
#DIM CHARADATA SOURCE_好感度, MAX_CHARA_NUM
#DIM CHARADATA SAVEDATA 関係_好感度, MAX_CHARA_NUM

;-------------------------------------------------
;■キャラ間の関係を表す変数(旧)
;※REL_LIKE、REL_HATEはキャラ番号で管理するため、キャラのソートや削除に同期して変更する必要あり
;-------------------------------------------------
;キャラ間の好感度
#DIM CHARADATA SAVEDATA REL_LIKE, MAX_CHARA_NUM
;キャラ間の敵対度
#DIM CHARADATA SAVEDATA REL_HATE, MAX_CHARA_NUM

;-------------------------------------------------
;■登録キャラに関する変数
;-------------------------------------------------
#DIM CONST MAX_MASTER = 30
#DIM GLOBAL SAVEDATA MASTER_MAXBASE, MAX_MASTER, 100
#DIM GLOBAL SAVEDATA MASTER_ABL, MAX_MASTER, 100
#DIM GLOBAL SAVEDATA MASTER_EXP, MAX_MASTER, 100
#DIM GLOBAL SAVEDATA MASTER_TALENT, MAX_MASTER, 1000
#DIMS GLOBAL SAVEDATA MASTER_NAME, MAX_MASTER, 15
#DIM GLOBAL SAVEDATA MASTER_NAMETYPE, MAX_MASTER
;妊娠した子供の父親の名前の記録に使う変数

;-------------------------------------------------
;■色に関する定数
;-------------------------------------------------
;廃止されました。_FUNCTION.ERB内@COLORに移動してます。

;-------------------------------------------------
;■マクロ
;-------------------------------------------------

;-------------------------------------------------
;■ショップに関する定数
;-------------------------------------------------
;戦略画面のマップ部分の高さ
#DIM CONST MENU_HEIGHT = 27
;ショップで描画する行数
#DIM CONST LINES_SHOP_DRAW = MENU_HEIGHT + 12
;ショップで消去する行数
#DIM LINES_SHOP

;戦略画面で利用する行数
#DIM MAP_LINES
;ショップで利用できる項目
#DIM SHOP_AVAIL, 100

;調教時に削除する行数
#DIM LINES_TRAIN

#DIM CONST 労働_キャバクラ = 1
#DIM CONST 労働_Vアイドル = 2
#DIM CONST 労働_広報 = 3
#DIM CONST 労働_街宣 = 4
#DIM CONST 労働_炊き出し = 5
#DIM CONST 労働_ライブ = 6
#DIM CONST 労働_娼館 = 7
#DIM CONST 労働_ＡＶ = 8
#DIM CONST 労働_搾乳 = 9

;-------------------------------------------------
;■素質に関する変数と定数
;-------------------------------------------------
#DIM CONST 体位_正常位 = 1
#DIM CONST 体位_後背位 = 2
#DIM CONST 体位_対面座位 = 3
#DIM CONST 体位_背面座位 = 4
#DIM CONST 体位_騎乗位 = 5
#DIM CONST 体位_背面騎乗位 = 6
#DIM CONST 体位_側位 = 7
#DIM CONST 体位_屈曲位 = 8
#DIM CONST 体位_駅弁 = 9
#DIM CONST 体位_背面駅弁 = 10
#DIM CONST 体位_立ちバック = 11
#DIM CONST 体位_バイブ = 20

;素質ピアスとピアス穴の、装着箇所に対する対応ビットを表す定数
#DIM CONST ピアス_鼻 = 0
#DIM CONST ピアス_耳 = 1
#DIM CONST ピアス_舌 = 2
#DIM CONST ピアス_乳首 = 3
#DIM CONST ピアス_へそ = 4
#DIM CONST ピアス_クリトリス = 5
#DIM CONST ピアス_ラビア = 6
#DIM CONST ピアス_ペニス = 7

#DIM CONST ピアス_最大ビット = 7

;素質陰毛の、値に対する状況の対応を表す定数
#DIM CONST 陰毛_種類数 = 12
#DIM CONST 陰毛_パイパン = -1
#DIM CONST 陰毛_つるつる = 0
#DIM CONST 陰毛_うっすら = 1
#DIM CONST 陰毛_柔毛 = 2
#DIM CONST 陰毛_ふんわり = 3
#DIM CONST 陰毛_標準 = 4
#DIM CONST 陰毛_多め = 5
#DIM CONST 陰毛_ふさふさ = 6
#DIM CONST 陰毛_もっさり = 7
#DIM CONST 陰毛_剛毛 = 8
#DIM CONST 陰毛_尻毛 = 9
#DIM CONST 陰毛_ハート型 = 10

;素質腋毛の、値に対する状況の対応を表す定数
#DIM CONST 腋毛_種類数 = 11
#DIM CONST 腋毛_脱毛済み = -1
#DIM CONST 腋毛_つるつる = 0
#DIM CONST 腋毛_手入れ済み = 1
#DIM CONST 腋毛_うっすら = 2
#DIM CONST 腋毛_ふんわり = 3
#DIM CONST 腋毛_普通 = 4
#DIM CONST 腋毛_多め = 5
#DIM CONST 腋毛_ふさふさ = 6
#DIM CONST 腋毛_もっさり = 7
#DIM CONST 腋毛_剛毛 = 8
#DIM CONST 腋毛_密林 = 9

#DIMS CHARADATA SAVEDATA  TATTOO, 10
#DIM CONST タトゥー_額 = 0
#DIM CONST タトゥー_頬 = 1
#DIM CONST タトゥー_肩 = 2
#DIM CONST タトゥー_胸 = 3
#DIM CONST タトゥー_背 = 4
#DIM CONST タトゥー_腹 = 5
#DIM CONST タトゥー_秘部 = 6
#DIM CONST タトゥー_尻 = 7
#DIM CONST タトゥー_腿 = 8
#DIM CONST タトゥー_足首 = 9

#DIMS TATTOO_SAMPLE_LIST_COMMON, 200
#DIMS TATTOO_SAMPLE_LIST, 10, 200
#DIM TATTOO_SAMPLE_ADDRESS, 10
#DIM TATTOO_SAMPLE_COMMON_ADDRESS

;締まり系
#DIM CONST 締まり_最高値 = 1000
#DIM CONST 締まり_ぎちぎち = 900
#DIM CONST 締まり_きつきつ  = 800
#DIM CONST 締まり_きゅっきゅっ = 700
#DIM CONST 締まり_名器 = 600
#DIM CONST 締まり_普通 = 500
#DIM CONST 締まり_ゆるめ = 400
#DIM CONST 締まり_ゆるゆる = 300
#DIM CONST 締まり_ぽっかり = 200
#DIM CONST 締まり_がばがば = 100
#DIM CONST 締まり_崩壊 = 0
#DIM CONST 締まり_最低値 = -100

;胸
#DIM CONST 胸_絶壁 = -2
#DIM CONST 胸_貧乳 = -1
#DIM CONST 胸_並乳 = 0
#DIM CONST 胸_巨乳 = 1
#DIM CONST 胸_爆乳 = 2

;成長型
#DIM CONST 成長型_万能 = 0
#DIM CONST 成長型_士官 = 1
#DIM CONST 成長型_学者 = 2
#DIM CONST 成長型_両道 = 3
#DIM CONST 成長型_戦士 = 4
#DIM CONST 成長型_参謀 = 5
#DIM CONST 成長型_商人 = 6
#DIM CONST 成長型_詩人 = 7
#DIM CONST 成長型_執事 = 8
#DIM CONST 成長型_天才 = 9
#DIM CONST 成長型_無能 = 10
#DIM CONST 成長型_魔術 = 11
#DIM CONST 成長型_魔人 = 12

;動物
#DIM CONST 動物_犬 = 1
#DIM CONST 動物_豚 = 2
#DIM CONST 動物_馬 = 3
#DIM CONST 動物_猿 = 4
#DIM CONST 動物_蟲 = 5

;-------------------------------------------------
;■特殊勢力に関する変数
;-------------------------------------------------
;#DIM CONST 特殊勢力_野盗 = 0
;#DIM CONST 特殊勢力_外来人 = 1
;#DIM CONST 特殊勢力_ゴブリン = 2
;#DIM CONST 特殊勢力_触手 = 3

;#DIM CONST 特殊勢力_野盗 = 1
;#DIM CONST 特殊勢力_外来人 = 2
;#DIM CONST 特殊勢力_ゴブリン = 3
;#DIM CONST 特殊勢力_触手 = 4

#DIM CONST 素質_淫乱_淫乱 = 0
#DIM CONST 素質_淫乱_淫核 = 1
#DIM CONST 素質_淫乱_淫壷 = 2
#DIM CONST 素質_淫乱_尻穴狂い = 3
#DIM CONST 素質_淫乱_淫乳 = 4
#DIM CONST 素質_淫乱_蕩唇 = 5
#DIM CONST 素質_淫乱_射精狂い = 6
#DIM CONST 素質_淫乱_サド = 7
#DIM CONST 素質_淫乱_マゾ = 8
#DIM CONST 素質_淫乱_雌犬 = 9
#DIM CONST 素質_淫乱_精液便女 = 10
#DIM CONST 素質_淫乱_苗床 = 11
#DIM CONST 素質_淫乱_薬物中毒 = 12
#DIM CONST 素質_淫乱_娼婦 = 13
#DIM CONST 素質_淫乱_生ハメ依存 = 14
#DIM CONST 素質_淫乱_孕みたがり = 15
#DIM CONST 素質_淫乱_娼妓 = 16
#DIM CONST 素質_淫乱_露出狂 = 17
#DIM CONST 素質_淫乱_良質母胎 = 18
#DIM CONST 素質_淫乱_濃厚精液 = 19
#DIM CONST 素質_淫乱_傀儡 = 20
#DIM CONST 素質_淫乱_浮気癖 = 21
#DIM CONST 素質_淫乱_自慰狂い = 22
#DIM CONST 素質_淫乱_雌牛 = 23
#DIM CONST 素質_淫乱_尿道狂い = 24
#DIM CONST 素質_淫乱_精飲中毒= 25

{
	#DIMS CONST SEX_TALENT_NAME =
		"淫乱",	"淫核",	"淫壷",	"尻穴狂い", "淫乳",
		"蕩唇", "射精狂い", "サド", "マゾ", "雌犬",
		"精液便女", "苗床", "薬物中毒", "娼婦", "生ハメ依存",
		"孕みたがり", "娼妓", "露出狂", "良質母胎", "濃厚精液",
		"傀儡", "浮気癖", "自慰狂い", "雌牛", "尿道狂い","精飲中毒"
}

;-------------------------------------------------
;■処女とかの喪失に関する定数
;-------------------------------------------------
{
	#DIMS CONST LOST_SITUATION =
		"",		"和姦",	"調教",	"強姦",	"輪姦",
		"売春",	"乱交",	"催眠",	"洗脳",	"道具",
		"外交"
}

#DIM CONST 喪失_和姦 = 1
#DIM CONST 喪失_調教 = 2
#DIM CONST 喪失_強姦 = 3
#DIM CONST 喪失_輪姦 = 4
#DIM CONST 喪失_売春 = 5
#DIM CONST 喪失_乱交 = 6
#DIM CONST 喪失_催眠 = 7
#DIM CONST 喪失_洗脳 = 8
#DIM CONST 喪失_道具 = 9
#DIM CONST 喪失_外交 = 10

#DIM CONST 調教_会う = 0
#DIM CONST 調教_閨 = 1
#DIM CONST 調教_捕虜調教 = 2
#DIM CONST 調教_子育て = 3
#DIM CONST 調教_逆調教特殊 = 4
#DIM CONST 調教_逆調教通常 = 5
#DIM CONST 調教_捕虜会話 = 6
#DIM CONST 調教_慰安 = 7
#DIM CONST 調教_居住区 = 8
#DIM CONST 調教_クエスト = 10

{
	#DIMS CONST IAN_PLACE =
		"スラム" , "街の広場" , "上級居住区" , "妖怪の山" , "旧地獄" , "竹林"   , "野盗のアジト" , "子供たちの秘密基地" , "兵舎" , "犬舎" ,
		"畜舎"   , "魔界"     , "妖精の森"   , "彼岸"     , "紅魔館" , "月の都" , "天界"         , "湖"                 , "森", "寺子屋"
}
#DIM CONST 慰安_行き先_スラム             = 0
#DIM CONST 慰安_行き先_一般住宅街         = 1
#DIM CONST 慰安_行き先_貴族の居住地       = 2
#DIM CONST 慰安_行き先_妖怪の山           = 3
#DIM CONST 慰安_行き先_旧地獄             = 4
#DIM CONST 慰安_行き先_竹林               = 5
#DIM CONST 慰安_行き先_野盗のアジト       = 6
#DIM CONST 慰安_行き先_子供たちの秘密基地 = 7
#DIM CONST 慰安_行き先_兵舎               = 8
#DIM CONST 慰安_行き先_犬舎               = 9
#DIM CONST 慰安_行き先_畜舎               = 10
#DIM CONST 慰安_行き先_魔界               = 11
#DIM CONST 慰安_行き先_魔法の森           = 12
#DIM CONST 慰安_行き先_彼岸               = 13
#DIM CONST 慰安_行き先_紅魔館             = 14
#DIM CONST 慰安_行き先_月の都             = 15
#DIM CONST 慰安_行き先_天界               = 16
#DIM CONST 慰安_行き先_湖                 = 17
#DIM CONST 慰安_行き先_森                 = 18
#DIM CONST 慰安_行き先_寺子屋             = 19
#DIM CONST 慰安_キャラ_民           = 1
#DIM CONST 慰安_キャラ_貧民         = 2
#DIM CONST 慰安_キャラ_浮浪者       = 3
#DIM CONST 慰安_キャラ_ごろつき     = 4
#DIM CONST 慰安_キャラ_富豪         = 5
#DIM CONST 慰安_キャラ_貴族         = 6
#DIM CONST 慰安_キャラ_資産家       = 7
#DIM CONST 慰安_キャラ_天狗         = 8
#DIM CONST 慰安_キャラ_河童         = 9
#DIM CONST 慰安_キャラ_鬼           = 10
#DIM CONST 慰安_キャラ_妖怪         = 11
#DIM CONST 慰安_キャラ_露出狂       = 12
#DIM CONST 慰安_キャラ_兎           = 13
#DIM CONST 慰安_キャラ_野盗         = 14
#DIM CONST 慰安_キャラ_子供         = 15
#DIM CONST 慰安_キャラ_兵士         = 16
#DIM CONST 慰安_キャラ_犬           = 17
#DIM CONST 慰安_キャラ_豚           = 18
#DIM CONST 慰安_キャラ_悪魔         = 19
#DIM CONST 慰安_キャラ_妖精         = 20
#DIM CONST 慰安_キャラ_死神         = 21
#DIM CONST 慰安_キャラ_幽霊         = 22
#DIM CONST 慰安_キャラ_ゴブリン = 23
#DIM CONST 慰安_キャラ_月人         = 24
#DIM CONST 慰安_キャラ_月兎         = 25
#DIM CONST 慰安_キャラ_天人         = 26
#DIM CONST 慰安_キャラ_チャラ男     = 27
#DIM CONST 慰安_キャラ_馬           = 28
#DIM CONST 慰安_キャラ_猿           = 29
#DIM CONST 慰安_キャラ_保護者       = 30

{
	#DIMS CONST IAN_SPERM_ARRAY =
		"ダミー" , "民"   , "貧民"   , "浮浪者"       , "ごろつき" , "富豪" , "貴族" , "資産家"   , "天狗" , "河童" ,
		"鬼"     , "妖怪" , "露出狂" , "兎"           , "野盗"     , "子供" , "兵士" , "犬"       , "豚"   , "悪魔" ,
		"妖精"   , "死神" , "幽霊"   , "ゴブリン" , "月人"     , "月兎" , "天人" , "チャラ男" , "馬"   , "猿"   ,
		"保護者"
}

;-------------------------------------------------
;ランダムキャラ・子供に関する定数
;-------------------------------------------------
#DIM CONST MAX_CHARA_NUM = 3000
#DIM CONST MAX_FIXED_CHARA = 500
#DIM CONST MIN_NO_RANDOM_CHARA = 500
#DIM CONST MAX_RANDOM_CHARA = 750
#DIM CONST MIN_NO_CHILD = 1250
#DIM CONST MAX_CHILD = 750
#DIM CONST MIN_NO_SP_CHARA = 2000

;-------------------------------------------------
;タグに関する変数・定数
;-------------------------------------------------
#DIM CONST MAX_TAGNUM = 10 ;タグの種類数
#DIM CONST MAX_TAG = 10	    ;選択可能なタグ数
#DIM SAVEDATA CHARADATA TAG, MAX_TAG
#DIM CONST タグ_人間 = 0
#DIM CONST タグ_エルフ = 1
#DIM CONST タグ_ドワーフ = 2
#DIM CONST タグ_亜人 = 3
#DIM CONST タグ_魔獣 = 4
#DIM CONST タグ_魔族 = 5
#DIM CONST タグ_霊魂 = 6
#DIM CONST タグ_妖精 = 7
#DIM CONST タグ_精霊 = 8
#DIM CONST タグ_神族 = 9
#DIM CONST タグ_鬼 = 10
#DIM CONST タグ_蓬莱人 = 11
#DIM CONST タグ_天狗 = 12
#DIM CONST タグ_人形 = 13
#DIM CONST タグ_死神 = 14
#DIM CONST タグ_閻魔 = 15
#DIM CONST タグ_神 = 16
#DIM CONST タグ_河童 = 17
#DIM CONST タグ_天人 = 18
#DIM CONST タグ_付喪神 = 19
#DIM CONST タグ_仙人 = 20
#DIM CONST タグ_天邪鬼 = 21
#DIM CONST タグ_小人 = 22
#DIM CONST タグ_月兎 = 23
#DIM CONST タグ_月人 = 24
#DIM CONST タグ_怨霊 = 25
#DIM CONST タグ_ロボット = 26
#DIM CONST タグ_悪魔 = 27
#DIM CONST タグ_魔界人 = 28
#DIM CONST タグ_天使 = 29
#DIM CONST タグ_仙霊 = 30

{
	#DIMS CONST TAG_NAME =
		"人間", "エルフ", "ドワーフ","亜人","魔獣","魔族","霊魂","妖精","精霊", "神族"
}

{
	#DIMS CONST JOB_NAME =
		"無職","学生","学者","教師","冒険者",
		"傭兵","軍人","魔術師","聖職者","巫女",
		"魔導工学者","技師","メイド","騎士","貴族",
		"王族","吟遊詩人","芸術家","俳優","歌手",
		"記者","船員","貿易商","労働者","資本家",
		"警官","役人","秘書","政治家","医者",
		"探偵","奴隷","性奴隷","娼婦","海賊",
		"マフィア","村人","市民", "商人", "踊り子",
		"神聖術師"
}

{
	#DIM CONST JOB_VERGIN_PER =
		50,90,75,50,50,
		30,30,40,10,10,
		40,40,50,50,40,
		50,40,40,30,30,
		40,30,30,40,30,
		40,40,40,30,40,
		30,30,5,5,10,
		10,30,30,30,30,
		90
}

;-------------------------------------------------
;状態に関する変数・定数
;-------------------------------------------------
#DIM CONST 特殊状態_放浪 = 1
#DIM CONST 特殊状態_死亡 = 2

#DIM CONST 行動不能_臨月 = 1
#DIM CONST 行動不能_育児 = 2
#DIM CONST 行動不能_怪我 = 3
#DIM CONST 行動不能_子供 = 4

;mod variables
#DIM SAVEDATA ソートキー = 0
#DIM SAVEDATA 降順ソート = 0
#DIM ソートキー保存 = 0
#DIM ソート順保存 = 0

#DIM CONST NUM_SORTKEY = 18
#DIM CONST ソート_NO = 0
#DIM CONST ソート_所属 = 1
#DIM CONST ソート_星 = 2
#DIM CONST ソート_名前 = 3
#DIM CONST ソート_好感度 = 4
#DIM CONST ソート_従属度 = 5
#DIM CONST ソート_支配度 = 6
#DIM CONST ソート_妊娠 = 7
#DIM CONST ソート_性別 = 8
#DIM CONST ソート_面識 = 9

#DIM CONST ソート_武闘 = 10
#DIM CONST ソート_防衛 = 11
#DIM CONST ソート_知識 = 12
#DIM CONST ソート_社交 = 13
#DIM CONST ソート_歌唱 = 14
#DIM CONST ソート_料理 = 15
#DIM CONST ソート_妖術 = 16
#DIM CONST ソート_四能力 = 17
#DIM CONST ソート_七能力 = 18
;これらは最後尾、通常いじれない
#DIM CONST ソート_夜這い助手 = 19
#DIM CONST ソート_手引助手 = 20
{
	#DIMS CONST STR_NOW_SORTKEY =
		"NO", "所属", "★", "名前", "好感", "従属", "支配", "妊娠", "性別", "面識",
		"武闘", "防衛", "知識", "社交", "歌唱", "料理", "妖術", "四能", "七能"
}

#DIM SAVEDATA ARENA_DONE
#DIM SAVEDATA APPOINT_DONE

;-------------------------------------------------
; SYSTEM
;-------------------------------------------------
#DIM  DEBUG_TIMER
#DIMS FL_NOWBGM
#DIMS FL_PREVBGM


code:
;-------------------------------------------------
;;; NPC間の関係性の構築に関する変数定義
;-------------------------------------------------
#DIM CONST 関係性_知人 = 0
#DIM CONST 関係性_友人 = 1
#DIM CONST 関係性_恋慕 = 2
#DIM CONST 関係性_親愛 = 3
#DIM CONST 関係性_服従 = 4
#DIM CONST 関係性_隷属 = 5
#DIM CONST 関係性_主人 = 6
#DIM CONST 関係性_所有 = 7
#DIM CONST 関係性_夫婦 = 8
#DIM CONST 関係性_情人 = 9
#DIM CONST 関係性_親友 = 10
#DIM CONST 関係性_恋人 = 11
#DIM CONST 関係性_依存 = 12
#DIM CONST 関係性_支配 = 13
{
    #DIMS CONST 関係性_文字列 =
        "知人"
        , "友人"
        , "恋慕"
        , "親愛"
        , "服従"
        , "隷属"
        , "主人"
        , "所有"
        , "夫婦"
        , "情人"
        , "親友"
        , "恋人"
        , "依存"
        , "支配"
}

#DIM CONST 関係性カラー_友人 = カラー_シアン
#DIM CONST 関係性カラー_親友 = カラー_緑
#DIM CONST 関係性カラー_恋慕 = カラー_パステルピンク
#DIM CONST 関係性カラー_恋人 = カラー_パステルピンク
#DIM CONST 関係性カラー_親愛 = カラー_ピンク
#DIM CONST 関係性カラー_依存 = カラー_オレンジ
#DIM CONST 関係性カラー_服従 = カラー_オレンジ
#DIM CONST 関係性カラー_隷属 = カラー_レッド
#DIM CONST 関係性カラー_支配 = カラー_パ青
#DIM CONST 関係性カラー_主人 = カラー_パ青
#DIM CONST 関係性カラー_所有 = カラー_ブルー
#DIM CONST 関係性カラー_夫婦 = カラー_黄
#DIM CONST 関係性カラー_情人 = カラー_ピンク


code:
;-------------------------------------------------
; @FL_INIT_LOADER から呼ばれる口上初期読み込み
;-------------------------------------------------
@KOJO_DEFINE_K1000
#DIMS CONST XML_PATH_COM = "ERB/口上/1000_汎用キャラテスト/KOJO_K1000_COM.xml"
#DIM CONST 汎用口上番号 = 1000

CALL KOJO_XML_REGISTER(XML_PATH_COM, 汎用口上番号, XMLID_KOJO_CLASS_COM)
;CALL KOJO_XML_REGISTER(XML_PATH_EVENT, 汎用口上番号, XMLID_KOJO_EVENT)
RETURN 1

;口上出力前の初期処理。共通処理以外で口上出力前に予め取得しておきたい情報があれば別途ここに記述
@KOJO_XML_INIT_K1000(KOJO_CHARA_ID)
#DIM  KOJO_CHARA_ID
#DIM  CONST OLD_XML_FORMAT = 1  ;基本は0指定。v0.211以前のXML口上フォーマットの場合 1
;出力前の共通初期処理
CALL KOJO_XML_INIT_COMMON_BEFORE_PRINT(KOJO_CHARA_ID)

RETURN OLD_XML_FORMAT

;-------------------------------------------------
; SELECTCOMがどのグループに属するのかを文字列で返す
; RESULTSで返却するグループ名のリストは口上シートA列COM|GROUPに指定した名称と一致している必要がある
; KOJO_CHARA_ID 口上参照キャラの登録番号
; PLACE 口上出力箇所 コマンド実行前と後で参照グループを切り替えたいならばこの引数を見る
; REUSLT = 0 合致グループなし
; REUSLT = 1 合致グループあり
; REUSLT = 2 合致グループあり、排他(該当グループ以外に適合する条件の口上があっても該当するグループのみ出力)
; RESULTS: グループ名のリスト
;-------------------------------------------------
@KOJO_XML_COMGROUP_K1000(KOJO_CHARA_ID, PLACE)
#DIM  KOJO_CHARA_ID
#DIMS PLACE
;口上固有の条件グループはここに定義

;共通のコマンドグループ
CALL KOJO_GET_COMGROUP(KOJO_CHARA_ID, PLACE)

RETURN RESULT


code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kojodef>
	<command com="300" name="会話">
		<kojo place="TOP" isMob="FALSE" priority="1">「ごきんげんよう、奇遇ですね～」
「よろしければ少しご一緒にお散歩しませんか？」</kojo>
	</command>
	<command com="300" name="会話">
		<kojo place="TOP" isFall="恋慕" isMob="FALSE" priority="1">「ごきんげんよう、%CALLNAME(MASTER)%様」</kojo>
	</command>
	<command com="300" name="会話">
		<kojo place="TOP" isFall="親愛" isMob="FALSE" priority="1">「ふふ、ご機嫌麗しゅう。%CALLNAME(MASTER)%様」</kojo>
	</command>
	<command com="300" name="会話">
		<kojo place="TOP" isInitiative="無" isMob="FALSE" priority="1">「何かご用ですか？」</kojo>
	</command>
	<command com="300" name="会話">
		<kojo place="TOP" isInitiative="有" isMob="FALSE" priority="1">「お暇でしたら……少しお話しませんか？」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「思っていたより、いろいろな品物があるんですねぇ……」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「%S_R("ふぅん……/へぇ……/なるほど……/ほうほう……")%」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「こちらの品物のこと、もう少しお伺いしてもいいかしら？」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「もう少しお安くならないかしら？」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" emotion="GOOD" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「あらあら……お上手ですねぇ！」
「それじゃあもう少し見ていこうかしら」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" emotion="GOOD" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">「フロリアの内戦のおかげで何処も治安は酷いものでして……」
「ここまでくるのも命がけでしたわ」</kojo>
	</command>
	<command com="300" name="商談">
		<kojo place="TOP" isMob="TRUE" priority="1" eval="{TSTR:会話モード == "商談"}">%ANAME([$KC])%はぶつぶつ呟きながら東風の算盤を弾いている[$NC]</kojo>
	</command>
	<command com="320" name="スキンシップ">
		<kojo place="TOP" isPlayer="対象" priority="1">「あらあら……、あまりベタベタ触ると嫌われちゃいますよ」</kojo>
	</command>
	<command com="320" name="スキンシップ">
		<kojo place="TOP" isPlayer="対象" priority="1">「マッサージ？　ではお願いしちゃいましょうか」</kojo>
	</command>
	<command com="320" name="スキンシップ">
		<kojo place="TOP" isPlayer="実行" priority="1">「凝ってますね～。　運動の後はよくほぐした方がいいですよ」</kojo>
	</command>
	<command com="320" name="セクハラ">
		<kojo place="TOP" isPlayer="実行" priority="1" eval="{AT_SITU("セクハラ")}">「ねぇ……堅苦しい話は抜きにして……、楽しいこと、しましょうよ❤」</kojo>
	</command>
	<command com="320" name="セクハラ">
		<kojo place="TOP" isPlayer="実行" priority="1" eval="{AT_SITU("セクハラ")&&IS_MALE(MTAR:0)}">「もしもお兄さんが"尽くして"くれたら……、私のお財布ゆるゆるになっちゃうかもしれないなー」
「ねぇ、遊びましょうよ。　ほらほら❤」</kojo>
	</command>
	<command com="320" name="セクハラ">
		<kojo place="TOP" isPlayer="実行" priority="1" eval="{AT_SITU("セクハラ")&&IS_FEMALE(MTAR:0)}">「あら可愛い娘……❤　ねぇ、どうしたらたくさん買ってもらえるか、わかってるよね❤」
「ほら、お客さんは喜ばせてあげないと」</kojo>
	</command>
	<command com="321" name="頭を撫でる">
		<kojo place="TOP" isPlayer="実行" withMaster="TRUE" emotion="GOOD" priority="1">「よしよし」</kojo>
	</command>
	<command com="321" name="頭を撫でる">
		<kojo place="TOP" isPlayer="対象" withMaster="TRUE" emotion="GOOD" priority="1">「ふふっ、なでなでされるのも悪い気はしませんね」</kojo>
	</command>
	<command com="327" name="抱きしめる">
		<kojo place="TOP" isPlayer="実行" withMaster="TRUE" emotion="GOOD" priority="1">「ぎゅってして欲しい？　では……どうぞ❤」</kojo>
	</command>
	<command com="327" name="抱きしめる">
		<kojo place="TOP" isPlayer="対象" withMaster="TRUE" emotion="GOOD" priority="1">「もーっと、甘やかしてくれても……いいんですよ？」</kojo>
	</command>
	<command com="704" name="食事する">
		<kojo place="TOP" priority="1">「いただきまーす」
「うん、美味しいです」</kojo>
	</command>
	<command com="30" name="正常位">
		<kojo place="TOP" isInitiative="有" isPlayer="対象" priority="1">「動きますね……。　力を抜いて……」</kojo>
	</command>
	<command com="30" name="正常位">
		<kojo place="TOP" isInitiative="無" isPlayer="対象" priority="1">「んっ、や、優しくしてください……」</kojo>
	</command>
	<command com="VSEX" name="Ｖ性交">
		<kojo place="TOP" isPlayer="対象" priority="1">「突いて…、んんっ、もっと奥まで……きて❤」</kojo>
	</command>
	<command com="VSEX" name="Ｖ性交">
		<kojo place="TOP" isPlayer="対象" priority="1">「やぁ……こんな……、気持ちいいぃ、んんっ！」</kojo>
	</command>
	<command com="VSEX" name="Ｖ性交">
		<kojo place="TOP" isPlayer="対象" priority="1" eval="{IS_ESTRUS([$KC])}">「はぁ❤　後ろからグリグリ突かれるの……すごくいい❤　あああぁん！」</kojo>
	</command>
	<command com="ORAL" name="口淫">
		<kojo place="TOP" isPlayer="実行" emotion="GOOD" priority="1">「んぷっ❤　ちゅる　はぁぁ、お口の中でびくんびくんっってして……」
「そんなに気持ちいいですか❤　じゃあもっとペロペロして……さしあげますね」</kojo>
	</command>
	<command com="ORAL" name="口淫">
		<kojo place="TOP" isPlayer="実行" emotion="GOOD" priority="1">「先っぽから……んっ、じゅるるるぅ❤　えっちな……お汁、出ちゃってますよ……」
「はぁ……❤　舐めても舐めても……、ちゅるるっ、全然きれいに……なりませんね❤」</kojo>
	</command>
	<command com="ORAL" name="口淫">
		<kojo place="TOP" isPlayer="実行" emotion="GOOD" priority="1">「あは、はぁぁ……❤　んぷっ、そんなに腰をへこへこさせて……」
「ちゅるるるるぅっ。　よっぽど、気持ちいいん……ですね❤❤」</kojo>
	</command>
	<command com="ORAL" name="口淫">
		<kojo place="TOP" isPlayer="実行" priority="1">「んぶっ、ぐぅっ……！　んれぇ、んぐっ！　く、苦し……苦しいです、んぶっ」
「げほッ　も、もう少し、やさしく……して……」</kojo>
	</command>
	<command com="ANY" name="口淫_射精">
		<kojo place="BOTTOM" emotion="GOOD" priority="10" eval="{NOW_BUKKAKED([$KC]) == 射精部位_口}">「んんんっ――――！　んぐっ……。　……はぁ❤」
%ANAME([$KC])%がどくどくと脈打つ%語彙_ペニス()%から唇を離すと、%語彙_精液()%が糸を引いた…[$NC]</kojo>
	</command>
	<command com="ORAL" name="机下フェラ">
		<kojo place="TOP" isPlayer="実行" emotion="GOOD" isMob="TRUE" priority="2" eval="{HOKJ_CHECK_ELEMENT([$KC], "机")}">「んぷっ……❤　フーッ……　はぁ……　んぐっ！　はぁぁぁ、ん、ちゅるるぅ❤」
「はぁ……、お客様に……こんなところでさせて……信じられない、んぐっ……❤」
「もし見られたら、んっ――！　どうするつもりなのかしら❤　この変態……❤」</kojo>
	</command>
	<command com="RAPE_INSERTED" name="レイプ">
		<kojo place="" isPlayer="対象" priority="1">「いやぁぁぁ！　やだ！　やめて……！！　私の中に入ってこないでぇ！」</kojo>
	</command>
	<command com="RAPE_INSERTED" name="レイプ">
		<kojo place="" isPlayer="対象" priority="1">「こんなのいやぁっ！！　や゛めてっ……！　気持ち悪いっ！　いや゛ぁぁぁっ！」　</kojo>
	</command>
	<command com="RAPE_INSERTED" name="レイプ">
		<kojo place="" isPlayer="対象" priority="1">「ひ゛っぐ……。ひどい……、私を汚さないで……、お願いいぃぃ」</kojo>
	</command>
	<command com="RAPE_INSERTED" name="レイプ">
		<kojo place="" isPlayer="対象" priority="1">「も゛うやだぁ……。どうして……こんな……　ひっぐっ……」</kojo>
	</command>
	<command com="RAPE_INSERTED" name="レイプ">
		<kojo place="" isPlayer="対象" priority="1">「なかはやめて……お願い……お願いします！　いや゛あぁぁぁぁぁ！！！！」</kojo>
	</command>
</kojodef>


code:
;-------------------------------------------------
; @FL_INIT_LOADER から呼ばれる口上初期読み込み
;-------------------------------------------------
@KOJO_DEFINE_K1001
#DIMS CONST XML_PATH_COM = "ERB/口上/1001_汎用_クール/KOJO_K1001_COM.xml"
#DIM CONST 汎用口上番号 = 1001

CALL KOJO_XML_REGISTER(XML_PATH_COM, 汎用口上番号, XMLID_KOJO_CLASS_COM)
RETURN 1

;口上選択画面の表示名
@KOJO_DEFINE_NAME_K1001
RESULTS '= "汎用口上・クール"
RETURN 1

;口上選択画面で表示する口上情報、サンプル
@KOJO_DEFINE_KOJO_INFO_K1001(CHARA_ID)
#DIM CHARA_ID
#DIM カラー

カラー = CFLAG:CHARA_ID:口上カラーコード
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇　口上の特徴　◇@/C@", 1)
PRINTFORML 少し落ち着いた感じの女性の汎用口上サンプル
PRINTL
CALLF TAG_PRINT(@"@C:{カラー_注釈}@◇　サンプル　◇@/C@", 1)
PRINTFORML 会話:
CALLF TAG_PRINT(@"@C:{カラー}@「……何か用？」@/C@", 1)
PRINTL
PRINTFORML スキンシップ:
CALLF TAG_PRINT(@"@C:{カラー}@「あ、ごめん…。　綺麗な髪だなって、つい……」@/C@", 1)
PRINTL
PRINTFORML 頭を撫でる:
CALLF TAG_PRINT(@"@C:{カラー}@「撫でて、欲しい……？　まぁ、いいけれど……」@/C@", 1)
PRINTFORML

;口上出力前の初期処理。共通処理以外で口上出力前に予め取得しておきたい情報があれば別途ここに記述
@KOJO_XML_INIT_K1001(KOJO_CHARA_ID)
#DIM  KOJO_CHARA_ID
#DIM  CONST OLD_XML_FORMAT = 0  ;基本は0指定。v0.211以前のXML口上フォーマットの場合 1
;出力前の共通初期処理
CALL KOJO_XML_INIT_COMMON_BEFORE_PRINT(KOJO_CHARA_ID)

RETURN OLD_XML_FORMAT

;-------------------------------------------------
; SELECTCOMがどのグループに属するのかを文字列で返す
; RESULTSで返却するグループ名のリストは口上シートA列COM|GROUPに指定した名称と一致している必要がある
; KOJO_CHARA_ID 口上参照キャラの登録番号
; PLACE 口上出力箇所 コマンド実行前と後で参照グループを切り替えたいならばこの引数を見る
; REUSLT = 0 合致グループなし
; REUSLT = 1 合致グループあり
; REUSLT = 2 合致グループあり、排他(該当グループ以外に適合する条件の口上があっても該当するグループのみ出力)
; RESULTS: グループ名のリスト
;-------------------------------------------------
@KOJO_XML_COMGROUP_K1001(KOJO_CHARA_ID, PLACE)
#DIM  KOJO_CHARA_ID
#DIMS PLACE
;口上固有の条件グループはここに定義

;共通のコマンドグループ
CALL KOJO_GET_COMGROUP(KOJO_CHARA_ID, PLACE)

RETURN RESULT


code:
<?xml version="1.0" encoding="utf-8"?>
<data>
  <command kojoPlace="TOP" priority="1" com="300" name="会話" isInitiative="FALSE">
    <contents>「……何か用？」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="300" name="会話" isInitiative="TRUE">
    <contents>「次の依頼についてだけど……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="300" name="会話" isInitiative="TRUE">
    <contents>「それで……私は、何をすれば良いのかしら？」</contents>
  </command>
  <command kojoPlace="TOP" priority="999" com="300" name="会話" emotion="NEGATIVE">
    <contents>「……%S_R("独りにして/静かにして/少し黙って")%」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="300" name="会話" cutDescription="TRUE">
    <contents>%ANAME(MASTER)%は%ANAME([$KC])%と辺境の治安について話した
「……街道近辺の治安はそれはもう酷いものよ。略奪が横行しているし、魔物も度々出るわ」
「そんな状況だから、ギルドにはひっきりなしに依頼が寄せらているようね」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="300" name="会話">
    <contents>「選択には責任が付き纏うわ。……常に注意深くあることね」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="300" name="会話">
    <contents>「武器を使わずに済むなら……それに越したことはないでしょうね」
「戦いというものは、ひどく不確実なリスクだから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="3" com="300" name="会話" eval="{HOKJ_IS_DOING([$KC]) == "読書中" }">
    <contents>「この本によると古の帝国の都は、全盛期には現在のどの都市よりも繁栄していたそう」
「けれど今はその都の場所すら、はっきりと伝わってはいない……」[$W]
「それほどの規模のものでさえ、数世紀も経てば忘れ去られてしまう……不思議なものね」</contents>
  </command>
  <command kojoPlace="TOP" priority="3" com="300" name="会話" isFall="LOVER">
    <contents>「あっ、%CALLNAME:MASTER%……。ご機嫌はいかが？」</contents>
  </command>
  <command kojoPlace="TOP" priority="3" com="300" name="会話" isInitiative="TRUE" emotion="GOOD" isFall="LOVER">
    <contents>%ANAME([$KC])%は口には出さないものの、とても上機嫌のようだ[$NC]</contents>
  </command>
  <command kojoPlace="TOP" priority="10" com="300" name="会話" eval="{IS_ESTRUS([$KC])}" isFall="LOVER">
    <contents>「えっと……、その、なんでも…ないから……」
%ANAME([$KC])%は頬をすっかり朱に染め、消え入るような声で呟いた[$NC]
@C:{カラー_ピンク}@熱を帯びた艶めかしい吐息が漏れ出るのを誤魔化しきれない様子だ…@/C@</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="300" name="休憩中" isInitiative="TRUE" eval="{HOKJ_IS_DOING([$KC]) == "休憩中" }">
    <contents>「……休める時に、しっかりと休んでおくことね」</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="300" name="遊戯中" eval="{HOKJ_IS_DOING([$KC]) == "遊戯中" }">
    <contents>「……意外？」
「私も娯楽くらい嗜むけれど……」</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="300" name="食事中" eval="{HOKJ_IS_DOING([$KC]) == "食事中" }">
    <contents>「あっ、……美味しい……」</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="300" name="食事中" isInitiative="TRUE" eval="{HOKJ_IS_DOING([$KC]) == "食事中" }">
    <contents>「きちんと食事はしている？」
「こうしてテーブルできちんと食べられる時間は、とても貴重だから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="320" name="スキンシップ" isFall="!LOVER" PLYorTGT="対象">
    <contents>「……気安く触らないで」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="320" name="スキンシップ" PLYorTGT="対象">
    <contents>「んっ……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="320" name="スキンシップ" PLYorTGT="実行">
    <contents>「あ、ごめん…。　綺麗な髪だなって、つい……」</contents>
  </command>
  <command kojoPlace="TOP" priority="2" com="320" name="スキンシップ" emotion="GOOD" PLYorTGT="実行">
    <contents>「少し……疲れが溜まっているようね」
%ANAME([$KC])%は%ANAME(MTAR:0)%の肩を優しく揉みほぐした…[$NC]</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="321" name="頭を撫でる" PLYorTGT="実行">
    <contents>「撫でて、欲しい……？　まぁ、いいけれど……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="321" name="頭を撫でる" PLYorTGT="実行">
    <contents>「……まぁ、いいけれど」</contents>
  </command>
  <command kojoPlace="TOP" priority="2" com="321" name="頭を撫でる" emotion="GOOD" PLYorTGT="実行">
    <contents>%ANAME([$KC])%は目を細めておずおずと%ANAME(MTAR:0)%の髪に触れた[$NC]</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="321" name="頭を撫でる" isInitiative="FALSE" emotion="GOOD" PLYorTGT="実行" forMaster="TRUE">
    <contents>「頭を撫でて……ほしい……？」
%ANAME(MASTER)%がこくりと首を縦に振ると、%ANAME([$KC])%は呆れた様子で手を伸ばしてきた。……態度とは裏腹にその手つきはとても優しく丁寧だった
「……これでいいのかしら？」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" PLYorTGT="対象" isUfufu="FALSE">
    <contents>「……っ！？……ちょっと……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" PLYorTGT="対象" isUfufu="FALSE">
    <contents>「……んっ、ちょっと……。くっつきすぎ」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" emotion="GOOD" PLYorTGT="対象" isUfufu="FALSE" lust="3">
    <contents>「温かい……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" isInitiative="TRUE" emotion="GOOD" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE" isUfufu="FALSE">
    <contents>「……もっとくっついて……うん、そう、それでいい……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" isInitiative="TRUE" emotion="GOOD" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE" isUfufu="FALSE">
    <contents>「いいよ、きて……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="327" name="抱きしめる" emotion="GOOD" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「もう少し、このままでいさせて……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="341" name="ソフトキス">
    <contents>「んっ……、ちゅっ……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="341" name="ソフトキス" emotion="GOOD" eval="{HO_TIME <= HO_CLOCK(1000)}" isFall="LOVER" forMaster="TRUE">
    <contents>「んっ……❤　お、おはよう……%CALLNAME:MASTER%」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="20" name="キス" isFall="!LOVER">
    <contents>「んんっ……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="20" name="キス" emotion="GOOD" isFall="LOVER" forMaster="TRUE">
    <contents>「んんっ……、あっ……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="20" name="キス" emotion="GOOD" isFall="LOVER" forMaster="TRUE">
    <contents>「んっ……ちゅぷっ……んむぅ……❤ ちゅぱっ……ちゅるるぅ……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="2" com="20" name="ハグキス" emotion="GOOD" eval="{IS_EQUIP_TARGET([$KC], 327)&&IS_ESTRUS([$KC]), 6}" isFall="LOVER" forMaster="TRUE">
    <contents>「ちゅぅ……❤　んんっ、もっと……、そう……ちゅっ❤」
%ANAME([$KC])%は情欲を帯びた、潤んだ瞳で%ANAME(MASTER)%を見つめながら舌を絡めている…[$NC]</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="30" name="正常位" isInitiative="TRUE" PLYorTGT="対象">
    <contents>「んんっ……あぁっ❤　大丈夫……いいよ、動いて」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="30" name="正常位" isInitiative="FALSE" PLYorTGT="対象">
    <contents>「そんなにじっと見ないで……、恥ずかしいから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="31" name="後背位" isInitiative="FALSE" emotion="GOOD" eval="{IS_ESTRUS([$KC])}" isFall="親愛" PLYorTGT="対象" forMaster="TRUE">
    <contents>「待って……！　だめ、こんな　んんん――――っ！　でちゃう、変な声……でちゃうからぁ……」
「んんっ、やぁぁ……、そんなに、強く、突かないで……あぁぁんっ❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="34" name="騎乗位" isInitiative="TRUE" emotion="GOOD" PLYorTGT="対象">
    <contents>「……じっとしていて、動いて、あげるから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="34" name="騎乗位" emotion="GOOD" PLYorTGT="対象">
    <contents>「ちょ、ちょっと……そんなに突き上げられたら、あっ❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="VSEX" name="Ｖ性交" emotion="GOOD" eval="{IS_ESTRUS([$KC], 8)}" isFall="LOVER" PLYorTGT="対象">
    <contents>「いい……、いいよ、%CALLNAME:MASTER%❤　きて……、もっと……深く、んんっ❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="VSEX" name="Ｖ性交" emotion="GOOD" eval="{IS_ESTRUS([$KC], 8)}" isFall="LOVER" PLYorTGT="対象">
    <contents>「だめ、頭……真っ白に……なっちゃう……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="VSEX" name="Ｖ性交" emotion="GOOD" PLYorTGT="対象">
    <contents>「んんっ、こ、こんなの……知らなっ、ああぁぁんっ❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="9" name="乳首吸い" isFall="!LOVER" PLYorTGT="対象">
    <contents>「んっ……！　あっ……、……舐め回さないで……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="9" name="乳首吸い" emotion="GOOD" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「ちょ、ちょっと❤　そんなに強く吸ったら、声…出ちゃう……あぁん❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="9" name="乳首吸い" emotion="GOOD" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「そ、そんなに強く吸っちゃ……んんっ――――❤❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="10" com="9" name="乳首吸い_授乳手コキ" emotion="GOOD" eval="{IS_EQUIP_PLAYER([$KC], 10 , 106)}" isFall="親愛" PLYorTGT="対象" forMaster="TRUE">
    <contents>「いいよ……❤　もっと……甘えて……❤」
「%CALLNAME:MASTER%がとろとろになってるところ……すごく可愛い……から」[$W]
「ふふっ……❤　また……大きくなった、ね」</contents>
  </command>
  <command kojoPlace="TOP" priority="10" com="10" name="手コキ_授乳手コキ" emotion="GOOD" eval="{IS_EQUIP_TARGET([$KC], 9)&&IS_ESTRUS([$KC], 10)}" isFall="親愛" PLYorTGT="実行" forMaster="TRUE">
    <contents>「どう……？　……美味しい？　……気持ちいい？」
「……すごく、可愛い顔、してるね……❤　いいよ……沢山、気持ちよくなって……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="12" name="パイズリ" isFall="!LOVER" PLYorTGT="実行">
    <contents>「胸で挟んで……欲しい？　……全く」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="12" name="パイズリ" emotion="GOOD" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「……どう？　気持ちいい……？」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="12" name="パイズリ" emotion="GOOD" eval="{IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「いいよ……❤　もっと擦り付けて……」
「うん、そう……。この胸も……もう、%CALLNAME:MASTER%のものだから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="12" name="パイズリ" isInitiative="TRUE" emotion="GOOD" eval="{IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「おっぱい……気持ちいい……？」
「そう……。　それじゃあ……もっと沢山……扱いてあげるから……」
「たくさんザーメン出して……気持ちよく…なって……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="107" name="パイズリフェラ" emotion="GOOD" eval="{IS_EQUIP_PLAYER([$KC], 12) && IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「んっ、ちゅっ、ちゅうぅっ……」
「おっぱいで擦られながら……先舐められるの……気持ちいい？」
「……ふふっ、言わなくても、わかるよ……」[$W]
「そんな顔されたら……もっとたくさん……してあげないと、ね❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="107" name="パイズリフェラ" emotion="GOOD" eval="{IS_EQUIP_PLAYER([$KC], 12) && IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="実行" forMaster="TRUE">
    <contents>「――%ONOMATOPE_PRESET("フェラ音短", 0, 0)%」
「舐めても舐めても、とろとろの汁……止まらない、ね❤」
「まだ……搾り足りない……のかな？　じゃあもっと……気持ちよくしてあげる……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="3" com="VSEX" name="Ｖ性交リアクション
" emotion="GOOD" eval="{TFLAG:リアクションコマンド実行&&IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「ねぇ……、私、うまく言葉に……できない……けど」
「%CALLNAME:MASTER%のこと、好き……だから、大好き……だから……」
「だから……、私でいっぱい気持ちよく……なって欲しいの」[$W]
「だからね……、我慢しないで……全部、全部……私に、注いで❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="3" com="VSEX" name="Ｖ性交リアクション
" emotion="GOOD" eval="{TFLAG:リアクションコマンド実行&&IS_ESTRUS([$KC])}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「んんっ❤　はぁ❤　ごめん……もう腰……止まらなくて……んんっ❤」
「勝手に貴方を求めてしまって……ああぁん！　いい、いいよぉ❤」
「ねぇ、%CALLNAME:MASTER%、もっと私を犯して、貫いて❤　貴方で真っ白に……染めて❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="107" name="亀頭責めフェラ" emotion="GOOD" isFall="LOVER" PLYorTGT="実行">
    <contents>「れろぉ……❤　んぷっ、はぁ。舐める度におちんちんびくびくさせて……そんなに気持ちいいの？」
「……ふぅん。　じゃあもっと、いっぱい舐めてあげる……❤」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="107" name="亀頭責めフェラ" emotion="GOOD" isFall="LOVER" PLYorTGT="実行">
    <contents>「舌の先で……舐められるの……好き？　……そう、それじゃあ……もっと、してあげる……ね」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="ORAL" name="口淫" emotion="GOOD" PLYorTGT="実行">
    <contents>「はぁ……んぷっ❤　れろぉ　んんっ……」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="ORAL" name="口淫" emotion="GOOD" eval="{ABL:[$KC]:精愛 > 3}" PLYorTGT="実行">
    <contents>「……味、変わって……きたね」
「どう……？　気持ちいい……？」</contents>
  </command>
  <command kojoPlace="TOP" priority="1" com="ORAL" name="口淫" emotion="GOOD" PLYorTGT="実行">
    <contents>「ちゅるる――っ。　んっ、ぢゅぷっ、ちゅぅ❤」
「こんなこと……はぁはぁ、させて……酷い人……❤　んんっ」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="5" com="VSEX" name="抱きつき" emotion="GOOD" eval="{IS_EQUIP([$KC], 327)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「温かくて……あぁ……❤　堕ちてしまいそう……」
「ねぇ、%CALLNAME:MASTER%。離さないで……。このままずっと、私のこと……愛して……」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="5" com="VSEX" name="抱きつき" emotion="GOOD" eval="{IS_EQUIP([$KC], 327)&&IS_ESTRUS([$KC], 8)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>%ANAME(MASTER)%は%ANAME([$KC])%を力強く抱きしめながら、激しい抽挿を繰り返している……
「あぁっ♥ そんなに強くしたらだめぇ……♥ おかしくなるぅ……あぁぁっ♥」
%ANAME([$KC])%はだらりと舌を突き出して、甘えた声で喘いでいる</contents>
  </command>
  <command kojoPlace="TOP" priority="5" com="VSEX" name="対面" emotion="GOOD" eval="{GROUPMATCH(SELECTCOM, 30, 32)}" PLYorTGT="対象" lust="10">
    <contents>%ANAME(MPLY:0)%は%ANAME([$KC])%と向かい合って腰掛けた。そしてそのままゆっくりと腰を沈めていく……
「んっ……あっ！……入ってきたぁ……あぁっ！」
%ANAME([$KC])%は待ちきれないといった様子で自ら腰を動かし始めた
「あんっ！ あっ！ はぁっ！ あぁんっ❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="5" com="VSEX" name="対面" emotion="GOOD" eval="{GROUPMATCH(SELECTCOM, 30, 32) && IS_ESTRUS([$KC]) && IS_ESTRUS(MASTER)}" isFall="親愛" PLYorTGT="対象" forMaster="TRUE">
    <contents>「はぁ……あぁ……。　すごく……気持ちいい……❤」
「ねぇ、%CALLNAME:MASTER%……。その…もっと……、貴方のこともっと……感じさせて❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="5" com="VSEX" name="対面" emotion="GOOD" eval="{GROUPMATCH(SELECTCOM, 30, 32) && IS_ESTRUS([$KC])}" isFall="親愛" PLYorTGT="対象" forMaster="TRUE">
    <contents>「ねぇ、%CALLNAME:MASTER%……、もっと、私のこと……愛して……」
「貴方を感じさせて……？　貴方を私に刻みつけて……、貴方で……満たして❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="VSEX" name="腟内射精" emotion="GOOD" eval="{NOW_BUKKAKED([$KC]) == 射精部位_膣内}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「んんっ……❤　中で、でてる……❤」
「ねぇ……、もし……孕んだら、責任……とって、くれるよね❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="VSEX" name="腟内射精" emotion="GOOD" eval="{NOW_BUKKAKED([$KC]) == 射精部位_膣内}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「あぁ……ん❤　お腹の中……こんなに熱く……❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="VSEX" name="腟内射精" emotion="GOOD" eval="{NOW_BUKKAKED([$KC]) == 射精部位_膣内 && IS_NASTY([$KC], 素質_淫乱_淫乱)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「いい……❤　んんっ❤　もっと、満たして……」
「私のこと、貴方でいっぱいにして……❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="3" com="VSEX" name="絶頂" emotion="GOOD" eval="{RAND:3 && (NOWEX:[$KC]:Ｃ絶頂 >= 2 || NOWEX:[$KC]:Ｖ絶頂 >= 2)&&IS_ESTRUS([$KC], 15)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「んんんー―――っ！　だ、だめ……、あぁんっ❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="3" com="VSEX" name="絶頂" emotion="GOOD" eval="{RAND:3 && (NOWEX:[$KC]:Ｃ絶頂 >= 3 || NOWEX:[$KC]:Ｖ絶頂 >= 3)&&IS_ESTRUS([$KC], 15)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「イ゛ぐっ！　ちょ、ちょっと……まっ、んんんっ❤　こんな……んんっ❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="3" com="VSEX" name="絶頂" emotion="GOOD" eval="{RAND:3 && (NOWEX:[$KC]:Ｃ絶頂 >= 2 || NOWEX:[$KC]:Ｖ絶頂 >= 2)}" isFall="LOVER" PLYorTGT="対象" forMaster="TRUE">
    <contents>「あ゛ぁん！　こんなぁ……❤　――――ん゛ん゛っ❤❤　すごすぎて、やぁんっ❤❤」</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="ANY" name="口淫_射精" emotion="GOOD" eval="{IS_SERVEAT([$KC], "口", "フェラ")&&NOW_BUKKAKED([$KC]) == 射精部位_口}">
    <contents>「んんんっ――――！　んぐっ……。　……はぁ❤」
%ANAME([$KC])%がどくどくと脈打つ%語彙_ペニス()%から唇を離すと、%語彙_精液()%が糸を引いた…[$NC]</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="ANY" name="口淫_射精" emotion="GOOD" eval="{IS_SERVEAT([$KC], "口", "フェラ")&&NOW_BUKKAKED([$KC]) == 射精部位_口 && ABL:[$KC]:精愛 > 5}" isFall="LOVER" forMaster="TRUE">
    <contents>「――%ONOMATOPE_PRESET("フェラ音長", 0, 0)%」
「ぢゅるるるぅ、んんっ❤　もっと、もっと出して❤　全部……舐め取って、きれいに……してあげるから❤　ぢゅる、ぢゅるるるぅ」[$W]
@C:{カラー_ピンク}@%ANAME([$KC])%は%ANAME(MASTER)%の%語彙_ペニス()%に%語彙_夢中()%に舌を這わせ、滴る%語彙_精液()%をすすっている…@/C@</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="10" com="ANY" name="口淫_射精" emotion="GOOD" eval="{IS_SERVEAT([$KC], "口", "フェラ")&&NOW_BUKKAKED([$KC]) == 射精部位_口 && ABL:[$KC]:精愛 > 5}" isFall="LOVER" forMaster="TRUE">
    <contents>「――%ONOMATOPE_PRESET("フェラ音長", 0, 0)%」
「あぁ……すごく濃くて……んんっ……❤」[$W]
「口の中……貴方で満たされ……はあぁ❤　こんなの……❤　もう、なにも……考えられない……」
@C:{カラー_ピンク}@%ANAME([$KC])%は%ANAME(MASTER)%の%語彙_ペニス()%に%語彙_夢中()%に舌を這わせ、滴る%語彙_精液()%をすすっている…@/C@</contents>
  </command>
  <command kojoPlace="BOTTOM" priority="5" com="ORAL" name="机下フェラ" emotion="GOOD" eval="{HOKJ_CHECK_ELEMENT([$KC], "机") && ABL:[$KC]:精愛 > 5}" isFall="LOVER" forMaster="TRUE">
    <contents>%ANAME(MASTER)%は椅子に座りながら、床に膝立ちになった%ANAME([$KC])%を見下ろしていた。彼女は懸命に奉仕を続けている
%ANAME([$KC])%は妖艶な笑みを浮かべ、上目遣いで%ANAME(MASTER)%に語りかけた
「んぷっ……、まだ足りないみたいね？ いいわよ……全部受け止めてあげるから……」</contents>
  </command>
  <command kojoPlace="TOP" priority="2" com="ORAL" name="机下フェラ" emotion="GOOD" eval="{HOKJ_CHECK_ELEMENT([$KC], "机")}" PLYorTGT="実行">
    <contents>「……ここで？　……本当に、仕方のない人……」
%ANAME([$KC])%は机の下で%ANAME(MTAR:0)%の股間に顔を埋め、おずおずと口淫を始めた……[$NC]</contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
  <command>
    <contents></contents>
  </command>
</data>