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 AA표시
			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_능력_표시("Ｍ감")
		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 "Ｍ감"
		IF 차례 == 1
			PRINTBUTTON @" ▼Ｍ감", 2015
		ELSEIF 차례 == 2
			PRINTBUTTON @" ▲Ｍ감", 2015
		ELSE
			PRINTBUTTON @"   Ｍ감", 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 "Ｍ감"
		표시능력 = 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"Ｍ감",
	 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감", "Ｍ감",
	"친밀", "순종", "욕망", "기교",
	"손가락기술", "혀 기술", "가슴기술", "허리기술", "질 기술", "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
	PRINTBUTTON @"[444] - 　　%DISP_NAME:((DISP_PAGE - 1 + 5) % 5), 8%　", "444"
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 , 4 = "의상 및 능력", "경험과 보주", "개인정보", "함락 조건"
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 168
		TFLAG:RESULT = !TFLAG:RESULT
	CASE AA표시
		FLAG:AA표시 = !FLAG:AA표시
	CASEELSE
		$RETRY
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;조교중 타겟용의 리스트 표시 함수
;보통에 TARGET를 건네주면(자) TARGET:0이 중복 해 버리므로 그대로는 사용할 수 없었다
;리스트에 MASTER를 포함하도록(듯이) 개량
@TARGET_LIST_STATE(ARG:0)
#DIM TARGET_LIST, 캐릭터수상한
#DIM TARGET_NUM
#DIM VIEW
VARSET TARGET_LIST
TARGET_NUM = FINDELEMENT(TARGET, 0) - 1
VIEW = ARG:0
SIF TARGET_NUM <= 0
	RETURN
ARRAYCOPY "TARGET", "TARGET_LIST"
TARGET_LIST:0 = MASTER
VIEW = FINDELEMENT(TARGET_LIST, ARG:0)
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 , 4 = "의상 및 능력", "경험과 보주", "개인정보", "함락 조건"
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 AA표시
		FLAG:AA표시 = !FLAG:AA표시
	CASE 98
		SIF CFLAG:(CHARA_LIST:C_VIEW):별도얼굴있음 && CFLAG:(CHARA_LIST:C_VIEW):별도스탠딩있음
			CFLAG:(CHARA_LIST:C_VIEW):대체적용 = !CFLAG:(CHARA_LIST:C_VIEW):대체적용
	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 (%"소지금:\\" + TOSTR(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, "체력", 18, "초록")
PRINTFORM
CALL BASE_BAR(C_ID, "기력", 18, "파랑", "「개행」")
IF BASE:C_ID:술기운
	CALL BASE_BAR(C_ID, "술기운", 18, "빨강")
ELSE
	PRINTFORM %"　" * 24%
ENDIF
PRINTFORM
SIF C_ID == MASTER
	CALL BASE_BAR(C_ID, "TSP", 18, "물색")
PRINTFORML

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
SIF CFLAG:(C_ID):탄막승부승리 == 1
	PRINTFORM ★탄막승부에 승리했다
PRINTFORML

;캐릭터 정보 표시 함수
;등록 번호와 페이지번호, 옵션을 지정해 정보를 표시한다
@CHARA_STATE(C_ID, PAGE, OP)
#DIM  C_ID
#DIM  PAGE
#DIMS OP
CALL BASIC_STATE(C_ID, OP)
SELECTCASE PAGE
CASE 0
	CALL SHOW_SIZE(C_ID)
	IF !FLAG:그림표시
		PRINTL [99] AA 표시
	ELSE
		PRINTLC [99] 그림 표시
	SIF (FLAG:스탠딩종류 == 1 && CFLAG:C_ID:별도얼굴있음) || (FLAG:스탠딩종류 == 0 && CFLAG:C_ID:별도스탠딩있음)
		PRINTFORMLC [98] 대체화상 \@ CFLAG:C_ID:대체적용? ON# OFF\@
	PRINTL
	ENDIF
	IF FLAG:AA표시 && !FLAG:그림표시
		CALL PRINT_AA(C_ID)
	ELSEIF FLAG:AA표시 && FLAG:그림표시
		CALL PRINT_STATE_IMAGE(C_ID)
	ENDIF
	CALL PRINT_STATE_CLOTH(C_ID)

	;도구라고 할까 아이템이지만 외가 2 문자이고
	IF C_ID == MASTER
		PRINT □
		CALL PRINTBUTTON_EX("도구", 167, TFLAG:167)
		PRINTL  □---------------------------------------------------------------------------
		SIF !TFLAG:도구표시
			CALL LIST_ITEM("모두")
	ENDIF
	;CALL PRINT_STATE_ABL(C_ID)
	CALL PRINT_STATE_TALENT(C_ID)
	PRINTL
	CALL SHOW_ABILITY(C_ID)
	PRINTL
	;IF C_ID != MASTER
	;	PRINTL
	;	PRINT □
	;	CALL PRINTBUTTON_EX("각인", 166, TFLAG:166)
	;	PRINTL  □---------------------------------------------------------------------------
	;	CALL PRINT_각인(C_ID)
	;ENDIF
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)
	ELSEIF !(C_ID == MASTER)
		CALL PRINT_STATE_JUEL(C_ID)
	ENDIF
	PRINTL
	IF C_ID == MASTER
		CALL 예정
	ELSE
		CALL 팬티수집상황(C_ID)
	ENDIF
CASE 2
	CALL PRINT_STATE_PERSONAL(C_ID)
	CALL 육체정보(C_ID)
	CALL SHOW_RELATION(C_ID)
CASE 3
	CALL 함락조건표시(C_ID)
	CALL 바람기파악상황(C_ID)
CASEELSE
	THROW 이상한PAGE {PAGE}
ENDSELECT

;각인과 능력을 일괄해 표시한다
;세로폭을 압축하고 싶다
@SHOW_ABILITY(C_ID)
#DIM  C_ID
{
#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, "Ｍ감")
		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:
;現在立ち絵のみなので6個ですが、顔絵を作る場合は13に変更する必要があります
#DIM CONST 모브코소재Resource수 = 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 = "瞳","服","肌","髪","耳","尾","乗"

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

license: mit


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

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

;리소스 작성
;=====================================
FOR ResourcesCount, 0, 모브코소재Resource수
	;초기화
	GID = 0
	VARSET LOCAL
	VARSET 합성문자열배열,
	합성수 = 0
	;그림합성下地用のダミーを配置する
	CALL 그림합성(GID,"ダミー")
	;使うリソースの名称を配列に取得する
	;DEBUGPRINTFORML {캐릭터번호} - 모브코ResourceSearch(%합성문자열배열%, {합성수}, %CSTR:캐릭터번호:(모브코소재CSTR개시위치 + ResourcesCount)%), 스탠딩종류
	CALL 모브코ResourceSearch(합성문자열배열, 합성수, 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

;*******************************************************************************************************
;モブ子画像リソース探索用関数
;モブ子画像のリソースを探索して配列にリソース名を格納する
;*******************************************************************************************************
@모브코ResourceSearch(합성문자열배열, 합성수, 생성문자열, 스탠딩종류)
#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, 모브코소재Resource수
		GDISPOSE CFLAG:캐릭터번호:(モブ子素材CFLAG開始位置 + ResourcesCount)
		CFLAG:캐릭터번호:(モブ子素材CFLAG開始位置 + ResourcesCount) = 0
	NEXT
ENDIF
RETURN 1

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


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

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


code:
@시간정지해제
#DIM 추방
#DIM 합계절정강도
#DIM 절정인원수
#DIM 일탈추가
VARSET LOCAL
FLAG:70 = 0
절정인원수 = 0
TFLAG:운반 = 0
FOR LOCAL, 0, CHARANUM
	IF 수면시간(LOCAL)
		;파자마 세트
		CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_파자마")
		CFLAG:LOCAL:파자마 = 1
	ELSE
		;평상복 세트
		CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
		CFLAG:LOCAL:파자마 = 0
	ENDIF
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
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:C절정 + EX:LOCAL:V절정 + EX:LOCAL:A절정 + EX:LOCAL:B절정 + EX:LOCAL:M절정 > 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:C절정 + EX:LOCAL:V절정 + EX:LOCAL:A절정 + EX:LOCAL:B절정 + EX:LOCAL:M절정 > 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 && !추방
	PRINTFORM %마스터는% 소녀
	SIF 절정인원수 >= 2
		PRINT 들
	PRINTW 를 신경써 보였다
ENDIF
FOR LOCAL, 1, CHARANUM
	CALL 침실로부터내쫓아(LOCAL)
NEXT
RESETBGCOLOR


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 40
		RETURNF "끈적끈적한 액체.  윤활을 큰폭으로 올려 플레이를 문자 그대로 원활하게 한다"
	CASE 41
		RETURNF "마시면 금새 발정해 버리는 약.  욕정과 감도 향상, 그 이외의 장면에서도 효과를 발휘"
	CASE 42
		RETURNF "마시면 오줌이 마려워지는 약"
	CASE 45
		RETURNF "언제나 인기많은 피임구.  충분한 효과를 기대할 수 있지만, 일회용"
	CASE 48
		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 195
		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 520
		RETURNF "이유가 있어서 숨기고 싶은 곳에 감자.  들키면 어쩔 수 없다"
	CASE 521
		RETURNF "점쟁이를 호출할 수가 있는 서적.  무녀씨가 없는 곳에서 열자"
	CASE 530
		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 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
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, "이름")


code:
[SKIPSTART]
◆의상 설정의 사양
·기본적으로는 기법을 바꾸어 가독성을 올렸을 뿐
·GET_INT/GET_STR를 사용하는 것으로 정보를 취득할 수가 있다
·1개의 의상에 대해 2함수를 사용한다(나 1개는 존부 함수)
· 각 의상은 의상 카테고리(≒EQUIPNAME와 닮아 있지만 조금 바꾼) 마다 관리한다
·같은 의상 카테고리 속에서 동일 명칭의 장비품은 만들 수 없다
　반대로 말하면, 다른 의상 카테고리이다면 명칭은 중복 해도 상관없다
　예) 「머리장비」의 리본과 「그외의상」의 리본
　다만, 「외투」의 백의(입는 있고)와 「상반신윗도리_탈의불가」의 백의(입는 네, 먹을 수 있다)의 경우는
　「동일 표기로 지시하는 것이 완전히 다르다」위해(때문에) 상반신윗도리1의 옆을 변경했다(헷갈려)
·의상 카테고리와 장비부위는 기본적으로 일대일의 대응 관계에 있다
　예를 들어 「머리장비」는 EQUIP:모자에게만 장비 가능
　다만, 예외로서 「그외의상」은 EQUIP:그외1, EQUIP:그외2, EQUIP:그외3의 모두에 장비 할 수 있다
　이 사양은 바꾸려고 생각하면 바꿀 수 있지만@CLOTHES_ID나 전의상 ID의 재설정이 필요하게 될 것(즉 귀찮아)
·의상의 참조 시에는 이와 같이 한다
　GET_INT(등록 번호등 , 의상 카테고리, 의상의 카테고리내 ID, 참조하고 싶은 정보의 종류)
·특정의 이름의 의상의 ID를 취득하고 싶을 때는 이와 같이 한다
　CLOTHES_ID(장비부위명, 장비명)
·장비부위로부터 해당하는 의상 카테고리를 취득할 때는 이와 같이 한다
　CLOTHES_PARTS_TO_CATEGORY(장비부위명)
·이상의 함수로부터, 장비부위와 장비명만으로(번호를 사용하지 않고 ) 장비를 참조할 수가 있다
　GET_INT(등록 번호등 , CLOTHES_PARTS_TO_CATEGORY(장비부위명), CLOTHES_ID(장비부위명, 장비명), 참조하고 싶은 정보의 종류)
　―, 현재 장비중의 장비의 참조라면 CLOTHES_ID는 불필요해서
　GET_INT(등록 번호등 , CLOTHES_PARTS_TO_CATEGORY(장비부위명), EQUIP:등록 번호:장비부위명, 참조하고 싶은 정보의 종류)
　이러한

