code:
[SKIPSTART]
;여기에서 꼬박 폐지하고 싶다(875행째까지)
@Show_CharaData
#DIM 캐릭터등록번호
#DIM 리스트번호
#DIM 캐릭터리스트, 캐릭터수상한
#DIM 최대리스트캐릭터번호

;초기화
리스트번호 = 0
VARSET 소트항목 , 0

;표시하는 캐릭터리스트를 작성
VARSET 캐릭터리스트, -1
FOR 캐릭터등록번호, 0, CHARANUM
	;출금캐릭터는 리스트 들어가지 않는다(캐릭터의 실체는 존재한다)
	IF CFLAG:캐릭터등록번호:출금 == 1 || TALENT:캐릭터등록번호:스침
		CONTINUE
	ELSE
		캐릭터리스트:리스트번호 = 캐릭터등록번호
		리스트번호++
	ENDIF
NEXT
;어디까지 들어가고 있어를 명시한다
최대리스트캐릭터번호 = 리스트번호 - 1
DEBUGPRINTFORML {최대리스트캐릭터번호}
CALL CheckCharaData(캐릭터리스트, 최대리스트캐릭터번호)
RETURN

;이 근처의 상자를 해소하는 것이 좋을까
@CheckCharaData(캐릭터리스트, 최대리스트캐릭터번호)
#DIM REF 캐릭터리스트
#DIM 리스트페이지번호
#DIM 최대리스트페이지번호
#DIM 최대리스트캐릭터번호

;초기화
리스트페이지번호 = 0
최대리스트페이지번호 = 최대리스트캐릭터번호 / 리스트 표시행수

;WHILE 루프를 별함수 로 분리
CALL CheckCharaDataProc(캐릭터리스트, 리스트페이지번호, 최대리스트페이지번호, 최대리스트캐릭터번호)
RETURN

@CheckCharaDataProc(캐릭터리스트, 리스트페이지번호, 최대리스트페이지번호, 최대리스트캐릭터번호)
#DIM REF 캐릭터리스트
#DIM REF 리스트페이지번호
#DIM REF 최대리스트페이지번호
#DIM REF 최대리스트캐릭터번호
#DIM 입력치
#DIM 리스트번호
#DIM 전원표시플래그

WHILE 1
	;어느쪽이나 상세를 알고 싶은 캐릭터의 리스트번호를 돌려보낸다
	;CSV로 정의된 번호나 캐릭터 생성때에 부여되는 번호는 아니다
	IF 전원표시플래그
		CALL DrawAllChara(캐릭터리스트, 최대리스트캐릭터번호)
	ELSE
		;일람을 표시
		CALL DrawCharaList(캐릭터리스트, 리스트페이지번호, 최대리스트페이지번호, 최대리스트캐릭터번호)
	ENDIF
	;RESULT에 두고 있을 뿐으로 하고 싶지 않으면 어리광
	입력치 = RESULT

	;리스트번호 이외의 특수한 입력의 처리
	IF 입력치 == 돌아간다
		RETURN
	;전원 표시의 변환
	ELSEIF 입력치 == 9000
		;비트 반전해, 재묘화
		전원표시플래그 = !전원표시플래그
		CONTINUE
	ENDIF
	리스트번호 = 입력치
	;능력을 표시
	CALL DrawCharaData(캐릭터리스트, 최대리스트캐릭터번호, 리스트번호)

	;상세 표시로부터 일람에 돌아왔을 때에 조금 전까지 능력을 보고 있었던 놈의 페이지에 맞춘다
	리스트페이지번호 = 리스트번호 / 리스트 표시행수
WEND

@DrawCharaList(캐릭터리스트, 리스트페이지번호, 최대리스트페이지번호, 최대리스트캐릭터번호)
#DIM REF 캐릭터리스트
#DIM REF 리스트페이지번호
#DIM REF 최대리스트페이지번호
#DIM 페이지번호
#DIM 최대페이지번호
#DIM REF 최대리스트캐릭터번호
#DIM 리스트번호
#DIM 입력치
#DIM CONST 바길이 = 10

;페이지번호의 초기화는 하지 않는 것이 좋다고 말해졌으므로 삭제, 오작동은 모르는
	;페이지번호 = 0

;. ERH
최대페이지번호 = 간이 능력표시 최대페이지번호

WHILE 1
	DRAWLINE
	CALL ShowStatusHeader(페이지번호, 최대페이지번호, 최대리스트캐릭터번호)
	DRAWLINE
	CALL ShowStatusBody(캐릭터리스트, 리스트페이지번호, 페이지번호, 리스트번호)
	DRAWLINE
	CALL ShowListFooter(리스트페이지번호, 최대리스트페이지번호)

	PRINTL [9000] 전원 표시

	CALL InputListDataNum(페이지번호, 최대페이지번호, 리스트페이지번호, 최대리스트페이지번호)
	입력치 = RESULT
	SELECTCASE 입력치
		CASE 0 TO 최대리스트캐릭터번호, 9000
			RETURN 입력치
		CASE 재묘화
			CONTINUE
		CASE 돌아간다
			RETURN 돌아간다
		CASE 2001 TO 2000 + (최대페이지번호 + 1) * 10
			CALL SORT_능력(캐릭터리스트, 페이지번호, 입력치, 최대리스트캐릭터번호)
			CONTINUE
		CASEELSE
			PRINTW 입력치가 이상합니다
	ENDSELECT
WEND

THROW 루프에 미비가 있는 것 같습니다

@DrawCharaData(캐릭터리스트, 최대리스트캐릭터번호, 리스트번호)
#DIM REF 캐릭터리스트
#DIM REF 최대리스트캐릭터번호
#DIM REF 리스트번호
#DIM 페이지번호
#DIM 최대페이지번호
#DIM 입력치
#DIM 소질번호
#DIM 항목수

;초기화
페이지번호 = 0
;. ERH
최대페이지번호 = 상세능력표시최대페이지번호

WHILE 1
	;능력표시
	CALL PRINT_STATE(캐릭터리스트:리스트번호, 페이지번호)

	DRAWLINE
	CALL ShowListFooter(리스트번호, 최대리스트캐릭터번호)

	CALL InputListDataNum(페이지번호, 최대페이지번호, 리스트번호, 최대리스트캐릭터번호)
	입력치 = RESULT

	SELECTCASE 입력치
		CASE 재묘화
			CONTINUE
		CASE 돌아간다
			RETURN 돌아간다
		CASE 화상변환
			FLAG:AA표시 = !FLAG:AA표시
		CASE 160 TO 167
			TFLAG:입력치 = !TFLAG:입력치
		CASEELSE
	ENDSELECT
WEND

THROW 루프에 미비가 있는 것 같습니다

@InputListDataNum(페이지번호, 최대페이지번호, 리스트페이지번호, 최대리스트페이지번호)
#DIM REF 페이지번호
#DIM REF 최대페이지번호
#DIM REF 리스트페이지번호
#DIM REF 최대리스트페이지번호
#DIMS 입력캐릭터라인
#DIM 입력수치

WHILE 1
	INPUTS
	입력캐릭터라인 = %RESULTS%
	PRINTL
	SELECTCASE 입력캐릭터라인
		;처리의 공통 부분을 뽑아내고 싶다
		CASE 이전페이지 , "1100"
			페이지번호--
			IF 페이지번호 < 0
				페이지번호 = 최대페이지번호
			ENDIF
			RETURN 재묘화
		CASE 다음페이지 , "1200"
			페이지번호++
			IF 페이지번호 > 최대페이지번호
				페이지번호 = 0
			ENDIF
			RETURN 재묘화
		CASE 이전캐릭터 , "1001"
			리스트페이지번호--
			IF 리스트페이지번호 < 0
				리스트페이지번호 = 최대리스트페이지번호
			ENDIF
			RETURN 재묘화
		CASE 다음캐릭터 , "1002"
			리스트페이지번호++
			IF 리스트페이지번호 > 최대리스트페이지번호
				리스트페이지번호 = 0
			ENDIF
			RETURN 재묘화
		CASE 그만둔다 , "1000"
			;돌아가라
			RETURN 돌아간다
		CASEELSE
			입력수치 = TOINT(입력캐릭터라인)
			RETURN 입력수치
	ENDSELECT
WEND

@ShowStatusHeader(페이지번호, 최대페이지번호, 최대리스트캐릭터번호)
#DIM 페이지번호
#DIM 최대페이지번호
#DIM REF 최대리스트캐릭터번호

PRINTFORM Page {페이지번호, 2}/{최대페이지번호, 2}
SELECTCASE 페이지번호
	;체력 기력
	CASE 0
		PRINT
		CALL SORT_능력_표시("체력")
		PRINT
		CALL SORT_능력_표시("기력")
	;능력(간이)
	CASE 1
		PRINT 능력
		CALL SORT_능력_표시("C감")
		PRINT |
		CALL SORT_능력_표시("V감")
		PRINT |
		CALL SORT_능력_표시("A감")
		PRINT |
		CALL SORT_능력_표시("B감")
		PRINT |
		CALL SORT_능력_표시("M감")
		PRINT |
		CALL SORT_능력_표시("친밀")
		PRINT |
		CALL SORT_능력_표시("순종")
		PRINT |
		CALL SORT_능력_표시("욕망")
		PRINT |
		CALL SORT_능력_표시("기교")
		PRINT |
	;성 기술
	CASE 2
		PRINT 성 기술
		CALL SORT_능력_표시("손가락")
		PRINT |
		CALL SORT_능력_표시("혀")
		PRINT |
		CALL SORT_능력_표시("가슴")
		PRINT |
		CALL SORT_능력_표시("허리")
		PRINT |
		CALL SORT_능력_표시("질")
		PRINT |
		CALL SORT_능력_표시("A")
		PRINT |
	;각인
	CASE 3
		PRINT 각인
		CALL SORT_능력_표시("고통")
		PRINT |
		CALL SORT_능력_표시("쾌락")
		PRINT |
		CALL SORT_능력_표시("괘씸")
		PRINT |
		CALL SORT_능력_표시("반발")
		PRINT |
		CALL SORT_능력_표시("시간")
		PRINT |
	;호감도외
	CASE 4
		PRINT
		CALL SORT_능력_표시("호감")
		PRINT |
		CALL SORT_능력_표시("신뢰")
		PRINT |
	CASEELSE
		PRINTFORM 변수가 이상치입니다"페이지번호 = {페이지번호}"
ENDSELECT
PRINTL

@ShowStatusBody(캐릭터리스트, 리스트페이지번호, 페이지번호, 리스트번호)
#DIM REF 캐릭터리스트
#DIM REF 리스트페이지번호
#DIM 페이지번호
#DIM 리스트번호
#DIM CONST 바길이 = 10
#DIM 표시신분번호
#DIM 캐릭터등록번호
#DIMS 표시문

FOR 리스트번호, 리스트페이지번호 * 리스트 표시행수, (리스트페이지번호 + 1) * 리스트 표시행수

	;배열의 같은 요소를 몇 번이나 쓰는 것이 보기 흉했기 때문에 정리한다
	캐릭터등록번호 = 캐릭터리스트:리스트번호

	IF 캐릭터등록번호 == -1
		PRINTL [   ]
		CONTINUE
	ENDIF
	PRINTFORM [{리스트번호, 3}] %CALLNAME:캐릭터등록번호, 이름 표시 길이, LEFT%
	SELECTCASE 페이지번호
		;체력 기력
		;빈 공간에 두 개의 이름이라든지 넣으면(자) 즐겁지만 CSV 만지는 것 귀찮아의로 패스
		CASE 0
			CALL PRINT_COLORBAR, BASE:캐릭터등록번호:체력, MAXBASE:캐릭터등록번호:체력, 바길이, UNICODE(0x2585), UNICODE(0x2585), BARCOLORSET("초록"), RESULT:1
			PRINTFORM  ({BASE:캐릭터등록번호:체력, 5}/{MAXBASE:캐릭터등록번호:체력, 5})
			CALL PRINT_COLORBAR, BASE:캐릭터등록번호:기력, MAXBASE:캐릭터등록번호:기력, 바길이, UNICODE(0x2585), UNICODE(0x2585), BARCOLORSET("파랑"), RESULT:1
			PRINTFORM  ({BASE:캐릭터등록번호:기력, 5}/{MAXBASE:캐릭터등록번호:기력, 5})
		;능력(간이)
		;각 감각과 친밀 순종 욕망 기교만
		CASE 1
			;매우 적당하게 다하고 수정의 여지 있어
			FOR 표시신분번호, 0, 13
				IF ABLNAME:표시신분번호 != ""
					CALL PRINT_알파벳평가(캐릭터등록번호, 4, 표시신분번호)
					PRINTFORM {ABL:캐릭터등록번호:표시신분번호, 4}|
				ENDIF
			NEXT
		;성 기술
		CASE 2
			;매우 적당하게 다하고 수정의 여지 있어
			FOR 표시신분번호, 50, 56
				IF ABLNAME:표시신분번호 != ""
					CALL PRINT_알파벳평가(캐릭터등록번호, 3, 표시신분번호)
					PRINTFORM {ABL:캐릭터등록번호:표시신분번호, 3}|
				ENDIF
			NEXT
		;각인
		CASE 3
			;매우 적당하게 다하고 수정의 여지 있어
			FOR 표시신분번호, 0, 6
				IF MARKNAME:표시신분번호 == ""
					CONTINUE
				ENDIF
				;반발각인 이력은 표시하지 않게
				SIF 표시신분번호 == 4
					CONTINUE
				IF 표시신분번호 == 3
					SETCOLOR C_RED
					PRINTFORM %"×" * (MARK:캐릭터등록번호:표시신분번호), 6%|
				ELSE
					SETCOLOR 255, 255, 0
					PRINTFORM %"★" * (MARK:캐릭터등록번호:표시신분번호), 6%|
				ENDIF
				RESETCOLOR
			NEXT
		;호감도외
		;스페이스의 잡는 방법은 초적당
		CASE 4
			;호감도
			CALL PRINT_알파벳평가(캐릭터등록번호, 1, )
			PRINTFORM {CFLAG:캐릭터등록번호:호감도, 6}|

			;신뢰도
			CALL PRINT_알파벳평가(캐릭터등록번호, 2, )
			PRINTFORM {CFLAG:캐릭터등록번호:신뢰도, 6}|

			;연모
			IF TALENT:캐릭터등록번호:연인
				SETCOLOR C_RED
				표시문 = 연인
			ELSEIF TALENT:캐릭터등록번호:연모 == 1
				SETCOLOR 0xEE60EE
				표시문 = 연모
			ELSEIF TALENT:캐릭터등록번호:사모 == 1
				표시문 = 사모
			ELSE
				표시문 =
			ENDIF
			PRINTFORM %표시문, 4, LEFT%|
			RESETCOLOR

			;기정사실
			SELECTCASE CFLAG:(캐릭터등록번호):생해금
				CASE 2
					표시문 = 위험일 생H해금
				CASE 1
					표시문 = 생H해금
				CASE 0
					IF GETBIT(CFLAG:(캐릭터등록번호):기정사실, 1)
						표시문 = 합의 취득
					ELSE
						표시문 =
					ENDIF
			ENDSELECT
			PRINTFORM %표시문, 14, LEFT%|

			;생리주기가시화
			SIF FLAG:1007
				CALL PRINT_CYCLE_다음날(캐릭터등록번호)

			SIF CFLAG:(캐릭터등록번호):출산경과일 > 0
				PRINTFORM 육아중
			RESETCOLOR
			SIF GETBIT(CFLAG:(캐릭터등록번호):기정사실, 2)
				PRINTFORM 연인 같은 종류
			;약점
			IF CFLAG:(캐릭터등록번호):약점잡음 && CFLAG:(캐릭터등록번호):약점잡힘
				PRINTFORM %마스터와% 서로의 약점을 서로 잡고
			ELSEIF CFLAG:(캐릭터등록번호):약점잡음
				PRINTFORM %CALLNAME:MASTER%의 약점을 잡고 있다
			;SIF GETBIT(CFLAG:(캐릭터등록번호):약점, 0)
			;	PRINTFORM 팬티를 몰수되었다
			;SIF GETBIT(CFLAG:(캐릭터등록번호):약점, 1)
			;	PRINTFORM 정사를 볼 수 있었다
			ELSEIF CFLAG:(캐릭터등록번호):약점잡힘
				PRINTFORM %CALLNAME:MASTER%에 자위 현장이 목격되었던 적이 있다
			ENDIF
	ENDSELECT
	PRINTL
NEXT

@ShowListFooter(리스트페이지번호, 최대리스트페이지번호)
#DIM 리스트페이지번호
#DIM 최대리스트페이지번호

IF FLAG:능력표기
	PRINTBUTTONLC @"[1100] - 이전페이지", 이전페이지
	PRINTBUTTONLC @"[1000] - 그만둔다", 그만둔다
	PRINTBUTTONLC @"[1200] - 다음페이지", 다음페이지
	PRINTL
	PRINTBUTTONLC @"[1001] - 이전캐릭터", 이전캐릭터
	PRINTFORMLC 리스트 {리스트페이지번호}/{최대리스트페이지번호}
	PRINTBUTTONLC @"[1002] - 차의 캐릭터", 다음캐릭터

ELSE
	PRINTBUTTONLC @"[%이전페이지%] - 이전페이지", 이전페이지
	PRINTBUTTONLC @"[%그만둔다%] - 그만둔다", 그만둔다
	PRINTBUTTONLC @"[%다음페이지%] - 다음페이지", 다음페이지
	PRINTL
	PRINTBUTTONLC @"[%이전캐릭터%] - 이전캐릭터", 이전캐릭터
	PRINTFORMLC 리스트 {리스트페이지번호}/{최대리스트페이지번호}
	PRINTBUTTONLC @"[%다음캐릭터%] - 다음캐릭터", 다음캐릭터
ENDIF

@DrawAllChara(캐릭터리스트, 최대리스트캐릭터번호)
#DIM REF 캐릭터리스트
#DIM REF 최대리스트캐릭터번호
#DIM 캐릭터리스트번호
#DIM 입력치

WHILE 1
	;FOR문이 조건을 채운 시점에서 종료하므로+1
	;제일 마지막 캐릭터가 표시되지 않는 것에의 대응
	FOR 캐릭터리스트번호, 0, 최대리스트캐릭터번호 + 1
		PRINTFORMLC [{캐릭터리스트번호}] %CALLNAME:(캐릭터리스트:캐릭터리스트번호), 15, LEFT%
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [9000] 목록으로 돌아간다
	PRINTL [1000] - 그만둔다

	INPUT
	입력치 = RESULT
	SELECTCASE 입력치
		CASE 1000
			RETURN 돌아간다
		CASE 0 TO 최대리스트캐릭터번호, 9000
			RETURN 입력치
	ENDSELECT
WEND

;실제로 능력의 소트를 실시한다
@SORT_능력(캐릭터리스트, 페이지번호, 입력치, 최대리스트캐릭터번호)
#DIM REF 캐릭터리스트
#DIM REF 페이지번호
#DIM REF 최대리스트캐릭터번호
#DIM 입력치
#DIM 참조하는능력
#DIM 캐릭터등록번호
#DIM 리스트번호

입력치 -= 2000
참조하는능력 = 입력치

