code:
;-------------------------------------------------
;各種フラグを設定する関数
;LOCALSは基本的にSPLITのみで使う
;-------------------------------------------------
@SETFLAG, ARGS, ARG, ARG:1, ARG:2
#DIM LCOUNT
#DIM LCOUNT2
#DIM MEMO_LINECOUNT
#DIM MEMO_TARGET
#DIMS MEMO_PLACE
#DIM ACTOR
#DIM NUM_ACTOR
#DIM NUM_SELECT
#DIM CHOICE
#DIM DYNAMIC MEMO, 10
#DIMS DYNAMIC MEMOS, 10

MEMO_LINECOUNT = LINECOUNT
VARSET ACTOR

SELECTCASE ARGS
;人外角色の基本的な素質を設定する。ココでの数値を変更した場合は併せて下の"给看尾巴"の方も変える事
CASE "獣人"
	CSTR:ARG:種族 = 獣人
	TALENT:ARG:精灵耳 = 0
	SIF TALENT:ARG:動物耳 == 0
		TALENT:ARG:動物耳 = 1
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "猫獣人"
	CSTR:ARG:種族 = 獣人_猫
	TALENT:ARG:精灵耳 = 0
	SELECTCASE TALENT:ARG:動物耳
	;犬猫耳
	CASE 1 TO 3
	CASEELSE
		TALENT:ARG:動物耳 = 1
	ENDSELECT
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "狼獣人"
	CSTR:ARG:種族 = 獣人_狼
	TALENT:ARG:精灵耳 = 0
	SELECTCASE TALENT:ARG:動物耳
	;犬猫耳
	CASE 1 TO 3
	CASEELSE
		TALENT:ARG:動物耳 = 1
	ENDSELECT
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "狐獣人"
	CSTR:ARG:種族 = 獣人_狐
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 4
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "兎獣人"
	CSTR:ARG:種族 = 獣人_兎
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 5
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "鼠獣人"
	CSTR:ARG:種族 = 獣人_鼠
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 6
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "悪魔"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 1
	TALENT:ARG:翼 = 1
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "鬼"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 20
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "竜人"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 1
	TALENT:ARG:角 = 21
	TALENT:ARG:翼 = 1
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
CASE "淫魔"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 1
	TALENT:ARG:動物足 = 0
CASE "魔界人"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 2
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 10
	TALENT:ARG:翼 = 1
	TALENT:ARG:頭羽 = 1
	TALENT:ARG:動物足 = 0
CASE "史莱姆"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
	;以下は暫定措置
	CSTR:ARG:髪長 = 長
	CSTR:ARG:前髪 = 液状前髪
	CSTR:ARG:後髪 = 卷髪
	CSTR:ARG:改髪 = 无特殊髪型
CASE "一目"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0
	;以下は暫定措置
	CSTR:ARG:眼形 = 普通眼
	CSTR:ARG:眉形 = 通常眉

;外見が人と変わらない種族
CASE "人类", "妖狐", "吸血鬼", "天使"
	CSTR:ARG:種族 = %ARGS%
	TALENT:ARG:精灵耳 = 0
	TALENT:ARG:動物耳 = 0
	TALENT:ARG:尾巴 = 0
	TALENT:ARG:角 = 0
	TALENT:ARG:翼 = 0
	TALENT:ARG:頭羽 = 0
	TALENT:ARG:動物足 = 0

CASE "给看尾巴"
	CFLAG:ARG:尾巴を出す = 1
	IF COND("種族：妖狐", ARG)
		TALENT:ARG:動物耳 = 4
		TALENT:ARG:尾巴 = 1
	ELSEIF COND("種族：悪魔", ARG)
		TALENT:ARG:尾巴 = 1
	ELSEIF COND("種族：淫魔", ARG)
		TALENT:ARG:尾巴 = 1
		TALENT:ARG:頭羽 = 1
	ENDIF
CASE "合意：给看尾巴"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：给看尾巴", ARG)
		RETURN 0
	CALL PRINT_STRW, @"%CALLNAME:MASTER%獲得了%CALLNAME:ARG%的_イエロー_[给看尾巴]_的合意。"
	CALL PRINT_STRW, @"イエロー_今后可以在部室和自宅让耳朵和尾巴不隐藏起来了"
	CALL SET_GOUI, "给看尾巴", ARG

;STR:衣装記録を使う
CASE "晒痕"
	CSTR:ARG:晒痕 = %SWIM(STR:衣装記録, "晒痕")%
	CFLAG:ARG:晒痕強度 = CALCF("晒痕強度")
CASE "晒痕重置"
	CSTR:ARG:晒痕 =
	CFLAG:ARG:晒痕強度 = 0
;常に晒痕したい人向け
CASE "常時晒痕"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	TALENT:ARG:常時晒痕 = 1
CASE "常時晒痕解除"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	TALENT:ARG:常時晒痕 = 0

CASE "初期衣装"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	CALL SET_COORDINATE, "内衣", ARG
	IF COND("お友達紹介イベント中")
		IF COND("学生", ARG) || COND("教師", ARG)
			CALL SET_COORDINATE, "制服", ARG
		ELSE
			CALL SET_COORDINATE, "便装", ARG
		ENDIF
	;以下は実際に勧誘した際の表示画面
	ELSE
		;現在位置が部室
		IF PLACE("部室")
			;勧誘後すぐに現れる角色は制服
			IF COND("部室出現可能", ARG) || CFLAG:ARG:初期仲間
				CALL SET_COORDINATE, "制服", ARG
			ELSE
				CALL SET_COORDINATE, "便装", ARG
			ENDIF
		;部室以外
		ELSE
			;勧誘後すぐに現れる角色は便装
			IF CFLAG:ARG:初期同居 || CFLAG:ARG:初期仲間
				CALL SET_COORDINATE, "便装", ARG
			ELSE
				CALL SET_COORDINATE, "制服", ARG
			ENDIF
		ENDIF
	ENDIF
CASE "妊娠不能にする"
	TALENT:ARG:Ａ妊娠体質 = 0
	TALENT:ARG:Ｖ妊娠不能 = 1
CASE "妊娠可能にする"
	IF TALENT:ARG:男性
		TALENT:ARG:Ａ妊娠体質 = 1
	ELSE
		TALENT:ARG:Ｖ妊娠不能 = 0
	ENDIF
CASE "内衣をしまう"
	SIF CSTR:しまった内衣 != ""
		RETURN 0

	VARSET LOCALS
	SPLIT STR:衣装記録, "_", LOCALS

	SIF LOCALS:0 == "" && LOCALS:1 == ""
		RETURN 0

	CSTR:しまった内衣 = %LOCALS:0%_%LOCALS:1%

CASE "しまった内衣を身に着ける"
	SIF CSTR:しまった内衣 == ""
		RETURN 0
	CALL SET_PANTIES, "しまった内衣"

CASE "普段の髪型記録", "髪の記録"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET

	LOCALS = %CONDS("髪型", ARG)%\/%CSTR:ARG:髪色%\/%CSTR:ARG:髪長%\/%CSTR:ARG:前髪%\/%CSTR:ARG:後髪%\/%CSTR:ARG:改髪%\/%CSTR:ARG:呆毛%\/%CSTR:ARG:蝴蝶結%\/%CSTR:ARG:挑染%\/%CSTR:ARG:渐变颜色%\/

	SELECTCASE ARGS
	CASE "普段の髪型記録"
		CSTR:ARG:普段の髪型 = %LOCALS%
	CASE "髪の記録"
		STR:髪記録 = %LOCALS%
	ENDSELECT

CASE "普段の髪型復元", "髪記録からの復元"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET
	VARSET LOCALS

	SELECTCASE ARGS
	CASE "普段の髪型復元"
		SPLIT CSTR:ARG:普段の髪型, "/", LOCALS
	CASE "髪記録からの復元"
		SPLIT STR:髪記録, "/", LOCALS
	ENDSELECT

	CSTR:ARG:髪色 = %LOCALS:1%
	CSTR:ARG:髪長 = %LOCALS:2%
	CSTR:ARG:前髪 = %LOCALS:3%
	CSTR:ARG:後髪 = %LOCALS:4%
	CSTR:ARG:改髪 = %LOCALS:5%
	CSTR:ARG:呆毛 = %LOCALS:6%
	CSTR:ARG:蝴蝶結 = %LOCALS:7%
	CSTR:ARG:挑染 = %LOCALS:8%
	CSTR:ARG:渐变颜色 = %LOCALS:9%

CASE "表情の記録"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET
	STR:表情記録 = %CSTR:ARG:瞳色%\/%CSTR:ARG:眼形%\/%CSTR:ARG:白眼%\/%CSTR:ARG:眉形%\/%CSTR:ARG:嘴形%\/%CSTR:ARG:頬%\/%CSTR:ARG:高光%\/%CSTR:ARG:痣%\/%OTHER(ARG, "眼鏡")%\/

CASE "表情記録からの復元"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET
	VARSET LOCALS

	SPLIT STR:表情記録, "/", LOCALS

	CSTR:ARG:瞳色 = %LOCALS:0%
	CSTR:ARG:眼形 = %LOCALS:1%
	CSTR:ARG:白眼 = %LOCALS:2%
	CSTR:ARG:眉形 = %LOCALS:3%
	CSTR:ARG:嘴形 = %LOCALS:4%
	CSTR:ARG:頬 = %LOCALS:5%
	CSTR:ARG:高光 = %LOCALS:6%
	CSTR:ARG:痣 = %LOCALS:7%
	SIF LOCALS:8 != ""
		CALL SET_OTHER, LOCALS:8, ARG

CASE "颜绘の記録", "最初の颜绘の記録", "無表情颜绘の記録"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET
	LOCALS =
	FOR LCOUNT, 90, 110
		LOCALS += @"%CSTR:ARG:LCOUNT%\/"
	NEXT
	LOCALS += @"%OTHER(ARG, "眼鏡")%\/"
	LOCALS += @"%TOSTR(TALENT:ARG:肤色)%\/"
	LOCALS += @"%TOSTR(TALENT:ARG:動物耳)%\/"
	LOCALS += @"%TOSTR(TALENT:ARG:精灵耳)%\/"
	LOCALS += @"%TOSTR(TALENT:ARG:角)%\/"
	LOCALS += @"%CSTR:ARG:種族%\/"
	LOCALS += @"%TOSTR(TALENT:ARG:常時晒痕)%\/"
	LOCALS += @"%CSTR:ARG:晒痕%\/"

	SELECTCASE ARGS
	CASE "颜绘の記録"
		STR:颜绘記録 = %LOCALS%
	CASE "最初の颜绘の記録"
		STR:最初の颜绘 = %LOCALS%
		STR:無表情颜绘 = %LOCALS%
	CASE "無表情颜绘の記録"
		STR:無表情颜绘 = %LOCALS%
	ENDSELECT
CASE "颜绘記録からの復元", "最初の颜绘からの復元", "無表情颜绘からの復元"
	SIF ARG == 0 && TARGET > 0
		ARG = TARGET
	VARSET LOCALS
	SELECTCASE ARGS
	CASE "颜绘記録からの復元"
		SPLIT STR:颜绘記録, "/", LOCALS
	CASE "最初の颜绘からの復元"
		STR:無表情颜绘 = %STR:最初の颜绘%
		SPLIT STR:最初の颜绘, "/", LOCALS
	CASE "無表情颜绘からの復元"
		SIF STR:無表情颜绘 == ""
			STR:無表情颜绘 = %STR:最初の颜绘%
		SPLIT STR:無表情颜绘, "/", LOCALS
	ENDSELECT
	FOR LCOUNT, 90, 110
		CSTR:ARG:LCOUNT = %LOCALS:(LCOUNT-90)%
	NEXT
	SIF LOCALS:20 != ""
		CALL SET_OTHER, LOCALS:20, ARG
	IF COND("仮想角色", ARG)
		TALENT:ARG:肤色 = TOINT(LOCALS:21)
		TALENT:ARG:動物耳 = TOINT(LOCALS:22)
		TALENT:ARG:精灵耳 = TOINT(LOCALS:23)
		TALENT:ARG:角 = TOINT(LOCALS:24)
		CSTR:ARG:種族 = %LOCALS:25%
		TALENT:ARG:常時晒痕 = TOINT(LOCALS:26)
		CSTR:ARG:晒痕 = %LOCALS:27%
	ENDIF

CASE "你の本日の内衣"
	SIF CHECK_CLO("所持内衣", MASTER) == 0 || COND("池面", MASTER)
		RETURN 0

	MEMO_PLACE = %SAVESTR:現在位置%
	SAVESTR:現在位置 = 居間

	CALL SETFLAG, "衣装の記録", MASTER
	STR:最初の衣装 = %STR:衣装記録%
	CALL SETFLAG, "内衣以外全脱ぎ", MASTER

	;複数持っているなら何を選んだか出す
	IF COND("所持内衣数", MASTER) >= 2
		SELECTCASE TEXTS("日期対応イベント")
		;大号的イベントが無い
		CASE "", "情人節翌日", "圣诞节前夕", "圣诞节翌日", "即将到来文化祭", "周考"
			PRINTFORM %TEXTR("今日の/本日の")%
		CASEELSE
			PRINTFORM %TEXTR(@"記念すべき本日の/今日はちょっと気合を入れて/今日は%TEXTS("日期対応イベント")%ということで")%
		ENDSELECT
		PRINTFORM 内衣は……
		IF EQUIP:MASTER:胸罩 || EQUIP:MASTER:胖次
			CALL PRINT_UNDERWEARS, MASTER
			PRINTFORML %TEXTR("にしようと思う/に決定！/で良いかなぁ？")%
		ELSE
			PRINTFORML %TEXTR("着けない事にしようと思う！/無くても良いよね？/……ここはひとつ没有で行ってみよう")%
		ENDIF
		CALL PRINT_MAIDFACE, MASTER
		CALL PRINT_CUTIN, "胖次前後", MASTER
	ENDIF

	STR:衣装記録 = %STR:最初の衣装%
	CALL SETFLAG, "衣装記録からの復元", MASTER
	SAVESTR:現在位置 = %MEMO_PLACE%
	DRAWLINE

CASE "所持内衣に加える"
	CSTR:ARG:所持内衣 += @"%CSTR:ARG:胖次%_%CSTR:ARG:胸罩%＠"
CASE "所持内衣に更衣"
	VARSET LOCALS
	CSTR:ARG:所持内衣 = %REPLACE(CSTR:ARG:所持内衣, "所持内衣/", "")%
	SPLIT CSTR:ARG:所持内衣, "＠", LOCALS
	CHOICE = RAND:COND("所持内衣数", ARG)
	STR:換装衣装 = %LOCALS:CHOICE%

	;ここはCASE "内衣の換装" と同じことをしている
	VARSET LOCALS
	SPLIT STR:換装衣装, "_", LOCALS
	CSTR:ARG:胖次 = %LOCALS:0%
	SIF LOCALS:0 != ""
		CSTR:ARG:胖次 += "所持内衣/"
	CSTR:ARG:胸罩 = %LOCALS:1%
	SIF LOCALS:1 != ""
		CSTR:ARG:胸罩 += "所持内衣/"

	EQUIP:ARG:胖次 = STRLENS(CSTR:ARG:胖次)
	EQUIP:ARG:胸罩 = STRLENS(CSTR:ARG:胸罩)

	TFLAG:换上了自己的内衣 = 1
CASE "衣装の記録", "今年の泳装の記録"
	SELECTCASE ARGS
	CASE "衣装の記録"
		STR:衣装記録 = %CSTR:ARG:胖次%_%CSTR:ARG:胸罩%_%CSTR:ARG:服%_%CSTR:ARG:裙%_%CSTR:ARG:贴身制服%_%CSTR:ARG:外套%_%CSTR:ARG:襪子%_%CSTR:ARG:靴%_%CSTR:ARG:手套%_%CSTR:ARG:飾品%_
	CASE "今年の泳装の記録"
		STR:選んだ泳装 = %ADDPALAM_SWIM(@"%CSTR:ARG:胖次%_%CSTR:ARG:胸罩%_%CSTR:ARG:服%_%CSTR:ARG:裙%_%CSTR:ARG:贴身制服%_%CSTR:ARG:外套%_%CSTR:ARG:襪子%_%CSTR:ARG:靴%_%CSTR:ARG:手套%_%CSTR:ARG:飾品%_%PANTIES(ARG)%%BODYS(ARG)%_")%
	ENDSELECT
CASE "衣装記録からの復元", "今年の泳装の復元", "衣装の換装", "内衣の換装", "胖次の換装"
	VARSET LOCALS
	SELECTCASE ARGS
	CASE "衣装記録からの復元"
		SPLIT STR:衣装記録, "_", LOCALS
	CASE "今年の泳装の復元"
		SPLIT CSTR:ARG:今年の泳装, "_", LOCALS
	CASE "衣装の換装", "内衣の換装", "胖次の換装"
		SPLIT STR:換装衣装, "_", LOCALS
	ENDSELECT

	SELECTCASE ARGS
	CASE "胖次の換装"
		CSTR:ARG:胖次 = %LOCALS:0%
	CASE "内衣の換装"
		CSTR:ARG:胖次 = %LOCALS:0%
		CSTR:ARG:胸罩 = %LOCALS:1%
	CASEELSE
		CSTR:ARG:胖次 = %LOCALS:0%
		CSTR:ARG:胸罩 = %LOCALS:1%
		CSTR:ARG:服 = %LOCALS:2%
		CSTR:ARG:裙 = %LOCALS:3%
		CSTR:ARG:贴身制服 = %LOCALS:4%
		CSTR:ARG:外套 = %LOCALS:5%
		CSTR:ARG:襪子 = %LOCALS:6%
		CSTR:ARG:靴 = %LOCALS:7%
		CSTR:ARG:手套 = %LOCALS:8%
		CSTR:ARG:飾品 = %LOCALS:9%
	ENDSELECT

	EQUIP:ARG:胖次 = STRLENS(CSTR:ARG:胖次)
	EQUIP:ARG:胸罩 = STRLENS(CSTR:ARG:胸罩)
	EQUIP:ARG:服 = STRLENS(CSTR:ARG:服)
	EQUIP:ARG:裙 = STRLENS(CSTR:ARG:裙)
	EQUIP:ARG:贴身制服 = STRLENS(CSTR:ARG:贴身制服)
	EQUIP:ARG:外套 = STRLENS(CSTR:ARG:外套)
	EQUIP:ARG:襪子 = STRLENS(CSTR:ARG:襪子)
	EQUIP:ARG:靴 = STRLENS(CSTR:ARG:靴)
	EQUIP:ARG:手套 = STRLENS(CSTR:ARG:手套)
	EQUIP:ARG:飾品 = STRLENS(CSTR:ARG:飾品)

CASE "強制射精"
	;手下留情は終了
	TEQUIP:ARG:手下留情 = 0
	TCVAR:ARG:絶頂許可 = 1
	TCVAR:ARG:強制射精 = 1

	BASE:ARG:絶頂 += MAX(MAXBASE:ARG:絶頂, MAXBASE:ARG:快感許容値男性)
CASE "本日の点心"
	FLAG:点心当番 = 0
	SAVESTR:点心 =
	SAVESTR:点心詳細 =

	;你が点心を用意した場合
	IF SAVESTR:你の点心 != ""
		FLAG:点心当番 = BASE:MASTER:識別番号
		SAVESTR:点心 = %SAVESTR:你の点心%
		SAVESTR:点心詳細 = %CALLNAME:MASTER%が用意した%TEXTS("点心")%

		SAVESTR:你の点心 =

		RETURN 1
	ENDIF

	NUM_ACTOR = 1
	FOR LCOUNT, 2, CHARANUM
		SIF CSTR:LCOUNT:点心 == "" || CFLAG:LCOUNT:夜型
			CONTINUE
		SIF TALENT:LCOUNT:恋慕 + TALENT:LCOUNT:献身 + TALENT:LCOUNT:温柔 + TALENT:LCOUNT:喜歡引人注目  == 0
			CONTINUE
		SIF RAND:NUM_ACTOR
			CONTINUE

		FLAG:点心当番 = BASE:LCOUNT:識別番号
		SAVESTR:点心 = %TEXTR(CSTR:LCOUNT:点心)%
		IF COND("亲手自制点心")
			SAVESTR:点心詳細 = %CALLNAME:LCOUNT%手工制作的%TEXTS("点心")%
		ELSE
			SAVESTR:点心詳細 = %CALLNAME:LCOUNT%准备好的%TEXTS("点心")%
		ENDIF

		NUM_ACTOR += 1
	NEXT
CASE "ご褒美獲得"
	FOR LCOUNT, 2, CHARANUM
		SIF CFLAG:LCOUNT:Ｈ的約定 <= 0
			CONTINUE
		SIF CFLAG:MASTER:試験結果 < CFLAG:LCOUNT:Ｈ的約定
			CONTINUE
		CFLAG:LCOUNT:ご褒美権 = 1
	NEXT
CASE "Ｈ的約定：しない"
	CFLAG:ARG:Ｈ的約定 = -1
CASE "Ｈ的約定：60点"
	CFLAG:ARG:Ｈ的約定 = 60
CASE "Ｈ的約定：80点"
	CFLAG:ARG:Ｈ的約定 = 80
CASE "Ｈ的約定：90点"
	CFLAG:ARG:Ｈ的約定 = 90

CASE "学力の設定"
	SIF COND("学生", ARG) == 0
		RETURN 0

	IF BASE:ARG:学力
		BASE:ARG:学力 = CALCF("推定学力", ARG)
		RETURN 0
	ENDIF

	;以下は初期設定。直近の試験結果を仮設定する
	FOR LCOUNT, 0, 3
		CFLAG:ARG:勉強時間 = 0
		;普段どの程度勉強しているか
		SIF STRCOUNT(CSVCSTR(NO:ARG, GETNUM(CSTR, "種族") ), "魔法使")
			CFLAG:ARG:勉強時間 += RAND:3
		SIF STRCOUNT(CSVCSTR(NO:ARG, GETNUM(CSTR, "種族") ), "妖术使")
			CFLAG:ARG:勉強時間 += RAND:3
		SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "聰慧") )
			CFLAG:ARG:勉強時間 += 1 + RAND:3
		SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "笨蛋") )
			CFLAG:ARG:勉強時間 -= 1 + RAND:3
		SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "容易中毒") )
			CFLAG:ARG:勉強時間 -= 1 + RAND:5
		SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "接受快感") )
			CFLAG:ARG:勉強時間 -= RAND:3
		SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "真面目") )
			CFLAG:ARG:勉強時間 += 1 + RAND:3
		SIF CSVABL(NO:ARG, GETNUM(ABL, "自慰中毒") )
			CFLAG:ARG:勉強時間 -= RAND:3

		;学年が上の方が勉強時間が多い
		SELECTCASE CSTR:ARG:学年
		CASE "１年生", "初等部", "中等部"
			CFLAG:ARG:勉強時間 = MAX(CFLAG:ARG:勉強時間 + RAND:3, 0)
		CASE "２年生"
			CFLAG:ARG:勉強時間 = MAX(CFLAG:ARG:勉強時間 + 1 + RAND:3, 0)
		CASE "３年生"
			CFLAG:ARG:勉強時間 = MAX(CFLAG:ARG:勉強時間 + 1 + RAND:5, 1)
		ENDSELECT

		;試験結果算出で勉強時間が0になってしまうので記録
		MEMO = CFLAG:ARG:勉強時間

		CALL CALC, "試験結果算出", ARG
	NEXT

	;部活に入るまではちょっとは勉強してます
	CFLAG:ARG:勉強時間 = MEMO

	BASE:ARG:学力 = CALCF("推定学力", ARG)

CASE "ＴＰＯによる外見変更"
	MEMO_TARGET = TARGET
	FOR LCOUNT, 2, CHARANUM
		TARGET = LCOUNT
		;髪型変更を戻せるように記録
		CALL SETFLAG, "髪の記録", TARGET

		TRYCALLFORM MAIDFACE_K{NO:TARGET}

		;髪型変更中だと髪型変更は元に戻す
		SIF CFLAG:髪型変更のお願い中
			CALL SETFLAG, "髪記録からの復元", TARGET
	NEXT
	TARGET = MEMO_TARGET
CASE "浴室PLAY"
	;このEQUIPを条件にここに来る場合に対応
	EQUIP:お浴室でＨ = 0

	;終了時は修正无
	IF TEQUIP:浴室PLAY
		TEQUIP:浴室PLAY = 0
		IF ASSI
			TEQUIP:ASSI:浴室PLAY = 0
		ENDIF

		RETURN 1
	ELSE
		TEQUIP:浴室PLAY = 1
		TEQUIP:出浴 = 1
		IF ASSI
			TEQUIP:ASSI:浴室PLAY = 1
			TEQUIP:ASSI:出浴 = 1
		ENDIF
		TEQUIP:MASTER:出浴 = 1
	ENDIF

CASE "部員同士の交流：角色選出"
	SIF CHARA_NUM("部員同士の交流可能") < 2
		RETURN 0
	CVARSET CFLAG, GETNUM(CFLAG, "交流中")
	;二人選ぶ
	CFLAG:FIND_COND("部員同士の交流可能"):交流中 = 1
	CFLAG:FIND_COND("部員同士の交流可能"):交流中 = 2
	;他の人達は後で選択可能にしておく
	FOR LCOUNT, 2, CHARANUM
		SIF COND("部員同士の交流可能", LCOUNT)
			CFLAG:LCOUNT:交流中 = 3
	NEXT
CASE "请求换上连褲襪"
	SIF ARG <= 0 && TARGET > 0
		ARG = TARGET
	SIF CEVENTS("连褲襪", ARG) == ""
		RETURN 0
	SIF CHECK_OUTER("连褲襪", ARG) == 0 || EQUIP:ARG:贴身制服
		RETURN 0

	VARSET LOCALS
	SPLIT CEVENTS("连褲襪", ARG), "_", LOCALS

	CALL SET_OUTER, LOCALS, ARG
	;色指定があるなら追記
	SIF LOCALS:1 != ""
		CSTR:ARG:外套 += @"%LOCALS:1%\/"

CASE "存在しない素質の整理"
	FOR LCOUNT, 0, 200
		SELECTCASE TALENTNAME:LCOUNT
		CASE ""
			CVARSET TALENT, LCOUNT
		ENDSELECT
	NEXT

;主に夜袭朝袭で使う
CASE "地の文スキップ"
	CLEARLINE LINECOUNT - TFLAG:LINECOUNT_地の文
	TFLAG:地の文スキップ = 1

;CSTR:Ｐ汚れは RESET_STAIN_EX, "Ｐ" などで他のＰ汚れと一緒に取り除かれるが、最後に相手した人物の記録だけは時間ごとの重置領帯ミングまで残り続ける
;ＶorＡor尿or""_識別番号　となる
CASE "Ｐ汚れ：Ｖ", "Ｐ汚れ：Ａ", "Ｐ汚れ：尿"
	SELECTCASE ARG
	CASE IS <= 0
		SIF TARGET > 0
			ARG = TARGET
	CASE PLAYER
		SIF ARG:1 <= 0 && TARGET > 0
			ARG:1 = TARGET
	ENDSELECT
	SIF ARG:1 <= 0 && PLAYER > 0
		ARG:1 = PLAYER

	;汚れが付かない場合も相手だけ記録する
	IF PENIS(ARG:1) == 0 || TEQUIP:(ARG:1):避孕套
		CSTR:(ARG:1):Ｐ汚れ = %BL()%_%TOSTR(BASE:ARG:識別番号)%
	ELSE
		CSTR:(ARG:1):Ｐ汚れ = %SUBSTRINGU(ARGS, 4)%_%TOSTR(BASE:ARG:識別番号)%
	ENDIF
CASE "着替えをした"
	CALL DEL_CEVENT_GROUP, "着替えをした"

	SELECTCASE STR:変更衣装
	CASE "约会衣装"
		SIF CLO_ABOUT(TARGET) != CSTR:いつもの格好 && CHECK_CLO("学生服姿") == 0
			CALL SET_CEVENT, @"着替えをした：%STR:変更衣装%"
	CASE "居家服", "外出装"
		SIF CLO_ABOUT(TARGET) != CSTR:いつもの格好
			CALL SET_CEVENT, @"着替えをした：%STR:変更衣装%"
	CASEELSE
		CALL SET_CEVENT, @"着替えをした：%STR:変更衣装%"
	ENDSELECT
CASE "约会衣装に更衣"
	SIF ARG <= 0 && TARGET
		ARG = TARGET

	;约会前は胖次を穿き変える
	CALL RAND_PANTU, ARG
	CALL SET_COORDINATE, "约会衣装", ARG

CASE "性処理係の証"
	FOR LCOUNT, 2, CHARANUM
		SIF COND("合意：性処理", LCOUNT) == 0
			CONTINUE
		CALL SET_OTHER, "黒色颈环", LCOUNT
	NEXT

CASE "結腸責め"
	TEQUIP:ARG:結腸責め = SELECTCOM
	;結腸責めフラグON
	SETBIT TCVAR:ARG:イベント, 61

CASE "约会のお誘い"
	CFLAG:ARG:约会的约定 = -1
CASE "约会的约定"
	CFLAG:MASTER:ARGS = BASE:ARG:識別番号
	CFLAG:ARG:ARGS = MASTER

	STR:日常イベント名 = %ARGS%
	CALL SET_DEVENT, ARGS, ARG

	SWAP TARGET, ARG
	CALL SET_PREV_DAILYCOM
	SWAP TARGET, ARG
CASE "约会の便当"
	;もう便当を作ってくれる約束済み
	SIF CEVENT("约会の便当")
		RETURN 0
	;便当を作ってくれなさそう
	SIF COND("合意：便当") == 0 && TALENT:料理擅長 == 0
		RETURN 0
	PRINTFORMW ……要拜托帮忙制作便当吗？
	CALL PRINT_SELECT, "拜托了！/还是算了"
	IF RESULT == 0
		CALL SET_CEVENT, "约会の便当"
		CALL KOJO_DATE, "便当を頼まれた"
		IF CEVENT("约会の便当")
			PRINTFORMW %CALLNAME:TARGET%会为你准备便当。
		ELSE
			PRINTFORMW 很可惜%CALLNAME:TARGET%似乎不想给你制作便当。
		ENDIF
		CALL BLANKLINE
	ENDIF

CASE "事后避孕药"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	TALENT:ARG:事后避孕药 = 7

;***着床判定追加パッチで変更
;避孕套や生挿入に対して女の子が判断する際、COND("Ｖ妊娠可能")の代わりにCOND("避妊不要")を参照するように変更
CASE "生挿入可否判定"
	SIF TCVAR:Ｖ生挿入許可
		RETURN 0

	;避孕套付けるなって言われる場合
	IF TEQUIP:PLAYER:避孕套
		SIF TCVAR:Ｖ避孕套挿入許可
			RETURN 0
		IF COND("讨厌避孕套") && (COND("安全日") || COND("避妊不要") || COND("妊娠確率極低") )
			PRINTFORML 在插入之前被%CALLNAME:TARGET%阻止了。
			PRINTFORMW ……明明不是危险日却使用避孕套是不被允许的。
			CALL SETFLAG, "取消避孕套", PLAYER
		ENDIF
	;避孕套使わなくてもＯＫな状態ではない
	ELSEIF COND("女性主導生性交") == 0 && COND("合意：危険日生性交") == 0
		;安全日でもダメな相手。避孕套派
		IF COND("中出し嫌い")
			PRINTFORML 在插入之前被%CALLNAME:TARGET%阻止了。
			IF COND("避妊中")
				PRINTFORMW ……就算是在避孕中、好像也不允许生插入。。
			ELSEIF COND("安全日")
				PRINTFORMW ……即使是安全日、好像也不允许生插入。。
			ELSE
				PRINTFORMW ……好像不允许生插入。
			ENDIF
			PRINTFORMW 在%CALLNAME:TARGET%改变心意之后\@ COND("避妊中") == 0 ? 或者在安全日左右 # \@……
			CALL PRINT_STRW, "イエロー_(※想要[避孕套派]的人允許生挿入的话、需要对方至少有[恋慕]or[精液中毒LV3])"
			TFLAG:指令中止 = 1
		ELSEIF COND("讨厌避孕套") == 0 && COND("安全日") == 0 && COND("避妊不要") == 0
			PRINTFORML 在插入之前被%CALLNAME:TARGET%阻止了。
			;约会の時には少しだけ判定が緩くなる
			IF COND("约会中") && COND("危険日") == 0
				WAIT
				PRINTFORMW ……出乎意料之外、%CALLNAME:TARGET%放松了抵抗、挺出了腰部。
				PRINTFORMW 平时不会允许的%CALLNAME:TARGET%、似乎是对愉快约会的奖励、这一次可以被特殊原谅。
			ELSE
				IF COND("避孕套携帯") && ITEM:避孕套 == 0 && FLAG:避孕套取り出し == 0 && PLACE("鞄持ち歩き中")
					PRINTFORMW ……好像不能允许在可能发生受精的日子里生插入。
					IF TALENT:傲慢 + TALENT:高慢 + TALENT:粗野
						PRINTFORMW 批评着%CALLNAME:MASTER%没有做好准备的%CALLNAME:TARGET%拿出自己的包、递出了自己的避孕套。
					ELSEIF TALENT:温柔 + TALENT:開朗 + TALENT:高贵 + TALENT:献身
						PRINTFORMW 看着没做好准备的%CALLNAME:MASTER%的%CALLNAME:TARGET%%TEXTR("温柔地笑了笑/表现出无可奈何的态度/温柔地提醒了一下")%、从自己的包中掏出避孕套递了出来。
					ELSE
						PRINTFORMW %CALLNAME:TARGET%%TEXTR(@"委婉地责备了没做好准备的%CALLNAME:MASTER%/看着没做好准备的%CALLNAME:MASTER%轻轻地叹了口气")%、从自己的包中掏出避孕套递了出来。
					ENDIF

					ITEM:避孕套 += 1 + RAND:2 + RAND:2
					CALL PRINT_STRW, @"黄色_%CALLNAME:PLAYER%得到了{ITEM:避孕套}个避孕套。"
					FLAG:避孕套取り出し = 1
				ELSEIF COND("危険日") && CHOSECOMS("Ｖ挿入")
					PRINTFORMW ……很遗憾、今天真的是很危险的一天、所以就到这里了。
				ELSE
					PRINTFORMW ……好像不能允许在可能发生受精的日子里生插入。
				ENDIF
				TFLAG:指令中止 = 1
			ENDIF
		ENDIF
	ENDIF
;@TRAIN_GENRE(ARGS, ARG)に基づくジャンル分け
CASE "挿入指令禁止", "Ｖ挿入指令禁止", "Ａ挿入指令禁止", "尿道挿入指令禁止", "Ｖ調教指令禁止", "Ａ調教指令禁止", "Ｐ調教指令禁止", "尿道調教指令禁止", "逆挿入指令禁止", "Ｖ逆挿入指令禁止", "Ａ逆挿入指令禁止", "道具指令禁止", "ハード調教指令禁止",
	SIF ARG <= 0 && TARGET
		ARG = TARGET

	LOCALS = %EXTSTR(ARGS, "", "指令禁止")%
	FOR LCOUNT, 0, 300
		SIF TRAIN_GENRE(LOCALS, LCOUNT)
			DITEMTYPE:ARG:LCOUNT = 1
	NEXT
CASE "挿入指令解禁", "Ｖ挿入指令解禁", "Ａ挿入指令解禁", "尿道挿入指令解禁", "Ｖ調教指令解禁", "Ａ調教指令解禁", "Ｐ調教指令解禁", "尿道調教指令解禁", "逆挿入指令解禁", "Ｖ逆挿入指令解禁", "Ａ逆挿入指令解禁", "道具指令解禁", "ハード調教指令解禁",
	SIF ARG <= 0 && TARGET
		ARG = TARGET

	LOCALS = %EXTSTR(ARGS, "", "指令解禁")%
	FOR LCOUNT, 0, 300
		SIF TRAIN_GENRE(LOCALS, LCOUNT)
			DITEMTYPE:ARG:LCOUNT = 0
	NEXT

CASE "次の時間帯のＴＰＯ"
	SELECTCASE TIME
	CASE 0
		TIME = 1
	CASE 1
		TIME = 2
	CASEELSE
		;現在は朝の時間帯はほぼ無い
		;TIME = 0
		TIME = 1
		DAY += 1
	ENDSELECT

	SELECTCASE TEXTS("曜日")
	CASE "日"
		SAVESTR:現在位置 = 居間
	CASEELSE
		IF COND("昼")
			SAVESTR:現在位置 = 部室
		ELSE
			SAVESTR:現在位置 = 居間
		ENDIF
	ENDSELECT

CASE "遭遇地点"
	SIF SAVESTR:現在位置 != ""
		RETURN 0
	SIF ARG <= 0 && TARGET
		ARG = TARGET

	;これは全角色共通の行き先
	MEMOS = 直帰/神社
	;泳装イベント？
	SELECTCASE TEXTS("季節詳細")
	CASE "春", "初夏", "夏"
		SIF COND("今年の泳装選択済", ARG) == 0
			MEMOS += "/泳装店"
	ENDSELECT

	SAVESTR:現在位置 = %TEXTR(MEMOS, CSTR:MASTER:出現場所, CSTR:ARG:出現場所)%

	;阵雨判定
	IF FLAG:阵雨判定 == 0 && RAND:7 == 0
		SAVESTR:現在位置 = 阵雨
		FLAG:阵雨判定 = 1 + RAND:7 + RAND:7
	ENDIF

	VARSET LOCALS

	;現在場所で何するかを決定。ただし、現在位置に行動が入っている場合には逆に現在位置を逆引きする
	SELECTCASE SAVESTR:現在位置
	CASE "阵雨"
		LOCALS = 相合傘
	CASE "相合傘"
		LOCALS = %SAVESTR:現在位置%
		SAVESTR:現在位置 = 阵雨
	CASE "神社"
		LOCALS = 参拜
	CASE "便利店"
		LOCALS = %TEXTR("買食物/站着读书/繞道")%
	CASE "甜甜圈店", "漢堡店", "洋点心店", "肉店", "日式点心店", "菠萝包店"
		LOCALS = 買食物
	CASE "買食物"
		LOCALS = %SAVESTR:現在位置%
		SAVESTR:現在位置 = %TEXTR("便利店/甜甜圈屋/漢堡店/洋点心店/肉店/日式点心店/菠萝包屋")%
	CASE "超市", "茶叶批发店"
		LOCALS = 采购
	CASE "採購"
		LOCALS = %SAVESTR:現在位置%
		SAVESTR:現在位置 = 超市
	CASE "书店"
		LOCALS = %TEXTR("站着读/检查新刊/物色游戏")%
	CASE "物色游戏"
		LOCALS = %SAVESTR:現在位置%
		SAVESTR:現在位置 = %TEXTR("书店/游戏店/二手商店")%
	CASE "レンタルショップ"
		LOCALS = %TEXTR("站着读书/检查新刊/物色游戏/物色新作/準新作を物色")%
	CASE "内衣店", "内衣屋"
		LOCALS = 選内衣
		SIF TALENT:ARG:恋慕 && RAND:3 == 0
			LOCALS = 打情骂俏
	CASE "情人旅館"
		LOCALS = 情人旅館前で遭遇
		SAVESTR:归途のゲスト = %TEXTR("陌生男人/油腻的中年男人/似乎见过的男学生")%
	CASE "游戏中心"
		LOCALS = %TEXTR("クレーン游戏/大頭贴/対戦游戏/玩音游/街机游戏/繞道")%
		SIF TALENT:ARG:恋慕 && RAND:3 == 0
			LOCALS = 打情骂俏
	CASE "泳装屋"
		;泳装屋を冷やかすだけ
		LOCALS = 選泳装
	CASE "直帰"
		LOCALS = 直帰
	CASEELSE
		LOCALS = 繞道
	ENDSELECT

	SAVESTR:归途の行動 = %LOCALS%

	SIF COND("颜绘表示中")
		CALL PRINT_MAIDFACE, TARGET

CASE "素質的固定与除外の初期化"
	CALL DEL_CEVENT_GROUP, "固定", MASTER
	CALL DEL_CEVENT_GROUP, "除外", MASTER
CASE "年月日"
	FLAG:日 = (DAY - 1)%NUM("１年の長さ") + 1
	FLAG:年 = (DAY + NUM("１年の長さ") - 1)/NUM("１年の長さ")
	FLAG:季節 = (FLAG:日 - 1)/(NUM("１年の長さ")/4)
;叛逆ではなくなるイベント
CASE "叛逆消去"
	SIF TALENT:ARG:叛逆 == 0
		RETURN 0

	IF CFLAG:ARG:好感度 >= 200 || ABL:ARG:信頼 >= 2
		IF CFLAG:ARG:好感度 >= 200
			PRINTFORM 多亏了温柔地接触、%CALLNAME:ARG%
			PRINTFORMW \@ EXP:ARG:Ｈ回数 > 1 ? 似乎和%CALLNAME:MASTER%融洽了…… # 好象放松了肩膀的力量…… \@
		ENDIF
		CALL PRINT_STRW, @"イエロー_%CALLNAME:ARG%不再是【叛逆】了"
		TALENT:ARG:叛逆 = 0
		IF JUEL:ARG:反感 > 0
			CALL PRINT_STRW, @"イエロー_%CALLNAME:ARG%反感的珠子减半了"
			JUEL:ARG:反感 /= 2
		ENDIF
	ENDIF

CASE "初期变量記録"
	LOCALS = /
	;まずはBASEの身体特徴の記録
	FOR LCOUNT, 20, 40
		SELECTCASE BASENAME:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			SIF BASE:ARG:LCOUNT
				LOCALS += @"%BASENAME:LCOUNT%_{BASE:ARG:LCOUNT}\/"
		ENDSELECT
	NEXT
	;EXPの記録
	FOR LCOUNT, 0, 100
		SELECTCASE EXPNAME:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			IF EXP:ARG:Ｈ回数 || EXP:ARG:経験値
				SIF CSVEXP(NO:ARG, LCOUNT)
					LOCALS += @"%EXPNAME:LCOUNT%_{CSVEXP(NO:ARG, LCOUNT)}\/"
			ELSEIF EXP:ARG:LCOUNT
				LOCALS += @"%EXPNAME:LCOUNT%_{EXP:ARG:LCOUNT}\/"
			ENDIF
		ENDSELECT
	NEXT
	;ABLの記録
	FOR LCOUNT, 0, 100
		SELECTCASE ABLNAME:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			IF EXP:ARG:Ｈ回数 || EXP:ARG:経験値
				SIF CSVABL(NO:ARG, LCOUNT)
					LOCALS += @"%ABLNAME:LCOUNT%_{CSVABL(NO:ARG, LCOUNT)}\/"
			ELSEIF ABL:ARG:LCOUNT
				LOCALS += @"%ABLNAME:LCOUNT%_{ABL:ARG:LCOUNT}\/"
			ENDIF
		ENDSELECT
	NEXT
	;素質の記録
	FOR LCOUNT, 0, VARSIZE("TALENT")
		SELECTCASE TALENTNAME:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			IF EXP:ARG:Ｈ回数 || EXP:ARG:経験値
				SIF CSVTALENT(NO:ARG, LCOUNT)
					LOCALS += @"%TALENTNAME:LCOUNT%_{CSVTALENT(NO:ARG, LCOUNT)}\/"
			ELSEIF TALENT:ARG:LCOUNT
				LOCALS += @"%TALENTNAME:LCOUNT%_{TALENT:ARG:LCOUNT}\/"
			ENDIF
		ENDSELECT
	NEXT
	;最後に刻印の記録
	FOR LCOUNT, 0, VARSIZE("MARK")
		SELECTCASE MARKNAME:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			IF EXP:ARG:Ｈ回数 || EXP:ARG:経験値
				SIF CSVMARK(NO:ARG, LCOUNT)
					LOCALS += @"%MARKNAME:LCOUNT%_{CSVMARK(NO:ARG, LCOUNT)}\/"
			ELSEIF MARK:ARG:LCOUNT
				LOCALS += @"%MARKNAME:LCOUNT%_{MARK:ARG:LCOUNT}\/"
			ENDIF
		ENDSELECT
	NEXT
	CSTR:ARG:初期变量 = %LOCALS%

;これは歴代你の記録。初期变量とは記録項目や記録方法が違うことに注意
CASE "最強パラ記録"
	LOCALS = /
	;EXPの記録
	FOR LCOUNT, 0, 100
		SELECTCASE EXPNAME:LCOUNT
		;これは通算の物を記録するので最強パラに合算
		CASE "孕ませ経験"
			LOCALS += @"%EXPNAME:LCOUNT%_{EXP:MASTER:LCOUNT + COND(@"最強%EXPNAME:LCOUNT%")}\/"
		ENDSELECT
	NEXT
	;素質の記録
	FOR LCOUNT, 0, VARSIZE("TALENT")
		SELECTCASE TALENTNAME:LCOUNT
		;これは現在と最強パラ比較で大きい方
		CASE "射精量強化", "豊穣", "性豪", "禁断的知識", "大力士", "謎之魅力", "甜言蜜语", "復活", "小种马", "業物"
			LOCALS += @"%TALENTNAME:LCOUNT%_{MAX(COND(@"最強%TALENTNAME:LCOUNT%"), TALENT:MASTER:LCOUNT)}\/"
		ENDSELECT
	NEXT
	SAVESTR:最強パラ = %LOCALS%

CASE "PALAMの記録"
	FOR LCOUNT, 1, CHARANUM
		FOR LCOUNT2, 0, 100
			;CFLAG:600～699はPALAMの記録に使う
			CFLAG:LCOUNT:(600 + LCOUNT2) = PALAM:LCOUNT:LCOUNT2
		NEXT
	NEXT

;ARGの優先順位を１にし、ARGよりも優先順位が高かった人の順位を１づつ下げる
CASE "優先順位"
	;優先順位が定義されていない角色ならば値を最高に設定する(全角色の順位を下げるため)
	SIF CFLAG:ARG:優先順位 == 0
		CFLAG:ARG:優先順位 = CHARANUM - 2

	FOR LCOUNT, 2, CHARANUM
		SIF CFLAG:LCOUNT:優先順位 < CFLAG:ARG:優先順位
			CFLAG:LCOUNT:優先順位 += 1
	NEXT
	CFLAG:ARG:優先順位 = 1
	CALL SET_PARTNER, ARG
	;你のいる場所に居るので、現在位置もそれに揃える
	CALL MOVE_PLACE, SAVESTR:現在位置, ARG
CASE "対象指定"
	TARGET = ARG
	CALL SETFLAG, "優先順位", TARGET

;ARGを可能ならば指导者にします。COND("助手可能")を使って確認してください
;また、ARG == 0ならば指导者が居ない状態にします
;"現在partnerではない特定角色"が指导者になれるかはFIND_CONDを使って確認するのがいいでしょう
;例）FIND_COND("助手可能", "濡烏の君") != 0 ならば濡烏の君は指导者になれる事が分かります
;例２）FIND_COND("助手可能", "巨乳")  != 0 ならば指导者になれる巨乳の角色が最低一人居ることが分かります
CASE "助手指定"
	SIF ARG && COND("助手可能", ARG) == 0
		RETURN 0
	ASSI = ARG
	ASSI:1 = ARG

CASE "消耗品補充"
	FOR LCOUNT, 0, 10
		ITEM:(LCOUNT + 50) = ITEM:(LCOUNT + 80)
	NEXT
CASE "消耗品所持数"
	FOR LCOUNT, 0, 10
		ITEM:(LCOUNT + 80) = ITEM:(LCOUNT + 50)
	NEXT
CASE "戴上套套"
	SIF TEQUIP:ARG:避孕套
		RETURN 0
	TEQUIP:ARG:避孕套 = 1
	ITEM:避孕套 -= 1

CASE "取消避孕套"
	SIF TEQUIP:ARG:避孕套 == 0
		RETURN 0

	TCVAR:ARG:取消避孕套 = 1
	TEQUIP:ARG:避孕套 = 0
	ITEM:避孕套 += 1

CASE "避孕套取り外し"
	;TEQUIP:ARG:避孕套 の値が挿入していた相手の番号で、ARG:1に代入されている
	TEQUIP:ARG:避孕套 = 0
	;中に精液が入ってる避孕套は取っておく
	IF CFLAG:(ARG:1):套套内精液
		CSTR:(ARG:1):避孕套履歴 += @"%TOSTR(CFLAG:(ARG:1):套套内精液)%\/"
		ITEM:套套内精液 += CFLAG:(ARG:1):套套内精液
		ITEM:用过的避孕套 += 1
		ITEM:未飲的避孕套 += 1
		CFLAG:(ARG:1):套套内精液 = 0
	ENDIF
CASE "Ｖ生挿入許可"
	SIF ARG <= 0 && TARGET > 0
		ARG = TARGET
	IF TCVAR:ARG:再次生插入中
		TCVAR:ARG:Ｖ避孕套挿入許可 = 1
	ELSE
		TCVAR:ARG:Ｖ生挿入許可 = 1
	ENDIF
CASE "Ｖ避孕套挿入許可", "避孕套切れ交渉", "Ａ生挿入許可", "Ａ避孕套挿入許可"
	SIF ARG <= 0 && TARGET > 0
		ARG = TARGET
	TCVAR:ARG:ARGS = 1
CASE "初始化避孕套交渉"
	CVARSET TCVAR, GETNUM(TCVAR, "Ｖ生挿入許可")
	CVARSET TCVAR, GETNUM(TCVAR, "Ｖ避孕套挿入許可")
	CVARSET TCVAR, GETNUM(TCVAR, "Ａ生挿入許可")
	CVARSET TCVAR, GETNUM(TCVAR, "Ａ避孕套挿入許可")
	CVARSET TCVAR, GETNUM(TCVAR, "避孕套切れ交渉")

;重要度が高いものなどは個別に記述する
CASE "合意"
	IF ARG == MASTER
		CSTR:ARG:合意 =
		RETURN 0
	ENDIF

	VARSET MEMOS
	IF COND("合意：接吻", ARG) == 0
		IF TALENT:ARG:恋慕
			MEMOS += "/接吻/"
		ELSEIF TALENT:ARG:贞操重视 == 0 && (COND("炮友", ARG) || ABL:ARG:信頼 >= 5 || TALENT:ARG:Ｍ性向 || TALENT:ARG:好色)
			MEMOS += "/接吻/"
		ENDIF
	ENDIF
	SIF (TALENT:ARG:炮友 || ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 2) && COND("合意：掀起裙子", ARG) == 0
		MEMOS += "/掀起裙子/"

	SIF ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 3 && COND("合意：摆POSE", ARG) == 0
		MEMOS += "/摆POSE/"

	IF COND("合意：检查内褲", ARG) == 0
		SIF COND("炮友", ARG) || COND("性処理契約", ARG) || ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 3 || (TALENT:ARG:炮友 && TALENT:ARG:献身) || (COND("Ｖ熟達", ARG) && TALENT:ARG:不在乎貞操)
			MEMOS += "/检查内褲/"
	ENDIF

	IF COND("合意：内衣写真", ARG) == 0
		SIF COND("炮友", ARG) || ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 4 || (TALENT:ARG:炮友 && TALENT:ARG:献身)
			MEMOS += "/内衣写真/"
	ENDIF

	IF COND("合意：检查阴部", ARG) == 0
		SIF ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 5 || (COND("Ｖ熟達", ARG) && TALENT:ARG:不在乎貞操)
			MEMOS += "/检查阴部/"
	ENDIF

	SIF ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 6 && COND("合意：Ｈ的写真", ARG) == 0
		MEMOS += "/Ｈ的写真/"

	SIF TALENT:MASTER:禁断的知識 >= 3 && ABL:ARG:露出癖 + MARK:ARG:屈服刻印 >= 8 && COND("合意：ＡＶ撮影", ARG) == 0
		MEMOS += "/ＡＶ撮影/"

	IF COND("危険日存在", ARG) && COND("合意：危険日生性交", ARG) == 0
		IF TALENT:ARG:相思相愛
			MEMOS += "/危険日生性交/"
		ELSEIF TALENT:ARG:恋慕 && TALENT:ARG:淫乱 && CONFIG("危険日生性交の合意")
			MEMOS += "/危険日生性交/"
		ENDIF
	;ELSEIF TALENT:ARG:男性 == 0 && (COND("炮友", ARG) || ABL:ARG:精液中毒 >= 3 || TALENT:ARG:淫乱 || TALENT:ARG:恋慕) && COND("合意：安全日生性交", ARG) == 0 && COND("合意：危険日生性交", ARG) == 0
	;	MEMOS += "/安全日生性交/"
	ENDIF

	SIF (TALENT:ARG:不知羞恥 || TALENT:ARG:好色 || TALENT:ARG:倒錯的 || TALENT:ARG:感情缺乏 || TALENT:ARG:淫乱 || MARK:ARG:屈服刻印 >= 3) && ABL:ARG:露出癖 >= 5 && COND("合意：露出PLAY", ARG) == 0
		MEMOS += "/露出PLAY/"

	SIF STRCOUNT(CSTR:ARG:特別経験, "飲尿PLAY完遂") && (TALENT:ARG:汚臭無視 || TALENT:ARG:倒錯的 || TALENT:ARG:感情缺乏 || TALENT:ARG:淫乱 || MARK:ARG:屈服刻印 >= 3) && COND("合意：飲尿PLAY", ARG) == 0
		MEMOS += "/飲尿PLAY/"

	;SIF ABL:ARG:受虐属性 >= 3 && ABL:ARG:信頼 >= 5 && COND("合意：拘束PLAY", ARG) == 0
	;	MEMOS += "/拘束PLAY/"

	SIF (ABL:ARG:Ａ感覚 >= 3 || (ABL:ARG:Ａ感覚 >= 1 && TALENT:ARG:Ａ性向) ) && ABL:ARG:Ａ拡張 >= 1 && EXP:ARG:Ａ経験 >= 20 && COND("合意：肛門性交", ARG) == 0
		MEMOS += "/肛門性交/"

	SIF COND("叫出来Ｈの合意可能", ARG) && COND("合意：叫出来Ｈ", ARG) == 0
		MEMOS += "/叫出来Ｈ/"

	;同居については通常は CASE "合意：同居" で設定する
	SIF COND("同居可能", ARG) && COND("合意：同居", ARG) == 0
		MEMOS += "/同居/"

	;角色のCSVに書かれている合意を移す（こうしないと～の合意を得たと表示されない）
	IF COND("角色メイク中")
		MEMOS = \/%CSTR:ARG:合意%\/%MEMOS%
		CSTR:ARG:合意 =
	ENDIF

	;CSTR:合意の整理
	CSTR:ARG:合意 = %CSTR:ARG:合意%%MEMOS%
	VARSET LOCALS
	SPLIT CSTR:ARG:合意, "/", LOCALS

	CSTR:ARG:合意 = \/
	FOR LCOUNT, 0, 50
		SELECTCASE LOCALS:LCOUNT
		CASE ""
			CONTINUE
		CASEELSE
			;既にあるなら飛ばす
			SIF STRCOUNT(CSTR:ARG:合意, @"\/%LOCALS:LCOUNT%\/")
				CONTINUE
			;禁止されていても飛ばす
			SIF CEVENT(@"合意禁止：%LOCALS:LCOUNT%", ARG)
				CONTINUE

			CSTR:ARG:合意 = %CSTR:ARG:合意%%LOCALS:LCOUNT%\/
		ENDSELECT
	NEXT

	;VERUP格子中はテ接吻トは不顯示
	IF MEMOS != "" && FLAG:VERUP格子
		VARSET LOCALS
		SPLIT MEMOS, "/", LOCALS

		MEMOS =
		FOR LCOUNT, 0, 50
			SELECTCASE LOCALS:LCOUNT
			CASE ""
				CONTINUE
			CASEELSE
				;既にあるなら飛ばす
				SIF STRCOUNT(MEMOS, @"\[%LOCALS:LCOUNT%\]")
					CONTINUE
				;禁止されていても飛ばす
				SIF CEVENT(@"合意禁止：%LOCALS:LCOUNT%", ARG)
					CONTINUE

				MEMOS = %MEMOS%\[%LOCALS:LCOUNT%\]
			ENDSELECT
		NEXT
		SIF MEMOS != ""
			CALL PRINT_STRW, @"%CALLNAME:MASTER%从%CALLNAME:ARG%獲得了_イエロー_%MEMOS%_的合意。"
	ENDIF

CASE "同居解消不可能"
	CALL SET_CEVENT, "同居解消不可能", ARG
CASE "同居解消不可能の自動設定"
	SIF CFLAG:ARG:初期同居
		CALL SET_CEVENT, "同居解消不可能", ARG
CASE "同居解消"
	CFLAG:ARG:同居 = 0
CASE "同居：一直"
	CFLAG:ARG:同居 = 0
	SETBIT CFLAG:ARG:同居, 11
	SIF COND("同居可能", ARG) && COND("合意：同居", ARG) == 0
		CALL SET_GOUI, "同居", ARG
CASE "同居：一周間"
	CFLAG:ARG:同居 = 7
	SETBIT CFLAG:ARG:同居, 12
CASE "同居：日数減らし"
	CFLAG:ARG:同居 -= 1
	IF COND("残り同居日数", ARG) == 0
		CLEARBIT CFLAG:ARG:同居, 12
		SETCOLOR DEF_COLOR("イエロー")
		PRINTFORMW 约定的一周已经过去了、和%CALLNAME:ARG%的同居関系解除了。
		RESETCOLOR
	ENDIF
CASE "同居：仅周末"
	CFLAG:ARG:同居 = 0
	SETBIT CFLAG:ARG:同居, 13

CASE "合意：同居"
	SIF COND(ARGS, ARG) || COND("同居可能", ARG) == 0 || CEVENT("合意禁止：同居", ARG)
		RETURN 0
	CALL BLANKLINE
	CALL PRINT_STRW, @"%CALLNAME:MASTER%从%CALLNAME:ARG%那里獲得了_イエロー_[同居]_的合意。"
	CALL PRINT_STRW, "イエロー_※同居了的话晚上也会住在一起※"
	CALL PRINT_STRW, "在主画面[300]的拜托or交易里提案的话就可以解除。"
	CALL SET_GOUI, "同居", ARG

CASE "便当"
	;期間は次の周六日まで
	CFLAG:ARG:便当 = 6 - (DAY - 1)%7
	;短すぎたら延長
	SIF CFLAG:ARG:便当 <= 3
		CFLAG:ARG:便当 += 6
	;做便当くれる相手を記憶
	CFLAG:MASTER:便当 = BASE:ARG:識別番号
CASE "合意：便当"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：便当", ARG)
		RETURN 0
	CALL BLANKLINE
	CALL PRINT_STR, @"%CALLNAME:MASTER%从%CALLNAME:ARG%那里獲得了_イエロー_[便当]_的合意。_W"
	CALL PRINT_STR, "イエロー_※会在午休的時候一起吃（双方回復10精力、好感度+20）※_W"
	CALL PRINT_STR, "イエロー_还想让对方做的時候就在主画面[300]的拜托or交易里提案吧。_W"
	PRINTFORM 顺便一提做便当的人、主画面里名字的旁边
	PRINTFORM %UNI("便当")%
	PRINTFORMW  会有这种显示
	CALL SET_GOUI, "便当", ARG

CASE "合意：胖次交易"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：胖次交易", ARG)
		RETURN 0
	CALL BLANKLINE
	CALL PRINT_STRW, @"%CALLNAME:MASTER%獲得了_イエロー_[胖次交易]_的合意。"
	CALL SET_GOUI, "胖次交易", ARG

CASE "胖次没収"
	CALL SETFLAG_DAILY, "胖次詳細確認", ARG
	SIF EQUIP:ARG:胖次 == 0
		RETURN 0
	CFLAG:ARG:胖次奪われ数 += 1
	CFLAG:ARG:胖次没収 = 1
	STAIN:ARG:没収済胖次 = STAIN:ARG:胖次
	CSTR:ARG:没収済胖次 = %CSTR:ARG:胖次%
	CALL SET_PANTIES, "", ARG
CASE "胖次返却"
	CFLAG:ARG:胖次没収 = 0
	STAIN:ARG:胖次 = STAIN:ARG:没収済胖次
	CSTR:ARG:胖次 = %CSTR:ARG:没収済胖次%
	EQUIP:ARG:胖次 = STRLENS(CSTR:ARG:胖次)
	CSTR:ARG:没収済胖次 =

CASE "合意：全裸化"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：全裸化", ARG)
		RETURN 0
	CALL BLANKLINE
	CALL PRINT_STRW, @"%CALLNAME:MASTER%獲得了_イエロー_[全裸化]_的合意。"
	CALL SET_GOUI, "全裸化", ARG

CASE "内衣を一時的に脱掉"
	;とりあえずは足首だけだ
	CSTR:ARG:脱掉的胖次 = %CSTR:ARG:胖次%
	CALL SET_PANTIES, "", ARG
CASE "一時的に脱いでいた内衣を身に着ける"
	SIF CSTR:ARG:脱掉的胖次 == ""
		RETURN 0
	CSTR:ARG:胖次 = %CSTR:ARG:脱掉的胖次%
	CSTR:ARG:脱掉的胖次 =
	EQUIP:ARG:胖次 = STRLENS(CSTR:ARG:胖次)
CASE "全裸化"
	;Cosplayは終了
	CFLAG:ARG:Cosplay中 = 0
	;既に脱いだ服がある場合には記録を上書きしない
	SIF CSTR:ARG:脱掉的衣服一览 == ""
		CALL MEMO_DRESS, "脱掉的衣服一览", ARG
	CALL SETFLAG, "扒成裸体", ARG

CASE "薄着化：胖次露出姿"
	;既に脱いだ服がある場合には記録を上書きしない
	SIF CSTR:ARG:脱掉的衣服一览 == ""
		CALL MEMO_DRESS, "脱掉的衣服一览", ARG
	CALL SETFLAG, "胖次が見える格好になる", ARG
	CFLAG:ARG:薄着变成了 = 1

CASE "薄着化：内衣姿"
	;既に脱いだ服がある場合には記録を上書きしない
	SIF CSTR:ARG:脱掉的衣服一览 == ""
		CALL MEMO_DRESS, "脱掉的衣服一览", ARG
	CALL SETFLAG, "变成内衣姿态", ARG
	CFLAG:ARG:薄着变成了 = 1

CASE "薄着化：外衣脱ぎ"
	;既に脱いだ服がある場合には記録を上書きしない
	SIF CSTR:ARG:脱掉的衣服一览 == ""
		CALL MEMO_DRESS, "脱掉的衣服一览", ARG
	CALL SET_SHIRT, "", ARG
	CFLAG:ARG:薄着变成了 = 1

CASE "薄着化：性処理"
	;既に脱いだ服がある場合には記録を上書きしない
	SIF CSTR:ARG:脱掉的衣服一览 == ""
		CALL MEMO_DRESS, "脱掉的衣服一览", ARG
	TFLAG:着替えた = 0
	SIF CHECK_PANTIES("開洞", ARG)
		CALL SET_PANTIES, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_OUTER, "", ARG
	CALL RESET_OTHER, "外套", ARG
	SIF TFLAG:着替えた
		CFLAG:ARG:性処理の格好变成了 = 1

CASE "合意：性処理"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：性処理", ARG)
		RETURN 0
	CALL BLANKLINE
	CALL PRINT_STR, @"%CALLNAME:MASTER%从%CALLNAME:ARG%那里獲得了_イエロー_[性処理]_的合意。_W"
	CALL PRINT_STR, @"イエロー_※在午休前%CALLNAME:MASTER%的精力在30＆魂在1.01以上的時候、%CALLNAME:ARG%就会来执行※_W"
	CALL SET_GOUI, "性処理", ARG

CASE "合意：改变髪型"
	SIF COND(ARGS, ARG) || CEVENT("合意禁止：改变髪型", ARG)
		RETURN 0
	CALL PRINT_STRW, @"%CALLNAME:MASTER%从%CALLNAME:ARG%獲得了_イエロー_[改变髪型]_的合意。"
	CALL BLANKLINE
	CALL SET_GOUI, "改变髪型", ARG

CASE "性処理でのPLAY内容：計算のみ"
	FOR LCOUNT, 0, NUM("性処理の採用指令数")
		LOCALS = %NAMES("性処理の採用指令", LCOUNT)%
		SIF CANSS(LOCALS, ARG) == 0
			CONTINUE
		;既に設定済みならスルー
		SIF STRCOUNT(CSTR:ARG:性処理, @"%LOCALS%\/")
			CONTINUE

		CSTR:ARG:性処理 += @"%LOCALS%\/"
	NEXT

CASE "性処理でのPLAY内容"
	CALL BLANKLINE
	PRINTFORML 現在%CALLNAME:ARG%可以进行的PLAY如下所示。根据経験会陆续解禁其他的行為
	PRINTFORML 頭部的标记按照×→〇→◎→☆的顺序、頻度依次升高、×的话只要还有其他的行为能做的话就永远不会执行

	;まず選択肢数
	NUM_SELECT = NUM("性処理の採用指令数")

	FOR LCOUNT, 0, NUM_SELECT
		LOCALS = %NAMES("性処理の採用指令", LCOUNT)%
		SIF CANSS(LOCALS, ARG) == 0
			CONTINUE

		PRINTFORM  [{LCOUNT, 2}]
		;禁止指令
		IF STRCOUNT(CSTR:ARG:性処理, @"!%LOCALS%\/")
			PRINT ×
		ELSE
			SELECTCASE STRCOUNT(CSTR:ARG:性処理, LOCALS)
			CASE IS >= 5
				PRINT ☆
			CASE IS >= 3
				PRINT ◎
			CASE IS >= 1
				PRINT 〇
			CASE 0
				PRINT 〇
				CSTR:ARG:性処理 += @"%LOCALS%\/"
			ENDSELECT
		ENDIF
		PRINTFORML %NAMES("性処理的类型", LCOUNT)%
		NUM_SELECT += 1
	NEXT

	;PRINTFORML CSTR:ARG:性処理 = %CSTR:ARG:性処理%

	PRINTFORML [100] 这様就好
	CALL INPUT_SELECT, NUM_SELECT, 100

	CHOICE = RESULT
	SELECTCASE CHOICE
	CASE 100
		SIF COND("性処理中", ARG) == 0
			CALL PRINT_STRW, "想要変更内容的時候、在主界面选择_黄色_性処理相談_就可以了"
		RETURN 0
	CASEELSE
		CALL CALC, "性処理でのPLAY内容：項目の頻度変更", ARG, CHOICE
	ENDSELECT
	CLEARLINE LINECOUNT - MEMO_LINECOUNT
	RESTART

CASE "性処理履歴"
	IF STRCOUNT(CSTR:ARG:性処理履歴, NAMES("性処理") )
		VARSET LOCALS
		SPLIT CSTR:ARG:性処理履歴, "/", LOCALS
		CSTR:ARG:性処理履歴 =
		FOR LCOUNT, 0, 100
			SIF LOCALS:LCOUNT == ""
				BREAK
			SELECTCASE STRCOUNT(LOCALS:LCOUNT, NAMES("性処理") )
			CASE 0
				CSTR:ARG:性処理履歴 += @"%LOCALS:LCOUNT%\/"
			CASEELSE
				CSTR:ARG:性処理履歴 += @"%EXTSTR(LOCALS:LCOUNT, "", "×")%×%TOSTR(TOINT(EXTSTR(LOCALS:LCOUNT, "×") ) + 1)%\/"
			ENDSELECT
		NEXT
	ELSE
		CSTR:ARG:性処理履歴 += @"%NAMES("性処理")%×1\/"
	ENDIF
	;本日の性処理フラグON
	CFLAG:ARG:性処理済 += 1
	CFLAG:ARG:前回お相手日 = DAY

;どこの絶頂かで記録するものを取捨選択。まだ開発中
CASE "絶頂の記録"
	SIF ARG < 0
		RETURN 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

;ARG:1がARG:2のARG（種別）を受け入れた
;"Ｖ受け入れ阴茎", 3, TARGET, PLAYER　ならTARGETがPLAYERの尺寸3の阴茎を受け入れた場合となる
;関数の書式変更の可能性ある感じだ…
CASE "Ｖ受け入れ阴茎", "Ｖ受け入れ振動棒", "Ｖ受け入れフィスト", "Ｖ受け入れ塞子"
	;ARG:2は减少の値を取り得る
	SIF ARG < 0 || ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF ARG:2 == 0 && PLAYER
		ARG:2 = PLAYER

	;入れた人をMEMOSで記録
	SELECTCASE ARG:2
	CASE -4
		MEMOS = 一般人
	CASE IS < 0
		RETURN 0
	CASEELSE
		IF BASE:(ARG:2):識別番号
			MEMOS = %TOSTR(BASE:(ARG:2):識別番号)%
		ELSE
			MEMOS = 一般人
		ENDIF
	ENDSELECT

	;受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数}
	SELECTCASE ARGS
	CASE "Ｖ受け入れ阴茎"
		MEMOS = 阴茎：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ｖ受け入れ振動棒"
		MEMOS = 振動棒：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ｖ受け入れフィスト"
		MEMOS = フィスト：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ｖ受け入れ塞子"
		MEMOS = 塞子：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	ENDSELECT

	VARSET LOCALS

	;記録を分解する
	SPLIT CSTR:(ARG:1):Ｖ插入履歴, "/", LOCALS

	;MEMOS:9に一旦記録する
	MEMOS:9 =

	;記録は最大80種程度（加算が起きたものは先頭に来る。つまり昔の相手との記録は消える）
	FOR LCOUNT, 0, 80
		SIF LOCALS:LCOUNT == ""
			BREAK

		;今回と同じ相手のものかどうか
		IF MEMOS != "" && MEMOS == SUBSTRING(LOCALS:LCOUNT, 0, STRLENS(MEMOS) )
			;～＊回数 となっているので"回数"部分を抜き出して、１を加算する
			LOCALS:LCOUNT = %MEMOS%%TOSTR(TOINT(EXTSTR(LOCALS:LCOUNT, "＊") ) + 1)%

			;MEMOSは加算して用済みなので初期化
			MEMOS =

			;記録する文字列を再構築
			MEMOS:9 = %LOCALS:LCOUNT%/%MEMOS:9%
		ELSE
			MEMOS:9 = %MEMOS:9%%LOCALS:LCOUNT%/
		ENDIF
		SIF STRLENS(MEMOS:9) > 1950
			BREAK
	NEXT

	;初めての相手ならMEMOSは文字列が入っている
	SIF MEMOS != ""
		MEMOS:9 = %MEMOS%1/%MEMOS:9%

	CSTR:(ARG:1):Ｖ插入履歴 = %MEMOS:9%

	;確認用
	;PRINTFORML CSTR:Ｖ插入履歴 = %CSTR:(ARG:1):Ｖ插入履歴%

CASE "Ａ受け入れ阴茎", "Ａ受け入れ振動棒", "Ａ受け入れフィスト", "Ａ受け入れ塞子"
	;ARG:2は减少の値を取り得る
	SIF ARG < 0 || ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF ARG:2 == 0 && PLAYER
		ARG:2 = PLAYER

	;入れた人をMEMOSで記録
	SELECTCASE ARG:2
	CASE -4
		MEMOS = 一般人
	CASE IS < 0
		RETURN 0
	CASEELSE
		IF BASE:(ARG:2):識別番号
			MEMOS = %TOSTR(BASE:(ARG:2):識別番号)%
		ELSE
			MEMOS = 一般人
		ENDIF
	ENDSELECT

	;受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数}
	SELECTCASE ARGS
	CASE "Ａ受け入れ阴茎"
		MEMOS = 阴茎：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ａ受け入れ振動棒"
		MEMOS = 振動棒：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ａ受け入れフィスト"
		MEMOS = フィスト：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "Ａ受け入れ塞子"
		MEMOS = 塞子：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	ENDSELECT

	VARSET LOCALS

	;記録を分解する
	SPLIT CSTR:(ARG:1):Ａ插入履歴, "/", LOCALS

	;MEMOS:9に一旦記録する
	MEMOS:9 =

	;記録は最大80種程度（加算が起きたものは先頭に来る。つまり昔の相手との記録は消える）
	FOR LCOUNT, 0, 80
		SIF LOCALS:LCOUNT == ""
			BREAK

		;今回と同じ相手のものかどうか
		IF MEMOS != "" && MEMOS == SUBSTRING(LOCALS:LCOUNT, 0, STRLENS(MEMOS) )
			;～＊回数 となっているので"回数"部分を抜き出して、１を加算する
			LOCALS:LCOUNT = %MEMOS%%TOSTR(TOINT(EXTSTR(LOCALS:LCOUNT, "＊") ) + 1)%

			;MEMOSは加算して用済みなので初期化
			MEMOS =

			;記録する文字列を再構築
			MEMOS:9 = %LOCALS:LCOUNT%/%MEMOS:9%
		ELSE
			MEMOS:9 = %MEMOS:9%%LOCALS:LCOUNT%/
		ENDIF
		SIF STRLENS(MEMOS:9) > 1950
			BREAK
	NEXT

	;初めての相手ならMEMOSは文字列が入っている
	SIF MEMOS != ""
		MEMOS:9 = %MEMOS%1/%MEMOS:9%

	CSTR:(ARG:1):Ａ插入履歴 = %MEMOS:9%

	;確認用
	;PRINTFORML CSTR:Ａ插入履歴 = %CSTR:(ARG:1):Ａ插入履歴%

CASE "尿道受け入れ阴茎", "尿道受け入れ振動棒", "尿道受け入れフィスト", "尿道受け入れ塞子"
	;ARG:2は减少の値を取り得る
	SIF ARG < 0 || ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF ARG:2 == 0 && PLAYER
		ARG:2 = PLAYER

	;入れた人をMEMOSで記録
	SELECTCASE ARG:2
	CASE -4
		MEMOS = 一般人
	CASE IS < 0
		RETURN 0
	CASEELSE
		IF BASE:(ARG:2):識別番号
			MEMOS = %TOSTR(BASE:(ARG:2):識別番号)%
		ELSE
			MEMOS = 一般人
		ENDIF
	ENDSELECT

	;受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数}
	SELECTCASE ARGS
	CASE "尿道受け入れ阴茎"
		MEMOS = 阴茎：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "尿道受け入れ振動棒"
		MEMOS = 振動棒：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "尿道受け入れフィスト"
		MEMOS = フィスト：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	CASE "尿道受け入れ塞子"
		MEMOS = 塞子：%TOSTR(ARG)%＠%MEMOS%＃%TOSTR(DAY)%＊
	ENDSELECT

	VARSET LOCALS

	;記録を分解する
	SPLIT CSTR:(ARG:1):尿道插入履歴, "/", LOCALS

	;MEMOS:9に一旦記録する
	MEMOS:9 =

	;記録は最大80種程度（加算が起きたものは先頭に来る。つまり昔の相手との記録は消える）
	FOR LCOUNT, 0, 80
		SIF LOCALS:LCOUNT == ""
			BREAK

		;今回と同じ相手のものかどうか
		IF MEMOS != "" && MEMOS == SUBSTRING(LOCALS:LCOUNT, 0, STRLENS(MEMOS) )
			;～＊回数 となっているので"回数"部分を抜き出して、１を加算する
			LOCALS:LCOUNT = %MEMOS%%TOSTR(TOINT(EXTSTR(LOCALS:LCOUNT, "＊") ) + 1)%

			;MEMOSは加算して用済みなので初期化
			MEMOS =

			;記録する文字列を再構築
			MEMOS:9 = %LOCALS:LCOUNT%/%MEMOS:9%
		ELSE
			MEMOS:9 = %MEMOS:9%%LOCALS:LCOUNT%/
		ENDIF
		SIF STRLENS(MEMOS:9) > 1950
			BREAK
	NEXT

	;初めての相手ならMEMOSは文字列が入っている
	SIF MEMOS != ""
		MEMOS:9 = %MEMOS%1/%MEMOS:9%

	CSTR:(ARG:1):尿道插入履歴 = %MEMOS:9%

	;確認用
	;PRINTFORML CSTR:尿道插入履歴 = %CSTR:(ARG:1):尿道插入履歴%

;ARG:1がARG:2にARGの量だけ中出し等された
;避孕套がある場合には、套套内の精液量のみ変更して中だし量の記録部分は飛ばす
CASE "膣内精液経験", "肛内精液経験", "精飲経験", "乳内精液経験", "膀胱精液経験", "精液ぶっかけ経験"
	;ARG:2は减少の値を取り得る
	SIF ARG < 0 || ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF ARG:2 == 0 && PLAYER
		ARG:2 = PLAYER

	;有得るよう变成了
	;IF ARG:1 == ARG:2
	;	PRINTFORM 受攻是同一人物！非常抱歉但是请報告一下错误……
	;	FORCEWAIT
	;ENDIF

	;精液の種別
	SELECTCASE ARG:2
	CASE -4
		MEMOS = 一般人
	CASE IS < 0
		RETURN 0
	CASEELSE
		IF BASE:(ARG:2):識別番号
			MEMOS = %TOSTR(BASE:(ARG:2):識別番号)%
		ELSE
			MEMOS = 一般人
		ENDIF
	ENDSELECT

	;精液の量(ml)を計算する
	IF NOWEX:(ARG:2):射精量 == 0
		NOWEX:(ARG:2):射精量 = CALCF("射精量", ARG, ARG:2)
		EX:(ARG:2):射精量 += NOWEX:(ARG:2):射精量
	ENDIF

	;調教中なら主人に注いだ精液量
	;IF COND("調教中", ARG)
		IF ARG:2 == MASTER && (ARG:1 == TARGET || ARG:1 == ASSI)
			EX:(ARG:1):絶対搾精量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):絶対搾精量 += NOWEX:(ARG:2):射精量
		ENDIF
		IF ARG:1 == MASTER && (ARG:2 == TARGET || ARG:2 == ASSI)
			EX:(ARG:2):主人への絶対射精量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:2):主人への絶対射精量 += NOWEX:(ARG:2):射精量
		ENDIF
	;ENDIF

	;避孕套有些ならここまで
	IF TEQUIP:(ARG:2):避孕套
		CFLAG:(ARG:1):套套内精液 += NOWEX:(ARG:2):射精量
		RETURN 1
	ENDIF

	;PRINTFORML MEMOS = %MEMOS%, ARG = {ARG}, NOWEX:射精量 = {NOWEX:(ARG:2):射精量}

	VARSET LOCALS

	SELECTCASE ARGS
	CASE "膣内精液経験"
		;初中出し受け入れフラグON
		SIF ARG:2 == MASTER && CALCF("膣内精液経験", ARG:1, ARG:2) == 0
			SETBIT TCVAR:(ARG:1):イベント２, 3

		EXP:(ARG:1):膣内精液経験 += ARG
		CFLAG:(ARG:1):Ｖ已中出 += NOWEX:(ARG:2):射精量
		SIF TALENT:(ARG:1):妊娠
			BASE:(ARG:1):胎児への栄養 += ARG

		;妊娠用判定
		CALL CHECK_PREGNANT, ARG:1, ARG, MEMOS

		;再次生插入中なら終わりフラグを立てる
		IF TCVAR:(ARG:1):再次生插入中
			TCVAR:(ARG:1):再次生插入終了 = 1
			TFLAG:EJECT = 1
		ENDIF

		;IF COND("調教中")
			CALL ADD_STAIN, ARG:1, "Ｖ", "精液"
			EX:(ARG:1):Ｖ中出し += 1
			NOWEX:(ARG:1):Ｖ中出し += 1
			EX:(ARG:1):Ｖ中出し量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):Ｖ中出し量 += NOWEX:(ARG:2):射精量
			;Ｖ液体追加のソース
			SIF ARG:1 != MASTER
				SOURCE:(ARG:1):Ｖ液体追加 += ARG * 100
		;ENDIF

		;記録を分解する
		SPLIT CSTR:(ARG:1):被Ｖ中出, "/", LOCALS
	CASE "肛内精液経験"
		EXP:(ARG:1):肛内精液経験 += ARG
		CFLAG:(ARG:1):Ａ已中出 += NOWEX:(ARG:2):射精量

		CALL CHECK_PREGNANT, ARG:1, ARG, MEMOS, "肛門"

		;IF COND("調教中")
			CALL ADD_STAIN, ARG:1, "Ａ", "精液"
			EX:(ARG:1):Ａ中出し += 1
			NOWEX:(ARG:1):Ａ中出し += 1
			EX:(ARG:1):Ａ中出し量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):Ａ中出し量 += NOWEX:(ARG:2):射精量
			SIF ARG:1 != MASTER
				SOURCE:(ARG:1):Ａ液体追加 += ARG * 200
		;ENDIF

		;記録を分解する
		SPLIT CSTR:(ARG:1):被Ａ中出, "/", LOCALS
	CASE "精飲経験"
		EXP:(ARG:1):精飲経験 += ARG
		CFLAG:(ARG:1):精飲済 += NOWEX:(ARG:2):射精量

		;IF COND("調教中")
			CALL ADD_STAIN, ARG:1, "Ｍ", "精液"
			EX:(ARG:1):口内射精 += 1
			NOWEX:(ARG:1):口内射精 += 1
			EX:(ARG:1):口内射精量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):口内射精量 += NOWEX:(ARG:2):射精量
		;ENDIF
		;記録を分解する
		SPLIT CSTR:(ARG:1):精飲, "/", LOCALS
	CASE "乳内精液経験"
		EXP:(ARG:1):乳内精液経験 += ARG
		CFLAG:(ARG:1):Ｂ已中出 += NOWEX:(ARG:2):射精量

		SIF COND("豊穣ＯＮ", ARG:2) && TALENT:(ARG:1):男性 == 0 && COND("種族：人形", ARG:1) == 0
			TEQUIP:(ARG:1):豊穣 = MIN(TEQUIP:(ARG:1):豊穣 + 2, 5)

		;IF COND("調教中")
			CALL ADD_STAIN, ARG:1, "Ｂ", "精液"
			EX:(ARG:1):乳内射精 += 1
			NOWEX:(ARG:1):乳内射精 += 1
			EX:(ARG:1):乳内射精量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):乳内射精量 += NOWEX:(ARG:2):射精量
		;ENDIF
		;記録を分解する
		SPLIT CSTR:(ARG:1):被乳内中出, "/", LOCALS
	CASE "膀胱精液経験"
		EXP:(ARG:1):膀胱精液経験 += ARG
		CFLAG:(ARG:1):尿道已中出 += NOWEX:(ARG:2):射精量

		;IF COND("調教中")
			EX:(ARG:1):尿道内射精 += 1
			NOWEX:(ARG:1):尿道内射精 += 1
			EX:(ARG:1):尿道内射精量 += NOWEX:(ARG:2):射精量
			NOWEX:(ARG:1):尿道内射精量 += NOWEX:(ARG:2):射精量
			BASE:(ARG:1):尿意 += ARG * 500
		;ENDIF
		;記録を分解する
		SPLIT CSTR:(ARG:1):被膀胱中出, "/", LOCALS
	;まだ没有
	CASE "精液ぶっかけ経験"
		RETURN 1
	ENDSELECT

	MEMOS = %MEMOS%：

	;MEMOS:9に一旦記録する
	MEMOS:9 =

	;記録は３０人まで（加算が起きたものは先頭に来る。つまり30人越し变成了相手との記録は消える）
	FOR LCOUNT, 0, 30
		SIF LOCALS:LCOUNT == ""
			BREAK
		;今回と同じ相手のものかどうか
		IF MEMOS != "" && MEMOS == SUBSTRING(LOCALS:LCOUNT, 0, STRLENS(MEMOS) )
			;相手：量 となっているので"量"部分を抜き出して、今回の数値を加算する
			LOCALS:LCOUNT = %MEMOS%%TOSTR(TOINT(EXTSTR(LOCALS:LCOUNT, "：") ) + NOWEX:(ARG:2):射精量)%

			;MEMOSは加算して用済みなので初期化
			MEMOS =

			;記録する文字列を再構築
			MEMOS:9 = %LOCALS:LCOUNT%/%MEMOS:9%
		ELSE
			MEMOS:9 = %MEMOS:9%%LOCALS:LCOUNT%/
		ENDIF
	NEXT

	;初めての相手ならMEMOSは文字列が入っている
	SIF MEMOS != ""
		MEMOS:9 = %MEMOS%%TOSTR(NOWEX:(ARG:2):射精量)%/%MEMOS:9%

	SELECTCASE ARGS
	CASE "膣内精液経験"
		CSTR:(ARG:1):被Ｖ中出 = %MEMOS:9%
	CASE "肛内精液経験"
		CSTR:(ARG:1):被Ａ中出 = %MEMOS:9%
	CASE "精飲経験"
		CSTR:(ARG:1):精飲 = %MEMOS:9%
	CASE "乳内精液経験"
		CSTR:(ARG:1):被乳内中出 = %MEMOS:9%
	CASE "膀胱精液経験"
		CSTR:(ARG:1):被膀胱中出 = %MEMOS:9%
	ENDSELECT

	;確認用
	;PRINTFORML CSTR:被Ｖ中出 = %CSTR:(ARG:1):被Ｖ中出%
	;PRINTFORML CSTR:被Ａ中出 = %CSTR:(ARG:1):被Ａ中出%
	;PRINTFORML CSTR:精飲 = %CSTR:(ARG:1):精飲%
	;PRINTFORML CSTR:被乳内中出 = %CSTR:(ARG:1):被乳内中出%
	;PRINTFORMW CSTR:被膀胱中出 = %CSTR:(ARG:1):被膀胱中出%

CASE "喜欢的体位"
	SIF ARG < 0 || ARG:1 < 0
		RETURN 0

	;CSTR:喜欢的体位を使用する

	VARSET LOCALS
	;それぞれの要素に分解。記録しておける要素数の最大値は90個(CSTRは全角で約1000文字ぐらいまで)
	SPLIT CSTR:喜欢的体位, "/", LOCALS
	;一旦CSTR:喜欢的体位を初期化
	CSTR:喜欢的体位 =

	;感度が上がるとコロコロ変わるだけになりがちなので、変化する最大値は３とする
	ARG:1 = LIMIT(RAND:(ARG:1)/2, 1, 3)

	;記録された要素を、今回増える分だけ先に消去しておく
	FOR LCOUNT, 0, 90 - ARG:1
		CSTR:喜欢的体位 = %CSTR:喜欢的体位%%LOCALS:LCOUNT%/
	NEXT

	SELECTCASE ARG
	CASE 65, 75
		IF TEQUIP:推倒
			FOR LCOUNT, 0, ARG:1
				CSTR:喜欢的体位 = 推倒%TRAINNAME:ARG%/%CSTR:喜欢的体位%
			NEXT
		ELSE
			FOR LCOUNT, 0, ARG:1
				CSTR:喜欢的体位 = %TRAINNAME:ARG%/%CSTR:喜欢的体位%
			NEXT
		ENDIF
	CASE 88
		IF TEQUIP:推倒
			FOR LCOUNT, 0, ARG:1
				CSTR:喜欢的体位 = 推倒尿道騎乗位/%CSTR:喜欢的体位%
			NEXT
		ELSE
			FOR LCOUNT, 0, ARG:1
				CSTR:喜欢的体位 = %TRAINNAME:ARG%/%CSTR:喜欢的体位%
			NEXT
		ENDIF
	CASEELSE
		FOR LCOUNT, 0, ARG:1
			CSTR:喜欢的体位 = %TRAINNAME:ARG%/%CSTR:喜欢的体位%
		NEXT
	ENDSELECT

CASE "識別番号"
	SIF BASE:ARG:識別番号
		RETURN 0
	FOR LCOUNT, 0, 100
		LOCAL = GETTIME()
		;同じ番号が出ないようにウェイトをつける
		SIF FINDCHARA(BASE:識別番号, LOCAL) < 0
			BREAK
		TWAIT 1, 1
	NEXT
	BASE:ARG:識別番号 = LOCAL
CASE "要受精確率の更新"
	FOR LCOUNT, 1, CHARANUM
		CFLAG:LCOUNT:要受精確率 = 1 + RAND:100
	NEXT
CASE "要受精確率の設定"
	SIF CFLAG:ARG:要受精確率 == 0
		CFLAG:ARG:要受精確率 = 1 + RAND:100
CASE "安全危険日判定"
	;主にBASE:バイオリズムで管理する
	;0～5bit	周期日数などで使用
	;10bit		安全日
	;11bit		危険日
	;12bit		排卵中（超危険状態）
	;13bit		排卵誘発剤使用中
	;20bit		発情中

	VARSET LOCAL
	VARSET LOCALS
	;ARGに値が入っている場合にはARG番の角色のみ見る（主に新規加入時）
	FOR LCOUNT, 1, CHARANUM
		SIF ARG > 0 && LCOUNT != ARG
			CONTINUE
		;妊娠できない人に生理周期はない
		IF COND("妊娠可能", LCOUNT) == 0
			BASE:LCOUNT:バイオリズム = 0
			CONTINUE
		ENDIF

		;妊娠などの理由でバイオリズムを一旦重置されていた人の処理
		IF BASE:LCOUNT:バイオリズム == 0
			BASE:LCOUNT:バイオリズム = (ABS(BASE:LCOUNT:誕生日%10 + FLAG:現実時間%10) % 10) + 1
		;他の人はバイオリズムを１進める(たまに周期が移開る)
		ELSEIF TIME == 0
			SELECTCASE GETBITS(BASE:LCOUNT:バイオリズム, 0, 5)
			CASE 1 TO 3
				BASE:LCOUNT:バイオリズム += 1
			CASE 4 TO 9
				SIF RAND:7
					BASE:LCOUNT:バイオリズム += 1
			CASE 10
				SIF RAND:7
					BASE:LCOUNT:バイオリズム -= 9
			ENDSELECT
		ENDIF

		;発情中以外のフラグはここで重置
		BASE:LCOUNT:バイオリズム = CLEARBITS(BASE:LCOUNT:バイオリズム, 10, 19)

		;妊娠できない人はバイオリズムを動かすだけ
		;IF COND("Ｖ妊娠可能", LCOUNT) == 0
		;	BASE:LCOUNT:バイオリズム = CLEARBITS(BASE:LCOUNT:バイオリズム, 10, 60)
		;	CONTINUE
		;ENDIF

		SELECTCASE GETBITS(BASE:LCOUNT:バイオリズム, 0, 5)
		;危険日開始
		CASE 1
			SETBIT BASE:LCOUNT:バイオリズム, 11
			;動物耳の人は発情期かも？
			IF TALENT:LCOUNT:発情体質
				SETBIT BASE:LCOUNT:バイオリズム, 20
				LOCALS = %LOCALS%[{LCOUNT}]%CALLNAME:LCOUNT%和
			ELSEIF TALENT:LCOUNT:動物耳 || COND("種族：獣人", LCOUNT) || COND("種族：竜人", LCOUNT) || COND("種族：妖狐", LCOUNT)
				SELECTCASE ABS(BASE:LCOUNT:誕生日%40 - DAY%40 + 40) % 40
				CASE 20 TO 29
					SETBIT BASE:LCOUNT:バイオリズム, 20
					LOCALS = %LOCALS%[{LCOUNT}]%CALLNAME:LCOUNT%和
				ENDSELECT
			ENDIF
		;危険日中日
		CASE 2
			SETBIT BASE:LCOUNT:バイオリズム, 11
		;排卵日、またの名を超危険日。卵子の寿命は1日なので危険日はこれにて終了
		CASE 3
			SETBIT BASE:LCOUNT:バイオリズム, 11
			SETBIT BASE:LCOUNT:バイオリズム, 12
		;安全日
		CASE 4 TO 7
			SETBIT BASE:LCOUNT:バイオリズム, 10
		ENDSELECT

		;発情中フラグＯＮなのに危険日でないなら発情期終了
		IF COND("発情期", LCOUNT) && GETBIT(BASE:LCOUNT:バイオリズム, 11) == 0
			CLEARBIT BASE:LCOUNT:バイオリズム, 20
			LOCALS:1 = %LOCALS:1%[{LCOUNT}]%CALLNAME:LCOUNT%和
		ENDIF
		;避妊している場合には発情状態とか以外は無視
		SIF COND("避妊中", LCOUNT)
			BASE:LCOUNT:バイオリズム = CLEARBITS(BASE:LCOUNT:バイオリズム, 10, 19)
	NEXT
	;誰かひとりの設定のみをした際には発情期の解説は出さない
	IF COND("昼") && ARG == 0
		IF STRLENS(LOCALS)
			SETCOLOR DEF_COLOR("爱心粉紅")
			PRINTFORMW %SUBSTRING(LOCALS, 0, STRLENS(LOCALS) - 2)%进入了発情期！
			RESETCOLOR
		ENDIF
		SIF STRLENS(LOCALS:1)
			PRINTFORMW %SUBSTRING(LOCALS:1, 0, STRLENS(LOCALS:1) - 2)%的発情期结束了
	ENDIF
CASE "妊娠フラグ消去"
	;すでに着床していると効果がない
	SIF BASE:ARG:胎児
		RETURN 0
	CFLAG:ARG:着床確実 = 0
	BASE:ARG:受精 = 0
	BASE:ARG:受精からの日数 = 0
	BASE:ARG:胎内精液量 += BASE:ARG:胎内精子量
	BASE:ARG:胎内精子量 = 0
	BASE:ARG:精液の優勢 = 0

;ARGがARG:1のおしっこを飲む
CASE "飲尿"
	IF ARG:1 == 0
		SELECTCASE ARG
		CASE TARGET
			ARG:1 = PLAYER
		CASEELSE
			ARG:1 = TARGET
		ENDSELECT
	ENDIF

	IF PENIS(ARG:1)
		STAIN:(ARG:1):Ｐ = SET_STAIN(STAIN:(ARG:1):Ｐ, "尿")
	ELSE
		STAIN:(ARG:1):Ｖ = SET_STAIN(STAIN:(ARG:1):Ｖ, "尿")
	ENDIF
	STAIN:ARG:Ｍ = SET_STAIN(STAIN:ARG:Ｍ, "尿")

	TEQUIP:(ARG:1):利尿剤 = 0
	BASE:(ARG:1):尿意 = 0
	NOWEX:(ARG:1):放尿 += 1
	SIF SELECTCOM != 144
		EX:(ARG:1):放尿 += 1
	SIF TALENT:(ARG:1):男性 == 0
		EXP:(ARG:1):聖水経験 += 1
	EXP:ARG:飲尿経験 += 1

	;飲尿フラグ
	SETBIT TCVAR:ARG:イベント, 25
	;"尿飲み干しフラグ"
	SIF CHECK("口内放尿", ARG)
		SETBIT TCVAR:ARG:イベント２, 2

;お掃除３種はARGがARG:1をお掃除
CASE "清洁口交", "恥垢清洁口交"
	IF ARG:1 == 0
		SELECTCASE ARG
		CASE TARGET
			ARG:1 = PLAYER
		CASEELSE
			ARG:1 = TARGET
		ENDSELECT
	ENDIF

	;清洁口交フラグ
	SETBIT TCVAR:ARG:イベント, 4

	;Ａ清洁口交フラグ
	SIF CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ａ") && CONDS("Ｐ汚れ", ARG:1) == "Ａ"
		SETBIT TCVAR:ARG:イベント, 5

	;尿清洁口交フラグ
	SIF CHECK_STAIN(STAIN:(ARG:1):Ｐ, "尿") && CONDS("Ｐ汚れ", ARG:1) == "尿"
		SETBIT TCVAR:ARG:イベント, 44

	;口交経験は他で得ているだろうがBOUNSで更に１追加
	EXP:ARG:口交経験 += 1
	EXP:ARG:清洁口交経験 += 1
	SIF CHECK_STAIN(STAIN:(ARG:1):Ｐ, "精液")
		EXP:ARG:精液経験 += 1

	;ARGの口⇔ARG:1のＰ的污垢が移動
	CALL EQ_STAIN, ARG, "Ｍ", ARG:1, "Ｐ"

	;PRINTFORML ARGS = %ARGS%, CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢") = {CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢")}
	;その後ARG:1のＰ的污垢重置…Ｐ恥垢があると挙動が複雑
	IF CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢")
		IF ARGS == "恥垢清洁口交"
			EXP:ARG:清洁口交経験 += 1
			SETBIT TCVAR:ARG:イベント, 46
			CALL RESET_STAIN_EX, "Ｐ", ARG:1
		ELSE
			CALL RESET_STAIN_EX, "Ｐ", ARG:1
			STAIN:(ARG:1):Ｐ = SET_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢")
		ENDIF
	ELSE
		CALL RESET_STAIN_EX, "Ｐ", ARG:1
	ENDIF

	;PRINTFORML ARGS = %ARGS%, CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢") = {CHECK_STAIN(STAIN:(ARG:1):Ｐ, "Ｐ恥垢")}

	PALAM:(ARG:1):Ｐ潤 += 500

CASE "清洁舔阴"
	IF ARG:1 == 0
		SELECTCASE ARG
		CASE TARGET
			ARG:1 = PLAYER
		CASEELSE
			ARG:1 = TARGET
		ENDSELECT
	ENDIF

	;清洁舔阴フラグ
	SETBIT TCVAR:ARG:イベント, 7

	;精液清洁舔阴フラグ
	IF PREVEX("Ｖ中出し", ARG:1) && PREVPLAY("挿入", ARG:1) && CHECK_STAIN(STAIN:(ARG:1):Ｖ, "精液")
		SETBIT TCVAR:ARG:イベント, 10
	ELSEIF PREVEX("尿道内射精", ARG:1) && PREVPLAY("尿道挿入", ARG:1)
		SETBIT TCVAR:ARG:イベント, 10
	ENDIF

	;おしっこ清洁舔阴フラグ
	SIF CHECK_STAIN(STAIN:(ARG:1):Ｖ, "尿") && PREVEX("放尿", ARG:1)
		SETBIT TCVAR:ARG:イベント, 45

	;舐陰経験は他で得ているだろうがBOUNSで更に１追加
	EXP:ARG:舐陰経験 += 1
	EXP:ARG:清洁舔阴経験 += 1
	SIF CHECK_STAIN(STAIN:(ARG:1):Ｖ, "精液")
		EXP:ARG:精液経験 += 1

	;ARGの口⇔ARG:1のＶ的污垢が移動
	CALL EQ_STAIN, ARG, "Ｍ", ARG:1, "Ｖ"

	;PRINTFORML CHECK_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢") = {CHECK_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢")}
	;その後ARG:1のＶ的污垢重置…Ｖ恥垢があると挙動が複雑
	IF CHECK_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢")
		IF (ARG == PLAYER && CHECK_COM("恥垢清洁舔阴", 1) ) || (ARG == TARGET && CHECK_COM("恥垢清洁舔阴", 98) )
			EXP:ARG:清洁舔阴経験 += 1
			;恥垢清洁舔阴フラグ
			SETBIT TCVAR:ARG:イベント, 47
			CALL RESET_STAIN_EX, "Ｖ", ARG:1
		ELSE
			CALL RESET_STAIN_EX, "Ｖ", ARG:1
			STAIN:(ARG:1):Ｖ = SET_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢")
		ENDIF
	ELSE
		CALL RESET_STAIN_EX, "Ｖ", ARG:1
	ENDIF

	;PRINTFORML CHECK_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢") = {CHECK_STAIN(STAIN:(ARG:1):Ｖ, "Ｖ恥垢")}

CASE "清洁舔A"
	IF ARG:1 == 0
		SELECTCASE ARG
		CASE TARGET
			ARG:1 = PLAYER
		CASEELSE
			ARG:1 = TARGET
		ENDSELECT
	ENDIF

	;清洁舔Aフラグ
	SETBIT TCVAR:ARG:イベント, 43

	;Ａ舐め経験は他で得ているだろうがBOUNSで更に１追加
	EXP:ARG:Ａ舐め経験 += 1
	EXP:ARG:清洁舔A経験 += 1
	SIF CHECK_STAIN(STAIN:(ARG:1):Ａ, "精液")
		EXP:ARG:精液経験 += 1

	;ARGの口⇔ARG:1のＡ的污垢が移動
	CALL EQ_STAIN, ARG, "Ｍ", ARG:1, "Ａ"
	;その後ARG:1のＡ的污垢重置
	CALL RESET_STAIN_EX, "Ａ", ARG:1

CASE "喝母乳"
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	STAIN:(ARG:1):Ｂ = SET_STAIN(STAIN:(ARG:1):Ｂ, "母乳")
	STAIN:ARG:Ｍ = SET_STAIN(STAIN:ARG:Ｍ, "母乳")
	CALL EQ_STAIN, ARG, "Ｍ", ARG:1, "Ｂ"
	IF CALCF("Ｂ発情", ARG:1)
		BASE:(ARG:1):母乳 = MAX(BASE:(ARG:1):母乳 - 5000, 0)
	ELSE
		BASE:(ARG:1):母乳 = MAX(BASE:(ARG:1):母乳 - 2000, 0)
	ENDIF
	EXP:(ARG:1):授乳経験 += 1
	EXP:ARG:飲乳経験 += 1
	CALL SETFLAG, "喝母乳フラグ", ARG
	;精力も回復
	IF MAXBASE:ARG:精力 > BASE:ARG:精力
		LOCAL = 1 + TALENT:(ARG:1):吸精体質
		SIF CALCF("Ｂ発情", ARG:1)
			LOCAL += 2

		BASE:ARG:精力 = MIN(BASE:ARG:精力 + LOCAL, MAXBASE:ARG:精力)
		PRINTFORML 精力+{LOCAL} (%CALLNAME:ARG%)
	ENDIF
CASE "同衾イベント"
	SETBIT CFLAG:行動, 3
	SETBIT CFLAG:MASTER:行動, 3
CASE "Ｗ推倒"
	;調教者が主人でない場合には禁止とする
	SIF TEQUIP:Ｗ推倒 || TARGET:1 <= 0 || PLAYER != MASTER
		RETURN 0

	TEQUIP:推倒 = 1
	TEQUIP:(TARGET:1):推倒 = 1
	;Ｗ被逆推状態（アクティブな方が1）
	TEQUIP:Ｗ推倒 = 1
	TEQUIP:(TARGET:1):Ｗ推倒 = 2
	;TARGET:1の前回指令に相当
	PREVCOM:1 = -1
	;助手が参加したら撮影は止めちゃう
	SIF TARGET:1 == ASSI
		TEQUIP:攝像機 = 0
CASE "Ｗ推倒解除"
	SIF TARGET:1 <= 0
		RETURN 0
	CVARSET TEQUIP, GETNUM(TEQUIP, "推倒")
	CVARSET TEQUIP, GETNUM(TEQUIP, "Ｗ推倒")
	SIF INSERT("挿入相手", TARGET:1) == PLAYER
		CALL RESET_INSERT, TARGET:1, PLAYER
	SELECTCOM:1 = -1
	PREVCOM:1 = -1
CASE "射精＆絶頂格子"
	LOCAL = PLAYER
	PLAYER = ARG
	;手下留情されてる？(自動的に時間経過で解除されるのは今のところ封印)
	;TEQUIP:ARG:手下留情 = MAX(TEQUIP:ARG:手下留情 - 1, 0)

	;射精を堪えられる快感を算出
	BASE:ARG:快感許容値男性 += TCVAR:ARG:絶頂増加

	;手下留情状態
	IF COND("手下留情中", ARG)
		TCVAR:ARG:絶頂度 = 0
	ELSEIF COND("射精禁止中", ARG)
		TCVAR:ARG:絶頂度 = 0
	ELSE
		TCVAR:ARG:絶頂度 = CALCF("絶頂", ARG)
	ENDIF

	SIF COND("絶頂", ARG) == 0
		TCVAR:ARG:想要射精的位置 = 0

	;TARGETとTARGET:1(これはＷ推倒の時)の絶頂フラグ
	IF COND("絶頂", ARG)
		TCVAR:ARG:PLAY区分メイン = CALCF("絶頂の原因", TARGET, SELECTCOM)
		;二人推倒た時の助手に対する射精フラグ
		TCVAR:ARG:PLAY区分サブ = CALCF("絶頂の原因", TARGET:1, SELECTCOM:1)
	ENDIF
	PLAYER = LOCAL
CASE "射精＆絶頂イベントフラグ"
	LOCALS =
	IF SHOOT("ぶっかけ")
		IF SHOOT("髪")
			LOCALS = 絶頂：ぶっかけ髪
		ELSEIF SHOOT("顔")
			LOCALS = 絶頂：ぶっかけ顔
		ELSEIF SHOOT("股間")
			LOCALS = 絶頂：ぶっかけ股間
		ELSEIF SHOOT("くぱぁ")
			LOCALS = 絶頂：ぶっかけくぱぁ
		ELSEIF SHOOT("お腹")
			LOCALS = 絶頂：ぶっかけお腹
		ELSEIF SHOOT("お尻")
			LOCALS = 絶頂：ぶっかけお尻
		ELSEIF SHOOT("Ａくぱぁ")
			LOCALS = 絶頂：ぶっかけＡくぱぁ
		ELSEIF SHOOT("鼻の穴")
			LOCALS = 絶頂：ぶっかけ鼻の穴
		ELSE
			LOCALS = 絶頂：ぶっかけ
		ENDIF
	ELSEIF SHOOT("脚")
		LOCALS = 絶頂：脚
	ELSEIF SHOOT("素股")
		LOCALS = 絶頂：素股
	ELSEIF SHOOT("口")
		LOCALS = 絶頂：口
	ELSEIF SHOOT("胸")
		LOCALS = 絶頂：胸
	ELSEIF SHOOT("手")
		LOCALS = 絶頂：手
	ELSEIF SHOOT("Ｖ中出し")
		LOCALS = 絶頂：Ｖ中出し
	ELSEIF SHOOT("Ａ中出し")
		LOCALS = 絶頂：Ａ中出し
	ELSEIF SHOOT("尿道中出し")
		LOCALS = 絶頂：尿道中出し
	ELSEIF SHOOT("乳内中出し")
		LOCALS = 絶頂：乳内中出し
	ELSEIF SHOOT("接吻")
		LOCALS = 絶頂：接吻
	ELSEIF SHOOT("面部騎乗")
		LOCALS = 絶頂：面部騎乗
	ELSEIF SHOOT("洗面奶")
		LOCALS = 絶頂：洗面奶
	ELSEIF SHOOT("逆舐陰")
		LOCALS = 絶頂：逆舐陰
	ELSEIF SHOOT("逆強姦")
		LOCALS = 絶頂：逆強姦
	ELSEIF SHOOT("逆肛交")
		LOCALS = 絶頂：逆肛交
	ELSEIF SHOOT("肛門奉仕")
		LOCALS = 絶頂：肛門奉仕
	ELSEIF SHOOT("乳交奉仕")
		LOCALS = 絶頂：乳交奉仕
	ELSEIF SHOOT("逆Ａ振動棒")
		LOCALS = 絶頂：逆Ａ振動棒
	ELSEIF SHOOT("助手")
		LOCALS = 絶頂：助手
	ELSEIF SHOOT("調教者が女性")
		LOCALS = 絶頂：調教者为女性
	ENDIF

	SIF LOCALS != ""
		CALL SET_FIRST_EV, LOCALS
CASE "快楽経験判定"
	;奉仕快楽フラグ
	SELECTCASE ARG
	CASE 6, 65, 75, 80, 90 TO 107, 140, 150
		TCVAR:奉仕快楽フラグ = 1
	CASE 120 TO 129
		SIF TEQUIP:推倒 == 0
			TCVAR:奉仕快楽フラグ = 1
	CASE 138
		SIF CHECK_COM("口内放尿") && CHECK("口内放尿")
			TCVAR:奉仕快楽フラグ = 1
	ENDSELECT

	;嗜虐快楽フラグ
	SELECTCASE ARG
	CASE 95, 176, 177, 280
		TCVAR:嗜虐快楽フラグ = 1
	CASE 1, 4, 9, 11, 65, 75, 80, 90 TO 107, 120 TO 129, 144, 145, 150
		SIF TEQUIP:推倒
			TCVAR:嗜虐快楽フラグ = 1
	ENDSELECT

	;羞恥快楽フラグ
	SELECTCASE ARG
	CASE 1, 3, 9, 13, 14, 62, 72, 99, 135, 136, 144, 145, 148, 149, 151, 170, 172, 174
		TCVAR:羞恥快楽フラグ = 1
	ENDSELECT

	;被虐快楽フラグ
	SELECTCASE ARG
	;例外
	CASE 139, 146
	CASE 12, 30 TO 59, 130 TO 159
		TCVAR:被虐快楽フラグ = 1
	ENDSELECT
CASE "温泉浣腸"
	SIF TEQUIP:ARG:浣腸 < 3
		TEQUIP:ARG:浣腸 = 3
	TEQUIP:ARG:温泉浣腸 = 1
CASE "精液浣腸"
	SIF TEQUIP:ARG:浣腸 == 0
		TEQUIP:ARG:浣腸 = 1
	TEQUIP:ARG:精液浣腸 = 1
CASE "排泄"
	;排泄フラグ
	IF COND("温泉浣腸")
		NOWEX:排泄 = COND("液体浣腸")
	ELSEIF COND("精液浣腸")
		NOWEX:排泄 = 1
	ELSE
		NOWEX:排泄 = COND("液体浣腸")
	ENDIF
	EX:排泄 += NOWEX:排泄
	EX:排泄量 += BASE:排泄物
	NOWEX:排泄量 += BASE:排泄物
	BASE:排泄欲 = 0

	CALL KOJO_EVENT, "无塞浣腸事件"

	IF TFLAG:地の文スキップ == 0
		IF COND("肛門栓")
			PRINTFORM 被拔下肛門栓的%CALLNAME:TARGET%
			SELECTCASE BASE:排泄物
			CASE 0
				IF COND("精液浣腸") && COND("液体浣腸") == 0
					PRINTFORMW 、被注入其中的精液伴随着%TEXTR("腸内的/难闻的")%气味从肛門里喷了出来。
				ELSE
					PRINTFORMW 、被注入其中的液体伴随着%TEXTR("腸内的/难闻的")%气味从肛門里喷了出来。
				ENDIF
			CASE IS <= 4
				PRINTFORMW 、被\@ COND("温泉浣腸") ? 大量小便 # 浣腸液 \@软化的腸内汚物从肛門里喷了出来。
			CASE IS <= 6
				PRINTFORMW 、腸内积蓄着的大量汚物\@ CHECK_STAIN(STAIN:Ａ, "精液") ? 混合着精液 # \@以惊人的气势从肛門里喷了出来。
			CASEELSE
				PRINTFORMW 由于浣腸的刺激排泄出大量\@ CHECK_STAIN(STAIN:Ａ, "精液") ? 混杂着精液 # \@的軟便、数秒後便夹杂着屁声从肛門挤出一座由硬化的汚物组成的小山。
			ENDSELECT
		ENDIF

		SELECTCASE MIN(ABL:受虐属性, (ABL:露出癖 + 1)/2)
		CASE 0
			PRINTFORMW %CALLNAME:TARGET%露出苦闷和耻辱的表情……
		CASE 1
			PRINTFORMW %CALLNAME:TARGET%是\@ PLAYER == MASTER && TALENT:恋慕 ? 所爱之人的 # 人 \@虽然对面前的排泄行为感到羞耻、但还是感到了一点成就感……
		CASE 2
			PRINTFORMW %CALLNAME:TARGET%虽然很害羞、但表情却很開放……
		CASE 3
			PRINTFORMW %CALLNAME:TARGET%享受着肛門中穿过る\@ BASE:排泄物 ? 排泄物 # 汚液 \@的感覚、不時发出娇艶的喘息声…
		CASE 4
			PRINTFORMW %CALLNAME:TARGET%虽然出神\@ PLAYER == MASTER && TALENT:恋慕 ? 所爱之人的 # 人 \@享受着前排的耻辱和開放感……
		CASE IS >= 5
			PRINTFORML %CALLNAME:TARGET%心满意足地感受着排泄感
			IF TALENT:男性 || INSERT("Ｖ挿入") || RAND:2
				PRINTFORMW 其表情散漫地舒缓了快感、充满了从肛門\@ BASE:排泄物 ? 排出汚物 # 垂流汚液 \@的開放感…
			ELSE
				PRINTFORMW 其表情在快感上松弛、从肛門\@ BASE:排泄物 ? 排出汚物 # 垂流汚液 \@的同時、从膣口滴滴答答地滴下爱液…
			ENDIF
		ENDSELECT
	ENDIF

	TEQUIP:肛用振動棒 = 0
	TEQUIP:肛塞 = 0
	TEQUIP:浣腸 = 0
	TEQUIP:精液浣腸 = 0
	TEQUIP:温泉浣腸 = 0

	PALAM:Ａ潤 /= 2
	BASE:排泄物 = 0
	SIF BASE:Ａ胎内精液量
		BASE:Ａ胎内精液量 /= 2
	SIF BASE:Ａ胎内精子量
		BASE:Ａ胎内精子量 /= 2
	;妊娠が変化してないかの表示
	CALL CHECK_NINSHIN, TARGET
	;汚れ重置
	STAIN:Ａ = SET_STAIN(0, "Ａ")
CASE "強制口交で嘔吐"
	BASE:嘔吐感 = 0
	EX:嘔吐 += 1
	NOWEX:嘔吐 += 1
	;体力と情緒への物凄い補正
	CALL SOURCE_COM140, 100
	CALL CALC_SOURCE

	CALL BLANKLINE
	IF COND("射精後嘔吐")
		PRINTFORM %TEXTR("喉咙深处/舌根/敏感的部分")%被激烈地摩擦的%CALLNAME:TARGET%、在%CALLNAME:PLAYER%的\@ SIZE("阴茎", PLAYER) >= 2 ? 巨根 # 阴茎 \@
		PRINTFORM %TEXTR("停止了摩擦喉咙的刺激之后、/下解放努力地调整气息的途中/下逐渐恢复吐息的节奏时")%
	ELSE
		PRINTFORM 被%CALLNAME:PLAYER%的\@ SIZE("阴茎", PLAYER) >= 2 ? 巨根 # 阴茎 \@过度刺激%TEXTR("喉咙深处/舌根/敏感部分")%的%CALLNAME:TARGET%、
	ENDIF
	PRINTFORMW %TEXTR("无法忍耐不快感/无法忍耐身体的本能/无法再忍耐")%地吐了出来。

	CALL KOJO_EVENTL, "強制口交で嘔吐"

	IF TFLAG:地の文スキップ == 0
		PRINTFORM %CALLNAME:TARGET%
		;余力有有
		IF COND("嘔吐後余力有")
			PRINTFORMW 还没来得及擦干净%TEXTR("被呕吐物弄脏的/露出丑态/被弄脏了的")%嘴角、刚刚被蹂躏喉咙深处中又吐出了混杂着欲望的淡淡吐息…
			PRINTFORMW 看起来还能继续的样子。
		ELSE
			;献身系
			IF TALENT:献身 && TALENT:高慢 + TALENT:強気 + TALENT:傲慢 == 0
				PRINTFORM %TEXTR("随着喘息上下起伏着肩膀/为了寻求氧气深深地喘息的同时")%
			ELSE
				PRINTFORM %TEXTR("露出了憔悴的表情/随着喘息上下起伏着肩膀/脸色有些发青/为了寻求氧气深深地喘息的同时")%
			ENDIF
			IF EXP_GAIN("飲尿経験") || NOWEX:口内射精 || (EXP_GAIN("精飲経験") && RAND:3 == 0)
				IF EXP_GAIN("飲尿経験") && EXP_GAIN("精飲経験") + NOWEX:口内射精
					PRINTFORM 混合着尿和精液的呕吐物
				ELSEIF NOWEX:口内射精
					PRINTFORM 、刚刚从口中吐出的混合着精液的呕吐物
				ELSEIF EXP_GAIN("精飲経験")
					PRINTFORM 混合着精液的呕吐物
				ELSE
					PRINTFORM 呕吐物中的尿液成分
				ENDIF
			ELSEIF STATE("酔酒", TARGET)
				PRINTFORM %TEXTR("混合着酒臭的呕吐物/眼前的惨状/在地板上散開的混着酒精的呕吐物")%
			ELSE
				PRINTFORM %TEXTR("自己的呕吐物/眼前的惨状/从嘴角垂到地板上的污物//在地板上散開的呕吐物")%
			ENDIF

			;気が很强系
			IF TALENT:高慢 + TALENT:強気 + TALENT:傲慢
				PRINTFORMW %TEXTR(@"无力地看着/看了一眼、接着给%CALLNAME:PLAYER%送去了锐利的眼神/掺杂着后悔的情绪呆呆地看着")%…
			;献身系
			ELSEIF TALENT:献身 && RAND:2
				PRINTFORMW %TEXTR(@"露出了复杂的表情/看了%CALLNAME:PLAYER%一眼之后、露出了万分抱歉的表情低下頭")%…
			;温柔系
			ELSEIF TALENT:内気 + TALENT:坦率 + TALENT:開朗
				IF TALENT:嘔吐反射耐性 == 0 && TALENT:汚臭鈍感 == 0 && RAND:3 == 0
					PRINTFORMW %TEXTR(@"呆呆地看着/凝视着/无言地看着")%…
					PRINTFORMW 无法抵抗%TEXTR("再度涌上来/因为酸臭味再度引发的/不断地从喉咙深处涌上来的")%的恶心感、在扩散開的污物上再一次吐了出来。
				ELSE
					PRINTFORMW %TEXTR(@"呆呆地看着/凝视了一会之后、用悲伤的眼神看着%CALLNAME:PLAYER%/呆呆地看着、缓缓地開始了清扫的准备")%…
				ENDIF
			ELSE
				PRINTFORMW %TEXTR(@"呆呆地看着/无力地看着呕吐物扩散開")%…
			ENDIF
		ENDIF
	ENDIF

	EXP:強制口交嘔吐經驗 += 1

	IF CALCF("撃沈判定") == 0
		PRINTL
		PRINTFORMW （幸好吐出来的污物并不多、简单地扫除了一下之后就可以继续了）
		CALL RESET_STAIN_EX, "Ｍ", TARGET
	ENDIF

	CALL MARK_GOT_CHECK

CASE "調教者交代"
	;MASTERとASSIを交代する
	;本格的に交代したならポジション解消
	IF ARG
		;前Ｔ調教者は重置
		TFLAG:前Ｔ調教者 = 0
		CVARSET TEQUIP, GETNUM(TEQUIP, "面部騎乗")
		CVARSET TEQUIP, GETNUM(TEQUIP, "六九式")
	ENDIF
	;手下留情は終了
	TEQUIP:手下留情 = 0
	;どちらかが助手ならASSIPLAYのスイッチ反転
	SIF PLAYER == ASSI || PLAYER:1 == ASSI
		INVERTBIT ASSIPLAY, 0
	;調教開始時にPLAYER = MASTER、PLAYER:1 = ASSIとなっており、これは不変
	SWAP PLAYER, PLAYER:1
	SWAP SELECTCOM, SELECTCOM:2
	SWAP PREVCOM, PREVCOM:2
;TARGETとTARGET:1を交換する。TARGET:1が居ないならASSIと交換する
CASE "対象交代"
	;TARGETとTARGET:1(通常は助手)を交代する。交代したならポジション解消
	;前Ｔ対象は重置
	TFLAG:前Ｔ対象 = 0
	;手下留情は終了
	TEQUIP:手下留情 = 0
	TEQUIP:(TARGET:1):手下留情 = 0

	;現在TARGET:1が調教者側なら、その役に成り代わるTARGETに役割を譲る
	SELECTCASE TARGET:1
	CASE PLAYER
		PLAYER = TARGET
	CASE PLAYER:1
		PLAYER:1 = TARGET
	ENDSELECT

	;片方が助手ならば、助手の立場も交換
	SELECTCASE ASSI
	CASE TARGET
		ASSI = TARGET:1
	CASE TARGET:1
		ASSI = TARGET
	ENDSELECT

	;Ｗ推倒の立場交換
	SIF TEQUIP:Ｗ推倒
		SWAP TEQUIP:Ｗ推倒, TEQUIP:(TARGET:1):Ｗ推倒

	SWAP TARGET, TARGET:1

	IF TEQUIP:Ｗ推倒 == 0
		;挿入フラグ解除
		CVARSET TEQUIP, GETNUM(TEQUIP, "体位")
		CVARSET TEQUIP, GETNUM(TEQUIP, "Ｖ挿入")
		CVARSET TEQUIP, GETNUM(TEQUIP, "Ａ挿入")
	ENDIF
	CVARSET TEQUIP, GETNUM(TEQUIP, "六九式")

	;前回実行指令を入れ替え
	SWAP SELECTCOM, SELECTCOM:1
	SWAP PREVCOM, PREVCOM:1
	;３Ｐ解消
	SWAP SELECTCOM:2, SELECTCOM:3
	SWAP PREVCOM:2, PREVCOM:3

CASE "尿道拡張"
	;ARGに挿入されるものの尺寸が代入されている
	;尿道拡張度の要素によって異なる挙動が起きる
	SIF CSTR:Ｐ尿道拡張度 == "" || CSTR:Ｖ尿道拡張度 == "" || ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	;最小の要素以下の太さなら拡張は起きない
	SIF ARG <= MIN_STR(CONDS("尿道拡張度", ARG:1) )
		RETURN 0

	;LOCALは拡張する進行度
	IF COND("調教中", ARG:1)
		SELECTCASE ABL:PLAYER:技巧
		CASE IS >= 7
			LOCAL = 3
		CASE IS >= 4
			LOCAL = 2
		CASEELSE
			LOCAL = 1
		ENDSELECT

		;TALENT:拡張適性や調教知識(性器拡張)があると拡張するのが格段に楽
		;調教知識によるBOUNS
		SELECTCASE CONDS("調教知識", PLAYER)
		CASE "性器拡張知識"
			LOCAL += 4
		ENDSELECT

		;連続実行
		SIF PREVCOM == SELECTCOM
			LOCAL = LOCAL*3 + 1

	ELSE
		SELECTCASE ABL:(ARG:1):技巧
		CASE IS >= 7
			LOCAL = 3
		CASE IS >= 4
			LOCAL = 2
		CASEELSE
			LOCAL = 1
		ENDSELECT

		SELECTCASE CONDS("調教知識", ARG:1)
		CASE "性器拡張知識"
			LOCAL += 4
		ENDSELECT
	ENDIF

	SIF TALENT:(ARG:1):拡張適性
		LOCAL += 6

	;尿道拡張の壁にぶつかると拡張する速度が急速に鈍化
	SELECTCASE CALCF("尿道径", ARG:1)
	CASE IS >= CALCF("尿道拡張の限界", ARG:1)*6/5
		RETURN 0
	CASE IS >= CALCF("尿道拡張の限界", ARG:1)
		LOCAL /= 3
	CASE IS >= CALCF("尿道拡張の壁", ARG:1)
		LOCAL /= 2
	ENDSELECT

	SIF LOCAL <= 0
		LOCAL = 1

	VARSET LOCALS
	;どっちの尿道か
	IF PENIS(ARG:1)
		;それぞれの要素に分解
		SPLIT CSTR:(ARG:1):Ｐ尿道拡張度, "/", LOCALS
	ELSE
		;それぞれの要素に分解
		SPLIT CSTR:(ARG:1):Ｖ尿道拡張度, "/", LOCALS
	ENDIF

	FOR LCOUNT2, 0, LOCAL
		;LOCALSはLOCALS:0～LOCALS:9まで
		FOR LCOUNT, 0, 10
			;文字列を数字化して比較
			SIF TOINT(LOCALS:LCOUNT) > MIN_STR(CONDS("尿道拡張度", ARG:1) )
				CONTINUE
			SIF ARG <= TOINT(LOCALS:LCOUNT)
				CONTINUE

			LOCALS:LCOUNT = {ARG}
			BREAK
		NEXT
	NEXT

	EXP:(ARG:1):尿道拡張経験 += 1

	;どっちの尿道か
	IF PENIS(ARG:1)
		CSTR:(ARG:1):Ｐ尿道拡張度 =
		FOR LCOUNT, 0, 10
			CSTR:(ARG:1):Ｐ尿道拡張度 = %CSTR:(ARG:1):Ｐ尿道拡張度%%LOCALS:LCOUNT%/
		NEXT
	ELSE
		CSTR:(ARG:1):Ｖ尿道拡張度 =
		FOR LCOUNT, 0, 10
			CSTR:(ARG:1):Ｖ尿道拡張度 = %CSTR:(ARG:1):Ｖ尿道拡張度%%LOCALS:LCOUNT%/
		NEXT
	ENDIF

CASE "Ｖ拡張", "Ａ拡張"
	;ARGに挿入されるものの尺寸、ARG:1に硬さが代入されている

	VARSET LOCAL
	;硬さが３以上だと損傷度+１
	SIF ARG:1 > 2
		LOCAL += 1
	;拡張適性があれば損傷度-1
	SIF TALENT:拡張適性
		LOCAL -= 1
	;弛緩してたら損傷度軽減
	SIF TEQUIP:弛緩
		LOCAL -= TEQUIP:弛緩/2
	;まずは損傷を見る
	SELECTCASE ARGS
	CASE "Ｖ拡張"
		LOCAL += ARG - ABL:Ｖ拡張 - 2
		;阴茎での処女喪失時の損傷条件の緩和
		SIF TALENT:処女 && CALCF("Ｖ拡張の上限：処女無視", TARGET)
			LOCAL -= 1
		IF TRAINNAME_EX(SELECTCOM) == "逆振動棒" || CUP:苦痛 < 3000
		ELSEIF TALENT:Ｖ損傷 < LOCAL
			SIF EXP:Ｖ損傷経験 < LOCAL
				EXP:Ｖ損傷経験 = LOCAL

			TALENT:Ｖ損傷 = LOCAL
			;情緒激減
			FLAG:情緒 -= 30 * LOCAL
		ENDIF
	CASE "Ａ拡張"
		LOCAL += ARG - ABL:Ａ拡張 - 2
		IF TRAINNAME_EX(SELECTCOM) == "逆Ａ振動棒" || CUP:苦痛 < 3000
		ELSEIF TALENT:Ａ損傷 < LOCAL
			SIF EXP:Ａ損傷経験 < LOCAL
				EXP:Ａ損傷経験 = LOCAL

			TALENT:Ａ損傷 = LOCAL
			;情緒激減
			FLAG:情緒 -= 30 * LOCAL
		ENDIF
	ENDSELECT

	;続いて拡張経験の獲得
	SIF ARG < 2
		RETURN 0

	SELECTCASE ARGS
	CASE "Ｖ拡張"
		LOCAL:1 = ARG - ABL:Ｖ拡張
		;EXP:Ｖ拡張経験が0-4なら5, 5-19なら20,…と返す
		LOCAL:2 = EXP_LV(GET_EXP_LV(EXP:Ｖ拡張経験) + 1)
		LOCALS = Ｖ拡張経験
	CASE "Ａ拡張"
		LOCAL:1 = ARG - ABL:Ａ拡張
		LOCAL:2 = EXP_LV(GET_EXP_LV(EXP:Ａ拡張経験) + 1)
		LOCALS = Ａ拡張経験
	ENDSELECT

	;挿入するものの尺寸-拡張ＬＶを見る。値が大きいほど拡張経験増加量が多い
	;なお、(挿入するものの尺寸-拡張ＬＶ)が１以下の場合で挿入するものが柔らかい時(硬さが２以下)は拡張経験増加は１まで
	SELECTCASE LOCAL:1
	CASE IS <= -2
		IF ARG >= 4
			LOCAL = 1
		ELSE
			RETURN 0
		ENDIF
	CASE -1
		IF ARG >= 3
			LOCAL = 1
		ELSE
			RETURN 0
		ENDIF
	CASE 0
		LOCAL = 1
	CASE 1
		;四捨五入
		LOCAL = (LOCAL:2 + 5)/10
		;挿入するものの硬さ
		SELECTCASE ARG:1
		CASE 1
			LOCAL = 1
		CASE 2
			LOCAL = MIN(LOCAL, 2)
		ENDSELECT
	CASE 2
		LOCAL = (LOCAL:2 + 1)/3
	CASE IS >= 3
		LOCAL = LOCAL:2
	ENDSELECT

	;硬い場合には尺寸がかなり関係する
	SIF ARG:1 >= 3
		LOCAL = MAX(LOCAL, ARG)

	LOCAL = LIMIT(LOCAL, 1, 20)

	;大きく上がるのは一度の調教で一度だけ
	;基本的には入れるものの尺寸の絶対値に依存する
	IF EXP_GAIN(LOCALS)
		;尺寸ごとに、２度目以降の上昇時に上げられる拡張経験の最大値が決まっている
		;(尺寸, 上限) = (1, 1), (2, 5), (3, 20), …, (n, EXP_LV(n) )
		SIF EXP:LOCALS >= MAX(EXP_LV(ARG), 1) && ARG <= 2
			RETURN 0

		SELECTCASE LOCAL:1
		CASE IS <= -1
			IF ARG >= 3 && ARG:1 >= 3
				LOCAL = 1
			ELSE
				RETURN 0
			ENDIF
		CASE 0, 1
			IF ARG:1 >= 3
				LOCAL = MAX(LOCAL/2, 1)
			ELSE
				LOCAL /= 2
			ENDIF
		CASE IS >= 2
			;挿入するものの硬さ
			SELECTCASE ARG:1
			CASE 1
				LOCAL = 1
			CASE 2
				LOCAL = MIN(LOCAL, 2)
			ENDSELECT
		ENDSELECT

		;(尺寸のＬＶ, 上限) = (1, 1), (2, 2), (3, 5), (4, 10), (5, 20), …, (n, 5n)
		SELECTCASE ARG
		CASE 1
			LOCAL = MIN(LOCAL, 1)
		CASE 2
			LOCAL = MIN(LOCAL, 2)
		CASE 3
			LOCAL = MIN(LOCAL, 5)
		CASE 4
			LOCAL = MIN(LOCAL, 10)
		CASEELSE
			LOCAL = MIN(LOCAL, ARG*4)
		ENDSELECT
	ENDIF

	;調教知識による経験獲得のBOUNS
	SELECTCASE CONDS("調教知識", PLAYER)
	CASE "性器拡張知識"
		LOCAL *= 2
	ENDSELECT

	;拡張経験増加
	EXP:LOCALS += LOCAL
CASE "Ｐ潤変動処理"
	SIF ARG == 0 && PLAYER > 0
		ARG = PLAYER
	SIF PENIS(ARG) == 0
		RETURN 0
	;挿入中の増減量獲得は@COMF60内の@FLAG_INSERTIONで行う
	;挿入以外だと3000ぐらいが限度
	IF INSERT("挿入中", ARG) == 0
		SELECTCASE SELECTCOM
		;口交
		CASE 91, 99, 140, 150
			SIF PALAM:ARG:Ｐ潤 < 3000
				CUP:ARG:Ｐ潤 += (ABL:技巧 + ABL:奉仕精神 + ABL:舌靈活)*100
		;素股系
		CASE 93, 94
			SIF PALAM:ARG:Ｐ潤 < 3000
				CUP:ARG:Ｐ潤 += PALAM:Ｖ潤 / 3
		;助手を犯す
		CASE 160
			CUP:ARG:Ｐ潤 += PALAM:ASSI:Ｖ潤 / 4
		;助手口交
		CASE 162
			SIF PALAM:ARG:Ｐ潤 < 3000
				CUP:ARG:Ｐ潤 += (ABL:ASSI:技巧 + ABL:ASSI:奉仕精神 + ABL:ASSI:舌靈活)*100
		;飞机杯
		CASE 105
			SIF PALAM:ARG:Ｐ潤 < 3000
				CUP:ARG:Ｐ潤 += 1000
		CASEELSE
			IF COND("清洁口交フラグ")
				SIF PALAM:ARG:Ｐ潤 < 3000
					CUP:ARG:Ｐ潤 += (ABL:技巧 + ABL:奉仕精神 + ABL:舌靈活)*100
			ELSEIF CUP:ARG:Ｐ潤 == 0
				CDOWN:ARG:Ｐ潤 += MIN(200, PALAM:ARG:Ｐ潤)
			ENDIF
		ENDSELECT
	ENDIF

	;このターンのBASE:絶頂増分に応じてカウ布で潤滑追加
	CUP:ARG:Ｐ潤 += 500 * TCVAR:ARG:絶頂増加 / MAXBASE:ARG:絶頂
	IF TALENT:ARG:容易濕
		CUP:ARG:Ｐ潤 = UP_PALAMLV(CUP:ARG:Ｐ潤)
	ELSEIF TALENT:ARG:不易濕
		CUP:ARG:Ｐ潤 = DOWN_PALAMLV(CUP:ARG:Ｐ潤)
	ENDIF

	PALAM:ARG:Ｐ潤 = LIMIT(PALAM:ARG:Ｐ潤 + CUP:ARG:Ｐ潤 - CDOWN:ARG:Ｐ潤, 0, 10000)

CASE "潤滑追加"
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF TALENT:(ARG:1):男性 == 0
		CUP:(ARG:1):Ｖ潤 += ARG
	CUP:(ARG:1):Ａ潤 += ARG
	SIF PENIS(ARG:1)
		CUP:(ARG:1):Ｐ潤 += ARG
CASE "調教外潤滑追加"
	SIF ARG:1 == 0 && TARGET
		ARG:1 = TARGET
	SIF TALENT:(ARG:1):男性 == 0
		PALAM:(ARG:1):Ｖ潤 += ARG
	PALAM:(ARG:1):Ａ潤 += ARG
	SIF PENIS(ARG:1)
		PALAM:(ARG:1):Ｐ潤 += ARG

CASE "電源BOX装着"
	SETBIT CFLAG:ARG:電源BOX, 0
	IF EQUIP:ARG:胖次 && CHECK_PANTIES("開洞", ARG)
		STAIN:ARG:胖次 = SET_STAIN(STAIN:ARG:胖次, "湿的")
	ELSEIF EQUIP:ARG:贴身制服 && CHECK_BODYS("開洞", ARG)
		STAIN:ARG:贴身制服ボトム = SET_STAIN(STAIN:ARG:贴身制服ボトム, "湿的")
	ELSEIF EQUIP:ARG:外套 && CHECK_OUTER("開洞", ARG)
		STAIN:ARG:外套 = SET_STAIN(STAIN:ARG:外套, "湿的")
	ENDIF
	SIF CHECK_SOCKS("直到大腿", ARG) == 0 && CHECK_OTHER("腿环", ARG) == 0
		CALL SET_OTHER, "腿环", ARG

CASE "電源BOX発覚"
	SETBIT CFLAG:ARG:電源BOX, 1

CASE "内衣以外全脱ぎ"
	CALL SET_SHIRT, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_BODYS, "", ARG
	CALL SET_OUTER, "", ARG
	CALL SET_SOCKS, "", ARG
	CALL SET_GLOVE, "", ARG
	CALL SET_SHOES, "", ARG

CASE "变成内衣姿态"
	CALL SET_SHIRT, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_BODYS, "", ARG
	CALL SET_OUTER, "", ARG
CASE "胖次が見える格好になる"
	SIF CHECK_SHIRT("連衣裙", ARG) || CHECK_SKIRT("連衣裙", ARG)
		CALL SET_SHIRT, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_OUTER, "", ARG

CASE "衣装全脱ぎ"
	CALL SET_PANTIES, "", ARG
	CALL SET_BRA, "", ARG
	CALL SET_SHIRT, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_BODYS, "", ARG
	CALL SET_OUTER, "", ARG
	CALL SET_SOCKS, "", ARG
	CALL SET_GLOVE, "", ARG
	CALL SET_SHOES, "", ARG
	CALL SET_OTHER, "", ARG

CASE "服以外全脱ぎ"
	CALL SET_SOCKS, "", ARG
	CALL SET_GLOVE, "", ARG
	CALL SET_SHOES, "", ARG
	CALL SET_OTHER, "", ARG

CASE "扒成裸体"
	CALL SET_PANTIES, "", ARG
	CALL SET_BRA, "", ARG
	CALL SET_SHIRT, "", ARG
	CALL SET_SKIRT, "", ARG
	CALL SET_BODYS, "", ARG
	CALL SET_OUTER, "", ARG
	CALL RESET_OTHER, "外套", ARG

CASE "胸を半脱る"
	SWAP TARGET, ARG
	IF EQUIP:贴身制服
		SIF CHECK_BODYS("半脱可")
			CSTR:贴身制服 += "半脱的/"
	ENDIF
	IF EQUIP:服
		SIF CHECK_SHIRT("半脱可")
			CSTR:服 += "半脱的/"
	ENDIF
	IF EQUIP:胸罩
		SIF CHECK_BRA("半脱可")
			CSTR:胸罩 += "半脱的/"
	ENDIF
	CALL SETFLAG_DAILY, "胸罩形状確認", ARG
	SWAP TARGET, ARG

CASE "ボトムを脱がす", "下半身を脱がす"
	CALL SET_PANTIES, "", ARG
	CALL SET_BODYS, "", ARG
	CALL SET_OUTER, "", ARG
	CALL SETFLAG_DAILY, "胖次形状確認", ARG

CASE "汚胖次化"
	CSTR:ARG:胖次 += "開洞带污迹的/"
CASE "随机汚胖次化"
	;穿き替えてないor没穿内褲or開洞没有ならここで終わり
	SIF EQUIP:ARG:胖次 == 0 || TALENT:ARG:男性 || COND("種族：人形", ARG) || CHECK_PANTIES("開洞", ARG) == 0 || CHECK_PANTIES("泳装", ARG)
		RETURN 0
	SIF TALENT:ARG:Ｖ妊娠不能 && AGE(ARG) <= 2
		RETURN 0

	MEMO = 0
	IF TALENT:ARG:高贵 || TALENT:ARG:聰慧 || TALENT:ARG:清楚
		MEMO = 36
	ELSEIF TALENT:ARG:粗野 || TALENT:ARG:笨蛋 || TALENT:ARG:不知羞恥
		MEMO = 12
	ELSE
		MEMO = 24
	ENDIF
	SIF TALENT:ARG:自制心
		MEMO *= 2
	SIF TALENT:ARG:真面目
		MEMO *= 2
	SIF TALENT:ARG:不易濕
		MEMO *= 2

	SIF TALENT:ARG:容易濕
		MEMO /= 2
	SIF TALENT:ARG:易出汗
		MEMO /= 2
	SIF AGE(ARG) >= 3
		MEMO /= 2
	SIF COND("夏", ARG)
		MEMO /= 3
	SIF COND("秋", ARG)
		MEMO /= 2
	SIF CHECK_PANTIES("布鲁马", ARG)
		MEMO /= 2

	MEMO = MAX(MEMO, 7)

	SIF RAND:MEMO == 0
		CSTR:ARG:胖次 += "開洞带污迹的/"

CASE "拉下胖次"
	CSTR:ARG:胖次 += "下拉半遮/"
CASE "整理胖次"
	CSTR:ARG:胖次 = %REPLACE(CSTR:ARG:胖次, "下拉半遮/", "")%

CASE "ボトムを１枚ずらす"
	SWAP TARGET, ARG
	;贴身制服、ずらしていないか带拉链的開けてない
	IF EQUIP:贴身制服 && CHECK_CLO("贴身制服露出")
		IF CHECK_BODYS("带拉链的閉")
			PRINTFORM 拉下%BODYS(TARGET, "略")%股间的拉链
			CSTR:贴身制服 += "带拉链的開/"
		ELSE
			IF CHECK_CLO("勒紧的") && RAND:2 == 0
				PRINTFORM 勒入股間的
			ELSE
				PRINTFORM %BODYS(TARGET, "略")%的
			ENDIF
			PRINT 拉開股间的布
			CSTR:贴身制服 += "移開的/"
		ENDIF
	ELSEIF EQUIP:外套 && CHECK_OUTER("带拉链的閉")
		PRINTFORM 拉下%OUTER(TARGET, "略")%胯间的拉链
		CSTR:外套 += "带拉链的開/"
	;外套、ずらしていないか穴が無い
	ELSEIF EQUIP:外套 && CHECK_CLO("布鲁马露出")
		CSTR:外套 += "移開的/"
		IF EQUIP:胖次 && CHECK_PANTIES("可以移開")
			PRINTFORM 内衣
			CSTR:胖次 += "移開的/"
		ENDIF
		PRINTFORM 错開%OUTER(TARGET, "略")%
	;连褲襪(破ってない)
	ELSEIF EQUIP:外套 && CHECK_CLO("连褲襪露出")
		PRINTFORM 撕破%OUTER(TARGET, "略")%
		CSTR:外套 += "破開的/"
	;胖次、ずらしていないか带拉链的開けてない
	ELSEIF EQUIP:胖次 && CHECK_CLO("胖次露出")
		IF CHECK_PANTIES("带拉链的閉")
			PRINTFORM 拉下%PANTIES(TARGET, "略")%的拉链
			CSTR:胖次 += "带拉链的開/"
		ELSE
			IF CHECK_PANTIES("Ｔ字褲") && (SELECTCOM == 2 || SELECTCOM == 33 || (SELECTCOM >= 70 && SELECTCOM <= 79) )
				PRINT 拉開隐藏着菊花的绳子
			ELSE
				PRINTFORM 错開%PANTIES(TARGET, "略")%
			ENDIF
			CSTR:胖次 += "移開的/"
		ENDIF
	ENDIF
	SWAP TARGET, ARG
CASE "ボトムを露出：テ接吻ト有些", "ボトムを露出：テ接吻ト没有"
	SWAP TARGET, ARG
	VARSET LOCALS
	IF EQUIP:贴身制服
		IF CHECK_BODYS("带拉链的閉")
			SIF COND("調教中")
				CSTR:贴身制服 += "带拉链的開/"
			LOCALS = 带拉链的を下ろして
		ELSEIF CHECK_BODYS("可以移開") && !CHECK_BODYS("带拉链的開")
			SIF COND("調教中")
				CSTR:贴身制服 += "移開的/"
		ENDIF
	ENDIF
	IF EQUIP:外套
		IF CHECK_OUTER("带拉链的閉")
			SIF COND("調教中")
				CSTR:外套 += "带拉链的開/"
			LOCALS = 带拉链的を下ろして
		ELSEIF PENIS(TARGET) && !CHECK_OUTER("带拉链的開")
			LOCALS = %OUTER(TARGET, "略")%を脱がして
			SIF COND("調教中")
				CALL SET_OUTER, ""
		ELSEIF CHECK_OUTER("可以移開") && !CHECK_OUTER("带拉链的開")
			SIF COND("調教中")
				CSTR:外套 += "移開的/"
		ELSEIF CHECK_OUTER("破ける")
			SIF COND("調教中")
				CSTR:外套 += "破開的/"
			LOCALS = %OUTER(TARGET, "略")%を破いて
		ENDIF
	ENDIF
	IF EQUIP:胖次
		IF CHECK_PANTIES("带拉链的閉")
			SIF COND("調教中")
				CSTR:胖次 += "带拉链的開/"
			LOCALS = 带拉链的を下ろして
		ELSEIF (PENIS(TARGET) || CHECK_PANTIES("可以移開") == 0) && !CHECK_PANTIES("带拉链的開")
			LOCALS = %PANTIES(TARGET, "略")%を脱がして
			SIF COND("調教中")
				CALL SET_PANTIES, ""
		ELSEIF CHECK_PANTIES("可以移開") && !CHECK_PANTIES("带拉链的開")
			SIF COND("調教中")
				CSTR:胖次 += "移開的/"
		ENDIF
	ENDIF

	IF ARGS == "ボトムを露出：テ接吻ト有些"
		IF LOCALS != ""
			PRINTFORM %LOCALS%
		ELSEIF RAND:2 || TALENT:男性
			PRINTFORM 让胯股之间露出来
		ELSE
			PRINTFORM 露出對女性來說最重要的部分
		ENDIF
	ENDIF

	;"ボトムを露出させた"フラグＯＮ
	SIF COND("調教中")
		SETBIT TCVAR:イベント, 21

	SWAP TARGET, ARG

CASE "ＳＨＯＰ画面開始前"
	;BEGIN TRAINで初期化されるPALAM, TEQUIP, STAIN, SOURCE, EXなどは注意する事
	BASE:ARG:母乳 = 0
	;胸の尺寸や淫乳、育児中かで補正
	IF TALENT:ARG:母乳体質
		BASE:ARG:母乳 = RAND:6000 + RAND:6000
		BASE:ARG:母乳 += TALENT:ARG:巨乳 * 3000
		SIF TALENT:ARG:淫乳
			BASE:ARG:母乳 += 1000
		SIF BASE:ARG:育児中
			BASE:ARG:母乳 += 3000
	ENDIF
	BASE:ARG:尿意 = LIMIT(500*(RAND:10 + RAND:10 + RAND:10) - 3000, 0, 8000)
	MAXBASE:ARG:尿意 = 10000

	BASE:ARG:嘔吐感 = 0

	;綺麗にする様に指示
	IF BASE:ARG:排泄物 && COND("身嗜み：腸洗浄", ARG)
		EXP:ARG:Ａ経験 += 2
		EXP:ARG:浣腸経験 += 1
		BASE:ARG:排泄物 = 0
	ENDIF
	MAXBASE:ARG:排泄欲 = 10000
	BASE:ARG:排泄欲 = 0

	;阴茎や阴部の掃除をしてないと…
	SIF COND("Ｐ不潔", ARG)
		STAIN:ARG:Ｐ = SET_STAIN(STAIN:ARG:Ｐ, "Ｐ恥垢")
	SIF COND("Ｖ不潔", ARG)
		STAIN:ARG:Ｖ = SET_STAIN(STAIN:ARG:Ｖ, "Ｖ恥垢")

CASE "調教開始前Ａ"
	;日常イベントフラグ確定
	CALL SET_DEVENT2, ARG

	VARSET TCVAR:ARG:0, 0, 0, 1000
	;ターン初期化
	TCVAR:ARG:回合数 = 0
	;前のターンの挿入などの状態初期化
	TCVAR:ARG:PREVPLAY = 0
	;推倒確率の補正を初期化
	TCVAR:ARG:推倒頻度補正 = 0
	;好感度の記録
	TCVAR:ARG:好感度開始前 = CFLAG:ARG:好感度
	TCVAR:ARG:收集的魂開始前 = BASE:ARG:魂
	;獎勵生Hフラグ
	IF EQUIP:ARG:Ｈ的奖励
		IF COND("合意：危険日生性交", ARG) || COND("女性主導生性交", ARG)
		ELSEIF TALENT:ARG:恋慕
			SIF COND("危険日", ARG) == 0
				TCVAR:ARG:獎勵生H = 1
		ELSEIF COND("中出し嫌い", ARG)
			SIF COND("安全日", ARG)
				TCVAR:ARG:獎勵生H = 1
		ENDIF
	ENDIF

	;創口貼の装着
	SIF CFLAG:ARG:創口貼装着
		TEQUIP:ARG:創口貼 = 1

	;衣装のお願いしてる？
	SIF CSTR:ARG:Ｈ衣装 != ""
		CALL SET_MEMO_DRESS, "Ｈ衣装", ARG

	;胎内に精液がある場合は精液浣腸のフラグをたてる
	IF CONFIG("精液浣腸") && COND("身嗜み：腸洗浄", ARG) == 0 && COND("Ａ胎内の精液量", ARG) >= 10000 && BASE:ARG:排泄物
		TEQUIP:ARG:精液浣腸 = 1
		SIF TEQUIP:ARG:浣腸 == 0
			TEQUIP:ARG:浣腸 = 1
	ENDIF

	BASE:ARG:嘔吐感 = 0

	;綺麗にする様に指示
	SIF COND("身嗜み：腸洗浄", ARG)
		BASE:ARG:排泄物 = 0

	BASE:ARG:絶頂 = 0
	BASE:ARG:快感許容値男性 = 0

	;指令拒否フラグ＆SELECTCOMの記録重置
	FOR LCOUNT, 0, 600
		DITEMTYPE:ARG:LCOUNT = 0
	NEXT

	MEMO_TARGET = TARGET
	TARGET = ARG
	;角色ごとの開始前フラグ読み込み
	TRYCALLFORM SETFLAG_BEFORE_TRAIN_K{NO:TARGET}
	TARGET = MEMO_TARGET

	;PALAM引継ぎ(CFLAG:600～699はPALAMの記録に使う)
	FOR LCOUNT, 0, 100
		PALAM:ARG:LCOUNT = CFLAG:ARG:(600 + LCOUNT)
	NEXT

CASE "Ｈ前PALAM調整"
	IF COND("身嗜み：Ａ潤滑液", ARG) && TEQUIP:ARG:潤滑液 == 0 && (ITEM:潤滑液 || MONEY >= ITEMPRICE:潤滑液)
		PALAM:ARG:Ａ潤 += 10000
		TEQUIP:ARG:潤滑液 = 1
		IF ITEM:潤滑液
			ITEM:潤滑液 -= 1
		ELSE
			MONEY -= ITEMPRICE:潤滑液
		ENDIF
	ENDIF

	;阴茎や阴部の掃除をしてないと…
	SIF COND("Ｐ不潔", ARG)
		STAIN:ARG:Ｐ = SET_STAIN(STAIN:ARG:Ｐ, "Ｐ恥垢")
	SIF COND("Ｖ不潔", ARG)
		STAIN:ARG:Ｖ = SET_STAIN(STAIN:ARG:Ｖ, "Ｖ恥垢")

	IF TALENT:ARG:常時Ｖ振動棒
		PALAM:ARG:快Ｖ += RAND:(PALAM_LV(TALENT:ARG:常時Ｖ振動棒) ) * MIN(ABL:ARG:Ｖ感覚, 5) / 5
		;電源BOXまで使って楽しんでいる場合
		SIF COND("電源BOX", ARG)
			PALAM:ARG:快Ｖ += 500
		SIF CONFIG("常時挿入自動解除") == 0
			SETBIT TEQUIP:ARG:振動棒, TALENT:ARG:常時Ｖ振動棒
	ENDIF
	IF TALENT:ARG:常時Ａ肛塞
		PALAM:ARG:快Ａ += RAND:(PALAM_LV(TALENT:ARG:常時Ａ肛塞) ) * MIN(ABL:ARG:Ａ感覚, 5) / 5
		SIF CONFIG("常時挿入自動解除") == 0
			SETBIT TEQUIP:ARG:肛塞, TALENT:ARG:常時Ａ肛塞
	ENDIF
	;開始時に既に欲情＆湿的ている
	LOCAL = EXP:ARG:絶頂経験 + BASE:ARG:欲求不満*10 + RAND:100 - RAND:100
	LOCAL += MIN(ABL:ARG:欲望 * ABL:ARG:欲望, 100) * 5
	LOCAL -= TALENT:ARG:叛逆*50 + TALENT:ARG:冷静*30 + TALENT:ARG:否定快感*30
	LOCAL += TALENT:ARG:接受快感*30 + TALENT:ARG:好色*50 + TALENT:ARG:淫乱*100 + TALENT:ARG:恋慕*50
	LOCAL += TALENT:ARG:常時Ｖ振動棒*100 + TALENT:ARG:常時Ａ肛塞*50
	SIF COND("電源BOX", ARG)
		LOCAL += 500

	SELECTCASE CFLAG:ARG:好感度
	CASE IS >= 2500
		LOCAL += 300
	CASE IS >= 1500
		LOCAL += 200
	CASE IS >= 500
		LOCAL += 100
	ENDSELECT

	SIF TEQUIP:ARG:媚薬
		LOCAL += 30 * TEQUIP:ARG:媚薬

	LOCAL = LOCAL * (CFLAG:ARG:好感度 + 1000) / 2000

	SELECTCASE LOCAL
	CASE IS < 3000

	;MAX 6500
	CASE IS < 10000
		LOCAL = 3000 + (LOCAL - 3000)/2
	CASEELSE
		LOCAL = 6500 + (LOCAL - 6500)/4
	ENDSELECT

	SIF CFLAG:躁动难忍
		LOCAL += 1000

	PALAM:ARG:欲情 += LIMIT(LOCAL, 0, 30000)

	;-------------------------------------------------
	;愛液処理(欲情)
	;-------------------------------------------------
	IF TALENT:ARG:男性 == 0
		LOCAL = 0
		;欲情の値に応じてＶ潤増加
		SELECTCASE PALAM:ARG:欲情
		;MAX100
		CASE IS < 500
			LOCAL += PALAM:ARG:欲情 / 5
		;MAX500
		CASE IS < 3000
			LOCAL += (PALAM:ARG:欲情 - 500) * 4 / 25 + 100
		;MAX3000
		CASE IS < 10000
			LOCAL += (PALAM:ARG:欲情 - 3000) * 5 / 14 + 500
		CASEELSE
			LOCAL += 3000
		ENDSELECT

		;情緒に応じてＶ潤増加
		SELECTCASE MOOD_HEART()
		CASE 2
			LOCAL += 100
		CASE 3
			LOCAL += 500
		CASE 4
			LOCAL += 1000
		CASE 5
			LOCAL += 1500
		CASE IS >= 6
			LOCAL += 3000
		ENDSELECT

		LOCAL += MARK:ARG:淫紋*100

		;振動棒を入れている
		IF TALENT:ARG:常時Ｖ振動棒
			LOCAL += 100
			;電源BOXまで使って楽しんでいる場合
			SIF COND("電源BOX", ARG)
				LOCAL += 400
		ENDIF

		;人形判定
		SIF COND("種族：人形", ARG)
			LOCAL += 500

		IF TALENT:ARG:容易濕
			LOCAL = UP_PALAMLV(LOCAL) + 100
		ELSEIF TALENT:ARG:不易濕
			LOCAL = DOWN_PALAMLV(LOCAL)
		ENDIF

		PALAM:ARG:Ｖ潤 += LIMIT(LOCAL, 0, 6000)
	ENDIF

	LOCAL = 0
	;いくつかの条件でＡ潤追加
	IF TALENT:ARG:腸液分泌体質
		;欲情の値に応じてＡ潤増加
		SELECTCASE PALAM:ARG:欲情
		CASE IS < 500
		;MAX100
		CASE IS < 3000
			LOCAL += (PALAM:ARG:欲情 - 500) / 25
		;MAX500
		CASE IS < 10000
			LOCAL += (PALAM:ARG:欲情 - 3000) * 2 / 35 + 100
		CASEELSE
			LOCAL += 500
		ENDSELECT
	ENDIF
	;肛塞を入れているなら
	SIF TALENT:ARG:常時Ａ肛塞
		LOCAL += 100

	PALAM:ARG:Ａ潤 += LIMIT(LOCAL, 0, 6000)

CASE "調教開始前Ｂ"
	;開始前の経験を記憶
	CALL RESET_EXP_GAIN, ARG
	;開始前のABLを記憶
	FOR LCOUNT, 0, 100
		TCVAR:ARG:(LCOUNT + 800) = ABL:ARG:LCOUNT
	NEXT
	;満足格子を重置
	CFLAG:ARG:満足度 = 0
	;避孕套フラグを重置
	CFLAG:ARG:套套内精液 = 0

	;以下はMASTERでは設定不要
	SIF ARG == MASTER
		RETURN 0

	CALL RESET_CHOSECOM, ARG
	CALL GET_EXABL, ARG
	CALL GET_EXTALENT, ARG

	CALL CHECK_COM_ABLE, ARG

CASE "調教開始前Ｃ"
	;外套は脱がせる
	SIF CHECK_OTHER("外套", ARG)
		CALL RESET_OTHER, "外套", ARG
	;殆どの指令で明らかになるので最初からONにしちゃう
	CALL SETFLAG_DAILY, "胖次形状確認", ARG
	CALL SETFLAG_DAILY, "胸罩形状確認", ARG
	CFLAG:ARG:股間確認済 = 1

CASE "ターン開始"
	VARSET NOWEX:ARG:0
	VARSET TCVAR:ARG:0, 0, 0, 30
	VARSET TCVAR:ARG:0, 0, 120, 140
	VARSET CUP:ARG:0
	VARSET SOURCE:ARG:0
	VARSET DOWNBASE:ARG:0
	VARSET UP

	;ターン開始時に推倒ていたかを記録
	TCVAR:ARG:開始時推倒 = TEQUIP:ARG:推倒

	;EXPの増分表示のために、現在的値を記録
	FOR LCOUNT, 0, 100
		TCVAR:ARG:(LCOUNT + 700) = EXP:ARG:LCOUNT
	NEXT

	SIF PENIS(ARG) == 0
		CALL RESET_STAIN_EX, "Ｐ", ARG

	;特殊なPLAYの初期化
	;狂野摇摆
	SIF COND("前Ｔ調教者") != PLAYER || COND("前Ｔ対象") != TARGET
		TEQUIP:ARG:特殊行動 = 0
	;二本フィスト
	SELECTCASE SELECTCOM
	CASE 141 TO 143

	CASEELSE
		CLEARBIT TEQUIP:ARG:特殊行動, 1
	ENDSELECT

	;両穴くぱぁ
	SELECTCASE SELECTCOM
	CASE 13, 14

	CASEELSE
		CLEARBIT TEQUIP:ARG:特殊行動, 4
	ENDSELECT

CASE "ターン終了"
	;今回の指令で得たUPとNOWEXを保存し、SOURCEの合計値(TCVAR:660～689)を初期化する
	CALL SET_PREVUP, ARG
	CALL SET_PREVEX, ARG
	VARSET TCVAR:ARG:0, 0, 660, 690

	CALL SETFLAG, "属性", ARG
	CALL GET_EXTALENT, ARG
	CALL GET_EXABL2, ARG
	SIF PENIS(ARG) == 0
		CALL RESET_STAIN_EX, "Ｐ", ARG
	;ターン追加
	SIF ARG == TARGET || ARG == MASTER || SELECTCOM:1 >= 0 || SELECTCOM:2 >= 0
		TCVAR:ARG:回合数 += 1
	;推倒確率補正の変動
	SIF TCVAR:ARG:推倒頻度補正 > 0 && TEQUIP:ARG:推倒 == 0
		TCVAR:ARG:推倒頻度補正 -= 1

	;精液浣腸
	IF CONFIG("精液浣腸") && BASE:ARG:排泄物 && COND("精液浣腸", ARG) + NOWEX:ARG:Ａ中出し
		BASE:ARG:排泄欲 += NOWEX:ARG:Ａ中出し量*100 + NOWEX:ARG:Ａ絶頂*100 + NOWEX:ARG:絶頂数合計*100
		;精液浣腸フラグＯＮ
		TEQUIP:ARG:精液浣腸 = 1
		SIF TEQUIP:ARG:浣腸 == 0
			TEQUIP:ARG:浣腸 = 1
	ENDIF
	;嘔吐感
	SIF BASE:ARG:嘔吐感 && TEQUIP:ARG:深喉 == 0 && SELECTCOM != TNUM("強制口交")
		BASE:ARG:嘔吐感 = MAX(BASE:ARG:嘔吐感 - 1 - RAND:2, 0)

	;いまのところ、尿道探针は取り除く
	TEQUIP:ARG:尿道探针 = 0

	;絶頂しているなら、連続絶頂コンボ数を変化させる
	IF NOWEX:ARG:絶頂数合計
		PALAM:ARG:連続絶頂COMBO数 += (NOWEX:ARG:Ｃ絶頂 + NOWEX:ARG:尿道絶頂 > 0) + (NOWEX:ARG:Ｖ絶頂 > 0) + (NOWEX:ARG:Ａ絶頂 > 0) + (NOWEX:ARG:Ｂ絶頂 > 0) + (NOWEX:ARG:Ｍ絶頂 > 0)
		PALAM:ARG:補正値 += NOWEX:ARG:絶頂数合計
		EX:ARG:連続絶頂 = MAX(EX:ARG:連続絶頂, PALAM:ARG:連続絶頂COMBO数)
	;絶頂しなかった場合コンボ終了
	ELSE
		PALAM:ARG:連続絶頂COMBO数 = 0
		PALAM:ARG:補正値 /= 2
	ENDIF
	;喝套内精液したなら套套内精液を0にする
	IF COND("喝套内精液フラグ", ARG)
		ITEM:套套内精液 = 0
		FOR LCOUNT, 1, CHARANUM
			SIF CSTR:LCOUNT:避孕套履歴 != ""
				CSTR:LCOUNT:避孕套履歴 += "喝套内精液/"
		NEXT
	ENDIF

	;このターンの挿入等の状態を記録する
	CALL SET_PREVPLAY, ARG

	;イベントフラグはターン開始時と終了時の両方で重置
	TCVAR:ARG:イベント = 0

CASE "射精ゲージ"
	LOCAL = 10000 + LIMIT(ABL:ARG:技巧 - 1, 0, 20)*1000
	;早漏or遅漏
	IF TALENT:ARG:早漏 > 0
		LOCAL = MAX(LOCAL/(TALENT:ARG:早漏 + 1), 5000)
	ELSEIF TALENT:ARG:遅漏
		LOCAL *= TALENT:ARG:遅漏 + 1
	ENDIF

	;射精ゲージ決定
	MAXBASE:ARG:絶頂 = LOCAL

	;射精量の決定基準…だいたい１万orMAXBASE:絶頂。射精ゲージが増えると勿論増えていく。
	LOCAL = MAX(MULTIPLY(MAXBASE:ARG:絶頂, 70), 10000)

	EJAC:ARG = MIN(LOCAL, MAXBASE:ARG:絶頂)
	;射精時快感許容値
	MAXBASE:ARG:快感許容値男性 = EJAC:ARG * 3
CASE "性欲ゲージ"
	BASE:ARG:性欲 = EX:ARG:絶頂数合計 + EX:ARG:射精
	SELECTCASE ABL:ARG:欲望
	CASE 0
		MAXBASE:ARG:性欲 = 0
		BASE:ARG:性欲 = 0
	CASE 1, 2
		MAXBASE:ARG:性欲 = MAX(ABL:ARG:欲望, 1)
	CASE 3, 4
		MAXBASE:ARG:性欲 = 3
	CASE 5, 6
		MAXBASE:ARG:性欲 = 5
	CASE 7, 8
		MAXBASE:ARG:性欲 = 7
	CASE 9, 10
		MAXBASE:ARG:性欲 = 9
	CASEELSE
		MAXBASE:ARG:性欲 = 9 + ABL:ARG:欲望/5
	ENDSELECT
	IF MAXBASE:ARG:性欲
		SIF TALENT:ARG:好色
			MAXBASE:ARG:性欲 += 1
		SIF TALENT:ARG:淫乱
			MAXBASE:ARG:性欲 += 3
	ENDIF
	MAXBASE:ARG:性欲 += MARK:ARG:淫紋
CASE "精液欲ゲージ"
	SELECTCASE ABL:ARG:精液中毒
	CASE 0 TO 5
		MAXBASE:ARG:精液欲 = ABL:ARG:精液中毒*3
	CASE 6 TO 10
		MAXBASE:ARG:精液欲 = 10 + ABL:ARG:精液中毒
	CASEELSE
		MAXBASE:ARG:精液欲 = 20 + ABL:ARG:精液中毒/5
	ENDSELECT

	SIF ABL:ARG:精液中毒
		MAXBASE:ARG:精液欲 += MARK:ARG:淫紋
	SIF TALENT:ARG:精液弱点
		MAXBASE:ARG:精液欲 += 5

	BASE:ARG:精液欲 = EXP_GAIN("精液経験", ARG)

	IF ABL:ARG:精液中毒 == 0
		MAXBASE:ARG:精液欲 = 0
		BASE:ARG:精液欲 = 0
	ENDIF
CASE "体勢戻し"
	;時間を経過させない指令なら変化无
	SIF NOTTIME_PLAY(SELECTCOM)
		RETURN 0

	;面部騎乗管理
	SELECTCASE SELECTCOM
	CASE 1, 9, 99, 144, 282
	;奉仕系指令は実行値依存
	CASE 90 TO 92, 97, 105
		SIF TALENT:男性 || (TCVAR:干劲 < 30 && ABL:欲望 + ABL:施虐属性 < 5)
			TEQUIP:面部騎乗 = 0
	CASE 95
		SIF PENIS(PLAYER) == 0 || (TCVAR:干劲 < 30 && ABL:欲望 + ABL:施虐属性 < 5)
			TEQUIP:面部騎乗 = 0
	CASEELSE
		TEQUIP:面部騎乗 = 0
	ENDSELECT
	SIF TEQUIP:推倒 == 0
		TEQUIP:面部騎乗 = 0

	;六九式管理
	SIF CHECK_EQUIP_69(SELECTCOM) == 0
		CVARSET TEQUIP, GETNUM(TEQUIP, "六九式")

	;深喉管理
	SELECTCASE SELECTCOM
	CASE 91, 140, 150
		;フラグとTEQUIPが分かれているのは、射精後などにTEQUIP:深喉が０となっている時でも参照するため
		SIF TEQUIP:深喉
			CALL SETFLAG, "深喉フラグ", TARGET
	CASE 138
		SIF CHECK_COM("口内放尿") && TEQUIP:深喉
			CALL SETFLAG, "深喉フラグ", TARGET
	CASEELSE
		SELECTCASE TEQUIP:六九式
		CASE 91, 150
		CASEELSE
			TEQUIP:深喉 = 0
		ENDSELECT
	ENDSELECT

	SIF CHECK_COM("結腸責め") == 0
		TEQUIP:結腸責め = 0

	;挿入解除判定
	CALL CHECK_INSERT, "解除判定"

CASE "追加のSOURCE"
	VARSET LOCAL
	;精液中毒による補正
	IF PENIS(PLAYER) && ABL:ARG:精液中毒
		LOCAL = ABL:ARG:精液中毒
		SELECTCASE SELECTCOM
		CASE 120 TO 129
			LOCAL:1 = 50
		CASE 6, 90, 93 TO 100
			LOCAL:1 = 200
		CASE 65, 75
			LOCAL:1 = 300
		CASE 91, 92, 140
			LOCAL:1 = 500
		ENDSELECT
	ENDIF
	IF LOCAL:1
		SELECTCASE LOCAL
		CASE 1
			SOURCE:ARG:充足 += LOCAL:1
			TIMES SOURCE:ARG:達成感, 1.50
			TIMES SOURCE:ARG:屈従, 1.50
		CASE 2
			SOURCE:ARG:充足 += LOCAL:1 * 2
			TIMES SOURCE:ARG:達成感, 2.00
			TIMES SOURCE:ARG:屈従, 2.00
		CASE 3
			SOURCE:ARG:充足 += LOCAL:1 * 3
			TIMES SOURCE:ARG:達成感, 2.50
			TIMES SOURCE:ARG:屈従, 2.50
		CASE 4
			SOURCE:ARG:充足 += LOCAL:1 * 4
			TIMES SOURCE:ARG:達成感, 3.00
			TIMES SOURCE:ARG:屈従, 3.00
		CASE 5
			SOURCE:ARG:充足 += LOCAL:1 * 5
			TIMES SOURCE:ARG:達成感, 3.50
			TIMES SOURCE:ARG:屈従, 3.50
		ENDSELECT
	ENDIF
;特殊な行動
CASE "狂野摇摆"
	IF CHECK_COM("狂野摇摆", ARG)
		SETBIT TEQUIP:ARG:特殊行動, 0
	ELSE
		CLEARBIT TEQUIP:ARG:特殊行動, 0
	ENDIF
CASE "二本フィスト"
	SETBIT TEQUIP:ARG:特殊行動, 1

CASE "両穴くぱぁ"
	SETBIT TEQUIP:ARG:特殊行動, 4
CASE "飲尿待機"
	SETBIT TEQUIP:ARG:特殊行動, 5

CASE "撃沈"
	BASE:ARG:精力 = 0
	;ASSIPLAY = 0
	;PLAYER = MASTER
	;挿入しているなら解除
	CALL RESET_INSERT, ARG
	SIF TEQUIP:ARG:Ｗ推倒
		CALL SETFLAG, "Ｗ推倒解除"
	TEQUIP:ARG:推倒 = 0
	IF PLAYER == ARG && SELECTCOM:2 >= 0
		TEQUIP:推倒 = 0
		TEQUIP:六九式 = 0
		SWAP SELECTCOM, SELECTCOM:2
		SWAP PREVCOM, PREVCOM:2
		SELECTCOM:2 = -1
	ENDIF

CASE "助手相手の恋慕外し開始"
;領帯ミングとしては、"調教指令のCOMABLEを格子する時(@SHOW_STATUS)"と、"指令を選んだ時(@EVENTCOM)"に恋慕が外れ、
;@SHOW_USERCOM表示時、指令の終了時(@EVENTCOMEND)、調教終了時(@EVENTEND)で復帰させます。
	SIF ASSIPLAY == 0
		RETURN 0

	SIF TALENT:相思相愛
		CALL SET_CEVENT, "助手調教での素質変化：相思相愛外し"
	SIF TALENT:恋慕
		CALL SET_CEVENT, "助手調教での素質変化：恋慕外し"

	TALENT:相思相愛 = 0
	TALENT:恋慕 = 0

CASE "助手相手の恋慕外し終了"
	SIF CEVENT("助手調教での素質変化：相思相愛外し")
		TALENT:相思相愛 = 1
	SIF CEVENT("助手調教での素質変化：恋慕外し")
		TALENT:恋慕 = 1

	CALL DEL_CEVENT_GROUP, "助手調教での素質変化"

CASE "今回指令"
	;-------------------------------------------------
	;今回の指令をPREVCOMに記録する
	;-------------------------------------------------
	PREVCOM = SELECTCOM
	PREVCOM:4 = SELECTCOM:4

	;-------------------------------------------------
	;今回選んだ指令をCHOSECOMに記録する
	;-------------------------------------------------
	CALL SET_CHOSECOM, TARGET, SELECTCOM
	;六九式の選択指令も選んだこととする
	SIF TEQUIP:六九式
		CALL SET_CHOSECOM, TARGET, TEQUIP:六九式
	;助手も参加している場合には、助手の前回指令＆選択した指令も記録
	CALL SET_CHOSECOM, TARGET:1, SELECTCOM:1

	;-------------------------------------------------
	;今回選んだ指令名をCSTR:SELECTCOM履歴に記録する
	;-------------------------------------------------
	CALL SET_SELECTCOMS, TARGET, STR:今回指令

	STR:助手の前回指令 =
	IF SELECTCOM:1 >= 0
		SELECTCASE SELECTCOM:1
		CASE TNUM("舐陰")
			STR:助手の前回指令 = 面部騎乗
		CASE TNUM("舐肛")
			STR:助手の前回指令 = Ａ面部騎乗
		CASE 90 TO 119
			IF SELECTCOM == SELECTCOM:1
				STR:前回指令 = Ｗ%TRAINNAME_EX(SELECTCOM:1)%
			ELSE
				STR:助手の前回指令 = %TRAINNAME_EX(SELECTCOM:1)%
			ENDIF
		CASE TNUM("奉仕舐陰")
			STR:助手の前回指令 = 舔陰部
		CASE TNUM("正常位奉仕")
			IF SELECTCOM == TNUM("Ａ後背位奉仕")
				STR:前回指令 = 二穴挿入
			ELSE
				STR:助手の前回指令 = %TRAINNAME_EX(SELECTCOM:1)%
			ENDIF
		CASE TNUM("Ａ後背位奉仕")
			IF SELECTCOM == TNUM("正常位奉仕")
				STR:前回指令 = 二穴挿入
			ELSE
				STR:助手の前回指令 = %TRAINNAME_EX(SELECTCOM:1)%
			ENDIF
		;助手の行動を記述しない場合
		CASE 60 TO 79
			IF SELECTCOM >= 60 && SELECTCOM <= 79
				STR:前回指令 = 二穴挿入
			ELSE
				STR:助手の前回指令 = %TRAINNAME_EX(SELECTCOM:1)%
			ENDIF
		CASEELSE
			STR:助手の前回指令 = %TRAINNAME_EX(SELECTCOM:1)%
		ENDSELECT
		IF STR:助手の前回指令 != ""
			STR:前回指令 = %STR:前回指令% ＆ %STR:助手の前回指令%
			CALL SET_SELECTCOMS, ASSI, STR:助手の前回指令
		ELSE
			CALL SET_SELECTCOMS, ASSI, STR:前回指令
		ENDIF
	ELSE
		CALL SET_SELECTCOMS, ASSI, "助手のお仕事"
	ENDIF

	;絶頂具合の表示
	;同時絶頂
	IF STRLENS(STR:同時絶頂)
		STR:前回指令における絶頂 = [%STR:同時絶頂%]
	;こっちは誰か一人しか絶頂していない
	ELSEIF STRLENS(STR:対象の絶頂) || STRLENS(STR:助手の絶頂) || STRLENS(STR:調教者の絶頂)
		STR:前回指令における絶頂 = [%STR:対象の絶頂%%STR:助手の絶頂%%STR:調教者の絶頂%]
	ELSE
		STR:前回指令における絶頂 =
	ENDIF
	;不要な文字列を初期化
	STR:対象の絶頂 =
	STR:助手の絶頂 =
	STR:調教者の絶頂 =
	STR:同時絶頂 =
	STR:実行条件 =
	STR:実行値 =

CASE "調教終了"
	BASE:ARG:精力 = MAX(BASE:ARG:精力, 0)
	IF STATE("具現", ARG)
		CALL REMOVE_STATE, ARG, "具現"
	ELSEIF STATE("阴茎陰核化", ARG)
		CALL REMOVE_STATE, ARG, "阴茎陰核化"
	ENDIF

	;筋弛緩剤の効果消失
	IF GETBIT(TEQUIP:ARG:筋弛緩剤, 0)
		IF TALENT:ARG:薬毒耐性
			ABL:ARG:Ａ拡張 -= 1
		ELSE
			ABL:ARG:Ａ拡張 -= 2
		ENDIF
		CLEARBIT TEQUIP:ARG:筋弛緩剤, 0
	ENDIF
	IF GETBIT(TEQUIP:ARG:筋弛緩剤, 2)
		IF TALENT:ARG:薬毒耐性
			ABL:ARG:Ｖ拡張 -= 1
		ELSE
			ABL:ARG:Ｖ拡張 -= 2
		ENDIF
		CLEARBIT TEQUIP:ARG:筋弛緩剤, 2
	ENDIF

	CALL GET_EXABL, ARG
	CALL CHECK_FAV_ONANIE, ARG
	CALL CHECK_FAV_POSITION, ARG

;ここでのフラグは、キチンと認識しているか、がポイント
CASE "処女喪失フラグ"
	SETBIT TCVAR:ARG:イベント, 0
CASE "処女簒奪フラグ"
	SETBIT TCVAR:ARG:イベント, 1
CASE "童貞喪失フラグ"
	SETBIT TCVAR:ARG:イベント, 2
CASE "童貞狩猎フラグ"
	SETBIT TCVAR:ARG:イベント, 3
;上のほうにある"清洁口交"内でもONになる
CASE "清洁口交フラグ"
	SETBIT TCVAR:ARG:イベント, 4
;上のほうにある"清洁口交"内でもONになる
CASE "Ａ清洁口交フラグ"
	SETBIT TCVAR:ARG:イベント, 5
CASE "自慰フラグ"
	SETBIT TCVAR:ARG:イベント, 6
;上のほうにある"清洁舔阴"内でもONになる
CASE "清洁舔阴フラグ"
	SETBIT TCVAR:ARG:イベント, 7
CASE "子宮責めフラグ"
	SETBIT TCVAR:ARG:イベント, 8
CASE "Ａ奉仕FLAG"
	SETBIT TCVAR:ARG:イベント, 9
CASE "精液清洁舔阴フラグ"
	SETBIT TCVAR:ARG:イベント, 10

;穿環用にフラグ確保
CASE "陰蒂環フラグ"
	SETBIT TCVAR:ARG:イベント, 11
CASE "陰唇環フラグ"
	SETBIT TCVAR:ARG:イベント, 12
CASE "恥丘穿環フラグ"
	SETBIT TCVAR:ARG:イベント, 13
CASE "乳环フラグ"
	SETBIT TCVAR:ARG:イベント, 14
CASE "尿道穿環フラグ"
	SETBIT TCVAR:ARG:イベント, 15
CASE "肚脐环フラグ"
	SETBIT TCVAR:ARG:イベント, 16

CASE "穿環ＯＮフラグ"
	SETBIT TCVAR:ARG:イベント, 19
CASE "鎮痛麻酔フラグ"
	SETBIT TCVAR:ARG:イベント, 20
;これについては"ボトムを露出：テ接吻ト有些", "ボトムを露出：テ接吻ト没有"内でも同様のフラグ立てを行う
CASE "ボトムを露出させた"
	SETBIT TCVAR:ARG:イベント, 21
CASE "Ａ処女喪失フラグ"
	SETBIT TCVAR:ARG:イベント, 22
CASE "Ａ処女簒奪フラグ"
	SETBIT TCVAR:ARG:イベント, 23
CASE "喝母乳フラグ"
	SETBIT TCVAR:ARG:イベント, 24
;上のほうにある"飲尿"内でもONになる
CASE "飲尿フラグ"
	SETBIT TCVAR:ARG:イベント, 25
	;"尿飲み干しフラグ"
	SIF CHECK("口内放尿", ARG)
		SETBIT TCVAR:ARG:イベント２, 2
CASE "ながら自慰フラグ"
	SETBIT TCVAR:ARG:イベント, 26
CASE "打屁股性交フラグ"
	SETBIT TCVAR:ARG:イベント, 27
CASE "マーキングフラグ"
	SETBIT TCVAR:ARG:イベント, 28
CASE "うっかり子宮挿入フラグ"
	SETBIT TCVAR:ARG:イベント, 29
CASE "腋舐めフラグ"
	SETBIT TCVAR:ARG:イベント, 30
CASE "腋見せフラグ"
	SETBIT TCVAR:ARG:イベント, 31
CASE "膣内浴尿フラグ"
	SETBIT TCVAR:ARG:イベント, 32
CASE "子宮内浴尿フラグ"
	SETBIT TCVAR:ARG:イベント, 33
CASE "温泉浣腸フラグ"
	SETBIT TCVAR:ARG:イベント, 34
CASE "乳内浴尿フラグ"
	SETBIT TCVAR:ARG:イベント, 35
CASE "深喉フラグ"
	SETBIT TCVAR:ARG:イベント, 36
CASE "挿入前暴発フラグ"
	SETBIT TCVAR:ARG:イベント, 37
CASE "具現化ＯＮフラグ"
	SETBIT TCVAR:ARG:イベント, 38
CASE "阴茎陰核化フラグ"
	SETBIT TCVAR:ARG:イベント, 39
CASE "尿道性感フラグ"
	SETBIT TCVAR:ARG:イベント, 40
CASE "膀胱内浴尿フラグ"
	SETBIT TCVAR:ARG:イベント, 41
CASE "追加接吻フラグ"
	SETBIT TCVAR:ARG:イベント, 42
;上のほうにある"清洁舔A"内でもONになる
CASE "清洁舔Aフラグ"
	SETBIT TCVAR:ARG:イベント, 43
;上のほうにある"清洁口交"内でもONになる
CASE "尿清洁口交フラグ"
	SETBIT TCVAR:ARG:イベント, 44
;上のほうにある"清洁舔阴"内でもONになる
CASE "おしっこ清洁舔阴フラグ"
	SETBIT TCVAR:ARG:イベント, 45
CASE "恥垢清洁口交フラグ"
	SETBIT TCVAR:ARG:イベント, 46
;上のほうにある"清洁舔阴"内でもONになる
CASE "恥垢清洁舔阴フラグ"
	SETBIT TCVAR:ARG:イベント, 47
CASE "足舐めフラグ"
	SETBIT TCVAR:ARG:イベント, 48
CASE "受精確認フラグ"
	SETBIT TCVAR:ARG:イベント, 49
CASE "套套内射精フラグ"
	SETBIT TCVAR:ARG:イベント, 50
CASE "喝套内精液フラグ"
	SETBIT TCVAR:ARG:イベント, 51
CASE "性転換フラグ"
	SETBIT TCVAR:ARG:イベント, 52
CASE "締め付けフラグ"
	SETBIT TCVAR:ARG:イベント, 53
CASE "阴茎接吻フラグ"
	SETBIT TCVAR:ARG:イベント, 54
CASE "展示肉棒フラグ"
	SETBIT TCVAR:ARG:イベント, 55
CASE "万謝的亲吻フラグ"
	SETBIT TCVAR:ARG:イベント, 56
CASE "尿道処女喪失フラグ"
	SETBIT TCVAR:ARG:イベント, 57
CASE "尿道処女簒奪フラグ"
	SETBIT TCVAR:ARG:イベント, 58
CASE "口交フラグ"
	SETBIT TCVAR:ARG:イベント, 59
CASE "舔足奉仕FLAG"
	SETBIT TCVAR:ARG:イベント, 60
CASE "結腸責めフラグ"
	SETBIT TCVAR:ARG:イベント, 61
CASE "尿道穿環フラグ"
	SETBIT TCVAR:ARG:イベント, 62

CASE "自我颜射フラグ"
	SETBIT TCVAR:ARG:イベント２, 0
CASE "自我口内射精フラグ"
	SETBIT TCVAR:ARG:イベント２, 1
CASE "尿飲み干しフラグ"
	SETBIT TCVAR:ARG:イベント２, 2
CASE "初中出し受け入れフラグ"
	SETBIT TCVAR:ARG:イベント２, 3
CASE "肛門拉珠拔出FLAG"
	SETBIT TCVAR:ARG:イベント２, 4
CASE "尿道布ル引き抜きフラグ"
	SETBIT TCVAR:ARG:イベント２, 5
CASE "剃毛フラグ"
	SETBIT TCVAR:ARG:イベント２, 6
CASE "Ｐバインド弱体フラグ"
	SETBIT TCVAR:ARG:イベント２, 7
CASE "子宮挿入フラグ"
	SETBIT TCVAR:ARG:イベント２, 8
CASE "擦拭フラグ"
	SETBIT TCVAR:ARG:イベント２, 9
CASE "腹部变形フラグ"
	SETBIT TCVAR:ARG:イベント２, 10
CASE "子宮口露出フラグ"
	SETBIT TCVAR:ARG:イベント２, 11

;-------------------------------------------------
;以下は調教以外
;-------------------------------------------------
CASE "調教外Ｈ終了"
	CALL GET_EXABL2, ARG
	CALL RESETFLAG_CLO, ARG
	;汚れは就这様
	;CALL RESET_STAIN_EX, "老廃物以外全部", ARG
	VARSET TCVAR:ARG:0, 0, 0, 1000
	VARSET TEQUIP:ARG:0, 0, 0, 100
	CALL RESET_EXP_GAIN, ARG
	CALL DEL_CEVENT, "Ｖ完全挿入初達成", ARG

CASE "属性"
	;一度素質などを再格子
	CALL GET_EXTALENT, ARG

	CSTR:ARG:属性 =

	SELECTCASE TALENT:ARG:有男朋友
	CASE 2
		CSTR:ARG:属性 += "人妻/"
	CASE 1
		CSTR:ARG:属性 += "有男朋友/"
	ENDSELECT

	SIF TALENT:ARG:内気
		CSTR:ARG:属性 += "内気/"
	SIF TALENT:ARG:強気
		CSTR:ARG:属性 += "強気/"

	SIF TALENT:ARG:坦率
		CSTR:ARG:属性 += "坦率/"
	SIF TALENT:ARG:傲慢
		CSTR:ARG:属性 += "傲慢/"
	SIF TALENT:ARG:高慢
		CSTR:ARG:属性 += "高慢/"
	SIF TALENT:ARG:謙虚
		CSTR:ARG:属性 += "謙虚/"
	SIF TALENT:ARG:開朗
		CSTR:ARG:属性 += "開朗/"
	SIF TALENT:ARG:冷静
		CSTR:ARG:属性 += "冷静/"
	SIF TALENT:ARG:温柔
		CSTR:ARG:属性 += "温柔/"
	SIF TALENT:ARG:坏心眼
		CSTR:ARG:属性 += "坏心眼/"
	SIF TALENT:ARG:害羞
		CSTR:ARG:属性 += "害羞/"
	SIF TALENT:ARG:不知羞恥
		CSTR:ARG:属性 += "不知羞恥/"
	SIF TALENT:ARG:高贵
		CSTR:ARG:属性 += "高贵/"
	SIF TALENT:ARG:粗野
		CSTR:ARG:属性 += "粗野/"
	SIF TALENT:ARG:聰慧
		CSTR:ARG:属性 += "聰慧/"
	SIF TALENT:ARG:笨蛋
		CSTR:ARG:属性 += "笨蛋/"

	IF TALENT:ARG:男性 == 0
		SELECTCASE AGE(ARG)
		CASE 1
			IF TALENT:ARG:娇小 && TALENT:ARG:萝莉老太婆
				CSTR:ARG:属性 += "萝莉老太婆/"
			ELSE
				CSTR:ARG:属性 += "萝莉/"
			ENDIF
		CASE 2
			IF TALENT:ARG:娇小 && TALENT:ARG:萝莉老太婆
				CSTR:ARG:属性 += "萝莉老太婆/"
			ELSE
				CSTR:ARG:属性 += "少女/"
			ENDIF
		CASE 3
			CSTR:ARG:属性 += "大姐姐/"
		CASEELSE
			CSTR:ARG:属性 += "大人/"
		ENDSELECT
	ENDIF
	SIF COND("伪娘", ARG)
		CSTR:ARG:属性 += "伪娘/"
	SIF TALENT:ARG:男性 && AGE(ARG) == 1
		CSTR:ARG:属性 += "正太/"
	IF TALENT:ARG:貧乳
		CSTR:ARG:属性 += "貧乳/"
	ELSEIF TALENT:ARG:巨乳
		CSTR:ARG:属性 += "巨乳/"
	ENDIF

	SELECTCASE TALENT:ARG:肤色
	CASE 1, 4
		CSTR:ARG:属性 += "褐色肌/"
	CASE 2
		CSTR:ARG:属性 += "色白/"
	CASE 3
		SIF CEVENT("正体偽装", ARG) == 0
			CSTR:ARG:属性 += "青肌/"
	ENDSELECT

	SIF ABL:ARG:施虐属性 >= 3
		CSTR:ARG:属性 += "施虐狂/"
	SIF ABL:ARG:受虐属性 >= 3
		CSTR:ARG:属性 += "受虐狂/"

	IF ARG != MASTER && CHECK_CLO("腋露出", ARG)
		SELECTCASE GETFONT()
		CASE "しねきゃぷしょん"
			CSTR:ARG:属性 += "脇/"
		CASEELSE
			CSTR:ARG:属性 += "腋/"
		ENDSELECT
	ENDIF

	;性器穿環
	SIF TALENT:ARG:陰蒂環 || TALENT:ARG:陰唇環 || TALENT:ARG:乳环 || TALENT:ARG:尿道穿環 || TALENT:ARG:恥丘穿環
		CSTR:ARG:属性 += "性器穿環/"
	;乳頭肥大と巨乳輪は保留
	SIF COND("陥没乳頭", ARG) && TALENT:ARG:男性 == 0
		CSTR:ARG:属性 += "陥没乳頭/"

CASE "恋慕", "淫乱"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	;陥落人数+1。既に恋慕or淫乱だと无
	IF TALENT:ARG:淫乱 == 0 && TALENT:ARG:恋慕 == 0
		FLAG:この周での陥落人数 += 1
		SAVESTR:この周での陥落角色 += @"%CSVCALLNAME(NO:ARG)%/"
		;陥落させたことがない角色？
		IF STRCOUNT(@"/%SAVESTR:陥落角色%/", @"/%CSVCALLNAME(NO:ARG)%/") == 0
			FLAG:陥落人数 += 1
			SAVESTR:陥落角色 += @"%CSVCALLNAME(NO:ARG)%/"
		ENDIF
	ENDIF

	SELECTCASE ARGS
	CASE "恋慕"
		PRINTFORMW %CALLNAME:TARGET%看向這邊的眼神很奇怪……
		PRINTFORMW %CALLNAME:ARG%似乎对跟%CALLNAME:MASTER%的行为感到喜悦……
		SETCOLOR DEF_COLOR("爱心粉紅")
		PRINTFORMW %CALLNAME:ARG%得到了【恋慕】
		TALENT:ARG:恋慕 = 1
		IF TALENT:ARG:叛逆
			SETCOLOR DEF_COLOR("黄色")
			PRINTFORMW %CALLNAME:ARG%不再是【叛逆】了
			TALENT:ARG:叛逆 = 0
		ENDIF
		SIF TALENT:ARG:淫乱 == 0
			CALL SET_CEVENT, "先に恋慕獲得", ARG
	CASE "淫乱"
		PRINTFORMW %CALLNAME:TARGET%看向這邊的眼神很奇怪……
		PRINTFORMW %CALLNAME:ARG%似乎沉溺在%CALLNAME:MASTER%给予的快乐中……
		SETCOLOR DEF_COLOR("爱心粉紅")
		PRINTFORMW %CALLNAME:ARG%獲得了【淫乱】
		TALENT:ARG:淫乱 = 1
		SIF TALENT:ARG:恋慕 == 0
			CALL SET_CEVENT, "先に淫乱獲得", ARG
	ENDSELECT

	RESETCOLOR

CASE "小种马"
	PRINTFORMW %CALLNAME:ARG%獲得了【小种马】的称号
	TALENT:ARG:小种马 = 1

CASE "大种马"
	PRINTFORMW %CALLNAME:ARG%獲得了【大种马】的称号
	TALENT:ARG:小种马 = 2

CASE "胸圍測りなおし"
	FOR LCOUNT, 1, CHARANUM
		IF TALENT:LCOUNT:巨乳
			BASE:LCOUNT:胸圍 = 0
			BASE:LCOUNT:罩杯 = 0
		ENDIF
	NEXT
CASE "道具フラグ調整"
	VARSET ITEMSALES
	FOR LCOUNT, 0, 90
		SIF ITEMNAME:LCOUNT == "" || ITEMPRICE:LCOUNT == 0
			CONTINUE

		SELECTCASE LCOUNT
		;大号的振動棒は振動棒套装を買ってから
		CASE 4 TO 6
			SIF ITEM:振動棒套装 == 0
				CONTINUE
		;添笔：打发时间
		CASE 54
			ITEMSALES:LCOUNT = 1
		;消耗品は５個セットで買う
		CASE 50 TO 59
			SIF MONEY < ITEMPRICE:LCOUNT*5
				CONTINUE
			SIF ITEM:LCOUNT > 95
				CONTINUE
		CASE 60 TO 64
			SIF TALENT:MASTER:男性
				CONTINUE
			SELECTCASE ITEMNAME:LCOUNT
			CASE "口服避孕薬"
				SIF MONEY < ITEMPRICE:LCOUNT*7
					CONTINUE
			CASE "事后避孕药"
				SIF TALENT:MASTER:事后避孕药 >= 7
					CONTINUE
			CASE "生毛薬"
				SIF CONFIG("陰毛") == 0
					CONTINUE
				SIF COND("陰毛", MASTER) >= 7 && COND("腋毛", MASTER) >= 7
					CONTINUE
			CASE "脱毛剤"
				SIF CONFIG("陰毛") == 0
					CONTINUE
				SIF COND("陰毛", MASTER) <= 3 && COND("腋毛", MASTER) <= 3
					CONTINUE
			ENDSELECT
		ENDSELECT

		SIF MONEY < ITEMPRICE:LCOUNT
			CONTINUE
		SIF ITEM:LCOUNT < 99
			ITEMSALES:LCOUNT = 1
	NEXT

CASE "素質から身高と３围を再測定"
	;角色メイク中フラグON
	SETBIT FLAG:状況判定, 13

	IF TALENT:ARG:高大 == 3
		CALL CALC, "高大Ⅲ化", ARG
	ELSEIF TALENT:ARG:高大 == 2
		CALL CALC, "高大Ⅱ化", ARG
	ELSEIF TALENT:ARG:高大
		CALL CALC, "高大化", ARG
	ELSEIF TALENT:ARG:娇小 == 3
		CALL CALC, "娇小Ⅲ化", ARG
	ELSEIF TALENT:ARG:娇小 == 2
		CALL CALC, "娇小Ⅱ化", ARG
	ELSEIF TALENT:ARG:娇小
		CALL CALC, "娇小化", ARG
	ELSE
		CALL CALC, "普通体型化", ARG
	ENDIF

	CALL SETFLAG, "胸圍設定", ARG

	;角色メイク中フラグOFF
	CLEARBIT FLAG:状況判定, 13

CASE "胸圍設定"
	;アンダー胸圍の値には 身高*0.432 (～20代の平均値)を用いる。ただし、腰圍以下にはならない。
	;胸圍の値はアンダー胸圍+罩杯で算出する。
	;AAA（5cm）、AA（7.5cm)、A（10cm）、B（12.5cm）、C（15cm）、D（17.5cm）、E（20cm）、F（22.5cm）、G（25cm）、
	;H（27.5cm)、I（30cm)、J（32.5cm)、K（35cm)、L（37.5cm)、M（40cm)、N（42.5cm)、O（45cm)……
	;とだいたい2.5cm単位で罩杯が推移するものとする。

	;伪娘の場合はAAAA罩杯とする
	IF TALENT:ARG:男性
		CALL CALC, "男乳化", ARG
	;超乳(：31～38)
	ELSEIF TALENT:ARG:巨乳 >= 3
		CALL CALC, "超乳化", ARG
	;爆乳(：24～30)
	ELSEIF TALENT:ARG:巨乳 == 2
		CALL CALC, "爆乳化", ARG
	;巨乳（E～ForGorH：19～23）
	ELSEIF TALENT:ARG:巨乳 == 1
		CALL CALC, "巨乳化", ARG
	;貧乳（～A：～10）
	ELSEIF TALENT:ARG:貧乳
		CALL CALC, "貧乳化", ARG
	;普通（B～D:11～18）
	ELSE
		CALL CALC, "並乳化", ARG
	ENDIF
CASE "胸圍の素質設定"
	SELECTCASE BASE:ARG:罩杯
	CASE IS <= NUM("貧乳の上限")
		TALENT:ARG:貧乳 = 1
		TALENT:ARG:巨乳 = 0
	CASE IS <= NUM("並乳の上限")
		TALENT:ARG:貧乳 = 0
		TALENT:ARG:巨乳 = 0
	CASE IS <= NUM("巨乳の上限")
		TALENT:ARG:貧乳 = 0
		TALENT:ARG:巨乳 = 1
	CASE IS <= NUM("爆乳の上限")
		TALENT:ARG:貧乳 = 0
		TALENT:ARG:巨乳 = 2
	CASEELSE
		TALENT:ARG:貧乳 = 0
		TALENT:ARG:巨乳 = 3
	ENDSELECT
CASE "臀圍設定"
	TALENT:ARG:小尻 = 0
	TALENT:ARG:巨尻 = 0
	;お尻の尺寸
	SELECTCASE COND("巨尻", ARG)
	CASE IS >= 3
		TALENT:ARG:巨尻 = 3
	CASE 2
		TALENT:ARG:巨尻 = 2
	CASE 1
		TALENT:ARG:巨尻 = 1
	CASEELSE
		SIF COND("小尻", ARG)
			TALENT:ARG:小尻 = 1
	ENDSELECT
CASE "阴茎詳細設定"
	SIF TALENT:ARG:男性 || TALENT:ARG:扶她 || TALENT:ARG:具現
		RETURN 0
	;主人の默认は普通で假性
	IF ARG == MASTER
		TALENT:ARG:阴茎 = 1
		TALENT:ARG:包茎 = 1
	ELSE
		SELECTCASE RAND:100
		CASE 99
			TALENT:ARG:阴茎 = 4
		CASE IS >= 95
			TALENT:ARG:阴茎 = 3
		CASE IS >= 70
			TALENT:ARG:阴茎 = 2
		CASE IS >= 10
			TALENT:ARG:阴茎 = 1
		CASEELSE
			TALENT:ARG:阴茎 = 0
		ENDSELECT

		;外見年齢が1だと1LV小さい
		SIF TALENT:ARG:阴茎 > 0 && AGE(ARG) == 1
			TALENT:ARG:阴茎 -= 1

		SELECTCASE RAND:10
		CASE IS <= 2
		;假性
		CASE 3 TO 7
			TALENT:ARG:包茎 = 1
		;真性
		CASEELSE
			TALENT:ARG:包茎 = 2
		ENDSELECT
	ENDIF

CASE "乳頭の詳細設定"
	IF TALENT:ARG:乳頭肥大 == 0 && TALENT:ARG:陥没乳頭 == 0
		;乳頭の尺寸。基本的にはみんな普通…だけど胸部大きい方がでかくなりやすい
		SELECTCASE RANDF(11, BASE:ARG:識別番号) + RANDF(11, BASE:ARG:識別番号 + 1) + TALENT:ARG:巨乳 - TALENT:ARG:男性*2
		CASE IS >= 20
			TALENT:ARG:乳頭肥大 = 2
		CASE IS >= 18
			TALENT:ARG:乳頭肥大 = 1
		CASEELSE
			TALENT:ARG:乳頭肥大 = 0
		ENDSELECT
		;陥没乳頭。基本的にはみんな陥没してない…これも巨乳ほどなりやすい。真性だと可哀そうかもしれないな
		SELECTCASE RANDF(11, BASE:ARG:識別番号 + 2) + RANDF(11, BASE:ARG:識別番号 + 3) + TALENT:ARG:巨乳*2 - TALENT:ARG:男性*3
		CASE IS >= 20
			;基本的には要らないが特殊な設定をする際の保険
			IF TALENT:ARG:乳环
				TALENT:ARG:陥没乳頭 = 1
			ELSE
				TALENT:ARG:陥没乳頭 = 2
			ENDIF
		CASE IS >= 16
			TALENT:ARG:陥没乳頭 = 1
		CASEELSE
			TALENT:ARG:陥没乳頭 = 0
		ENDSELECT
	ENDIF

	SIF TALENT:ARG:巨乳輪
		RETURN 0
	;乳輪の尺寸。これまた基本的にはみんな普通…だけど胸部大きい方がでかくなりやすい
	SELECTCASE RANDF(11, BASE:ARG:識別番号 + 4) + RANDF(11, BASE:ARG:識別番号 + 5) + TALENT:ARG:巨乳*3 - TALENT:ARG:男性*2
	CASE IS >= 24
		TALENT:ARG:巨乳輪 = 3
	CASE IS >= 20
		TALENT:ARG:巨乳輪 = 2
	CASE IS >= 16
		TALENT:ARG:巨乳輪 = 1
	CASEELSE
		TALENT:ARG:巨乳輪 = 0
	ENDSELECT
CASE "陰核の詳細設定"
	SIF TALENT:ARG:陰核肥大 || TALENT:ARG:陰核包茎
		RETURN 0
	;陰核の尺寸。基本的にはみんな普通…だけど稀に巨阴蒂
	SELECTCASE RANDF(11, BASE:ARG:識別番号) + RANDF(11, BASE:ARG:識別番号 + 1)
	CASE IS >= 20
		TALENT:ARG:陰核肥大 = 2
	CASE IS >= 18
		TALENT:ARG:陰核肥大 = 1
	CASEELSE
		TALENT:ARG:陰核肥大 = 0
	ENDSELECT
	;陰核包茎。基本的にはみんな假性なので、真性か否か
	SELECTCASE RANDF(11, BASE:ARG:識別番号 + 2) + RANDF(11, BASE:ARG:識別番号 + 3)
	CASE IS >= 18
		TALENT:ARG:陰核包茎 = 1
	CASEELSE
		TALENT:ARG:陰核包茎 = 0
	ENDSELECT

CASE "天性の素質の設定"
	SIF CSTR:ARG:初期变量 != "" || ARG == MASTER
		RETURN 0

	SELECTCASE RAND:100
	CASE IS <= 79
		TALENT:ARG:天性の舌靈活 = 0
	CASE IS <= 89
		TALENT:ARG:天性の舌靈活 = 1
	CASE IS <= 94
		TALENT:ARG:天性の舌靈活 = 2
	CASEELSE
		TALENT:ARG:天性の舌靈活 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の舌靈活") ) > TALENT:ARG:天性の舌靈活
		TALENT:ARG:天性の舌靈活 = CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の舌靈活") )

	SELECTCASE RAND:100
	CASE IS <= 79
		TALENT:ARG:天性の指靈活 = 0
	CASE IS <= 89
		TALENT:ARG:天性の指靈活 = 1
	CASE IS <= 94
		TALENT:ARG:天性の指靈活 = 2
	CASEELSE
		TALENT:ARG:天性の指靈活 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の指靈活") ) > TALENT:ARG:天性の指靈活
		TALENT:ARG:天性の指靈活 = CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の指靈活") )

	SELECTCASE RAND:100
	CASE IS <= 79
		TALENT:ARG:天性の腰靈活 = 0
	CASE IS <= 89
		TALENT:ARG:天性の腰靈活 = 1
	CASE IS <= 94
		TALENT:ARG:天性の腰靈活 = 2
	CASEELSE
		TALENT:ARG:天性の腰靈活 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の腰靈活") ) > TALENT:ARG:天性の腰靈活
		TALENT:ARG:天性の腰靈活 = CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の腰靈活") )

	SELECTCASE RAND:100
	CASE IS <= 79
		TALENT:ARG:天性の魔乳 = 0
	CASE IS <= 89
		TALENT:ARG:天性の魔乳 = 1
	CASE IS <= 94
		TALENT:ARG:天性の魔乳 = 2
	CASEELSE
		TALENT:ARG:天性の魔乳 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の魔乳") ) > TALENT:ARG:天性の魔乳
		TALENT:ARG:天性の魔乳 = CSVTALENT(NO:ARG, GETNUM(TALENT, "天性の魔乳") )

CASE "名器の設定"
	SIF CSTR:ARG:初期变量 != ""
		RETURN 0
	SIF ARG == MASTER && FLAG:周回数
		RETURN 0

	SELECTCASE RAND:100
	CASE IS <= 69
		TALENT:ARG:Ｖ名器 = 0
	CASE IS <= 84
		TALENT:ARG:Ｖ名器 = 1
	CASE IS <= 94
		TALENT:ARG:Ｖ名器 = 2
	CASEELSE
		TALENT:ARG:Ｖ名器 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "Ｖ名器") ) > TALENT:ARG:Ｖ名器
		TALENT:ARG:Ｖ名器 = CSVTALENT(NO:ARG, GETNUM(TALENT, "Ｖ名器") )

	SELECTCASE RAND:100
	CASE IS <= 69
		TALENT:ARG:Ａ名器 = 0
	CASE IS <= 84
		TALENT:ARG:Ａ名器 = 1
	CASE IS <= 94
		TALENT:ARG:Ａ名器 = 2
	CASEELSE
		TALENT:ARG:Ａ名器 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "Ａ名器") ) > TALENT:ARG:Ａ名器
		TALENT:ARG:Ａ名器 = CSVTALENT(NO:ARG, GETNUM(TALENT, "Ａ名器") )

	SELECTCASE RAND:100
	CASE IS <= 69
		TALENT:ARG:喉名器 = 0
	CASE IS <= 84
		TALENT:ARG:喉名器 = 1
	CASE IS <= 94
		TALENT:ARG:喉名器 = 2
	CASEELSE
		TALENT:ARG:喉名器 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "喉名器") ) > TALENT:ARG:喉名器
		TALENT:ARG:喉名器 = CSVTALENT(NO:ARG, GETNUM(TALENT, "喉名器") )

	SELECTCASE RAND:100
	CASE IS <= 69
		TALENT:ARG:尿道名器 = 0
	CASE IS <= 84
		TALENT:ARG:尿道名器 = 1
	CASE IS <= 94
		TALENT:ARG:尿道名器 = 2
	CASEELSE
		TALENT:ARG:尿道名器 = 3
	ENDSELECT
	SIF CSVTALENT(NO:ARG, GETNUM(TALENT, "尿道名器") ) > TALENT:ARG:尿道名器
		TALENT:ARG:尿道名器 = CSVTALENT(NO:ARG, GETNUM(TALENT, "尿道名器") )

CASE "性器年齢"
	SIF TALENT:ARG:性器年齢
		RETURN 1

	TALENT:ARG:性器年齢 = CSVTALENT(NO:ARG, GETNUM(TALENT, "性器年齢") )
	IF TALENT:ARG:性器年齢 == 0
		TALENT:ARG:性器年齢 = TALENT:ARG:外見年齢

		SELECTCASE RAND:100
		CASE 99
			TALENT:ARG:性器年齢 += 4
		CASE IS >= 96
			TALENT:ARG:性器年齢 += 3
		CASE IS >= 90
			TALENT:ARG:性器年齢 += 2
		CASE IS >= 70
			TALENT:ARG:性器年齢 += 1

		CASE IS <= 4
			TALENT:ARG:性器年齢 -= 3
		CASE IS <= 10
			TALENT:ARG:性器年齢 -= 2
		CASE IS <= 20
			TALENT:ARG:性器年齢 -= 1
		ENDSELECT
		SIF TALENT:ARG:魅力 && RAND:3 == 0
			TALENT:ARG:性器年齢 -= 1
		;処女,非大人なら初期黑木耳化は还是算了ことに
		IF TALENT:ARG:処女 || TALENT:ARG:外見年齢 <= 3
			TALENT:ARG:性器年齢 = LIMIT(TALENT:ARG:性器年齢, 1, 4)
		ELSE
			TALENT:ARG:性器年齢 = LIMIT(TALENT:ARG:性器年齢, 1, 5)
		ENDIF
	ENDIF
CASE "陰毛と腋毛"
	;陰毛の設定(ConfigONで設定されてないとき)
	SIF CONFIG("陰毛と腋毛") == 0
		RETURN 0
	;Configで生えない設定
	IF COND("陰毛の設定", ARG) == 0
		BASE:ARG:陰毛 = 100
		SIF CONFIG("腋毛")
			BASE:ARG:腋毛 = 100
		RETURN 0
	ENDIF
	;陰毛の初期設定
	IF BASE:ARG:陰毛 == 0
		;男性なら自然
		IF TALENT:ARG:男性 && COND("伪娘", ARG) == 0
			BASE:ARG:陰毛 = 600
		;人形or５％で白虎
		ELSEIF COND("種族：人形", ARG) || RAND:20 == 0
			BASE:ARG:陰毛 = 100
		;倒錯的なら、稀に光滑无毛
		ELSEIF TALENT:ARG:倒錯的 && RAND:20 == 0
			BASE:ARG:陰毛 = 300
		;兒童や娇小
		ELSEIF AGE(ARG) == 1 || (TALENT:ARG:娇小 && RAND:3)
			BASE:ARG:陰毛 = 400
			;小只的ら、高確率で白虎
			SIF TALENT:ARG:娇小 && RAND:5 == 0
				BASE:ARG:陰毛 = 100
		;保守的なら、お手入れに抵抗があったり
		ELSEIF TALENT:ARG:保守的 && RAND:10
			IF RAND:5
				BASE:ARG:陰毛 = 600
			ELSE
				BASE:ARG:陰毛 = 700
			ENDIF
		;食い込んでいる衣装の時or好色なら、高確率で保养完毕
		ELSEIF CHECK_CLO("勒紧的", ARG)
			BASE:ARG:陰毛 = 500
		ELSEIF TALENT:ARG:好色 && RAND:10
			BASE:ARG:陰毛 = 500
		ELSE
			BASE:ARG:陰毛 = 600
		ENDIF
		;白虎でない＆本人の好みがある
		IF BASE:ARG:陰毛 >= 200
			SELECTCASE CSTR:ARG:陰毛的喜好
			CASE "白虎"
				BASE:ARG:陰毛 = 100
			CASE "脱毛処理"
				BASE:ARG:陰毛 = 200
			CASE "光滑无毛"
				BASE:ARG:陰毛 = 300
			CASE "剃过留痕"
				BASE:ARG:陰毛 = 306
			CASE "还没長出来", "無髭"
				BASE:ARG:陰毛 = 400
			CASE "保养完毕"
				BASE:ARG:陰毛 = 500
			CASE "自然"
				BASE:ARG:陰毛 = 600
			CASE "随意生長"
				BASE:ARG:陰毛 = 700
			ENDSELECT
		ENDIF
	ENDIF
	;腋毛の初期設定
	IF CONFIG("腋毛") && BASE:ARG:腋毛 == 0
		;男性なら処理しない
		IF TALENT:ARG:男性 && COND("伪娘", ARG) == 0
			SELECTCASE AGE(ARG)
			CASE IS >= 4
				BASE:ARG:腋毛 = 700
			CASE 3
				BASE:ARG:腋毛 = 400
			CASEELSE
				BASE:ARG:腋毛 = 100
			ENDSELECT
		;陰毛が無いなら腋毛も有ません
		ELSEIF BASE:ARG:陰毛 == 0 || RAND:20 == 0
			BASE:ARG:腋毛 = 100
		;兒童や少女なら、高確率で無毛orつるつる
		ELSEIF AGE(ARG) <= 2 || (TALENT:ARG:娇小 && RAND:3)
			SELECTCASE RAND:10 + (AGE(ARG) - 1)*6
			CASE IS <= 7
				BASE:ARG:腋毛 = 100
			CASE 8
				BASE:ARG:腋毛 = 400
			CASE 9 TO 13
				BASE:ARG:腋毛 = 300
			CASE IS >= 14
				BASE:ARG:腋毛 = 200
			ENDSELECT
		;保守的なら、お手入れに抵抗があったり
		ELSEIF TALENT:ARG:保守的 && RAND:10
			BASE:ARG:腋毛 = 700
		;だらしない大人
		ELSEIF AGE(ARG) >= 4 && RAND:3 == 0
			BASE:ARG:腋毛 = 700
		;普通は剃ります
		ELSE
			BASE:ARG:腋毛 = 300
		ENDIF
		;好色or伪娘なら超高確率で腋つるつる
		IF TALENT:ARG:好色 || COND("伪娘", ARG)
			SELECTCASE RAND:100
			CASE IS <= 90
				BASE:ARG:腋毛 = MIN(BASE:ARG:腋毛, 300)
			CASE 91 TO 98
				BASE:ARG:腋毛 = MIN(BASE:ARG:腋毛, 200)
			ENDSELECT
		ENDIF
		;腋毛が生えてる＆本人の好みがある
		IF BASE:ARG:腋毛 >= 200
			SELECTCASE CSTR:ARG:腋毛的喜好
			CASE "無毛"
				BASE:ARG:腋毛 = 100
			CASE "脱毛処理"
				BASE:ARG:腋毛 = 200
			CASE "光滑无毛"
				BASE:ARG:腋毛 = 300
			CASE "自然"
				BASE:ARG:腋毛 = 600
			CASE "随意生長"
				BASE:ARG:腋毛 = 700
			ENDSELECT
		ENDIF
	ENDIF
CASE "陰毛と腋毛の設定初期化"
	;BASE:陰毛 重置
	CVARSET BASE, GETNUM(BASE, "陰毛")
	;BASE:腋毛 重置
	CVARSET BASE, GETNUM(BASE, "腋毛")

CASE "調教知識の選択"
	CALL BLANKLINE
	PRINTFORM 現在%CALLNAME:ARG%
	IF TALENT:ARG:調教知識
		PRINTFORML [%TALENT_NAME(GETNUM(TALENT, "調教知識"), TALENT:ARG:調教知識, ARG)%]附加了
	ELSE
		PRINTFORML 尚未附加知識
	ENDIF
	PRINTFORML 選択哪个知識？
	PRINTFORML （能够獲得的只有一个。如果已经獲得了的话会被替换）
	PRINTFORML  [ 0] 奉仕・愛撫知識　　愛撫或者奉仕行為時発揮効果
	PRINTFORML  [ 1] 教育擅长　　　　　帮助调教对象的技術上升
	PRINTFORML  [ 2] ＳＭPLAY知識　  　ＳＭPLAY非常精通
	PRINTFORML  [ 3] 肛門PLAY知識　肛門使用非常精通
	PRINTFORML  [ 4] 性器拡張知識　　　擅长那里和肛門的拡張方法
	PRINTFORML  [ 5] 大人的玩具学　非常擅长使用道具
	PRINTFORML  [ 6] 露出PLAY知識　  　関于让对方展露出羞耻姿态的知識非常豊富
	PRINTFORML [100] \@ TALENT:ARG:調教知識 ? 不变更 # 不附加 \@
	PRINTFORML [200] 看具体的説明
	CALL INPUT_SELECT, 7, 100, 200
	LOCAL = RESULT
	SELECTCASE LOCAL
	CASE 100
		RETURN 0
	CASE 200
		PRINTFORML ～奉仕・愛撫知識～
		PRINTFORML 拥有该知識的人在向对方使用奉仕或者愛撫指令的時候给予的快感增加五成、恐怖或者反感等负面状况減半
		PRINTFORML
		PRINTFORML ～教育擅長～
		PRINTFORML 拥有该知識的人在被奉仕的時候、如果比对方的技巧高的话～比方说LV(舐陰的话就是舌靈活)高的话、奉仕者獲得的経験増加１
		PRINTFORML (对方在进行口交時如果玩家拥有教育擅长或者舌靈活比对方高的话、对方獲得的口交経験加１）
		PRINTFORML 以及、对方獲得的奉仕快楽経験变为1.5倍
		PRINTFORML
		PRINTFORML ～ＳＭPLAY知識～
		PRINTFORML 使用打屁股之类的ＳＭPLAY系的指令的時候、欲情与屈服等增加五成、恐怖和反感等減半
		PRINTFORML 以及、对象獲得的嗜虐快楽経験和被虐快楽経験变为1.5倍
		PRINTFORML
		PRINTFORML ～肛門PLAY知識～
		PRINTFORML 在使用玩弄对方的菊花的指令時、快Ａ与欲情等增加五成、苦痛与反感等減半
		PRINTFORML
		PRINTFORML ～性器拡張知識～
		PRINTFORML 在向对方的阴部或者菊花里挿入阴茎或者振動棒時、苦痛与恐怖減半、稍微提升拡張経験的増加量
		PRINTFORML
		PRINTFORML ～大人的玩具学～
		PRINTFORML 使用振動棒之类的道具指令時、快楽与欲情等增加五成、恐怖和反感等減半
		PRINTFORML 但是、对于拘束具之类的特殊道具上面、没有ＳＭPLAY知識的加成那么高
		PRINTFORML
		PRINTFORML ～露出PLAY知識～
		PRINTFORML 对方的恥情增加五成、提升露出経験与羞恥快楽経験的獲得量
		PRINTFORML 以及、一定程度上的恥情発生時会在一定范围内、欲情与屈服等增加五成、恐怖和反感等減半
		WAIT
		RESTART
	CASEELSE
		IF TALENT_NAME(GETNUM(TALENT, "調教知識"), TALENT:ARG:調教知識) == TALENT_NAME(GETNUM(TALENT, "調教知識"), POWER(2, LOCAL) )
			PRINTFORMW 没有変更
			RETURN 0
		ELSE
			PRINTFORM ＜%CALLNAME:ARG%
			SIF TALENT:ARG:調教知識
				PRINTFORM 失去了%TALENT_NAME(GETNUM(TALENT, "調教知識"), TALENT:ARG:調教知識, ARG)%、
			TALENT:ARG:調教知識 = 0
			SETBIT TALENT:ARG:調教知識, LOCAL
			PRINTFORMW 獲得了%TALENT_NAME(GETNUM(TALENT, "調教知識"), TALENT:ARG:調教知識, ARG)%＞
		ENDIF
	ENDSELECT
CASE "妊娠中：妊娠発覚直前"
	BASE:ARG:胎児 = CLEARBITS(BASE:ARG:胎児, 0, 10) + 1p6
CASE "妊娠中：妊娠発覚済み"
	BASE:ARG:胎児 = CLEARBITS(BASE:ARG:胎児, 0, 10) + 1p7
CASE "妊娠中：臨月"
	BASE:ARG:胎児 = CLEARBITS(BASE:ARG:胎児, 0, 10) + 1p8
CASE "妊娠中：分娩直前"
	BASE:ARG:胎児 = CLEARBITS(BASE:ARG:胎児, 0, 10) + 1p9
CASE "妊娠中：分娩"
	BASE:ARG:胎児 = CLEARBITS(BASE:ARG:胎児, 0, 10) + 1p10

CASE "妊娠中：息子"
	SETBIT BASE:ARG:胎児, 20

CASE "育児中：育児終了"
	BASE:ARG:育児中 = CLEARBITS(BASE:ARG:育児中, 0, 10) + 1p6
CASE "育児中：息子"
	SETBIT BASE:ARG:育児中, 20
CASE "育児中：孵化中"
	SETBIT BASE:ARG:育児中, 19

;身嗜みの設定
CASE "身嗜み：陰毛光滑无毛"
	SETBIT CFLAG:ARG:身嗜み, 1
CASE "身嗜み：陰毛お手入れ"
	SETBIT CFLAG:ARG:身嗜み, 2
CASE "身嗜み：陰毛自然"
	SETBIT CFLAG:ARG:身嗜み, 3
CASE "身嗜み：腋毛光滑无毛"
	SETBIT CFLAG:ARG:身嗜み, 6
CASE "身嗜み：腋毛自然"
	SETBIT CFLAG:ARG:身嗜み, 7
CASE "身嗜み：Ｖ拡張１ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 11
CASE "身嗜み：Ｖ拡張２ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 12
CASE "身嗜み：Ｖ拡張３ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 13
CASE "身嗜み：Ｖ拡張４ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 14
CASE "身嗜み：Ａ拡張１ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 16
CASE "身嗜み：Ａ拡張２ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 17
CASE "身嗜み：Ａ拡張３ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 18
CASE "身嗜み：Ａ拡張４ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 19
CASE "身嗜み：腸洗浄"
	SETBIT CFLAG:ARG:身嗜み, 21
CASE "身嗜み：Ａ潤滑液"
	SETBIT CFLAG:ARG:身嗜み, 22
CASE "身嗜み：Ｐ準備"
	SETBIT CFLAG:ARG:身嗜み, 26
CASE "身嗜み：Ｖ準備"
	SETBIT CFLAG:ARG:身嗜み, 28
CASE "身嗜み：没穿内褲"
	SETBIT CFLAG:ARG:身嗜み, 31
CASE "身嗜み：尿道拡張１ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 36
CASE "身嗜み：尿道拡張２ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 37
CASE "身嗜み：尿道拡張３ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 38
CASE "身嗜み：尿道拡張４ＬＶ"
	SETBIT CFLAG:ARG:身嗜み, 39
CASE "身嗜み：Ｖ独占"
	SETBIT CFLAG:ARG:身嗜み, 41
CASE "身嗜み：Ａ独占"
	SETBIT CFLAG:ARG:身嗜み, 42
CASE "身嗜み：口独占"
	SETBIT CFLAG:ARG:身嗜み, 43
CASE "身嗜み：接吻独占"
	SETBIT CFLAG:ARG:身嗜み, 44
CASE "身嗜み：Ｐ独占"
	SETBIT CFLAG:ARG:身嗜み, 45
CASE "身嗜み：完全独占"
	SETBIT CFLAG:ARG:身嗜み, 41
	SETBIT CFLAG:ARG:身嗜み, 42
	SETBIT CFLAG:ARG:身嗜み, 43
	SETBIT CFLAG:ARG:身嗜み, 44
	SETBIT CFLAG:ARG:身嗜み, 45
CASE "身嗜み：自慰禁止"
	SETBIT CFLAG:ARG:身嗜み, 46

ENDSELECT

;-------------------------------------------------
;色々と計算する関数(#FUNCTIONではない)
;-------------------------------------------------
@CALC, ARGS, ARG, ARG:1
#DIM LCOUNT
#DIM MEMO_INMOU
#DIM MEMO_SIZE
#DIM MEMO, 100
#DIMS DYNAMIC MEMOS, 10

SELECTCASE ARGS
CASE "性処理でのPLAY内容：項目の頻度変更"
	;阴蒂ックごとに ×→〇→◎→☆→×→… でローテーション
	LOCALS = %NAMES("性処理の採用指令", ARG:1)%
	SIF CANSS(LOCALS, ARG) == 0
		RETURN 0

	MEMOS =
	;禁止指令
	IF STRCOUNT(CSTR:ARG:性処理, @"!%LOCALS%\/")
		MEMOS = %LOCALS%/
	ELSE
		SELECTCASE STRCOUNT(CSTR:ARG:性処理, LOCALS)
		CASE IS >= 5
			MEMOS = !%LOCALS%/
		CASE IS >= 3
			MEMOS = %LOCALS%/%LOCALS%/%LOCALS%/%LOCALS%/%LOCALS%/
		CASE IS >= 1
			MEMOS = %LOCALS%/%LOCALS%/%LOCALS%/
		ENDSELECT
	ENDIF

	;CSTR:性処理 を組み直す
	VARSET LOCALS
	SPLIT CSTR:ARG:性処理, "/", LOCALS
	CSTR:ARG:性処理 = %MEMOS%
	FOR LCOUNT, 0, 100
		SIF LOCALS:LCOUNT == ""
			BREAK
		SELECTCASE STRCOUNT(LOCALS:LCOUNT, NAMES("性処理の採用指令", ARG:1) )
		CASE 0
			CSTR:ARG:性処理 += @"%LOCALS:LCOUNT%\/"
		ENDSELECT
	NEXT
CASE "試験結果算出"
	SIF COND("学生", ARG) == 0
		RETURN 0
	;試験を受ける前の学力をMAXBASEに保存
	MAXBASE:ARG:学力 = BASE:ARG:学力

	;この値が(0, 赤点, 0～29), (1, 下位, 30～44), (2, 並の下, 45～59), (3, 並, 60～79), (4, 優秀, 80～89), (5, 学年上位, 90～)
	LOCAL = 0
	;素質補正
	SIF TALENT:ARG:笨蛋 == 0
		LOCAL += 1
	SIF TALENT:ARG:聰慧
		LOCAL += 1

	SELECTCASE CFLAG:ARG:勉強時間
	;勉強しないと低確率で成績悪化
	CASE 0
		SIF RAND:3 == 0
			LOCAL -= 1
	;勉強した場合
	CASEELSE
		;とりあえず赤点は回避できる
		SIF LOCAL <= 0
			LOCAL += 1
		SIF CFLAG:ARG:勉強時間 >= 5
			LOCAL += 1
		;勉強すると良くなり得る
		SIF COND("成績上昇率", ARG) > RAND:100
			LOCAL += 1
		SIF COND("成績上昇率", ARG) - 100 > RAND:100
			LOCAL += 1
	ENDSELECT

	;過去の試験結果をスライド
	CFLAG:ARG:前々回試験結果 = CFLAG:ARG:前回試験結果
	CFLAG:ARG:前回試験結果 = CFLAG:ARG:試験結果

	;全試験の平均点算出(点数比較でどっちが上かを出すために使うかもしれない)
	;60以上なら学年平均点越えという事で
	SELECTCASE LOCAL
	CASE IS >= 6
		CFLAG:ARG:試験結果 = MIN(95 + RAND:(8 + CFLAG:ARG:勉強時間), 100)
	CASE 5
		CFLAG:ARG:試験結果 = MIN(90 + RAND:(8 + CFLAG:ARG:勉強時間), 100)
	CASE 4
		CFLAG:ARG:試験結果 = MIN(80 + RAND:(8 + CFLAG:ARG:勉強時間), 89)
	CASE 3
		CFLAG:ARG:試験結果 = MIN(60 + RAND:(20 + CFLAG:ARG:勉強時間), 79)
	CASE 2
		CFLAG:ARG:試験結果 = MIN(45 + RAND:(15 + CFLAG:ARG:勉強時間), 59)
	CASE 1
		CFLAG:ARG:試験結果 = MIN(30 + RAND:(15 + CFLAG:ARG:勉強時間), 44)
	CASEELSE
		CFLAG:ARG:試験結果 = LIMIT(RAND:10 + RAND:(20 + CFLAG:ARG:勉強時間), 1, 29)
	ENDSELECT

	;勉強時間と予想点は重置
	CFLAG:ARG:勉強時間 = 0
	CFLAG:ARG:予想点 = 0

	BASE:ARG:学力 = CALCF("推定学力", ARG)

CASE "体力回復"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET
	;上限突破しているときには就这様
	SIF BASE:(ARG:1):体力 > MAXBASE:(ARG:1):体力
		RETURN 0

	BASE:(ARG:1):体力 = MIN(BASE:(ARG:1):体力 + ARG, MAXBASE:(ARG:1):体力)
CASE "体力回復上限無視"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET
	BASE:(ARG:1):体力 += ARG
;時間経過の際など
CASE "体力回復上限まで"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET

	BASE:(ARG:1):体力 = MIN(BASE:(ARG:1):体力 + ARG, MAXBASE:(ARG:1):体力)

CASE "精力回復"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET
	;上限突破しているときには就这様
	SIF BASE:(ARG:1):精力 > MAXBASE:(ARG:1):精力
		RETURN 0

	BASE:(ARG:1):精力 = MIN(BASE:(ARG:1):精力 + ARG, MAXBASE:(ARG:1):精力)
;これは面倒なことが起きるので基本封印
CASE "精力回復上限無視"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET
	BASE:(ARG:1):精力 += ARG
CASE "精力回復上限まで"
	SIF ARG:1 < 0
		RETURN 0
	SIF ARG:1 == 0 && TARGET > 0
		ARG:1 = TARGET

	BASE:(ARG:1):精力 = MIN(BASE:(ARG:1):精力 + ARG, MAXBASE:(ARG:1):精力)

CASE "随机選択"
	IF ARG == 0
		LOCAL = 0
		LOCAL:1 = 0
	ELSEIF RAND:(LOCAL:1) == 0 || ARG:1
		LOCAL = ARG
	ENDIF
	LOCAL:1 += 1
	RETURN LOCAL

CASE "好みのPLAY"
	SOURCE:0:充足 += DOWN_PALAMLV(ARG) + 100
	SOURCE:0:不潔 = MAX(DOWN_PALAMLV(SOURCE:0:不潔) - 500, 0)
	SOURCE:0:逸脱 = MAX(DOWN_PALAMLV(SOURCE:0:逸脱) - 500, 0)
	SOURCE:0:恐惧 = MAX(DOWN_PALAMLV(SOURCE:0:恐惧) - 500, 0)
	SOURCE:0:反感追加 = MAX(DOWN_PALAMLV(SOURCE:0:反感追加) - 500, 0)

CASE "調教ソース"
	SIF ARG == 0
		ARG = 100
	FOR LCOUNT, 0, 22
		SOURCE:LCOUNT += SOURCE:0:LCOUNT * ARG / 100
	NEXT
	;PRINTFORM ARG = {ARG}, DOWNBASE:体力 = {DOWNBASE:体力} →
	DOWNBASE:体力 += DOWNBASE:0:体力 * ARG / 100
	;PRINTFORML DOWNBASE:体力 = {DOWNBASE:体力}
CASE "経験取得"
	;ARG:1に２以上の数字が代入されている場合には獲得経験をARG:1倍する
	;増加前の経験を記録
	FOR LCOUNT, 0, 100
		LOCAL:LCOUNT = EXP:LCOUNT
		MEMO:LCOUNT = EXP:PLAYER:LCOUNT
	NEXT

	;逆調教指令
	SELECTCASE ARG
	CASE 106, 107, 120 TO 129
		SWAP TARGET, PLAYER
	ENDSELECT

	SELECTCASE ARG
	CASE 0
		IF CHECK_COM("接吻") && TEQUIP:接吻 == 0
			EXP:接吻経験 += 1
			EXP:PLAYER:接吻経験 += 1
		ENDIF
		EXP:PLAYER:手淫経験 += 1
	CASE 1
		EXP:PLAYER:舐陰経験 += 1
	CASE 2
		EXP:Ａ経験 += 1
		EXP:PLAYER:手淫経験 += 1
		EXP:PLAYER:玩弄Ａ経験 += 1
		IF COND("結腸責めフラグ")
			EXP:Ａ経験 += 1
			EXP:結腸経験 += 1
		ENDIF
	CASE 3
		EXP:自慰経験 += 1
		;视频拍摄時、室内露出時、野外PLAYでは経験にプラス
		SIF TEQUIP:室内露出PLAY || TEQUIP:攝像機 || TEQUIP:野外PLAY
			EXP:自慰経験 += 1
		;媚薬
		SIF TEQUIP:媚薬
			EXP:自慰経験 += 1
		;絶頂したのなら、経験にBOUNS
		SIF NOWEX:絶頂数合計
			EXP:自慰経験 += 1
		SIF STRCOUNT(CHECK_ONANIE(ARG), "Ｖ")
			EXP:Ｖ経験 += 1
		SIF STRCOUNT(CHECK_ONANIE(ARG), "Ａ")
			EXP:Ａ経験 += 1
		SIF STRCOUNT(CHECK_ONANIE(ARG), "尿")
			EXP:尿道経験 += 1
	CASE 4
		EXP:PLAYER:口交経験 += 1
		IF TEQUIP:推倒
			EXP:PLAYER:喉性交経験 += 1
			EXP:腰靈活経験 += 1
		ENDIF
	CASE 5
		SIF CHECK_COM("揉胸") || CHECK_COM("乳頭指弄り")
			EXP:PLAYER:手淫経験 += 1
		SIF COND("豊穣ＯＮ", PLAYER) && TALENT:男性 == 0 && COND("種族：人形") == 0
			TEQUIP:豊穣 = MIN(TEQUIP:豊穣 + 1, 5)
	CASE 6
		EXP:接吻経験 += 1
		EXP:PLAYER:接吻経験 += 1
	CASE 7
		IF PREVCOM == 6
			EXP:接吻経験 += 1
			EXP:PLAYER:接吻経験 += 1
		ENDIF
		EXP:PLAYER:手淫経験 += 1
	CASE 8
		EXP:Ｖ経験 += 1
		EXP:PLAYER:手淫経験 += 1
	CASE 9
		EXP:Ａ経験 += 1
		EXP:PLAYER:玩弄Ａ経験 += 1
		EXP:PLAYER:Ａ舐め経験 += 1
	CASE 10
		EXP:PLAYER:手淫経験 += 1
		SIF INSERT("尿道挿入", TARGET, PLAYER)
			EXP:PLAYER:自慰経験 += 1
	CASE 11
		EXP:PLAYER:乳交経験 += 1
	CASE 12
		EXP:PLAYER:足交経験 += 1
	CASE 13, 14
		EXP:露出経験 += 2
		;视频拍摄、室内露出、野外PLAYは経験等にプラス
		SIF TEQUIP:攝像機
			EXP:露出経験 += 1
		SIF TEQUIP:室内露出PLAY || TEQUIP:野外PLAY
			EXP:露出経験 += 1
		SIF COND("両穴くぱぁ")
			EXP:露出経験 += 2
	CASE 15
		EXP:尿道経験 += 1
		;指を動かしても大丈夫になるサイズまでは拡張
		IF SIZE("指の直径", PLAYER) > MIN_STR(CONDS("尿道拡張度") )
			CALL SETFLAG, "尿道拡張", SIZE("指の直径", PLAYER), TARGET
		ELSEIF SIZE("指の直径", PLAYER)*4/3 > MIN_STR(CONDS("尿道拡張度") )
			CALL SETFLAG, "尿道拡張", MIN_STR(CONDS("尿道拡張度") ) + 1, TARGET
		ENDIF
		EXP:PLAYER:尿道責め経験 += 1
	CASE 31, 106
		EXP:Ｖ経験 += 1
		IF TEQUIP:振動棒
			;大きいと経験BOUNS
			SIF SIZE("振動棒", TARGET) >= 3
				EXP:Ｖ経験 += 1
			IF SIZE("振動棒", TARGET) >= MAX(ABL:Ｖ拡張 - 1, 2)
				EXP:Ｖ経験 += SIZE("振動棒", TARGET) - ABL:Ｖ拡張 + 1
				CALL SETFLAG, "Ｖ拡張", SIZE("振動棒", TARGET), HARD("振動棒", TARGET)
			ENDIF
			IF ARG == 106
				CALL SETFLAG, "Ｖ受け入れ振動棒", SIZE("振動棒", TARGET), TARGET, -5
			ELSE
				CALL SETFLAG, "Ｖ受け入れ振動棒", SIZE("振動棒", TARGET)
			ENDIF
		ENDIF
	CASE 33, 107
		EXP:PLAYER:玩弄Ａ経験 += 1
		EXP:Ａ経験 += 1
		IF TEQUIP:肛用振動棒
			IF COND("結腸責めフラグ")
				EXP:Ａ経験 += 1
				EXP:結腸経験 += 1
			ENDIF

			;大きいと経験BOUNS
			IF SIZE("Ａ振動棒", TARGET) >= 3
				EXP:Ａ経験 += 1
				EXP:PLAYER:玩弄Ａ経験 += 1
			ENDIF
			IF SIZE("Ａ振動棒", TARGET) >= MAX(ABL:Ａ拡張 - 1, 2)
				EXP:Ａ経験 += SIZE("Ａ振動棒", TARGET) - ABL:Ａ拡張 + 1
				CALL SETFLAG, "Ａ拡張", SIZE("Ａ振動棒", TARGET), HARD("Ａ振動棒", TARGET)
			ENDIF
			IF ARG == 107
				CALL SETFLAG, "Ａ受け入れ振動棒", SIZE("Ａ振動棒", TARGET), TARGET, -5
			ELSE
				CALL SETFLAG, "Ａ受け入れ振動棒", SIZE("Ａ振動棒", TARGET)
			ENDIF
		ENDIF
	CASE 60 TO 69, 120 TO 124
		EXP:Ｖ経験 += 1
		IF PENIS(PLAYER)
			EXP:Ｖ性交経験 += 1
			EXP:PLAYER:Ｖ挿入経験 += 1
			;大きいと経験BOUNS
			IF SIZE("阴茎", PLAYER) >= 2
				EXP:Ｖ経験 += 1
				EXP:Ｖ性交経験 += 1
			ENDIF
			;避孕套有些？
			IF TEQUIP:PLAYER:避孕套
				EXP:避孕套性交経験 += 1
				EXP:PLAYER:避孕套挿入経験 += 1
			ENDIF
		ENDIF
		IF SIZE("阴茎", PLAYER) >= MAX(ABL:Ｖ拡張 + 1, 2)
			EXP:子宮口経験 += 1
			EXP:Ｖ経験 += SIZE("阴茎", PLAYER) - ABL:Ｖ拡張
			CALL SETFLAG, "Ｖ拡張", SIZE("阴茎", PLAYER), HARD("阴茎", PLAYER)
		ENDIF

		CALL SETFLAG, "Ｖ受け入れ阴茎", SIZE("阴茎", PLAYER)

		SIF COND("腹部变形フラグ")
			EXP:腹部变形経験 += 1

		SELECTCASE ARG
		CASE 63
			IF TALENT:恋慕 && CHECK_COM("接吻") && TEQUIP:接吻 == 0
				EXP:接吻経験 += 1
				EXP:PLAYER:接吻経験 += 1
			ENDIF
		CASE 65, 122
			EXP:腰靈活経験 += 1
		CASE 66
			EXP:Ｖ経験 += 1
			SIF PENIS(PLAYER)
				EXP:Ｖ性交経験 += 1
		CASE 67
			EXP:Ｖ経験 += 1
			EXP:子宮口経験 += 1
			SIF PENIS(PLAYER)
				EXP:Ｖ性交経験 += 1
		CASE 68
			EXP:子宮口経験 += 2
			EXP:子宮姦経験 += 1
		ENDSELECT
		SIF TEQUIP:推倒 == 0
			EXP:PLAYER:腰靈活経験 += 1
	CASE 70 TO 79, 125 TO 129
		EXP:Ａ経験 += 1
		EXP:PLAYER:玩弄Ａ経験 += 1
		IF PENIS(PLAYER)
			EXP:Ａ性交経験 += 1
			EXP:PLAYER:Ａ挿入経験 += 1
			;大きいと経験BOUNS
			IF SIZE("阴茎", PLAYER) >= 2
				EXP:Ａ経験 += 1
				EXP:Ａ性交経験 += 1
				EXP:PLAYER:玩弄Ａ経験 += 1
			ENDIF
			;避孕套有些？
			IF TEQUIP:PLAYER:避孕套
				EXP:避孕套性交経験 += 1
				EXP:PLAYER:避孕套挿入経験 += 1
			ENDIF
		ENDIF
		IF SIZE("阴茎", PLAYER) >= MAX(ABL:Ａ拡張 + 1, 2)
			EXP:Ａ経験 += SIZE("阴茎", PLAYER) - ABL:Ａ拡張
			CALL SETFLAG, "Ａ拡張", SIZE("阴茎", PLAYER), HARD("阴茎", PLAYER)
		ENDIF

		CALL SETFLAG, "Ａ受け入れ阴茎", SIZE("阴茎", PLAYER)

		SELECTCASE ARG
		CASE 73
			IF TALENT:恋慕 && CHECK_COM("接吻") && TEQUIP:接吻 == 0
				EXP:接吻経験 += 1
				EXP:PLAYER:接吻経験 += 1
			ENDIF
		CASE 75, 127
			EXP:腰靈活経験 += 1
		ENDSELECT

		SIF TEQUIP:推倒 == 0
			EXP:PLAYER:腰靈活経験 += 1
		IF COND("結腸責めフラグ")
			EXP:Ａ経験 += 1
			EXP:結腸経験 += 1
		ENDIF
	CASE 80
		EXP:腰靈活経験 += 1
		EXP:PLAYER:腰靈活経験 += 1
		IF CHECK_COM("双頭振動棒PLAY")
			EXP:Ｖ経験 += 1
			IF SIZE("振動棒", TARGET) >= MAX(ABL:Ｖ拡張 - 1, 2)
				EXP:Ｖ経験 += SIZE("振動棒", TARGET) - ABL:Ｖ拡張
				CALL SETFLAG, "Ｖ拡張", SIZE("振動棒", TARGET), HARD("振動棒", TARGET)
			ENDIF
			SWAP TARGET, PLAYER
			EXP:Ｖ経験 += 1
			IF SIZE("振動棒", PLAYER) >= MAX(ABL:Ｖ拡張 - 1, 2)
				EXP:Ｖ経験 += SIZE("振動棒", PLAYER) - ABL:Ｖ拡張
				CALL SETFLAG, "Ｖ拡張", SIZE("振動棒", PLAYER), HARD("振動棒", TARGET)
			ENDIF
			SWAP TARGET, PLAYER
		ENDIF
	CASE 81
		EXP:PLAYER:手淫経験 += 1
		EXP:PLAYER:腰靈活経験 += 1
	CASE 82
		EXP:Ｂ性交経験 += 1
		EXP:PLAYER:Ｂ挿入経験 += 1
		IF TEQUIP:推倒
			EXP:乳交経験 += 1
		ELSE
			EXP:PLAYER:腰靈活経験 += 1
		ENDIF
	CASE 83 TO 88
		EXP:尿道経験 += 1
		EXP:PLAYER:尿道責め経験 += 1

		IF PENIS(PLAYER)
			EXP:尿道性交経験 += 1
			EXP:PLAYER:尿道挿入経験 += 1

			;大きいと経験BOUNS
			IF SIZE("阴茎", PLAYER) >= 2
				EXP:尿道経験 += 1
				EXP:尿道性交経験 += 1
				EXP:PLAYER:尿道責め経験 += 1
			ENDIF
		ENDIF

		;動かしても大丈夫になるサイズまでは拡張
		IF SIZE("阴茎の直径", PLAYER) > MIN_STR(CONDS("尿道拡張度") )
			CALL SETFLAG, "尿道拡張", SIZE("阴茎の直径", PLAYER), TARGET
		ELSEIF SIZE("阴茎の直径", PLAYER)*4/3 > MIN_STR(CONDS("尿道拡張度") )
			CALL SETFLAG, "尿道拡張", MIN_STR(CONDS("尿道拡張度") ) + 1, TARGET
		ENDIF

		CALL SETFLAG, "尿道受け入れ阴茎", SIZE("阴茎", PLAYER)
	CASE 92, 104
		IF CHECK_COM("乳夾口交", ARG)
			EXP:口交経験 += 1
		ELSEIF CHECK_COM("洗面奶手交", ARG)
			EXP:手淫経験 += 1
		ENDIF
		EXP:乳交経験 += 1
	CASE 90, 97
		;特殊指令
		IF CHECK_COM("手交口交", ARG)
			EXP:口交経験 += 1
		ELSEIF CHECK_COM("玩弄Ａ手交", ARG)
			EXP:玩弄Ａ経験 += 1
			EXP:Ａ舐め経験 += 1
			EXP:PLAYER:Ａ経験 += 1
		ELSEIF CHECK_COM("洗面奶手交", ARG)
			EXP:乳交経験 += 1
		ENDIF
		EXP:手淫経験 += 1
	CASE 91, 208
		;特殊指令
		IF CHECK_COM("手交口交", ARG)
			EXP:手淫経験 += 1
		ELSEIF CHECK_COM("乳夾口交", ARG)
			EXP:乳交経験 += 1
		ENDIF
		EXP:口交経験 += 1
		SIF ARG == 208
			EXP:口交経験 += 1
		SIF TEQUIP:深喉
			EXP:喉性交経験 += 1
	CASE 93, 101
		IF CHECK_COM("展示肉棒") == 0
			EXP:腰靈活経験 += 1
			EXP:股コキ経験 += 1
		ENDIF
	CASE 95
		EXP:足交経験 += 1
	CASE 96
		SIF CHECK_COM("玩弄Ａ手交", ARG)
			EXP:手淫経験 += 1
		EXP:玩弄Ａ経験 += 1
		EXP:Ａ舐め経験 += 1
		EXP:PLAYER:Ａ経験 += 1
	CASE 98
		EXP:舐陰経験 += 1
	CASE 99
		;@GET_EXP_COMで特殊な処理をするため、ここには通常は来ない
		IF PENIS(PLAYER)
			EXP:口交経験 += 1
		ELSE
			EXP:舐陰経験 += 1
		ENDIF
		IF PENIS(TARGET)
			EXP:PLAYER:口交経験 += 1
		ELSE
			EXP:PLAYER:舐陰経験 += 1
		ENDIF
	CASE 100
		EXP:足舐め経験 += 1
	CASE 102
		EXP:手淫経験 += 1
	CASE 132
		SIF TEQUIP:鼻钩
			EXP:拘束経験 += 1
	CASE 133
		SIF TEQUIP:眼罩
			EXP:拘束経験 += 2
	CASE 134
		SIF TEQUIP:拘束
			EXP:拘束経験 += 5
	CASE 135
		SIF TEQUIP:口枷
			EXP:拘束経験 += 2
	CASE 136
		EXP:PLAYER:玩弄Ａ経験 += 5
		IF TEQUIP:浣腸
			EXP:Ａ経験 += 2
			EXP:浣腸経験 += 1
		ENDIF

	CASE 138
		EXP:PLAYER:放尿経験 += 1
		IF CHECK_COM("口内放尿", ARG)
			SIF PENIS(PLAYER) == 0
				EXP:PLAYER:聖水経験 += 1
			EXP:飲尿経験 += 1
		ELSEIF CHECK_COM("子宮内放尿", ARG)
			EXP:子宮浴尿経験 += 1
		ELSEIF CHECK_COM("膣内放尿", ARG)
			EXP:膣内浴尿経験 += 1
		ELSEIF CHECK_COM("温泉浣腸", ARG)
			EXP:浣腸経験 += 1
			EXP:温泉浣腸経験 += 1
			EXP:PLAYER:玩弄Ａ経験 += 2
		ELSEIF CHECK_COM("乳内放尿", ARG)
			EXP:乳内浴尿経験 += 1
		ELSEIF CHECK_COM("膀胱内放尿", ARG)
			EXP:輸尿経験 += 1
		ENDIF
	CASE 140
		EXP:口交経験 += 1
		EXP:喉性交経験 += 1
		SIF TEQUIP:深喉
			EXP:喉性交経験 += 1
		EXP:PLAYER:腰靈活経験 += 1
	CASE TNUM("拳交")
		EXP:PLAYER:手淫経験 += 1
		EXP:Ｖ経験 += 5
		IF CHECK_COM("二本フィスト", ARG)
			MEMO_SIZE = SIZE("二本フィスト", PLAYER)
		ELSE
			MEMO_SIZE = SIZE("片手フィスト", PLAYER)
		ENDIF

		IF MEMO_SIZE >= ABL:Ｖ拡張 - 1
			EXP:Ｖ経験 += MEMO_SIZE - ABL:Ｖ拡張 + 1
			CALL SETFLAG, "Ｖ拡張", MEMO_SIZE, HARD("フィスト", PLAYER)
		ENDIF
		SIF MEMO_SIZE >= 3
			EXP:Ｖ拳交経験 += 1
		CALL SETFLAG, "Ｖ受け入れフィスト", MEMO_SIZE
	CASE TNUM("肛門拳交")
		EXP:PLAYER:手淫経験 += 1
		EXP:PLAYER:玩弄Ａ経験 += 5
		EXP:Ａ経験 += 5
		IF CHECK_COM("二本フィスト", ARG)
			MEMO_SIZE = SIZE("二本フィスト", PLAYER)
		ELSE
			MEMO_SIZE = SIZE("片手フィスト", PLAYER)
		ENDIF

		IF MEMO_SIZE >= ABL:Ａ拡張 - 1
			EXP:Ａ経験 += MEMO_SIZE - ABL:Ａ拡張 + 1
			CALL SETFLAG, "Ａ拡張", MEMO_SIZE, HARD("フィスト", PLAYER)
		ENDIF
		SIF MEMO_SIZE >= 3
			EXP:Ａ拳交経験 += 1
		CALL SETFLAG, "Ａ受け入れフィスト", MEMO_SIZE
		IF COND("結腸責めフラグ")
			EXP:Ａ経験 += 1
			EXP:結腸経験 += 1
		ENDIF
	CASE TNUM("両穴拳交")
		EXP:PLAYER:手淫経験 += 1
		EXP:Ｖ経験 += 5
		MEMO_SIZE = SIZE("Ｗフィスト", PLAYER)

		IF MEMO_SIZE >= ABL:Ｖ拡張 - 1
			EXP:Ｖ経験 += MEMO_SIZE - ABL:Ｖ拡張 + 1
			CALL SETFLAG, "Ｖ拡張", MEMO_SIZE, HARD("フィスト", PLAYER)
		ENDIF
		SIF MEMO_SIZE >= 3
			EXP:Ｖ拳交経験 += 1
		CALL SETFLAG, "Ｖ受け入れフィスト", MEMO_SIZE

		EXP:PLAYER:玩弄Ａ経験 += 5
		EXP:Ａ経験 += 5
		IF MEMO_SIZE >= ABL:Ａ拡張 - 1
			EXP:Ａ経験 += MEMO_SIZE - ABL:Ａ拡張 + 1
			CALL SETFLAG, "Ａ拡張", MEMO_SIZE, HARD("フィスト", PLAYER)
		ENDIF
		SIF MEMO_SIZE >= 3
			EXP:Ａ拳交経験 += 1
		CALL SETFLAG, "Ａ受け入れフィスト", MEMO_SIZE
		IF COND("結腸責めフラグ")
			EXP:Ａ経験 += 1
			EXP:結腸経験 += 1
		ENDIF

	CASE 144
		EXP:放尿経験 += 1
	CASE 145
		EXP:露出経験 += 2
		;视频拍摄、室内露出、野外PLAYは経験等にプラス
		SIF TEQUIP:攝像機
			EXP:露出経験 += 1
		SIF TEQUIP:室内露出PLAY || TEQUIP:野外PLAY
			EXP:露出経験 += 1
		EXP:剃毛経験 += 1
	CASE 147
		EXP:精飲経験 += 1 + (ITEM:套套内精液 + 4)/5
		EXP:精液経験 += 1 + (ITEM:套套内精液 + 4)/5
	CASE 149
		IF TEQUIP:导管
			EXP:尿道経験 += 1
			EXP:PLAYER:尿道責め経験 += 1
		ENDIF
	CASE 150
		IF TEQUIP:深喉
			EXP:口交経験 += 1
			EXP:喉性交経験 += 1
		ENDIF
	CASE 151
		IF TEQUIP:尿道探针
			;連続実行（尿道拡張の方は、飛んだ後で増加する処理アリ）
			IF PREVCOM == SELECTCOM
				EXP:尿道経験 += 1 + (ABL:PLAYER:施虐属性 + 1)/2
				EXP:露出経験 += 1 + (ABL:PLAYER:施虐属性 + 1)/2
				EXP:PLAYER:尿道責め経験 += 1 + (ABL:PLAYER:施虐属性 + 1)/2
			ENDIF

			EXP:尿道経験 += 1
			CALL SETFLAG, "尿道拡張", TEQUIP:尿道探针, TARGET
			EXP:PLAYER:尿道責め経験 += 1

			EXP:露出経験 += 1
			SIF TEQUIP:攝像機
				EXP:露出経験 += 1
		ENDIF
	CASE 152
		EXP:尿道経験 += 1
		EXP:PLAYER:尿道責め経験 += 1
		IF TEQUIP:尿道振動棒
			;大きいと経験BOUNS
			IF SIZE("尿道振動棒", TARGET) >= 3
				EXP:尿道経験 += 1
				EXP:PLAYER:尿道責め経験 += 1
			ENDIF

			;動かしても大丈夫になるサイズまでは拡張
			IF SIZE("尿道振動棒の直径", TARGET) > MIN_STR(CONDS("尿道拡張度") )
				CALL SETFLAG, "尿道拡張", SIZE("尿道振動棒の直径", TARGET), TARGET
			ELSEIF SIZE("尿道振動棒の直径", TARGET)*4/3 > MIN_STR(CONDS("尿道拡張度") )
				CALL SETFLAG, "尿道拡張", MIN_STR(CONDS("尿道拡張度") ) + 1, TARGET
			ENDIF

			CALL SETFLAG, "尿道受け入れ振動棒", SIZE("尿道振動棒", TARGET)
		ENDIF
	CASE 160
		EXP:PLAYER:腰靈活経験 += 1
		EXP:ASSI:Ｖ経験 += 1
		EXP:ASSI:腰靈活経験 += 1
		IF PENIS(PLAYER)
			EXP:PLAYER:Ｖ挿入経験 += 1
			EXP:ASSI:Ｖ性交経験 += 1
		ENDIF
		CALL SETFLAG, "Ｖ受け入れ阴茎", SIZE("阴茎", PLAYER), ASSI, PLAYER
	CASE 161
		EXP:腰靈活経験 += 1
		EXP:ASSI:Ｖ経験 += 1
		IF PENIS(TARGET)
			EXP:Ｖ挿入経験 += 1
			EXP:ASSI:Ｖ性交経験 += 1
		ENDIF
		CALL SETFLAG, "Ｖ受け入れ阴茎", SIZE("阴茎", TARGET), ASSI, TARGET
	CASE 162
		EXP:ASSI:口交経験 += 1

	CASE 260

	CASE 261
		SIF TEQUIP:媚薬
			EXP:媚薬経験 += MAX(TEQUIP:媚薬/100, 1)
		SIF TEQUIP:PLAYER:媚薬
			EXP:PLAYER:媚薬経験 += MAX(TEQUIP:PLAYER:媚薬/100, 1)
	CASE 282
		EXP:PLAYER:自慰経験 += 1
	ENDSELECT

	;逆調教指令
	SELECTCASE ARG
	CASE 106, 107, 120 TO 129
		SWAP TARGET, PLAYER
	ENDSELECT

	;調教知識による経験獲得のBOUNS
	IF TEQUIP:推倒 == 0
		SELECTCASE CONDS("調教知識", PLAYER)
		CASE "教育擅長"
			SIF EXP:口交経験 > LOCAL:22 && (ABL:PLAYER:舌靈活 > ABL:舌靈活 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:口交経験 += 1
			SIF EXP:手淫経験 > LOCAL:23 && (ABL:PLAYER:指靈活 > ABL:指靈活 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:手淫経験 += 1
			SIF EXP:足交経験 > LOCAL:24 && (ABL:PLAYER:技巧 > ABL:技巧)
				EXP:足交経験 += 1
			SIF EXP:腰靈活経験 > LOCAL:25 && (ABL:PLAYER:腰靈活 > ABL:腰靈活 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:腰靈活経験 += 1
			SIF EXP:乳交経験 > LOCAL:26 && (ABL:PLAYER:魔乳 > ABL:魔乳 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:乳交経験 += 1
			SIF EXP:玩弄Ａ経験 > LOCAL:27 && ABL:PLAYER:技巧 > ABL:技巧
				EXP:玩弄Ａ経験 += 1
			SIF EXP:舐陰経験 > LOCAL:28 && (ABL:PLAYER:舌靈活 > ABL:舌靈活 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:舐陰経験 += 1
			SIF EXP:接吻経験 > LOCAL:70 && (ABL:PLAYER:舌靈活 > ABL:舌靈活 || ABL:PLAYER:技巧 > ABL:技巧)
				EXP:接吻経験 += 1
		CASE "露出知識"
			SIF EXP:露出経験 > LOCAL:34
				EXP:露出経験 += 1
			SIF EXP:PLAYER:露出経験 > MEMO:34
				EXP:PLAYER:露出経験 += 1
		ENDSELECT

		IF ASSI && PLAYER == MASTER
			SELECTCASE CONDS("調教知識", ASSI)
			CASE "露出知識"
				SIF EXP:露出経験 > LOCAL:34
					EXP:露出経験 += 1
			ENDSELECT
		ENDIF

		SELECTCASE CONDS("調教知識")
		CASE "教育擅長"
			SIF EXP:PLAYER:口交経験 > MEMO:22 && (ABL:PLAYER:舌靈活 < ABL:舌靈活 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:口交経験 += 1
			SIF EXP:PLAYER:手淫経験 > MEMO:23 && (ABL:PLAYER:指靈活 < ABL:指靈活 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:手淫経験 += 1
			SIF EXP:PLAYER:足交経験 > MEMO:24 && (ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:足交経験 += 1
			SIF EXP:PLAYER:腰靈活経験 > MEMO:25 && (ABL:PLAYER:腰靈活 < ABL:腰靈活 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:腰靈活経験 += 1
			SIF EXP:PLAYER:乳交経験 > MEMO:26 && (ABL:PLAYER:魔乳 < ABL:魔乳 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:乳交経験 += 1
			SIF EXP:PLAYER:玩弄Ａ経験 > MEMO:27 && ABL:PLAYER:技巧 < ABL:技巧
				EXP:PLAYER:玩弄Ａ経験 += 1
			SIF EXP:PLAYER:舐陰経験 > MEMO:28 && (ABL:PLAYER:舌靈活 < ABL:舌靈活 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:舐陰経験 += 1
			SIF EXP:PLAYER:接吻経験 > MEMO:70 && (ABL:PLAYER:舌靈活 < ABL:舌靈活 || ABL:PLAYER:技巧 < ABL:技巧)
				EXP:PLAYER:接吻経験 += 1
		CASE "露出知識"
			SIF EXP:露出経験 > LOCAL:34
				EXP:露出経験 += 1
			SIF EXP:PLAYER:露出経験 > MEMO:34
				EXP:PLAYER:露出経験 += 1
		ENDSELECT
	ENDIF

	;レズ、BL経験増加
	IF TALENT:男性 == 0 && TALENT:PLAYER:男性 == 0
		EXP:百合経験 += CALCF("レズ・ＢＬ度", ARG)
		EXP:PLAYER:百合経験 += CALCF("レズ・ＢＬ度", ARG)
	ELSEIF TALENT:男性 && TALENT:PLAYER:男性
		EXP:ＢＬ経験 += CALCF("レズ・ＢＬ度", ARG)
		EXP:PLAYER:ＢＬ経験 += CALCF("レズ・ＢＬ度", ARG)
	ENDIF

	;ARG:1に２以上の数字が代入されている場合には獲得経験をARG:1倍する
	SELECTCASE ARG:1
	CASE IS >= 2
		FOR LCOUNT, 0, 100
			SELECTCASE EXPNAME:LCOUNT
			;増えない経験
			CASE "Ｖ損傷経験", "Ａ損傷経験"
			CASEELSE
				EXP:LCOUNT += (EXP:LCOUNT - LOCAL:LCOUNT) * (ARG:1 - 1)
				EXP:PLAYER:LCOUNT += (EXP:PLAYER:LCOUNT - MEMO:LCOUNT) * (ARG:1 - 1)
			ENDSELECT
		NEXT
	ENDSELECT
CASE "体力減少"
	FOR LCOUNT, 2, CHARANUM
		SELECTCASE LCOUNT
		;CASE TARGET, ASSI
		;今はTARGETのみ
		CASE TARGET
			;推倒
			SIF TEQUIP:LCOUNT:推倒
				TIMES DOWNBASE:LCOUNT:体力, 0.80

			;誘惑＆狩猟の美学
			SIF TEQUIP:LCOUNT:狩猟の美学
				TIMES DOWNBASE:LCOUNT:体力, 0.60
			SIF TEQUIP:LCOUNT:誘惑
				TIMES DOWNBASE:LCOUNT:体力, 1.30

			IF STATE("烂醉", LCOUNT)
				TIMES DOWNBASE:LCOUNT:体力, 1.50
			ELSEIF STATE("酔酒", LCOUNT)
				TIMES DOWNBASE:LCOUNT:体力, 1.20
			ENDIF

			SIF COND("連続実行")
				TIMES DOWNBASE:LCOUNT:体力, 1.50

			;損傷している場合には１ＬＶにつき50
			DOWNBASE:LCOUNT:体力 += (TALENT:LCOUNT:Ｖ損傷 + TALENT:LCOUNT:Ａ損傷)*50

			;BASE:体力 に TCVAR:体力回復 を足し、DOWNBASE:体力 を引く
			BASE:LCOUNT:体力 = LIMIT(BASE:LCOUNT:体力 + TCVAR:LCOUNT:体力回復 - DOWNBASE:LCOUNT:体力, 0, MAXBASE:LCOUNT:体力)
		ENDSELECT
	NEXT

CASE "絶頂させた処理"
;---------------------------------------------------------
;調教におけるPLAYERが絶頂したときの処理
;対象と調教者を両方指定できるのが望ましいが、PLAYERを相手にしている時固定とする
;ARG:1に日常中かどうかを入れる(調教中でないなら0以外を入力しておく）
;---------------------------------------------------------
	VARSET LOCAL
	;異なる変数を一時的に交換
	IF ARG == TARGET:1 && SELECTCOM:1 >= 0
		SWAP SELECTCOM, SELECTCOM:1
		SWAP PREVCOM, PREVCOM:1
		SWAP TCVAR:PLAYER:PLAY区分メイン, TCVAR:PLAYER:PLAY区分サブ
	ENDIF
	;SOURCEの補正
	CALL SETFLAG, "追加のSOURCE", ARG
	;PLAYERが射精した
	IF PENIS(PLAYER)
		;飲む＞中出し＞ぶっかけの順で精液経験が高い
		IF SHOOT("鼻の穴")
			LOCAL = 2
			EXP:ARG:鼻孔精液経験 += 1
		ELSEIF SHOOT("口")
			LOCAL = 3
			CALL SETFLAG, "精飲経験", COND("絶頂", PLAYER), ARG
		ELSEIF SHOOT("中出し")
			LOCAL = 2
			IF SHOOT("膣内")
				CALL SETFLAG, "膣内精液経験", COND("絶頂", PLAYER), ARG
			ELSEIF SHOOT("肛門")
				CALL SETFLAG, "肛内精液経験", COND("絶頂", PLAYER), ARG
			ELSEIF SHOOT("尿道")
				CALL SETFLAG, "膀胱精液経験", COND("絶頂", PLAYER), ARG
			ENDIF
		ELSEIF SHOOT("乳内中出し")
			LOCAL = 2
			CALL SETFLAG, "乳内精液経験", COND("絶頂", PLAYER), ARG
		ELSEIF SHOOT("自分以外に中出し")
			LOCAL = 0
		;ぶっかけ
		ELSE
			LOCAL = 1
			CALL SETFLAG, "精液ぶっかけ経験", COND("絶頂", PLAYER), ARG
			;Ｖ液体追加のソース
			IF SHOOT("くぱぁ")
				SOURCE:ARG:Ｖ液体追加 += COND("絶頂", PLAYER) * LOCAL * 100
			ELSEIF SHOOT("Ａくぱぁ")
				SOURCE:ARG:Ａ液体追加 += COND("絶頂", PLAYER) * LOCAL * 100
			ELSEIF SHOOT("股間")
				SOURCE:ARG:Ｖ液体追加 += COND("絶頂", PLAYER) * LOCAL * 50
				SOURCE:ARG:Ａ液体追加 += COND("絶頂", PLAYER) * LOCAL * 50
			ENDIF
		ENDIF

		;PLAYERの阴茎に精液汚れを追加
		CALL ADD_STAIN, PLAYER, "Ｐ", "精液"

		;避孕套有些なら套套内射精フラグON
		IF TEQUIP:PLAYER:避孕套
			SETBIT TCVAR:PLAYER:イベント, 50
		;避孕套无なら精液関連のいろいろ発生
		ELSE
			IF LOCAL
				;精飲絶頂。何ってのはないけどフレーバー的な
				IF SHOOT("口") && NOWEX:ARG:絶頂数合計 && ABL:ARG:精液中毒
					SIF TFLAG:システム文スキップ == 0
						CALL PRINTL_COLORTEXT, "精飲絶頂（因为充足地补给了精液而獲得BOUNS）", DEF_COLOR("黄色")
					SOURCE:ARG:充足 += 3000
				ENDIF

				EXP:ARG:精液経験 += COND("絶頂", PLAYER) * LOCAL + EJAC_BONUS(ARG)
			;	IF TFLAG:システム文スキップ == 0
			;		PRINTFORML 精液経験+{COND("絶頂", PLAYER) * LOCAL}\@ ARG == ASSI ? (%TEXTS("助手の名称")%）# \@
			;		SIF EJAC_BONUS(ARG)
			;			CALL PRINT_STRL, @"黄色_精液経験+{EJAC_BONUS(ARG)}（因为%CONDS("精液弱点", ASSI)%而獲得BOUNS）\@ ARG == ASSI ? _(%TEXTS("助手の名称")%）# \@"
			;		SIF SHOOT("鼻の穴")
			;			PRINTFORML 鼻孔精液経験+1\@ ARG == ASSI ? (%TEXTS("助手の名称")%）# \@
			;	ENDIF

				IF TALENT:ARG:吸精体質
					;体力回復はTCVAR:体力回復 で管理する
					TCVAR:ARG:体力回復 += COND("絶頂", PLAYER) * LOCAL * 5
			;		SIF TFLAG:システム文スキップ == 0
			;			PRINTFORML 体力+{COND("絶頂", PLAYER) * LOCAL * 5}\@ ARG == ASSI ? （吸精体質：%TEXTS("助手の名称")%）# （吸精体質） \@
					;精力も回復
					IF MAXBASE:ARG:精力 - BASE:ARG:精力 > 0
						LOCAL:1 = LIMIT(COND("絶頂", PLAYER) * LOCAL / 4, 1, MAXBASE:ARG:精力 - BASE:ARG:精力)
						BASE:ARG:精力 += LOCAL:1
						;TCVAR:ARG:精力減少 -= LOCAL:1
					;	SIF TFLAG:システム文スキップ == 0
					;		PRINTFORML 精力+{LOCAL:1}\@ ARG == ASSI ? （吸精体質：%TEXTS("助手の名称")%）# （吸精体質） \@
					ENDIF
				ENDIF
			ENDIF

			;充足のソース
			IF ABL:ARG:精液中毒 && TEQUIP:PLAYER:避孕套 == 0
				SOURCE:ARG:充足 += COND("絶頂", PLAYER) * ABL:ARG:精液中毒 * 100

				;精液弱点
				IF SHOOT("口")
					SIF COND("精飲弱点", ARG)
						SOURCE:ARG:充足 += 3000
				ELSEIF SHOOT("Ｖ中出し")
					SIF COND("膣内射精弱点", ARG)
						SOURCE:ARG:充足 += 3000
				ELSEIF SHOOT("Ａ中出し")
					SIF COND("肛内射精弱点", ARG)
						SOURCE:ARG:充足 += 3000
				ELSEIF SHOOT("乳頭奸")
					SIF COND("乳内射精弱点", ARG)
						SOURCE:ARG:充足 += 3000
				ELSEIF SHOOT("尿道中出し")
					SIF COND("尿道内射精弱点", ARG)
						SOURCE:ARG:充足 += 3000
				ENDIF
			ENDIF

			;精液を出したところに精液汚れを追加
			;口に汚れを追加
			IF SHOOT("口")
				CALL EQ_STAIN, ARG, "Ｍ", PLAYER, "Ｐ"
				CALL ADD_STAIN, ARG, "Ｍ", "精液"
			;胸に汚れを追加
			ELSEIF SHOOT("胸")
				CALL ADD_STAIN, ARG, "Ｂ", "精液"
				SIF COND("豊穣ＯＮ", PLAYER) && TALENT:男性 == 0 && COND("種族：人形") == 0
					TEQUIP:豊穣 = MIN(TEQUIP:豊穣 + 1, 5)
			;Ｖに汚れを追加
			ELSEIF SHOOT("Ｖ中出し") || SHOOT("股間")
				;内褲冲
				IF SELECTCOM == 97
					STAIN:Ｖ = SET_STAIN(STAIN:Ｖ, "精液")
				ELSE
					CALL ADD_STAIN, ARG, "Ｖ", "精液"
				ENDIF
			;Ａに汚れを追加
			ELSEIF SHOOT("Ａ中出し")
				CALL ADD_STAIN, ARG, "Ａ", "精液"
			;手や胖次に汚れを追加
			ELSEIF SHOOT("手")
				;内褲冲
				IF SELECTCOM == 97
					CALL ADD_STAIN, ARG, "胖次", "精液"
				ELSE
					CALL ADD_STAIN, ARG, "手", "精液"
				ENDIF
			ELSEIF SHOOT("脚")
				CALL ADD_STAIN, ARG, "脚", "精液"
			ELSEIF SHOOT("顔")
				CALL ADD_STAIN, ARG, "顔", "精液"
			ELSEIF SHOOT("髪")
				CALL ADD_STAIN, ARG, "髪", "精液"
			ENDIF
		ENDIF
	ENDIF
	;MASTERを强制绝顶回数＆経験値獲得
	SIF PLAYER == MASTER
		EXP:ARG:强制绝顶回数 += 1

	CALL GET_EXPERIENCE, COND("絶頂", PLAYER), ARG

	IF ARG == TARGET
		;好感度補正
		TFLAG:好感度BOUNS += COND("絶頂", PLAYER) + ABL:ARG:精液中毒
	ENDIF
	;変数を戻す
	IF ARG == TARGET:1 && SELECTCOM:1 >= 0
		SWAP SELECTCOM, SELECTCOM:1
		SWAP PREVCOM, PREVCOM:1
		SWAP TCVAR:PLAYER:PLAY区分メイン, TCVAR:PLAYER:PLAY区分サブ
	ENDIF
CASE "絶頂した処理"
	SIF COND("絶頂", ARG) == 0
		RETURN 0
	;堪えたフラグを初期化
	EX:ARG:绝顶忍耐 = 0
	;精力を減少(相手が吸精体質だと必要量増)
	LOCAL = COND("絶頂", ARG) + MAX(TALENT:吸精体質 - TALENT:ARG:吸精体質, 0)
	SIF SELECTCOM:1 >= 0
		LOCAL += MAX(TALENT:(TARGET:1):吸精体質 - TALENT:ARG:吸精体質, 0)
	;女性は優遇
	SIF TALENT:ARG:女性 && LOCAL >= 3
		LOCAL = 3

	IF PENIS(ARG)
		NOWEX:ARG:射精回数 += 1
		EX:ARG:射精回数 += 1
		IF TEQUIP:ARG:避孕套 == 0
			NOWEX:ARG:生射精回数 += 1
			EX:ARG:生射精回数 += 1
		ENDIF

		NOWEX:ARG:射精 = COND("絶頂", ARG)
		SIF TEQUIP:MASTER:淫精の伝道師
			NOWEX:ARG:射精 += 1
		EX:ARG:射精 += NOWEX:ARG:射精
		EXP:ARG:射精経験 += 1
	ELSE
		EXP:ARG:絶頂経験 += COND("絶頂", ARG)
		NOWEX:ARG:絶頂 = COND("絶頂", ARG)
		EX:ARG:絶頂 += NOWEX:ARG:絶頂
	ENDIF

	LOCAL = MAX(LOCAL, 1)

	BASE:ARG:精力 -= LOCAL
	TCVAR:ARG:精力減少 += LOCAL

	IF TFLAG:システム文スキップ == 0
		VARSET LOCALS
		IF ARG == MASTER
			LOCALS = （%CALLNAME:ARG%）
		ELSEIF ARG == ASSI
			LOCALS = （%TEXTS("助手の名称")%）
		ENDIF
		;PRINTFORML 精力-{LOCAL}%LOCALS%
		;CALL BLANKLINE
	ENDIF
	;魂のやり取り
	CALL EXCHANGE_SOUL, "絶頂", COND("絶頂", ARG), TARGET

	;射精ゲージの調整
	BASE:ARG:絶頂 = MAXBASE:ARG:絶頂 * (1 + MAX(BASE:ARG:精力, 1) )
	BASE:ARG:絶頂 /= 2 * (1 + MAXBASE:ARG:精力) * COND("絶頂", ARG)
	;快感許容値（阴茎）の調整
	BASE:ARG:快感許容値男性 = BASE:ARG:絶頂

CASE "同時絶頂"
	VARSET LOCAL
	;LOCAL PLAYERの絶頂, LOCAL:1 PLAYER:1の絶頂, LOCAL:2 TARGETの絶頂, LOCAL:3 TARGET:1の絶頂

	LOCAL = COND("絶頂", PLAYER)
	SIF SELECTCOM:2 >= 0
		LOCAL:1 = COND("絶頂", PLAYER:1)
	LOCAL:2 = MIN(NOWEX:絶頂数合計, 2)
	SIF SELECTCOM:1 >= 0
		LOCAL:3 = MIN(NOWEX:(TARGET:1):絶頂数合計, 2)

	;PLAYER側とTARGET側が両方絶頂する事が条件
	SIF MAX(LOCAL, LOCAL:1) == 0 || MAX(LOCAL:2, LOCAL:3) == 0
		RETURN 0
	;既に同時絶頂となっている場合には繰り返さない
	SIF NOWEX:PLAYER:同時絶頂 || NOWEX:同時絶頂
		RETURN 0

	NOWEX:PLAYER:同時絶頂 = LOCAL
	EX:PLAYER:同時絶頂 += NOWEX:PLAYER:同時絶頂
	IF LOCAL:1
		NOWEX:(PLAYER:1):同時絶頂 = LOCAL:1
		EX:(PLAYER:1):同時絶頂 += NOWEX:(PLAYER:1):同時絶頂
	ENDIF
	NOWEX:同時絶頂 = LOCAL:2
	EX:同時絶頂 += NOWEX:同時絶頂
	IF LOCAL:3
		NOWEX:ASSI:同時絶頂 = LOCAL:3
		EX:ASSI:同時絶頂 += NOWEX:ASSI:同時絶頂
	ENDIF

	IF MAX(LOCAL, LOCAL:1) >= 2 && MAX(LOCAL:2, LOCAL:3) >= 2
		LOCALS = 同時強絶頂
	ELSE
		LOCALS = 同時絶頂
	ENDIF

	;PLAYERとTARGETと(PLAYER:1 or TARGET:1)が絶頂した
	IF LOCAL && LOCAL:2 && (LOCAL:1 || LOCAL:3)
		LOCALS = %LOCALS%（所有人）
	;PLAYERと(TARGET or TARGET:1)
	ELSEIF LOCAL
		LOCALS = %LOCALS%（%CALLNAME:PLAYER%＆\@ LOCAL:2 ? %CALLNAME:TARGET% # %CALLNAME:(TARGET:1)% \@）
	ELSEIF LOCAL:1
		LOCALS = %LOCALS%（%CALLNAME:(PLAYER:1)%＆%CALLNAME:TARGET%）
	ENDIF

	SIF TFLAG:システム文スキップ == 0
		CALL PRINTL_COLORTEXT, LOCALS, DEF_COLOR("爱心粉紅")

	STR:同時絶頂 = %LOCALS%

CASE "調教ソースの計算"
	SELECTCASE SELECTCOM
	CASE 60
		IF CHECK_COM("两根挿入Ｖ中")
			CALL SOURCE_COM60, 70
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM60, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL SOURCE_COM60, 120
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM71, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL SOURCE_COM60, 100
		ENDIF
	CASE 71
		IF CHECK_COM("两根挿入Ａ中")
			CALL SOURCE_COM71, 70
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM71, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL SOURCE_COM71, 120
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM60, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL SOURCE_COM71, 100
		ENDIF
	CASEELSE
		TRYCALLFORM SOURCE_COM{SELECTCOM}, 100
	ENDSELECT

	;-------------------------------------------------
	;SOURCE計算
	;-------------------------------------------------
	CALL CALC_SOURCE, "調教指令"

CASE "調教ソースの試算"
	SELECTCASE SELECTCOM
	CASE 60
		IF CHECK_COM("两根挿入Ｖ中")
			CALL SOURCE_COM60, 70
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM60, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL SOURCE_COM60, 120
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM71, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL SOURCE_COM60, 100
		ENDIF
	CASE 71
		IF CHECK_COM("两根挿入Ａ中")
			CALL SOURCE_COM71, 70
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM71, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL SOURCE_COM71, 120
			SWAP PLAYER, PLAYER:1
			CALL SOURCE_COM60, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL SOURCE_COM71, 100
		ENDIF
	CASEELSE
		TRYCALLFORM SOURCE_COM{SELECTCOM}, 100
	ENDSELECT

	;-------------------------------------------------
	;SOURCE計算
	;-------------------------------------------------
	CALL CALC_SOURCE, "試算"

CASE "調教のフラグ取得"
	SELECTCASE SELECTCOM
	CASE 60
		IF CHECK_COM("两根挿入Ｖ中")
			CALL FLAG_COM60, 70
			SWAP PLAYER, PLAYER:1
			CALL FLAG_COM60, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL FLAG_COM60, 120
			SWAP PLAYER, PLAYER:1
			CALL FLAG_COM71, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL FLAG_COM60, 100
		ENDIF
	CASE 71
		IF CHECK_COM("两根挿入Ａ中")
			CALL FLAG_COM71, 70
			SWAP PLAYER, PLAYER:1
			CALL FLAG_COM71, 70
			SWAP PLAYER, PLAYER:1
		ELSEIF CHECK_COM("二穴挿入")
			CALL FLAG_COM71, 120
			SWAP PLAYER, PLAYER:1
			CALL FLAG_COM60, 120
			SWAP PLAYER, PLAYER:1
		ELSE
			CALL FLAG_COM71, 100
		ENDIF
	CASEELSE
		TRYCALLFORM FLAG_COM{SELECTCOM}, 100
	ENDSELECT
CASE "調教補正値"
	SIF ARG == PLAYER
		RETURN 0

	;ARGのTCVARの600～659を初期化
	VARSET TCVAR:ARG:0, 0, 600, 660

	;まずはSOURCE補正（下のほうにCUP補正も有）
	;快感補正
	;～感覚ＬＶや淫～系の素質によって相手の技巧やＬＶや情緒での减少修正が無視されます
	FOR LCOUNT, 0, 6
		VARSET LOCAL
		LOCAL += TALENT:ARG:接受快感*20
		LOCAL -= TALENT:ARG:冷静*20 + COND("種族：人形", ARG)*50 + STATE("烂醉", PLAYER)*30

		LOCAL -= COND("性別嫌悪", ARG) * 20

		;情緒をみる（低いときの修正は"快感上昇の上限措置"で主に行う）
		SELECTCASE MOOD_HEART()
		CASE 0
			LOCAL:1 = -40
		CASE 1
			LOCAL:1 = -20
		CASE 2
			LOCAL:1 = -10
		CASEELSE
			LOCAL:1 = LIMIT(10* (MOOD_HEART() - 3), 0, 50)
		ENDSELECT
		;淫乱な人は情緒低くても関係无
		SIF TALENT:ARG:淫乱 && LOCAL:1 < 0
			LOCAL:1 = 0
		;好色な人は情緒が低くてもエンジンかかりやすい
		SIF TALENT:ARG:好色 && LOCAL:1 < 0
			LOCAL:1 /= 2
		;冷静持ちは情緒に弱い
		SIF TALENT:ARG:冷静 && LOCAL:1 >= 0
			LOCAL:1 += 25

		;調教者とのABL:技巧差
		SELECTCASE ABL:PLAYER:技巧 - ABL:ARG:技巧
		CASE IS > 0
			LOCAL:2 = 20
		CASE IS < 0
			LOCAL:2 = -20
		ENDSELECT

		SELECTCASE LCOUNT
		CASE 0
			;阴茎は情緒等にあまり左右されない
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && PENIS(ARG) == 0 && TALENT:ARG:淫核 == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && PENIS(ARG) == 0 && ABL:ARG:Ｃ感覚 < 5 && TALENT:ARG:Ｃ性向 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:Ｃ快楽 += LOCAL + TALENT:ARG:淫核*20 + TALENT:ARG:Ｃ性向*10
		CASE 1
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && TALENT:ARG:淫壷 == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && ABL:ARG:Ｖ感覚 < 5 && TALENT:ARG:Ｖ性向 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:Ｖ快楽 += LOCAL + TALENT:ARG:淫壷*20 + TALENT:ARG:Ｖ性向*10 + MARK:ARG:淫紋*10
		CASE 2
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && TALENT:ARG:尻穴狂い == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && ABL:ARG:Ａ感覚 < 5 && TALENT:ARG:Ａ性向 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:Ａ快楽 += LOCAL + TALENT:ARG:尻穴狂い*20 + TALENT:ARG:Ａ性向*10
		CASE 3
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && TALENT:ARG:淫乳 == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && ABL:ARG:Ｂ感覚 < 5 && TALENT:ARG:Ｂ性向 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:Ｂ快楽 += LOCAL + TALENT:ARG:淫乳*20 + TALENT:ARG:Ｂ性向*10
		CASE 4
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && TALENT:ARG:蕩唇 == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && ABL:ARG:Ｍ感覚 < 5 && TALENT:ARG:Ｍ性向 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:Ｍ快楽 += LOCAL + TALENT:ARG:蕩唇*20 + TALENT:ARG:Ｍ性向*10
		CASE 5
			SIF LOCAL:1 > 0 || (LOCAL:1 < 0 && TALENT:ARG:尿道狂 == 0)
				LOCAL += LOCAL:1
			SIF LOCAL:2 > 0 || (LOCAL:2 < 0 && ABL:ARG:尿道感覚 < 5 && TALENT:ARG:尿道性感 == 0)
				LOCAL += LOCAL:2
			TCVAR:ARG:尿道快楽 += LOCAL + TALENT:ARG:尿道狂*20 + TALENT:ARG:尿道性感*10
		ENDSELECT
	NEXT

	SIF TALENT:ARG:母乳体質
		TCVAR:ARG:Ｂ快楽 += 50
	SIF COND("発情期", ARG)
		TCVAR:ARG:Ｖ快楽 += 100
	;ＶＡ損傷
	TCVAR:ARG:Ｖ快楽 -= 200 * TALENT:ARG:Ｖ損傷
	TCVAR:ARG:Ａ快楽 -= 200 * TALENT:ARG:Ａ損傷

	;快感以外
	IF COND("種族：人形", ARG)
		TCVAR:ARG:疼痛 -= 50
		TCVAR:ARG:逸脱 -= 50
		TCVAR:ARG:反感追加 -= 90
	ENDIF

	SIF TALENT:ARG:害羞
		TCVAR:ARG:露出 += 100
	SIF TALENT:ARG:不知羞恥
		TCVAR:ARG:露出 -= 50
	SIF TALENT:ARG:清楚
		TCVAR:ARG:露出 += 50
	SIF TALENT:ARG:好奇心
		TCVAR:ARG:逸脱 -= 30
	SIF TALENT:ARG:保守的
		TCVAR:ARG:逸脱 += 100
	SIF TALENT:ARG:好色
		TCVAR:ARG:逸脱 -= 10
	SIF TALENT:ARG:淫乱
		TCVAR:ARG:逸脱 -= 50

	;重複前提で計算
	IF TALENT:ARG:恋慕 && PLAYER == MASTER
		TCVAR:ARG:情愛 += 20
		IF GETBIT(NOWEX:ARG:処女喪失, 1)
			TCVAR:ARG:情愛 += 100
			TCVAR:ARG:疼痛 -= 50
			TCVAR:ARG:逸脱 -= 300
			TCVAR:ARG:反感追加 -= 300
		ENDIF
	ENDIF

	;推倒BOUNS
	IF TEQUIP:ARG:推倒
		TCVAR:ARG:疼痛 -= 50
		TCVAR:ARG:恐惧 -= 100
		TCVAR:ARG:屈従 -= 100
		TCVAR:ARG:逸脱 -= 50
		TCVAR:ARG:反感追加 -= 100
	ENDIF

	;随意生長
	IF COND("陰毛", ARG) == 7 && CHECK_CLO("Ｖ露出", ARG)
		TCVAR:ARG:露出 += 30
	;光滑无毛
	ELSEIF COND("陰毛", ARG) >= 2 && COND("陰毛", ARG) <= 3 && CHECK_CLO("Ｖ露出", ARG)
		TCVAR:ARG:露出 += 20
	ENDIF

	;性器穿環
	SIF CHECK_CLO("Ｖ露出", ARG)
		TCVAR:ARG:露出 += TALENT:ARG:陰蒂環*20 + TALENT:ARG:陰唇環*10 + TALENT:ARG:恥丘穿環*10
	SIF CHECK_CLO("乳頭露出", ARG)
		TCVAR:ARG:露出 += TALENT:ARG:乳环*10

	;同時絶頂
	IF NOWEX:ARG:同時絶頂
		TCVAR:ARG:情愛 += NOWEX:ARG:同時絶頂 * 10
		TCVAR:ARG:達成感 += NOWEX:ARG:同時絶頂 * 10
		TCVAR:ARG:恐惧 -= NOWEX:ARG:同時絶頂 * 20
		TCVAR:ARG:反感追加 -= NOWEX:ARG:同時絶頂 * 20
	ENDIF

	;LOCALの値で情愛,性行動,達成感,充足,Ｖ潤,欲情追加,反感追加,恭順追加に一斉補正
	VARSET LOCAL

	;ＶＡ損傷
	LOCAL:1 = EXP_GAIN("Ｖ損傷経験", ARG) + EXP_GAIN("Ａ損傷経験", ARG) + TALENT:ARG:Ｖ損傷 + TALENT:ARG:Ａ損傷
	IF LOCAL:1
		LOCAL += LOCAL:1 * 50
		TCVAR:ARG:恐惧 += LOCAL:1 * 50
		TCVAR:ARG:逸脱 += LOCAL:1 * 50
	ENDIF

	SIF COND("疲労", ARG)
		LOCAL += 50

	TCVAR:ARG:情愛 -= LOCAL
	TCVAR:ARG:性行動 -= LOCAL
	TCVAR:ARG:達成感 -= LOCAL
	TCVAR:ARG:充足 -= LOCAL
	TCVAR:ARG:不潔 -= LOCAL
	TCVAR:ARG:欲情追加 -=  LOCAL

	IF TALENT:PLAYER:謎之魅力
		TCVAR:ARG:情愛 += TALENT:PLAYER:謎之魅力*5
		TCVAR:ARG:達成感 += TALENT:PLAYER:謎之魅力*5
		TCVAR:ARG:逸脱 -= TALENT:PLAYER:謎之魅力*5
		TCVAR:ARG:反感追加 -= TALENT:PLAYER:謎之魅力*5
	ENDIF

	SIF COND("性別嫌悪", ARG)
		TCVAR:ARG:逸脱 += 20 * COND("性別嫌悪", ARG)

	TCVAR:ARG:逸脱 -= TEQUIP:ARG:媚薬/5
	;野外など
	SIF TEQUIP:ARG:室内露出PLAY || TEQUIP:ARG:攝像機 || TEQUIP:ARG:野外PLAY
		TCVAR:ARG:露出 += 20

	;絶頂補正
	IF NOWEX:ARG:絶頂数合計
		TCVAR:ARG:露出 -= 20
		TCVAR:ARG:逸脱 -= 20
		TCVAR:ARG:反感追加 -= 10
	ENDIF

	;施虐狂受虐狂補正
	TCVAR:ARG:逸脱 -= MAX(MIN(ABL:ARG:施虐属性, 5), MIN(ABL:ARG:受虐属性, 5) )*5

	;奉仕PLAYなら奉仕精神で逸脱軽減
	IF SERVICE_PLAY()
		SELECTCASE MIN(ABL:ARG:奉仕精神, 10)
		CASE 1
			TCVAR:ARG:逸脱 -= 5
		CASE 2 TO 5
			TCVAR:ARG:逸脱 -= 10
		CASE 6 TO 9
			TCVAR:ARG:逸脱 -= 20
		CASE 10
			TCVAR:ARG:逸脱 -= 30
		ENDSELECT
	ENDIF
	;露出PLAYなら露出癖で逸脱軽減
	IF EXPOSURE_PLAY()
		SELECTCASE MIN(ABL:ARG:露出癖, 10)
		CASE 1
			TCVAR:ARG:逸脱 -= 5
		CASE 2 TO 5
			TCVAR:ARG:逸脱 -= 10
		CASE 6 TO 9
			TCVAR:ARG:逸脱 -= 20
		CASE 10
			TCVAR:ARG:逸脱 -= 30
		ENDSELECT
	ENDIF

	;指导者能力によるSOURCE増減
	IF TEQUIP:ARG:痛痛飞走啦
        TCVAR:ARG:疼痛 -= 35
        TCVAR:ARG:恐惧 -= 35
	ENDIF

	;SOURCEの補正値の最終結果
	FOR LCOUNT, 600, 630
		;减少PALAMのソースは、最低値が-99。其他は、-80
		SELECTCASE TCVARNAME:LCOUNT
		CASE "不潔", "恐惧", "逸脱", "反感追加"
			TCVAR:ARG:LCOUNT = MAX(TCVAR:ARG:LCOUNT, -99)
		CASEELSE
			TCVAR:ARG:LCOUNT = MAX(TCVAR:ARG:LCOUNT, -80)
		ENDSELECT
	NEXT

	;以下はCUP補正
	;阴蒂や菊花の露出具合
	SELECTCASE COND("陰毛", ARG)
	CASE 1 TO 3
		TCVAR:ARG:快Ｃ += 10
	CASE IS >= 6
		TCVAR:ARG:快Ａ -= 10
	ENDSELECT
	;阴蒂や乳頭の露出、勃起具合。穿環優遇。
	TCVAR:ARG:快Ｃ += CALCF("Ｃ発情", ARG)*5
	TCVAR:ARG:快Ｂ += CALCF("Ｂ発情", ARG)*5

	SIF TALENT:ARG:男性
		TCVAR:ARG:快Ａ += 20

	VARSET LOCAL

	LOCAL -= TEQUIP:ARG:利尿剤*30
	LOCAL += TEQUIP:ARG:媚薬

	;-------------------------------------------------
	;相性による上下の処理（快楽系）
	;-------------------------------------------------
	SIF RELATION:ARG:(NO:PLAYER) > 0
		LOCAL += RELATION:ARG:(NO:PLAYER) - 100

	TCVAR:ARG:快Ｃ += LOCAL
	TCVAR:ARG:快Ｖ += LOCAL
	TCVAR:ARG:快Ａ += LOCAL
	TCVAR:ARG:快Ｂ += LOCAL
	TCVAR:ARG:快Ｍ += LOCAL
	TCVAR:ARG:快尿 += LOCAL

	IF TALENT:ARG:内気
		TCVAR:ARG:恐怖 += 100
		TCVAR:ARG:反感 -= 30
	ENDIF
	IF TALENT:ARG:叛逆
		TCVAR:ARG:恭順 -= 75
		TCVAR:ARG:欲情 -= 50
		TCVAR:ARG:反感 += 50
	ENDIF
	IF TALENT:ARG:堅強
		TCVAR:ARG:恭順 -= 20
		TCVAR:ARG:欲情 -= 25
		TCVAR:ARG:恐怖 -= 50
		TCVAR:ARG:反感 -= 20
	ENDIF
	IF TALENT:ARG:坦率
		TCVAR:ARG:恭順 += 100
		TCVAR:ARG:反感 -= 20
	ENDIF
	SIF TALENT:ARG:内気
		TCVAR:ARG:反感 -= 50
	IF TALENT:ARG:高慢
		TCVAR:ARG:屈服 -= 50
		TCVAR:ARG:恐怖 -= 40
		TCVAR:ARG:反感 += 20
	ENDIF
	IF TALENT:ARG:謙虚
		TCVAR:ARG:屈服 += 100
		TCVAR:ARG:恐怖 += 50
		TCVAR:ARG:反感 -= 20
	ENDIF
	IF TALENT:ARG:強気
		TCVAR:ARG:恥情 -= 20
		TCVAR:ARG:恐怖 -= 50
	ENDIF
	SIF TALENT:ARG:坏心眼
		TCVAR:ARG:恭順 -= 20
	SIF TALENT:ARG:冷静
		TCVAR:ARG:恐怖 -= 50
	IF TALENT:ARG:感情缺乏
		TCVAR:ARG:恭順 -= 50
		TCVAR:ARG:欲情 -= 50
		TCVAR:ARG:屈服 -= 30
		TCVAR:ARG:恥情 -= 20
		TCVAR:ARG:恐怖 -= 40
		TCVAR:ARG:反感 -= 20
	ENDIF
	SIF TALENT:ARG:好奇心
		TCVAR:ARG:習得 += 20
	SIF TALENT:ARG:保守的
		TCVAR:ARG:習得 -= 20

	IF TALENT:ARG:容易迷恋
		TCVAR:ARG:恭順 += 20
		TCVAR:ARG:屈服 += 10
	ENDIF
	IF TALENT:ARG:清楚
		TCVAR:ARG:恭順 += 20
		TCVAR:ARG:恥情 += 50
	ENDIF

	SIF TALENT:ARG:発情体質
		TCVAR:ARG:欲情 += 50

	SIF TALENT:ARG:聰慧
		TCVAR:ARG:習得 += 50
	IF TALENT:ARG:笨蛋
		TCVAR:ARG:習得 -= 30
	ENDIF
	IF TALENT:ARG:献身
		TCVAR:ARG:屈服 += 30
		TCVAR:ARG:習得 += 30
	ENDIF
	SIF TALENT:ARG:接受快感
		TCVAR:ARG:欲情 += 50
	SIF TALENT:ARG:否定快感
		TCVAR:ARG:欲情 -= 50
	IF TALENT:ARG:好色
		TCVAR:ARG:欲情 += 20
		TCVAR:ARG:恥情 -= 20
	ENDIF
	IF TALENT:ARG:接受快感 + TALENT:ARG:好色 && SEXUAL_PLAY()
		TCVAR:ARG:欲情 += 30
		TCVAR:ARG:恐怖 -= 50
		TCVAR:ARG:反感 -= 50
	ENDIF
	IF TALENT:ARG:倒錯的
		TCVAR:ARG:恐怖 -= 50
		TCVAR:ARG:反感 -= 20
		IF ABNORMAL_PLAY()
			TCVAR:ARG:欲情 += 50
			TCVAR:ARG:反感 -= 30
		ENDIF
	ENDIF
	IF TALENT:ARG:恋慕 && PLAYER == MASTER
		TCVAR:ARG:反感 -= 30
	ENDIF

	LOCAL = STATE("酔酒", ARG) + STATE("烂醉", ARG)
	;酔酒
	IF LOCAL
		TCVAR:ARG:恭順 -= LOCAL*20
		TCVAR:ARG:欲情 += LOCAL*30
		TCVAR:ARG:習得 -= LOCAL*50
		TCVAR:ARG:恥情 -= LOCAL*30
		TCVAR:ARG:苦痛 -= LOCAL*10
		TCVAR:ARG:恐怖 -= LOCAL*10
		TCVAR:ARG:反感 -= LOCAL*10
	ENDIF
	IF COND("種族：人形", ARG)
		TCVAR:ARG:恐怖 -= 80
		TCVAR:ARG:反感 -= 80
	ENDIF

	;奉仕指令の干劲補正
	IF TCVAR:ARG:干劲
		;主动やってる行動に対する不満が少ない人
		IF TALENT:ARG:開朗 || TALENT:ARG:聰慧
			TCVAR:ARG:恐怖 -= 50 + TCVAR:ARG:干劲/2
			TCVAR:ARG:反感 -= 50 + TCVAR:ARG:干劲/2
		ELSE
			TCVAR:ARG:恐怖 -= 10 + TCVAR:ARG:干劲/2
			TCVAR:ARG:反感 -= 10 + TCVAR:ARG:干劲/2
		ENDIF
		TCVAR:ARG:習得 += MIN(TCVAR:ARG:干劲/2, 30)
		TCVAR:ARG:恥情 -= TCVAR:ARG:干劲/2
	ENDIF
	IF COND("発情期", ARG)
		TCVAR:ARG:欲情 += 100
		TCVAR:ARG:屈服 -= 50
		TCVAR:ARG:習得 -= 100
		TCVAR:ARG:恥情 -= 50
		TCVAR:ARG:恐怖 -= 20
		TCVAR:ARG:反感 -= 20
	ENDIF

	TCVAR:ARG:反感 -= MARK:ARG:苦痛刻印*10

	;推倒
	IF TEQUIP:ARG:推倒
		TCVAR:ARG:恐怖 -= 100
		TCVAR:ARG:反感 -= 200
	ENDIF

	;六九式BOUNS
	IF TEQUIP:ARG:六九式
		TCVAR:ARG:欲情 += 50
		TCVAR:ARG:恥情 += 50
	ENDIF

	;以下ＳＭ系。受虐属性で色々緩和
	;眼罩
	IF TEQUIP:ARG:眼罩 || TEQUIP:ARG:鼻钩
		TCVAR:ARG:恭順 += MIN(ABL:ARG:受虐属性, 5)*5 - 10
		TCVAR:ARG:欲情 += MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:屈服 += 20
		TCVAR:ARG:習得 -= 50
		TCVAR:ARG:恐怖 += 20
	ENDIF
	;縄・拘束
	IF TEQUIP:ARG:拘束
		;苦痛を伴う
		SIF GETBIT(TEQUIP:ARG:拘束, 0)
			TCVAR:ARG:苦痛 += 10
		SIF GETBIT(TEQUIP:ARG:拘束, 1)
			TCVAR:ARG:苦痛 += 20
		SIF GETBIT(TEQUIP:ARG:拘束, 2)
			TCVAR:ARG:苦痛 += 40
		;羞恥を伴う
		SIF GETBIT(TEQUIP:ARG:拘束, 3)
			TCVAR:ARG:恥情 += 10
		SIF GETBIT(TEQUIP:ARG:拘束, 4)
			TCVAR:ARG:恥情 += 20
		SIF GETBIT(TEQUIP:ARG:拘束, 5)
			TCVAR:ARG:恥情 += 40
		;恐怖を伴う
		SIF GETBIT(TEQUIP:ARG:拘束, 6)
			TCVAR:ARG:恐怖 += 10
		SIF GETBIT(TEQUIP:ARG:拘束, 7)
			TCVAR:ARG:恐怖 += 20
		SIF GETBIT(TEQUIP:ARG:拘束, 8)
			TCVAR:ARG:恐怖 += 40

		;9bit 手が使えない 10bit 足が使えない 11bit 体勢が変えられない
		LOCAL:1 = 0
		SIF GETBIT(TEQUIP:ARG:拘束, 9)
			LOCAL:1 += 20
		SIF GETBIT(TEQUIP:ARG:拘束, 10)
			LOCAL:1 += 10
		SIF GETBIT(TEQUIP:ARG:拘束, 11)
			LOCAL:1 += 30

		TCVAR:ARG:恭順 -= 30 + LOCAL:1/2 - MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:欲情 += MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:屈服 += LOCAL:1
		TCVAR:ARG:習得 -= LOCAL:1
		TCVAR:ARG:恐怖 += LOCAL:1
	ENDIF
	;口枷
	IF TEQUIP:ARG:口枷
		TCVAR:ARG:恭順 -= 20 - MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:欲情 += MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:屈服 += 20
		TCVAR:ARG:習得 -= 10
		TCVAR:ARG:恐怖 += 10
	ENDIF
	;浣腸
	IF TEQUIP:ARG:浣腸 || SELECTCOM == 136 || NOWEX:ARG:排泄
		LOCAL:1 = COND("液体浣腸", ARG)*10 + 10
		;排泄フラグＯＮ（このターンに漏らした）
		IF NOWEX:ARG:排泄
			LOCAL:1 = 200
		;栓没有
		ELSEIF COND("肛門栓", ARG) == 0
			LOCAL:1 += 30
		ENDIF
		TCVAR:ARG:恭順 -= 50 + LOCAL:1 - MIN(ABL:ARG:受虐属性, 5)*5
		TCVAR:ARG:屈服 += 50 + LOCAL:1
		TCVAR:ARG:習得 -= 50 + LOCAL:1
		TCVAR:ARG:恐怖 += 50 + LOCAL:1
	ENDIF

	;調教者のABL:技巧によって、教え方が擅長くなる
	SELECTCASE ABL:PLAYER:技巧 - ABL:ARG:技巧
	CASE IS >= 5
		TCVAR:ARG:習得 += 50
	CASE IS >= 3
		TCVAR:ARG:習得 += 30
	CASE IS >= 1
		TCVAR:ARG:習得 += 10
	ENDSELECT

	IF TEQUIP:ARG:媚薬
		TCVAR:ARG:恭順 -= TEQUIP:ARG:媚薬
		TCVAR:ARG:欲情 += TEQUIP:ARG:媚薬/2
		TCVAR:ARG:習得 -= TEQUIP:ARG:媚薬
		TCVAR:ARG:苦痛 -= TEQUIP:ARG:媚薬/2
		TCVAR:ARG:恐怖 -= TEQUIP:ARG:媚薬
		TCVAR:ARG:反感 -= TEQUIP:ARG:媚薬/4
	ENDIF
	IF TEQUIP:ARG:利尿剤
		TCVAR:ARG:恭順 -= 20
		TCVAR:ARG:欲情 -= 20
		TCVAR:ARG:屈服 += 20
		TCVAR:ARG:反感 += 50
	ENDIF

	;野外PLAY…花園、森林、水辺、海はBOUNS有
	IF COND("森林", ARG) || COND("花園", ARG) || COND("水辺", ARG) || COND("海", ARG)
		SIF COND("森林", ARG)
			TCVAR:ARG:欲情 += 20
		SIF COND("花園", ARG)
			TCVAR:ARG:恭順 += 20
		TCVAR:ARG:反感 -= 20
	ENDIF

	;甜言蜜语
	IF TEQUIP:ARG:甜言蜜语
		TCVAR:ARG:恭順 += 10
		TCVAR:ARG:欲情 += 10
		TCVAR:ARG:恐怖 -= 10
		TCVAR:ARG:反感 -= 10
	ENDIF
	;情緒をみる
	LOCAL = MOOD() / 10
	TCVAR:ARG:恭順 += LOCAL
	TCVAR:ARG:欲情 += LOCAL
	TCVAR:ARG:恐怖 -= LOCAL
	TCVAR:ARG:反感 -= LOCAL
	;絶頂補正
	IF NOWEX:ARG:絶頂数合計
		TCVAR:ARG:恐怖 -= 20
		TCVAR:ARG:反感 -= 20
	ENDIF

	;調教道具による反感軽減補正
	SELECTCASE TRAINNAME_EX(SELECTCOM)
	CASE "尿道导管"
		TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:导管*10)
	;CASE "膣鏡"
	;	TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:膣鏡*10)
	CASE "眼罩", "拘束", "口枷"
		TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:拘束具*10)
	CASE "浣腸"
		TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:浣腸*10)
	CASE "穿环"
		TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:穿环套装*10)
	CASE "攝像機"
		TCVAR:ARG:反感 = DIVIDE(TCVAR:ARG:反感, 90 + ITEM:撮影機材*10)
	ENDSELECT

	;指导者能力によるCUP増減
	IF TEQUIP:ARG:包容力
		TCVAR:ARG:恐怖 -= 50
		TCVAR:ARG:反感 -= 50
	ELSEIF TEQUIP:ARG:動画撮影
		TCVAR:ARG:恥情 += 50
	ELSEIF TEQUIP:ARG:努力的前輩
		TCVAR:ARG:恭順 += 10
		TCVAR:ARG:反感 -= 15
	ELSEIF TEQUIP:ARG:誘惑
		TCVAR:ARG:欲情 += 50
	ELSEIF TEQUIP:ARG:狩猟の美学
		TCVAR:ARG:欲情 += 70
	ELSEIF TEQUIP:MASTER:小悪魔の轻语 && TEQUIP:ARG:甜言蜜语
		TCVAR:ARG:快Ｃ += 20
		TCVAR:ARG:快Ｖ += 20
		TCVAR:ARG:快Ａ += 20
		TCVAR:ARG:快Ｂ += 20
		TCVAR:ARG:快Ｍ += 20
		TCVAR:ARG:快尿 += 20
	ELSEIF CADV("撒娇鬼")
		IF TRAIN_GENRE("胸部", SELECTCOM)
			IF TEQUIP:PLAYER:撒娇鬼 && TEQUIP:撒娇鬼 == 0
				SELECTCASE TRAINNAME_EX(SELECTCOM)
				CASE "给对方乳交", "胸爱抚奉侍"
					TCVAR:ARG:恭順 += 20
					TCVAR:ARG:欲情 += 20
				ENDSELECT
			ELSEIF TEQUIP:撒娇鬼
				TCVAR:ARG:快Ｂ += 20
				TCVAR:ARG:恭順 += 20
				TCVAR:ARG:欲情 += 20
			ENDIF
		ENDIF
	ENDIF

	;-------------------------------------------------
	;同じ指令の連続実行による上下の処理
	;-------------------------------------------------
	;連続実行の例外
	LOCAL = 0
	SELECTCASE SELECTCOM
	CASE 31
		SIF TEQUIP:ARG:振動棒 == 0
			LOCAL = 1
	CASE 33
		SIF TEQUIP:ARG:肛用振動棒 == 0
			LOCAL = 1
	CASE 136
		SIF TEQUIP:ARG:浣腸 == 0
			LOCAL = 1
	CASE 152
		SIF TEQUIP:ARG:尿道振動棒 == 0
			LOCAL = 1
	ENDSELECT

	;同じ指令の連続実行
	SIF SELECTCOM == PREVCOM && LOCAL == 0
		TCVAR:ARG:習得 += 50
	;-------------------------------------------------
	;疲労による上下の処理
	;-------------------------------------------------
	IF COND("疲労", ARG)
		TCVAR:ARG:恭順 -= 90
		TCVAR:ARG:欲情 -= 90
		TCVAR:ARG:習得 -= 90
		TCVAR:ARG:反感 += 20
	ENDIF

	;Ｖ潤はある程度以上は増えずらい
	SELECTCASE PALAM:ARG:Ｖ潤
	CASE IS <= 10000
	CASE IS <= 30000
		TCVAR:ARG:Ｖ潤 -= 100
	CASE IS <= 60000
		TCVAR:ARG:Ｖ潤 -= 200
	CASE IS <= 100000
		TCVAR:ARG:Ｖ潤 -= 400
	ENDSELECT

	SELECTCASE PALAM:ARG:Ａ潤
	CASE IS <= 10000
	CASE IS <= 30000
		TCVAR:ARG:Ａ潤 -= 100
	CASE IS <= 60000
		TCVAR:ARG:Ａ潤 -= 200
	CASE IS <= 100000
		TCVAR:ARG:Ａ潤 -= 400
	ENDSELECT

	;CUPの補正値の最終結果
	FOR LCOUNT, 630, 660
		SELECTCASE TCVARNAME:LCOUNT
		CASE "恐怖", "反感"
			TCVAR:ARG:LCOUNT = MAX(TCVAR:ARG:LCOUNT, -99)
		CASEELSE
			TCVAR:ARG:LCOUNT = MAX(TCVAR:ARG:LCOUNT, -80)
		ENDSELECT
	NEXT

CASE "精液弱点"
	;ここは最初に得る時限定の場所なので、既に素質を持っているならば終了。精液中毒も必須
	SIF TALENT:ARG:精液弱点 || ABL:ARG:精液中毒 == 0
		RETURN 0
	;精液を受け止めた経験が必要
	SIF MAX(EXP:ARG:精液経験/10, EXP:ARG:膣内精液経験, EXP:ARG:肛内精液経験, EXP:ARG:精飲経験, EXP:ARG:乳内精液経験*10, EXP:ARG:膀胱精液経験*5) < 20
		RETURN 0
	SIF ABL:ARG:精液中毒 + TALENT:ARG:倒錯的 + (EXP:ARG:膣内精液経験 + EXP:ARG:肛内精液経験 + EXP:ARG:精飲経験 + EXP:ARG:乳内精液経験*10 + EXP:ARG:膀胱精液経験*5)/100 < 3
		RETURN 0

	;以下でどこに射精されるのに弱いかを決める
	LOCAL:0 = EXP:ARG:精飲経験 * (ABL:ARG:Ｍ感覚 + TALENT:ARG:Ｍ性向 + TALENT:ARG:蕩唇*2)
	LOCAL:1 = EXP:ARG:膣内精液経験 * (ABL:ARG:Ｖ感覚 + TALENT:ARG:Ｖ性向 + TALENT:ARG:淫壷*2)
	LOCAL:2 = EXP:ARG:肛内精液経験 * (ABL:ARG:Ａ感覚 + TALENT:ARG:Ａ性向 + TALENT:ARG:尻穴狂い*2)
	;以下は難易度高いのでサービスとして他よりもなりやすい
	LOCAL:3 = EXP:ARG:乳内精液経験 * 10 * (ABL:ARG:Ｂ感覚 + TALENT:ARG:Ｂ性向 + TALENT:ARG:淫乳*2)
	LOCAL:4 = EXP:ARG:膀胱精液経験 * 5 * TALENT:ARG:尿道性感

	;上のパターンのうち最大の値をセット
	LOCAL:9 = MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:3, LOCAL:4)

	;0bit精飲弱点 1bit膣内射精弱点 2bit肛内射精弱点 3bit乳内射精弱点 4bit尿道内射精弱点
	IF LOCAL:0 >= LOCAL:9
		TALENT:ARG:精液弱点 = 1p0
	ELSEIF LOCAL:1 >= LOCAL:9
		TALENT:ARG:精液弱点 = 1p1
	ELSEIF LOCAL:2 >= LOCAL:9
		TALENT:ARG:精液弱点 = 1p2
	ELSEIF LOCAL:3 >= LOCAL:9
		TALENT:ARG:精液弱点 = 1p3
	ELSEIF LOCAL:4 >= LOCAL:9
		TALENT:ARG:精液弱点 = 1p4
	ENDIF
CASE "精液弱点部位の変化"
	;素質を持って無いならば終了
	SIF TALENT:ARG:精液弱点 == 0
		RETURN 0

	;以下でどこに射精されるのに弱いかを決める
	;ＶＡ以外の部位はサービスとして他よりもなりやすい
	LOCAL:0 = EXP:ARG:精飲経験 * 3 * (ABL:ARG:Ｍ感覚 + TALENT:ARG:Ｍ性向 + TALENT:ARG:蕩唇*2)
	LOCAL:1 = EXP:ARG:膣内精液経験 * (ABL:ARG:Ｖ感覚 + TALENT:ARG:Ｖ性向 + TALENT:ARG:淫壷*2 + MARK:ARG:淫紋)
	LOCAL:2 = EXP:ARG:肛内精液経験 * (ABL:ARG:Ａ感覚 + TALENT:ARG:Ａ性向 + TALENT:ARG:尻穴狂い*2)
	LOCAL:3 = EXP:ARG:乳内精液経験 * 10 * (ABL:ARG:Ｂ感覚 + TALENT:ARG:Ｂ性向 + TALENT:ARG:淫乳*2)
	LOCAL:4 = EXP:ARG:膀胱精液経験 * 5 * TALENT:ARG:尿道性感

	;上のパターンのうち最大の値をセット
	LOCAL:9 = MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:3, LOCAL:4)

	;ここで最大の値が50未満なら変化は起きない
	SIF LOCAL:9 < 50
		RETURN 0

	;0bit精飲弱点 1bit膣内射精弱点 2bit肛内射精弱点 3bit乳内射精弱点 4bit尿道内射精弱点
	;変更する際には１番大きい値が２番目の値よりも500多いか倍なければならないとする
	IF LOCAL:0 >= LOCAL:9
		SIF LOCAL:0 >= MIN(MAX(LOCAL:1, LOCAL:2, LOCAL:3, LOCAL:4)*2, MAX(LOCAL:1, LOCAL:2, LOCAL:3, LOCAL:4) + 500)
			TALENT:ARG:精液弱点 = 1p0
	ELSEIF LOCAL:1 >= LOCAL:9
		SIF LOCAL:1 >= MIN(MAX(LOCAL:0, LOCAL:2, LOCAL:3, LOCAL:4)*2, MAX(LOCAL:0, LOCAL:2, LOCAL:3, LOCAL:4) + 500)
			TALENT:ARG:精液弱点 = 1p1
	ELSEIF LOCAL:2 >= LOCAL:9
		SIF LOCAL:2 >= MIN(MAX(LOCAL:0, LOCAL:1, LOCAL:3, LOCAL:4)*2, MAX(LOCAL:0, LOCAL:1, LOCAL:3, LOCAL:4) + 500)
			TALENT:ARG:精液弱点 = 1p2
	ELSEIF LOCAL:3 >= LOCAL:9
		SIF LOCAL:3 >= MIN(MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:4)*2, MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:4) + 500)
			TALENT:ARG:精液弱点 = 1p3
	ELSEIF LOCAL:4 >= LOCAL:9
		SIF LOCAL:4 >= MIN(MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:3)*2, MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:3) + 500)
			TALENT:ARG:精液弱点 = 1p4
	ENDIF
CASE "日々の陰毛＆腋毛処理"
	IF COND("陰毛", ARG) >= 2 && COND("種族：人形", ARG) == 0
		;PRINTFORM [{ARG}]%CALLNAME:ARG% 陰毛{BASE:ARG:陰毛}

		;日数経過とともに陰毛が伸びます。若いとあんま生えない
		IF BASE:ARG:陰毛 > 100 && BASE:ARG:陰毛%100 < 90
			SELECTCASE COND("陰毛年齢", ARG)
			CASE 1
				BASE:ARG:陰毛 += 1 + RAND:2
			CASE 2
				BASE:ARG:陰毛 += 1 + RAND:3
			CASE 3
				BASE:ARG:陰毛 += 2 + RAND:3
			CASE 4
				BASE:ARG:陰毛 += 4 + RAND:2
			ENDSELECT
		ENDIF

		LOCAL = BASE:ARG:陰毛%100

		SELECTCASE COND("陰毛", ARG)
		;脱毛状態→还没長出来
		CASE 2
			SIF LOCAL >= LIMIT(30 * (COND("陰毛年齢", ARG) - 1), 30, 60)
				BASE:ARG:陰毛 = 400
		;光滑无毛→还没長出来
		CASE 3
			SIF LOCAL >= 14
				BASE:ARG:陰毛 = 400
		;还没長出来→自然
		CASE 4
			SIF LOCAL >= 20 + RAND:20 && COND("陰毛年齢", ARG) >= 2
				BASE:ARG:陰毛 = 600
		;お手入れ→自然
		CASE 5
			IF LOCAL >= 30 + RAND:20
				BASE:ARG:陰毛 = 600
				;兒童なら、还没長出来になる
				SIF COND("陰毛年齢", ARG) == 1
					BASE:ARG:陰毛 = 400
			ENDIF
		;大姐姐以上は自然→随意生長
		CASE 6
			SIF LOCAL >= 40 + RAND:40 && COND("陰毛年齢", ARG) >= 3
				BASE:ARG:陰毛 = 700
		ENDSELECT

		MEMO_INMOU = BASE:ARG:陰毛

		;自己お手入れ
		IF COND("身嗜み：陰毛", ARG)
			SELECTCASE COND("身嗜み：陰毛", ARG)
			CASE 3, 5
				SIF COND("身嗜み：陰毛", ARG) <= COND("陰毛", ARG)
					BASE:ARG:陰毛 = COND("身嗜み：陰毛", ARG)*100
			ENDSELECT
		;剃るなと指示されていない
		ELSE
			;受虐狂ッ気や露出癖が高いと、たま～に光滑无毛にします
			IF COND("陰毛", ARG) >= 4 && RAND:30 == 0 && MAX(ABL:ARG:露出癖 - 1, ABL:ARG:受虐属性) >= 3
				BASE:ARG:陰毛 = 300
				;PRINTFORMW %CALLNAME:ARG%は阴部の毛を光滑无毛に剃ってみたようだ…
			;本人の好みがある
			ELSEIF CSTR:ARG:陰毛的喜好 != ""
				SELECTCASE CSTR:ARG:陰毛的喜好
				CASE "白虎"
					SIF BASE:ARG:陰毛 >= 200
						BASE:ARG:陰毛 = 100
				CASE "脱毛処理"
					SIF BASE:ARG:陰毛 >= 300
						BASE:ARG:陰毛 = 200
				CASE "光滑无毛", "剃过留痕"
					SIF BASE:ARG:陰毛 >= 400
						BASE:ARG:陰毛 = 300
				CASE "还没長出来"
					SIF BASE:ARG:陰毛 >= 600
						BASE:ARG:陰毛 = 400
					SIF COND("陰毛年齢", ARG) == 1 && BASE:ARG:陰毛 >= 500
						BASE:ARG:陰毛 = 400
				CASE "無髭"
					SIF BASE:ARG:陰毛 >= 600
						BASE:ARG:陰毛 = 300
				CASE "保养完毕"
					SIF BASE:ARG:陰毛 >= 600
						BASE:ARG:陰毛 = 500
				CASE "自然"
					SIF BASE:ARG:陰毛 >= 700
						BASE:ARG:陰毛 = 600
				CASE "随意生長"

				ENDSELECT
			;食い込んでいる衣装の時には剃り整えます
			ELSEIF COND("陰毛", ARG) >= 6 && CHECK_CLO("勒紧的", ARG)
				BASE:ARG:陰毛 = 500
			;随意生長状態は、ほぼ確実に避けます
			ELSEIF COND("陰毛", ARG) == 7 && RAND:100
				;害羞+好色でない人は、剃ったと悟られるのが嫌なので、自然になるよう頑張ります
				IF (TALENT:ARG:保守的 + TALENT:ARG:害羞 && TALENT:ARG:好色 == 0) || RAND:10
					BASE:ARG:陰毛 = 600
				ELSE
					BASE:ARG:陰毛 = 500
					;PRINTFORMW %CALLNAME:ARG%は阴部の毛を剃り整えた…
				ENDIF
			;自然は、たま～に剃ります。好色だと、高確率で剃り整えます
			ELSEIF COND("陰毛", ARG) == 6 && (RAND:100 == 0 || COND("夏") || TALENT:ARG:好色)
				BASE:ARG:陰毛 = 500
				;PRINTFORMW %CALLNAME:ARG%は阴部の毛を剃り整えた…
			ENDIF
		ENDIF

		SIF BASE:ARG:陰毛 != MEMO_INMOU
			CFLAG:ARG:剃毛者 = BASE:ARG:識別番号

		;PRINTFORML → 陰毛{BASE:ARG:陰毛}
	ENDIF

	;次いで腋毛の処理
	SIF CONFIG("腋毛") == 0
		RETURN 0

	;日数経過とともに腋毛が伸びます。若いとあんま生えない
	SIF BASE:ARG:腋毛 > 100 && BASE:ARG:腋毛%100 < 90
		BASE:ARG:腋毛 += 1 + (COND("陰毛年齢", ARG) + RAND:2 - 1)/2

	LOCAL = BASE:ARG:腋毛%100

	SELECTCASE COND("腋毛", ARG)
	;脱毛状態→还没長出来
	CASE 2
		SIF LOCAL >= 20
			BASE:ARG:腋毛 = 400
	;光滑无毛→还没長出来
	CASE 3
		SIF LOCAL >= 8
			BASE:ARG:腋毛 = 400
	;还没長出来→自然
	CASE 4 TO 5
		SIF LOCAL >= 10 + RAND:10 && COND("陰毛年齢", ARG) >= 2
			BASE:ARG:腋毛 = 600
	;自然→随意生長
	CASE 6
		SIF LOCAL >= 5 + RAND:10 && COND("陰毛年齢", ARG) >= 2
			BASE:ARG:腋毛 = 700
	ENDSELECT

	;自己お手入れ
	IF COND("身嗜み：腋毛", ARG)
		SELECTCASE COND("身嗜み：腋毛", ARG)
		CASE 3
			SIF COND("身嗜み：腋毛", ARG) <= COND("腋毛", ARG)
				BASE:ARG:腋毛 = COND("身嗜み：腋毛", ARG)*100
		ENDSELECT
	;剃るなと指示されていない
	ELSE
		;腋毛に関しては、皆かなりまめに剃ります…保守的な人以外は！
		;本人の好みがある
		IF CSTR:ARG:腋毛的喜好 != ""
			SELECTCASE CSTR:ARG:腋毛的喜好
			CASE "無毛"
				SIF BASE:ARG:腋毛 >= 200
					BASE:ARG:腋毛 = 100
			CASE "脱毛処理"
				SIF BASE:ARG:腋毛 >= 300
					BASE:ARG:腋毛 = 200
			CASE "光滑无毛"
				SIF BASE:ARG:腋毛 >= 400
					BASE:ARG:腋毛 = 300
			CASE "自然"
				SIF BASE:ARG:腋毛 >= 700
					BASE:ARG:腋毛 = 600
			CASE "随意生長"

			ENDSELECT
		;好色or伪娘なら超高確率で腋つるつる
		ELSEIF TALENT:ARG:好色 || COND("伪娘", ARG)
			SIF COND("陰毛", ARG) >= 4 && RAND:100
				BASE:ARG:腋毛 = 300
		ELSEIF TALENT:ARG:保守的 && RAND:100
		ELSEIF COND("陰毛", ARG) == 4
			SIF RAND:10 == 0 || CHECK_CLO("腋露出", ARG)
				BASE:ARG:腋毛 = 300
		;随意生長状態は、ほぼ確実に避けます
		ELSEIF COND("陰毛", ARG) > 4 && RAND:100
			BASE:ARG:腋毛 = 300
		ENDIF
	ENDIF

CASE "欲求不満解消"
	BASE:ARG:欲求不満 = LIMIT(BASE:ARG:欲求不満 - ARG:1, 0, 100)

;身高は通常156～168(162±6)、娇小147～155(151±4)、娇小Ⅱ134～146(140±6)、娇小Ⅲ 121～133(127±6)
;118cm～130cm
CASE "娇小Ⅲ化"
	BASE:ARG:身高 = 118 + RAND:13

	TALENT:ARG:高大 = 0
	TALENT:ARG:娇小 = 3
	CALL CALC, "ＢＷＨ計測", ARG
;131cm～143cm
CASE "娇小Ⅱ化"
	BASE:ARG:身高 = 131 + RAND:13

	TALENT:ARG:高大 = 0
	TALENT:ARG:娇小 = 2
	CALL CALC, "ＢＷＨ計測", ARG
;144cm～152cm
CASE "娇小化"
	BASE:ARG:身高 = 144 + RAND:9

	TALENT:ARG:高大 = 0
	TALENT:ARG:娇小 = 1
	CALL CALC, "ＢＷＨ計測", ARG
;153cm～165cm
CASE "普通体型化"
	BASE:ARG:身高 = 153 + RAND:13

	TALENT:ARG:高大 = 0
	TALENT:ARG:娇小 = 0
	CALL CALC, "ＢＷＨ計測", ARG
;166cm～182cm
CASE "高大化"
	BASE:ARG:身高 = 166 + RAND:17
	TALENT:ARG:高大 = 1
	TALENT:ARG:娇小 = 0
	CALL CALC, "ＢＷＨ計測", ARG

;183cm～199cm
CASE "高大Ⅱ化"
	BASE:ARG:身高 = 183 + RAND:17

	TALENT:ARG:高大 = 2
	TALENT:ARG:娇小 = 0
	CALL CALC, "ＢＷＨ計測", ARG
;200cm～220cm
CASE "高大Ⅲ化"
	BASE:ARG:身高 = 200 + RAND:21

	TALENT:ARG:高大 = 3
	TALENT:ARG:娇小 = 0
	CALL CALC, "ＢＷＨ計測", ARG
CASE "ＢＷＨ計測"
	VARSET LOCAL
	;ゴールデンカノン (胸圍 = 身高*0.54, 腰圍 = 身高*0.38, 臀圍 = 身高*0.54)を参考
	;池面の3sizeは胸圍 = 身高*0.52, 腰圍 = 身高*0.41, 臀圍 = 身高*0.51とする
	;ちなみに、ゴールデンカノン比は当然ながら”腰圍は細めで臀圍は大きめ”である
	;LOCALが腰圍補正、LOCAL:1が臀圍補正
	IF TALENT:ARG:男性 && COND("伪娘", ARG) == 0
		LOCAL = 410
		LOCAL:1 = 510
	;少女以下は体のラインがそれほど際立たない
	ELSEIF TALENT:ARG:娇小
		LOCAL = 400
		LOCAL:1 = 510
	ELSE
		SELECTCASE AGE(ARG)
		;大人
		CASE IS >= 4
			LOCAL = 420 + RAND:6
			LOCAL:1 = 570
		;大姐姐
		CASE 3
			LOCAL = 410 + RAND:6
			LOCAL:1 = 550
		CASE 2
			LOCAL = 400
			LOCAL:1 = 530
		CASE 1
			LOCAL = 410
			LOCAL:1 = 510
		ENDSELECT
	ENDIF

	;腰靈活による腰のくびれ＆大号的お尻
	LOCAL -= MIN(RAND:(1 + TALENT:ARG:天性の腰靈活*10), 30)
	LOCAL:1 += MIN(RAND:(1 + TALENT:ARG:天性の腰靈活*5), 30)
	;大力士は筋肉がつくので腰が細めで尻がちょっとだけ大きい
	IF TALENT:ARG:大力士
		LOCAL -= 10
		LOCAL:1 += 5
	ENDIF

	;随机変化
	LOCAL:3 = RAND:26
	LOCAL = MULTIPLY(LOCAL, 90 + LOCAL:3)
	LOCAL:1 = MULTIPLY(LOCAL:1, 90 + LIMIT(RAND:31, LOCAL:3 - 10, LOCAL:3 + 5) )

	;誤差は95～120%+α(理想値よりもちょっと太めが平均)
	IF BASE:ARG:腰圍 == 0 || COND("角色メイク中") == 0
		BASE:ARG:腰圍 = LIMIT(BASE:ARG:身高*LOCAL/1000, BASE:ARG:身高*34/100, BASE:ARG:身高*(45 + AGE(ARG))/100)

		IF TALENT:ARG:苗条
			BASE:ARG:腰圍 -= RAND:(BASE:ARG:身高/30)
		ELSEIF TALENT:ARG:豐腴
			BASE:ARG:腰圍 += RAND:(BASE:ARG:身高/30)
		ENDIF
		SIF TALENT:ARG:筋肉
			BASE:ARG:腰圍 += BASE:ARG:身高/50
		;大姐姐や大人は豐腴したりする
		IF AGE(ARG) >= 3
			SELECTCASE RAND:20 + (AGE(ARG) == 3) * RAND:10
			CASE 0
				BASE:ARG:腰圍 += BASE:ARG:身高*5/100
			CASE 1, 2
				BASE:ARG:腰圍 += BASE:ARG:身高*4/100
			CASE 3, 4
				BASE:ARG:腰圍 += BASE:ARG:身高*3/100
			CASE 5, 6
				BASE:ARG:腰圍 += BASE:ARG:身高*2/100
			ENDSELECT
		ENDIF
	ENDIF

	IF BASE:ARG:臀圍 == 0 || COND("角色メイク中") == 0
		BASE:ARG:臀圍 = LIMIT(BASE:ARG:身高*LOCAL:1/1000, BASE:ARG:腰圍*130/100, BASE:ARG:腰圍*(160 + AGE(ARG)*10)/100)
		;大姐姐や大人は豐腴したりする
		IF AGE(ARG) >= 3
			SELECTCASE RAND:20 + (AGE(ARG) == 3) * RAND:10
			CASE 0
				BASE:ARG:臀圍 += BASE:ARG:身高*15/200
			CASE 1, 2
				BASE:ARG:臀圍 += BASE:ARG:身高*6/100
			CASE 3, 4
				BASE:ARG:臀圍 += BASE:ARG:身高*9/200
			CASE 5, 6
				BASE:ARG:臀圍 += BASE:ARG:身高*3/100
			ENDSELECT
		ENDIF
	ENDIF

	IF TALENT:ARG:苗条
		IF BASE:ARG:腰圍 > BASE:ARG:身高 * CALCF("苗条倍数", ARG) / 100
			BASE:ARG:腰圍 = BASE:ARG:身高 * CALCF("苗条倍数", ARG) / 100
			BASE:ARG:臀圍 = MIN(BASE:ARG:臀圍, BASE:ARG:腰圍*(160 + AGE(ARG)*10)/100)
		ENDIF
	ELSEIF TALENT:ARG:豐腴
		IF BASE:ARG:腰圍 < BASE:ARG:身高 * CALCF("豐腴倍数", ARG) / 100
			BASE:ARG:腰圍 = BASE:ARG:身高 * CALCF("豐腴倍数", ARG) / 100
			BASE:ARG:臀圍 = MAX(BASE:ARG:臀圍, BASE:ARG:腰圍*130/100)
		ENDIF
	ELSE
		SELECTCASE BASE:ARG:腰圍
		CASE IS >= BASE:ARG:身高 * CALCF("豐腴倍数", ARG) / 100
			BASE:ARG:腰圍 -= RAND:(BASE:ARG:身高/30) + 1
		CASE IS <= BASE:ARG:身高 * CALCF("苗条倍数", ARG) / 100
			BASE:ARG:腰圍 += RAND:(BASE:ARG:身高/30) + 1
		ENDSELECT
	ENDIF

	IF BASE:ARG:胸圍 == 0 || COND("角色メイク中") == 0
		;罩杯数に合わせて胸圍変更
		IF TALENT:ARG:男性
			IF COND("伪娘", ARG)
				BASE:ARG:胸圍 = CALCF("トップ胸圍とアンダーの差", BASE:ARG:罩杯) + MAX(BASE:ARG:身高*470/1000, BASE:ARG:腰圍)
			ELSE
				BASE:ARG:胸圍 = 1 + RAND:4 + MAX(BASE:ARG:身高*510/1000, BASE:ARG:腰圍*120/100)
			ENDIF
		ELSE
			BASE:ARG:胸圍 = CALCF("トップ胸圍とアンダーの差", BASE:ARG:罩杯) + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
		ENDIF
	ENDIF

	IF COND("角色メイク中")
		IF TALENT:ARG:巨尻 >= 3
			CALL CALC, "超尻化", ARG
		ELSEIF TALENT:ARG:巨尻 == 2
			CALL CALC, "爆尻化", ARG
		ELSEIF TALENT:ARG:巨尻
			CALL CALC, "巨尻化", ARG
		ELSEIF TALENT:ARG:小尻
			CALL CALC, "小尻化", ARG
		ELSE
			;腰圍と臀圍に応じて小尻か巨尻か判定
			CALL SETFLAG, "臀圍設定", ARG
		ENDIF
	ELSE
		;腰圍と臀圍に応じて小尻か巨尻か判定
		CALL SETFLAG, "臀圍設定", ARG
	ENDIF

CASE "男乳化"
	;AAA（5cm)未満
	IF COND("伪娘", ARG)
		BASE:ARG:胸圍 = 1 + RAND:4 + MAX(BASE:ARG:身高*470/1000, BASE:ARG:腰圍)
	ELSE
		BASE:ARG:胸圍 = 1 + RAND:4 + MAX(BASE:ARG:身高*510/1000, BASE:ARG:腰圍*120/100)
	ENDIF
	TALENT:ARG:乳房 = 0
	TALENT:ARG:貧乳 = 0
	TALENT:ARG:巨乳 = 0
	BASE:ARG:罩杯 = 0
CASE "貧乳化"
	;AAA（5cm）、AA（7.5cm)、A（10cm）、B（12.5cm）
	;AAA（5cm）以上、B（13cm）未満
	BASE:ARG:胸圍 = 5 + RAND:8 + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	TALENT:ARG:乳房 = 1
	TALENT:ARG:貧乳 = 1
	TALENT:ARG:巨乳 = 0
	BASE:ARG:罩杯 = CALCF("罩杯", CALCF("罩杯計算値", ARG) )
CASE "並乳化"
	;B（12.5cm）、C（15cm）、D（17.5cm）、E（20cm）
	;B（13cm）以上、E（20cm）未満
	BASE:ARG:胸圍 = 13 + RAND:7 + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	TALENT:ARG:乳房 = 1
	TALENT:ARG:貧乳 = 0
	TALENT:ARG:巨乳 = 0
	BASE:ARG:罩杯 = CALCF("罩杯", CALCF("罩杯計算値", ARG) )
CASE "巨乳化"
	;E（20cm）、F（22.5cm）、G（25cm）、H（27.5cm)、I（30cm)
	;E（20cm）以上、G～I（25～30cm）のどれか未満
	BASE:ARG:胸圍 = 20 + RAND:(CONFIG("巨乳補正") + 5) + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	TALENT:ARG:乳房 = 1
	TALENT:ARG:貧乳 = 0
	TALENT:ARG:巨乳 = 1
	BASE:ARG:罩杯 = CALCF("罩杯", CALCF("罩杯計算値", ARG) )
CASE "爆乳化"
	;G（25cm）、H（27.5cm)、I（30cm)、J（32.5cm)、K（35cm)、L（37.5cm)、M（40cm)、N（42.5cm)
	;ここのみ高大の場合にはCONFIG("巨乳補正")…値は0or2or5 が２回かかる事となるため振れ幅がとても大きい
	;条件			最小		最大
	;巨乳はＦまで		25…G(25cm)	32…I(30cm)、つまりJ(32.5cm)未満
	;巨乳はＧまで		28…H(27.5cm)	34…J(32.5cm)、つまりK(35cm)未満
	;巨乳はＨまで		30…I(30cm)	37…K(35cm)、つまりL(37.5cm)未満
	;巨乳はＧまで＆高大	28…H(27.5cm)	36…K(35cm)、つまりL(37.5cm)未満
	;巨乳はＨまで＆高大	30…I(30cm)	42…M(40cm)、つまりN(42.5cm)未満

	LOCAL = 25 + CONFIG("巨乳補正") + RAND:8
	SIF TALENT:ARG:高大
		LOCAL += RAND:(CONFIG("巨乳補正") + 1)

	BASE:ARG:胸圍 = MAX(LOCAL, CONFIG("巨乳補正") + 25) + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	TALENT:ARG:乳房 = 1
	TALENT:ARG:貧乳 = 0
	TALENT:ARG:巨乳 = 2
	BASE:ARG:罩杯 = CALCF("罩杯", CALCF("罩杯計算値", ARG) )
CASE "超乳化"
	;J（32.5cm)、K（35cm)、L（37.5cm)、M（40cm)、N（42.5cm)、O（45cm)……
	;J～L（30～35cm）以上

	LOCAL = 33 + CONFIG("巨乳補正") + RAND:7
	SIF TALENT:ARG:高大
		LOCAL += CONFIG("巨乳補正")

	BASE:ARG:胸圍 = MAX(LOCAL, CONFIG("巨乳補正") + 33) + MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	TALENT:ARG:乳房 = 1
	TALENT:ARG:貧乳 = 0
	TALENT:ARG:巨乳 = 3
	BASE:ARG:罩杯 = CALCF("罩杯", CALCF("罩杯計算値", ARG) )
CASE "超尻化"
	BASE:ARG:臀圍 = MAX(BASE:ARG:身高*(60 + RAND:3)/100, 87)
	SIF COND("巨尻", ARG) == 3
		RETURN 1
	FOR LCOUNT, 0, 100
		SIF COND("巨尻", ARG) == 3
			BREAK
		BASE:ARG:臀圍 += BASE:ARG:身高*2/100
	NEXT

CASE "爆尻化"
	BASE:ARG:臀圍 = MAX(BASE:ARG:身高*(57 + RAND:3)/100, 87)
	SIF COND("巨尻", ARG) == 2
		RETURN 1
	IF COND("巨尻", ARG) <= 1
		FOR LCOUNT, 0, 100
			SIF COND("巨尻", ARG) >= 2
				BREAK
			BASE:ARG:臀圍 += BASE:ARG:身高*2/100
		NEXT
	ELSE
		FOR LCOUNT, 0, 100
			SIF COND("巨尻", ARG) <= 2
				BREAK
			BASE:ARG:臀圍 = MAX(BASE:ARG:臀圍 - BASE:ARG:身高*2/100, 87)
		NEXT
	ENDIF

CASE "巨尻化"
	BASE:ARG:臀圍 = MAX(BASE:ARG:身高*(54 + RAND:3)/100, 87)
	SELECTCASE COND("巨尻", ARG)
	CASE 1
		RETURN 1
	CASE 0
		FOR LCOUNT, 0, 100
			BASE:ARG:臀圍 += BASE:ARG:身高*2/100
			SIF COND("巨尻", ARG)
				BREAK
		NEXT
	CASEELSE
		FOR LCOUNT, 0, 100
			BASE:ARG:臀圍 -= BASE:ARG:身高*2/100
			SIF COND("巨尻", ARG) <= 1
				BREAK
		NEXT
	ENDSELECT

CASE "並尻化"
	BASE:ARG:臀圍 = MAX(BASE:ARG:身高*(51 + RAND:3)/100, BASE:ARG:腰圍*100/(73 - RAND:4) )
	IF COND("小尻", ARG)
		FOR LCOUNT, 0, 100
			SIF COND("小尻", ARG) == 0
				BREAK
			BASE:ARG:臀圍 += BASE:ARG:身高*2/100
		NEXT
	ELSEIF COND("巨尻", ARG)
		FOR LCOUNT, 0, 100
			SIF COND("巨尻", ARG) == 0
				BREAK
			BASE:ARG:臀圍 -= BASE:ARG:身高*2/100
		NEXT
	ENDIF

CASE "小尻化"
	BASE:ARG:臀圍 = BASE:ARG:身高*(50 + RAND:5)/100
	SIF COND("小尻", ARG)
		RETURN 1
	FOR LCOUNT, 0, 100
		SIF COND("小尻", ARG)
			BREAK
		BASE:ARG:臀圍 -= BASE:ARG:身高*2/100
	NEXT
;ARGがＶ等で受け入れたものに対する形状記憶の母数
CASE "Ｖ履歴：記憶母数", "Ａ履歴：記憶母数", "尿道履歴：記憶母数"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	VARSET LOCALS
	;記録を分解する。LOCALS:XX = 受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数} となる
	SELECTCASE ARGS
	CASE "Ｖ履歴：記憶母数"
		SPLIT CSTR:ARG:Ｖ插入履歴, "/", LOCALS
	CASE "Ａ履歴：記憶母数"
		SPLIT CSTR:ARG:Ａ插入履歴, "/", LOCALS
	CASE "尿道履歴：記憶母数"
		SPLIT CSTR:ARG:尿道插入履歴, "/", LOCALS
	ENDSELECT

	VARSET LOCAL
	;記録は最大80種程度。
	FOR LCOUNT, 0, 80
		SIF LOCALS:LCOUNT == ""
			BREAK
		;カウントは前日まで
		;SIF TOINT(EXTSTR(LOCALS:LCOUNT, "＃", "＊") ) >= DAY
		;	CONTINUE
		;({尺寸}*2 + 1)*{回数}の和で、日期は関係ない
		LOCAL += (TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") )*2 + 1)*TOINT(EXTSTR(LOCALS:LCOUNT, "＊") )
	NEXT
	BASE:ARG:ARGS = LOCAL

ENDSELECT

;-------------------------------------------------
;色々と計算する関数(#FUNCTION)
;ARGは変更しない事。また、CALCF内の別のものを参照することは禁止
;-------------------------------------------------
@CALCF(ARGS, ARG, ARG:1, ARG:2, ARG:3, ARG:4, ARG:5)
#FUNCTION
#DIM LCOUNT
#DIM DYNAMIC MEMO, 10
#DIMS DYNAMIC MEMOS, 10

VARSET LOCAL
SELECTCASE ARGS
CASE "豐腴倍数"
	SIF TALENT:ARG:筋肉
		RETURNF 48
	RETURNF 46
CASE "苗条倍数"
	SIF TALENT:ARG:筋肉
		RETURNF 40
	RETURNF 38
;部活に顔を出した目的です。=1Ｈ目的, =2闲つぶし, =3仕方なく, =4你目的, =5指导者
CASE "本日の部活目的"

;ARGに射精LV, ARG:1に射精した人が入っている
CASE "射精量"
	SELECTCASE ARG + TALENT:(ARG:1):射精量強化
	CASE IS <= 1
		LOCAL = 3
	CASE 2
		LOCAL = 6
	CASE 3
		LOCAL = 10
	CASE 4
		LOCAL = 15
	CASEELSE
		LOCAL = 20 + (ARG + TALENT:(ARG:1):射精量強化 - 5)*20
	ENDSELECT
	LOCAL = MULTIPLY(LOCAL, 100 + RAND:81)
	RETURNF LOCAL
CASE "撃沈判定"
	;嘔吐の際には特例で情緒が30未満でも終了
	SIF NOWEX:嘔吐 && MOOD() < 30
		RETURNF 1
	;partnerの体力が0以下？
	SIF BASE:体力 <= 0 || BASE:精力 <= 0
		RETURNF 1
	RETURNF 0
;partnerが絶頂した場合
CASE "絶頂時精力消費"
	LOCAL = CHECK_ECST(ARG)
	LOCAL += MAX(NOWEX:ARG:Ｃ絶頂, NOWEX:ARG:Ｖ絶頂, NOWEX:ARG:Ａ絶頂, NOWEX:ARG:Ｂ絶頂, NOWEX:ARG:Ｍ絶頂, NOWEX:ARG:尿道絶頂)
	SIF LOCAL >= 1 && PALAM:ARG:連続絶頂COMBO数
		LOCAL += 1
;これは互相用技巧差を見る。負けているなら1まで
CASE "寸止め可能絶頂数"
	RETURNF MAX(MIN(ABL:PLAYER:技巧, 10) - MIN(ABL:技巧, 10), 1)
CASE "試験の予想点数"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	MEMO = 0
	;素質補正
	SIF TALENT:ARG:笨蛋 == 0
		MEMO += 100
	SIF TALENT:ARG:聰慧
		MEMO += 100

	;一回も勉強しないと低確率で成績悪化
	IF CFLAG:ARG:勉強時間 == 0
		MEMO -= 34
	;勉強した場合
	ELSE
		;とりあえず赤点は回避できる
		SIF MEMO <= 0
			MEMO += 100
		SIF CFLAG:ARG:勉強時間 >= 5
			MEMO += 100
		SELECTCASE COND("成績上昇率", ARG)
		CASE IS > 100
			MEMO += 100 + MIN(COND("成績上昇率", ARG) - 100, 100)
		CASEELSE
			MEMO += COND("成績上昇率", ARG)
		ENDSELECT
	ENDIF

	SELECTCASE MEMO
	CASE IS >= 600
		LOCAL = 100
	CASE IS >= 500
		LOCAL = 90 + 10*(MEMO - 400)/100
	CASE IS >= 400
		LOCAL = 80 + 10*(MEMO - 300)/100
	CASE IS >= 300
		LOCAL = 60 + 20*(MEMO - 200)/100
	CASE IS >= 200
		LOCAL = 45 + 15*(MEMO - 100)/100
	CASE IS >= 100
		LOCAL = 30 + 15*(MEMO - 100)/100
	CASEELSE
		LOCAL = 15 + 15*MEMO/100
	ENDSELECT
	RETURNF LOCAL
CASE "推定学力"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	RETURNF (MAX(CALCF("試験の予想点数", ARG), CFLAG:ARG:前々回試験結果) + CFLAG:ARG:前回試験結果 + CFLAG:ARG:試験結果)/3
CASE "妊娠判定"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	SELECTCASE COND("受精確率", ARG)
	CASE IS >= 100
		RETURNF 1
	CASE 1 TO 80
		SIF TALENT:ARG:难以妊娠
			RETURNF 0
	CASE IS <= 0
		RETURNF 0
	ENDSELECT

	SIF CFLAG:ARG:要受精確率 <= COND("受精確率", ARG)
		RETURNF 1
	RETURNF 0
;***種付け強化パッチで追加
;受精卵の着床しやすさ(＝妊娠しやすさ)を示す受精強度を算出します
CASE "受精強度算出"
	;基本値は父親の精子強度
	LOCAL = COND("精子強度", COND("精液の優勢", ARG))
	;母親が発情期
	;発情期には卵子が精子を受け入れやすく、受精強度が上がります
	IF COND("発情期", ARG)
		IF COND("種族：獣人", ARG)
			;獣人の場合
			;精子強度が2以上ならば精子強度を倍として扱う
			;発情期の獣人は、很强オスの精子をとくに歓迎してしまいます。
			SIF LOCAL > 1
				LOCAL *= 2
		ELSE
			;獣人以外は精子強度+1
			LOCAL += 1
		ENDIF
	ENDIF

	;母親の種族による影響
	;特定の種族は精子強度にある程度抵抗
	;(それなり以上に很强オスでなければ雑魚扱い)
	IF COND("種族：竜人", ARG) || COND("種族：精霊", ARG)
		SIF LOCAL <= 3
			LOCAL = 1
	ELSEIF COND("種族：天使", ARG) || COND("種族：悪魔", ARG) || COND("種族：死神", ARG)
		SIF LOCAL <= 2
			LOCAL = 1
	ELSEIF COND("種族：淫魔", ARG)
		;淫魔はとても妊娠しづらく、かなりの精子強度を無視できます
		;代わりに、一定以上の強さのオスに犯されると身体が屈服してしまいます
		IF LOCAL <= 3
			LOCAL = 1
		ELSE
			;精子強度４以上ならば、精子強度をさらに倍として扱う
			LOCAL *= 2
		ENDIF
	ENDIF

	;最低値は1
	RETURNF MAX(1, LOCAL)
;***着床判定追加パッチで追加
;海の日(FLAG:日 == 22)を頂点とする
CASE "晒痕強度"
	LOCAL = MAX(14 + RAND:8 - ABS(22 - FLAG:日), 5 + RAND:5)
CASE "胖次收藏枚数"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	RETURNF MAX(STRCOUNT(CSTR:ARG:胖次收藏, "/") - 1, 0)
CASE "射精部位の自動選択"
	SELECTCASE TCVAR:PLAYER:PLAY区分メイン
	CASE 1 TO 6, 18 TO 20
		SIF GETBIT(FLAG:射精部位の自動選択, TCVAR:PLAYER:PLAY区分メイン)
			RETURNF 1
	CASEELSE
		SIF CONFIG("其他射精の自動選択")
			RETURNF 1
	ENDSELECT

;今日は同居しているか？を判定
CASE "同居格子"
	IF COND("同居：一直", ARG) || COND("同居：一周間", ARG)
		RETURNF 1
	ELSEIF COND("同居：仅周末", ARG)
		SELECTCASE TEXTS("曜日")
		CASE "土"
			SIF COND("夜")
				RETURNF 1
		CASE "日"
			RETURNF 1
		CASE "月"
			SIF COND("朝")
				RETURNF 1
		ENDSELECT
	ENDIF
	RETURNF 0
;ARGがARG:1の阴茎の形を覚えている度合い
CASE "Ｖ履歴：Ｐ記憶", "Ａ履歴：Ｐ記憶", "尿道履歴：Ｐ記憶"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	SIF ARG:1 == 0 && PLAYER
		ARG:1 = PLAYER
	VARSET LOCALS
	;記録を分解する。LOCALS:XX = 受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数} となる
	SELECTCASE ARGS
	CASE "Ｖ履歴：Ｐ記憶"
		SPLIT CSTR:ARG:Ｖ插入履歴, "/", LOCALS
	CASE "Ａ履歴：Ｐ記憶"
		SPLIT CSTR:ARG:Ａ插入履歴, "/", LOCALS
	CASE "尿道履歴：Ｐ記憶"
		SPLIT CSTR:ARG:尿道插入履歴, "/", LOCALS
	ENDSELECT

	;入れた人を文字列に直してMEMOSで記録
	SELECTCASE ARG:1
	CASE -4
		MEMOS = ＠一般人＃
	;未設定
	CASE IS < 0
		RETURNF 0
	CASEELSE
		IF BASE:(ARG:1):識別番号
			MEMOS = ＠%TOSTR(BASE:(ARG:1):識別番号)%＃
		ELSE
			MEMOS = ＠一般人＃
		ENDIF
	ENDSELECT

	;記録は最大80種程度。
	FOR LCOUNT, 0, 80
		SIF LOCALS:LCOUNT == ""
			BREAK
		;カウントは前日まで
		;SIF TOINT(EXTSTR(LOCALS:LCOUNT, "＃", "＊") ) >= DAY
		;	CONTINUE
		;ARG:1の阴茎の記録か判別
		SIF STRCOUNT(LOCALS:LCOUNT, "阴茎：") == 0 || STRCOUNT(LOCALS:LCOUNT, MEMOS) == 0
			CONTINUE

		;記録されている阴茎尺寸が現在的阴茎尺寸と異なる場合にはカウントしない
		SELECTCASE ARG:1
		CASE IS > 0
			SIF BASE:(ARG:1):識別番号 && SIZE("阴茎", ARG:1) != TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") )
				CONTINUE
		ENDSELECT

		;記録されている阴茎尺寸が該当箇所の拡張度に対して大きい場合には完美契合しない
		SELECTCASE ARGS
		CASE "Ｖ履歴：Ｐ記憶"
			SIF TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") ) > ABL:ARG:Ｖ拡張
				CONTINUE
		CASE "Ａ履歴：Ｐ記憶"
			SIF TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") ) > ABL:ARG:Ａ拡張
				CONTINUE
		CASE "尿道履歴：Ｐ記憶"
			SIF TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") ) > ABL:ARG:尿道拡張
				CONTINUE
		ENDSELECT

		;({尺寸}*2 + 1)*{回数}の和で、日期は関係ない
		LOCAL += (TOINT(EXTSTR(LOCALS:LCOUNT, "：", "＠") )*2 + 1)*TOINT(EXTSTR(LOCALS:LCOUNT, "＊") )
	NEXT
	RETURNF LOCAL
;ARGが前回ARG:1の阴茎を受け入れてからの経過日数
CASE "Ｖ履歴：Ｐ何日ぶり", "Ａ履歴：Ｐ何日ぶり", "尿道履歴：Ｐ何日ぶり"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	SIF ARG:1 == 0 && PLAYER
		ARG:1 = PLAYER

	VARSET LOCALS
	;記録を分解する。LOCALS:XX = 受け入れたもの：{尺寸}＠入れた人＃{日期}＊{回数} となる
	SELECTCASE ARGS
	CASE "Ｖ履歴：Ｐ何日ぶり"
		SPLIT CSTR:ARG:Ｖ插入履歴, "/", LOCALS
	CASE "Ａ履歴：Ｐ何日ぶり"
		SPLIT CSTR:ARG:Ａ插入履歴, "/", LOCALS
	CASE "尿道履歴：Ｐ何日ぶり"
		SPLIT CSTR:ARG:尿道插入履歴, "/", LOCALS
	ENDSELECT

	;入れた人を文字列に直してMEMOSで記録
	SELECTCASE ARG:1
	CASE -4
		MEMOS = ＠一般人＃
	;未設定
	CASE IS < 0
		RETURNF 0
	CASEELSE
		IF BASE:(ARG:1):識別番号
			MEMOS = ＠%TOSTR(BASE:(ARG:1):識別番号)%＃
		ELSE
			MEMOS = ＠一般人＃
		ENDIF
	ENDSELECT

	;記録は最大80種程度。
	FOR LCOUNT, 0, 80
		;受け入れたことが無い場合は-1とする
		SIF LOCALS:LCOUNT == ""
			RETURNF -1
		;ARG:1の阴茎の記録か判別
		SIF STRCOUNT(LOCALS:LCOUNT, "阴茎：") == 0 || STRCOUNT(LOCALS:LCOUNT, MEMOS) == 0
			CONTINUE
		;Ｖ插入履歴は左から日期順に並ぶようになっているため、最初にヒットしたものが最新の日期となる
		RETURNF DAY - TOINT(EXTSTR(LOCALS:LCOUNT, "＃", "＊") ) - 1
	NEXT

CASE "何番目？"
	SIF ARG == ARG:1
		RETURNF 1
	SIF ARG == ARG:2
		RETURNF 2
	SIF ARG == ARG:3
		RETURNF 3
	SIF ARG == ARG:4
		RETURNF 4
	SIF ARG == ARG:5
		RETURNF 5
	RETURNF 0
;ARGがARG:1に注がれた量を返す。指定没有ならARG=TARGET、ARG:1=PLAYER
CASE "膣内精液経験", "肛内精液経験", "精飲経験", "乳内精液経験", "膀胱精液経験"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET
	SIF ARG:1 == 0 && PLAYER
		ARG:1 = PLAYER

	SELECTCASE ARG:1
	CASE -4
		MEMOS = 一般人：
	CASE IS < 0
		RETURNF 0
	CASEELSE
		IF BASE:(ARG:1):識別番号
			MEMOS = %TOSTR(BASE:(ARG:1):識別番号)%：
		ELSE
			MEMOS = 一般人：
		ENDIF
	ENDSELECT

	VARSET LOCALS

	SELECTCASE ARGS
	CASE "膣内精液経験"
		SPLIT CSTR:ARG:被Ｖ中出, "/", LOCALS
	CASE "肛内精液経験"
		SPLIT CSTR:ARG:被Ａ中出, "/", LOCALS
	CASE "精飲経験"
		SPLIT CSTR:ARG:精飲, "/", LOCALS
	CASE "乳内精液経験"
		SPLIT CSTR:ARG:被乳内中出, "/", LOCALS
	CASE "膀胱精液経験"
		SPLIT CSTR:ARG:被膀胱中出, "/", LOCALS
	ENDSELECT

	FOR LCOUNT, 0, 30
		SIF LOCALS:LCOUNT == ""
			BREAK
		;対象を尋找
		SIF MEMOS != SUBSTRING(LOCALS:LCOUNT, 0, STRLENS(MEMOS) )
			CONTINUE

		;相手：量 となっているので"量"部分を抜き出して、数に戻す
		MEMOS:1 = %SUBSTRING(LOCALS:LCOUNT, STRLENS(MEMOS), -1)%

		LOCAL = TOINT(MEMOS:1)

		RETURNF LOCAL
	NEXT
	RETURNF 0

;これは疼痛が無い最大径
CASE "尿道径"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

	;値の平均が基本的な尿道の太さ
	IF PENIS(ARG)
		LOCAL = SUM_STR(CSTR:ARG:Ｐ尿道拡張度)
	ELSE
		LOCAL = SUM_STR(CSTR:ARG:Ｖ尿道拡張度)
	ENDIF

	;四捨五入する
	LOCAL = (LOCAL + 5)/10

	RETURNF LOCAL
CASE "尿道拡張の壁"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

	;だいたいＰ尿道は15mm、Ｖ尿道は30mmぐらいが壁
	IF PENIS(ARG)
		LOCAL = (2 + TALENT:ARG:拡張適性) * MIN_STR(CONDS("Ｐ尿道の初期拡張度", ARG) ) + SIZE("基本阴茎尺寸", ARG)*3
	ELSE
		LOCAL = (2 + TALENT:ARG:拡張適性) * MIN_STR(CONDS("Ｖ尿道の初期拡張度", ARG) ) + BASE:ARG:身高/30
	ENDIF

	RETURNF LOCAL
CASE "尿道拡張の限界"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

	;だいたいＰ尿道は25mm、Ｖ尿道は40mmぐらいが壁
	IF PENIS(ARG)
		LOCAL = (3 + TALENT:ARG:拡張適性*2) * MIN_STR(CONDS("Ｐ尿道の初期拡張度", ARG) ) + SIZE("基本阴茎尺寸", ARG)*6
	ELSE
		LOCAL = (3 + TALENT:ARG:拡張適性*2) * MIN_STR(CONDS("Ｖ尿道の初期拡張度", ARG) ) + BASE:ARG:身高/15
	ENDIF

	RETURNF LOCAL
CASE "レズ・ＢＬ度"
	SELECTCASE ARG
	CASE 0 TO 29
		RETURNF 1
	CASE 30 TO 59
		RETURNF 1
	CASE 60 TO 69
		IF TALENT:男性 == 0 && TALENT:PLAYER:男性 == 0
			RETURNF 3
		ELSE
			RETURNF 2
		ENDIF
	CASE 70 TO 79
		IF TALENT:男性 && TALENT:PLAYER:男性
			RETURNF 3
		ELSE
			RETURNF 2
		ENDIF
	CASE 80 TO 89
		RETURNF 2
	CASE 90 TO 119
		RETURNF 1
	CASE 120 TO 129
		RETURNF 2
	;フィスト
	CASE 141 TO 143
		RETURNF 2
	;SM
	CASE 130 TO 149
		RETURNF 1
	CASEELSE
		RETURNF 1
	ENDSELECT
CASE "Ｖ拡張の上限", "Ｖ拡張の上限：処女無視"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

	SIF TALENT:ARG:男性
		RETURNF 0

	;処女
	SIF TALENT:ARG:処女 && ARGS != "Ｖ拡張の上限：処女無視"
		RETURNF 0

	;基本はＶ拡張経験
	SELECTCASE EXP:ARG:Ｖ拡張経験
	CASE IS >= 200
		IF TALENT:ARG:拡張適性
			LOCAL = 7
		ELSE
			LOCAL = 6
		ENDIF
	CASE IS >= 150
		LOCAL = 6
	CASE IS >= 100
		LOCAL = 5
	CASE IS >= 50
		LOCAL = 4
	CASE IS >= 20
		LOCAL = 3
	CASE IS >= 5
		LOCAL = 2
	CASEELSE
		LOCAL = 1
	ENDSELECT

	;Ｖ経験で最低値を定める
	SELECTCASE EXP:ARG:Ｖ経験
	CASE IS >= 300
		SIF LOCAL < 3
			LOCAL = 3
	CASE IS >= 100
		SIF LOCAL < 2
			LOCAL = 2
	ENDSELECT

	SELECTCASE EXP:ARG:Ｖ性交経験
	CASE IS >= 150
		SIF LOCAL < 3
			LOCAL = 3
	CASE IS >= 50
		SIF LOCAL < 2
			LOCAL = 2
	ENDSELECT

	;出産経験があるなら、Ｖ拡張LVが４未満なら+1
	SIF TALENT:ARG:出産経験 && LOCAL < 4
		LOCAL += 1
	;淫壷
	SIF TALENT:ARG:淫壷
		LOCAL += 1

	;損傷したばかりでは膣の容量は増えない
	SIF EXP:ARG:Ｖ損傷経験 - TALENT:ARG:Ｖ損傷 > 0
		LOCAL += 1 + MIN(2, (EXP:ARG:Ｖ損傷経験 - TALENT:ARG:Ｖ損傷)/3)
	;小只的ら-1
	SIF LOCAL >= 2 && TALENT:ARG:娇小 && TALENT:ARG:拡張適性 == 0
		LOCAL -= 1

	SIF TALENT:ARG:拡張適性 && LOCAL < 3
		LOCAL += 1

CASE "Ａ拡張の上限"
	SIF ARG < 0
		RETURNF 0
	SIF ARG == 0 && TARGET
		ARG = TARGET

	;基本はＡ拡張経験
	SELECTCASE EXP:ARG:Ａ拡張経験
	CASE IS >= 200
		IF TALENT:ARG:拡張適性
			LOCAL = 7
		ELSE
			LOCAL = 6
		ENDIF
	CASE IS >= 150
		LOCAL = 6
	CASE IS >= 100
		LOCAL = 5
	CASE IS >= 50
		LOCAL = 4
	CASE IS >= 20
		LOCAL = 3
	CASE IS >= 5
		LOCAL = 2
	CASE IS >= 1
		LOCAL = 1
	CASEELSE
		LOCAL = 0
	ENDSELECT

	;Ａ経験で最低値を定める
	SELECTCASE EXP:ARG:Ａ経験
	CASE IS >= 300
		SIF LOCAL < 3
			LOCAL = 3
	CASE IS >= 100
		SIF LOCAL < 2
			LOCAL = 2
	CASE IS >= 20
		SIF LOCAL < 1
			LOCAL = 1
	ENDSELECT
	SELECTCASE EXP:ARG:Ａ性交経験
	CASE IS >= 150
		SIF LOCAL < 3
			LOCAL = 3
	CASE IS >= 20
		SIF LOCAL < 2
			LOCAL = 2
	ENDSELECT

	SIF TALENT:ARG:尻穴狂い
		LOCAL += 1

	SIF EXP:ARG:Ａ損傷経験 - TALENT:ARG:Ａ損傷 > 0
		LOCAL += 1 + MIN(2, (EXP:ARG:Ａ損傷経験 - TALENT:ARG:Ａ損傷)/3)
	;小只的ら拡張が停滞する
	SIF LOCAL >= 3 && TALENT:ARG:娇小 && TALENT:ARG:拡張適性 == 0
		LOCAL -= 1
	SIF TALENT:ARG:Ａ性向 && LOCAL < 1
		LOCAL += 1

	SIF TALENT:ARG:拡張適性 && LOCAL < 3
		LOCAL += 1

CASE "尿道刺激"
	SELECTCASE ABL:尿道感覚
	CASE 0
		LOCAL = 100
	CASE 1 TO 4
		LOCAL = ABL:尿道感覚*200
	CASE 5 TO 10
		LOCAL = 800 + (ABL:尿道感覚 - 4)*100
	CASEELSE
		LOCAL = 1400 + (ABL:尿道感覚 - 10)*10
	ENDSELECT

	SIF TALENT:尿道性感 == 0
		LOCAL /= 10

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;舌や指などで刺激(緩やかな上昇)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 40 + MIN(ABL:尿道感覚, 10)*5)
	;性交や振動棒など(急激な上昇)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 5 + MIN(ABL:尿道感覚, 10)*15)
	;フィストなど上級者向け(極端な上昇)
	CASE 3
		LOCAL = MULTIPLY(LOCAL, MAX(MIN(ABL:尿道感覚, 10)*50 - 200, (MIN(ABL:尿道感覚, 10) + 1)*5) )
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "Ｃ刺激"
	;上昇曲線としてはへ字型にする。他の部位に比べて快感が強め
	SELECTCASE ABL:Ｃ感覚
	CASE 0
		LOCAL = 200
	;400～1300
	CASE 1 TO 4
		LOCAL = ABL:Ｃ感覚*300 + 100
	;1600～2600
	CASE 5 TO 10
		LOCAL = 1400 + (ABL:Ｃ感覚 - 4)*200
	;3000～
	CASEELSE
		LOCAL = 3000 + (ABL:Ｃ感覚 - 10)*10
	ENDSELECT

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;舌や指などで刺激(緩やかな上昇)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 40 + MIN(ABL:Ｃ感覚, 10)*5)
	;素股系(刺激は副産物。弱め)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 30)
	;逆性交系(強め)
	CASE 3
		LOCAL = MULTIPLY(LOCAL, 100 + ABL:PLAYER:Ｖ名器度)
	;逆肛交系(強め)
	CASE 4
		LOCAL = MULTIPLY(LOCAL, 100 + ABL:PLAYER:Ａ名器度)
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "Ｖ刺激"
	SELECTCASE ABL:Ｖ感覚
	CASE 0
		LOCAL = 100
	CASE 1 TO 4
		LOCAL = ABL:Ｖ感覚*200
	CASE 5 TO 10
		LOCAL = 800 + (ABL:Ｖ感覚 - 4)*100
	CASEELSE
		LOCAL = 1400 + (ABL:Ｖ感覚 - 10)*10
	ENDSELECT

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;舌や指などで刺激(緩やかな上昇)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 40 + MIN(ABL:Ｖ感覚, 10)*5)
	;性交や振動棒など(急激な上昇)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 5 + MIN(ABL:Ｖ感覚, 10)*15)
	;フィストなど上級者向け(極端な上昇)
	CASE 3
		LOCAL = MULTIPLY(LOCAL, MAX(MIN(ABL:Ｖ感覚, 10)*50 - 200, (MIN(ABL:Ｖ感覚, 10) + 1)*5) )
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "Ａ刺激"
	SELECTCASE ABL:Ａ感覚
	CASE 0
		LOCAL = 100
	CASE 1 TO 4
		LOCAL = ABL:Ａ感覚*200
	CASE 5 TO 10
		LOCAL = 800 + (ABL:Ａ感覚 - 4)*100
	CASEELSE
		LOCAL = 1400 + (ABL:Ａ感覚 - 10)*10
	ENDSELECT

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;舌や指などで刺激(緩やかな上昇。LV10でも90％)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 40 + MIN(ABL:Ａ感覚, 10)*5)
	;性交や振動棒など(急激な上昇。LV7で100％)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 5 + MIN(ABL:Ａ感覚, 10)*15)
	;フィストなど上級者向け(極端な上昇。LV6で100％)
	CASE 3
		LOCAL = MULTIPLY(LOCAL, MAX(MIN(ABL:Ａ感覚, 10)*50 - 200, (MIN(ABL:Ａ感覚, 10) + 1)*5) )
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "Ｂ刺激"
	SELECTCASE ABL:Ｂ感覚
	CASE 0
		LOCAL = 100
	CASE 1 TO 4
		LOCAL = ABL:Ｂ感覚*200
	CASE 5 TO 10
		LOCAL = 800 + (ABL:Ｂ感覚 - 4)*100
	CASEELSE
		LOCAL = 1400 + (ABL:Ｂ感覚 - 10)*10
	ENDSELECT

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;舌や指などで刺激(緩やかな上昇)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 40 + MIN(ABL:Ｂ感覚, 10)*5)
	;乳交など(刺激は副産物。弱め)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 10)
	;性交や振動棒など(急激な上昇)
	CASE 3
		LOCAL = MULTIPLY(LOCAL, 5 + MIN(ABL:Ｂ感覚, 10)*15)
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "Ｍ刺激"
	SELECTCASE ABL:Ｍ感覚
	CASE 0
		LOCAL = 100
	CASE 1 TO 4
		LOCAL = ABL:Ｍ感覚*200
	CASE 5 TO 10
		LOCAL = 800 + (ABL:Ｍ感覚 - 4)*100
	CASEELSE
		LOCAL = 1400 + (ABL:Ｍ感覚 - 10)*10
	ENDSELECT

	SELECTCASE ARG
	;道具の使用（基本値）
	CASE 0
	;接吻(緩やかな上昇)
	CASE 1
		LOCAL = MULTIPLY(LOCAL, 30 + MIN(ABL:Ｍ感覚, 10)*5)
	;口交など(刺激は副産物。弱め)
	CASE 2
		LOCAL = MULTIPLY(LOCAL, 10)
	ENDSELECT
	SIF ARG:1
		LOCAL = LOCAL * ARG:1 / 100
CASE "快感上昇の上限措置"
	;ARG=補正前の快感、ARG:1=対象部位の感度,ARG:2=敏感
	SIF ARG <= 0
		RETURNF 0

	;欲情と情緒が両方高くないと得られる快感の上限が下がる
	;欲情によるペナルティ
	SELECTCASE PALAM:欲情
	CASE IS < 100
		ARG:1 = MAX(ARG:1 - 3, 0)
	CASE IS < 3000
		ARG:1 = MAX(ARG:1 - 2, 0)
	CASE IS < 10000
		ARG:1 = MAX(ARG:1 - 1, 0)
	ENDSELECT

	;情緒による下方補正
	SELECTCASE MOOD_HEART()
	;爱心没有
	CASE 0
		ARG:1 = MAX(ARG:1 - 4, 0)
	;爱心一個
	CASE 1
		ARG:1 = MAX(ARG:1 - 3, 0)
	;爱心２個
	CASE 2
		ARG:1 = MAX(ARG:1 - 2, 0)
	;爱心３個
	CASE 3
		ARG:1 = MAX(ARG:1 - 1, 0)
	ENDSELECT

	;媚薬BOUNS
	SIF TEQUIP:媚薬
		ARG:1 += TEQUIP:媚薬/100

	;絶頂補正BOUNS
	SIF EX:絶頂数合計
		ARG:1 += 1

	;快楽ＬＶの帽が E(1～2), D(3～4), C(5～6), B(7～8), A(9～10)なのでそれを区切りとする
	;LOCAL:1は得られる快感に補正がかかり始める値（大体PALAM_LVに沿っている）
	;LOCAL:2が上限のような役割となっている
	;PALAM_LVの値は、順に1:100,2:500,3:3000,4:1万,5:3万,6:6万,7:10万,8:15万,9:25万
	SELECTCASE ARG:1
	CASE 0
		LOCAL:1 = 100
		LOCAL:2 = 500
	CASE 1
		LOCAL:1 = 500
		LOCAL:2 = 3000
	CASE 2 TO 4
		LOCAL:1 = 3000
		LOCAL:2 = 6000
	CASE 5 TO 8
		LOCAL:1 = 6000
		LOCAL:2 = 10000
	CASE 9, 10
		LOCAL:1 = 10000
		LOCAL:2 = 20000
	CASEELSE
		LOCAL:1 = 10000 + 1000*(ARG:1 - 10)
		LOCAL:2 = 20000 + 2000*(ARG:1 - 10)
	ENDSELECT

	SELECTCASE ARG
	CASE IS <= LOCAL:1
		LOCAL = ARG
	CASEELSE
		;LOCAL:1を越えた分の快感については補正で減らされる
		LOCAL = LOCAL:1 + (ARG - LOCAL:1)/5
		SIF LOCAL > LOCAL:2
			LOCAL = LOCAL:2 + (LOCAL - LOCAL:2)/20
	ENDSELECT
	;PRINTFORML ARG = {ARG}, ARG:1 = {ARG:1}, LOCAL = {LOCAL}, LOCAL:1 = {LOCAL:1}, LOCAL:2 = {LOCAL:2}
	RETURNF LOCAL

CASE "快楽補正"
	;同性補正(扶她は無視)
	SIF COND("性別嫌悪", PLAYER)
		ARG = MULTIPLY(ARG, 100 - COND("性別嫌悪", PLAYER) * 30)
	;PALAM:欲情をみる
	ARG = MULTIPLY(ARG, LIMIT(80 + GET_PALAMLV(PALAM:欲情)*10, 90, 120) )

	;ABL:奉仕精神とEXP:奉仕快楽経験をみる
	LOCAL:1 = MIN(ABL:奉仕精神*10 + GET_EXP_LV(EXP:奉仕快楽経験)*5 + TALENT:献身*30, 100)
	SELECTCASE SELECTCOM
	CASE 6, 140
		ARG = MULTIPLY(ARG, 100 + LOCAL:1)
	CASE 65, 75, 90 TO 94, 96 TO 119
		SIF TEQUIP:推倒 == 0
			ARG = MULTIPLY(ARG, 100 + LOCAL:1/2)
	ENDSELECT

	;ABL:施虐属性とEXP:嗜虐快楽経験をみる
	LOCAL:1 = MIN(MIN(ABL:施虐属性, 5)*10 + GET_EXP_LV(EXP:嗜虐快楽経験)*5, 100)
	SELECTCASE SELECTCOM
	CASE 95, 105
		ARG = MULTIPLY(ARG, 100 + LOCAL:1)
	CASE 1, 9, 96, 120, 126
		SIF TEQUIP:推倒
			ARG = MULTIPLY(ARG, 100 + LOCAL:1/2)
	CASEELSE
		SIF TEQUIP:面部騎乗
			ARG = MULTIPLY(ARG, 100 + LOCAL:1/2)
	ENDSELECT

	;ここまでで得た補正が２倍以上の場合には、２のn乗 < 補正倍率 < ２の(n+1)乗 →　(n+1)倍 < 補正倍率 < (n+2)倍　となるように。
	FOR LCOUNT, 0, 10
		LOCAL:2 = 10 - LCOUNT
		LOCAL:3 = POWER(2, LOCAL:2)
		IF ARG > LOCAL:3 * 1000
			ARG = (LOCAL:2 + 1)*1000 + (ARG - LOCAL:3*1000)/LOCAL:3
			BREAK
		ENDIF
	NEXT

	RETURNF ARG
CASE "基礎補正"
	TFLAG:基礎補正 = ARG
	;技巧の差などによる補正…PLAYERの技巧は防御に使う際には1.5倍強に換算する
	LOCAL = LIMIT(5 * (ABL:技巧 + (TEQUIP:推倒 > 0) - (ABL:PLAYER:技巧 + 1)*3/2), -30, 30)

	;媚薬
	LOCAL += TEQUIP:PLAYER:媚薬

	;最悪でも3割は与える
	LOCAL = MAX(LOCAL, -70)
	TFLAG:基礎補正 = MULTIPLY(TFLAG:基礎補正, 100 + LOCAL)

	;相思相愛、性癖など
	;魅力
	SIF TALENT:魅力
		TIMES TFLAG:基礎補正, 1.10
	;前のターンに手下留情されている（このターンで手下留情解除の予定）
	SIF TEQUIP:PLAYER:手下留情 == 1
		TIMES TFLAG:基礎補正, 1.50
	;溜まっている
	SIF BASE:PLAYER:精力 > MAXBASE:PLAYER:精力 && PENIS(PLAYER)
		TIMES TFLAG:基礎補正, 2.00

	IF PLAYER == MASTER
		IF TALENT:相思相愛
			;３分の一にも達していないならBOUNS
			SIF TFLAG:基礎補正*3 < MAXBASE:PLAYER:絶頂
				TFLAG:基礎補正 += MAXBASE:PLAYER:絶頂 / 5
		ELSE
			SIF TALENT:第一次的对象
				TIMES TFLAG:基礎補正, 1.10
		ENDIF
		;性癖
		IF CSTR:MASTER:性癖 != ""
			;ヒット数に応じてBOUNS
			SELECTCASE CALCF("属性突かれ", TARGET)
			;5%
			CASE 1
				TFLAG:基礎補正 += (TFLAG:基礎補正*5)/100
			;5% + 1000
			CASE 2 TO 4
				TFLAG:基礎補正 += (TFLAG:基礎補正*5)/100 + 1000
			;5% + 2000
			CASE IS >= 5
				TFLAG:基礎補正 += (TFLAG:基礎補正*5)/100 + 2000
			ENDSELECT
		ENDIF
	ENDIF

	;-------------------------------------------------
	;ここから下は减少補正
	;-------------------------------------------------
	;眼罩されてると、技巧減少
	SIF TEQUIP:眼罩
		TIMES TFLAG:基礎補正, 0.80
	;利尿剤を使われてると、技巧減少
	SIF TEQUIP:利尿剤
		TIMES TFLAG:基礎補正, 0.80
	;拘束されてると、技巧減少
	SIF TEQUIP:拘束
		TIMES TFLAG:基礎補正, 0.80
	;酔酒
	IF STATE("烂醉", TARGET)
		TIMES TFLAG:基礎補正, 0.40
	ELSEIF STATE("酔酒", TARGET)
		TIMES TFLAG:基礎補正, 0.80
	ENDIF

	;体力が低い
	SIF BASE:体力 <= 500
		TIMES TFLAG:基礎補正, 0.50

	RETURNF TFLAG:基礎補正
CASE "実行値による欲情追加"
	IF TCVAR:奉仕快楽フラグ && TCVAR:嗜虐快楽フラグ
		LOCAL = 150 * MAX(ABL:奉仕精神, ABL:施虐属性)
	;奉仕中心
	ELSEIF TCVAR:奉仕快楽フラグ
		LOCAL = 150 * ABL:奉仕精神
	;嗜虐中心
	ELSEIF TCVAR:嗜虐快楽フラグ
		LOCAL = 150 * ABL:施虐属性
	ELSE
		RETURNF 0
	ENDIF

	;実行値の量で効果増
	LOCAL = MULTIPLY(LOCAL, 100 + TCVAR:干劲)
CASE "阴茎好き度"
	;おちんちんが好きかどうか。この値が高いと、阴茎にフィットする
	;恋慕
	SIF PLAYER == MASTER && TALENT:ARG:恋慕
		LOCAL += 1
	SIF COND("性別嫌悪")
		RETURNF LOCAL
	;接受快感or好色
	SIF TALENT:ARG:接受快感 || TALENT:ARG:好色
		LOCAL += 1
	SIF TALENT:ARG:淫壷 || TALENT:ARG:尻穴狂い
		LOCAL += 1
	SIF ABL:ARG:精液中毒 >= 3
		LOCAL += 1
	SIF ABL:ARG:奉仕精神 >= 5
		LOCAL += 1
	SIF TALENT:ARG:献身
		LOCAL += 1
	SIF COND("陶酔", ARG)
		LOCAL += 1
CASE "Ｃ発情"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	SIF PENIS(ARG)
		RETURNF 0
	;0通常 1皮の下で勃起 2顔を出す 3ギンギン
	IF COND("調教中") == 0
		SIF CFLAG:ARG:躁动难忍
			LOCAL += 1
	ELSE
		SIF PALAM:ARG:欲情 >= 30000
			LOCAL += 1
		SIF (ABL:ARG:Ｃ感覚 >= 5 && PALAM:ARG:欲情 >= 3000) || EX:ARG:Ｃ絶頂
			LOCAL += 1
		SIF EX:ARG:Ｃ絶頂 >= 5
			LOCAL += 1
	ENDIF
	SIF TALENT:ARG:淫核 && LOCAL < 2
		LOCAL += 1
	SIF TALENT:ARG:陰蒂環
		LOCAL = MAX(LOCAL + 1, 2)
	SIF COND("陰核肥大", ARG)
		LOCAL += 1
	;包茎は陰核肥大じゃないと顔を出さない
	IF COND("陰核包茎", ARG)
		IF COND("陰核肥大", ARG)
			LOCAL = MAX(LOCAL - 2, 0)
		ELSE
			LOCAL = MIN(LOCAL, 1)
		ENDIF
	ENDIF

CASE "Ｖ発情"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	SIF TALENT:ARG:男性
		RETURNF 0
	;0通常 1発情 2ビショビショ 3愛液駄々漏れ
	SIF TALENT:ARG:淫壷
		LOCAL += 1
	IF COND("調教中") == 0
		SIF CFLAG:ARG:躁动难忍
			LOCAL += 1
	ELSE
		;欲情(媚薬)
		SIF PALAM:ARG:欲情 >= 10000 || TEQUIP:ARG:媚薬
			LOCAL += 1
		SIF ABL:ARG:Ｖ感覚 >= 3 && PALAM:ARG:欲情 >= 3000
			LOCAL += 1
		;絶頂
		SIF EX:ARG:Ｖ絶頂 || EX:ARG:絶頂数合計 >= 3
			LOCAL += 1
		SIF EX:ARG:Ｖ絶頂 >= 3 || EX:ARG:絶頂数合計 >= 10
			LOCAL += 1
	ENDIF
CASE "Ｂ発情"
	SIF ARG == 0 && TARGET
		ARG = TARGET
	;0陥没 1通常 2しこりかけ 3勃起 4ギンギン
	SIF COND("真性陥没乳頭", ARG)
		RETURNF 0
	SIF TALENT:ARG:淫乳
		LOCAL += 1
	IF COND("調教中") == 0
		SIF COND("欲求不満", ARG)
			LOCAL += 1
		SIF CFLAG:ARG:躁动难忍
			LOCAL += 1
	ELSE
		SIF (ABL:ARG:Ｂ感覚 >= 5 && PALAM:ARG:欲情 >= 3000) || PALAM:ARG:欲情 >= 10000 || EX:ARG:Ｂ絶頂
			LOCAL += 1
		SIF PALAM:ARG:欲情 >= 30000
			LOCAL += 1
		SIF EX:ARG:Ｂ絶頂 >= 5
			LOCAL += 1
	ENDIF
	IF COND("假性陥没乳頭", ARG)
		;授乳経験増加
		SIF LOCAL <= 2 && EXP_GAIN("授乳経験", ARG)
			LOCAL += 1
		SIF LOCAL <= 2
			RETURNF 0
	ELSEIF LOCAL == 0
		LOCAL += 1
	ENDIF
	SIF COND("乳頭肥大", ARG)
		LOCAL += 1

CASE "絶頂"
	;射精条件を満たしているか？
	SELECTCASE BASE:ARG:絶頂
	CASE IS < MAXBASE:ARG:絶頂
		RETURNF 0
	CASE IS < MAXBASE:ARG:絶頂*2
		SIF COND("絶頂許可", PLAYER) == 0 && TEQUIP:ARG:逆調教 == 0
			RETURNF 0
	ENDSELECT

	;念のため
	SIF EJAC:ARG <= 0
		EJAC:ARG = 10000

	SELECTCASE BASE:ARG:絶頂
	CASE IS >= EJAC:ARG*6
		LOCAL = MAX(BASE:ARG:絶頂/(EJAC:ARG*3), 3)
	CASE IS >= EJAC:ARG*4
		LOCAL = 3
	CASE IS >= EJAC:ARG*2
		LOCAL = 2
	CASE IS >= EJAC:ARG
		LOCAL = 1
	CASEELSE
		RETURNF 0
	ENDSELECT

	;射精量強化(上限突破で射精ランクを強化する)
	SIF TALENT:ARG:射精量強化 && PENIS(ARG)
		LOCAL += TALENT:ARG:射精量強化

	;精力次第で最低射精量が増える試み
	SELECTCASE BASE:ARG:精力
	CASE IS >= 200
		SIF LOCAL < 3 && PENIS(ARG)
			LOCAL = 3
	CASE IS >= 100
		SIF LOCAL < 2 && PENIS(ARG)
			LOCAL = 2
	ENDSELECT

	SIF TALENT:ARG:一般人
		LOCAL = (LOCAL + 2)/3
CASE "絶頂の原因"
	;ARGは角色、ARG:1はSELECTCOM
	SIF ARG < 0
		RETURNF 0
	;PLAYERに阴茎がない時の絶頂フラグ（暫定）
	IF PENIS(PLAYER) == 0
		LOCAL = 30

		;調教者Ｖ挿入
		IF INSERT("Ｖ挿入", PLAYER, ARG)
			LOCAL = 32
		;調教者Ａ挿入
		ELSEIF INSERT("Ａ挿入", PLAYER, ARG)
			LOCAL = 35
		;調教者尿道挿入
		ELSEIF INSERT("尿道挿入", PLAYER, ARG)
			LOCAL = 38
		;自慰
		ELSEIF TEQUIP:PLAYER:自慰
			LOCAL = 39
		ELSE
			SELECTCASE ARG:1
			;接吻、舐陰、舐肛など、口への刺激
			CASE 1, 4, 6, 9, 104
				LOCAL = 31
			;舐陰強制や逆強姦など、阴部への刺激
			CASE 80, 98, 120 TO 124
				LOCAL = 32
			;足交系
			CASE 95
				LOCAL = 33
			;泡泡浴や身体系
			CASE 94
				LOCAL = 34
			;逆肛交
			CASE 96, 125 TO 129
				LOCAL = 35
			;胸への刺激
			CASE 11, 102
				LOCAL = 36
			;自慰
			CASE 282
				LOCAL = 39
			ENDSELECT
		ENDIF
	ELSEIF PENIS(PLAYER)
		;不慮の射精の場合は素股(身体)で射精となるようにする
		LOCAL = 7

		;Ｖ挿入
		IF INSERT("Ｖ挿入", ARG, PLAYER)
			LOCAL = 3
		;Ａ挿入
		ELSEIF INSERT("Ａ挿入", ARG, PLAYER)
			LOCAL = 4
		;尿道挿入
		ELSEIF INSERT("尿道挿入", ARG, PLAYER)
			LOCAL = 19
		;調教者Ｖ挿入
		ELSEIF INSERT("Ｖ挿入", PLAYER, ARG)
			LOCAL = 10
		;調教者Ａ挿入
		ELSEIF INSERT("Ａ挿入", PLAYER, ARG)
			LOCAL = 11
		;六九式
		ELSEIF TEQUIP:ARG:六九式
			SELECTCASE TEQUIP:ARG:六九式
			CASE 90, 97, 105
				LOCAL = 2
			CASE 91, 150
				LOCAL = 1
			CASE 92
				LOCAL = 5
			CASE 98
				LOCAL = 9
			CASEELSE
				LOCAL = 8
			ENDSELECT
		;自慰
		ELSEIF TEQUIP:PLAYER:自慰
			LOCAL = 20
		ELSE
			SELECTCASE ARG:1
			CASE 3
				SIF CHECK_COM("口交自慰", ARG:1) || CHECK_COM("６９自慰", ARG:1)
					LOCAL = 1
			;口交系
			CASE 91, 99, 140, 150
				LOCAL = 1
			;手交系
			CASE 90, 97, 105
				LOCAL = 2
				SIF CHECK_COM("玩弄Ａ手交", ARG:1)
					LOCAL = 15
			;性交
			CASE 60 TO 69
				LOCAL = 3
			;Ａ性交
			CASE 70 TO 79
				LOCAL = 4
			;胸系
			CASE 81, 92
				LOCAL = 5
				SIF CHECK_COM("乳夾口交", ARG:1)
					LOCAL = 1
			;乳頭奸
			CASE 82
				LOCAL = 18
			;尿道挿入
			CASE 83 TO 88
				LOCAL = 19
			;足交系
			CASE 95
				LOCAL = 6
			;素股や身体系
			CASE 16, 93, 94, 100
				LOCAL = 7
			;接吻、舐陰、舐肛など、口への刺激
			CASE 1, 9
				LOCAL = 16
				SIF TEQUIP:ARG:推倒
					LOCAL = 14
			CASE 4, 6
				LOCAL = 8
			;逆舐陰
			CASE 98
				LOCAL = 9
			;調教者Ｖ挿入
			CASE 120 TO 124
				LOCAL = 10
			;調教者Ａ挿入
			CASE 125 TO 129
				LOCAL = 11
			;肛門奉仕
			CASE 96
				LOCAL = 15
			;洗面奶
			CASE 104
				LOCAL = 17
				SIF CHECK_COM("洗面奶手交", ARG:1)
					LOCAL = 2
			;自慰
			CASE 282
				LOCAL = 20
			;胸への刺激
			CASE 11, 102
				LOCAL = 21
			;逆Ａ振動棒
			CASE 107
				LOCAL = 22
			ENDSELECT
		ENDIF
	ENDIF

CASE "自由な手"
	;手を拘束
	SIF GETBIT(TEQUIP:拘束, 20)
		RETURNF 0
	;自慰に使える手の数
	LOCAL = 2
	;ARGでSELECTCOMを管理。ARGに入力が無いなら、SELECTCOMが代入される。
	SIF ARG == 0
		ARG = SELECTCOM
	SELECTCASE ARG
	CASE 3
		RETURNF LOCAL
	CASE 13, 14, 90, 92 TO 94, 97 TO 99, 104 TO 107
		LOCAL -= 2
	CASE 91, 96
		IF CHECK_COM("乳夾口交") || CHECK_COM("玩弄Ａ手交")
			LOCAL -= 2
		ELSE
			LOCAL -= 1
		ENDIF
	ENDSELECT
	;挿入中
	IF INSERT("挿入")
		IF INSERT("背面座位")
		ELSEIF INSERT("後背位")
			LOCAL -= 2
		ELSEIF INSERT("対面座位") || INSERT("狂野摇摆")
			LOCAL = 0
		ELSE
			LOCAL -= 1
		ENDIF
	ENDIF

CASE "漏尿"
	;だいたい、値が5以上だと漏尿してしまう
	;射精したor絶頂して無いor尿意が無いor男性
	SIF NOWEX:ARG:射精 || NOWEX:ARG:絶頂数合計 == 0 || BASE:ARG:尿意 < 5000 || TALENT:ARG:男性 || COND("尿道使用中", ARG)
		RETURNF 0
	IF BASE:ARG:尿意 < 10000
		SIF GETBIT(TEQUIP:ARG:筋弛緩剤, 1) == 0 && ABL:ARG:尿道拡張 < 0 && TALENT:ARG:絶頂失禁体質 == 0
			RETURNF 0
	ENDIF
	LOCAL = BASE:ARG:尿意 / 5000

	;Gスポ刺激
	IF CHECK_COM("玩弄Ｇ点") || SELECTCOM == 66
		LOCAL += 1
		;前のターンからしつこく責めている
		SIF PREVPLAY("玩弄Ｇ点")
			LOCAL += 3
	ENDIF
	SIF COND("疲労", ARG)
		LOCAL += 1
	SIF MAX(EX:ARG:Ｃ絶頂, EX:ARG:Ｖ絶頂, EX:ARG:Ａ絶頂, EX:ARG:尿道絶頂) >= 20
		LOCAL += 1
	SIF PALAM:ARG:連続絶頂COMBO数 >= 5
		LOCAL += PALAM:ARG:連続絶頂COMBO数 / 5
	IF NOWEX:ARG:絶頂数合計 >= 5
		LOCAL += 2
	ELSEIF NOWEX:ARG:絶頂数合計 >= 3
		LOCAL += 1
	ENDIF
	SIF GETBIT(TEQUIP:ARG:筋弛緩剤, 1)
		LOCAL += 2
	;年齢層補正
	SIF AGE(ARG) >= 3 && LOCAL >= 1
		LOCAL -= 1
	SIF TALENT:ARG:絶頂失禁体質
		LOCAL += 3
	;尿道拡張…初期値が-2なのでそれを考慮
	IF ABL:ARG:尿道拡張 >= 0
		LOCAL += ABL:ARG:尿道拡張 + 1
		SIF BASE:ARG:尿意 >= MAXBASE:ARG:尿意
			LOCAL += 2
	ELSEIF EXP:ARG:尿道拡張経験 >= 20
		LOCAL += 1
	ENDIF
CASE "随机射精"
	IF RAND:2 == 0
		LOCAL = 0
	ELSEIF RAND:3
		;口→顔
		IF SHOOT("口")
			LOCAL = 2
		;手か胸→口
		ELSEIF SHOOT("手") || SHOOT("胸")
			LOCAL = 3
		;挿入系→お腹かお尻
		ELSEIF SHOOT("膣内") || SHOOT("肛門")
			IF INSERT("後背位") || INSERT("背面座位")
				LOCAL = 7
			ELSE
				LOCAL = 6
			ENDIF
		;→股間
		ELSE
			LOCAL = 5
		ENDIF
	ELSE
		;口→髪顔胸股間
		IF SHOOT("口")
			LOCAL = 1 + RAND:2 + 3*RAND:2
		;手or挿入系→髪顔口胸股間
		ELSEIF SHOOT("手") || SHOOT("膣内") || SHOOT("肛門")
			LOCAL = 1 + RAND:5
		;胸→髪顔口股間
		ELSEIF SHOOT("胸")
			LOCAL = LIMIT(1 + RAND:3 + 5*(RAND:4 == 0), 1, 5)
		;其他
		ELSE
			LOCAL = LIMIT(1 + RAND:2 + 5*(RAND:3 == 0), 1, 5)
		ENDIF
	ENDIF

CASE "甜言蜜语成功"
	SIF ARG == 0 && TARGET
		ARG = TARGET

	SIF COND("調教中") == 0 && TALENT:恋慕
		RETURNF 100

	;基本成功率は20%。情緒依存で上昇する
	LOCAL = 20
	;情緒で成功率変化
	SIF PLAYER == MASTER
		LOCAL += MOOD() / 5
	;専用の素質を持ってる？
	LOCAL += TALENT:PLAYER:甜言蜜语*10
	;二人きりだと確率ＵＰ
	SIF FLAG:二人きり
		LOCAL += 10

	;成功率Up補正
	SIF TALENT:ARG:坦率
		LOCAL += 3
	SIF TALENT:ARG:高慢
		LOCAL += 10
	SIF TALENT:ARG:好奇心
		LOCAL += 3
	SIF TALENT:ARG:開朗
		LOCAL += 3
	SIF TALENT:ARG:喜歡引人注目
		LOCAL += 3
	SIF TALENT:ARG:害羞
		LOCAL += 3
	SIF TALENT:ARG:笨蛋
		LOCAL += 3
	SIF TALENT:ARG:淫乱
		LOCAL += 5
	SIF TALENT:ARG:恋慕
		LOCAL += 10
	SIF TALENT:ARG:相思相愛
		LOCAL += 10
	;魔法使は誉められるのが大好き！
	SIF COND("種族：魔法使", ARG)
		LOCAL += 10
	;妖术使も誉められるのが大好き？
	SIF COND("種族：妖术使", ARG)
		LOCAL += 10
	SIF ABL:ARG:信頼
		LOCAL += ABL:ARG:信頼 * 3
	SIF TEQUIP:ARG:新妻PLAY
		LOCAL += 5

	SELECTCASE TRAINNAME_EX(PREVCOM)
	;前回Ｈがソフト愛撫系
	CASE "愛撫", "胸愛撫", "阴部愛撫", "抱上去"
		LOCAL += 10
	;前回Ｈが接吻
	CASE "接吻"
		LOCAL += 15
	CASEELSE
		;前回Ｈが接吻
		SIF TEQUIP:ARG:接吻
			LOCAL += 15
		;見つめ合って挿入中
		SIF INSERT("正常位", ARG) + INSERT("対面座位", ARG)
			LOCAL += 15
	ENDSELECT

	;前回絶頂
	LOCAL += PREVEX("絶頂数合計", ARG)*5

	;成功率Down補正
	SIF TALENT:ARG:内気
		LOCAL -= 8
	SIF TALENT:ARG:叛逆
		LOCAL -= 10
	SIF TALENT:ARG:傲慢
		LOCAL -= 10
	SIF TALENT:ARG:冷静
		LOCAL -= 3
	SIF TALENT:ARG:感情缺乏
		LOCAL -= 5
	SIF TALENT:ARG:保守的
		LOCAL -= 3
	SIF TALENT:ARG:難以越過的底線
		LOCAL -= 8
	SIF TALENT:ARG:聰慧
		LOCAL -= 3
	SIF TALENT:ARG:狂気
		LOCAL -= 15
	SIF TEQUIP:ARG:振動棒
		LOCAL -= 2
	SIF TEQUIP:ARG:肛用振動棒
		LOCAL -= 3
	SIF TEQUIP:ARG:尿道振動棒
		LOCAL -= 4
	SIF TEQUIP:ARG:媚薬
		LOCAL -= 5
	SIF TEQUIP:ARG:利尿剤
		LOCAL -= 5
	SIF TEQUIP:ARG:眼罩
		LOCAL -= 1
	SIF TEQUIP:ARG:拘束
		LOCAL -= 5
	SIF TEQUIP:ARG:口枷
		LOCAL -= 3
	SIF TEQUIP:ARG:浣腸
		LOCAL -= 10
	SIF TEQUIP:ARG:攝像機
		LOCAL -= 3

	SIF TALENT:PLAYER:謎之魅力
		LOCAL += 10

	SIF TEQUIP:ARG:堕天使の甘言
		LOCAL += 10

	SIF LOCAL >= MAX(RANDF(100), 1)
		RETURNF LOCAL
	RETURNF 0

CASE "甜言蜜语"
	LOCAL = 500
	SIF TALENT:内気
		TIMES LOCAL, 1.25
	SIF TALENT:叛逆
		TIMES LOCAL, 1.50
	SIF TALENT:堅強
		TIMES LOCAL, 2.00
	SIF TALENT:傲慢
		TIMES LOCAL, 1.50
	SIF TALENT:冷静
		TIMES LOCAL, 1.25
	SIF TALENT:感情缺乏
		TIMES LOCAL, 1.50
	SIF TALENT:保守的
		TIMES LOCAL, 1.25
	SIF TALENT:難以越過的底線
		TIMES LOCAL, 1.50
	SIF TALENT:害羞
		TIMES LOCAL, 1.25
	SIF TALENT:狂気
		TIMES LOCAL, 2.00
CASE "弱点突かれ"
	SELECTCASE ARG
	CASE 90, 97
		SIF COND("手弱点", PLAYER)
			LOCAL += 1
	CASE 91, 99, 140, 150
		SIF COND("口弱点", PLAYER)
			LOCAL += 1
	CASE 5, 81, 92, 94, 104
		SIF COND("胸弱点", PLAYER)
			LOCAL += 1
	CASE 95
		SIF COND("脚弱点", PLAYER)
			LOCAL += 1
	CASE 1, 13, 60 TO 69
		SIF COND("♀弱点", PLAYER)
			LOCAL += 1
		SIF COND("♀弱点", PLAYER) && TEQUIP:推倒 && ARG == 1
			LOCAL += 1
		SIF COND("接吻弱点", PLAYER) && ARG == 63
			LOCAL += 1
	CASE 6
		SIF COND("接吻弱点", PLAYER)
			LOCAL += 1
	CASE 9, 14, 70 TO 79
		SIF COND("肛門弱点", PLAYER)
			LOCAL += 1
		SIF COND("接吻弱点", PLAYER) && ARG == 73
			LOCAL += 1
	CASE 4, 120 TO 129
		SIF COND("♂弱点", PLAYER)
			LOCAL += 1
	ENDSELECT

CASE "属性突かれ"
	SIF CSTR:PLAYER:性癖 == ""
		RETURNF 0

	FOR LCOUNT, 0, NUM("属性")
		LOCALS:LCOUNT = %NAMES("属性", LCOUNT)%\/
		SIF STRCOUNT(CSTR:ARG:属性, LOCALS:LCOUNT) == 0
			CONTINUE
		SIF STRCOUNT(CSTR:PLAYER:性癖, LOCALS:LCOUNT)
			LOCAL += 1
	NEXT
CASE "苦痛刻印獲得"
	SIF TEQUIP:ARG:推倒 || SELECTCOM == 280
		RETURNF 0
	SELECTCASE CUP:ARG:苦痛
	CASE IS >= 30000
		SIF MARK:ARG:苦痛刻印 < 3
			RETURNF 3
	CASE IS >= 10000
		SIF MARK:ARG:苦痛刻印 < 2
			RETURNF 2
	CASE IS >= 3000
		SIF MARK:ARG:苦痛刻印 < 1
			RETURNF 1
	ENDSELECT
	RETURNF 0

CASE "トップ胸圍とアンダーの差"
	;0, 5, 8, 10, 13, 15, 18, 20, …
	SIF ARG == 0
		RETURNF 0
	RETURNF (ARG + 1)/2*5 + (ARG + 1)%2*3
CASE "罩杯"
	;(0, 0-4), (1, 5-7), (2, 8-9), …
	RETURNF MAX(ARG/5*2 + ARG%5/3 - 1, 0)
CASE "罩杯計算値"
	IF TALENT:ARG:乳房 == 0
		RETURNF 0
	ELSEIF TALENT:ARG:娇小
		RETURNF MAX(BASE:ARG:胸圍 - MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍), 5)
	ELSE
		RETURNF BASE:ARG:胸圍 - MAX(BASE:ARG:身高*432/1000, BASE:ARG:腰圍)
	ENDIF
CASE "男性特有の素質"
	SELECTCASE TALENTNAME:ARG
	CASE "早漏", "遅漏", "伪娘", "童貞"
		RETURNF 1
	CASEELSE
		RETURNF 0
	ENDSELECT
CASE "女性特有の素質"
	SELECTCASE TALENTNAME:ARG
	CASE "処女", "Ｖ損傷", "淫壷", "Ｖ性向", "貧乳", "巨乳", "母乳体質", "妊娠", "陰唇環", "避妊の護符", "常時Ｖ振動棒"
		RETURNF 1
	CASEELSE
		RETURNF 0
	ENDSELECT
CASE "最愛の相手"
	SIF TALENT:MASTER:相思相愛 == 0
		RETURNF 0
	FOR LCOUNT, 2, CHARANUM
		SIF TALENT:LCOUNT:恋慕 == 0 || TALENT:LCOUNT:相思相愛 == 0
			CONTINUE
		SIF LOCAL == 0 || CFLAG:LCOUNT:好感度 > CFLAG:LOCAL:好感度
			LOCAL = LCOUNT
	NEXT
ENDSELECT
RETURNF LOCAL

;-------------------------------------------------
;体位ARGSが角色ARGの喜欢的体位かを見る
;-------------------------------------------------
@FAV_POSITION(ARGS, ARG)
#FUNCTION
SIF ARG == 0 && TARGET > 0
	ARG = TARGET

SELECTCASE ARGS
CASE "正常位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 0)
CASE "後背位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 1)
CASE "屈曲位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 2)
CASE "対面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 3)
CASE "背面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 4)
CASE "奉仕騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 5)
CASE "推倒騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 6)
CASE "騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 5) + GETBIT(TALENT:ARG:喜欢的体位, 6)

CASE "肛門正常位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 10)
CASE "肛門後背位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 11)
CASE "肛門屈曲位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 12)
CASE "肛門対面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 13)
CASE "肛門背面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 14)
CASE "肛門奉仕騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 15)
CASE "推倒肛門騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 16)
CASE "肛門騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 15) + GETBIT(TALENT:ARG:喜欢的体位, 16)

CASE "磨鏡"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 19)

CASE "尿道正常位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 20)
CASE "尿道後背位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 21)
CASE "尿道屈曲位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 22)
CASE "尿道対面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 23)
CASE "尿道背面座位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 24)
CASE "尿道奉仕騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 25)
CASE "推倒尿道騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 26)
CASE "尿道騎乗位"
	RETURNF GETBIT(TALENT:ARG:喜欢的体位, 25) + GETBIT(TALENT:ARG:喜欢的体位, 26)
ENDSELECT

;-------------------------------------------------
;角色ARGの喜欢的自慰方式の判定を行う
;-------------------------------------------------
@CHECK_FAV_ONANIE, ARG
#DIM MEMO_TARGET

SIF EXP:ARG:自慰経験 == 0
	RETURN 0

MEMO_TARGET = TARGET
TARGET = ARG

SELECTCASE FAV_ONANIE(TNUM("自慰"), "一番")
CASE "Ｃ"
	TALENT:ARG:喜欢的自慰方式 = 1
CASE "Ｖ"
	TALENT:ARG:喜欢的自慰方式 = 2
CASE "Ａ"
	TALENT:ARG:喜欢的自慰方式 = 3
CASE "Ｂ"
	TALENT:ARG:喜欢的自慰方式 = 4
CASE "尿"
	TALENT:ARG:喜欢的自慰方式 = 5
ENDSELECT

TARGET = MEMO_TARGET

;-------------------------------------------------
;角色ARGの喜欢的体位の判定を行う。LOCALが多いので独立
;-------------------------------------------------
@CHECK_FAV_POSITION, ARG
#DIM LCOUNT
;計算前の時点で喜欢的体位だったもののポイント
#DIM POINT_PREVFAV_POS
;計算の結果、１番２番に喜欢的体位
#DIM FAV_POS1
#DIM FAV_POS2

POINT_PREVFAV_POS = 0
FAV_POS1 = 0
FAV_POS2 = 0

IF ARG == MASTER
	TALENT:ARG:喜欢的体位 = 0
	RETURN 0
ENDIF
;bitで管理する
;0正常位, 1後背位, 2屈曲位, 3対面座位, 4背面座位, 5奉仕騎乗位, 6推倒騎乗位, 9没什么特别的
;10～16はＡ体位, 19磨鏡, 20～26は尿道体位

VARSET LOCAL

;初期設定
IF TALENT:ARG:喜欢的体位 == 0
	IF COND("角色メイク中") && CSTR:ARG:喜欢的体位 != ""
		VARSET LOCALS
		SPLIT CSTR:ARG:喜欢的体位, "/", LOCALS
		FOR LCOUNT, 0, 2
			SELECTCASE LOCALS:LCOUNT
			CASE "正常位"
				SETBIT TALENT:ARG:喜欢的体位, 0
			CASE "後背位"
				SETBIT TALENT:ARG:喜欢的体位, 1
			CASE "屈曲位"
				SETBIT TALENT:ARG:喜欢的体位, 2
			CASE "対面座位"
				SETBIT TALENT:ARG:喜欢的体位, 3
			CASE "背面座位"
				SETBIT TALENT:ARG:喜欢的体位, 4
			CASE "騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 5
			CASE "推倒騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 6

			CASE "肛門正常位"
				SETBIT TALENT:ARG:喜欢的体位, 10
			CASE "肛門後背位"
				SETBIT TALENT:ARG:喜欢的体位, 11
			CASE "肛門屈曲位"
				SETBIT TALENT:ARG:喜欢的体位, 12
			CASE "肛門対面座位"
				SETBIT TALENT:ARG:喜欢的体位, 13
			CASE "肛門背面座位"
				SETBIT TALENT:ARG:喜欢的体位, 14
			CASE "肛門騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 15
			CASE "推倒肛門騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 16

			CASE "磨鏡"
				SETBIT TALENT:ARG:喜欢的体位, 19

			CASE "尿道正常位"
				SETBIT TALENT:ARG:喜欢的体位, 20
			CASE "尿道後背位"
				SETBIT TALENT:ARG:喜欢的体位, 21
			CASE "尿道屈曲位"
				SETBIT TALENT:ARG:喜欢的体位, 22
			CASE "尿道対面座位"
				SETBIT TALENT:ARG:喜欢的体位, 23
			CASE "尿道背面座位"
				SETBIT TALENT:ARG:喜欢的体位, 24
			CASE "尿道騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 25
			CASE "推倒尿道騎乗位"
				SETBIT TALENT:ARG:喜欢的体位, 26
			ENDSELECT
		NEXT
		CSTR:ARG:喜欢的体位 =
	ELSEIF MAX(EXP:ARG:Ｖ性交経験, EXP:ARG:Ａ性交経験, EXP:ARG:腰靈活経験) >= 10
		LOCAL:0 = TALENT:ARG:清楚 + TALENT:ARG:坦率 + TALENT:ARG:高贵
		LOCAL:1 = TALENT:ARG:好色 + TALENT:ARG:粗野
		LOCAL:2 = TALENT:ARG:謙虚
		LOCAL:3 = TALENT:ARG:内気
		LOCAL:4 = TALENT:ARG:開朗
		LOCAL:5 = TALENT:ARG:坏心眼 + TALENT:ARG:献身
		LOCAL:6 = TALENT:ARG:好色 + TALENT:ARG:強気 + TALENT:ARG:高慢
		LOCAL:9 = TALENT:ARG:冷静
		SIF TALENT:ARG:女性
			LOCAL:19 = TALENT:ARG:兩面通吃 + TALENT:ARG:討厭男人

		LOCAL:90 = MAX(LOCAL:0, LOCAL:1, LOCAL:2, LOCAL:3, LOCAL:4, LOCAL:5)

		IF LOCAL:9 >= MAX(LOCAL:90, LOCAL:6, LOCAL:19)
			SETBIT TALENT:ARG:喜欢的体位, 9
			RETURN 0
		ENDIF

		SIF ABL:ARG:Ａ感覚 > MAX(ABL:ARG:Ｖ感覚, 2)
			LOCAL:10 = 10

		SELECTCASE LOCAL:90
		CASE IS < LOCAL:6
		CASE LOCAL:0
			SETBIT TALENT:ARG:喜欢的体位, 0 + LOCAL:10
		CASE LOCAL:1
			SETBIT TALENT:ARG:喜欢的体位, 1 + LOCAL:10
		CASE LOCAL:2
			SETBIT TALENT:ARG:喜欢的体位, 2 + LOCAL:10
		CASE LOCAL:3
			SETBIT TALENT:ARG:喜欢的体位, 3 + LOCAL:10
		CASE LOCAL:4
			SETBIT TALENT:ARG:喜欢的体位, 4 + LOCAL:10
		CASE LOCAL:5
			SETBIT TALENT:ARG:喜欢的体位, 5 + LOCAL:10
		ENDSELECT
		SIF LOCAL:6 >= LOCAL:90
			SETBIT TALENT:ARG:喜欢的体位, 6 + LOCAL:10
	ELSE
		SETBIT TALENT:ARG:喜欢的体位, 9
	ENDIF
ELSE
	VARSET LOCALS
	SPLIT CSTR:ARG:喜欢的体位, "/", LOCALS

	FOR LCOUNT, 0, 100
		SELECTCASE LOCALS:LCOUNT
		CASE "正常位"
			LOCAL:0 += 1
		CASE "後背位"
			LOCAL:1 += 1
		CASE "屈曲位"
			LOCAL:2 += 1
		CASE "対面座位"
			LOCAL:3 += 1
		CASE "背面座位"
			LOCAL:4 += 1
		CASE "騎乗位"
			LOCAL:5 += 1
		CASE "推倒騎乗位"
			LOCAL:6 += 1

		CASE "肛門正常位"
			LOCAL:10 += 1
		CASE "肛門後背位"
			LOCAL:11 += 1
		CASE "肛門屈曲位"
			LOCAL:12 += 1
		CASE "肛門対面座位"
			LOCAL:13 += 1
		CASE "肛門背面座位"
			LOCAL:14 += 1
		CASE "肛門騎乗位"
			LOCAL:15 += 1
		CASE "推倒肛門騎乗位"
			LOCAL:16 += 1

		CASE "磨鏡"
			LOCAL:19 += 1

		CASE "尿道正常位"
			LOCAL:20 += 1
		CASE "尿道後背位"
			LOCAL:21 += 1
		CASE "尿道屈曲位"
			LOCAL:22 += 1
		CASE "尿道対面座位"
			LOCAL:23 += 1
		CASE "尿道背面座位"
			LOCAL:24 += 1
		CASE "尿道騎乗位"
			LOCAL:25 += 1
		CASE "推倒尿道騎乗位"
			LOCAL:26 += 1
		ENDSELECT
	NEXT

	;今までの喜欢的体位のポイントは？
	FOR LCOUNT, 0, 30
		;PRINTFORML LOCAL:{LCOUNT} = {LOCAL:LCOUNT}
		SIF GETBIT(TALENT:ARG:喜欢的体位, LCOUNT) == 0
			CONTINUE
		POINT_PREVFAV_POS = MAX(LOCAL:LCOUNT, POINT_PREVFAV_POS)
	NEXT

	;ポイント上位二つを選ぶ。FAV_POS1が１位、FAV_POS2が２位とする
	FOR LCOUNT, 0, 30
		;２位未満
		SIF LOCAL:LCOUNT < LOCAL:FAV_POS2
			CONTINUE
		SELECTCASE LOCAL:LCOUNT
		CASE IS >= LOCAL:FAV_POS1
			FAV_POS2 = FAV_POS1
			FAV_POS1 = LCOUNT
		CASE IS >= LOCAL:FAV_POS2
			FAV_POS2 = LCOUNT
		ENDSELECT
	NEXT

	;PRINTFORML POINT_PREVFAV_POS = {POINT_PREVFAV_POS}, FAV_POS1 = {FAV_POS1}, FAV_POS2 = {FAV_POS2},
	;10以上、今までの喜欢的体位のポイントの最大値を上回っていると喜欢的体位が変化する
	IF LOCAL:FAV_POS1 - 10 >= POINT_PREVFAV_POS
		;(正常位～騎乗位)、推倒騎乗位、(Ａ正常位～Ａ騎乗位)、推倒Ａ騎乗位、貝あわせ の中から上位二つを選ぶ
		TALENT:ARG:喜欢的体位 = 0
		SETBIT TALENT:ARG:喜欢的体位, FAV_POS1

		;基本は１つだけだが、１位と２位の差が３倍以内、かつ、２位のポイントが10以上ならば２位も喜欢的体位となる
		SIF LOCAL:FAV_POS2*3 >= LOCAL:FAV_POS1 && LOCAL:FAV_POS2 >= 10
			SETBIT TALENT:ARG:喜欢的体位, FAV_POS2
	;喜欢的体位が無い場合には５ポイントある体位が暫定一位になる
	ELSEIF LOCAL:FAV_POS1 >= 5 && POINT_PREVFAV_POS == 0
		TALENT:ARG:喜欢的体位 = 0
		SETBIT TALENT:ARG:喜欢的体位, FAV_POS1
	ENDIF
ENDIF

;-------------------------------------------------
;取引や特別経験を特定の書式で書く。基本は 日期＊内容/
;ARGは当人、ARG:1はもしも居るならば関係者
;-------------------------------------------------
@RECORD(ARGS, ARG, ARG:1)
#FUNCTIONS
#DIM ACTOR
;随意使い分ける
#DIMS DETAIL_1
#DIMS DETAIL_2
#DIMS DETAIL_3
#DIMS DETAIL_4

SIF ARG == 0 && TARGET
	ARG = TARGET

ACTOR = ARG:1

VARSET LOCALS

DETAIL_1 =
DETAIL_2 =
DETAIL_3 =
DETAIL_4 =

SELECTCASE ARGS
;いろいろな経験・出来事
CASE "相思相愛"
	LOCALS = 接受了一直暗恋着自己的%CALLNAME:ACTOR%的告白、成为恋人了
CASE "意外的妊娠"
	LOCALS = %CALLNAME:ACTOR%怀上了讨厌的人的孩子
CASE "幸福的妊娠"
	LOCALS = 与你相互爱恋着的%CALLNAME:ACTOR%怀上了孩子
CASE "妊娠"
	IF TALENT:ARG:恋慕 && ACTOR == MASTER
		LOCALS = 满怀着思念的%CALLNAME:ACTOR%怀上了孩子
	ELSE
		LOCALS = %CALLNAME:ACTOR%怀上了孩子
	ENDIF
CASE "淫紋"
	IF ARG == MASTER
		LOCALS = 亲手在下腹部刻印上了无法消除的淫紋
	ELSE
		LOCALS = 借由%CALLNAME:ACTOR%的手、在下腹部刻印上了无法消除的淫紋
	ENDIF
CASE "生中出し"

CASE "処女喪失"
	;振動棒で喪失
	IF TEQUIP:ARG:振動棒
		DETAIL_1 = \@ SIZE("振動棒", ARG) >= 2 ? 極太 # \@振動棒
		IF SELECTCOM == 3
			LOCALS = 亲手用%DETAIL_1%舍弃了処女
		ELSEIF PLAYER == MASTER && TALENT:ARG:恋慕
			LOCALS = 用処女穴接受了%CALLNAME:MASTER%的%DETAIL_1%、成为了女人
		ELSE
			LOCALS = 被%CALLNAME:PLAYER%的%DETAIL_1%夺走了処女
		ENDIF
	;阴茎or假阳具で喪失
	ELSEIF INSERT("Ｖ挿入", ARG)
		IF PENIS(ACTOR)
			SELECTCASE SIZE("阴茎", ACTOR)
			CASE IS >= 2
				DETAIL_1 = 巨根
			CASE 0
				DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
			CASEELSE
				DETAIL_1 = 阴茎
			ENDSELECT
		ELSE
			DETAIL_1 = 假阳具
		ENDIF
		IF INSERT("騎乗位", ARG)
			IF ACTOR == MASTER && TALENT:ARG:恋慕
				DETAIL_2 = 、主动跨在%CALLNAME:MASTER%身上
			ELSE
				DETAIL_2 = 、以騎乗位
			ENDIF
		ENDIF
		IF ACTOR == MASTER && TALENT:ARG:恋慕
			LOCALS = 向最喜欢的%CALLNAME:MASTER%的%DETAIL_1%%DETAIL_2%献出了処女
		ELSE
			LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%给%DETAIL_2%夺去了処女
		ENDIF
	ENDIF

CASE "子宮挿入"
	IF PENIS(ACTOR)
		SELECTCASE SIZE("阴茎", ACTOR)
		CASE IS >= 2
			DETAIL_1 = 巨根
		CASE 0
			DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
		CASEELSE
			DETAIL_1 = 阴茎
		ENDSELECT
	ELSE
		DETAIL_1 = 假阳具
	ENDIF
	IF ACTOR == MASTER && TALENT:ARG:恋慕
		LOCALS = 用子宮接受了%CALLNAME:MASTER%的%DETAIL_1%
	ELSE
		LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%侵犯了子宮内部
	ENDIF

CASE "Ａ処女喪失"
	IF PENIS(ACTOR)
		SELECTCASE SIZE("阴茎", ACTOR)
		CASE IS >= 2
			DETAIL_1 = 巨根
		CASE 0
			DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
		CASEELSE
			DETAIL_1 = 阴茎
		ENDSELECT
	ELSE
		DETAIL_1 = 假阳具
	ENDIF
	IF INSERT("騎乗位", ARG)
		IF ACTOR == MASTER && TALENT:ARG:恋慕
			DETAIL_2 = 、主动跨在%CALLNAME:MASTER%身上
		ELSE
			DETAIL_2 = 、以騎乗位
		ENDIF
	ENDIF
	IF ACTOR == MASTER && TALENT:ARG:恋慕
		LOCALS = 向最喜欢的%CALLNAME:MASTER%的%DETAIL_1%に%DETAIL_2%献出了菊花処女
	ELSEIF ACTOR == MASTER && COND("合意：肛門性交", ARG)
		LOCALS = 在合意的基础上用尻穴接受了%CALLNAME:MASTER%的%DETAIL_1%
	ELSE
		LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%%DETAIL_2%夺去了尻処女
	ENDIF

CASE "結腸処女喪失"
	SELECTCASE TEQUIP:ARG:結腸責め
	;肛用振動棒で喪失
	CASE GETNUM(TRAINNAME, "肛門愛撫"), GETNUM(TRAINNAME, "肛用振動棒")
		DETAIL_1 = \@ SIZE("Ａ振動棒", ARG) >= 2 ? 極太 # \@振動棒
		IF SELECTCOM == 3
			LOCALS = 亲手用%DETAIL_1%舍弃了処女結腸処女
		ELSEIF TALENT:ARG:尻穴狂い || TALENT:ARG:Ａ性向
			LOCALS = 接受了%CALLNAME:PLAYER%用%DETAIL_1%进入結腸
		ELSE
			LOCALS = 被%CALLNAME:PLAYER%的%DETAIL_1%强行挿入了結腸
		ENDIF
	CASE GETNUM(TRAINNAME, "肛門拳交")
		IF TALENT:ARG:尻穴狂い || TALENT:ARG:Ａ性向
			LOCALS = 接受了%CALLNAME:PLAYER%的拳頭进入結腸
		ELSE
			LOCALS = 被%CALLNAME:PLAYER%的拳頭强行拧入了結腸
		ENDIF
	;阴茎or假阳具で喪失
	CASEELSE
		IF PENIS(ACTOR)
			SELECTCASE SIZE("阴茎", ACTOR)
			CASE IS >= 2
				DETAIL_1 = 巨根
			CASE 0
				DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
			CASEELSE
				DETAIL_1 = 阴茎
			ENDSELECT
		ELSE
			DETAIL_1 = 假阳具
		ENDIF
		IF INSERT("騎乗位", ARG)
			IF ACTOR == MASTER && TALENT:ARG:恋慕
				DETAIL_2 = 、主动跨在%CALLNAME:MASTER%身上
			ELSE
				DETAIL_2 = 、以騎乗位
			ENDIF
		ENDIF
		IF ACTOR == MASTER && TALENT:ARG:恋慕
			LOCALS = 向最喜欢的%CALLNAME:MASTER%的%DETAIL_1%%DETAIL_2%献出了Ｓ状結腸的第一次
		ELSEIF ACTOR == MASTER && COND("合意：肛門性交", ARG)
			LOCALS = 接受了%CALLNAME:MASTER%的%DETAIL_1%越过直腸进入Ｓ状結腸
		ELSE
			LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%%DETAIL_2%侵犯了Ｓ状結腸
		ENDIF
	ENDSELECT
CASE "乳頭奸"
	IF PENIS(ACTOR)
		SELECTCASE SIZE("阴茎", ACTOR)
		CASE IS >= 2
			DETAIL_1 = 巨根
		CASE 0
			DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
		CASEELSE
			DETAIL_1 = 阴茎
		ENDSELECT
	ELSE
		DETAIL_1 = 假阳具
	ENDIF
	IF ACTOR == MASTER && TALENT:ARG:恋慕
		LOCALS = 接受了%CALLNAME:MASTER%的%DETAIL_1%进入乳頭
	ELSE
		LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%侵犯了乳頭
	ENDIF
CASE "尿道処女喪失"
	IF PENIS(ACTOR)
		SELECTCASE SIZE("阴茎", ACTOR)
		CASE IS >= 2
			DETAIL_1 = 巨根
		CASE 0
			DETAIL_1 = \@ AGE(ACTOR) <= 2 ? 兒童丁丁 # 粗丁丁 \@
		CASEELSE
			DETAIL_1 = 阴茎
		ENDSELECT
	ELSE
		DETAIL_1 = 假阳具
	ENDIF
	IF INSERT("騎乗位", ARG)
		IF ACTOR == MASTER && TALENT:ARG:恋慕
			DETAIL_2 = 、主动跨在%CALLNAME:MASTER%身上
		ELSE
			DETAIL_2 = 、以騎乗位
		ENDIF
	ENDIF
	IF ACTOR == MASTER && TALENT:ARG:恋慕
		LOCALS = 向最喜欢的%CALLNAME:MASTER%的%DETAIL_1%%DETAIL_2%献出了尿道処女
	ELSE
		LOCALS = 被%CALLNAME:ACTOR%的%DETAIL_1%%DETAIL_2%侵犯了尿道
	ENDIF

;闲な時にテ接吻ト増量計画
;CASE "初接吻"
;	LOCALS = 初めての接吻の相手は%CALLNAME:ACTOR%です
CASE "初吻之前先口交"
	LOCALS = 無接吻経験也不拘泥给%CALLNAME:ACTOR%的阴茎进行口交
CASE "初吻之前先Ａ奉仕"
	LOCALS = 無接吻経験也不拘泥舔舐%CALLNAME:ACTOR%的肛門
CASE "初吻之前先舐陰"
	LOCALS = 無接吻経験也不拘泥给%CALLNAME:ACTOR%进行舐陰
CASE "脱离童贞"
	IF TALENT:ARG:叛逆
		LOCALS = 帮助%CALLNAME:ACTOR%童貞卒業
	ELSE
		LOCALS = 享用了%CALLNAME:ACTOR%的美味童貞
	ENDIF
CASE "童貞喪失"
	LOCALS = 被%CALLNAME:ACTOR%童貞卒業
	SIF COND("入部初日", ARG)
		LOCALS = 入部的当天%LOCALS%
CASE "第一次的对象"
	IF TALENT:ARG:叛逆
		LOCALS = 帮助%CALLNAME:ACTOR%变成了大人
	ELSE
		LOCALS = 享用了%CALLNAME:ACTOR%的処女
	ENDIF
CASE "野外全裸"
	LOCALS = 全裸在街中散步
CASE "性器穿環"
	IF ACTOR == MASTER && TALENT:ARG:恋慕
		LOCALS = 接受了%CALLNAME:MASTER%亲手打上的性器穿環
	ELSE
		LOCALS = 突出的性器被穿環装飾着
	ENDIF
CASE "排泄"
	IF TEQUIP:ARG:攝像機
		LOCALS = 积存的大便排泄的样子被毫无保留地被记录下来了
	ELSEIF TEQUIP:野外PLAY
		LOCALS = 在路边脱糞了
	ELSE
		LOCALS = 排泄的姿势被展示在%CALLNAME:PLAYER%面前
	ENDIF
CASE "強制口交で嘔吐"
	IF TEQUIP:口枷
		LOCALS = 因为%CALLNAME:ACTOR%的强制口交导致了呕吐
	ELSE
		LOCALS = 直到呕吐为止一直接受着%CALLNAME:ACTOR%的强制口交
	ENDIF
CASE "飲尿PLAY完遂"
	LOCALS = 漂亮地把%CALLNAME:ACTOR%的圣水全部喝干净了
CASE "肛門奉仕"
	LOCALS = 用舌頭奉仕%CALLNAME:ACTOR%的尻穴
CASE "Ａ清洁口交"
	;詳細情報有？
	IF COND("初Ａ清洁口交", ARG)
		LOCALS = 用舌頭漂亮地清洁了肛交直後的%CONDS("初Ａ清洁口交", ARG)%の阴茎
	ELSE
		LOCALS = 用舌頭漂亮地清洁了肛交直後的阴茎
	ENDIF
CASE "二穴挿入"
	LOCALS = 膣和肛門同時被阴茎插入
CASE "拳交"
	LOCALS = 性器被%CALLNAME:ACTOR%的拳深入
CASE "扶她化"
	IF COND("具現化ＯＮフラグ", ARG) && TALENT:ARG:具現
		LOCALS = 用自己的具現之力生长出阴茎
	ELSE
		LOCALS = 长出了陰莖
	ENDIF
CASE "性転換"
	LOCALS = 逆転了性別
ENDSELECT

SAVESTR:22 = %LOCALS%

IF STRCOUNT(ARGS, "処女喪失")
	IF COND("入部初日", ARG)
		LOCALS = 入部的当天%LOCALS%
	ELSEIF COND("约会中", ARG)
		SELECTCASE TEXTS("現在位置")
		CASE "情人旅館"
			LOCALS = 约会後在情侣酒店%LOCALS%
		CASEELSE
			LOCALS = 趁着约会後的势頭%LOCALS%
		ENDSELECT
	ENDIF
ENDIF

SIF TEQUIP:ARG:攝像機
	LOCALS += "(●REC)"

;最後に日期を頭に付ける
LOCALS = %TEXT_RJ(TOSTR(DAY), 4)%日目 %LOCALS%\/

RETURNF LOCALS