·자신용의 각서
　(하반신속옷계는 또 구별)
　아마 이런 생각으로 좋다고 생각한다
　상반신윗도리1(탈의 불가)이 바깥쪽, 상반신윗도리2(탈의 가능)는 안쪽에 착용하는 의상

·의상 나토리 이득 함수 @CLOTHNAME
각 장비의 설정으로부터 이끌어 올 수 있게 되었으므로 큰폭으로 간략화

·복장 나토리 이득 함수(@SHOW_BOTTOM등 )
단지 가장 위의 장비의 이름을 돌려준다 게변경(간략화)하고 있습니다
이름과는 별도로 하고 싶으면 STR용으로"묘사"든지를 전의상으로 설정하면 간단하게 참조할 수 있습니다

·갈아입히기 관련에 대해서도 유사한 사양으로 실장했다
·의상세트함수군
　이 함수군은 갈아입히기 세트의 내용을 기술한다
·캐릭터데이터함수군
　이 함수군은 각 캐릭터의 개별의 데이터를 일원 관리시킨다
　평상복의 설정은 각 캐릭터로 독립하고 있기 위해서(때문에) 여기에 기술했다
　또, 앨리스의 의상에 존재하고 있던 섣달그믐 의복 처리의 실현을 위해서(때문에)
　평상복의 전환 제어의 기능도 추가했다
　요일에 의해 바꾼다든가도 하고 싶다면 할 수 있다
　노려라 칠색의 마법사
·의상 설정에 대해
　갈아입히기에 의해 「이 복장을 매일 입도록(듯이)」라고 말하는 지정이 가능
　0　　　Default인 채
　1~99　COORDINATE1~99를 지정
　100　　수동으로 설정한다(CFLAG:600~630)
　101~특정 캐릭터의 흉내(특정 캐릭터의 평상복을 참조하는, 101이라면 레이무)
·파자마 설정에 대해
　파자마는 그렇게 구애되어도 방법이 없는데라고 생각했으므로
　COORDINATE 함수 속으로부터 어떤 것을 입게 하는지를 선택하는 형식으로 했다
　·파자마(주반)
　·파자마(네글리제)
　·파자마(베이비돌)
　·파자마(원피스)
　·파자마(바지상하)
　·파자마(치마상하)
　·파자마(바지＋후드)
　·파자마(치마＋후드)
　다만, 예외로서"판이치"로 팬티 일인분,"전라"에서는이다 관로 자게 할 수가 있다
　(그러한 처리가 실장되고 있었던 딸(아가씨)가 있었으므로)

◆개개의 장비품 주위의 변경
·명칭 변경
　네글리제→롱 네글리제
　화상 검색의 결과가 너무 과격하므로 명칭 변경
　베이비돌와의 차별화를 위해서(때문에) 어른 제한 표지인 의상을 상정한다
·카테고리 변경
　「상반신윗도리_탈의불가」의 「백의(입는 네, 먹을 수 있다)」의 명칭을 「흰 소매」로 변경
　의상세트계에서는 「신관 세트」만이 사용하고 있어 「양호실의 여교사 세트」에서도 「백의의 천사 세트」에서도 사용하지 않았다
　또, 평상복 사용 캐릭터도 없었기 때문에 변경

　게다가 이 「흰 소매」는 안에 껴입는 의상인 것을 생각되기 (위해)때문에,
　의상 카테고리를 「상반신윗도리_탈의가능」으로 이동했다
·추가 의상
　머리장비「후드」, 파자마용으로 신설
　스레에서의 논의로 나온 아이디어를 채용시켜 주었습니다
·추가 의상
　완부의복「암 커버」, 파르시용으로 신설
·추가 의상
　상반신의상_탈의 불가 「관복」, 후토용으로 신설
　무녀에서도 사용하는 곳(중) 있는 것 같구나
·추가 의상
　상반신의상_탈의 불가 「신관복」
　화 같을 방향을 확충하고 싶었다
　흰색이라면 매우 신관 같아요
·추가 의상
　신발「답」
　신관이든지 귀족적인 의복이라고 하는 것으로 「관복」 「신관복」이라고세트를 상정해 추가
·추가 의상
　그외「브로치」
　카게로의 목 언저리의 매우 인상적인 브로치가 없었기 때문에 증설했다
　레티씨에게도 장비

◆의상 카테고리의 이름에 대해
사양이 까다로워져 버리는 것은 감안하고 가
왜 일부의 의상 카테고리의 이름을 EQUIPNAME와 바꾸어 있는가 하면
그것은 이하의 이유로부터입니다
　이유 1：함수명으로@하반신속옷1  2혹은@하반신속옷1_2이라든지 의 것이 너무나 기색 너무 나쁘다
　이유 2：직감적이 아닌 EQUIPNAME가 있다
　　　　　·리본이나 캬츄샤(헤어밴드)는 「모자」
　　　　　·하반신속옷1으로 하반신속옷2의 구분의 차이가 이해하기 어렵다(이 번호도 magic number-)
　　　　　·우선 「탈의 가능·탈의 불가」 「비켜 놓기 가능·비켜 놓기 불가」의 이름으로 했다
　　　　　·아무래도 이 분류도 불명확인 것 같지만 번호보다는 좋은가?
　　　　　·우선 잠정의 사양입니다
　이유 3：EQUIPNAME측을 만지작거리려고 하면(자) 수정 개소가 방대
　　　　　추가 부분만큼 바꾸는 편이 편안(간편)

이하, EQUIPNAME와 의상 카테고리의 대응

액세서리
→액세서리
　그 외는 다른,  어떠한 효과를 가지는 일이 있다
　우산은 날씨 의존으로 행동시의 BASE 소비 경감에 사용되는 일이 있다

모자
→머리장비
　모자 뿐만이 아니라 화이트브림이나 리본등이라고 하는 머리 부분 장식품을 가리킨다

화
→화
　실내에서는 벗는다

양말
→양말
　일부의 캐릭터는 콘피그에 의해 평상복의 의상이 니소가 된다

하반신속옷1
→하반신속옷_비켜놓기불가

하반신속옷2
→하반신속옷_비켜놓기가능
　하반신속옷(비켜 놓기 가능)
　이른바 팬티(＋비키니의 하반신만)
　독특한 처리가 많기 때문에, 다른 의상과는 별취급으로 관리한다

상반신속옷1
→상반신속옷_탈의불가

상반신속옷2
→상반신속옷_탈의가능

레오타드
→레오타드

보디슈트
→보디슈트

바지
→바지
　비켜 놓기 불가

하반신윗도리
→해당 장비가 너무 적으므로 폐지, 부활시키고 싶은 경우는 그 외든지로 추가해 주세요

치마
→치마
　넘길 수 있는 하반신장비

상반신윗도리1
→상반신윗도리_탈의불가

상반신윗도리2
→상반신윗도리_탈의가능

원피스
→원피스

기모노
→기모노

외투
→외투
　의복과는 별도로 위로부터 겉옷 비쳐보이는 의상

그외1, 그외2, 그외3
→1~3을 전부 정리해 「그외의상」에 통합

완부의복
→완부의복
　주인의 장갑계

◆팬티
특수한 처리가 많은 것 같고 별개여서 처리한다
·CFLAG:오늘의팬티
　하루의 최초로 오늘팬티를 설정해 CFLAG로 보유
·CFLAG:파자마팬티
　하루의 최초로 파자마용의 팬티를 설정해 CFLAG로 보유
　파자마로 갈아입었을 때에 노팬티 라면 파자마팬티를 착용한다
　파자마팬티를 착용한 시점에서 파자마팬티에 0이 대입되기 (위해)때문에
　무한 파자마팬티는 불가능합니다

◆프롭퍼티에 대해

장비품계 클래스의 프롭퍼티
CASE "이름"
	이름, 그 의상의 명칭(STR)
	의상 카테고리내에서 중복 시킬 수 없다
	CALLF MAKE_STR(V_NAME, "안경")
CASE "장비부위"
	그 의상을 장비 하는 EQUIP(STR)
	CALLF MAKE_STR(V_NAME, "「액세서리」")