;내림차순으로 하는 경우
IF 소트항목:입력치 == 0
	SELECTCASE 참조하는능력
		;체력 기력
		CASE 1 TO 2
			참조하는능력 --
		;C감각으로부터 M감각까지
		CASE 11 TO 15
			참조하는능력 -= 11
		;친밀 순종 욕망 기교
		CASE 16 TO 19
			참조하는능력 -= 7
		;성 기술
		CASE 21 TO 26
			참조하는능력 += 29
		;각인(시간각인 이외)
		CASE 31 TO 34
			참조하는능력 -= 31
		;각인(시간각인)
		CASE 35
			참조하는능력 = 5
		;호감도
		CASE 41
			참조하는능력 = 2
		;신뢰도
		CASE 42
			참조하는능력 = 4
		CASEELSE
			PRINTW 변수치가 이상합니다(능력표시. ERB @SORT_능력)
	ENDSELECT

	;보는 장소가 BASE였거나 ABL였거나 MARK이기도 하므로 페이지로 나누고 알기 쉽고
	;0페이지눈의 경우(참조 부분 BASE)
	IF 페이지번호 == 0
		FOR LOCAL:0, 1, 최대리스트캐릭터번호
			FOR LOCAL:1, LOCAL:0 +1, 최대리스트캐릭터번호+1
				IF BASE:(캐릭터리스트:(LOCAL:0)):(참조하는능력) < BASE:(캐릭터리스트:(LOCAL:1)):(참조하는능력)
					LOCAL:2 = 캐릭터리스트:(LOCAL:0)
					캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(LOCAL:1)
					캐릭터리스트:(LOCAL:1) = LOCAL:2
				ENDIF
			NEXT
		NEXT
	;1페이지눈의 경우(참조 부분 ABL)
	ELSEIF 페이지번호 == 1
		FOR LOCAL:0, 1, 최대리스트캐릭터번호
			FOR LOCAL:1, LOCAL:0 +1, 최대리스트캐릭터번호+1
				IF ABL:(캐릭터리스트:(LOCAL:0)):(참조하는능력) < ABL:(캐릭터리스트:(LOCAL:1)):(참조하는능력)
					LOCAL:2 = 캐릭터리스트:(LOCAL:0)
					캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(LOCAL:1)
					캐릭터리스트:(LOCAL:1) = LOCAL:2
				ENDIF
			NEXT
		NEXT
	;2페이지눈의 경우(참조 부분 ABL)
	ELSEIF 페이지번호 == 2
		FOR LOCAL:0, 1, 최대리스트캐릭터번호
			FOR LOCAL:1, LOCAL:0 +1, 최대리스트캐릭터번호+1
				IF ABL:(캐릭터리스트:(LOCAL:0)):(참조하는능력) < ABL:(캐릭터리스트:(LOCAL:1)):(참조하는능력)
					LOCAL:2 = 캐릭터리스트:(LOCAL:0)
					캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(LOCAL:1)
					캐릭터리스트:(LOCAL:1) = LOCAL:2
				ENDIF
			NEXT
		NEXT
	;3페이지눈의 경우(참조 부분 MARK)
	ELSEIF 페이지번호 == 3
		FOR LOCAL:0, 1, 최대리스트캐릭터번호
			FOR LOCAL:1, LOCAL:0 +1, 최대리스트캐릭터번호+1
				IF MARK:(캐릭터리스트:(LOCAL:0)):(참조하는능력) < MARK:(캐릭터리스트:(LOCAL:1)):(참조하는능력)
					LOCAL:2 = 캐릭터리스트:(LOCAL:0)
					캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(LOCAL:1)
					캐릭터리스트:(LOCAL:1) = LOCAL:2
				ENDIF
			NEXT
		NEXT
	;4페이지눈의 경우(참조 부분 CFLAG)
	ELSEIF 페이지번호 == 4
		FOR LOCAL:0, 1, 최대리스트캐릭터번호
			FOR LOCAL:1, LOCAL:0 +1, 최대리스트캐릭터번호+1
				IF CFLAG:(캐릭터리스트:(LOCAL:0)):(참조하는능력) < CFLAG:(캐릭터리스트:(LOCAL:1)):(참조하는능력)
					LOCAL:2 = 캐릭터리스트:(LOCAL:0)
					캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(LOCAL:1)
					캐릭터리스트:(LOCAL:1) = LOCAL:2
				ENDIF
			NEXT
		NEXT
	ENDIF
;내림차순으로부터 승순으로 전환하는 경우
ELSEIF 소트항목:입력치 == 1
	FOR LOCAL:0, 1, 최대리스트캐릭터번호 / 2 + 1
		LOCAL:1 = 캐릭터리스트:(LOCAL:0)
		캐릭터리스트:(LOCAL:0) = 캐릭터리스트:(최대리스트캐릭터번호 - LOCAL:0 + 1)
		캐릭터리스트:(최대리스트캐릭터번호 - LOCAL:0 + 1) = LOCAL:1
	NEXT
ELSE
	리스트번호 = 0
	FOR 캐릭터등록번호, 0, CHARANUM
	;출금캐릭터는 리스트 들어가지 않는다(캐릭터의 실체는 존재한다)
	IF CFLAG:캐릭터등록번호:출금 == 1
		CONTINUE
	ELSE
		캐릭터리스트:리스트번호 = 캐릭터등록번호
		리스트번호++
	ENDIF
NEXT
ENDIF

A = 소트항목:입력치

VARSET 소트항목 , 0

소트항목:입력치 = A + 1
SIF 소트항목:입력치 == 3
	소트항목:입력치 = 0

;ShowStatusHeader내에서 어떻게 표시시킬까
@SORT_능력_표시(능력)

#DIMS 능력
#DIM 차례

CALL SHOW_SORT_승강순서(능력)
차례 = RESULT

SELECTCASE 능력
	CASE "체력"
		IF 차례 == 1
			PRINTBUTTON @"▼체력", 2001
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲체력", 2001
		ELSE
			PRINTBUTTON @"  체력", 2001
		ENDIF
	CASE "기력"
		IF 차례 == 1
			PRINTBUTTON @"▼기력", 2002
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲기력", 2002
		ELSE
			PRINTBUTTON @"  기력", 2002
		ENDIF
	CASE "C감"
		IF 차례 == 1
			PRINTBUTTON @" ▼C감", 2011
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲C감", 2011
		ELSE
			PRINTBUTTON @"   C감", 2011
		ENDIF
	CASE "V감"
		IF 차례 == 1
			PRINTBUTTON @" ▼V감", 2012
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲V감", 2012
		ELSE
			PRINTBUTTON @"   V감", 2012
		ENDIF
	CASE "A감"
		IF 차례 == 1
			PRINTBUTTON @" ▼A감", 2013
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲A감", 2013
		ELSE
			PRINTBUTTON @"   A감", 2013
		ENDIF
	CASE "B감"
		IF 차례 == 1
			PRINTBUTTON @" ▼B감", 2014
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲B감", 2014
		ELSE
			PRINTBUTTON @"   B감", 2014
		ENDIF
	CASE "M감"
		IF 차례 == 1
			PRINTBUTTON @" ▼M감", 2015
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲M감", 2015
		ELSE
			PRINTBUTTON @"   M감", 2015
		ENDIF
	CASE "친밀"
		IF 차례 == 1
			PRINTBUTTON @"▼친밀", 2016
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲친밀", 2016
		ELSE
			PRINTBUTTON @"  친밀", 2016
		ENDIF
	CASE "순종"
		IF 차례 == 1
			PRINTBUTTON @"▼순종", 2017
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲순종", 2017
		ELSE
			PRINTBUTTON @"  순종", 2017
		ENDIF
	CASE "욕망"
		IF 차례 == 1
			PRINTBUTTON @"▼욕망", 2018
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲욕망", 2018
		ELSE
			PRINTBUTTON @"  욕망", 2018
		ENDIF
	CASE "기교"
		IF 차례 == 1
			PRINTBUTTON @"▼기교", 2019
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲기교", 2019
		ELSE
			PRINTBUTTON @"  기교", 2019
		ENDIF
	CASE "손가락"
		IF 차례 == 1
			PRINTBUTTON @" ▼손가락", 2021
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲손가락", 2021
		ELSE
			PRINTBUTTON @"   손가락", 2021
		ENDIF
	CASE "혀"
		IF 차례 == 1
			PRINTBUTTON @" ▼혀", 2022
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲혀", 2022
		ELSE
			PRINTBUTTON @"   혀", 2022
		ENDIF
	CASE "가슴"
		IF 차례 == 1
			PRINTBUTTON @" ▼가슴", 2023
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲가슴", 2023
		ELSE
			PRINTBUTTON @"   가슴", 2023
		ENDIF
	CASE "허리"
		IF 차례 == 1
			PRINTBUTTON @" ▼허리", 2024
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲허리", 2024
		ELSE
			PRINTBUTTON @"   허리", 2024
		ENDIF
	CASE "질"
		IF 차례 == 1
			PRINTBUTTON @" ▼질", 2025
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲질", 2025
		ELSE
			PRINTBUTTON @"   질", 2025
		ENDIF
	CASE "A"
		IF 차례 == 1
			PRINTBUTTON @"  ▼A", 2026
		ELSEIF 차례 == 2
			PRINTBUTTON @"  ▲A", 2026
		ELSE
			PRINTBUTTON @"    A", 2026
		ENDIF
	CASE "고통"
		IF 차례 == 1
			PRINTBUTTON @"▼고통", 2031
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲고통", 2031
		ELSE
			PRINTBUTTON @"  고통", 2031
		ENDIF
	CASE "쾌락"
		IF 차례 == 1
			PRINTBUTTON @"▼쾌락", 2032
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲쾌락", 2032
		ELSE
			PRINTBUTTON @"  쾌락", 2032
		ENDIF
	CASE "괘씸"
		IF 차례 == 1
			PRINTBUTTON @"▼괘씸", 2033
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲괘씸", 2033
		ELSE
			PRINTBUTTON @"  괘씸", 2033
		ENDIF
	CASE "반발"
		IF 차례 == 1
			PRINTBUTTON @"▼반발", 2034
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲반발", 2034
		ELSE
			PRINTBUTTON @"  반발", 2034
		ENDIF
	CASE "시간"
		IF 차례 == 1
			PRINTBUTTON @"▼시간", 2035
		ELSEIF 차례 == 2
			PRINTBUTTON @"▲시간", 2035
		ELSE
			PRINTBUTTON @"  시간", 2035
		ENDIF
	CASE "호감"
		IF 차례 == 1
			PRINTBUTTON @"  ▼호감", 2041
		ELSEIF 차례 == 2
			PRINTBUTTON @"  ▲호감", 2041
		ELSE
			PRINTBUTTON @"    호감", 2041
		ENDIF
	CASE "신뢰"
		IF 차례 == 1
			PRINTBUTTON @"  ▼신뢰", 2042
		ELSEIF 차례 == 2
			PRINTBUTTON @"  ▲신뢰", 2042
		ELSE
			PRINTBUTTON @"    신뢰", 2042
		ENDIF
ENDSELECT

@SHOW_SORT_승강순서(능력)
#DIMS 능력
#DIM 표시능력

SELECTCASE 능력
	CASE "체력"
		표시능력 = 1
	CASE "기력"
		표시능력 = 2
	CASE "C감"
		표시능력 = 11
	CASE "V감"
		표시능력 = 12
	CASE "A감"
		표시능력 = 13
	CASE "B감"
		표시능력 = 14
	CASE "M감"
		표시능력 = 15
	CASE "친밀"
		표시능력 = 16
	CASE "순종"
		표시능력 = 17
	CASE "욕망"
		표시능력 = 18
	CASE "기교"
		표시능력 = 19
	CASE "손가락"
		표시능력 = 21
	CASE "혀"
		표시능력 = 22
	CASE "가슴"
		표시능력 = 23
	CASE "허리"
		표시능력 = 24
	CASE "질"
		표시능력 = 25
	CASE "A"
		표시능력 = 26
	CASE "고통"
		표시능력 = 31
	CASE "쾌락"
		표시능력 = 32
	CASE "괘씸"
		표시능력 = 33
	CASE "반발"
		표시능력 = 34
	CASE "시간"
		표시능력 = 35
	CASE "호감"
		표시능력 = 41
	CASE "신뢰"
		표시능력 = 42
	CASEELSE
		PRINTW 이상한 값을 참조하고 있습니다(능력표시. ERB @SHOW_SORT_승강순서)
ENDSELECT
RETURN 소트항목:표시능력
[SKIPEND]

[SKIPSTART]
캐릭터리스트 표시 함수
리스트상의 캐릭터를 일람으로 표시해 리스트의 전환도 가능

OP는 STRCOUNT 사용으로 각종의 기능을 바꾼다
·「정보 표시」
　이 OP를 적용하는 경우, 번호 클릭으로 캐릭터 정보가 표시된다
　적용하지 않는 경우, 반환값으로서 클릭 한 캐릭터의 등록 번호를 돌려준다
·「정보 고정」
　이 OP를 적용하는 경우, DISP_TYPE(일행 표시에서의 표시 내용)를 변경할 수 없다
·「조건 변경」
　이 OP를 적용하는 경우, 함수내에서 리스트의 종류를 바꿀 수가 있다
·「최종 확인」
　「정보 표시」를 적용하지 않으면 의미가 없다
　정보 표시 화면에서 표시중의 캐릭터를 후보로서 돌려줄 수가 있게 된다
　결정/캔슬이 가능

CHARA_LIST는 Private(사적인)으로 보유 하고 있기 (위해)때문에
이 함수로부터 CALL/JUMP 한 함수에 REF로 건네주는 것은 가능하지만
이 함수의 호출해 원래 함수에 대해서 건네주는 것은 불가능하다

일행 표시의 표시 항목 일람, 알기 쉽게 숫자를 병기 해 둔다
	 0"체력",  1"기력",
	 2"C감",  3"V감",  4"A감",  5"B감",  6"M감",
	 7"친밀",  8"순종",  9"욕망", 10"기교",
	11"손가락기술", 12"혀 기술", 13"가슴기술", 14"허리기술", 15"질 기술", 16"A기술",
	17"고통", 18"쾌락", 19"괘씸", 20"반발", 21"시간",
	22"호감", 23"신뢰", 24"욕구"
[SKIPEND]
@SHOW_CHARA_LIST(LIST_TYPE = "존재하는 캐릭터리스트", DISP_TYPE = "체력 기력", OP)
#DIMS LIST_TYPE                     ;리스트의 종별
#DIMS DISP_TYPE                     ;일행 표시에서의 표시 내용
#DIMS OP                            ;기능 옵션
#DIM  GET_LIST = 1                  ;리스트 갱신 플래그
#DIM  L_ID                          ;리스트상의 번호(루프 카운터), 등록 번호에 있지 않고
#DIM  L_CLASS_ID                    ;리스트의 클래스내 ID
#DIM  CHARA_LIST , 캐릭터수상한 ;리스트 본체, 등록 번호에서 기록
#DIM  CHARA_CNT                     ;리스트에 해당한 캐릭터의 수
#DIMS INPUT_STR                     ;입력 내용의 한때 보유
#DIM  INPUT_INT                     ;입력 내용을 INT화한 물건
#DIM  NOW_GROUP = 1                 ;표시중의 캐릭터 그룹
#DIM  LAST_GROUP                    ;캐릭터 그룹 총수
#DIM  DISP_PAGE                     ;페이지수(정보 표시의 항목의 전환)
#DIMS SORT_TYPE                     ;캐릭터리스트의 소트 타입
;표시 타입의 명칭
{
#DIMS CONST DISP_NAME , 5 =
	"체력 기력", "감도 등", "성 기술", "각인", "호감도"
}
;표시 항목의 명칭
{
#DIMS CONST DISP_MEMO , 25 =
	"체력", "기력",
	"C감", "V감", "A감", "B감", "M감",
	"친밀", "순종", "욕망", "기교",
	"손가락기술", "혀 기술", "가슴기술", "허리기술", "질 기술", "A기술",
	"고통", "쾌락", "괘씸", "반발", "시간",
	"호감", "신뢰", "욕구"
}

;정보 표시용
DISP_PAGE = FINDELEMENT(DISP_NAME, DISP_TYPE)

IF GET_LIST
	CALL MAKE_CHARA_LIST(LIST_TYPE, L_CLASS_ID, CHARA_LIST, CHARA_CNT)
	GET_LIST = 0
	VARSET SORT_TYPE
ENDIF
DRAWLINE

;항목 없음
IF CHARA_CNT <= 0
	PRINTFORML ＜해당 없음＞　%LIST_TYPE%
	PRINTFORML
	DRAWLINE
	FOR LOCAL, 0, 20
		PRINTL
	NEXT
;항목 있어
ELSE
	;현재의 타입의 총그룹수를 갱신
	LAST_GROUP = 1 + (CHARA_CNT - 1) / 20
	PRINTFORML (해당{CHARA_CNT}명　{NOW_GROUP}/{LAST_GROUP})　%LIST_TYPE%　　색깔 있는 캐릭터는 대사 있음
	PRINTFORM
	CALL CHARA_BUTTON(-1, , DISP_TYPE, SORT_TYPE)
	DRAWLINE
	FOR L_ID, (NOW_GROUP - 1) * 20, NOW_GROUP * 20
		IF INRANGE(L_ID, 0, CHARA_CNT - 1)
			CALL CHARA_BUTTON(L_ID, CHARA_LIST:L_ID, DISP_TYPE, SORT_TYPE)
		ELSE
			PRINTL
		ENDIF
	NEXT
ENDIF
DRAWLINE

PRINTFORM
SIF CHARA_CNT > 0 && NOW_GROUP > 1
	PRINTBUTTON "[888] - 　이전캐릭터　", "888"
PRINTFORML

IF STRCOUNT(OP, "「정보 고정」")
	PRINTFORM
ELSE
	; KR_칸 밀림에 의한 예외처리
	SELECTCASE DISP_TYPE
		CASE "감도 등"
			PRINTBUTTON @"[444] -　　%DISP_NAME:((DISP_PAGE - 1 + 5) % 5), 8%　", "444"
		CASEELSE
			PRINTBUTTON @"[444] - 　　%DISP_NAME:((DISP_PAGE - 1 + 5) % 5), 8%　", "444"
	ENDSELECT
ENDIF
IF STRCOUNT(OP, "「조건 변경」")
	PRINTBUTTON "[555] -　　조건 변경　", "555"
ELSE
	PRINTFORM
ENDIF
IF STRCOUNT(OP, "「정보 고정」")
	PRINTFORM
ELSE
	PRINTBUTTON @"[666] - 　　%DISP_NAME:((DISP_PAGE + 1 + 5) % 5), 8%　", "666"
ENDIF
PRINTFORML

PRINTFORM
SIF CHARA_CNT > 0 && NOW_GROUP < LAST_GROUP
	PRINTBUTTON "[222] - 　다음캐릭터　", "222"
PRINTFORML
PRINTFORML
PRINTBUTTON "[999] - 　　　돌아간다　", "999"
PRINTFORML

VARSET INPUT_STR
VARSET INPUT_INT
DO
	INPUTS
	INPUT_STR '= RESULTS
	SIF !STRLENS(INPUT_STR)
		GOTO RETRY
	IF ISNUMERIC(INPUT_STR)
		INPUT_INT = TOINT(INPUT_STR)
		SELECTCASE INPUT_INT
		;먼저 시스템계를 처리, 222라면 여유 있는 실마리(K에서는 사용할 수 있는 함정)
		CASE 888
			SIF !(CHARA_CNT > 0 && NOW_GROUP > 1)
				GOTO RETRY
			NOW_GROUP --
			RESTART
		CASE 222
			SIF !(CHARA_CNT > 0 && NOW_GROUP < LAST_GROUP)
				GOTO RETRY
			NOW_GROUP ++
			RESTART
		CASE 444
			SIF STRCOUNT(OP, "「정보 고정」")
				GOTO RETRY
			DISP_TYPE '= DISP_NAME:((DISP_PAGE - 1 + 5) % 5)
			RESTART
		CASE 555
			SIF !STRCOUNT(OP, "「조건 변경」")
				GOTO RETRY
			CALL CHANGE_LIST(LIST_TYPE, OP)
			GET_LIST = 1
			NOW_GROUP = 1
			RESTART
		CASE 666
			SIF STRCOUNT(OP, "「정보 고정」")
				GOTO RETRY
			DISP_TYPE '= DISP_NAME:((DISP_PAGE + 1 + 5) % 5)
			RESTART
		CASE 999
			;REF로 배열 만들면 다캐릭터 선택도 갈 수 있을 것 같다
			;수수는 차치하고 표시 주위가 귀찮아인가
			GET_LIST = 1
			NOW_GROUP = 1
			RETURN 999
		CASEELSE
		;캐릭터가 선택되었을 때
			IF !INRANGE(INPUT_INT, MAX(0, (NOW_GROUP - 1) * 20), MIN(CHARA_CNT - 1, NOW_GROUP * 20))
				PRINTFORMW {INPUT_INT} 범위외
				GOTO RETRY
			ELSEIF L_CLASS_ID == -1 && !CHECK_CHARA(CHARA_LIST:INPUT_INT, LIST_TYPE)
				PRINTFORMW {INPUT_INT} 리스트가 아니다
				GOTO RETRY
			ELSEIF L_CLASS_ID > 0 && !GET_INT(CHARA_LIST:INPUT_INT, "캐릭터리스트", L_CLASS_ID, "판정")
				PRINTFORMW {INPUT_INT} 리스트에 연주해진다
				GOTO RETRY
			ENDIF
			;여기만 DO-LOOP 빠집니다
			BREAK

			$RETRY
			REUSELASTLINE 무효인 입력입니다
			CONTINUE
		ENDSELECT
	ELSE
	;STR로 받았을 때, SORT 처리이므로 처리가 가능한 경우는 모두 RESTART
	;이상한 캐릭터 라인을 받았을 경우에는 CONTINUE
	;DO-LOOP를 탈출할 수 있는 것은 INT 한편, 리스트상의 캐릭터를 선택했을 경우만
		SELECTCASE DISP_TYPE
		CASE "체력 기력"
			FOR LOCAL:0, 0, 2
				IF INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%승순" || INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%내림차순"
					SORT_TYPE '= INPUT_STR
					CALL SORT_LIST(INPUT_STR, CHARA_LIST, CHARA_CNT)
					RESTART
				ENDIF
			NEXT
			GOTO RETRY
		CASE "감도 등"
			FOR LOCAL:0, 2, 11
				IF INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%승순" || INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%내림차순"
					SORT_TYPE '= INPUT_STR
					CALL SORT_LIST(INPUT_STR, CHARA_LIST, CHARA_CNT)
					RESTART
				ENDIF
			NEXT
			GOTO RETRY
		CASE "성 기술"
			FOR LOCAL:0, 11, 17
				IF INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%승순" || INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%내림차순"
					SORT_TYPE '= INPUT_STR
					CALL SORT_LIST(INPUT_STR, CHARA_LIST, CHARA_CNT)
					RESTART
				ENDIF
			NEXT
			GOTO RETRY
		CASE "각인"
			FOR LOCAL:0, 17, 22
				IF INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%승순" || INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%내림차순"
					SORT_TYPE '= INPUT_STR
					CALL SORT_LIST(INPUT_STR, CHARA_LIST, CHARA_CNT)
					RESTART
				ENDIF
			NEXT
			GOTO RETRY
		CASE "호감도"
			FOR LOCAL:0, 22, 25
				IF INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%승순" || INPUT_STR == @"%DISP_MEMO:(LOCAL:0)%내림차순"
					SORT_TYPE '= INPUT_STR
					CALL SORT_LIST(INPUT_STR, CHARA_LIST, CHARA_CNT)
					RESTART
				ENDIF
			NEXT
			GOTO RETRY
		CASEELSE
			THROW 이상한 DISP_TYPE　%DISP_TYPE%
		ENDSELECT
	ENDIF