CASE "갈아입히기 가능"
	팬티 한정, 갈아입히기 커맨드로 설정할 수 있을지 어떨지
	비키니 보텀, 마이크로 보텀 한정
	CALLF MAKE_INT(V_NAME, 1)
	만들었지만 수동 갈아입히기 기능이 되어 있지 않기 때문에사실 미실장이다
CASE "입다"
	오늘의팬티에서의 판정용(INT, 라고 할까 진위치1/0)
	이 항목을 만들지 않는 팬티는 캐릭터가 자발적으로 신을 것은 없다

의상세트클래스의 프롭퍼티
CASE "이름"
	이름, 그 의상세트의 명칭(STR)
	의상세트클래스내에서 중복 시킬 수 없다
CASE "각종 장비부위"
	그 장비부위에 덮어 씌우는 의상의 내용(INT)
	항목을 만들지 않았던 부위는 0으로 간주해지고 아무것도 착용하지 않는다
CASE "기본 의상세트"
CASE "파자마 세트"
CASE "코스프레 의상세트"
CASE "캐릭터 특수 의상세트"
	이것들은 모두 의상세트의 종류를 나타낸다(INT)
	―, 현상으로 그것 같게 했을 뿐입니다
	1으로 하면(자) 그 속성의 의상세트라고 보인다
	리스트 표시용의 설정입니다

캐릭터데이터클래스의 프롭퍼티
CASE "통칭"
	필수, STR
	통칭, 그 캐릭터의 명칭
	캐릭터데이터클래스내에서 중복 시킬 수 없다
CASE "오늘의 파자마"
	필수, STR
	착용하는 파자마의 종류를 기술한다
	파자마의 종류의 판정으로서는
	1. 우선, 예외를 처리한다(코이시를 참조)
	"판이치"를 지정했을 경우, 파자마는 착용하지 않고 속옷만을 착용한다
	"전라"를 지정했을 경우, 옷은 굳이 입지 않는
	2. 다음에, STR를 기초로 의상세트를 참조한다
	일치하는 의상세트가 존재하는 경우는 그 의상세트를 착용한다
	와이셔츠만이라든지도 가능(팬티의 유무는 별개로 지정)
	3. 마지막으로, STR를 기초로 캐릭터데이터를 참조한다
	STR == "평상복"이라면 그 캐릭터의 평상복이 참조된다

CASE "평상복：각종 장비부위"
	필수, INT
	평상복의 의상 설정
	그 장비부위에 덮어 씌우는 의상의 내용
	항목을 만들지 않았던 부위는 0으로 간주해지고 아무것도 착용하지 않는다
	「평상복」이외의의상의 캐릭터별 지정도 가능
	예)"섣달그믐：각종 장비부위"에서 섣달그믐 용의 의상세트를 작성할 수 있다
	다만, 이 경우는"오늘의 의상", "내일의 의상"을 설정할 필요가 있다
CASE "오늘의 의상", "내일의 의상"
	생략가능, STR
	평상복 이외의의상을 설정하지 않는 경우에는 필요없다
	특정 조건에 맞추어 의상을 변경시키고 싶을 때에 사용한다
	SIF (DAY:2 == 1 && DAY:3 == 1) || (DAY:2 == 4 && DAY:3 == 31)
		CALLF MAKE_STR(V_NAME, "섣달그믐")
	이와 같이 기술하면(자) 조건에 합치할 때에 「섣달그믐」의 의상을 착용한다(앨리스의 처리를 참조)

	"오늘의 의상", "내일의 의상"의 무엇이 다른가 하면(자)
	의상의 갱신 처리는 MASTER가 기상했을 때에 실시하므로
	그 시점에서 수면중(=파자마 모습)이라면 내일의 의상을 설정해
	그 시점에서 활동중이라면 현재 착용중의 평상복을 설정하게 된다

	주) 기능 추가
	STR로 의상세트에 존재하는 이름을 돌려주었을 때에는 그 의상을 세트 하는 기능을 추가

	의상 지정용의 캐릭터라인으로서"추천", "고정"은 사용 불가능(다른 기능으로 사용중)

CASE "추천：각종 장비부위", "고정：각종 장비부위"
	보고 실상
	하려고 생각하면 할 수 있는, 만들까 헤매고 있다

	생략가능, INT
	캐릭터마다의 「이것은 제외하면 안 돼이겠지」라고 말하는 장비용의 처리
	지정한 부위의 장비를 추천·강요한다
	Emuera의 config에 있어서의 default/fix같은 것
	이 정보는 갈아입히기 관련 처리의 마지막에 적용된다
	례) 카센
	·올림머리망는 「추천」
	·붕대와 구속도구는 「고정」
	추천을 지정했을 경우, 그 부위에 장비 하고 있는 것이 아무것도 없으면 장비를 실시한다
	고정을 지정했을 경우, 그 부위의 장비를 덧쓰기한다
	알몸이 될 때는
	EQUIP:0 = 0한 다음 고정 장비만 착용한다
[SKIPEND]

;EQUIP:X:ARG에 장비 했다
;ARG:1의 의상의 이름을 돌려준다
@CLOTHNAME(ARG, ARG:1)
#FUNCTIONS
RETURNF GET_STR(, CLOTHES_PARTS_TO_CATEGORY(EQUIPNAME:(ARG:0)), ARG:1, "이름")

;장비부위로부터 해당하는 의상 카테고리를 돌려준다
@CLOTHES_PARTS_TO_CATEGORY(ARGS)
#FUNCTIONS
SELECTCASE ARGS
[SKIPSTART]
;의상의 통합화
;도중까지 생각했지만 째응 물러나는이라고 그만두었다
CASE "하반신속옷2"
	RETURNF "팬티"
CASE "기모노", "레오타드", "보디슈트", "원피스"
	RETURNF "전신 의상"
CASE "모자", "외투", "완부의복", "상반신윗도리1", "상반신윗도리2", "상반신속옷1", "상반신속옷2"
	RETURNF "상반신의상"
CASE "치마", "바지", "신발", "양말", "하반신속옷1"
	RETURNF "하반신의상"
CASE "액세서리", "그외1", "그외2", "그외3"
	RETURNF "그외의상"
[SKIPEND]

CASE "액세서리", "신발", "양말", "레오타드", "보디슈트", "바지", "치마", "원피스", "기모노", "외투", "완부의복"
	RETURNF ARGS
CASE "모자"
	RETURNF "머리장비"
CASE "하반신속옷1"
	RETURNF "하반신속옷_비켜놓기불가"
CASE "하반신속옷2"
	RETURNF "하반신속옷_비켜놓기가능"
CASE "상반신속옷1"
	RETURNF "상반신속옷_탈의불가"
CASE "상반신속옷2"
	RETURNF "상반신속옷_탈의가능"
CASE "상반신윗도리1"
	RETURNF "상반신윗도리_탈의불가"
CASE "상반신윗도리2"
	RETURNF "상반신윗도리_탈의가능"
CASE "그외1", "그외2", "그외3"
	RETURNF "그외의상"
ENDSELECT
THROW 불명한 부위 %ARGS%

;장비부위와 의상명으로부터 각 의상의 카테고리내 ID를 돌려준다
@CLOTHES_ID(PARTS, C_NAME)
#FUNCTION
#DIMS PARTS
#DIMS C_NAME
#DIM  C_ID
C_ID = OBJNAME_TO_ID(, "GET", CLOTHES_PARTS_TO_CATEGORY(PARTS), C_NAME)
SIF C_ID == -1
	THROW %C_NAME%는 %CLOTHES_PARTS_TO_CATEGORY(PARTS)%에는 존재하지 않습니다
RETURNF C_ID

;-------------------------------------------------
;함수명 :SHOW_BOTTOM
;개요:하반신복장 나토리 이득 함수
;반환값:복장명(캐릭터라인)
;인수:0 참조하는 캐릭터 번호
;인수:1치마, 2비켜놓기 가능, 3비켜놓기 불가, 4 하반신윗도리비켜놓기 불가의 종별(생략 했을 경우는 가장 노출을 방해하고 있는 것)
;비고:문중 함수
;TEQUIP:0에 대응해 맨 위에 입고 있는 의상의 종류를 돌려준다
;
;인수:1에 복수의 비트를 지정하면 그 중에서 우선되는 것을 표시시킬 수가 있다
;인수:1가 9라면 치마라고 하반신윗도리비켜놓기 불가의 어느 쪽인지 입고 있는 것을 표시, 등
;COUNTER_MESSAGE.ERB내의@DATUI_MESSAGE가 사용예가 되고 있기 때문에 뾰족하게(팍하고) 오지 않는 사람은 봐야만 해
;-------------------------------------------------
@SHOW_BOTTOM(ARG, ARG:1)
#FUNCTIONS
#DIMS CONST TYPE, 5 = "", "치마", "비켜 놓기 가능", "비켜 놓기 불가", "하반신윗도리비켜놓기 불가"
#DIMS PARTS
#DIM EQUIP_TARGET

;인수 1으로 TEQUIP:0을 대조해 표시하는 것을 선택한다
IF ARG:1
	EQUIP_TARGET = ARG:1 & TEQUIP:ARG:0
ELSE
	EQUIP_TARGET = TEQUIP:ARG:0
ENDIF

IF EQUIP_TARGET & 8
	LOCAL = 4
	;4하반신복장 묘사_하반신윗도리비켜놓기 불가
ELSEIF EQUIP_TARGET & 4
	;3하반신복장 묘사_비켜 놓기 불가
	LOCAL = 3
ELSEIF EQUIP_TARGET & 2
	;2하반신복장 묘사_비켜 놓기 가능
	LOCAL = 2
ELSEIF EQUIP_TARGET & 1
	;1하반신복장 묘사_치마
	LOCAL = 1
ELSE
	LOCAL = 0
ENDIF
PARTS '= COVER_CLOTHES(ARG, @"하반신복장 묘사 _%TYPE:LOCAL%")
SIF STRLENS(PARTS)
	RETURNF GET_STR(ARG, CLOTHES_PARTS_TO_CATEGORY(PARTS), EQUIP:ARG:PARTS, "이름")

;-------------------------------------------------
;함수명:SHOW_하반신속옷
;개요:하반신속옷나토리 이득 함수
;반환값:속옷명(캐릭터라인)
;인수:0 참조하는 캐릭터 번호
;인수:1치마, 2비켜놓기 가능, 3비켜놓기 불가, 4 하반신윗도리비켜놓기 불가의 종별(생략 했을 경우는 가장 노출을 방해하고 있는 것)
;비고:문중 함수
;TEQUIP:0에 대응해 맨 위에 입고 있는 의상의 종류를 돌려준다
;
;인수:1에 복수의 비트를 지정하면 그 중에서 우선되는 것을 표시시킬 수가 있다
;인수:1가 9라면 치마라고 하반신윗도리비켜놓기 불가의 어느 쪽인지 입고 있는 것을 표시, 등
;COUNTER_MESSAGE.ERB내의@DATUI_MESSAGE가 사용예가 되고 있기 때문에 뾰족하게(팍하고) 오지 않는 사람은 봐야만 해
;-------------------------------------------------
@SHOW_하반신속옷(ARG, ARG:1)
#FUNCTIONS
#DIMS CONST TYPE, 5 = "", "치마", "비켜 놓기 가능", "비켜 놓기 불가", "하반신윗도리비켜놓기 불가"
#DIMS PARTS
#DIM EQUIP_TARGET

;인수 1으로 TEQUIP:0을 대조해 표시하는 것을 선택한다
IF ARG:1
	EQUIP_TARGET = ARG:1 & TEQUIP:ARG:0
ELSE
	EQUIP_TARGET = TEQUIP:ARG:0
ENDIF

IF EQUIP_TARGET & 8
	LOCAL = 4
	;4하반신복장 묘사_하반신윗도리비켜놓기 불가
ELSEIF EQUIP_TARGET & 4
	;3하반신복장 묘사_비켜 놓기 불가
	LOCAL = 3
ELSEIF EQUIP_TARGET & 2
	;2하반신복장 묘사_비켜 놓기 가능
	LOCAL = 2
ELSEIF EQUIP_TARGET & 1
	;1하반신복장 묘사_치마
	LOCAL = 1
ELSE
	LOCAL = 0
ENDIF
PARTS '= COVER_CLOTHES(ARG, @"하반신속옷묘사 _%TYPE:LOCAL%")
SIF STRLENS(PARTS)
	RETURNF GET_STR(ARG, CLOTHES_PARTS_TO_CATEGORY(PARTS), EQUIP:ARG:PARTS, "이름")

;-------------------------------------------------
;함수명 :SHOW_TOP
;개요:상반신복장 나토리 이득 함수
;반환값:복장명(캐릭터라인)
;인수:0 참조하는 캐릭터 번호
;인수:1탈의 가능, 2탈의 불가(생략 했을 경우는 가장 노출을 방해하고 있는 것)
;비고:문중 함수
;TEQUIP:1에 대응해 맨 위에 입고 있는 의상의 종류를 돌려준다
;-------------------------------------------------
@SHOW_TOP(ARG, ARG:1)
#FUNCTIONS
#DIMS CONST TYPE, 3 = "", "탈의 가능", "탈의 불가"
#DIMS PARTS
IF ARG:1
	LOCAL = ARG:1
ELSEIF TEQUIP:ARG:1 & 2
	LOCAL = 2
ELSEIF TEQUIP:ARG:1 & 1
	LOCAL = 1
ENDIF
PARTS '= COVER_CLOTHES(ARG, @"상반신복장 묘사 _%TYPE:LOCAL%")
SIF STRLENS(PARTS)
	RETURNF GET_STR(ARG, CLOTHES_PARTS_TO_CATEGORY(PARTS), EQUIP:ARG:PARTS, "이름")

;-------------------------------------------------
;함수명:SHOW_상반신속옷
;개요:상반신속옷나토리 이득 함수
;반환값:상반신속옷명(캐릭터라인)
;인수:0 참조하는 캐릭터 번호
;인수:1탈의 가능, 2탈의 불가(생략 했을 경우는 가장 노출을 방해하고 있는 것)
;비고:문중 함수
;TEQUIP:1에 대응해 맨 위에 입고 있는 의상의 종류를 돌려준다
;-------------------------------------------------
@SHOW_상반신속옷(ARG, ARG:1)
#FUNCTIONS
#DIMS CONST TYPE, 3 = "", "탈의 가능", "탈의 불가"
#DIMS PARTS
LOCAL = 0
IF ARG:1
	LOCAL = ARG:1
ELSEIF TEQUIP:ARG:1 & 2
	LOCAL = 2
ELSEIF TEQUIP:ARG:1 & 1
	LOCAL = 1
ENDIF
PARTS '= COVER_CLOTHES(ARG, @"상반신속옷묘사 _%TYPE:LOCAL%")
SIF STRLENS(PARTS)
	RETURNF GET_STR(ARG, CLOTHES_PARTS_TO_CATEGORY(PARTS), EQUIP:ARG:PARTS, "이름")

;가장 노출을 방해하고 있는 의상의 장비부위를 돌려준다
;@SHOW_장비계의 판정이 번거로왔기 때문에 간략화용으로
@COVER_CLOTHES(ARG, TYPE)
#FUNCTIONS
#DIMS TYPE
SELECTCASE TYPE
CASE "상반신복장 묘사_탈의 불가"
	SIF EQUIP:ARG:상반신윗도리1
		RETURNF "상반신윗도리1"
	SIF EQUIP:ARG:원피스
		RETURNF "원피스"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	SIF EQUIP:ARG:상반신속옷1
		RETURNF "상반신속옷1"
	RETURNF
CASE "상반신복장 묘사_탈의 가능"
	SIF EQUIP:ARG:상반신윗도리2
		RETURNF "상반신윗도리2"
	SIF EQUIP:ARG:기모노
		RETURNF "기모노"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	SIF EQUIP:ARG:상반신속옷2
		RETURNF "상반신속옷2"
	RETURNF

CASE "상반신속옷묘사_탈의 불가"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	SIF EQUIP:ARG:상반신속옷1
		RETURNF "상반신속옷1"
	RETURNF
CASE "상반신속옷묘사_탈의 가능"
	SIF EQUIP:ARG:상반신속옷2
		RETURNF "상반신속옷2"
	RETURNF

CASE "하반신속옷묘사_하반신윗도리비켜놓기 불가"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
CASE "하반신속옷묘사_비켜 놓기 불가"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	SIF EQUIP:ARG:하반신속옷1
		RETURNF "하반신속옷1"
CASE "하반신속옷묘사_비켜 놓기 가능"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:하반신속옷2
		RETURNF "하반신속옷2"
CASE "하반신속옷묘사_치마"
	SIF EQUIP:ARG:치마
		RETURNF "치마"
	SIF EQUIP:ARG:기모노
		RETURNF "기모노"
	RETURNF

CASE "하반신복장 묘사_하반신윗도리비켜놓기 불가"
	SIF EQUIP:ARG:바지
		RETURNF "바지"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	RETURNF
CASE "하반신복장 묘사_비켜 놓기 불가"
	SIF EQUIP:ARG:바지
		RETURNF "바지"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:보디슈트
		RETURNF "보디슈트"
	SIF EQUIP:ARG:하반신속옷1
		RETURNF "하반신속옷1"
	SIF EQUIP:ARG:하반신속옷2
		RETURNF "하반신속옷2"
	RETURNF
CASE "하반신복장 묘사_비켜 놓기 가능"
	SIF EQUIP:ARG:레오타드
		RETURNF "레오타드"
	SIF EQUIP:ARG:하반신윗도리
		RETURNF "하반신윗도리"
	SIF EQUIP:ARG:하반신속옷2
		RETURNF "하반신속옷2"
	RETURNF
CASE "하반신복장 묘사_치마"
	SIF EQUIP:ARG:치마
		RETURNF "치마"
	SIF EQUIP:ARG:기모노
		RETURNF "기모노"
	SIF EQUIP:ARG:원피스
		RETURNF "원피스"
	RETURNF
ENDSELECT

;전캐릭터의 의상을 Default에 되돌린다
@RESET_ALL_CLOTHES
FOR LOCAL, 0, CHARANUM
	CFLAG:LOCAL:7 = 0
	CALL SELECT_CLOTHES(LOCAL, "오늘의 의상")
	CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
NEXT

;EQUIP로부터 TEQUIP에 변환
;이 타이밍에 화탈와 전라 체크
@CLOTHES_SETTING_TRAIN(ARG)
TEQUIP:ARG:0 = 0
TEQUIP:ARG:1 = 0

;솔직히 여기의 처리는 적당
IF INROOM(CFLAG:ARG:현재위치)
	SIF EQUIP:ARG:액세서리 == 6
		EQUIP:ARG:액세서리 = 0
	SIF INROOM(CFLAG:ARG:현재위치) == 1
		EQUIP:ARG:신발= 0
ELSE
	IF CFLAG:ARG:203
		EQUIP:ARG:신발= CFLAG:ARG:203
	ELSEIF CFLAG:ARG:603
		EQUIP:ARG:신발= CFLAG:ARG:603
	ENDIF
	IF !EQUIP:ARG:액세서리 && CFLAG:ARG:201 == 6 && !FLAG:시간정지
		EQUIP:ARG:액세서리 = CFLAG:ARG:201
	ELSEIF !EQUIP:ARG:액세서리 && CFLAG:ARG:601 == 6 && !FLAG:시간정지
		EQUIP:ARG:액세서리 = CFLAG:ARG:601
	ENDIF
ENDIF

IF CHECK_CHARA(ARG, "전라")
	EQUIP:ARG:0 = 0
ELSE
	EQUIP:ARG:0 = 1
ENDIF

;갈아입히기가 유효하지 않다
SIF !EQUIP:ARG:0
	RETURN 0