LOOP 1

IF STRCOUNT(OP, "「정보 표시」")
	CALL LIST_CHARA_STATE(CHARA_LIST, INPUT_INT, CHARA_CNT, OP)
	SIF !RESULT
		RESTART
	NOW_GROUP = 1
	GET_LIST = 1
	;일단 RESULT가 정말로 되는 것은 「최종 확인」만이지만 만약을 위해 판정
	SIF STRCOUNT(OP, "「최종 확인」")
		RETURN RESULT
ELSE
	NOW_GROUP = 1
	GET_LIST = 1
	RETURN CHARA_LIST:INPUT_INT
ENDIF

;사용 리스트의 전환 함수
;나무
;현재 상태로서는 불필요하지만 OP를 건네주어 있으므로"SHOP 표시"이외에의 전환도 용이합니다
@CHANGE_LIST(LIST_TYPE, OP)
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS REF LIST_TYPE;현재 사용중의 표시 내용
#DIMS OP           ;실행 옵션
PRINTFORML 리스트의 표시 조건의 변경(현재의 설정：%LIST_TYPE%)
PRINTFORML
CALL CLASS_LIST("캐릭터리스트", "SHOP 표시")
PRINTFORML
PRINTFORML [999] - 그만둔다
DO
	INPUT
	SELECTCASE RESULT
	CASE 999
		RETURN
	CASEELSE
		IF !STRLENS(GET_STR(0, "캐릭터리스트", RESULT, "이름"))
		ELSEIF GET_INT(0, "캐릭터리스트", RESULT, "SHOP 표시")
			LIST_TYPE '= GET_STR(0, "캐릭터리스트", RESULT, "이름")
			RETURN
		ENDIF
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
LOOP 1

;단캐릭터 정보 표시 함수
;주인의 행동중의 MASTER의 정보 표시용
@SINGLE_CHARA_STATE(C_ID, OP)
#DIM  C_ID ;등록 번호
#DIMS OP   ;실행 옵션
#DIM  PAGE ;표시중의 페이지
#DIMS CONST DISP_NAME , 6 = "능력", "경험과 보주", "개인정보", "호불호", "신체정보", "소지도구"
CALL CHARA_STATE(C_ID, PAGE, OP)

PRINTBUTTON @"[4] -　　　%DISP_NAME:((PAGE - 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호), 10%", 4
PRINTFORM
PRINTBUTTON @"[6] -　　　%DISP_NAME:((PAGE + 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호), 10%", 6
IF STRCOUNT(OP, "「최종 확인」")
	PRINTFORML
	PRINTBUTTON "[1] - 이 캐릭터로 결정", 0
	PRINTFORM
	PRINTBUTTON "[0] - 　　　취소", 0
	PRINTFORML
ELSE
	PRINTFORML
	PRINTBUTTON "[0] - 　　　　　돌아간다", 0
ENDIF
DO
	INPUT
	SELECTCASE RESULT
	CASE 1
		SIF STRCOUNT(OP, "「최종 확인」")
			RETURN C_ID
		GOTO RETRY
	CASE 0
		RETURN 0
	;표시 항목의 변경
	CASE 4
		PAGE = (PAGE - 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호
	CASE 6
		PAGE = (PAGE + 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호
	;표시·비표시의 전환
	CASE 160 TO 169
		TFLAG:RESULT = !TFLAG:RESULT
	CASEELSE
		$RETRY
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;조교중 타겟용의 리스트 표시 함수
;보통에 TARGET를 건네주면(자) TARGET:0이 중복 해 버리므로 그대로는 사용할 수 없었다
;리스트에 MASTER를 포함하도록(듯이) 개량
@TARGET_LIST_STATE
#DIM TARGET_LIST, 캐릭터수상한
#DIM TARGET_NUM
#DIM VIEW
VARSET TARGET_LIST
TARGET_NUM = FINDELEMENT(TARGET, 0) - 1
VIEW = TARGET
SIF TARGET_NUM <= 0
	RETURN
ARRAYCOPY "TARGET", "TARGET_LIST"
TARGET_LIST:0 = MASTER
VIEW = FINDELEMENT(TARGET_LIST, TARGET)
SIF VIEW == -1
	VIEW = 0
CALL LIST_CHARA_STATE(TARGET_LIST, VIEW, TARGET_NUM + 1, "「조교중」")

;리스트가 있을 때 전용의 정보 표시 함수
;CHARA_LIST에 TARGET를 건네주면 TARGET 차례로 표시해 준다
@LIST_CHARA_STATE(CHARA_LIST, C_VIEW, CHARA_CNT, OP)
#DIM REF CHARA_LIST ;리스트 본체, 등록 번호에서 기록
#DIM     C_VIEW     ;표시중 캐릭터의 리스트상의 위치
#DIM     CHARA_CNT  ;리스트에 해당한 캐릭터의 수
#DIMS    OP         ;실행 옵션
#DIM     C_ID       ;등록 번호
#DIM     PAGE       ;표시중의 페이지
#DIMS CONST DISP_NAME , 6 = "능력", "경험과 보주", "개인정보", "호불호", "신체정보", "함락 조건"
CALL CHARA_STATE(CHARA_LIST:C_VIEW, PAGE, OP)
DRAWLINE
PRINTFORM
PRINTBUTTON "[8] - 　　　이전캐릭터", 8
PRINTFORML

PRINTBUTTON @"[4] -　　　%DISP_NAME:((PAGE - 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호), 10%", 4
PRINTFORM
PRINTBUTTON @"[6] -　　　%DISP_NAME:((PAGE + 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호), 10%", 6
PRINTFORML

PRINTFORM
PRINTBUTTON "[2] - 　　　다음캐릭터", 2
PRINTFORML

IF STRCOUNT(OP, "「최종 확인」")
	PRINTFORML
	PRINTBUTTON "[1] - 이 캐릭터로 결정", 1
	PRINTFORM
	PRINTBUTTON "[0] - 　　　취소", 0
	PRINTFORML
ELSE
	PRINTFORML
	PRINTBUTTON "[0] - 　　　　　돌아간다", 0
ENDIF
DO
	INPUT
	SELECTCASE RESULT
	CASE 1
		SIF STRCOUNT(OP, "「최종 확인」")
			RETURN CHARA_LIST:C_VIEW
		GOTO RETRY
	CASE 0
		RETURN 0
	;캐릭터 이동
	CASE 8
		C_VIEW = (C_VIEW - 1 + CHARA_CNT) % CHARA_CNT
	CASE 2
		C_VIEW = (C_VIEW + 1 + CHARA_CNT) % CHARA_CNT
	;표시 항목의 변경
	CASE 4
		PAGE = (PAGE - 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호
	CASE 6
		PAGE = (PAGE + 1 + 상세능력표시최대페이지번호) % 상세능력표시최대페이지번호
	;표시·비표시의 전환
	CASE 160 TO 168
		TFLAG:RESULT = !TFLAG:RESULT
	CASE 화상변환 ;KR판 구잔재 AA표시. 일판은 변수명 변경 및 AA 삭제됨
		IF !FLAG:화상표시 && !FLAG:AA표시
			FLAG:AA표시 = !FLAG:AA표시
		ELSEIF !FLAG:화상표시
			FLAG:AA표시 = !FLAG:AA표시
			FLAG:화상표시 = !FLAG:화상표시
			FLAG:스탠딩종류 = 0
		ELSEIF !FLAG:스탠딩종류
			FLAG:스탠딩종류 = !FLAG:스탠딩종류
		ELSEIF FLAG:스탠딩종류
			FLAG:화상표시 = !FLAG:화상표시
		ENDIF
	CASE 98
		SIF CFLAG:(CHARA_LIST:C_VIEW):별도얼굴있음 || CFLAG:(CHARA_LIST:C_VIEW):별도스탠딩있음
			CFLAG:(CHARA_LIST:C_VIEW):대체적용 += 1
		SIF CFLAG:(CHARA_LIST:C_VIEW):대체적용 > CFLAG:(CHARA_LIST:C_VIEW):별도얼굴있음 && CFLAG:(CHARA_LIST:C_VIEW):대체적용 > CFLAG:(CHARA_LIST:C_VIEW):별도스탠딩있음
			CFLAG:(CHARA_LIST:C_VIEW):대체적용 = 0
	CASEELSE
		$RETRY
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;기초 정보 표시 함수
;@CHARA_STATE로부터 공통 요소를 뽑아냈을 뿐(장도 참 주위의 것으로)
;BASE계와 열정을 기초 정보에 포함하게 한다
@BASIC_STATE(C_ID, OP)
#DIM C_ID
#DIMS OP
DRAWLINEFORM ━
PRINTFORM ■%NAME:C_ID%(호감도:
CALL PRINT_RANK(CFLAG:C_ID:호감도, "MAX_50000")
PRINTFORM  {CFLAG:C_ID:호감도} 신뢰도:
CALL PRINT_RANK(CFLAG:C_ID:신뢰도, "MAX_20000")
PRINTFORM  {CFLAG:C_ID:신뢰도})
;MASTER라면 소지금을 기재
IF C_ID == MASTER
	PRINTFORM (소지금:%금액표시(MONEY)%
	PRINTFORM  (소지 카리스마:%세자리구분(MONEY:2)%CM)
	; 개인 임의수정, 수찰 > 모리야부적
	PRINTFORM  (소지 모리야부적:{ITEM:131}매)
ENDIF
IF FLAG:생리주기가시화 && TALENT:C_ID:성별 != 2
	IF STRCOUNT(OP, "「조교중」")
		CALL CYCLE_PRINT(C_ID)
;모브 물색중 판정
	ELSEIF SELECTCOM == 444
		CALL CYCLE_PRINT(C_ID)
	ELSE
		CALL CYCLE_PRINT다음날(C_ID)
	ENDIF
ENDIF
SIF C_ID != MASTER && FLAG:생리주기가시화
	SETCOLOR C_AQUA
IF CFLAG:C_ID:생해금 == 2
	PRINT 위험일 생H해금
ELSEIF CFLAG:C_ID:생해금 == 1
	PRINT 생H해금
ELSEIF GETBIT(CFLAG:C_ID:기정사실, 1)
	PRINT 합의 취득
ENDIF
RESETCOLOR
;여기만 BASE 기본 표시로 독립시켜도 괜찮을지도라는 느낌에 쓰기 좋은 점 그렇게
PRINTL
CALL BASE_BAR(C_ID, "체력", 28, "초록")
PRINTFORM
CALL BASE_BAR(C_ID, "기력", 28, "파랑", "「개행」")
SIF BASE:C_ID:술기운
	CALL BASE_BAR(C_ID, "술기운", 28, "빨강", "「개행」")

IF C_ID == MASTER
	CALL BASE_BAR(MASTER, "정력", 28, "黄")
	PRINTFORM
	CALL BASE_BAR(C_ID, "TSP", 28, "물색", "「개행」")
ELSE
	IF NOTICE_LUST(C_ID)
		;기술을 정리할 수 있다고 하는 이유로써 미묘하게 반응을 일으키는 최소의 물리량 변경
		SELECTCASE CFLAG:C_ID:욕구불만도
		CASE IS >= 665
			SETCOLOR C_RED
		CASE IS >= 332
			SETCOLOR C_YELLOW
		ENDSELECT
		PRINTFORMD 욕구 불만도：
		PRINTFORM {CFLAG:C_ID:욕구불만도 / 10}
		PRINTFORMD ％
		RESETCOLOR
	ENDIF
	PRINTFORM
	SIF CFLAG:(C_ID):탄막승부승리 == 1
		PRINTFORM ★탄막승부에 승리했다
	SIF CFLAG:(C_ID):벌레배틀직접승리 == 1
		PRINTFORM ★벌레배틀에 직접 승리했다
	PRINTFORML
ENDIF

;캐릭터 정보 표시 함수
;등록 번호와 페이지번호, 옵션을 지정해 정보를 표시한다
@CHARA_STATE(C_ID, PAGE, OP)
#DIM  C_ID
#DIM  PAGE
#DIMS OP
;#DIM STARTLINE

;STARTLINE = LINECOUNT

CALL BASIC_STATE(C_ID, OP)
SELECTCASE PAGE
CASE 0
	CALL PRINT_STATE_IMAGE(C_ID)
	CALL SHOW_SIZE(C_ID)
	CALL PRINT_STATE_CLOTH(C_ID)
	CALL PRINT_STATE_TALENT(C_ID)
	PRINTL
	CALL SHOW_ABILITY(C_ID)
CASE 1
	PRINTL
	CALL PRINT_STATE_EXP(C_ID)
	PRINTL
	;현상 마스터는 임신하지 않을 것이지만 장래의 기능확장을 생각와 이것으로 좋은 것인지?
	SIF !(C_ID == MASTER) && (TALENT:C_ID:임신 || CFLAG:C_ID:아이인원수 > 0)
		CALL 임신관련(C_ID)
	IF STRCOUNT(OP, "「조교중」")
		CALL PRINT_STATE_EX(C_ID)
	ELSE ;IF !(C_ID == MASTER) ;개인 임의수정, MASTER도 JUEL 표시
		CALL PRINT_STATE_JUEL(C_ID)
	ENDIF
	PRINTL
	; 개인 임의수정, 보주 표시 뒤에 한칸 개행
	PRINTL
	IF C_ID == MASTER
		CALL 예정
	ELSE
		CALL 팬티수집상황(C_ID)
	ENDIF
CASE 2
	CALL PRINT_STATE_PERSONAL(C_ID)
	CALL SHOW_RELATION(C_ID)
CASE 3
	CALL PRINT_STATE_PREFERENCE(C_ID)
	CALL PRINT_STATE_GIFTDATA(C_ID, 15)
CASE 4
	CALL 육체정보(C_ID)
CASE 5
	IF C_ID == MASTER
		CALL SHOW_ALLITEM_INFO
	ELSE
		CALL 함락조건표시(C_ID)
		CALL 바람기파악상황(C_ID)
	ENDIF
CASEELSE
	THROW 이상한PAGE {PAGE}
ENDSELECT

;WHILE (680/GETCONFIG("一行の高さ"))-(LINECOUNT-STARTLINE) > 0
;	PRINTL
;WEND

;각인과 능력을 일괄해 표시한다
;세로폭을 압축하고 싶다
@SHOW_ABILITY(C_ID)
#DIM  C_ID
;KR판 오리지날 또는 구잔재 채집/낚시/조제기능 표시
{
#DIMS CONST DISP_NAME , 63 =
	"고통",     "친밀",     "교양", "C감각", "손기술", "마조끼", "자위중독",
	"쾌락",     "순종", "화술기능", "V감각", "질기술", "새드끼", "정액중독",
	"괘씸",     "욕망", "전투능력", "A감각", "A기술", "레즈끼", "레즈중독",
	"반발",     "기교", "청소기능", "B감각", "가슴기술", "호모끼", "게이중독",
	"이력", 	"봉사정신", "요리기능", "M감각", "혀기술",         "", "질사중독",
	"시간",   	 "노출벽", "음악기능",       "", "허리기술",         "", "항사중독",
	"마크",   "", "채집기능",       "", "",         "", "",
	"마크",   "", "낚시기능",       "", "",         "", "",
	"마크",   "", "조제기능",       "", "",         "", "",
}
PRINT □
CALL PRINTBUTTON_EX("능력", 162, TFLAG:162)
PRINTL  □---------------------------------------------------------------------------
SIF TFLAG:능력표시
	RETURN

FOR LOCAL, 0, 63
	CALL PRINT_ABILITY(C_ID, DISP_NAME:LOCAL, LOCAL)
	SIF LOCAL % 7 == 6
		PRINTFORML
NEXT

;↑전용의 표시 함수
@PRINT_ABILITY(C_ID, DISP_NAME, VIEW)
#DIM  C_ID
#DIMS DISP_NAME
#DIM  VIEW
{
#DIM CONST DISP_ID , 63 =
	0,  9, 43, 0, 50, 15, 30,
	1, 10, 41, 1, 54, 16, 31,
	2, 11, 42, 2, 55, 17, 32,
	3, 12, 40, 3, 52, 18, 33,
	4, 13, 44, 4, 51,  0, 34,
	5, 14, 45, 0, 53,  0, 35,
	6,  0, 46, 0,  0,  0,  0,
	6,  0, 47, 0,  0,  0,  0,
	6,  0, 48, 0,  0,  0,  0,
}
PRINTFORM
SELECTCASE DISP_NAME
CASE ""
	$SHOW_BLANK
	PRINTFORM
CASE "고통", "쾌락", "괘씸", "반발", "이력", "시간","마크"
	IF C_ID == MASTER
		PRINTFORM %"　" * 6%
	ELSEIF GROUPMATCH(DISP_NAME, "반발", "이력")
		PRINTFORM %DISP_NAME, 4%：
		CALL COLOR_STAMP(MARK:C_ID:(DISP_ID:VIEW), 3, "×", C_RED)
	ELSEIF GROUPMATCH(DISP_NAME, "마크")
		PRINTFORM %"　" * 6%
	ELSE
		PRINTFORM %DISP_NAME, 4%：
		CALL COLOR_STAMP(MARK:C_ID:(DISP_ID:VIEW), 3, "★", 0xFFFF00)
	ENDIF
{
CASE
	"손기술", "질기술", "A기술", "가슴기술", "혀기술", "허리기술",
	"청소기능", "화술기능", "전투능력",     "교양", "요리기능", "음악기능"
}
	PRINTFORM %DISP_NAME, 8%：
	CALL PRINT_RANK(ABL:C_ID:(DISP_ID:VIEW), "MAX_6")
	PRINTFORM  {ABL:C_ID:(DISP_ID:VIEW), 3}
;이하 KR판 구잔재 또는 오리지날
{
CASE
	"채집기능"
}
	PRINTFORM %DISP_NAME, 8%：
	CALL PRINT_RANK(TALENT:C_ID:채집Lv, "MAX_6")
	PRINTFORM  {TALENT:C_ID:채집Lv, 3}
{
CASE
	"낚시기능"
}
	PRINTFORM %DISP_NAME, 8%：
	CALL PRINT_RANK(TALENT:C_ID:낚시Lv, "MAX_6")
	PRINTFORM  {TALENT:C_ID:낚시Lv, 3}
{
CASE
	"조제기능"
}
	PRINTFORM %DISP_NAME, 8%：
	CALL PRINT_RANK(TALENT:C_ID:조제Lv, "MAX_6")
	PRINTFORM  {TALENT:C_ID:조제Lv, 3}
CASEELSE
	SIF GROUPMATCH(DISP_NAME, "레즈끼", "레즈중독") && !GETBIT(TALENT:C_ID:2, 0)
		GOTO SHOW_BLANK
	SIF GROUPMATCH(DISP_NAME, "호모끼", "게이중독") && GETBIT(TALENT:C_ID:2, 0)
		GOTO SHOW_BLANK
	PRINTFORM %DISP_NAME, 8%：
	CALL PRINT_RANK(ABL:C_ID:(DISP_ID:VIEW), "MAX_99")
	PRINTFORM  {ABL:C_ID:(DISP_ID:VIEW), 3}
ENDSELECT

;소트용 버튼 작성 함수
;간단하게 취급할 수 있지만
;동일 리스트내의 B_NAME는 가로폭을 갖추어질 수 있는 편이 보고 네가 좋다
@MAKE_SORT_BUTTON(SORT_TYPE, B_NAME)
#DIMS SORT_TYPE ;현재의 소트 타입
#DIMS B_NAME    ;기본의 버튼명
IF SORT_TYPE == @"%B_NAME%내림차순"
	PRINTBUTTON @"▼%B_NAME%", @"%B_NAME%승순"
ELSEIF SORT_TYPE == @"%B_NAME%승순"
	PRINTBUTTON @"▲%B_NAME%", @"%B_NAME%내림차순"
ELSE
	PRINTBUTTON @"　%B_NAME%", @"%B_NAME%내림차순"
ENDIF

;일행 정보 표시 함수
;캐릭터의 정보를 일행으로 표시하면서 버튼으로서 취급한다
;원래는@ShowStatusBody와@ShowStatusHeader 근처
;라벨(버튼으로서의 번호)과 등록 번호를 따로따로로 지정할 필요가 있다
@CHARA_BUTTON(LABEL, C_ID, DISP_TYPE = "체력 기력", SORT_TYPE)
#DIM  LABEL
#DIM  C_ID
#DIMS DISP_TYPE
#DIMS SORT_TYPE
#DIMS 표시문
#DIM  표시신분번호
#DIM  CONST 바길이 = 10
;LABEL가 음수는 있을 수 없기 때문에 표시 내용의 공지에 유용하고 있습니다
IF LABEL >= 0
	SIF CFLAG:C_ID:구상실장상황
		SETCOLOR 103,228,126
	PRINTFORM [{LABEL, 3}] %CALLNAME:C_ID, 14, LEFT%
	RESETCOLOR
ENDIF
SELECTCASE DISP_TYPE
CASE "체력 기력"
	IF LABEL < 0
		PRINTFORM %"　" * 10%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "체력")
		PRINTFORM %"　" * 10%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "기력")
	ELSE
		CALL BASE_BAR(C_ID, "체력", 10, "초록", "「종류 표기 없음」")
		CALL BASE_BAR(C_ID, "기력", 10, "파랑", "「종류 표기 없음」")
	ENDIF
	PRINTFORML
CASE "감도 등"
	IF LABEL < 0
		PRINTFORM %"　" * 4% 능력%" " * 7%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "C감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "V감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "A감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "B감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "M감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "친밀")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "순종")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "욕망")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "기교")
	ELSE
		FOR 표시신분번호, 0, 13
			SIF ABLNAME:표시신분번호 == ""
				CONTINUE
			CALL PRINT_RANK(ABL:C_ID:표시신분번호, "MAX_99")
			PRINTFORM {ABL:C_ID:표시신분번호, 4}|
		NEXT
	ENDIF
	PRINTFORML

CASE "성 기술"
	IF LABEL < 0
		PRINTFORM %"　" * 3% 성기술%" " * 7%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, " 손 기술")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, " 혀 기술")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "가슴기술")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "허리기술")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, " 질 기술")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, " A 기술")
	ELSE
		;매우 적당하게 다하고 수정의 여지 있어
		FOR 표시신분번호, 50, 56
			SIF ABLNAME:표시신분번호 == ""
				CONTINUE
			CALL PRINT_RANK(ABL:C_ID:표시신분번호, "MAX_6")
			PRINTFORM {ABL:C_ID:표시신분번호, 8}|
		NEXT
	ENDIF
	PRINTFORML