;하반신
;TEQUIP:0 하반신착의상황(비트0=치마1=비켜 놓기 가능 2=비켜 놓기 불가 3=비켜 놓을 수 없는 하반신윗도리)
;	(비트를 사용하고 싶지 않은 인용 0=이루어 1=노팬티 치마2=팬티 마셔 3=치마+팬티
;	4=스패츠(속옷) 혹은 노팬티 바지5=치마+스패츠 6=바지+팬티 7=풀 장비(이 바리안트에서는 무리))
;EQUIP:5, 6 하반신속옷
SIF EQUIP:ARG:하반신속옷1
	TEQUIP:ARG:0 |= 4
SIF EQUIP:ARG:하반신속옷2
	TEQUIP:ARG:0 |= 2
;EQUIP:7~9 하반신윗도리
IF EQUIP:ARG:바지
	TEQUIP:ARG:0 |= 4
	TEQUIP:ARG:0 |= 8
ENDIF
SIF EQUIP:ARG:하반신윗도리
	TEQUIP:ARG:0 |= 2
SIF EQUIP:ARG:치마
	TEQUIP:ARG:0 |= 1
;EQUIP:14~16 전신 윗도리
IF EQUIP:ARG:보디슈트
	TEQUIP:ARG:0 |= 4
	TEQUIP:ARG:0 |= 8
	TEQUIP:ARG:0 |= 16
ENDIF
SIF EQUIP:ARG:원피스
	TEQUIP:ARG:0 |= 1
SIF EQUIP:ARG:기모노
	TEQUIP:ARG:0 |= 1
IF EQUIP:ARG:레오타드
	TEQUIP:ARG:0 |= 2
	TEQUIP:ARG:0 |= 16
ENDIF
;상반신
;TEQUIP:1 상반신착의상황(0=없음 1=탈의 가능 2=탈의 불가 3=공격 불가)
;	(비트를 사용하고 싶지 않은 인용 0=없음 1=노브라 일본식 옷 2=브라만 3=일본식 옷+브라)
;EQUIP:10, 11 상반신속옷
IF EQUIP:ARG:상반신속옷1
	TEQUIP:ARG:1 |= 2
	TEQUIP:ARG:1 |= 4
ENDIF
SIF EQUIP:ARG:상반신속옷2
	TEQUIP:ARG:1 |= 1
;EQUIP:12, 13 상반신윗도리
IF EQUIP:ARG:상반신윗도리1
	TEQUIP:ARG:1 |= 2
	TEQUIP:ARG:1 |= 4
ENDIF
SIF EQUIP:ARG:상반신윗도리2
	TEQUIP:ARG:1 |= 1
;EQUIP:14~16 전신 윗도리
IF EQUIP:ARG:보디슈트
	TEQUIP:ARG:1 |= 2
	TEQUIP:ARG:1 |= 4
ENDIF
SIF EQUIP:ARG:원피스
	TEQUIP:ARG:1 |= 2
SIF EQUIP:ARG:기모노
	TEQUIP:ARG:1 |= 1
IF EQUIP:ARG:레오타드
	TEQUIP:ARG:1 |= 2
	TEQUIP:ARG:1 |= 4
ENDIF

;비켜 놓기 처리
SIF TEQUIP:ARG:상반신탈의상태
	CLEARBIT TEQUIP:ARG:1, 2
SIF TEQUIP:ARG:4
	CLEARBIT TEQUIP:ARG:1, 1

;특수 의상에의 일시 갈아입히기
;우선 의상세트에 있는 녀석·혹은 타캐릭터의 평상복만
;갈아입으면(자) RESULT==1
@EX_COSTUME(C_ID, TYPE)
#DIM  C_ID
#DIM  EX_COS
#DIMS TYPE
EX_COS = GET_INT(C_ID, "캐릭터데이터", NO:C_ID, @"%TYPE%의상")
;#; PRINTFORML {C_ID}특수 의상 변경 %TYPE% {EX_COS}
SIF !EX_COS
	RETURN
CALL OKIGAE(C_ID, EX_COS)
;#; CALL SHOW_CLOTHES(C_ID, "현재의 의상")
RETURN 1

;한때 갈아 입을 옷 함수
@OKIGAE(C_ID, COS_ID, COS_TYPE)
#DIM C_ID      ;갈아입히기를 실시하는 캐릭터
#DIM COS_ID    ;의상세트의 ID, 101이상이라면 캐릭터 의상이라고 보인다(캐릭터 의상을 지정하고 싶을 때는 NO + 100으로 하는 것)
#DIMS COS_TYPE ;참조 의상 캐릭터라인, 캐릭터데이터에 기재가 있는 것이 전제이므로, 미실장이라면 완전 알몸이 된다
TCVAR:C_ID:본래의복장 = CFLAG:C_ID:기본복장세트
CFLAG:C_ID:기본복장세트 = COS_ID

IF STRLENS(COS_TYPE)
;캐릭터라인 지정으로 평상복 이외도 지정할 수 있도록(듯이)
	;#; PRINTFORML {COS_ID}특수 의상 변경 %COS_TYPE%
	CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_캐릭터 의상", COS_ID, COS_TYPE)
	CALL CLOTHES_SETTING_TRAIN(C_ID)
	RETURN
ENDIF

SELECTCASE COS_ID
CASE 100
	CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_걸러서 필요해")
CASE 1 TO 99
	CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_의상세트", COS_ID)
CASE 101 TO 100 + 캐릭터수상한
	CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_캐릭터 의상", COS_ID - 100, "평상복")
CASEELSE
	THROW 부정한 의상 ID {COS_ID}
ENDSELECT
CALL CHANGE_CLOTHES(C_ID, "의상 리셋")
CALL CLOTHES_SETTING_TRAIN(C_ID)

@SET_UNDERWEAR(C_ID, TIME_TYPE)
#DIM  C_ID
#DIMS TIME_TYPE
CALL SET_PANTS(C_ID, TIME_TYPE)
CALL SET_BRA(C_ID, TIME_TYPE)

;팬티 세팅 함수
;CFLAG로 설정된 의상을 덧쓰기한다
;팬티 지정이 있는 경우에는 하반신속옷1을 해제해
;하반신속옷1이 지정되고 있는 경우에는 팬티보다 그것을 우선한다
@SET_PANTS(C_ID, TIME_TYPE)
#DIM  C_ID
#DIMS TIME_TYPE
#DIM  P_ID
IF TIME_TYPE == "오늘의 파자마"
	IF CFLAG:C_ID:지정팬티 == 100
		P_ID =  0
		CFLAG:C_ID:245 = 0
	ELSEIF CFLAG:C_ID:지정팬티
		P_ID = CFLAG:C_ID:지정팬티
		CFLAG:C_ID:245 = 0
	ELSEIF CFLAG:C_ID:245
		CFLAG:C_ID:246 = 0
		RETURN
	ELSEIF CFLAG:C_ID:246
		CFLAG:C_ID:245 = 0
		CFLAG:C_ID:파자마팬티 = CFLAG:C_ID:246
		RETURN
	ELSEIF !GETBIT(TALENT:C_ID:2, 0)
		P_ID = CLOTHES_ID("하반신속옷2", "트렁크스")
	ELSEIF !CFLAG:C_ID:245
		P_ID = 오늘의팬티(C_ID)
	ENDIF
	;PRINTFORMW %CALLNAME:C_ID%방해 팬티：%GET_STR(C_ID, "하반신속옷_비켜놓기가능", P_ID, "이름")%
	CFLAG:C_ID:파자마팬티 = P_ID
	CFLAG:C_ID:246 = P_ID
	RETURN
ENDIF

IF CFLAG:C_ID:지정팬티 == 100
;노팬티 지정
	P_ID =  0
	CFLAG:C_ID:205 = 0
ELSEIF CFLAG:C_ID:지정팬티
;지정팬티가 있다면 하반신속옷1을 벗긴다
	CFLAG:C_ID:205 = 0
	P_ID = CFLAG:C_ID:지정팬티
ELSEIF CFLAG:C_ID:205
;하반신속옷1이 지정이라면 팬티는 없음
	CFLAG:C_ID:206 = 0
	RETURN
ELSEIF CFLAG:C_ID:206
;하반신속옷2가 지정이라면 팬티 추첨은 없음
	CFLAG:C_ID:205 = 0
	CFLAG:C_ID:오늘팬티 = CFLAG:C_ID:206
	RETURN
ELSEIF !GETBIT(TALENT:C_ID:2, 0)
;남자라면 우선 트렁크스로
	P_ID = CLOTHES_ID("하반신속옷2", "트렁크스")
ELSEIF !CFLAG:C_ID:205
;상기 이외로 팬티 추첨
	P_ID = 오늘의팬티(C_ID)
ENDIF
CFLAG:C_ID:오늘팬티 = P_ID
CFLAG:C_ID:206 = P_ID

@SET_BRA(C_ID, TIME_TYPE)
#DIM  C_ID
#DIMS TIME_TYPE
#DIM  DYNAMIC B_ID
IF TIME_TYPE == "오늘의 파자마"
	IF CFLAG:C_ID:247
		CFLAG:C_ID:248 = 0
		B_ID = CFLAG:C_ID:247
	ELSEIF CFLAG:C_ID:248
	ELSEIF !GETBIT(TALENT:C_ID:2, 0)
		B_ID = CLOTHES_ID("상반신속옷1", "T셔츠")
	ELSE
		B_ID = 오늘의브래지어(C_ID, CFLAG:C_ID:파자마팬티)
	ENDIF
	CFLAG:C_ID:파자마브라 = B_ID
	CFLAG:C_ID:247 = B_ID
	RETURN
ENDIF

IF CFLAG:C_ID:207
	CFLAG:C_ID:208 = 0
	B_ID = CFLAG:C_ID:207
ELSEIF CFLAG:C_ID:208
ELSEIF !GETBIT(TALENT:C_ID:2, 0)
	B_ID = CLOTHES_ID("상반신속옷1", "T셔츠")
ELSE
	B_ID = 오늘의브래지어(C_ID, CFLAG:C_ID:오늘팬티)