CASE "각인"
	IF LABEL < 0
		PRINTFORM %"　" * 4% 각인%" " * 7%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "고통")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "쾌락")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "괘씸")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "반발")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "시간")
	ELSE
		;매우 적당하게 다하고 수정의 여지 있어
		FOR 표시신분번호, 0, 6
			IF MARKNAME:표시신분번호 == ""
				CONTINUE
			ENDIF
			;반발각인 이력은 표시하지 않게
			SIF 표시신분번호 == 4
				CONTINUE
			IF 표시신분번호 == 3
				CALL COLOR_STAMP(MARK:C_ID:표시신분번호, 3, "×", C_RED)
			ELSE
				CALL COLOR_STAMP(MARK:C_ID:표시신분번호, 3, "★", 0xFFFF00)
			ENDIF
			PRINTFORM |
		NEXT
	ENDIF
	PRINTFORML

CASE "호감도"
	IF LABEL < 0
		PRINTFORM %"　" * 11%
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "호감")
		PRINT |
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "신뢰")
		PRINT |
		SIF TALENT:MASTER:정욕감지
		CALL MAKE_SORT_BUTTON(SORT_TYPE, "욕구")
	ELSE
		;호감도
		CALL PRINT_RANK(CFLAG:C_ID:호감도, "MAX_50000")
		PRINTFORM {CFLAG:C_ID:호감도, 6}|

		;신뢰도
		CALL PRINT_RANK(CFLAG:C_ID:신뢰도, "MAX_20000")
		PRINTFORM {CFLAG:C_ID:신뢰도, 6}|

		;욕구
		IF TALENT:MASTER:정욕감지
			SELECTCASE CFLAG:C_ID:욕구불만도
			CASE IS >= 665
				SETCOLOR C_RED
			CASE IS >= 332
				SETCOLOR C_YELLOW
			ENDSELECT
			PRINTFORM {CFLAG:C_ID:욕구불만도 / 10, 4}
			RESETCOLOR
			PRINT %|
		ENDIF
		;함락
		IF TALENT:C_ID:연인
			SETCOLOR C_RED
			표시문 = 연인
		ELSEIF TALENT:C_ID:연모 == 1
			SETCOLOR 0xEE60EE
			표시문 = 연모
		ELSEIF TALENT:C_ID:애욕 == 1
			SETCOLOR 0x2E8B57
			표시문 = 애욕
		ELSEIF TALENT:C_ID:섹프 == 2
			SETCOLOR 0xFF6347
			표시문 = 정부
		ELSEIF TALENT:C_ID:사모 == 1
			SETCOLOR 0xFFFF00
			표시문 = 사모
		ELSEIF TALENT:C_ID:섹프 == 1
			SETCOLOR 0x7CFC00
			표시문 = 섹프
		ELSE
			표시문 =
		ENDIF
		PRINTFORM %표시문, 6, LEFT%
		RESETCOLOR
		PRINT |

		;기정사실
		SELECTCASE CFLAG:(C_ID):생해금
			CASE 2
				표시문 = 위험일 생H해금
			CASE 1
				표시문 = 생H해금
			CASE 0
				IF GETBIT(CFLAG:(C_ID):기정사실, 1)
					표시문 = 합의 취득
				ELSE
					표시문 =
				ENDIF
		ENDSELECT
		PRINTFORM %표시문, 14, LEFT%|
		IF CFLAG:(C_ID):탄막승부승리 == 1
			PRINTFORM 승리완료
		ELSE
			PRINTFORM
		ENDIF

		;생리주기가시화
		IF NOTICE_CYCLE(C_ID)
			PRINT |
			CALL PRINT_CYCLE_다음날(C_ID)
		ENDIF
		IF CFLAG:(C_ID):출산경과일 > 0
			PRINT |
			PRINTFORM 육아중
		ENDIF

		RESETCOLOR
		;연인인가 어떤가는 바로 왼쪽으로 표시되므로 필요없을 것
		;SIF GETBIT(CFLAG:(C_ID):기정사실, 2)
		;	PRINTFORM 연인 같은 종류
		;약점
		IF CFLAG:(C_ID):약점잡음 && CFLAG:(C_ID):약점잡힘
			PRINTFORM %마스터와% 각자 약점을 서로 잡고
		ELSEIF CFLAG:(C_ID):약점잡음
			PRINTFORM %CALLNAME:MASTER%의 약점을 잡고 있다
		;SIF GETBIT(CFLAG:(C_ID):약점, 0)
		;	PRINTFORM 팬티를 몰수되었다
		;SIF GETBIT(CFLAG:(C_ID):약점, 1)
		;	PRINTFORM 정사를 볼 수 있었다
		ELSEIF CFLAG:(C_ID):약점잡힘
			PRINTFORM %CALLNAME:MASTER%에 자위 현장이 목격당한 적이 있다
		ENDIF
	ENDIF
	PRINTFORML
CASEELSE
	THROW 이상한 DISP_TYPE　%DISP_TYPE%
ENDSELECT

@함락조건표시(ARG)
#DIM 자각절정
자각절정 = EXP:ARG:절정경험 - EXP:ARG:무자각절정경험
DRAWLINE
CALL COLORMESSAGE(@"□연모 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:연모
	PRINT
	CALL COLORMESSAGE(@"　취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:2 >= REQUIRED_FAVOR_연모,@"호감도 {REQUIRED_FAVOR_연모} 이상")
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:4 >= REQUIRED_TRUST_연모,@"신뢰도 {REQUIRED_TRUST_연모} 이상")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:친밀 >= REQUIRED_AFFECTION_연모,@"친밀 {REQUIRED_AFFECTION_연모} 이상")
	PRINT
	CALL COND_COLORMESSAGE(!MARK:ARG:반발각인,@"반발각인이 없다")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□사모 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:연모 || TALENT:ARG:사모
	PRINT
	CALL COLORMESSAGE(@"　취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:2 >= REQUIRED_FAVOR_사모,@"호감도 {REQUIRED_FAVOR_사모} 이상")
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:4 >= REQUIRED_TRUST_사모,@"신뢰도 {REQUIRED_TRUST_사모} 이상")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:친밀 >= REQUIRED_AFFECTION_사모,@"친밀 {REQUIRED_AFFECTION_사모} 이상")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□애욕 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:연모
	PRINT
	CALL COLORMESSAGE(@"취득 불가", C_RED, 1)
ELSEIF TALENT:ARG:애욕
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:2 >= REQUIRED_FAVOR_애욕,@"호감도 {REQUIRED_FAVOR_애욕} 이상")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:욕망 >= REQUIRED_DESIRE_애욕,@"욕망 {REQUIRED_DESIRE_애욕} 이상")
	PRINT
	CALL COND_COLORMESSAGE(자각절정 >= REQUIRED_ECSTACY_애욕,@"의식이 있는 상태로 {REQUIRED_ECSTACY_애욕} 이상 절정")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:욕망 > ABL:ARG:친밀,"욕망이 친밀보다 높다")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□섹프 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:연모
	PRINT
	CALL COLORMESSAGE(@"취득 불가", C_RED, 1)
ELSEIF TALENT:ARG:섹프
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(CFLAG:ARG:2 >= REQUIRED_FAVOR_섹프,@"호감도 {REQUIRED_FAVOR_섹프} 이상")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:욕망 >= REQUIRED_DESIRE_섹프,@"욕망 {REQUIRED_DESIRE_섹프} 이상")
	PRINT
	CALL COND_COLORMESSAGE(자각절정 >= REQUIRED_ECSTACY_섹프,@"의식이 있는 상태로 {REQUIRED_ECSTACY_섹프} 이상 절정")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:욕망 >= ABL:ARG:친밀,"욕망이 친밀 이상")
ENDIF
DRAWLINE

;이하 (키스마, 자위중독, 음유, 음호, 항문광) KR판 구잔재 또는 오리지날
CALL COLORMESSAGE(@"□키스마 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:키스마
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(EXP:ARG:키스경험 > 300, @"키스경험 300 초과")
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:M감각 > REQUIRED_DESIRE_섹프, @"M감각 {5} 초과")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□자위중독 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:자위중독
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(EXP:ARG:조교자위경험 > 200, @"조교자위경험 200 초과")
	PRINT
	CALL COND_COLORMESSAGE(EXP:ARG:자위경험 > 500, @"자위경험 500 초과")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□음유 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:음유
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:가슴 >= 5,@"가슴기술 5 이상")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□음호 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:음호
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:질 >= 5,@"질기술 5 이상")
ENDIF
DRAWLINE
CALL COLORMESSAGE(@"□항문광 취득 조건", C_AQUA, 1)
PRINTFORML
IF TALENT:ARG:항문광
	PRINT
	CALL COLORMESSAGE(@"취득 완료", C_YELLOW, 1)
ELSE
	PRINT
	CALL COND_COLORMESSAGE(ABL:ARG:애널 >= 5,@"A기술 5 이상")
ENDIF
PRINTFORML

path: ERB/스테이터스표시관련/능력표시_t.ERB


code:
;-----------------------------------------------------------
;MOB割当の覚書
; 0～19はゲーム毎にリセット/着衣のみ
;20～39は毎日リセット/裸画像有り
;90以降はCSV割当の固定枠
;0～10	各地域土産物屋
;11		（拠点増設時予備）
;12		索道人里側
;13		鈴奈庵（小鈴不在時）
;14		人里温泉
;15		守谷くじ
;16		索道守谷側
;17		紅魔カジノ
;18		月酒屋
;19		人里酒屋
;20		エンカウント販売員
;21～23	エンカウント子分タヌキ
;24		エンカウントのっぺらぼう
;25～26	丁半博打参加者
;27		受付水子作成枠

;90		土産物屋モブ男
;91～94	モブ博徒（山童/河童/鴉天狗/蟒蛇）
;95		賭場代貸

;-----------------------------------------------------------
;モブ子作成の改変
@モブ店員画像作成(店員番号, ARGS = "")
{
#DIMS 種族, モブ子店員最大枠 =  "赤巫女", "尼", "유부녀", "메이드요정", "이나바",
								"요정", "좀비 페어리", "スク水河童", "백랑텐구", "오니",
								"옥토끼", "", "유부녀", "店番", "番台ちゃん",
								"緑巫女", "캇파", "バニー妖精", "옥토", "유부녀",
								"販売員", "茨たぬき", "茨たぬき", "茨たぬき", "のっぺらぼう"
}
#DIM キャラ番号
#DIM GID
#DIMS 生成文字列
#DIMS 合成文字列配列, 50
#DIMS 色合成
#DIMS 指定色
#DIMS 感情 = "通常", "笑顔", "怒り"
#DIMS 着衣
#DIM 合成数
#DIM リソースカウント
#DIM リソース種類
#DIM 店員番号
リソース種類 = 店員番号 > 19 ? 6 # 3
種族:5 = %TEXTR("요정/둔갑너구리/둔갑고양이/둔갑여우/茨たぬき")%
;３日に一度販売員が店番に入る
SIF ((GETTIME()/1000000000) % 100) % 3 == 0
	種族:4 = 販売員
SIF ((GETTIME()/1000000000) % 100) % 2
	種族:7 = 야마와로
SIF ARGS != ""
	種族:店員番号 = %ARGS%
CALL SET_MOB_IMAGE_STR(0, 種族:店員番号, 店員番号)
IF 種族:店員番号 == "のっぺらぼう"
	モブ子店員画像文字列:店員番号:3 = %DIC_REMOVE(モブ子店員画像文字列:店員番号:3, "目瞳")%
	モブ子店員画像文字列:店員番号:3 = %DIC_REMOVE(モブ子店員画像文字列:店員番号:3, "表情")%
ENDIF
FOR リソースカウント, 0, リソース種類
	;初期化
	GID = 0
	VARSET LOCAL
	VARSET 合成文字列配列,
	合成数 = 0

	;画像合成下地用のダミーを配置する
	CALL 画像合成(GID,"ダミー")
	;別絵モブ店員の処理
	IF GROUPMATCH(種族:店員番号, "販売員", "茨たぬき")
		CALL 別絵モブ子リソース探索(合成文字列配列, 合成数, モブ子店員画像文字列:店員番号:リソースカウント, 1)
		指定色 = %合成文字列配列:49%
		FOR LOCAL, 0, 合成数
			IF 合成文字列配列:LOCAL != ""
				SIF 指定色 != ""
					色合成 = %\@ STRFIND(合成文字列配列:LOCAL, "髪") > -1 ? %指定色% # \@%
				CALL 画像合成(GID, 合成文字列配列:LOCAL, 0, 0, 0, 0, 色合成)
			ENDIF
		NEXT
	ELSE
		;使うリソースの名称を配列に取得する
		CALL モブ子リソース探索(合成文字列配列, 合成数, モブ子店員画像文字列:店員番号:リソースカウント, 1)
		;モブ子画像は高い番号のリソースから先に合成していく必要があるので降順にソートする
		ARRAYSORT 合成文字列配列, BACK, 0, 合成数
		;モブ子用画像を順番に合成していく
		FOR LOCAL, 0, 合成数
			色合成 '= ""
			IF 合成文字列配列:LOCAL != ""
				;色合成確認
				FOR LOCAL:1, 0 ,モブ子素材色種別数
					IF STRFIND(合成文字列配列:LOCAL, @"_%モブ子素材色種別:(LOCAL:1)%_") != -1 && DIC_CONTAINSKEY(モブ子店員画像文字列:店員番号:リソースカウント, @"%モブ子素材色種別:(LOCAL:1)%色")
						色合成 = %DIC_GET(モブ子店員画像文字列:店員番号:リソースカウント, @"%モブ子素材色種別:(LOCAL:1)%色")%
						LOCAL:1 = モブ子素材色種別数
					ENDIF
				NEXT
				CALL 画像合成(GID, 合成文字列配列:LOCAL, 0, 0, 0, 0, 色合成)
			ENDIF
		NEXT
	ENDIF
	;汎用テンプレートで使用できるように名前を統一する
	着衣 = %\@ リソースカウント < 3 ? 服 # 裸 \@%
	LOCAL = リソースカウント % 3
	CALL リソース登録(@"顔絵_%着衣%_%感情:LOCAL%_MOB_{店員番号}", GID)
	モブ子店員GID:店員番号:リソースカウント = GID
NEXT

;=========================================================
;別絵モブ子用の画像文字列を設定
;CID		キャラ番号
;ARGS		別絵使用の種族名
;NUMBER		CID=0でモブ店員番号、CID=RANDOM_CHARNUMの場合 =1なら風俗嬢
;=========================================================
@別絵モブ子STR設定(CID, ARGS, NUMBER = 0)
#DIM CID
#DIM NUMBER
#DIMS HAIR_TYPE
#DIMS HAIR_COLOR
#DIMS FACE_TYPE
#DIMS BODY_TYPE
#DIM CLOTHES
#DIM JOB
#DIMS ACCESSORY_TYPE1
#DIMS ACCESSORY_TYPE2
#DIMS モブ子パーツ
#DIMS モブ子パーツ_裸
#DIMS 感情_通常
#DIMS 感情_笑顔
#DIMS 感情_怒り
#DIMS LAYER
#DIM WORD_COLOR_TYPE
#DIM BUST
;kaoruセットとの識別子を入れておく
モブ子パーツ = [00:%ARGS%別絵描画]
JOB = (CID && NUMBER)
;モブ店員のバストサイズはランダム
BUST = (CID == RANDOM_CHARANUM) ? TALENT:CID:가슴사이즈 # (RAND:3) - 1
SELECTCASE ARGS
	CASE "販売員"
		;髪型を設定
		HAIR_TYPE = %TEXTR("長髪/セミロング/姫カット/ほわほわ/ショートカット/短髪/一つ結び/ポニテ/ツインテ/三つ編み/おさげ髪/こけし")%
		;瞳型を設定
		FACE_TYPE = %TEXTR("丸目/垂れ目/釣り目")%
		;バストにあわせて素体決め。イナバは貧乳気味
		BUST = BUST - (RAND:2)
		SELECTCASE BUST
			CASE 0
				BODY_TYPE = 普乳素体
			CASE IS > 0
				BODY_TYPE = 巨乳素体
			CASE IS < 0
				BODY_TYPE = 素体
		ENDSELECT
		;髪の毛と服が被るか判定
		CLOTHES = GROUPMATCH(HAIR_TYPE, "長髪", "セミロング", "姫カット")
		;たまにメガネ/ヘアピン。他に個性ないので裸でもつけっぱ
		ACCESSORY_TYPE1 = %\@ RAND:8 ? # %TEXTR("赤/黒")%メガネ \@%
		ACCESSORY_TYPE2 = %\@ RAND:6 ? # ヘアピン \@%

		;可変画像の設定。
		モブ子パーツ += 販売員髪型(HAIR_TYPE)
		モブ子パーツ += 別絵モブ子アクセ(ARGS, ACCESSORY_TYPE1, 9, ACCESSORY_TYPE2, 10)
		モブ子パーツ_裸 = %モブ子パーツ%

		モブ子パーツ += 販売員素体(BODY_TYPE, 0, JOB, CLOTHES)
		モブ子パーツ_裸 += 販売員素体(BODY_TYPE, 1, JOB, CLOTHES)
		感情_通常 = %販売員表情(FACE_TYPE, "通常")%
		感情_笑顔 = %販売員表情(FACE_TYPE, "笑顔")%
		感情_怒り = %販売員表情(FACE_TYPE, "怒り")%

		LAYER = 08
	CASE "茨たぬき"
		FACE_TYPE = %TEXTR("イト目/垂れ目/ジト目/まる目/普通目/")%
		HAIR_TYPE = %TEXTR("ロング/ほわほわ/ウェーブ/ショートカット/一つ結び/ポニテ/ツインテ/みつ編みＡ/みつ編みＢ/おさげ髪/こけし/固有Ａ/固有Ｂ/固有Ｃ/固有Ｄ")%
		;色変更はコレジャナイ感出さないように髪色だけ
		LOCALS = 褐色/日焼け/不健康/悪魔/%\@ STRFIND(HAIR_TYPE, "固有") > -1 ? 栗/ # 橙/ \@%
		SIF RAND:5
			モブ子パーツ = [00:%ARGS%別絵描画-色/%TEXTR(LOCALS)%]
		SELECTCASE BUST
			CASE 0
				BODY_TYPE = 普素体
			CASE IS > 0
				BODY_TYPE = 巨素体
			CASE IS < 0
				BODY_TYPE = 貧素体
		ENDSELECT
		;たまに親分と同じメガネ
		ACCESSORY_TYPE1 = %\@ RAND:7 ? # 丸めがね \@%
		ACCESSORY_TYPE2 =

		;可変画像の設定。
		モブ子パーツ = %モブ子パーツ%[11:茨たぬき_たぬき耳][13:茨たぬき_葉っぱ]
		モブ子パーツ += 茨たぬき髪型(HAIR_TYPE)
		モブ子パーツ += 別絵モブ子アクセ(ARGS, ACCESSORY_TYPE1, 12, ACCESSORY_TYPE2, 12)
		モブ子パーツ_裸 = %モブ子パーツ%
		モブ子パーツ += 茨たぬき素体(BODY_TYPE, 0, JOB)
		モブ子パーツ_裸 += 茨たぬき素体(BODY_TYPE, 1, JOB)
		感情_通常 = %茨たぬき表情(FACE_TYPE, "通常")%
		感情_笑顔 = %茨たぬき表情(FACE_TYPE, "笑顔")%
		感情_怒り = %茨たぬき表情(FACE_TYPE, "怒り")%

		LAYER = 15
ENDSELECT
;口上色はランダム
WORD_COLOR_TYPE = GET_CN_WORD_COLOR(STR:(RAND:13 + 2050))
IF CID
	CSTR:CID:모브코화상문자열_옷_통상 = %モブ子パーツ%%感情_通常%
	CSTR:CID:모브코화상문자열_옷_미소 = %モブ子パーツ%%感情_笑顔%
	CSTR:CID:모브코화상문자열_옷_분노 = %モブ子パーツ%%感情_怒り%
	CSTR:CID:모브코화상문자열_알몸_통상 = %モブ子パーツ_裸%%感情_通常%
	CSTR:CID:모브코화상문자열_알몸_미소 = %モブ子パーツ_裸%%感情_笑顔%[%LAYER%:%ARGS%_装飾_照れ]
	CSTR:CID:모브코화상문자열_알몸_분노 = %モブ子パーツ_裸%%感情_怒り%
	CFLAG:CID:1000 = WORD_COLOR_TYPE
ELSE
	モブ子店員画像文字列:NUMBER:0 = %モブ子パーツ%%感情_通常%
	モブ子店員画像文字列:NUMBER:1 = %モブ子パーツ%%感情_笑顔%
	モブ子店員画像文字列:NUMBER:2 = %モブ子パーツ%%感情_怒り%
	モブ子店員画像文字列:NUMBER:3 = %モブ子パーツ_裸%%感情_通常%
	モブ子店員画像文字列:NUMBER:4 = %モブ子パーツ_裸%%感情_笑顔%[%LAYER%:%ARGS%_装飾_照れ]
	モブ子店員画像文字列:NUMBER:5 = %モブ子パーツ_裸%%感情_怒り%
	モブ子店員口上色:NUMBER = WORD_COLOR_TYPE
ENDIF
RETURN RESULT

;=========================================================
;販売員髪型文字列の取得
;=========================================================
@販売員髪型(HAIR_TYPE)
#FUNCTIONS
#DIMS HAIR_TYPE

SELECTCASE HAIR_TYPE
	CASE "長髪"
		LOCALS = [01:販売員_長い][04:販売員_もみあげ]
	CASE "セミロング"
		LOCALS = [01:販売員_ほわほわ][04:販売員_もみあげ]
	CASE "姫カット"
		LOCALS = [01:販売員_ショート][04:販売員_もみあげ]
	CASE "ほわほわ"
		LOCALS = [01:販売員_ほわほわ]
	CASE "ショートカット"
		LOCALS = [01:販売員_ショート][04:販売員_短]
	CASE "短髪"
		LOCALS = [01:販売員_結ぶ]
	CASE "一つ結び"
		LOCALS = [01:販売員_結ぶ][02:販売員_一つ結び][04:販売員_中]
	CASE "三つ編み"
		LOCALS = [01:販売員_結ぶ][02:販売員_三つ編み][04:販売員_中]
	;テール系とウサ耳は相性悪いけど水増しのため入れる
	CASE "ツインテ"
		LOCALS = [01:販売員_結ぶ][02:販売員_ツインテ][04:販売員_中]
	CASE "ポニテ"
		LOCALS = [01:販売員_結ぶ][02:販売員_ポニテ]
	CASE "おさげ髪"
		LOCALS = [01:販売員_結ぶ][02:販売員_おさげ]
	CASE "こけし"
		LOCALS = [01:販売員_切り揃え][04:販売員_中][05:販売員_ぱっつん]
ENDSELECT
SIF HAIR_TYPE != "こけし"
	LOCALS = %LOCALS%[05:販売員_%TEXTR("短い/ぱっつん/粗め/真ん中寄せ/真ん中分け/斜め/")%]
RETURNF LOCALS