ENDIF
CFLAG:C_ID:오늘브라 = B_ID
CFLAG:C_ID:207 = B_ID

;오늘의 의상 결정 함수
;반드시 의상→파자마로 세트로 사용하는 것
@SELECT_CLOTHES(C_ID, TIME_TYPE)
#DIM  C_ID
#DIMS TIME_TYPE
#DIM  의상C_ID
#DIMS 의상TYPE

VARSET 의상C_ID
VARSET 의상TYPE
;먼저 파자마의 설정
IF TIME_TYPE == "오늘의 파자마"
	SELECTCASE CFLAG:C_ID:파자마지정
	CASE 300
	;개별 설정
		CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_거름필요한의상")
		CALL SET_UNDERWEAR(C_ID, TIME_TYPE)
		RETURN
	CASE 301
	;판이치
		의상TYPE '= "판이치"
	CASE 302
	;전라
		의상TYPE '= "전라"
	CASE 1 TO 99
	;의상세트의 지정
		의상TYPE '= GET_STR(C_ID, "의상세트", CFLAG:C_ID:파자마지정, "이름")
	CASE 0
	;Default 의상에 의한 설정
		IF !(C_ID == MASTER)
			의상C_ID = NO:C_ID
			의상TYPE '= GET_STR(C_ID, "캐릭터데이터", 의상C_ID, TIME_TYPE)
		ELSEIF FLAG:역극
			의상C_ID = FLAG:역극
			의상TYPE '= GET_STR(C_ID, "캐릭터데이터", 의상C_ID, TIME_TYPE)
		ENDIF
	ENDSELECT
	;미설정이라면 파자마 바지
	SIF !STRLENS(의상TYPE)
		의상TYPE '= "파자마(바지) 세트"
	CALL CHANGE_CLOTHES(C_ID, TIME_TYPE, 의상C_ID, 의상TYPE)
	SIF 의상TYPE == "판이치"
		JUMP SET_PANTS(C_ID, TIME_TYPE)
	SIF !(의상TYPE == "전라")
		CALL SET_UNDERWEAR(C_ID, TIME_TYPE)
	RETURN
ENDIF

;오늘의 의상, 내일의 의상
SELECTCASE CFLAG:C_ID:기본복장세트
CASE 100
;개별 설정
	CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_거름필요한의상")
	CALL SET_UNDERWEAR(C_ID, TIME_TYPE)
CASE 1 TO 99
;의상세트의 지정
	의상TYPE '= GET_STR(C_ID, "의상세트", CFLAG:C_ID:기본복장세트, "이름")
	;만약을 위해
	SIF !STRLENS(의상TYPE)
		GOTO DEFAULT
CASE 101 TO 100 + 캐릭터수상한
;특정 캐릭터의 의상을 참조할 때
	의상C_ID = CFLAG:C_ID:기본복장세트 - 100
	의상TYPE '= "평상복"
	;만약을 위해
	SIF !EXISTCSV(의상C_ID)
		GOTO DEFAULT
CASE 0
;Default 의상에 의한 설정
	$DEFAULT
	IF !(C_ID == MASTER)
		의상C_ID = NO:C_ID
		의상TYPE '= GET_STR(C_ID, "캐릭터데이터", 의상C_ID, TIME_TYPE)
	ELSEIF FLAG:역극
		의상C_ID = FLAG:역극
		의상TYPE '= GET_STR(C_ID, "캐릭터데이터", 의상C_ID, TIME_TYPE)
	ELSEIF GETBIT(TALENT:C_ID:2, 0)
	;그대로응이 있을 때는 여장을 기본으로 한다
		의상TYPE '= "여장 세트"
	ELSE
	;♂(은)는 남장을 기본으로 한다
		의상TYPE '= "남장 세트"
	ENDIF
	;미설정이라면 평상복
	SIF !STRLENS(의상TYPE)
		의상TYPE '= "평상복"
ENDSELECT
CALL CHANGE_CLOTHES(C_ID, TIME_TYPE, 의상C_ID, 의상TYPE)
CALL SET_UNDERWEAR(C_ID, TIME_TYPE)

;의상 갱신 함수
@CHANGE_CLOTHES(C_ID, TYPE, 의상C_ID, 의상TYPE)
#DIM  C_ID
#DIMS TYPE
#DIM  의상C_ID
#DIMS 의상TYPE
#DIM  의상SET_ID
의상SET_ID = 0
SIF STRLENS(의상TYPE)
	의상SET_ID = OBJNAME_TO_ID(C_ID, "GET", "의상세트", 의상TYPE)
SELECTCASE TYPE
CASE "오늘의 파자마"
	SIF 의상TYPE == "판이치"
		JUMP CTRL_CLOTHES_SET(C_ID, "파자마의 변경_판이치", 의상SET_ID)
	SIF 의상TYPE == "전라"
		JUMP CTRL_CLOTHES_SET(C_ID, "파자마의 변경_전라", 의상SET_ID)

	IF 의상SET_ID > 0
		CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_의상세트", 의상SET_ID)
	ELSE
		CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_캐릭터 의상", 의상C_ID, 의상TYPE)
	ENDIF

CASE "오늘의 의상", "내일의 의상"
	IF 의상SET_ID > 0
		CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_의상세트", 의상SET_ID)
	ELSE
		CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_캐릭터 의상", 의상C_ID, 의상TYPE)
	ENDIF
CASE "의상 리셋"
	;#;SIF C_ID == TARGET
	;#;	PRINTFORML TARGET 의상 리셋
	IF 수면시간(C_ID)
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_파자마")
		CFLAG:C_ID:파자마 = 1
	ELSE
		SELECTCASE CFLAG:C_ID:의상일시변경
		CASE 0
			CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_평상복")
		CASE 100
			CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_걸러서 필요해")
		CASE 1 TO 99
			CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_의상세트", CFLAG:C_ID:의상일시변경)
		CASE 101 TO 100 + 캐릭터수상한
			CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_캐릭터 의상", CFLAG:C_ID:의상일시변경 - 100, "평상복")
		ENDSELECT
		CFLAG:C_ID:파자마 = 0
	ENDIF
ENDSELECT

[SKIPSTART]
의상세트의 컨트롤 함수
CFLAG와 EQUIP의 교환을 실시한다
EQUIP:0의 취급으로서는
·@CLOTHES_SETTING_TRAIN의 모두에 갱신 처리를 가르쳤다
·SAVE/LOAD의 범위를 1~22까지 한다(EQUIP:0은 보존되지 않는다)
이것으로 대체로 좋다고 생각한다
[SKIPEND]
@CTRL_CLOTHES_SET(C_ID, TYPE, ARG, ARGS)
#DIM  C_ID
#DIMS TYPE
SELECTCASE TYPE
;리셋용으로 기록한다
CASE "현재 의상의 보존_평상복"
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(200 + LOCAL) = EQUIP:C_ID:LOCAL
	NEXT
CASE "현재 의상의 보존_파자마"
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(240 + LOCAL) = EQUIP:C_ID:LOCAL
	NEXT
CASE "현재 의상의 보존_걸러서 필요해"
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(600 + LOCAL) = EQUIP:C_ID:LOCAL
	NEXT
	CFLAG:ARG:거름필요한의상 = 1

;리셋
CASE "거름필요한의상의 리셋"
	FOR LOCAL, 0, 23
		CFLAG:C_ID:(600 + LOCAL) = 0
	NEXT
	SIF CFLAG:C_ID:기본복장세트 == 100
		CFLAG:C_ID:기본복장세트 = 0
	SIF CFLAG:C_ID:파자마지정 == 300
		CFLAG:C_ID:파자마지정 = 0
	CFLAG:C_ID:거름필요한의상 = 0

;세트 한 의상을 로드
;이 근처에 아앙 갈퀴 로드 처리이며 파자마 플래그는 만지지 않기 때문에 주의군요
CASE "현재 의상의 변경_평상복"
	FOR LOCAL, 1, 23
		EQUIP:C_ID:LOCAL = CFLAG:C_ID:(200 + LOCAL)
	NEXT
	CFLAG:C_ID:의상일시변경 = 0
	CALL CTRL_CLOTHES_SET(C_ID, "속옷 일괄 설정")

CASE "현재 의상의 변경_파자마"
	FOR LOCAL, 1, 23
		EQUIP:C_ID:LOCAL = CFLAG:C_ID:(240 + LOCAL)
	NEXT
	IF CFLAG:C_ID:파자마팬티 == 100
		EQUIP:C_ID:하반신속옷1 = 0
		EQUIP:C_ID:하반신속옷2 = 0
		CFLAG:C_ID:245 = 0
		CFLAG:C_ID:246 = 0
		CFLAG:C_ID:파자마팬티 = 0
		CFLAG:C_ID:노팬티 = 1
	ELSEIF CFLAG:C_ID:노팬티 && CFLAG:C_ID:파자마팬티
		EQUIP:C_ID:하반신속옷1 = 0
		EQUIP:C_ID:하반신속옷2 = CFLAG:C_ID:파자마팬티
		SIF !CFLAG:C_ID:245
			CFLAG:C_ID:246 = CFLAG:C_ID:파자마팬티
		CFLAG:C_ID:파자마팬티 = 0
		CFLAG:C_ID:노팬티 = 0
	ELSEIF CFLAG:C_ID:노팬티 && (EQUIP:C_ID:하반신속옷1 || EQUIP:C_ID:하반신속옷2)
		EQUIP:C_ID:하반신속옷1 = 0
		EQUIP:C_ID:하반신속옷2 = 0
		CFLAG:C_ID:245 = 0
		CFLAG:C_ID:246 = 0
	ENDIF
	CFLAG:C_ID:의상일시변경 = 0

CASE "현재 의상의 변경_걸러서 필요해"
	FOR LOCAL, 1, 23
		EQUIP:C_ID:LOCAL = CFLAG:C_ID:(600 + LOCAL)
	NEXT
	IF CFLAG:C_ID:노팬티
		EQUIP:C_ID:하반신속옷1 = 0
		EQUIP:C_ID:하반신속옷2 = 0
	ELSEIF EQUIP:C_ID:하반신속옷1
		EQUIP:C_ID:하반신속옷2 = 0
	ELSEIF EQUIP:C_ID:하반신속옷2
		EQUIP:C_ID:하반신속옷1 = 0
	ELSEIF CFLAG:C_ID:파자마
		EQUIP:C_ID:하반신속옷2 = CFLAG:C_ID:246
	ELSE
		EQUIP:C_ID:하반신속옷2 = CFLAG:C_ID:206
	ENDIF
	CFLAG:C_ID:의상일시변경 = 100

CASE "현재 의상의 변경_캐릭터 의상"
;ARG로 지정된 캐릭터의 의상을 참조한다
	CFLAG:C_ID:의상일시변경 = 100 + ARG
	FOR LOCAL, 1, 23
		EQUIP:C_ID:LOCAL = GET_INT(C_ID, "캐릭터데이터", ARG, @"%ARGS%：%EQUIPNAME:LOCAL%")
	NEXT
	CALL CTRL_CLOTHES_SET(C_ID, "속옷 일괄 설정")

CASE "현재 의상의 변경_의상세트"
;ARG로 지정된 ID의 의상세트를 참조한다
	CFLAG:C_ID:의상일시변경 = ARG
	FOR LOCAL, 1, 23
		EQUIP:C_ID:LOCAL = GET_INT(C_ID, "의상세트", ARG, EQUIPNAME:LOCAL)
	NEXT
	CALL CTRL_CLOTHES_SET(C_ID, "속옷 일괄 설정")
CASE "속옷 일괄 설정"
	CALL CTRL_CLOTHES_SET(C_ID, "팬티 일괄 설정")
	CALL CTRL_CLOTHES_SET(C_ID, "브라 일괄 설정")
CASE "팬티 일괄 설정"
	IF !CFLAG:C_ID:파자마
		IF CFLAG:C_ID:노팬티
			EQUIP:C_ID:하반신속옷1 = 0
			EQUIP:C_ID:하반신속옷2 = 0
		ELSEIF EQUIP:C_ID:하반신속옷1
			EQUIP:C_ID:하반신속옷2 = 0
		ELSE
			EQUIP:C_ID:하반신속옷2 = CFLAG:C_ID:오늘팬티
		ENDIF
	ELSE
		IF CFLAG:C_ID:노팬티
			EQUIP:C_ID:하반신속옷1 = 0
			EQUIP:C_ID:하반신속옷2 = 0
		ELSEIF EQUIP:C_ID:하반신속옷1
			EQUIP:C_ID:하반신속옷2 = 0
		ELSE
			EQUIP:C_ID:하반신속옷2 = CFLAG:C_ID:246
		ENDIF
	ENDIF
CASE "브라 일괄 설정"
	IF !CFLAG:C_ID:파자마
		EQUIP:C_ID:상반신속옷1 = CFLAG:C_ID:오늘브라
	ELSE
		EQUIP:C_ID:상반신속옷1 = CFLAG:C_ID:247
	ENDIF

;탈의처리
CASE "현재 의상의 변경_전라"
	FOR LOCAL, 1, 23
		SIF LOCAL == 3 && FLAG:시간정지
			CONTINUE
		SIF LOCAL == 4 && EQUIP:C_ID:신발
			CONTINUE
		EQUIP:C_ID:LOCAL = 0
	NEXT

CASE "현재 의상의 변경_속옷 모습"
;이 코드는 기분 나쁘지만 우선 이대로
	FOR LOCAL, 18, 11, -1
		EQUIP:C_ID:LOCAL = 0
	NEXT
	EQUIP:C_ID:모자 = 0
	TEQUIP:C_ID:상반신착의상황 = 2
	TEQUIP:C_ID:윗도리탈의가끝난상태 = 1

CASE "현재 의상의 변경_반라"
	EQUIP:C_ID:상반신속옷1 = 0
	TEQUIP:C_ID:상반신탈의상태 = 1
	SIF EQUIP:C_ID:바지
		EQUIP:C_ID:바지= 0

CASE "평상복의 변경_캐릭터 의상"
;ARG로 지정된 캐릭터의 ARGS로 지정된 의상을 참조한다
	CFLAG:C_ID:기본복장세트 = 100 + ARG
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(200 + LOCAL) = GET_INT(C_ID, "캐릭터데이터", ARG, @"%ARGS%：%EQUIPNAME:LOCAL%")
	NEXT

CASE "평상복의 변경_의상세트"
;ARG로 지정된 ID의 의상세트를 참조한다
	CFLAG:C_ID:기본복장세트 = ARG
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(200 + LOCAL) = GET_INT(C_ID, "의상세트", ARG, EQUIPNAME:LOCAL)
	NEXT
CASE "평상복의 변경_거름필요한의상"
	CFLAG:C_ID:기본복장세트 = 100
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(200 + LOCAL) = CFLAG:C_ID:(600 + LOCAL)
	NEXT

CASE "파자마의 변경_캐릭터 의상"
;ARG로 지정된 캐릭터의 ARGS로 지정된 의상을 참조한다
	CFLAG:C_ID:파자마지정 = 100 + ARG
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(240 + LOCAL) = GET_INT(C_ID, "캐릭터데이터", ARG, @"%ARGS%：%EQUIPNAME:LOCAL%")
	NEXT
CASE "파자마의 변경_의상세트"
	CFLAG:C_ID:파자마지정 = ARG
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(240 + LOCAL) = GET_INT(C_ID, "의상세트", ARG, EQUIPNAME:LOCAL)
	NEXT
CASE "파자마의 변경_거름필요한의상"
	CFLAG:C_ID:파자마지정 = 300
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(240 + LOCAL) = CFLAG:C_ID:(600 + LOCAL)
	NEXT
CASE "파자마의 변경_판이치"
	CFLAG:C_ID:파자마지정 = 301
	FOR LOCAL, 0, 23
		CFLAG:C_ID:(240 + LOCAL) = 0
	NEXT
	CFLAG:C_ID:246 = CFLAG:C_ID:파자마팬티
	SIF CFLAG:C_ID:246 == 100
		CFLAG:C_ID:246 = 0

CASE "파자마의 변경_전라"
	CFLAG:C_ID:파자마지정 = 302
	FOR LOCAL, 0, 23
		CFLAG:C_ID:(240 + LOCAL) = 0
	NEXT
	CFLAG:C_ID:파자마팬티 = 100

CASE "거름필요한의상의 변경_캐릭터 의상"
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(600 + LOCAL) = GET_INT(C_ID, "캐릭터데이터", ARG, @"%ARGS%：%EQUIPNAME:LOCAL%")
	NEXT
	CFLAG:C_ID:거름필요한의상 = 1

CASE "거름필요한의상의 변경_의상세트"
	FOR LOCAL, 1, 23
		CFLAG:C_ID:(600 + LOCAL) = GET_INT(C_ID, "의상세트", ARG, EQUIPNAME:LOCAL)
	NEXT
	CFLAG:C_ID:거름필요한의상 = 1
ENDSELECT

;특정 캐릭터의 의상 설정의 내용을 표시한다
@SHOW_CHARA_CLOTHES(C_ID, PAGE = 0)
#DIM  C_ID
#DIMS CONST 표시의상, 4 = "현재의 의상", "오늘의 의상", "오늘의 파자마", "거름필요한의상"
#DIM  PAGE
PRINTFORML %CALLNAME:C_ID%의%표시의상 :PAGE%
SELECTCASE CFLAG:C_ID:지정팬티
CASE 0
	PRINTFORML 　현재의 팬티 설정：지정 없음
CASE 100
	PRINTFORML 　현재의 팬티 설정：노팬티 지정
CASEELSE
	PRINTFORML 　현재의 팬티 설정：%GET_STR(C_ID, "하반신속옷_비켜놓기가능", CFLAG:C_ID:지정팬티, "이름")%
ENDSELECT
PRINTFORML
CALL SHOW_CLOTHES(C_ID, 표시의상 :PAGE)
PRINTFORML
PRINTBUTTON @"[1] - %표시의상:((PAGE + 4 - 1) % 4), 14%", 1
PRINTFORM
PRINTBUTTON @"[3] - %표시의상:((PAGE + 4 + 1) % 4), 14%", 3
PRINTFORML
PRINTBUTTON "[0] - 돌아오는", 0
DO
	INPUT
	SELECTCASE RESULT
	CASE 0
		RETURN
	CASE 1
		PAGE = (PAGE + 4 - 1) % 4
	CASE 3
		PAGE = (PAGE + 4 + 1) % 4
	CASEELSE
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	RESTART
LOOP 1

;의상계의 표시 함수
@SHOW_CLOTHES(C_ID, TYPE, ID)
#DIM  C_ID
#DIMS TYPE
#DIM  ID
#DIM  장비부위
#DIM  CLOTHES
#DIMS 표시내용
{
#DIMS CONST 표시부정도, 23 = "",
	"모자", "액세서리", "완부의복",
	"외투",
	"상반신윗도리1", "상반신윗도리2",
	"기모노", "원피스",
	"치마", "하반신윗도리", "바지",
	"레오타드", "보디슈트",
	"상반신속옷1", "상반신속옷2",
	"하반신속옷1", "하반신속옷2",
	"그외1", "그외2", "그외3",
	"양말", "신발"
}
{
#DIMS CONST 표시라벨, 23 = "",
	"　장비:머리　　", "　장비:장식　　", "　장비:팔　　　",
	"　장비:외투　　",
	"　장비:웃도리　", "　장비:웃도리　",
	"　장비:기모노　", "　장비:전신옷　",
	"　장비:하의　　", "　장비:하의　　",  "　장비:하의　　",
	"　장비:전신속옷", "　장비:전신속옷",
	"　장비:속옷(상)", "　장비:속옷(상)",
	"　장비:속옷(하)", "　장비:속옷(하)",
	"　장비:부속　　", "　장비:부속　　", "　장비:부속　　",
	"　장비:양말　　", "　장비:신발　　"
}