;=========================================================
;	茨たぬき髪型文字列の取得
;=========================================================
@茨たぬき髪型(HAIR_TYPE)
#FUNCTIONS
#DIMS HAIR_TYPE
#DIMS MATCH_TYPE
MATCH_TYPE = [03:茨たぬき_頭%\@ STRFIND(HAIR_TYPE, "固有") > -1 ? %HAIR_TYPE% # 汎用 \@%]
SELECTCASE HAIR_TYPE
	CASE "ロング"
		LOCALS = [02:茨たぬき_髪_ロング]
	CASE "ほわほわ"
		LOCALS = [02:茨たぬき_髪_ほわほわ]
	CASE "ウェーブ"
		LOCALS = [02:茨たぬき_髪_ウェーブ]
	CASE "ショートカット"
		LOCALS = [02:茨たぬき_髪_ショート]
	CASE "一つ結び"
		LOCALS = [02:茨たぬき_髪_結ぶ][01:茨たぬき_髪_一つ結び]
	;テール系とけも耳は相性悪いけど水増しのため入れる
	CASE "ポニテ"
		LOCALS = [02:茨たぬき_髪_結ぶ][01:茨たぬき_髪_ポニテ]
	CASE "ツインテ"
		LOCALS = [02:茨たぬき_髪_結ぶ][01:茨たぬき_髪_ツインテ]
	CASE "みつ編みＡ"
		LOCALS = [02:茨たぬき_髪_結ぶ][01:茨たぬき_髪_みつ編みＡ]
	CASE "みつ編みＢ"
		LOCALS = [01:茨たぬき_髪_みつ編みＢ][02:茨たぬき_髪_結ぶ]
	CASE "おさげ髪"
		LOCALS = [02:茨たぬき_髪_結ぶ][01:茨たぬき_髪_おさげ]
	CASE "こけし"
		LOCALS = [02:茨たぬき_髪_切り揃え][07:茨たぬき_髪_ぱっつん]
		GOTO SKIP
	CASE "固有Ａ", "固有Ｂ", "固有Ｃ", "固有Ｄ"
		LOCALS = [02:茨たぬき_髪_%HAIR_TYPE%]
		GOTO SKIP
	CASEELSE
		LOCALS = [02:茨たぬき_髪_ロング]
ENDSELECT
LOCALS = %LOCALS%[07:茨たぬき_髪_%TEXTR("流す/ぱっつん/でこ出し/真ん中寄せ/真ん中分け/")%]
SIF RAND:3
	LOCALS = %LOCALS%[06:茨たぬき_髪_もみあげ%TEXTR("Ａ/Ｂ/")%]
$SKIP
MATCH_TYPE = %MATCH_TYPE%%LOCALS%
RETURNF MATCH_TYPE

;=========================================================
;	販売員表情文字列の取得
;;=========================================================
@販売員表情(FACE_TYPE, moodStr)
#FUNCTIONS
#DIMS FACE_TYPE
#DIMS moodStr

SELECTCASE FACE_TYPE
	CASE "丸目"
		SELECTCASE moodStr
			CASE "通常"
				RETURNF "[06:販売員_丸通常]"
			CASE "笑顔"
				RETURNF "[06:販売員_丸笑い]"
			CASE "怒り"
				RETURNF "[06:販売員_丸怒り]"
		ENDSELECT
	CASE "釣り目"
		SELECTCASE moodStr
			CASE "通常"
				RETURNF "[06:販売員_釣通常]"
			CASE "笑顔"
				RETURNF "[06:販売員_釣笑い]"
			CASE "怒り"
				RETURNF "[06:販売員_釣怒り]"
		ENDSELECT
	CASE "垂れ目"
		SELECTCASE moodStr
			CASE "通常"
				RETURNF "[06:販売員_垂通常]"
			CASE "笑顔"
				RETURNF "[06:販売員_垂笑い]"
			CASE "怒り"
				RETURNF "[06:販売員_垂怒り]"
		ENDSELECT
ENDSELECT
RETURNF LOCALS

;=========================================================
;	茨たぬき表情文字列の取得
;	口をランダムにしてパターン水増し
;;=========================================================
@茨たぬき表情(FACE_TYPE, moodStr)
#FUNCTIONS
#DIMS FACE_TYPE
#DIMS moodStr

SELECTCASE moodStr
		CASE "通常"
			LOCALS = [09:茨たぬき_%FACE_TYPE%][08:茨たぬき_普通口%TEXTR("Ａ/Ｂ/Ｃ/")%][10:茨たぬき_まろ眉普]
		CASE "怒り"
			LOCALS = [09:茨たぬき_%FACE_TYPE%怒][08:茨たぬき_怒り口%TEXTR("Ａ/Ｂ/Ｃ/")%][10:茨たぬき_まろ眉怒]
		CASE "笑顔"
			SELECTCASE FACE_TYPE
				CASE "イト目"
					LOCALS =  [09:茨たぬき_イト目]
				CASE "垂れ目"
					LOCALS =  [09:茨たぬき_笑い目垂]
				CASE "まる目"
					LOCALS =  [09:茨たぬき_笑い目吊]
				CASEELSE
					LOCALS =  [09:茨たぬき_笑い目普]
			ENDSELECT
			LOCALS = %LOCALS%[08:茨たぬき_笑い口%TEXTR("Ａ/Ｂ/Ｃ/")%][10:茨たぬき_まろ眉笑]
ENDSELECT
RETURNF LOCALS

;=========================================================
;	販売員服装文字列の取得
;	NUDE	=1 裸
;	JOB		=1 風俗嬢
;	CLOTHES	=1 透過処理衣服を着せる
;=========================================================
@販売員素体(BODY_TYPE, NUDE, JOB, CLOTHES)
#FUNCTIONS
#DIM NUDE
#DIM JOB
#DIM CLOTHES
#DIMS BODY_TYPE
#DIMS SETBODY
IF NUDE
	SETBODY = [03:販売員_%BODY_TYPE%]
ELSEIF JOB
	SETBODY = [03:販売員_%BODY_TYPE%][07:販売員_%BODY_TYPE%%\@ CLOTHES ? もみあげ # \@%バスタオル]
ELSE
	SETBODY = [03:販売員_%\@ CLOTHES ? もみあげ # \@%服素体]
ENDIF
RETURNF SETBODY

;=========================================================
;	茨たぬき服装文字列の取得
;	NUDE	=1 裸
;	JOB		=1 풍속양
;=========================================================
@茨たぬき素体(BODY_TYPE, NUDE, JOB)
#FUNCTIONS
#DIM NUDE
#DIM JOB
#DIMS BODY_TYPE
#DIMS SETBODY
IF NUDE
	SETBODY = [04:茨たぬき_%BODY_TYPE%]
ELSEIF JOB
	SETBODY = [04:茨たぬき_%BODY_TYPE%][05:茨たぬき_%BODY_TYPE%タオル]
ELSE
	SETBODY = [04:茨たぬき_%\@ STRFIND(BODY_TYPE, "巨") > -1 ? 巨 # \@%法被]
ENDIF
RETURNF SETBODY

;=========================================================
;	装飾品文字列の取得
;	ここだけ共通化
;=========================================================
@別絵モブ子アクセ(TYPE, ACC_TYPE1, ARG:1, ACC_TYPE2, ARG:2)
#FUNCTIONS
#DIMS TYPE
#DIMS ACC_TYPE1
#DIMS ACC_TYPE2
#DIMS SET_ACC
SET_ACC =
SIF ACC_TYPE1 != ""
	SET_ACC = [%TOSTR(ARG:1, "D2")%:%TYPE%_%ACC_TYPE1%]
SIF ACC_TYPE2 != ""
	SET_ACC = %SET_ACC%[%TOSTR(ARG:2, "D2")%:%TYPE%_%ACC_TYPE2%]
RETURNF SET_ACC

;*******************************************************************************************************
;別絵モブ子画像生成用関数
;*******************************************************************************************************
;既存モブ子と規格が違うので流用して簡略化した(してない)専用関数で生成
;*******************************************************************************************************
@別絵モブ子画像生成(キャラ番号, 立ち絵種類)
#DIM キャラ番号
#DIM 立ち絵種類
#DIM GID
#DIMS 着衣
#DIMS 感情 = "通常", "笑顔", "怒り"
#DIMS 種類
#DIMS 生成文字列
#DIMS 合成文字列配列, 50
#DIMS 指定色
#DIMS 色合成
#DIM 合成数
#DIM リソースカウント
;モブ子素材CSTR開始位置 = 30	CSTR:モブ子画像文字列_服_通常のCSTR番号
;モブ子素材CFLAG開始位置 = 923	モブ子画像GraphicsIDが入る場所。1枚の画像につき1個のIDらしい。
;モブ子素材リソース数 = 6		CSTR:RANDOM_CHARANUM:モブ子画像文字列_服_通常～裸_怒りまでの６個

;リソース作成
;=====================================
FOR リソースカウント, 0, モブ子素材リソース数
	;初期化
	GID = 0
	VARSET LOCAL
	VARSET 合成文字列配列,
	合成数 = 0

	;画像合成下地用のダミーを配置する。GID(GraphicsID)にREF関数で登録可能な空き番号が入って戻ってくる
	CALL 画像合成(GID,"ダミー")

	;使うリソースの名称を配列に取得する。CSTR:RANDOM_CHARANUM:モブ子画像文字列を渡すと
	;REF関数で合成文字列配列にリソース名、合成数にスプライトの数が入って戻ってくる
	CALL 別絵モブ子リソース探索(合成文字列配列, 合成数, CSTR:キャラ番号:(モブ子素材CSTR開始位置 + リソースカウント), 立ち絵種類)

	;重ねる順番で配列に入るのでARRAYSORTは不要
	;ARRAYSORT 合成文字列配列, FORWARD, 0, 合成数

	;髪色指定を取り出す
	 指定色 = %合成文字列配列:49%

	;モブ子用画像を順番に合成していく
	FOR LOCAL, 0, 合成数
		SIF 合成文字列配列:LOCAL == ""
			CONTINUE
		;髪色指定があって合成用リソース名に"髪"が含まれていたらカラーブレンドを指定
		SIF 指定色 != ""
			色合成 = %\@ STRFIND(合成文字列配列:LOCAL, "髪") > -1 ? %指定色% # \@%
		CALL 画像合成(GID, 合成文字列配列:LOCAL, 0, 0, 0, 0, 色合成)
	NEXT
	;合成した画像をリソースに登録する
	CFLAG:キャラ番号:(モブ子素材CFLAG開始位置 + リソースカウント) = GID
	;汎用テンプレートで使用できるように名前を統一する
	LOCAL = リソースカウント % 3
	着衣 = %\@ リソースカウント < 3 ? 服 # 裸\@%
	種類 = %\@ 立ち絵種類 ? 顔絵 # 立ち絵 \@%
	CALL リソース登録(@"%種類%_%着衣%_%感情:LOCAL%_{キャラ番号}", GID)
NEXT
RETURN 1

;*******************************************************************************************************
;別絵モブ子画像リソース探索用関数
;チェックサム的なのを無くしてただ探すだけ
;*******************************************************************************************************
@別絵モブ子リソース探索(合成文字列配列, 合成数, 生成文字列, 立ち絵種類)
#DIMS REF 合成文字列配列,0
#DIM REF 合成数
#DIMS 生成文字列
#DIM 立ち絵種類
#DIMS キー
VARSET LOCAL
VARSET LOCALS
;ゴミ取り
生成文字列 = %REPLACE(生成文字列, "^\"\"", "")%

キー = %TOSTR(LOCAL,"D2")%
;[00:別絵描画]に色指定が含まれるかを見る
IF STRFIND(DIC_GET(生成文字列, キー), "色/") > -1
	SPLIT DIC_GET(生成文字列, キー), "/", LOCALS
	合成文字列配列:49 = %LOCALS:1%
ENDIF

;素材のレイヤー数増やしたらカウントを適宜増やす
FOR LOCAL, 1, 16
	キー = %TOSTR(LOCAL,"D2")%
	SIF !DIC_CONTAINSKEY(生成文字列, キー)
		CONTINUE
	合成文字列配列:(合成数++) = %キー%_%DIC_GET(生成文字列, キー)%%\@ 立ち絵種類 ? _顔 # \@%
NEXT
RETURN 1

;*******************************************************************************************************
;お出かけイベント用モブ子の画像を消す関数
;*******************************************************************************************************
@モブ店員画像リセット
#DIM 番号
FOR 番号, 20, モブ子店員最大枠
	SIF !SPRITECREATED(@"顔絵_服_通常_MOB_{番号}")
		CONTINUE
	SPRITEDISPOSE @"顔絵_服_通常_MOB_{番号}"
	SPRITEDISPOSE @"顔絵_服_笑顔_MOB_{番号}"
	SPRITEDISPOSE @"顔絵_服_怒り_MOB_{番号}"
	SPRITEDISPOSE @"顔絵_裸_通常_MOB_{番号}"
	SPRITEDISPOSE @"顔絵_裸_笑顔_MOB_{番号}"
	SPRITEDISPOSE @"顔絵_裸_怒り_MOB_{番号}"
	FOR COUNT, 0, 6
		GDISPOSE モブ子店員GID:番号:COUNT
		モブ子店員GID:番号:COUNT = 0
		モブ子店員画像文字列:番号:COUNT =
	NEXT
NEXT
RETURN

repo_name: DNS/eraTWKR

path: ERB/스테이터스표시관련/모브점원관련.ERB

license: mit


code:
;現在立ち絵のみなので6個ですが、顔絵を作る場合は13に変更する必要があります
#DIM CONST モブ子素材リソース数 = 6

;CSVの内容を変更した時は変更してください　また、必ず連番になるようにしてください
#DIM CONST モブ子素材CFLAG開始位置 = 923
#DIM CONST モブ子素材CSTR開始位置 = 30

;モブ子素材の種別を増やしたりした場合はここで設定してください
#DIM CONST モブ子素材種別数 = 18
#DIMS モブ子素材種別,18 = "前髪","後髪","頭部","表情","目瞳","身体","頭部","装飾","装飾1","装飾2","装飾3","装飾4","装飾5","装飾6","装飾7","装飾8","装飾9","装飾10"
#DIM CONST モブ子素材カテゴリ数 = 9
#DIMS モブ子素材カテゴリ,9 = "無","他","肌","耳","尾","髪","瞳","服","乗"
#DIM CONST モブ子素材色種別数 = 7
#DIMS モブ子素材色種別,7 = "瞳","服","肌","髪","耳","尾","乗"

;モブ子店員の画像文字列保存。とりあえず40枠確保
#DIM CONST モブ子店員最大枠 = 40
#DIMS モブ子店員画像文字列,40,6
#DIM モブ子店員口上色,40
#DIM モブ子店員GID, 40, 6

;モブ子風俗嬢のデータ保存判定
#DIM FORGET_MOBGIRL

;モブ子の一人称、二人称。素質計算から算出
#DIMS SAVEDATA モブ子一人称
#DIMS SAVEDATA モブ子二人称
#DIMS SAVEDATA MOBGIRL_FP, 20
#DIMS SAVEDATA MOBGIRL_SP, 20

;モブ受付水子画像文字列セーブデータ格納用
#DIMS SAVEDATA 受付水子画像文字列,6

path: ERB/스테이터스표시관련/모브코용.ERH


code:
;*******************************************************************************************************
;모브코 화상표시용
;*******************************************************************************************************
;削除しました＠v.4.730.INFO改良パッチ

;*******************************************************************************************************
;모브코 화상 생성용 함수
;*******************************************************************************************************
@모브코생성(캐릭터번호, 스탠딩종류)
#DIM 캐릭터번호
#DIM 스탠딩종류
#DIM GID
#DIMS 생성문자열
#DIMS 합성문자열배열, 50
#DIMS 색합성
#DIM 합성수
#DIM ResourcesCount

;별그림 전용 함수
IF STRFIND(CSTR:캐릭터번호:モブ子素材CSTR開始位置, "別絵描画") > -1
	CALL 別絵モブ子画像生成(캐릭터번호, 스탠딩종류)
	RETURN 1
ENDIF

;리소스 작성
;=====================================
FOR ResourcesCount, 0, モブ子素材リソース数
	;초기화
	GID = 0
	VARSET LOCAL
	VARSET 합성문자열배열,
	합성수 = 0
	;画像合成下地用のダミーを配置する
	CALL 画像合成(GID,"ダミー")
	;使うリソースの名称を配列に取得する
	;DEBUGPRINTFORML {캐릭터번호} - モブ子リソース探索(%합성문자열배열%, {합성수}, %CSTR:캐릭터번호:(モブ子素材CSTR開始位置 + ResourcesCount)%), 스탠딩종류
	CALL モブ子リソース探索(합성문자열배열, 합성수, CSTR:캐릭터번호:(モブ子素材CSTR開始位置 + ResourcesCount), 스탠딩종류)
	;モブ子画像は高い番号のリソースから先に合成していく必要があるので降順にソートする
	ARRAYSORT 합성문자열배열, BACK, 0, 합성수
	;モブ子用画像を順番に合成していく
	FOR LOCAL, 0, 합성수
		색합성 '= ""
		IF 합성문자열배열:LOCAL != ""
			;색합성確認
			FOR LOCAL:1, 0 ,モブ子素材色種別数
				IF STRFIND(합성문자열배열:LOCAL, @"_%モブ子素材色種別:(LOCAL:1)%_") != -1 && DIC_CONTAINSKEY(CSTR:캐릭터번호:(モブ子素材CSTR開始位置 + ResourcesCount), @"%モブ子素材色種別:(LOCAL:1)%色")
					색합성 = %DIC_GET(CSTR:캐릭터번호:(モブ子素材CSTR開始位置 + ResourcesCount), @"%モブ子素材色種別:(LOCAL:1)%色")%
					LOCAL:1 = モブ子素材色種別数
				ENDIF
			NEXT
			CALL 画像合成(GID, 합성문자열배열:LOCAL, 0, 0, 0, 0, 색합성)
		ENDIF
	NEXT
	;合成した画像をリソースに登録する
	CFLAG:캐릭터번호:(モブ子素材CFLAG開始位置 + ResourcesCount) = GID
	;汎用テンプレートで使用できるように名前を統一する
	IF !스탠딩종류
		SELECTCASE ResourcesCount
			CASE 0
				CALL リソース登録(@"立ち絵_服_通常_{캐릭터번호}", GID)
			CASE 1
				CALL リソース登録(@"立ち絵_服_笑顔_{캐릭터번호}", GID)
			CASE 2
				CALL リソース登録(@"立ち絵_服_怒り_{캐릭터번호}", GID)
			CASE 3
				CALL リソース登録(@"立ち絵_裸_通常_{캐릭터번호}", GID)
			CASE 4
				CALL リソース登録(@"立ち絵_裸_笑顔_{캐릭터번호}", GID)
			CASE 5
				CALL リソース登録(@"立ち絵_裸_怒り_{캐릭터번호}", GID)
		ENDSELECT
	ELSE
		SELECTCASE ResourcesCount
			CASE 0
				CALL リソース登録(@"顔絵_服_通常_{캐릭터번호}", GID)
			CASE 1
				CALL リソース登録(@"顔絵_服_笑顔_{캐릭터번호}", GID)
			CASE 2
				CALL リソース登録(@"顔絵_服_怒り_{캐릭터번호}", GID)
			CASE 3
				CALL リソース登録(@"顔絵_裸_通常_{캐릭터번호}", GID)
			CASE 4
				CALL リソース登録(@"顔絵_裸_笑顔_{캐릭터번호}", GID)
			CASE 5
				CALL リソース登録(@"顔絵_裸_怒り_{캐릭터번호}", GID)
		ENDSELECT
	ENDIF
NEXT

;TEQUIP:캐릭터번호:상반신착의상황 = 1

RETURN 1

;*******************************************************************************************************
;モブ子画像リソース探索用関数
;モブ子画像のリソースを探索して配列にリソース名を格納する
;*******************************************************************************************************
@モブ子リソース探索(합성문자열배열, 합성수, 생성문자열, 스탠딩종류)
#DIMS REF 합성문자열배열,0
#DIM REF 합성수
#DIMS 생성문자열
#DIM 스탠딩종류
#DIMS Key
#DIM CN_ENDNO = 18
#DIMS CN_NO_STR
VARSET LOCAL
Key =
CN_NO_STR =
;ゴミ取り
생성문자열 = %REPLACE(생성문자열, "^\"\"", "")%
;DEBUGPRINTFORML %생성문자열%

FOR LOCAL, 0, モブ子素材種別数
	IF DIC_CONTAINSKEY(생성문자열, モブ子素材種別:LOCAL)
		FOR LOCAL:1, CN_ENDNO, -1, -1
			;IF STRFIND(モブ子素材種別:LOCAL, "装飾") != -1
				;装飾の場合は複数設定できるのでリソース名検索時は数値部分を削る
			;	Key = "装飾"
			;ELSE
				Key = %モブ子素材種別:LOCAL%
			;ENDIF
			FOR LOCAL:2, 0, モブ子素材カテゴリ数
				IF LOCAL:1 < 10
					;0埋め
					CN_NO_STR = CN0{LOCAL:1}
				ELSE
					CN_NO_STR = CN{LOCAL:1}
				ENDIF
				IF SPRITECREATED(@"%CN_NO_STR%_%モブ子素材カテゴリ:(LOCAL:2)%_%DIC_GET(생성문자열, Key)%")
					IF (!스탠딩종류)
						합성문자열배열:(합성수++) = %CN_NO_STR%_%モブ子素材カテゴリ:(LOCAL:2)%_%DIC_GET(생성문자열, Key)%
						DEBUGPRINTFORML %CN_NO_STR%_%モブ子素材カテゴリ:(LOCAL:2)%_%DIC_GET(생성문자열, Key)%
					ELSE
						합성문자열배열:(합성수++) = %CN_NO_STR%_%モブ子素材カテゴリ:(LOCAL:2)%_%DIC_GET(생성문자열, Key)%_顔
						DEBUGPRINTFORML %CN_NO_STR%_%モブ子素材カテゴリ:(LOCAL:2)%_%DIC_GET(생성문자열, Key)%_顔
					ENDIF
				ENDIF
			NEXT
		NEXT
	ENDIF
NEXT

RETURN 1

;*******************************************************************************************************
;モブ子画像解放用関数
;指定した캐릭터번호のモブ子のグラフィックを全て破棄する
;*******************************************************************************************************
@모브코화상리셋(캐릭터번호)
#DIM 캐릭터번호
#DIM ResourcesCount
IF CFLAG:캐릭터번호:モブ子素材CFLAG開始位置 != 0 && GCREATED(CFLAG:캐릭터번호:モブ子素材CFLAG開始位置)
	SPRITEDISPOSE @"立ち絵_服_通常_{캐릭터번호}"
	SPRITEDISPOSE @"立ち絵_服_笑顔_{캐릭터번호}"
	SPRITEDISPOSE @"立ち絵_服_怒り_{캐릭터번호}"
	SPRITEDISPOSE @"立ち絵_裸_通常_{캐릭터번호}"
	SPRITEDISPOSE @"立ち絵_裸_笑顔_{캐릭터번호}"
	SPRITEDISPOSE @"立ち絵_裸_怒り_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_服_通常_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_服_笑顔_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_服_怒り_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_裸_通常_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_裸_笑顔_{캐릭터번호}"
	SPRITEDISPOSE @"顔絵_裸_怒り_{캐릭터번호}"
	FOR ResourcesCount, 0, モブ子素材リソース数
		GDISPOSE CFLAG:캐릭터번호:(モブ子素材CFLAG開始位置 + ResourcesCount)
		CFLAG:캐릭터번호:(モブ子素材CFLAG開始位置 + ResourcesCount) = 0
	NEXT
ENDIF
RETURN 1

path: ERB/스테이터스표시관련/모브코표시.ERB


code:
;CIDが0の時別途定義のMOBキャラを表示するように
;例）CALL PRINT_FACE, 0, "通常", "服", "6" でMOBゾンビフェアリーを表示
@PRINT_FACE,CID,表情="",服装="",差分="",エフェクト=""
#DIMS 表情
#DIMS 服装
#DIMS 差分
#DIMS エフェクト
#DIMS ツールチップ
#DIM CID

SIF !顔絵付きメッセージ || !FLAG:화상표시
	RETURN
キャラ画像表示サイズ比 = 100

SIF 表情 == ""
	表情 = 通常

IF CID
	CALL GET_BASE_RESOURCE(CID, "顔絵", 服装, 表情, "", 差分)
	SIF !RESULT
		RESULTS = %GET_BASESTYLE(CID, "顔絵")%_服_通常_{CID}
	ツールチップ '= CALLNAME:CID
ELSE
	RESULTS = 顔絵_%服装%_%表情%_MOB_%差分%
	SIF !SPRITECREATED(RESULTS)
		CALL モブ店員画像作成(TOINT(差分))
	SIF !SPRITECREATED(RESULTS)
		RESULTS = 顔絵_服_通常_MOB_%差分%
	SIF !SPRITECREATED(RESULTS)
		RETURN
	ツールチップ = モブ子
ENDIF

SIF FLAG:멀티사이즈
	デフォルトキャラ画像横幅 = SPRITEHEIGHT(RESULTS)
CALL 画像セット(RESULTS, 0, 0, キャラ画像表示サイズ比, 0, 1, "100", ツールチップ)

IF エフェクト != ""
	CALL GET_EFFECT_RESOURCE(CID, エフェクト)
	FOR LOCAL, 0, RESULT
		CALL 画像セット(RESULTS:LOCAL, 0, 0, キャラ画像表示サイズ比, LOCAL + 1)
	NEXT
ENDIF

CALL 画像一斉表示(0, 0, 1, -1)

@SPTALK,CID,表情="",デフォルト=0,MESSAGE,整形=0
;CIDが0の時別途定義のMOBキャラを表示するように
;例）CALL SPTALK, 0, "笑顔", 1, @"「この記述で」/「モブが喋ります」",1
#DIM CID
#DIMS 表情
#DIM デフォルト
#DIMS MESSAGE
#DIM 整形
#DIMS 服装
#DIMS MESSAGE_PRINT,50
#DIMS FONTCOLOR
#DIMS ツールチップ
#DIM TEMP_COLOR

キャラ画像表示サイズ比 = 100
TEMP_COLOR = GETCOLOR()

;口上色取得判定:通常キャラ
IF CID
	RESETCOLOR
	TRYCALLFORM M_KOJO_COLOR_K{CID}
	IF GETCOLOR() == 12632256 || !FLAG:구상색
		FONTCOLOR = 0xD5DEDF
	ELSE
		FONTCOLOR = 0%TOSTR(GETCOLOR(), "X")%
	ENDIF
ENDIF
VARSET MESSAGE_PRINT
IF 顔絵付きメッセージ == 1
	SIF 表情 == ""
	表情 = 通常

	IF CID
		IF デフォルト == 1
			服装 = 服
		ELSE
			服装 =
		ENDIF
		ツールチップ '= CALLNAME:CID
		CALL GET_BASE_RESOURCE(CID, "顔絵", 服装, 表情)
		SIF !RESULT
			RESULTS = %GET_BASESTYLE(CID, "顔絵")%_服_通常_{CID}
	ELSE
		RESULTS = 顔絵_服_%表情%_MOB_{デフォルト}
		SIF !SPRITECREATED(RESULTS)
			CALL モブ店員画像作成(デフォルト)
		IF !FLAG:구상색
			FONTCOLOR = 0XD5DEDF
		ELSEIF デフォルト >= 90
			SELECTCASE デフォルト
				CASE 90
					FONTCOLOR = 0xC8C9CF
				CASE 95
					FONTCOLOR = 0xD37CD0
			ENDSELECT
		ELSE
			FONTCOLOR = %TOSTR(モブ子店員口上色:デフォルト, "X")%
		ENDIF
		ツールチップ = モブ子
	ENDIF

	SIF FLAG:멀티사이즈
		デフォルトキャラ画像横幅 = SPRITEHEIGHT(RESULTS)
	CALL 画像セット(RESULTS, 0, 0, キャラ画像表示サイズ比, 0, 1, "100", ツールチップ)

	;オプション指定で行送りを揃える
	SIF 整形
		MESSAGE = %SPTALK整形(MESSAGE)%

	SPLIT MESSAGE,"/",MESSAGE_PRINT
	FOR LOCAL,0,RESULT
		SIF LOCAL != 0
			CALL ダミーセット(0, 0, キャラ画像表示サイズ比, LOCAL)
		TEMP_HTML:LOCAL += @"%MESSAGE_PRINT:LOCAL%"
	NEXT
	CALL 画像一斉表示(0, 0, 1, -1)
	PRINTL
ELSE
	;顔絵メッセージOFF時は通常通りに表示させる
	SIF CID
		PRINTFORML －%CALLNAME:CID%－
	SPLIT MESSAGE,"/",MESSAGE_PRINT
	FOR LOCAL,0,RESULT
		SIF MESSAGE_PRINT:LOCAL != ""
			PRINTFORML %MESSAGE_PRINT:LOCAL%
	NEXT
ENDIF
SETCOLOR TEMP_COLOR

;SPTALKに渡す文を整形
@SPTALK整形(ARGS)
#FUNCTIONS
#DIMS 分割後メッセージ, 50
#DIM 画像行幅
#DIMS DYNAMIC 整形メッセージ
#DIM DYNAMIC メッセージ行 = 0
VARSET 分割後メッセージ

画像行幅 = デフォルトキャラ画像横幅 / GETCONFIG("一行の高さ")
SPLIT ARGS, "/", 分割後メッセージ

;文が4行以下の時は間隔を開ける。それ以外は詰めて成形
FOR LOCAL, 0, 画像行幅
	IF (RESULT > 4 && (画像行幅-RESULT)/2 - LOCAL > 0) || (RESULT <= 4 && (画像行幅-RESULT*2)/2 - LOCAL > 0)
		整形メッセージ += "/"
	ELSE
		IF RESULT <= 4
			整形メッセージ += "/"
			LOCAL += 1
		ENDIF
		整形メッセージ += "/" + 分割後メッセージ:メッセージ行
		メッセージ行 += 1
	ENDIF
	SIF メッセージ行 == RESULT
		BREAK
NEXT
;SELECTCASE RESULT
;	CASE 1
;		整形メッセージ = 　/　/　/%分割後メッセージ:0%
;	CASE 2
;		整形メッセージ = 　/　/%分割後メッセージ:0%//%分割後メッセージ:1%
;	CASE 3
;		整形メッセージ = %分割後メッセージ:0%//%分割後メッセージ:1%//%分割後メッセージ:2%
;	CASE 4
;		整形メッセージ = 　/　/%分割後メッセージ:0%/%分割後メッセージ:1%/%分割後メッセージ:2%/%分割後メッセージ:3%
;	CASE IS > 4
;		整形メッセージ = %ARGS%
;ENDSELECT
RETURNF 整形メッセージ

;既読・未読で演出変化するPRINT_TEXT関数
;CALL PRINT_TEXT(代入する判定条件あるいは数値,"メッセージ内容/L/100行まで反応できるおー")
;/L/ で改行
;[W]　MODE（未読、あるいは何等かのフラグ）がTRUEの時にWAIT,FALSEの時に待たせず次の行をPRINT
;[WW] で強制WAIT
;例：一行にまとまる書き方
;	CALL PRINT_TEXT(MODE,@"○月×日 /L/今日、 /L/外界から来たあの人に出会ったようです。[W]/L/ ただ●●を探すことでいっぱいになって、 /L/   /L/ ちゃんと…挨拶できなかった…[W]/L/……いや、わたしが…挨拶もできやしないかもしれないです[W]/L/外界の人とはいえ、やはり人間です /L/なんだか怖いですぅ[W]/L/あう、もう二度と合わせないで…[WW]")
;改行できる書き方
;{
;	CALL PRINT_TEXT(MODE,@"○月×日 /L/
;	今日、 /L/
;	外界から来たあの人に出会ったようです。[W]/L/
;	ただ●●を探すことでいっぱいになって、 /L/   /L/
;	ちゃんと…挨拶できなかった…[W]/L/
;	……いや、わたしが…挨拶もできやしないかもしれないです[W]/L/
;	外界の人とはいえ、やはり人間です /L/
;	なんだか怖いですぅ[W]/L/
;	あう、もう二度と合わせないで…[WW]")
;}
;これを応用して、他の口上に使うこともできます。
@PRINT_TEXT(MODE,MESSAGE)
#DIMS MESSAGE
#DIM MODE

VARSET LOCALS
VARSET RESULTS
VARSET LOCAL

SPLIT MESSAGE,"/L/",LOCALS
FOR LOCAL,0,100
    SIF LOCALS:LOCAL == ""
        CONTINUE
    IF STRCOUNT(LOCALS:LOCAL,ESCAPE("[W]"))
        LOCALS:LOCAL '= REPLACE(LOCALS:LOCAL,ESCAPE("[W]"),"")
        IF MODE
            PRINTFORML %LOCALS:LOCAL%
        ELSE
            PRINTFORMW %LOCALS:LOCAL%
        ENDIF
    ELSEIF STRCOUNT(LOCALS:LOCAL,ESCAPE("[WW]"))
        LOCALS:LOCAL '= REPLACE(LOCALS:LOCAL,ESCAPE("[WW]"),"")
        PRINTFORMW %LOCALS:LOCAL%
    ELSE
        PRINTFORML %LOCALS:LOCAL%
    ENDIF
NEXT

path: ERB/스테이터스표시관련/얼굴그림표시.ERB


code:
#DIM キャラ画像表示サイズ比 = 100; 可変用キャラ画像拡大比率
#DIM SAVEDATA デフォルトキャラ画像横幅 = 180 ;キャラ画像サイズ
#DIM CHARADATA 各キャラ画像サイズ

path: ERB/스테이터스표시관련/캐릭터묘화공통.ERH


code:
@시간정지해제
#DIM 추방
#DIM 합계절정강도
#DIM 절정인원수
#DIM 일탈추가
VARSET LOCAL
FLAG:70 = 0
절정인원수 = 0
TFLAG:운반 = 0
FOR LOCAL,0,CHARANUM
	IF CFLAG:LOCAL:시간정지착의
		IF 수면시간(LOCAL)
			;パジャマセット
			CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_파자마")
			CFLAG:LOCAL:파자마 = 1
		ELSEIF TCVAR:LOCAL:어나더_평상복
			;いつもと違う服
			CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_의상세트", SPECIAL_OUTFIT(LOCAL))
			CFLAG:LOCAL:파자마 = 0
		ELSE
			;普段着セット
			CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
			CFLAG:LOCAL:파자마 = 0
		ENDIF
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
	ENDIF
NEXT

PRINTFORMW %마스터는% 시간 정지를 해제했다
추방 = 0

CALL FISHER_YATES_SHAFFLE(CHARANUM - 1)

FOR LOCAL:10 , 0 , CHARANUM - 1
	LOCAL = SHAFFLE_ARRAY:(LOCAL:10) + 1
	IF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치 && !CFLAG:LOCAL:수면
		합계절정강도 = EX:LOCAL:무자각C절정 + EX:LOCAL:무자각V절정 + EX:LOCAL:무자각A절정 + EX:LOCAL:무자각B절정 + EX:LOCAL:무자각M절정
		IF 합계절정강도 > 30
		;IF EX:LOCAL:Ｃ絶頂 + EX:LOCAL:Ｖ絶頂 + EX:LOCAL:Ａ絶頂 + EX:LOCAL:Ｂ絶頂 + EX:LOCAL:Ｍ絶頂 > 30
			SETCOLOR 255,100,255
			PRINTL 【강렬한 쾌감】
			RESETCOLOR
			PRINTFORMW 갑자기 격렬한 절정에 휩싸인 %조사처리(CALLNAME:LOCAL,"는")%, 달콤한 교성을 지르며 그 자리에 주저앉아 버렸다
			IF CFLAG:LOCAL:시간정지들킴 == 1
				IF TALENT:LOCAL:연모
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 쾌감에 떠는 몸을 끌어안고, 작게 몇번이나 %CALLNAME:MASTER%의 이름을 중얼거렸다
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:사랑 += 500 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:사모
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 쾌감을 받아들이면서도, 불만스러운 듯 %마스터를% 바라보고 있다
					SOURCE:LOCAL:욕정 += 300 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:섹프 == 2
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 숨을 거칠게 쉬며, 교태를 부리는 듯한 눈으로 그 다음을 졸랐다
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:섹프 == 1
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 쾌감에 달콤한 숨을 쉬면서도, 합의 없는 행위에 대해 혐오의 시선을 가져왔다
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:애욕
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 희열의 표정을 지으며, %CALLNAME:MASTER%에게서 받은 쾌감에 떨었다
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSE
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 쾌감에 떨면서, 분노에 찬 눈으로 %마스터를% 노려봤다
					SOURCE:LOCAL:반감 += 10000
				ENDIF
			ENDIF
			CFLAG:LOCAL:데일리 += 20
			절정인원수 += 1
			;恥情ボーナス
			CALL JUEL_UP_SPECIAL(LOCAL,"치정","노출벽",2,1)

			;일탈추가 = MAX(1000 - ABL:LOCAL:노출벽 * 200, 0)
			;SOURCE:LOCAL:逸脱 += 일탈추가
			CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,2,0)
		ELSEIF 합계절정강도 > 0
		;ELSEIF EX:LOCAL:Ｃ絶頂 + EX:LOCAL:Ｖ絶頂 + EX:LOCAL:Ａ絶頂 + EX:LOCAL:Ｂ絶頂 + EX:LOCAL:Ｍ絶頂 > 0
			SETCOLOR 255,100,255
			PRINTL 【수수께끼의 쾌감】
			RESETCOLOR
			PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")%, 수수께끼의 쾌감에 흠칫하고 몸이 굳었다
			IF CFLAG:LOCAL:시간정지들킴 == 1
				IF TALENT:LOCAL:연모
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 휘청거리다가 %CALLNAME:MASTER%의 가슴에 쓰러지고, 작은 목소리로 그 다음을 졸랐다...
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:사랑 += 500 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:사모
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% %CALLNAME:MASTER%의 얼굴을 보더니 얼굴을 붉혔다
					SOURCE:LOCAL:욕정 += 300 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:섹프 == 2
					PRINTFORMW 쾌감이 부족한지, %조사처리(CALLNAME:LOCAL,"는")% 조금 불만스러운 듯 %마스터를% 바라봤다
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:섹프 == 1
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:애욕
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% %CALLNAME:MASTER%의 손을 잡고, 계속해서 숨을 거칠게 했다
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSE
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% %CALLNAME:MASTER%에게 의심 어린 눈초리를 보내고 있다
					SOURCE:LOCAL:반감 += 1000
				ENDIF
			ENDIF
			절정인원수 += 1
			CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,1,0)
		ELSEIF CFLAG:LOCAL:291 == 1
			SETCOLOR 150,150,250
			PRINTL 【심상치 않은 개방감】
			RESETCOLOR
			PRINTFORMW 모르는 사이에 팬티가 벗겨진 %조사처리(CALLNAME:LOCAL,"는")% 진정되지 않는 것 같다
			;本来ならCFLAG:295は作らずCFLAG:LOCAL:291 == 3とかで対応したほうが良い
			IF CFLAG:LOCAL:시간정지들킴 == 1 && CFLAG:LOCAL:295 == 0
				IF TALENT:LOCAL:연모
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:사랑 += 500 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:사모
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 300 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:섹프 == 2
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSEIF TALENT:LOCAL:섹프 == 1
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 500 + (CFLAG:2 - 1000) / 5
					SOURCE:LOCAL:반감 += 300
				ELSEIF TALENT:LOCAL:애욕
					PRINTFORMW
					SOURCE:LOCAL:욕정 += 1000 + (CFLAG:2 - 1000) / 5
				ELSE
					PRINTFORMW
					SOURCE:LOCAL:반감 += 10000
				ENDIF
				CFLAG:LOCAL:295 = 1
			ENDIF
			CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,3,0)
		ENDIF
		;無自覚絶頂カウントをリセットしておく
		FOR LOCAL:1,0,5
			IF EX:LOCAL:(LOCAL:1)
				EX:LOCAL:(LOCAL:1 + 20) = 0
				EX:LOCAL:(LOCAL:1 + 50) = 0
			ENDIF
		NEXT
		IF BATHCHECK(CFLAG:MASTER:현재위치) && AT_HOME(MASTER) && LOCAL != MASTER
			SIF 목욕탕추방조건(LOCAL) && CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치
				CALL 목욕탕으로부터내쫒아(LOCAL)
			SIF RESULT
				추방 ++
		ELSE
			IF CFLAG:LOCAL:287 == 2
				SETCOLOR 255,100,255
				PRINTL 【무자각 애널 사정】
				RESETCOLOR
				;感度も10超えがあるわけだし、地の文だけでもバリエーションを足してみた
				SELECTCASE ABL:LOCAL:2
					CASE 0 TO 2
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 갑자기 애널에서 퍼져나간 아픔에 작게 비명을 질렀다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,7,1)
					CASE 3 TO 5
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 직장 안의 정액에 강한 위화감을 느꼈는지
						PRINTFORMW 히익, 하고 작게 비명을 질렀다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,7,2)
					CASE IS >= 6
						PRINTFORMW 또 다른 성기가 되어가는 배설기관에, 갑자기 쏟아 부어진 뜨거운 정액의 감촉을 참을 수 없었는지,
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 작게 뜨거운 한숨을 내쉬었다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,7,2)
					;現在ロック中。はたしてこの反応は有りか否か？
					CASEELSE
						PRINTFORMW 갑자기 엉덩이에 가져다준 뜨거운 감각마저도
						PRINTFORMW %CALLNAME:LOCAL%에게는 쾌락의 향신료에 지나지 않는 건지
						PRINTFORMW 황홀한 표정을 숨김없이 달콤한 한숨을 내쉬었다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,7,2)
				ENDSELECT
				CFLAG:LOCAL:애널사정 = 0
			ENDIF
			IF EX:LOCAL:처녀상실체크
				SETCOLOR 250,100,100
				IF EX:LOCAL:처녀상실체크 == 1
					PRINTL 【무자각 처녀 상실】
				ELSE
					PRINTL 【무자각 재생 처녀 상실】
				ENDIF
				RESETCOLOR
				PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 사타구니의 둔통에 얼굴을 찌푸리고 있다…
				CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,8,0)
			ENDIF
			IF CFLAG:LOCAL:286 == 2
				SETCOLOR 255,100,255
				PRINTL 【무자각 질내 사정】
				RESETCOLOR
				IF EX:LOCAL:처녀상실체크 != 1 && TALENT:LOCAL:처녀 != -1
					IF TALENT:LOCAL:무지 && EXP:LOCAL:정액경험 < 100
						PRINTFORML %조사처리(CALLNAME:LOCAL,"는")% 질내에서 느껴지는 정액의 위화감을 알아차린 것 같지만
						PRINTFORMW 무슨 감촉인지 모르고 안절부절못하고 있다……
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,9,3)
					ELSEIF !TCVAR:LOCAL:피임약
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 하복부에서 느껴지는 위화감으로 질내 사정된 것을 알아차린 것 같다
						PRINTFORMW 얼굴이 창백해지면서도 어떻게든 얼버무릴려고 안절부절 못하고 있다……
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,9,1)
					ELSEIF EX:LOCAL:처녀상실체크 == 0 && TCVAR:LOCAL:피임약 == 1
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 하복부에서 느껴지는 위화감으로 질내 사정된 것을 알아차린 것 같다
						PRINTFORMW 피임약을 사용해서인지, 갈피를 잡지 못하면서도 당황하지는 않은 모양이다……
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,9,2)
					ENDIF
				ELSE
					PRINTFORML %조사처리(CALLNAME:LOCAL,"는")% 질내에서 느껴지는 정액의 위화감을 알아차린 것 같지만
					PRINTFORMW 무슨 감촉인지 모르고 안절부절못하고 있다……
					CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,9,3)
				ENDIF
				CFLAG:LOCAL:286 = 0
			ENDIF
			;無自覚膣内射精の処理の後で無自覚処女喪失のフラグを折る
				EX:LOCAL:처녀상실체크 = 0
			IF CFLAG:LOCAL:288 == 2
				SETCOLOR 255,100,255
				PRINTL 【무자각 입안 사정】
				RESETCOLOR
				IF TALENT:MASTER:농후정액
					PRINTFORM %조사처리(CALLNAME:LOCAL,"는")% 갑자기 입안에 나타난 %SAMEN_DESCRIPTION(PLAYER)%에
					IF ABL:LOCAL:정액중독 < 3
						PRINTFORML 강하게 사레가 들렸다
						PRINTFORML 구강과 식도에 달라붙는 정액을 쉽게 뱉어내지 못했고, %조사처리(CALLNAME:LOCAL,"는")% 눈물을 글썽이며 몇 번이나 구역질 했다
						PRINTFORMW ……역시 나쁜 짓을 한 것 같다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,5)
					ELSE
						PRINTFORML 놀라면서도, 아무렇지도 않은 척 입을 다물었다
						PRINTFORMW 그리고 조금씩 혀를 움직여, 끈적거리는 욕망의 젤리를 차분히 맛보았다…
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,6)
					ENDIF
				ELSEIF ABL:LOCAL:정액중독 < 3
					PRINTFORM %조사처리(CALLNAME:LOCAL,"는")% 입안에 쏟아 부어진 정액으로
					IF !RAND:3
						PRINTFORMW 사례가 들려, 자기도 모르게 삼켜버렸다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,1)
					ELSEIF !RAND:2
						PRINTFORMW 사레가 들렸지만, 간신히 틈을 찾아 토해냈다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,2)
					ELSE
						PRINTFORMW 사례가 들리면서, 서둘러 입가를 가렸다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,3)
					ENDIF
					PRINTFORMW 갑작스러운 일에 눈물을 글썽이며 기침하고 있다…
				ELSE
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 입안에 쏟아 부어진 정액에 놀라면서도, 아무렇지도 않은 척 삼켰다
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 기묘한 흥분을 느끼고 있다…
					CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,4,4)
				ENDIF
				CFLAG:LOCAL:288 = 0
			ENDIF
			IF CFLAG:LOCAL:289 == 2
				SETCOLOR 255,100,255
				PRINTL 【무자각 안면 사정】
				RESETCOLOR
				IF ABL:LOCAL:정액중독 < 3
					IF TALENT:LOCAL:무지 && EXP:LOCAL:정액경험 < 100
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 얼굴에 끈적끈적 달라붙은 정액을 불쾌한 듯 닦아냈다
						PRINTFORMW 아무래도 %조사처리(CALLNAME:LOCAL,"는")% 얼굴에 묻은 정액의 정체를 눈치채지 못한 것 같다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,5,1)
					ELSE
						PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 얼굴에 끈적끈적 달라붙은 정액을 알아차리고, 황급히 닦았다
						PRINTFORMW 아무 일도 일어나지 않은 척하고 있지만, 약간 표정이 굳어 있다
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,5,2)
					ENDIF
				ELSE
					PRINTFORMW 얼굴에 끈적끈적 들러붙은 정액을 닦아내고 있던 %조사처리(CALLNAME:LOCAL,"는")%, 몰래 일부를 손가락으로 떠내 입가로 옮겼다
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 기묘한 흥분을 느끼고 있다…
					CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,5,3)
				ENDIF
				CFLAG:LOCAL:288 = 0
			ENDIF
			IF CFLAG:LOCAL:290 == 2
				SETCOLOR 255,100,255
				PRINTL 【무자각 수음 사정】
				RESETCOLOR
				IF ABL:LOCAL:정액중독 < 3
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 손바닥에 들러붙은 정액을 알아차리고, 불쾌한 듯 닦아냈다
					CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,6,1)
				ELSE
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 손바닥에 들러붙은 정액을 몰래 핥아낸 후 닦아냈다
					PRINTFORMW %조사처리(CALLNAME:LOCAL,"는")% 기묘한 흥분을 느끼고 있다…
						CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,6,2)
				ENDIF
				CFLAG:LOCAL:290 = 0
			ENDIF
			CALL KOJO_MESSAGE_SEND("EVENT",17,LOCAL,0,0)
		ENDIF

	ENDIF
	CFLAG:LOCAL:288 = 0
	CFLAG:LOCAL:289 = 0
	CFLAG:LOCAL:290 = 0
	CFLAG:LOCAL:344 = 0
NEXT
IF 절정인원수 >= 1 && !추방 ;KR판 임의수정, ~들 지원용
	PRINTFORM %마스터는%
	IF 절정인원수 >= 2
		PRINT 소녀들을
	ELSE
		PRINT 소녀를
	ENDIF
	PRINTW 걱정해 보였다
ENDIF
FOR LOCAL,1,CHARANUM
	CALL 침실로부터내쫓아(LOCAL)
NEXT
;(天候パッチ)時刻・天候に応じて背景色を変更
IF FLAG:배경색추이
	CALL SET_MAP_WEATHER_BGCOLOR
ELSE
	RESETBGCOLOR
ENDIF


code:
; 아이템의 설명문
@ITEM_DESCRIPTION(ARG)
PRINTFORML %ITEMNAME:ARG%:%ITEM_EXPLANATION(ARG)%
;--------------------------------------------------------
; 아이템의 버튼 첨부 설명문
@ITEM_BUTTON(ARG)
PRINTFORML [{ARG}] %ITEMNAME:ARG%:%ITEM_EXPLANATION(ARG)%
;--------------------------------------------------------

@ITEM_EXPLANATION(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 21
		RETURNF "진동하는 무언가　벌레의 일종이라고도 물고기의 일종이라고도 농작물이나 성인용품이라고도 한다 "
	CASE 40
		RETURNF "끈적끈적한 액체.  윤활을 큰폭으로 올려 플레이를 문자 그대로 원활하게 한다"
	CASE 41
		RETURNF "마시면 금새 발정해 버리는 약.  욕정과 감도 향상, 그 이외의 장면에서도 효과를 발휘"
	CASE 42
		RETURNF "마시면 오줌이 마려워지는 약"
	CASE 45
		RETURNF "언제나 인기많은 피임구.  충분한 효과를 기대할 수 있지만, 일회용"
	CASE 48
		RETURNF "피나 좁쌀.  가난한 사람의 주식"
	CASE 51
		RETURNF "증류하지 않은 탁주. 살짝 단맛이 있지만 애주가에게는 아쉬울 수 있다"
	CASE 52
		RETURNF "맑은 양조주. 단맛과 쓴맛의 균형, 깔끔하고 향기로운 향을 즐길 수 있어 널리 선호되는 일품"
	CASE 53
		RETURNF "특수한 물을 사용하여 드라이하게 만든 양조주. 술에 강한 술고래까지도 취하게 만들 수 있다고 전해진다"
	CASE 54
		RETURNF "이것은 적포도주　떫은맛과 프레쉬한 향을 즐길 수 있다"
	CASE 55
		RETURNF "정화된 물을 사용하여 독특한 풍미로 만들어진, 신에게 바치기 위한 양조주"
	CASE 56
		RETURNF "누룩이나 술지게미로 만든 알콜이 아주 적은 술. 체력과 기력을 소량 회복한다"
	CASE 58
		RETURNF "증류하는 것으로 도수를 올린 술.  애주가에게는 견딜 수 없다"
	CASE 59
		RETURNF "약초를 증류주에 넣어 만들어지는 술.  독특한 쓴 맛이 특징"
	CASE 71
		RETURNF "【후타나리】로 하는 약을 만든다.  즉시 사용하는 아이템"
	CASE 72
		RETURNF "【후타나리】가 아니게 하는 약을 만든다.  즉시 사용하는 아이템"
	CASE 74
		RETURNF "신체의 일부분을 되돌려 【처녀】로 만드는 캔디를 만든다.  즉시 사용하는 아이템"
	CASE 77
		RETURNF "【동물귀】를 기르는 캔디를 만든다.  즉시 사용하는 아이템"
	CASE 78
		RETURNF "【동물귀】를 없애는 캔디를 만든다.  즉시 사용하는 아이템"
	CASE 91
		RETURNF "월경의 불순을 경감해, 임신에 대비하기 쉽게 하는 약"
	CASE 120
		RETURNF "가성비와 칼로리에 정평이 있는 크런치.  체력과 기력을 조금 회복（간식）"
	CASE 121
		RETURNF "선물의 초콜릿.  달콤하고 맛있다.  체력과 기력을 조금 회복（간식）"
	CASE 122
		RETURNF "장인의 손에 의해 정성들여 만들어진 초콜릿.  체력과 기력을 회복（간식）"
	CASE 123
		RETURNF "달콤하고 씁쓸한, 그 한 조각에 포함한 마음을 맛본다.  체력과 기력을 크게 회복（간식）"
	CASE 131
		RETURNF "모리야 복권에 들어있는 영험하지만 누구의 염원도 담겨있지 않은 부적… 즉 꽝이다"
	CASE 191
		RETURNF "유기물을 발효시켜 만든 비료.  밭에 뿌리면 작물의 생육을 도울 수 있다"
	CASE 212
		RETURNF "단오절의 공물　빨간콩 앙꼬·된장 앙파가 격전을 벌인다  체력을 조금 회복（간식）"
	CASE 213
		RETURNF "차갑고 맛있는 얼음과자.  모두가 사이 좋게 먹자  기력을 조금 회복（간식）"
	CASE 215
		RETURNF "완전 발효 시킨 찻잎.  향긋한 향기와 맛"
	CASE 216
		RETURNF "아이가 기뻐하는 달콤한 과자.  충치에는 조심해"
	CASE 250
		RETURNF "호의를 갖기 쉬워진다는 약.  …환각이라도 보이는 걸까"
	CASE 252
		RETURNF "깊은 잠으로 이끄는 약.  악용은 안 돼, 절대"
	CASE 352
		RETURNF "달콤해진 탓에 딸기 으깨기 스푼이 환상들이.  기력을 어렴풋이 회복"
	CASE 364
		RETURNF "여름의 풍물시.  꽁꽁 차가워진 녀석을 툇마루에서 갉아 먹고 싶다.  기력을 조금 회복"
	CASE 500
		RETURNF "맛없다! 이제 충분!   기력과 체력을 조금 회복"
	CASE 501
		RETURNF "타우린 1000mg 배합.  체력과 기력을 조금 회복"
	CASE 502
		RETURNF "더러운 부자들이 애용.  정력을 조금 회복"
	CASE 503
		RETURNF "파~이~팅~일발, 만-땅!   체력과 기력을 조금 회복"
	CASE 505
		RETURNF "24시간 싸울 수 있습니까?   체력과 기력을 회복"
	CASE 506
		RETURNF "너의 ×××로 하늘을 찔러라!   정력을 회복"
	CASE 507
		RETURNF "마녀의 솥에서 부글부글 끓고 있는, 어떤 종류의 허브티·약탕.  TSP와 기력을 조금 회복（약）"
	CASE 508
		RETURNF "마력을 가지는 소재로부터 추출된 마력 회복제.  TSP를 회복해, 기력도 조금 회복（약）"
	CASE 509
		RETURNF "식물의 각성 작용을 가지는 물질을 농축한 물약.  기력을 조금 회복해, 졸음이 강력하게 깬다（약）"
	CASE 510
		RETURNF "간기능을 서포트하는 음료.  술에 취하기 어려워진다"
	CASE 511
		RETURNF "궁극의 영약.  아까워서 사용하지 못하고 사장되는 병은 고칠 수 없다.  완전 회복（약）"
	CASE 512
		RETURNF "천계에서 만들어지는 불로불사의 약…의 해적판.  신체를 강건하게 할 수 있다.  체력 기력 정력을 일시적으로 증가"
	CASE 513
		IF ABL:[[아큐]]:친밀 < 5
			RETURNF "신화에 등장하는, 악신을 재운 전설의 술　역사학자를 만나보고 싶다"
		ELSE
			RETURNF "아큐에게 배운, 일격필수의 칵테일　그 야마타노 오로치를 재웠다는 유서 깊은 레시피"
		ENDIF
	CASE 514
		IF ABL:[[에이린]]:친밀 < 5
			RETURNF "월인이 만들어냈다고 하는, 인요를 막론하고 환각을 보게 하는 강한 작용을 하는 향"
		ELSE
			RETURNF "에이린에게 직접 전수받은 강한 환각・발정 작용을 가진 향　향의 범위 내에 있는 사람의 마음을 녹인다"
		ENDIF
	CASE 515
		IF ABL:[[에이린]]:친밀 < 5
			RETURNF "레이센이 쓰던 신체 강화약　아마 그녀의 스승이 개발한 약일 것이다…"
		ELSE
			RETURNF "에이린에게 직접 전수받은 연투 가능한 신체 강화약　체력정력이 일시적으로 증가하여, 탄막승부에도 유효하지만…？"
		ENDIF
	CASE 516
		IF ABL:[[메디슨]]:친밀 < 5
			RETURNF "식물에는 독성 꽃가루나 포자를 살포할 수 있는 씨앗도 있는 것 같다　좀 더 건강하고 의미있는 성분을 만들어냈으면 좋겠다"
		ELSE
			RETURNF "메디슨에게 배운 마법 식물　방향이나 꽃가루에 미약과 비슷한 효용이 있다　순식간에 피었다가 하룻밤새 시들어버리는 덧없는 목숨"
		ENDIF
	CASE 517
		IF ABL:[[메디슨]]:친밀 < 5
			RETURNF "피부에 닿기만 해도 독이 스며든다는 듣기에도 무서운 체질　「독도 잘 쓰면 약이 된다」고는 하지만…"
		ELSE
			RETURNF "극약　대사물이 정액에 침투해 미독화, 점막섭취시키면 발정하지만 건강에 해롭다"
		ENDIF
	CASE 518
		RETURNF "요리에 넣어 부족한 영양을 보충할 수 있는 뛰어난 약. 단, 맛은 보장할 수 없다"
	CASE 520
		RETURNF "이유가 있어서 숨기고 싶은 곳에 감자.  들키면 어쩔 수 없다"
	CASE 521
		RETURNF "점쟁이를 호출할 수가 있는 서적.  무녀씨가 없는 곳에서 열자"
	CASE 530
		RETURNF "목적의 그 아이의 애욕을 독점해, 우후후인 관계가 되기 쉽게 한다"
	CASE 531
		IF ABL:[[모코우]]:친밀 < 5
			RETURNF "봉황의 꼬리에서 빠져나간「끝없는 생명력」을、어떻게 되찾을 수는 없을까…"
		ELSE
			RETURNF "은은한 빛을 되찾은 불사조의 꼬리날개　빈사？시에 자동으로 발동하여 체력 회복"
		ENDIF
	CASE 550
		RETURNF "둥근 입의 살아있는 화석、장어라고 불리고는 있지만 다른 생물　체력 기력 정력을 약간 회복（경식）"
	;(酒造パッチ)アイテム追加
	CASE 560
		RETURNF "고구마회귀선(芋回帰線)。미나미큐슈 특산의「진하게(こいごい)」만든 본격 소주 고구마의 달콤한 향기가 은은하게 퍼진다"
		;역자 주, 고구마회귀선은 さつま白波라는 고구마소주의 CM 캐치프라이즈, こいごい는 가고시마현의 방언
	CASE 561
		RETURNF "벌꿀로부터 만들어진 가장 오래된 양조주　달콤한 향이지만 의외로 산뜻하다"
	CASE 562
		RETURNF "나무딸기로 만든 와인　알코올은 강하지 않고 산뜻한 단맛이다"
	CASE 563
		RETURNF "나무딸기로 만든 브랜디　도수는 높지만 향이 깊고 부드러운 맛이다"
	CASE 564
		RETURNF "무색투명한 해적들의 음료　도수는 높지만 달콤한 향기로 깔끔한 맛이다"
	CASE 565
		RETURNF "황금빛 해적의 음료　도수는 높지만 달콤한 향기에 은은한 고소함도 있다"
	CASE 566
		RETURNF "캐러맬색 해적의 음료　도수는 높지만 캐러멜 같은 달콤한 향으로 맛이 깊다"
	CASE 567
		RETURNF "양조 도중에 주정을 첨가한 와인、포트와인은 유명　도수가 높고 포도에서 유래한 단맛이 강하다"
	CASE 568
		RETURNF "와인의 왕으로서 왕의 와인　매우 달콤한 와인으로 독특한 방향을 가지며 도수도 높다"
	CASE 569
		RETURNF "숙성으로 원숙해진 와인　감칠맛과 단맛이 느껴지는 부드러움이 드러났다"
	CASE 570
		RETURNF "장기간 숙성된 최고급 와인　아는 사람에게는 아는 맛이 있다"
	CASE 571
		RETURNF "포도로 만든 브랜디　도수는 높지만 향이 깊고 부드러운 맛이다"
	CASE 572
		RETURNF "숙성으로 원숙해진 브랜디　향기가 더욱 풍부해지고 부드러운 맛이 되었다"
	CASE 573
		RETURNF "일반적으론 20년 이상 숙성된 브랜디　감칠맛이 있고 부드러우며 질이 높다　초심자부터 상급자까지 추천"
	CASE 574
		RETURNF "고대의 일본주로 감칠맛과 단맛이 깊다　지덴슈地伝酒(시마네) 아카자케赤酒(구마모토) 지자케地酒(가고시마)라고도　토소(屠蘇)에 사용된다"
	CASE 575
		RETURNF "포도의 찌거기를 증류해서 만드는 브랜디　포도향이 있고 도수가 높다　그라파(Grappa)가 유명"
	CASE 576
		RETURNF "단오절에 먹을 수 있는 미나미큐슈의 향토 요리。쫄깃한 식감으로 독특한 풍미의 보존식"
	CASE 577
		RETURNF "레이무에 의해 빚어진 쿠치카미자케。레이무 유래의 성분으로 마신 자를 축복하는 효과가 있다"
	CASE 578
		RETURNF "사나에에 의해 빚어진 쿠치카미자케。사나에 유래의 성분으로 마신 자에게 기적을 가져다 준다"
	CASE 579
		RETURNF "레이무와 사나에가 협력하여 빚은 쿠치카미자케。두사람의 힘으로 축복과 기적을 가져오는 술"
	CASE 600
		RETURNF "먹을 수 있을 것 같은 버섯"
	CASE 601
		RETURNF "독이 있어 먹을 수 없는 버섯"
	CASE 602
		RETURNF "젤라틴질의 점성 물질로 덮힌 버섯"
	CASE 603
		RETURNF "강장 작용이 있는, 나방의 유충에 붙는 버섯"
	CASE 604
		RETURNF "어떻게 봐도 생리적으로 위험한 것 같은 버섯"
	CASE 605
		RETURNF "장독을 발해, 접근하는 것만으로 환각이 보이는 버섯"
	CASE 606
		RETURNF "환상향의 최고신의 일부라고 전해지지만, 진위는 확실하지 않다"
	CASE 607
		RETURNF "약효가 있는 성분을 포함한 풀"
	CASE 608
		RETURNF "약효 성분을 풍부하게 포함한 질이 좋은 약초"
	CASE 609
		RETURNF "여름에도 녹지 않는다는 수룡의 마력의 결정"
	CASE 610
		RETURNF "저기 나무를 벌채한 것.  건재나 장작에 부디"
	CASE 611
		RETURNF "독특한 쓴맛과 떫은맛이 강함.  튀김으로 하면 맛있어"
	CASE 612
		RETURNF "알칼로이드 뭐시기　독과 약은 근소한 차이"
	CASE 613
		RETURNF "높은 약리활성을 가지지만, 대체로 재배가 매우 어렵다"
	CASE 614
		RETURNF "피안화.  비늘모양 줄기는 독을 가지지만 구기작물로서의 일면도"
	CASE 615
		RETURNF "고산의 한랭지에서 추위에도 아랑곳 하지 않고 나는 궁극의 약초"
	CASE 616
		RETURNF "자연산 마.  야생의 것을 첨단까지 파는 것은 인내가 필요함"
	CASE 617
		RETURNF "뿌리와 줄기를 이용한다.  간기능을 촉진한다고 듣고 있지만…"
	CASE 618
		RETURNF "강장 작용을 가지는 오갈피과식물의 뿌리.  야채의 당근과는 별개"
	CASE 619
		RETURNF "다양한 약효를 숨긴 식물의 뿌리"
	CASE 620
		RETURNF "뽑으면 비명지르는, 사람의 형태를 한 마녀의 약초.  목을 떨어뜨리면 비명도 관계없다"
	CASE 621
		RETURNF "자연스럽게 분비되는 나무의 수지.  횃불 등에도 사용할 수 있다"
	CASE 622
		RETURNF "줄기를 손상시키면 분비되는 수액이 고체화 한 것"
	CASE 623
		RETURNF "향기로운 수지.  향의 재료로도 된다"
	CASE 624
		RETURNF "꽃이 시든 직후의 실로 상처를 입히고 배어 나온 흰 유액을 모은 것"
	CASE 625
		RETURNF "용의 피를 강조한 적색의 고체.  실체는 어느 희귀한 큰 나무로부터 얻을 수 있던 수지"
	CASE 626
		RETURNF "산야에 자생한다.  새콤달콤하고 맛있다.  기력을 어렴풋이 회복"
	CASE 627
		RETURNF "벌꿀의 역사는 인류의 역사.  식용, 조미료, 약용, 화장품, 향료, 뭐든지 있어라"
	CASE 628
		RETURNF "덩굴성 관목에 붙는 열매.  종자를 싸는 태좌가 단맛을 가진다.  체력과 기력을 어렴풋이 회복"
	CASE 629
		RETURNF "봄이 제철.  환상향에서는 약간 열세한가"
	CASE 630
		RETURNF "먹으면 몸이 강건하게 된다는 천계의 음식.  체력 기력 정력을 일시적으로 증가"
	CASE 631
		RETURNF "산산조각나 있던 뭔가의 뼈를 모은 것"
	CASE 632
		RETURNF "석고.  황산칼슘이 주성분의 무색 광물"
	CASE 633
		RETURNF "활석.  함수 규산 알루미늄이 주성분의 점토 광물"
	CASE 634
		RETURNF "돌처럼 딱딱한 용의 뼈.  어쩌면 화석인가 뭔가일까"
	CASE 635
		RETURNF "진사　단, 현자의 돌이라고도　수은의 원료로서 중요한 광물"
	CASE 636
		RETURNF "우와악!  이것은 견딜 수 없다!"
	CASE 637
		RETURNF "온천에 녹아 있던 성분이 침전 한 것.  유황이나 명반 따위를 포함한다"
	CASE 638
		RETURNF "귀찮게 달라붙었기 때문에 병조림으로 해 주었다"
	CASE 639
		RETURNF "세계를 구축하는 수수께끼의 암흑 물질"
	CASE 640
		RETURNF "피닉스의 꽁지깃.  소생과 뭔가 인연이 있는 일품"
	CASE 641
		RETURNF "두꺼비의 이하선으로부터 나온 흰 기름.  강심 작용을 가지지만 유독하기 때문에 취급에 주의"
	CASE 642
		RETURNF "물고기를 건조 분쇄해 분말로 한 것.  이것도 시간정지능력의 자그마한 응용이다"
	CASE 643
		RETURNF "용의 침이 응고된 것이라고 전해지는 호박같은 광택의 회색 덩어리"
	CASE 644
		RETURNF "베어진 나무　시간 정지 능력으로 즉시 건조시키면, 재료로 사용 할 수 있다"
	CASE 645
		RETURNF "베어진 대나무　예로부터 다양한 용도로 사용되어온 만능 재료"
	CASE 646
		RETURNF "방향성분을 포함한 특수한 수지나 수액을 분비하는 나무　백단이나 침향등이 유명하다"
	CASE 647
		RETURNF "홍룡동에서 채굴되는、마력을 카피하는 성질을 지닌 광석　신대에서 유래한 이자나기의 오브젝트 중 하나"
	CASE 648
		RETURNF "잡육이나 내장、뼈를 건조 분쇄하여 분말 상태로 만든 것　가축 사료로는 사용할 수 없다"
	;(酒造パッチ)アイテム追加
	CASE 660
		RETURNF "고구마소주의 원료　고구마에서 만들어진 알코올이 풍부하게 함유되어 있다"
	CASE 661
		RETURNF "산딸기로 만들어진 주류를 증류한 것　이것을 숙성하면 프랑부아즈가 된다"
	CASE 662
		RETURNF "럼주의 원료　설탕에서 만들어진 알코올이 풍부하게 함유되어 있다"
	CASE 663
		RETURNF "이대로는 맛이 너무 거칠다　숙성하면 화이트럼이 된다"
	CASE 664
		RETURNF "머루로 만들어졌다　이것을 숙성하면 브랜디가 된다"
	CASE 665
		RETURNF "산야에 자생한다　새콤달콤하고 맛있다"
	CASE 666
		IF ABL:MASTER:교양 >= 3
			RETURNF "곰팡이에 의해 당도가 높아지고 방향을 머금은 포도　귀부와인의 원료가 된다"
		ELSE
			RETURNF "곰팡이 핀 포도　왜 이런것을 손에 넣었지？"
		ENDIF
	CASE 667
		RETURNF "초목을 태운 잔여물　바슬바슬하다"
	CASE 668
		RETURNF "포도를 짜고 남은 찌꺼기　포머스브랜디의 원료"
	CASE 669
		RETURNF "얇게 구운 토르티야에 재료를 담은 멕시코 요리　들고 다닐 수 있게 되어 있다"
	CASE 706
		RETURNF "고기로는 싱거운 닭고기와 같은 풍미가 난다"
	CASE 850
		IF ABL:[[마리사]]:친밀 < 5
			RETURNF "탄막 승부용으로 설계된 마법 시약으로, 간편하게 사용 가능한 폭발물이다. 먼저 마법사에게 의견을 들어보고 싶은데."
		ELSE
			RETURNF "키리사메 마리사에게 배운 충격으로 폭발하는 마법 시약. 탄막의 위력을 약간 높인다."
		ENDIF
	CASE 851
		IF ABL:[[치르노]]:친밀 < 5
			RETURNF "탄막 승부에 마력을 이용하여 얼음을 사용하는 탄막을 고안했다. 빙정의 힘이 참고가 될 지도?..."
		ELSE
			RETURNF "치르노에게 배운 대기의 수증기를 마력으로 열려 탄막으로 사용할 수 있게 하는 마법 아이템. 탄막의 위력을 약간 높인다."
		ENDIF
	CASE 852
		IF ABL:[[후토]]:친밀 < 5
			RETURNF "탄막 승부에서 불기둥을 휘두르는듯한 화려함에 빠지게 만드는 불의 장인이 있었을까?"
		ELSE
			RETURNF "모노노베 후토에게 배운 일전에 명련사를 불태웠을때 사용된 업화. 이런거 절에 쓰지 말라고. 탄막의 위력을 약간 높인다."
		ENDIF
	CASE 853
		IF ABL:[[유카리]]:친밀 < 5
			RETURNF "탄막 승부에서 이계로부터 소환수를 소환하여 서포트 받는 전밥을 고안했다. 이런 계열의 능력자라고 하면..."
		ELSE
			RETURNF "야쿠모 유카리에게 배운 무한의 초고속비행체들을 불러들이는 미끼로 탄막 승부에서 유용하게 사용할 수 있다."
		ENDIF
	CASE 854
		IF ABL:[[파츄리]]:친밀 < 5
			RETURNF "마술행사를 보조하는 촉매를 만들고 싶다. 지식이 풍부한 마법사에게 이야기를 들으러 가자"
		ELSE
			RETURNF "파츄리에게서 배운 다섯속성의 마법행사의 원소를 응축한 촉매. 탄막 승부에서 탄막의 위력과 수량을 늘린다"
		ENDIF
	CASE 855
		IF ABL:[[나루미]]:친밀 < 5
			RETURNF "탄막 대결에서 조종하지 않아도 자율구동하는 작동체를 만들고 싶다. 그런 능력자가 있었던 것 같다"
		ELSE
			RETURNF "나루미에게 배워서 재현한, 자율구동 골렘 방패. 상대 탄막의 위력을 조금 낮춘다"
		ENDIF
	CASE 856
		RETURNF "시장에 나도는 어빌리티 카드…의 위조품　탄막승부에서 잔기를 １ 늘린다"
	CASE 857
		RETURNF "시장에 나도는 어빌리티 카드…의 위조품　탄막승부에서 봄 수를 １ 늘린다"
	CASE 870
		RETURNF "10여초 정도 미래를 예견하는 능력. 결과는 바꿀 수 없지만 대응은 할 수 있다. 자동발동・TSP 500 소비"
	CASE 871
		RETURNF "시간을 지워버린다는 난해하기 짝이 없는 능력. TSP를 많이 소비하지만 효과는 절대적이다"
ENDSELECT


code:
;오늘의팬티에는 평상복용과 파자마용의 2종류가 있으므로, 직접 P_ID를 건네주도록(듯이) 개변
@오늘의브래지어(C_ID, P_ID)
#FUNCTION
#LOCALSIZE 2
#LOCALSSIZE 1
#DIM RAND_BRA, MAXBRA
#DIM B_TABLE

#DIM C_ID	;대상 캐릭터
#DIM P_ID	;코디네이트 된 팬티
#DIM B_ID	;브라의 종류

B_ID = GET_INT(C_ID, "하반신속옷_비켜놓기가능", P_ID, "관련 속옷")

IF B_ID == 0 && !(P_ID == 0 || P_ID == 18)
	VARSET RAND_BRA , 0
	FOR LOCAL:0 , 1 , MAXBRA
		RAND_BRA:(LOCAL:0) = LOCAL:0
	NEXT
	FOR LOCAL:0 , 1 , MAXBRA
		LOCAL:1 = RAND(LOCAL:0 , MAXBRA)
		SWAP RAND_BRA:(LOCAL:0), RAND_BRA:(LOCAL:1)
	NEXT

	FOR B_TABLE, 0, MAXBRA
		IF GET_INT(C_ID, "상반신속옷_탈의불가", RAND_BRA:B_TABLE, "붙인다")
			B_ID = RAND_BRA:B_TABLE
			BREAK
		ELSE
			CONTINUE
		ENDIF
		SIF B_TABLE == MAXBRA - 1
			THROW %CALLNAME:C_ID%의 브라 추첨에 실패
	NEXT
ENDIF

SIF DECIDE_NOBRA(C_ID)
	B_ID = 0
RETURNF B_ID

;PRINTFORML %CALLNAME:C_ID%:하반신속옷2:{P_ID}:%PANTSNAME(P_ID)%　상반신속옷1:{EQUIP:C_ID:상반신속옷1}:%CLOTHNAME(7, EQUIP:C_ID:7)%

@DECIDE_NOBRA(ARG)
#FUNCTION
#DIM DYNAMIC NOBRA_RATE
SIF (TALENT:ARG:걸레 || TALENT:ARG:소악마 || TALENT:ARG:섹프 || ABL:ARG:노출벽 >= 4) && !RAND:5
	RETURNF 1
SIF TALENT:ARG:모유체질 && !(TALENT:ARG:섹프 || TALENT:ARG:애욕 || ABL:ARG:노출벽 >= 4)
	RETURNF 0
;DAY:2 계절(1=춘 2=하 3=추 4=동)
SELECTCASE DAY:2
CASE 1
	NOBRA_RATE = 8
CASE 2
	NOBRA_RATE = 15
CASE 3
	NOBRA_RATE = 3
CASE 4
	NOBRA_RATE = 1
ENDSELECT

SIF TALENT:ARG:유치 || TALENT:ARG:애같음
	TIMES NOBRA_RATE, 1.20
SIF TALENT:ARG:도착적
	TIMES NOBRA_RATE, 1.20
SIF TALENT:ARG:소악마
	TIMES NOBRA_RATE, 1.20
SIF TALENT:ARG:마조
	TIMES NOBRA_RATE, 1.80
SIF TALENT:ARG:걸레
	TIMES NOBRA_RATE, 2.00

{
	NOBRA_RATE = NOBRA_RATE *
				(10 + TALENT:ARG:성적흥미 + TALENT:ARG:자기애 + TALENT:ARG:쾌감응답
					- TALENT:ARG:B감도 - TALENT:ARG:정조 - TALENT:ARG:수치심 - TALENT:ARG:가슴사이즈 ) / 10
}

SIF TALENT:ARG:키스미경험
	TIMES NOBRA_RATE, 0.30
SIF GET_TALENTNAME(GETNUM(TALENT, "담력"), TALENT:ARG:담력) == "겁쟁이"
	TIMES NOBRA_RATE, 0.50
SIF GET_TALENTNAME(GETNUM(TALENT, "자존심"), TALENT:ARG:자존심) == "자존심 높음"
	TIMES NOBRA_RATE, 0.50

RETURNF RAND:100 <= NOBRA_RATE

@BRANAME(ARG, CHARA)
#FUNCTIONS
#DIM CHARA

CALLF 상반신속옷체크(ARG)
RETURNF GET_STR(CHARA, CLOTHES_PARTS_TO_CATEGORY("상반신속옷1"), ARG, "이름")