SELECTCASE TYPE
CASE "현재의 의상"
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%

		;노브라, 노팬티 용무의 예외 처리
		;여기에서
		IF 표시부정도:LOCAL == "상반신속옷1" && TALENT:C_ID:성별 != 2 && EQUIP:C_ID:상반신속옷2 == 0 && EQUIP:C_ID:상반신속옷1 == 0 && EQUIP:C_ID:보디슈트 == 0 && EQUIP:C_ID:레오타드 == 0 && EQUIP:C_ID:0
			IF 상반신속옷표시(C_ID) == 1
				PRINTFORML 　장비:속옷(상)[입지 않았다]
			ELSEIF 하반신속옷표시(C_ID) == 1
				PRINTFORML   장비:속옷(상)[？？？？？ ]
			ENDIF
		ENDIF
		IF 표시부정도:LOCAL == "하반신속옷1" && EQUIP:C_ID:하반신속옷2 == 0 && EQUIP:C_ID:하반신속옷1 == 0 && EQUIP:C_ID:보디슈트 == 0 && EQUIP:C_ID:레오타드 == 0 && EQUIP:C_ID:0
			IF !상반신속옷표시(C_ID) && !하반신속옷표시(C_ID)
				PRINTFORML   장비:속옷　　[？？？？？ ]
				CONTINUE
			ELSEIF !하반신속옷표시(C_ID)
				PRINTFORML   장비:속옷(하)[？？？？？ ]
			ELSE
				PRINTFORML 　장비:속옷(하)[입지 않았다]
			ENDIF
		ENDIF

		SIF !EQUIP:C_ID:장비부위
			CONTINUE
		IF STRLENS(CSTR:C_ID:(50 + 장비부위)) && !CFLAG:C_ID:파자마
			표시내용 '= CSTR:C_ID:(50 + 장비부위)
		;팬티는 전용 처리가 필요
		ELSEIF 표시부정도:LOCAL == "상반신속옷1" && !(C_ID == MASTER) && !상반신속옷표시(C_ID)
			SIF !하반신속옷표시(C_ID)
			 	CONTINUE
			표시내용 '= "？？？？？"
		ELSEIF 표시부정도:LOCAL == "하반신속옷2" && !(C_ID == MASTER) && !하반신속옷표시(C_ID)
			IF !상반신속옷표시(C_ID)
				PRINTFORML   장비:속옷　　[？？？？？ ]
				CONTINUE
			ELSE
				표시내용 '= "？？？？？"
			ENDIF
		ELSE
			IF 표시부정도:LOCAL == "상반신속옷1"
				표시내용 '= BRANAME(EQUIP:C_ID:상반신속옷1, C_ID)
			ELSEIF 표시부정도:LOCAL == "하반신속옷2"
				표시내용 '= PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)
			ELSE
				표시내용 '= CLOTHNAME(장비부위, EQUIP:C_ID:장비부위)
			ENDIF
		ENDIF

		PRINTFORML %표시라벨 :LOCAL%[%표시내용%]
	NEXT

CASE "오늘의 의상", "평상복"
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%
		CLOTHES = CFLAG:C_ID:(200 + 장비부위)
		IF !CLOTHES
			CONTINUE
		ELSE
			표시내용 '= GET_STR(C_ID, CLOTHES_PARTS_TO_CATEGORY(표시부정도:LOCAL), CLOTHES, "이름")
		ENDIF
		PRINTFORML %표시라벨 :LOCAL%：%표시내용%
	NEXT

CASE "오늘의 파자마"
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%
		CLOTHES = CFLAG:C_ID:(240 + 장비부위)
		SIF 표시부정도:LOCAL == "하반신속옷2" && !(C_ID == MASTER)
			CONTINUE
		IF !CLOTHES
			CONTINUE
		ELSE
			표시내용 '= GET_STR(C_ID, CLOTHES_PARTS_TO_CATEGORY(표시부정도:LOCAL), CLOTHES, "이름")
		ENDIF
		PRINTFORML %표시라벨 :LOCAL%：%표시내용%
	NEXT

CASE "거름필요한의상"
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%
		CLOTHES = CFLAG:C_ID:(600 + 장비부위)
		SIF 표시부정도:LOCAL == "하반신속옷2" && !(C_ID == MASTER)
			CONTINUE
		IF !CLOTHES
			CONTINUE
		ELSE
			표시내용 '= GET_STR(C_ID, CLOTHES_PARTS_TO_CATEGORY(표시부정도:LOCAL), CLOTHES, "이름")
		ENDIF
		PRINTFORML %표시라벨 :LOCAL%：%표시내용%
	NEXT

CASE "캐릭터 평상복"
;캐릭터 번호 ID의 평상복의 내용을 표시한다
	IF !EXISTCSV(ID)
		PRINTFORML 존재하지 않는 캐릭터를 참조하고 있습니다
		RETURN
	ENDIF
	PRINTFORML %CALLNAME:ID%의 평상복
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%
		CLOTHES = GET_INT(C_ID, "캐릭터데이터", ID, @"평상복：%표시부정도:(LOCAL)%")
		SIF 표시부정도:LOCAL == "하반신속옷2" && !(C_ID == MASTER)
			CONTINUE
		IF !CLOTHES
			CONTINUE
		ELSE
			표시내용 '= GET_STR(C_ID, CLOTHES_PARTS_TO_CATEGORY(표시부정도:LOCAL), CLOTHES, "이름")
		ENDIF
		PRINTFORML %표시라벨 :LOCAL%：%표시내용%
	NEXT

CASE "의상세트"
;의상세트ID의 내용을 표시한다
	IF GET_STR(C_ID, "의상세트" , ID, "이름") == ""
		PRINTFORML 존재하지 않는 의상을 참조하고 있습니다
		RETURN
	ENDIF
	PRINTFORML %GET_STR(C_ID, "의상세트" , ID, "이름")%
	FOR LOCAL, 1, 23
		;장비부위의 ID취득
		장비부위 = FINDELEMENT(EQUIPNAME, 표시부정도:LOCAL)
		SIF 장비부위 < 0
			THROW 존재하지 않는 장비부위%표시부정도:LOCAL%
		CLOTHES = GET_INT(C_ID, "의상세트", ID, 표시부정도:LOCAL)
		SIF 표시부정도:LOCAL == "하반신속옷2" && !(C_ID == MASTER)
			CONTINUE
		IF !CLOTHES
			CONTINUE
		ELSE
			표시내용 '= GET_STR(C_ID, CLOTHES_PARTS_TO_CATEGORY(표시부정도:LOCAL), CLOTHES, "이름")
		ENDIF
		PRINTFORML %표시라벨 :LOCAL%：%표시내용%
	NEXT
ENDSELECT

@SPECIAL_OUTFIT(CHARA)
#FUNCTION
#DIM CHARA
IF FLAG:패션
	RETURNF FLAG:패션
ENDIF
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "특수 의상 착용")

@UNIQUE_UNDERWARE_TOP(CHARA)
#FUNCTIONS
#DIM CHARA
RETURNF GET_STR(0, "캐릭터데이터", CHARA, "고유 상반신속옷명")

@UNIQUE_UNDERWARE_BOTTOM(CHARA)
#FUNCTIONS
#DIM CHARA
SIF GET_STR(0, "캐릭터데이터", CHARA, "고유 하반신속옷명") == ""
	RETURNF "신품의 팬티"
RETURNF GET_STR(0, "캐릭터데이터", CHARA, "고유 하반신속옷명")

@UNIQUE_UNDERWARE_ADJ(CHARA)
#FUNCTIONS
#DIM CHARA
RETURNF GET_STR(0, "캐릭터데이터", CHARA, "고유 속옷 형용사")

@UNIQUE_UNDERWARE_ABLE(CHARA)
#FUNCTION
#DIM CHARA
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "고유 속옷 착용 조건")

@UNIQUE_UNDERWARE_TRANSPARENCY_FRONT(CHARA)
#FUNCTION
#DIM CHARA
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "고유 속옷 비쳐보이는(앞)")

@UNIQUE_UNDERWARE_TRANSPARENCY_BACK(CHARA)
#FUNCTION
#DIM CHARA
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "고유 속옷 비쳐보이는(뒤)")

@UNIQUE_UNDERWARE_TOP_THICK(CHARA)
#FUNCTION
#DIM CHARA
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "고유 속옷 옷감 두께")

@상반신속옷표시(C_ID)
#FUNCTION
#DIM C_ID

SIF !CFLAG:C_ID:수면 && CFLAG:C_ID:상반신속옷확인
	RETURNF 1
SIF CFLAG:C_ID:수면 && CFLAG:C_ID:파자마상반신속옷확인
	RETURNF 1
RETURNF 0

@하반신속옷표시(C_ID)
#FUNCTION
#DIM C_ID

SIF !CFLAG:C_ID:수면 && CFLAG:C_ID:하반신속옷확인
	RETURNF 1
SIF CFLAG:C_ID:수면 && CFLAG:C_ID:파자마하반신속옷확인
	RETURNF 1
RETURNF 0

@상반신속옷체크(C_ID)
#FUNCTION
#DIM C_ID

IF !CFLAG:C_ID:수면
	CFLAG:C_ID:상반신속옷확인 = 1
ELSE
	CFLAG:C_ID:파자마상반신속옷확인 = 1
ENDIF

@하반신속옷체크(C_ID)
#FUNCTION
#DIM C_ID

IF !CFLAG:C_ID:수면
	CFLAG:C_ID:하반신속옷확인 = 1
ELSE
	CFLAG:C_ID:파자마하반신속옷확인 = 1
ENDIF

@속옷확인리셋(C_ID)
#DIM C_ID

CFLAG:C_ID:상반신속옷확인 = 0
CFLAG:C_ID:하반신속옷확인 = 0
CFLAG:C_ID:파자마상반신속옷확인 = 0
CFLAG:C_ID:파자마하반신속옷확인 = 0

RETURN


code:
;2018/08/30
;이전이라고 사용하지 않게 된 처리, 헷갈리기 때문에 삭제