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 FESTIVAL() == "바니의날"
	RETURNF 55
ELSEIF 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
;이전이라고 사용하지 않게 된 처리, 헷갈리기 때문에 삭제

license: mit


code:
;오늘팬티 처리의 세련
;ARG가 입을 수가 있는 팬티를 추첨한다
;원래의 오늘의팬티 함수라고 처리 상한이 없기 때문에 셔플 한다
;FISHER_YATES_SHAFFLE 사용하려고 하니 F함수 내부에서 CALL 할거야 무리였다이다
@오늘의팬티(ARG)
#FUNCTION
#LOCALSIZE 2
#LOCALSSIZE 1
#DIM TODAYS_PANTS
#DIM RAND_PANTS, MAXPANTS
#DIM P_TABLE

VARSET RAND_PANTS , 0
FOR LOCAL:0 , 0 , MAXPANTS
	RAND_PANTS:(LOCAL:0) = LOCAL:0
NEXT
FOR LOCAL:0 , 0 , MAXPANTS - 1
	LOCAL:1 = RAND(LOCAL:0 , MAXPANTS)
	SWAP RAND_PANTS:(LOCAL:0), RAND_PANTS:(LOCAL:1)
NEXT

FOR P_TABLE, 0, MAXPANTS
	IF GET_INT(ARG, "하반신속옷_비켜놓기가능", RAND_PANTS:P_TABLE, "입다")
		TODAYS_PANTS = RAND_PANTS:P_TABLE
		BREAK
	ELSE
		CONTINUE
	ENDIF
	SIF P_TABLE == MAXPANTS - 1
		THROW %CALLNAME:ARG%의 팬티 추첨에 실패
NEXT
RETURNF TODAYS_PANTS

;호환용
@PANTSNAME(ARG, CHARA)
#FUNCTIONS
#DIM CHARA

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

@PANTS_DESCRIPTION(ARG, CHARA)
#FUNCTIONS
#DIM CHARA
RETURNF GET_STR(CHARA, CLOTHES_PARTS_TO_CATEGORY("하반신속옷2"), ARG, "묘사")

@PANTS_GET(ARG, ARGS)
#DIM 종류
종류 = EQUIP:ARG:하반신속옷2
CALL PANTS_GETTING(ARG, 종류)

CFLAG:ARG:노팬티 = 1
EQUIP:ARG:하반신속옷2 = 0
CALL CLOTHES_SETTING_TRAIN(ARG)

SIF CFLAG:ARG:파자마 == 1
	CFLAG:ARG:파자마팬티 = 0

SIF ARGS == "받는다"
	CFLAG:ARG:노팬티 = 2

@PANTS_GETTING(ARG, 종류)
#DIM 종류
#DIM 스키마보내성공여부
스키마보내성공여부 = 0
PANTS_TEMP:ARG:종류 += 1
IF ITEM:콜렉션의스키마
	IF FLAG:C스키마자동사양
		CALL PANTS_SUKIMA(ARG, 종류)
		스키마보내성공여부 = RESULT
	ELSEIF FLAG:팬티수송 == 0
		PRINTFORML 콜렉션의 스키마를 사용하겠습니까? (남은 수：{ITEM:콜렉션의스키마})
		CALL ASK_YN
		IF !RESULT
			CALL PANTS_SUKIMA(ARG, 종류)
			스키마보내성공여부 = RESULT
		ENDIF
	ENDIF
ENDIF
SIF !스키마보내성공여부
	FLAG:팬티수송 = 1
RETURN 스키마보내성공여부

@PANTS_SUKIMA(ARG, 종류)
#DIM 종류
#DIM 스키마보내성공여부
스키마보내성공여부 = 0
IF PANTS_TEMP:ARG:종류
	CFLAG:ARG:(종류 + 팬티관리) += PANTS_TEMP:ARG:종류
	PANTS_TEMP:ARG:종류 = 0
	PRINTFORMW %마스터는% 콜렉션의 스키마를 열어 %CALLNAME:ARG%의 %PANTSNAME(종류, ARG)%를 던져넣었다
	ITEM:콜렉션의스키마 -= 1
	스키마보내성공여부 = 1
	;스키마 팬티 대응용. KR판에만 있음
	SIF CFLAG:ARG:(종류 + 팬티관리)
		FLAG:700 ++
ENDIF
RETURN 스키마보내성공여부

@SHOW_HAVE_COLLECTION
IF ITEM:콜렉션의스키마 == 0
	CALL DISPLAY_ALL_COLLECTION(1,0)
	PRINTW
ELSE
	PRINTFORMW 콜렉션의 스키마를 사용하겠습니까? (남은 수：{ITEM:콜렉션의스키마})
	DRAWLINE
	CALL DISPLAY_ALL_COLLECTION(1,1)
	DRAWLINE
	PRINTFORML [0] 사용하지 않는다
	INPUT
	LOCAL = RESULT
	CALL PANTS_SUKIMA(LOCAL / 100, LOCAL % 100)
	;팬티수송 대책
	SIF RESULT
		CALL SPEND_HAVE_COLLECTION(LOCAL)
ENDIF

;### 젖어 틈이 날 수 있는 파는 팬티를 입고 있어 판정용 식중함수 ################
;ARG=캐릭터 번호, 돌아가 값 1은 틈이 날 수 있는 파는, 0은 틈이 날 수 있는 없다
;루코토말로부터의 이식
@PANTIES_TRANSPARENCY(ARG)
#FUNCTION

;팬티를 빼앗은 or 받은 or 원래부터 입지 않은 경우는 0
IF CFLAG:ARG:노팬티 || (CFLAG:ARG:205 == 0 && CFLAG:ARG:206 == 0)
	RETURNF 0
;노팬티가 아닌 경우
ELSE
	;지금 현재 팬티를 입고 있는 경우
	IF EQUIP:ARG:하반신속옷1 || EQUIP:ARG:하반신속옷2
		IF EQUIP:ARG:하반신속옷1
			RETURNF GET_INT(ARG, "하반신속옷_비켜놓기불가", EQUIP:ARG:하반신속옷1, "비쳐보이는")
		ELSEIF EQUIP:ARG:하반신속옷2
			RETURNF GET_INT(ARG, "하반신속옷_비켜놓기가능", EQUIP:ARG:하반신속옷2, "비쳐보이는")
		ENDIF
	;지금 현재 입지 않지만 다시 나중에 입는 경우는 그 팬티가 틈이 날 수 있는 파는지 아닌지를 돌려준다
	ELSE
		;하반신속옷1
		IF CFLAG:ARG:205
			RETURNF GET_INT(ARG, "하반신속옷_비켜놓기불가", CFLAG:ARG:205, "비쳐보이는")
		;하반신속옷2
		ELSEIF CFLAG:ARG:206
			RETURNF GET_INT(ARG, "하반신속옷_비켜놓기가능", CFLAG:ARG:206, "비쳐보이는")
		ENDIF
	ENDIF
ENDIF

;해당 없으면 틈이 날 수 없기로 한다
RETURNF 0

@PANTS_ALREADY_COLLECTED(ARG)
#FUNCTION
#DIM 종류
SIF !ARG
	ARG = TARGET
;입고 있는 팬티의 소유 확인
IF EQUIP:ARG:하반신속옷2
	FOR 종류, 0, MAXPANTS
		IF 종류 == EQUIP:ARG:하반신속옷2
			SIF CFLAG:ARG:(종류 + 팬티관리) > 0
				RETURNF 1
		ENDIF
	NEXT
ENDIF
RETURNF 0


code:
;────────────────────────────────────
;조교 종료의 처리
;────────────────────────────────────
@EVENTEND
#LATER
#DIM 변동치
#DIM 만나지않은날짜
#DIM YANUSHI
PRINTL 하루가 끝났습니다
PRINTFORML
;SIF STRLENS(TSTR:1)
;	CALL SELL_VIDEO

;수면 플래그
CALL SET_SLEEP(1, MASTER, 0)

CFLAG:MASTER:286 = 0
CFLAG:MASTER:287 = 0
CFLAG:MASTER:288 = 0
CFLAG:MASTER:289 = 0
CFLAG:MASTER:290 = 0
CFLAG:MASTER:노팬티 = 0

;제비를 파하도록(듯이) 플래그 리셋
CLEARBIT FLAG:999, 1
;あなた懐妊処理
;CALL MasterPregnancy

;질내사정 플래그 리셋
FOR LOCAL, 1, CHARANUM
	CFLAG:LOCAL:286 = 0
	CFLAG:LOCAL:287 = 0
	CFLAG:LOCAL:288 = 0
	CFLAG:LOCAL:289 = 0
	CFLAG:LOCAL:290 = 0
	;발원함에 의한 감도 상승 해제
	SIF GROUPMATCH(TCVAR:LOCAL:발원함보정, 23,31,41,70,80,82,83,101,102,103,104,106)
		TALENT:LOCAL:(TCVAR:LOCAL:발원함보정) -= 1
	;좋아하는체위 결정
	SIF CFLAG:LOCAL:좋아하는체위 > 10
		CFLAG:LOCAL:좋아하는체위 = 0
	FOR COUNT, 1,10
		SIF EXP:LOCAL:(COUNT + 100) > EXP:LOCAL:(CFLAG:LOCAL:좋아하는체위 + 100) + 50
			CFLAG:LOCAL:좋아하는체위 = COUNT
	NEXT
	;팬티 플래그
	CFLAG:LOCAL:노팬티 = 0
	CFLAG:LOCAL:의상일시변경 = 0
	SIF TCVAR:LOCAL:본래의복장
		CFLAG:LOCAL:기본복장세트 = TCVAR:LOCAL:본래의복장
	SELECTCASE ABL:LOCAL:정액중독
		CASE 0
			LOCAL:1 = 5
		CASE 1 TO 3
			LOCAL:1 = 7
		CASE 4 TO 7
			LOCAL:1 = 10
		CASEELSE
			LOCAL:1 = 20
	ENDSELECT
	;기분
	TALENT:LOCAL:기분 = 0
	CALL KIGEN_CHANGE(LOCAL, 10)
	SIF TALENT:MASTER:농후정액
		LOCAL:1 *= 2
	SETCOLOR 0xEE60EE
	IF EX:LOCAL:질내정액 > 200 || EX:LOCAL:애널내정액 > 200
		PRINTFORM %CALLNAME:MASTER%에 충분히 쏟아진 정액으로, %CALLNAME:LOCAL%의
		IF EX:LOCAL:질내정액 > 200 && EX:LOCAL:애널내정액 > 200
			PRINTL 질내와 애널이 뜨겁게 쑤시고 있다…
		ELSEIF EX:LOCAL:질내정액 > 200
			PRINTL 질내가 뜨겁게 쑤시고 있다…
		ELSE
			PRINTL 애널이 뜨겁게 쑤시고 있다…
		ENDIF
		IF EX:LOCAL:질내정액 > 200
			JUEL:LOCAL:굴복 += LOCAL:1 * (ABL:LOCAL:질내사정중독 + 1) * EX:LOCAL:질내정액
			JUEL:LOCAL:욕정 += LOCAL:1 * (ABL:LOCAL:질내사정중독 + 1) * EX:LOCAL:질내정액
		ENDIF
		IF EX:LOCAL:애널내정액 > 200
			JUEL:LOCAL:굴복 += LOCAL:1 * (ABL:LOCAL:항내사정중독 + 1) * EX:LOCAL:애널내정액
			JUEL:LOCAL:욕정 += LOCAL:1 * (ABL:LOCAL:항내사정중독 + 1) * EX:LOCAL:애널내정액
		ENDIF
	ENDIF
	IF (EX:LOCAL:20 + EX:LOCAL:21 + EX:LOCAL:22 + EX:LOCAL:23 + EX:LOCAL:24) > 0
		PRINTFORM %조사처리(CALLNAME:LOCAL,"은")%
		SIF EX:LOCAL:20
			PRINT 클리토리스
		SIF EX:LOCAL:20 && (EX:LOCAL:21 || EX:LOCAL:22 || EX:LOCAL:23 || EX:LOCAL:24)
			PRINT 와
		SIF EX:LOCAL:21
			PRINT 질내
		SIF EX:LOCAL:21 && (EX:LOCAL:22 || EX:LOCAL:23 || EX:LOCAL:24)
			PRINT 와
		SIF EX:LOCAL:22
			PRINT 애널
		SIF EX:LOCAL:22 && (EX:LOCAL:23 || EX:LOCAL:24)
			PRINT 과
		SIF EX:LOCAL:23
			PRINT 가슴
		SIF EX:LOCAL:23 && EX:LOCAL:24
			PRINT 과
		SIF EX:LOCAL:24
			PRINT 입술
		PRINTFORMW 의 쑤심에 괴로워하고 있다…
		CFLAG:LOCAL:욕구불만도 += (EX:LOCAL:20 + EX:LOCAL:21 + EX:LOCAL:22 + EX:LOCAL:23 + EX:LOCAL:24) * 100
	ENDIF
	{
	IF (TALENT:LOCAL:150 || TALENT:LOCAL:151) && !TALENT:LOCAL:초경 && EXP:LOCAL:V절정경험 > MAX(0, 200 - CFLAG:LOCAL:자식보정)
	 && !RAND:(10 - MIN(9, CFLAG:LOCAL:자식보정 / 10 + ABL:LOCAL:질내사정중독)) && EX:LOCAL:질내정액
	 }
		PRINTFORML 어린 몸이 알기에는 너무 이른 쾌락이 %조사처리(CALLNAME:LOCAL,"을")% 「여자」로 바꾸어 간다……
		PRINTFORMW %조사처리(CALLNAME:LOCAL,"은")% 초경을 맞이했다
		PRINTFORMW %조사처리(CALLNAME:LOCAL,"은")% 아이를 임신할 수 있는 몸이 되었다
		TALENT:LOCAL:초경 = 1
	ENDIF
	IF ABL:LOCAL:정액중독 < 3
		IF CFLAG:LOCAL:누계뿌려짐 + CFLAG:LOCAL:누계정음 * 3 +CFLAG:LOCAL:누계질내정액 + CFLAG:LOCAL:누계애널정액 >= 15000 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10
			PRINTFORML 몇 번이나 정액을 쏟아진 %CALLNAME:LOCAL%의 몸은 %CALLNAME:MASTER%의 정액의 맛을 기억해 버렸다…
			PRINTL 향후는 무의식적이어도 스스로 갖고 싶어하게 될 것이다
			PRINTFORMW %CALLNAME:LOCAL%의 정액중독이 3이 되었다
			ABL:LOCAL:정액중독 = 3
		ELSEIF CFLAG:LOCAL:누계뿌려짐 + CFLAG:LOCAL:누계정음 * 3 +CFLAG:LOCAL:누계질내정액 + CFLAG:LOCAL:누계애널정액 >= 7500 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10 && ABL:LOCAL:정액중독 < 2
			PRINTFORML %CALLNAME:LOCAL%의 몸은, 정액에 친숙해 지고 있다…
			PRINTFORMW %CALLNAME:LOCAL%의 정액중독이 2가 되었다
			ABL:LOCAL:정액중독 = 2
		ELSEIF CFLAG:LOCAL:누계뿌려짐 + CFLAG:LOCAL:누계정음 * 3 +CFLAG:LOCAL:누계질내정액 + CFLAG:LOCAL:누계애널정액 >= 3000 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10 && !ABL:LOCAL:정액중독
			PRINTFORML %CALLNAME:LOCAL%의 몸은, 정액의 맛을 알아 버렸다…
			PRINTFORMW %CALLNAME:LOCAL%의 정액중독이 1이 되었다
			ABL:LOCAL:정액중독 = 1
		ENDIF
	ENDIF
	IF CFLAG:LOCAL:누계정음 > 10000 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10 && !TALENT:LOCAL:정애미각
		PRINTFORML 정액을 계속 먹은 %CALLNAME:LOCAL%의 몸은 정액의 맛 자체에서 즐거움을 느끼게 되고 말았다…
		PRINTFORMW %조사처리(CALLNAME:LOCAL,"은")% 【정애미각】을 얻었다
		TALENT:LOCAL:정애미각 = 1
	ENDIF
	IF ABL:LOCAL:정액중독 >= 3
		IF CFLAG:LOCAL:누계질내정액 > 3000 * ABL:LOCAL:질내사정중독 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10 &&  EX:LOCAL:질내정액 > 200 && ABL:LOCAL:질내사정중독 < 3
			PRINTFORMW %CALLNAME:LOCAL%의 핑크색의 점막에 정액이 널리 스며든다…
			PRINTFORMW %CALLNAME:LOCAL%의 질은 \@ ABL:LOCAL:질내사정중독 ? 보다 강하게# \@%CALLNAME:MASTER%의 정액을 바라게 되었다
			ABL:LOCAL:질내사정중독 ++
		ELSEIF CFLAG:LOCAL:누계애널정액 > 3000 * ABL:LOCAL:항내사정중독 * (10 - 2 * TALENT:LOCAL:중독되기쉬움) / 10 && EX:LOCAL:애널내정액 > 200 && ABL:LOCAL:항내사정중독 < 3
			PRINTFORMW %CALLNAME:LOCAL%의 직장에 정액이 널리 스며든다…
			PRINTFORMW %CALLNAME:LOCAL%의 애널은 \@ ABL:LOCAL:항내사정중독 ? 보다 강하게# \@%CALLNAME:MASTER%의 정액을 바라게 되었다
			ABL:LOCAL:항내사정중독 ++
		ENDIF
	ENDIF
	RESETCOLOR
	IF FLAG:임신스위치 == 1
		SIF CFLAG:LOCAL:임신경과일수 == 0 && !FLAG:피임 && !TCVAR:LOCAL:피임약 && TALENT:LOCAL:스침 != 2
			CALL GET_CHILD(LOCAL)
	ELSE
	;
	ENDIF
	CALL 출산경과(LOCAL)
	SIF CFLAG:LOCAL:600
		CFLAG:LOCAL:600 = 0
	IF CFLAG:LOCAL:안면
		만나지않은날짜 = DAY - CFLAG:LOCAL:마지막에만난날
		CALL KOJO_MESSAGE_SEND("EVENT", 31, LOCAL, TCVAR:LOCAL:오늘만났는지 ? 0 # 만나지않은날짜)
	ENDIF
NEXT

IF CFLAG:MASTER:누계정음 > 10000 * (10 - 2 * TALENT:MASTER:중독되기쉬움) / 10 && !TALENT:MASTER:정애미각
	PRINTFORML 정액을 계속 먹은 %CALLNAME:MASTER%의 몸은 정액의 맛 자체에서 즐거움을 느끼게 되고 말았다…
	PRINTFORMW %마스터는% 【정애미각】을 얻었다
	TALENT:MASTER:정애미각 = 1
ENDIF
;自分に자식보정は掛けられないため、暫定で30回分の補正が掛った値で判定する
{
IF (TALENT:PLAYER:150 || TALENT:PLAYER:151) && !TALENT:PLAYER:초경 && EXP:PLAYER:V절정경험 > MAX(0, 200 - 30)
 && !RAND:(10 - MIN(9, 30 / 10 + ABL:PLAYER:질내사정중독)) && EX:PLAYER:질내정액
 }
	PRINTFORML 어린 몸이 알기에는 너무 이른 쾌락이 %조교자를% 「여자」로 바꾸어 간다……
	PRINTFORMW %조교자는% 초경을 맞았다
	PRINTFORMW %조교자는% 아이를 임신할 수 있는 몸이 되었다
	TALENT:PLAYER:초경 = 1
ENDIF

FOR LOCAL, MINROOM(), MAXROOM
	YOGORE:LOCAL += RAND:50
	YANUSHI = PRIVATEROOM:(LOCAL % 100)
	IF YANUSHI && YOGORE:LOCAL > (4000 - ABL:YANUSHI:청소기능 * 500)
		PRINTFORML %CALLNAME:YANUSHI%는 자신의 방을 청소했다
		EXP:YANUSHI:청소경험 ++
		YOGORE:LOCAL /= 4
	ENDIF
	;공공장소 혹은 당신이 들어갈 수 없는 장소에 사적인 방이 아니라면 상한선을 긋는다, 다소 누락이 있지만 대체로 이것으로 커버
	IF ROOMDATA:(LOCAL % 100) & 장소_공공장소 || (!MAP_CAN_MOVE(LOCAL, MASTER) && !YANUSHI)
;		PRINTFORMW 上限アリ：%NAME_FROM_PLACE(LOCAL)%（{LOCAL}）
		YOGORE:LOCAL = MIN(YOGORE:LOCAL, 500)
	ENDIF
NEXT
IF FLAG:가호
	FLAG:가호 = 0
	DRAWLINE
	PRINTFORMW 신의 가호의 효과가 끊어졌다
ENDIF
;(天候パッチ)台風・猛吹雪を除外
IF FLAG:이상기상 >= 1 && FLAG:이상기상 <= 8
	FLAG:이상기상 = 0
	DRAWLINE
	PRINTFORMW 이상기상은 들어갔다
ENDIF
IF FLAG:패션
	FLAG:패션 = 0
	DRAWLINE
	PRINTFORMW 패션게임이 진정되었다
ENDIF
IF GatheringSeason
	GatheringSeason = 0
	PRINTFORMW 계절이 제자리를 찾았다
ENDIF
IF TFLAG:출장청소
	DRAWLINE
	PRINTFORML 부탁해둔 청소 서비스가 왔다
	PRINTFORMW …
	PRINTFORMW ……
	PRINTFORMW %GET_MAPNAME(MAIN_MAP)% 안이 깨끗해졌다!
	FOR LOCAL, MINROOM(), MAXROOM
		YOGORE:LOCAL /= 4
	NEXT
ENDIF
IF FLAG:시장의신 >= 10
	FLAG:시장의신 = 0
	DRAWLINE
	PRINTL 달빛에 빛나던 무지개가 사라져간다……
	PRINTW 기념품 가게의 물건 종류는 원상태로 돌아갔다。
ENDIF

[SKIPSTART]
;의뢰의 기한 마감을 체크
FOR LOCAL, 1,6
	SIF !IRAI_SLOT:LOCAL
		CONTINUE
	SIF IRAI_DEADLINE:LOCAL > DAY
		CONTINUE
	DRAWLINE
	PRINTFORML %CALLNAME:(IRAI_SLOT_TO_CLIENT(LOCAL))%로부터의 의뢰의 기한이 지났다……
	CALL COLORMESSAGE("【의뢰 실패】", C_YELLOW, 2,1)
	CFLAG:(IRAI_CLIENT:LOCAL):의뢰상황 = 4
NEXT
[SKIPEND]

;데일리
;SIF CFLAG:MASTER:현재위치 != OMANEKIBEYA() && CFLAG:MASTER:데이트중 == MAIN_MAP
SIF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치
	CALL DAILYEVENT
;밭의 관리
CALL YASAI

;대본소
CALL BOOKLEND

CALL 주조

CALL MOENY_HENDOU

;罠猟
CALL TRAP_PROGRESS
;虫トラップ
CALL MUSHI_TRAP_PROGRESS

MONEY:1 += MAXBASE:MASTER:TSP - BASE:MASTER:TSP
IF MAXBASE:MASTER:TSP >= 4000&&(MAXBASE:MASTER:TSP - BASE:MASTER:TSP)>MAXBASE:MASTER:TSP/2 ; 첫 IF행 KR판 구잔재 또는 오리지날
	DRAWLINE
	PRINTFORML TSP가 {(MAXBASE:MASTER:TSP - BASE:MASTER:TSP)/100}만큼 올랐다.
	MAXBASE:MASTER:TSP+=(MAXBASE:MASTER:TSP - BASE:MASTER:TSP)/100
ELSEIF MONEY:1 >= 30000 && MAXBASE:MASTER:TSP == 2500
	DRAWLINE
	PRINTFORML 시간정지 능력이 극한 진화했다!
	MAXBASE:MASTER:TSP = 4000
ELSEIF MONEY:1 >= 10000 && MAXBASE:MASTER:TSP == 1500
	DRAWLINE
	PRINTFORML 시간정지 능력의 취급이 최고로 능숙해졌다!
	MAXBASE:MASTER:TSP = 2500
ELSEIF MONEY:1 >= 5000 && MAXBASE:MASTER:TSP == 800
	DRAWLINE
	PRINTFORML 시간정지 능력의 취급이 꽤 능숙해졌다!
	MAXBASE:MASTER:TSP = 1500
ELSEIF MONEY:1 >= 1800 && MAXBASE:MASTER:TSP == 500
	DRAWLINE
	PRINTFORML 시간정지 능력의 취급이 능숙해졌다!
	MAXBASE:MASTER:TSP = 800
ELSEIF MONEY:1 >= 500 && MAXBASE:MASTER:TSP == 200
	DRAWLINE
	PRINTFORML 시간정지 능력의 취급이 조금 능숙해졌다!
	MAXBASE:MASTER:TSP = 500
ELSEIF MONEY:1 >= 150 && MAXBASE:MASTER:TSP == 100
	DRAWLINE
	PRINTFORML 시간정지 능력의 취급이 살짝 능숙해졌다!
	MAXBASE:MASTER:TSP = 200
ENDIF

BASE:MASTER:TSP = MAXBASE:MASTER:TSP

IF TALENT:MASTER:2 & 2
	IF BASE:MASTER:정력 == MAXBASE:MASTER:정력 && !GETBIT(TFLAG:일일일회, 8)
		FLAG:71 ++
		IF FLAG:71 >= 5 && !RAND:3
			DRAWLINE
			PRINTFORML 최근 뽑지 않은 키 있고로 응 짜증 한다……!
			PRINTFORML %마스터는% 이불 속에서 몸부림쳐 돌았다
			CALL COLORMESSAGE("스트레스로 일시적으로 기력의 최대치가 감소했다", C_YELLOW, 2,1)
			변동치 = MIN(MAXBASE:MASTER:기력 * 20 / 100, 500)
			CALL BUFF_BASE(MASTER, BASE_기력,-변동치)
		ELSEIF FLAG:71 >= 3
			TALENT:MASTER:120 = 1
			PRINTL 그러고 보니  요즈음 뽑지 않았다…
		ENDIF
	ELSE
		FLAG:71 = 0
		TALENT:MASTER:120 = 0
	ENDIF
	IF BASE:MASTER:정력 < MAXBASE:MASTER:정력 * 2 / 10 && BASE:MASTER:체력 > 500
		DRAWLINE
		PRINTFORML 오늘은 가득 사정하고 싶다……
		PRINTFORML %마스터는% 기분 좋은 권태감 속에서 행복하게 잠들었다
		CALL COLORMESSAGE("일시적으로 TSP와 기력의 최대치가 증가했다", C_YELLOW, 2,1)
		변동치 = MIN(MAXBASE:MASTER:기력 / 10, 300)
		CALL BUFF_BASE(MASTER, BASE_기력, 변동치)
		변동치 = MIN(MAXBASE:MASTER:TSP / 2, 500)
		CALL BUFF_BASE(MASTER, BASE_TSP, 변동치)
	ENDIF
ENDIF

CALL ONANISM

CALL GIFT_FAVORITE

;寝る前にみんなの日記を…
CALL CHARA_DIARY_AFTERTRAIN

SIF FLAG:술집매입강화 > 0
	FLAG:술집매입강화 --
IF FLAG:기념품점염가대매출 >= 1000
	FLAG:기념품점염가대매출 = FLAG:기념품점염가대매출 % 1000
ELSEIF FLAG:기념품점염가대매출 >= 100
	FLAG:기념품점염가대매출 = 0
ENDIF
IF FLAG:시장의신 == 1
	FLAG:시장의신 = 0
ELSEIF FLAG:시장의신 == 2
	FLAG:시장의신 = 10
ENDIF
;무슨주를 얻을 수 있었는지
FOR LOCAL, 0, CHARANUM
	SIF CFLAG:LOCAL:출금
		CONTINUE
	CALL SOURCE_ABLUP(LOCAL)
	CALL JUEL_CHECK(LOCAL)
	CALL DENIAL_CHECK(LOCAL)
	SIF TALENT:LOCAL:스침
		CFLAG:LOCAL:출금 = 2
NEXT

BEGIN ABLUP

@JUEL_CHECK(ARG)
FOR LOCAL, 0,100
	IF PALAM:ARG:LOCAL < PALAMLV:1
		LOCAL:1 = 0
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:1*3
		LOCAL:1 = 1
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:2
		LOCAL:1 = 2
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:2*3
		LOCAL:1 = 10
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:3
		LOCAL:1 = 20
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:3*2
		LOCAL:1 = 100
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:4
		LOCAL:1 = 200
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:5
		LOCAL:1 = 1000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:6
		LOCAL:1 = 2000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:7
		LOCAL:1 = 3000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:8
		LOCAL:1 = 5000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:9
		LOCAL:1 = 8000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:10
		LOCAL:1 = 12000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:11
		LOCAL:1 = 25000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:12
		LOCAL:1 = 40000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:13
		LOCAL:1 = 60000
	ELSEIF PALAM:ARG:LOCAL < PALAMLV:14
		LOCAL:1 = 100000
	ELSE
		LOCAL:1 = 150000
	ENDIF
	;쾌감계
	IF LOCAL >= 0 && LOCAL < 9
		GOTJUEL:ARG:LOCAL = LOCAL:1 + EX:ARG:LOCAL * 1000
	;그 외
	ELSEIF LOCAL < 30
		GOTJUEL:ARG:LOCAL = LOCAL:1
	;부정의 구슬
	ELSEIF LOCAL == 30 || LOCAL == 31 || LOCAL == 32
		GOTJUEL:ARG:100 += LOCAL:1
	ENDIF
NEXT
JUEL:ARG:100 += GOTJUEL:ARG:100
FOR LOCAL, 0,100
	SIF !STRLENS(PALAMNAME:LOCAL)
		CONTINUE
	SIF LOCAL != 9 &&LOCAL != 30 && LOCAL != 31 && LOCAL != 32
		JUEL:ARG:LOCAL += GOTJUEL:ARG:LOCAL
NEXT
@DENIAL_CHECK(ARG)
SIF JUEL:ARG:100 == 0
	RETURN 0
LOCAL = 1
WHILE LOCAL
	SIF !JUEL:ARG:부정 || (!JUEL:ARG:공순 && !JUEL:ARG:욕정 && !JUEL:ARG:굴복)
		BREAK
	LOCAL:1 = JUEL:ARG:부정 == 1 ? 1 # JUEL:ARG:부정 / 2
	;JUEL:10~12로 소비
	LOCAL:2 = RAND:3 + 10
	SIF LOCAL:1 > JUEL:ARG:(LOCAL:2)
		LOCAL:1 = JUEL:ARG:(LOCAL:2)
	JUEL:ARG:부정 -= LOCAL:1
	JUEL:ARG:(LOCAL:2) -= LOCAL:1
WEND
LOCAL = 1
WHILE LOCAL
	SIF !JUEL:ARG:부정 || (!JUEL:ARG:치정 && !JUEL:ARG:고통 && !JUEL:ARG:공포 && !JUEL:ARG:호의 && !JUEL:ARG:우월)
		BREAK
	LOCAL:1 = JUEL:ARG:부정 == 1 ? 1 # JUEL:ARG:부정 / 2
	;JUEL:14~16으로 소비
	LOCAL:2 = RAND:5
	SELECTCASE LOCAL:2
		CASE 0
			LOCAL:2 = 14
		CASE 1
			LOCAL:2 = 15
		CASE 2
			LOCAL:2 = 16
		CASE 3
			LOCAL:2 = 20
		CASE 4
			LOCAL:2 = 21
	ENDSELECT
	SIF LOCAL:1 > JUEL:ARG:(LOCAL:2)
		LOCAL:1 = JUEL:ARG:(LOCAL:2)
	JUEL:ARG:부정 -= LOCAL:1
	JUEL:ARG:(LOCAL:2) -= LOCAL:1
WEND

@ONANISM
#DIM 욕구불만
#DIM 만족도
#DIM 질투도
#DIM 구슬입수배율
#DIM 부위지정
#DIM 추가V자위
#DIM 추가A자위
#DIM 추가B자위
#DIM 자위타입
#DIM 자위발생최소치
#DIM CONST 문자사아즈 = 15
#DIM 자위화상
VARSET LOCAL

FOR LOCAL,1,CHARANUM
	SIF CFLAG:LOCAL:출금
		CONTINUE
	부위지정 = 0
	자위타입 = 0
	추가V자위 = 0
	추가A자위 = 0
	추가B자위 = 0
	자위발생최소치 = LIMIT(750 - 200 * TALENT:LOCAL:자위하기쉬움 - 100 * TALENT:LOCAL:쾌감응답 - 100 * TALENT:LOCAL:자기애 + 200 * TALENT:LOCAL:자제심, 500,999)
	자위발생최소치 -= 300 * TALENT:LOCAL:자위중독
	IF CFLAG:LOCAL:딸딸이들킴
		PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 베개에 얼굴을 묻어 푸드득푸드득 하고 있다…
	ELSEIF CFLAG:LOCAL:욕구불만도 > 자위발생최소치
		SIF !FLAG:自慰画像非表示
			CALL PrintOnanismImage(LOCAL)
		LOCAL:1 = 0
		IF TALENT:LOCAL:애욕
			LOCAL:1 = 4
		ELSEIF TALENT:LOCAL:연모
			LOCAL:1 = 3
		ELSEIF TALENT:LOCAL:섹프
			;정부도 여기
			LOCAL:1 = 2
		ELSEIF TALENT:LOCAL:사모
			LOCAL:1 = 1
		ENDIF
		IF TALENT:LOCAL:자제심 && LOCAL:1 < 5
			LOCAL:1 += 1
		ENDIF
		IF CFLAG:LOCAL:기정사실 & 합의_우후후 && !RAND:(8 - LOCAL:1)
			PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 몸의 쑤심에 괴로워하면서도, 내일 %CALLNAME:MASTER%에 안아주려고 생각해 당신을 억지로 잠에 올랐다……
			자위타입 = 7
			;CALL KOJO_MESSAGE_SEND("EVENT", 22, LOCAL, 7)
			CFLAG:LOCAL:욕구불만도 = LIMIT(CFLAG:LOCAL:욕구불만도 + 100, 0 , 1000)
			SIF !CFLAG:LOCAL:신사거주
				CFLAG:LOCAL:다음날내방 = 1
			PRINTL
		ELSEIF CFLAG:MASTER:현재위치 == CFLAG:LOCAL:초기위치
			PRINTFORML 한밤중, %마스터는% 소리를 들어 눈을 떴다
			PRINTFORML ……%조사처리(CALLNAME:LOCAL,"이")% %CALLNAME:MASTER%의 손을 잡으면서 소리를 눌러 참아 자위에 빠지고 있었다……
			자위타입 = 2
		ELSEIF ABL:LOCAL:정액중독 > 2 && EX:LOCAL:질내정액 && !RAND:4
			PRINTFORML 참을 수 없어진 %조사처리(CALLNAME:LOCAL,"은")%, 질내에 남는 %CALLNAME:MASTER%의 정액을 박아 넣어 친숙해 지게 하도록(듯이) 자위를 했다……
			자위타입 = 3
		ELSEIF TALENT:LOCAL:무지
			LOCAL:1 = 0
			LOCAL:1 = EXP:LOCAL:자위경험 - EXP:LOCAL:조교자위경험
			IF LOCAL:1 >= 120 - (MIN(ABL:LOCAL:친밀, 6) * 10) && !FLAG:무지자동상실금지
				PRINTFORMW 마침내 %조사처리(CALLNAME:LOCAL,"은")% 보호자에게 상담했다……
				PRINTFORMW %조사처리(CALLNAME:LOCAL,"은")% 무지를 잃었다……
				TALENT:LOCAL:무지 = 0
			ELSEIF LOCAL:1 >= 80 - (MIN(ABL:LOCAL:친밀,4) * 10)
				PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 자위를 자위와 모르는 채 자위에 몰두하고 있다……
			ELSEIF LOCAL:1 >= 50 - (MIN(ABL:LOCAL:친밀,3) * 10)
				PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 책상의 모퉁이에 가랑이를 꽉 누르면서 허리를 흔들어, 비소를 자극했다……
			ELSEIF LOCAL:1 >= 30 - (MIN(ABL:LOCAL:친밀,2) * 10)
				PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 책을 가랑이에 끼워 어린 비렬을 자극했다……
			ELSEIF LOCAL:1 >= 15 - (MIN(ABL:LOCAL:친밀,1) * 10)
				PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 공부중에 붓을 고간에 맞혀, 말랑말랑의 균열부를 문질렀다……
			ELSE
				PRINTFORML %조사처리(CALLNAME:LOCAL,"은")% 침상에 옆으로 누워서면서 태퇴를 조정 괴로워하고 있다……
			ENDIF
			자위타입 = 4
		ELSEIF ABL:LOCAL:자위중독 > 3 && (TALENT:LOCAL:사모 || IS_LOVER(LOCAL) || TALENT:LOCAL:연인 || TALENT:LOCAL:섹프) && !RAND:3
			PRINTFORML 어떻게도 참을 수 없게 된 %조사처리(CALLNAME:LOCAL,"은")%, 옷에 배어든 %CALLNAME:MASTER%의 냄새를 맡아면서 격렬한 자위를 했다……
			LOCAL:2 = RAND:5
			IF (TALENT:LOCAL:C감도 == 1 || ABL:LOCAL:C감각 >= 10) && LOCAL:2 == 4
				PRINTFORM 음핵을 깎아, 애액을 분출하면서 지관, 행위에 몰두했지만
				부위지정 = 1
			ELSEIF (TALENT:LOCAL:V감도 == 1 || ABL:LOCAL:V감각 >= 10) && LOCAL:2 == 3
				PRINTFORM 꿀 단지에 손가락을 깊숙이 삽입해 애액을 계속 긁어냈지만
				부위지정 = 2
				추가V자위 = 1
			ELSEIF (TALENT:LOCAL:A감도 == 1 || ABL:LOCAL:A감각 >= 10) && LOCAL:2 == 2
				PRINTFORM 비소 뿐만이 아니라 항문도 요계속했지만
				부위지정 = 3
				추가A자위 = 1
			ELSEIF (TALENT:LOCAL:B감도 == 1 || ABL:LOCAL:B감각 >= 10) && LOCAL:2 == 1
				IF TALENT:LOCAL:가슴사이즈 >= 1
					PRINTFORM 스스로의 풍만한 유방을 질네라고 빨아 올려
				ELSEIF TALENT:LOCAL:가슴사이즈 <= -1
					PRINTFORM 얇은 가슴을 어루만지고 돌리면서 유두를 문지르며,
				ELSE
					PRINTFORM 부드러운 유방을 부드럽게 비비어 하기 만여,
				ENDIF
				PRINTFORM 몇 번이고 절정을 맞이하는 것도
				부위지정 = 4
				추가B자위 = 1
			ELSE
				;PRINTFORML 그러나 아무리 쾌감을 얻으려 해도 %CALLNAME:MASTER%에의 구상은 다스려질 것은 없고, %조사처리(CALLNAME:LOCAL,"은")% 아침까지 괴로워한 시간을 보냈다……
				PRINTFORM 체내에 울리는 열락에 몸을 진동시키면서도
				부위지정 = 5
			ENDIF
			IF TALENT:LOCAL:사모 || TALENT:LOCAL:연모 || TALENT:LOCAL:연인
				PRINTFORML , %CALLNAME:MASTER%에의 구상은 다스려질 것은 없었다……
			ELSE
				PRINTFORML , 타오른 몸의 열은 들어가지 않았다……
			ENDIF
			추가V자위 = 1
			자위타입 = 5
		ELSEIF ABL:LOCAL:자위중독 >= 3 && !RAND:2
			PRINTFORM 이미 손가락에서는 만족할 수 없어진 %조사처리(CALLNAME:LOCAL,"은")% 캇파로부터 입수한 완구
			IF ABL:LOCAL:A감각 >= 5
				IF TALENT:LOCAL:정조 == -1 && TALENT:LOCAL:처녀 == 0
					PRINTFORM 를 질과 아누스의 깊숙한 곳까지 질네 붐비어
					추가V자위 = 1
				ELSEIF TALENT:LOCAL:정조 == 1
					PRINTFORM 를 비소와 항문에 꽉 눌러
				ELSE
					PRINTFORM 로 비소와 항문을 만지작거려
				ENDIF
				부위지정 = 3
				추가A자위 = 1
			ELSE
				IF TALENT:LOCAL:정조 == -1 && TALENT:LOCAL:처녀 == 0
					PRINTFORM 를 질의 깊숙한 곳까지 질네 붐비어
					추가V자위 = 1
				ELSEIF TALENT:LOCAL:정조 == 1
					PRINTFORM 를 비소에 꽉 눌러
				ELSE
					PRINTFORM 로 비소를 만지작거려
				ENDIF
				부위지정 = 1
			ENDIF
			PRINTFORML  자위에 빠지고 있다…
			자위타입 = 6
		ELSE
			PRINTFORML 쑤시는 몸을 끝내 억누를 수 없어진 %조사처리(CALLNAME:LOCAL,"은")% 음부를 자기 손가락으로 만지작거렸다…
			자위타입 = 1
		ENDIF
		CALL KOJO_MESSAGE_SEND("EVENT", 22, LOCAL, 자위타입, 부위지정)
		SIF 자위타입 == 7
			CONTINUE
		EXP:LOCAL:자위경험 += ABL:LOCAL:자위중독 * 2 + 1
		CALL COLORMESSAGE(@"자위경험＋{ABL:LOCAL:자위중독 * 2 + 1}", C_PINK, 1)
		SELECTCASE ABL:LOCAL:자위중독
			CASE 0 TO 2
				구슬입수배율 = 5
			CASE 3 TO 5
				구슬입수배율 = 3
			CASEELSE
				구슬입수배율 = 1
		ENDSELECT
		;쾌C
		CALL JUEL_UP_SPECIAL(LOCAL,"쾌C","C감각", 구슬입수배율, 1)
		SIF 추가V자위
			CALL JUEL_UP_SPECIAL(LOCAL,"쾌V","V감각", 구슬입수배율, 1)
		SIF 추가A자위
			CALL JUEL_UP_SPECIAL(LOCAL,"쾌A","A감각", 구슬입수배율, 1)
		SIF CFLAG:LOCAL:패배자위 == 1
			CALL JUEL_UP_SPECIAL(LOCAL,"고통","마조끼", 구슬입수배율 * ABL:LOCAL:마조끼, 1)
		;치정
		CALL JUEL_UP_SPECIAL(LOCAL,"치정","자위중독", 구슬입수배율 * 2,1)
		;욕정
		CALL JUEL_UP_SPECIAL(LOCAL,"욕정","욕망", 구슬입수배율, 1)
		CFLAG:LOCAL:욕구불만도 /= 4
		PRINTW
	ENDIF
	;우선 욕망으로 기초치를 결정한다
	SELECTCASE ABL:LOCAL:욕망
		CASE 0 TO 2
			욕구불만 = 10
		CASE 3 TO 5
			욕구불만 = 20
		CASE 6 TO 10
			욕구불만 = 30
		CASE 10 TO 15
			욕구불만 = 50
		CASEELSE
			욕구불만 = 80
	ENDSELECT

	욕구불만 += ABL:LOCAL:자위중독 * 7 + (ABL:LOCAL:질내사정중독 + ABL:LOCAL:항내사정중독) * 3
	욕구불만 = 욕구불만소질보정(LOCAL, 욕구불만)
	SELECTCASE 욕구불만
		CASE IS > 400
			욕구불만 = (욕구불만 - 400) / 10 + 400
		CASE IS > 200
			욕구불만 = (욕구불만 - 200) / 4 + 200
		CASE IS > 100
			욕구불만 = (욕구불만 - 100) / 2 + 100
	ENDSELECT
	SIF 자위타입
		욕구불만 = 0
	SIF TCVAR:LOCAL:오늘만났는지
		욕구불만 /= 2
	SIF TALENT:LOCAL:임신
		욕구불만 /= 5
	SIF TALENT:LOCAL:육아중
		욕구불만 /= 2
	;욕구불만도는0~1000의 사이에
	CFLAG:LOCAL:욕구불만도 = LIMIT(CFLAG:LOCAL:욕구불만도 + 욕구불만, 0, 1000)
	DEBUGPRINTFORML %CALLNAME:LOCAL%의 만족도：{만족도}　욕구 불만 상승치：{욕구불만}　욕구불만도：{CFLAG:LOCAL:욕구불만도}
NEXT

@DAILYEVENT
;데일리최대수는 이벤트관련\데일리 이벤트\DAILY_VARS.ERH로 지정
#DIM EVENT_DAY,DAILY_EV_MAX

CALL FISHER_YATES_SHAFFLE(DAILY_EV_MAX)
ARRAYCOPY "SHAFFLE_ARRAY" , "EVENT_DAY"

DRAWLINE
FOR LOCAL,0,DAILY_EV_MAX
	RESULT = 0
	TRYCALLFORM DAILY_CONDITION_EV{EVENT_DAY:LOCAL}
	IF RESULT > 0
		DEBUGPRINTFORML 데일리 이벤트{EVENT_DAY:LOCAL}가 발생했어
		DRAWLINE
		BREAK
	ENDIF
	SIF RESULT == -1
		DEBUGPRINTFORML 데일리 이벤트{EVENT_DAY:LOCAL}는 발생 조건을 채우지 않았다
NEXT
;PRINTFORMW
PRINTFORML

@욕구불만소질보정(ARG, ARG:1)
#FUNCTION
LOCAL = ARG:1
SIF TALENT:ARG:자제심
	LOCAL /= 2
SIF TALENT:ARG:자기애 < 0
	LOCAL /= 2
SIF TALENT:ARG:자기애 > 0
	LOCAL = LOCAL * 5 / 4
SIF TALENT:ARG:유치 && !TALENT:ARG:초경
	LOCAL /= 4
SIF TALENT:ARG:임신
	LOCAL /= 4
SIF TALENT:ARG:육아중
	LOCAL /= 2
SIF CFLAG:ARG:딸딸이들킴
	LOCAL /= 4
RETURNF LOCAL


code:
@AFTER_AFFAIR
#DIM SPENT_TIME
SPENT_TIME = (TIME-UFUFU_START_TIME) / 60
IF SPENT_TIME < 0
	SPENT_TIME += 24
ENDIF
;ブチギレと無理矢理状態とTSP切れと泥酔姦と風呂場プレイと睡眠時間中は表示しない
SIF CFLAG:빡침 || TCVAR:억지로 || !SHIRAHU(TARGET)
	RETURN 0
	;ほんのちょっとのうふふでは表示されないよう、潤滑、欲情、体力、溜まってる度、その日の絶頂回数に条件をつける（大した意味はない）
SIF !(PALAM:윤활 >= PALAMLV:3 && PALAM:욕정 >= PALAMLV:3 && BASE:체력 < MAXBASE:체력 * 9 / 10 && CFLAG:욕구불만도 < 300 && EX:C절정 + EX:V절정 + EX:A절정 + EX:B절정 + EX:M절정 >= 4)
	RETURN 0

PRINTFORMD %마스터와% %CALLNAME:TARGET%\@ GET_TARGETNUM() > 1? 들은, # %조사만처리(CALLNAME:TARGET,"는")%, \@
;経過時間表示
IF SPENT_TIME
	PRINTFORMD {SPENT_TIME} 시간에 이르는
	SIF SPENT_TIME > 5
		PRINTFORMD 장렬한
ENDIF
;ここまで
IF TFLAG:거품목욕
	PRINTFORMD 돈으로 사들인 한때의 만남을
ELSEIF TALENT:연모 || TALENT:연인
	PRINTFORMD 애정으로 가득 찬 인연을
ELSEIF TALENT:애욕
	PRINTFORMD 육욕으로 되는대로 서로 탐닉하는 듯한 성관계를
ELSEIF TALENT:사모
	PRINTFORMD 서로의 관계를 깊게 만드는 밀회를
ELSEIF TALENT:섹프 == 1
	PRINTFORMD 쾌락만을 목적으로 한 성행위를
ELSE
	PRINTFORMD 기세에 맡긴 경솔한 정사를
ENDIF
PRINTFORMW 끝냈다.

SIF BATHROOM()
	RETURN 0
;-------------------------------------------------------------------------------------
;以下、精液漏れ・愛液による濡れの描写（精液漏れの描写が優先）

;膣충전율が水準以上もしくはアナル충전율が水準以上
IF SOAKED_OR_NOT("V_SEMINAL") || SOAKED_OR_NOT("A_SEMINAL")
	PRINTFORMD 대량으로 %TEXTR("쏟아부어진/풀어진/주입된")% %조사처리(EXPR_VAR("SPERM"),"가")%, %CALLNAME:TARGET%의
	SIF SOAKED_OR_NOT("V_SEMINAL")
		PRINTFORMD %EXPR_VAR("VULVA")%
	SIF SOAKED_OR_NOT("A_SEMINAL")
		PRINTFORMD \@ SOAKED_OR_NOT("V_SEMINAL") ? %조사만처리(EXPR_VAR("VULVA"),"와")%  # \@%EXPR_VAR("ANUS")%
	PRINTFORMDL %TEXTR("에서 넘치려 하고 있다/에서 새어 나오고 있다/에서 흘러나오려 하고있다")%.
	IF TALENT:MASTER:농후정액
		PRINTFORML 그래도 반고형의 %조사처리(EXPR_VAR("SPERM"),"는")% 떨어지지 않고 끈 모양으로 늘어져, %CALLNAME:TARGET%의 허벅지에 달라붙었다.
	ELSE
		PRINTFORMD %타겟이% %TEXTR("화장지로/손수건으로/수건으로")%
		PRINTFORMDL %조사처리(EXPR_VAR("CROTCH"),"를")% 닦아도, 잠시 후 %조사처리(EXPR_VAR("SPERM"),"가")% %TEXTR("똑똑 늘어지며 떨어졌다/방울져 떨어지기 시작했다/흘러내려서, 허벅지에 쭉하고 선을 그었다/찔끔찔끔 넘쳐 나왔다")%.
	ENDIF
	;--------------------------------------------
	;垂れ口上呼び出し
	;--------------------------------------------
	CALL WEAREDPANTIES_TRANSPARENCY("SPERM")
	CALL KOJO_MESSAGE_SEND("EVENT",15,TARGET,3,1)
;膣・アナル충전율がともに水準未満だが潤滑が必要LV以上
ELSEIF SOAKED_OR_NOT("SECRETIONAL")
	PRINTFORMD %타겟은%、흠뻑 젖은 %조사처리(EXPR_VAR("CROTCH"),"를")% %TEXTR("화장지로/손수건으로/수건으로")%
	PRINTFORMDL 닦았지만, 흥분이 완전히 식지 않은 육체에서는 아직 꿀이 넘쳐나는 것 같다.
	;--------------------------------------------
	;溢れ口上呼び出し
	;--------------------------------------------
	CALL WEAREDPANTIES_TRANSPARENCY("JUICE")
	CALL KOJO_MESSAGE_SEND("EVENT",15,TARGET,3,2)
ENDIF
;-------------------------------------------------------------------------------------------------------
;以下、事後のムードの描写
;複数TARGETがいる場合非表示
IF GET_TARGETNUM() == 1
	PRINTFORMD 정사의 뒤처리를 끝낸 두 사람
	IF TALENT:연모 || TALENT:연인
		PRINTFORMDL 였지만, 여전히 정담을 주고받았다.
	ELSEIF TALENT:애욕
		PRINTFORMDL 였지만, 성관계의 격렬함 때문에, 좀 더 숨을 고를 시간이 필요했다.
	ELSEIF TALENT:사모
		PRINTFORMDL 은, 약간 부끄럽고, 서로 수줍어했다.
	ELSEIF TALENT:섹프 == 1
		PRINTFORMDL 은, 나른한 분위기 속에서, 잠시 말없이 서로 몸을 맞댔다.
	ELSE
		PRINTFORMDL  사이에, 뭐라 말할 수 없이 어색한 공기가 흘렀다.
	ENDIF
	PRINTFORMW
ENDIF

CALL KOJO_MESSAGE_SEND("EVENT",15,TARGET,3,3)

;---------------------------------------------------------------------------------------------------------
;以下、事後に服等を着なおす描写
;上半身上着、ワンピース、着物、外衣のどれかを着たままだったばあい
IF EQUIP:상반신윗도리1 || EQUIP:상반신윗도리2 || EQUIP:원피스 || EQUIP:기모노 || EQUIP:외투
	PRINTFORMDL 옷을 입은 채로 있던 %타겟은%, 이쪽을 등지고 흐트러진 옷을 정돈하고 있다.
	IF PALAM:욕정 >= PALAMLV:7
		PRINTFORMD 땀을 흘리고 하얀 피부가 분홍색으로 달아오른
	ELSE
		PRINTFORMD 땀을 흘린
	ENDIF
	PRINTFORMW 목덜미가 선정적이다.
;現在上半身が裸でかつ普段着の상반신속옷がブラジャーかマイクロブラのばあい
ELSEIF TEQUIP:상반신착의상황 == 0 && (CFLAG:TARGET:207 == CLOTHES_ID("상반신속옷1", "브래지어") || CFLAG:TARGET:208 == CLOTHES_ID("상반신속옷2", "마이크로브라"))
	PRINTFORMDL 정사를 마친 %타겟은%, %마스터를% 등지고, 브래지어의 후크를 끼우고 있다.
	PRINTFORMW  뒷짐진 등에 도드라지는 견갑골이 아름답다.
ENDIF

CALL KOJO_MESSAGE_SEND("EVENT",15,TARGET,3,4)

;----------------------------------------------------------------------------------------------------------
;以下、残り香の描写

;濃厚な残り香の表示に必要な射精数、噴乳数、放尿数の設定
LOCAL:5 = 5 ;必要射精数
LOCAL:6 = 5 ;必要噴乳数
LOCAL:7 = 1 ;必要放尿数

;残り香を表示するのは屋内のときだけ
IF OPENPLACE(CFLAG:MASTER:현재위치) < 2
	;その日のふたりの射精数、噴乳数、放尿数によって分岐
	IF EX:사정 + EX:MASTER:사정 >= LOCAL:5 || EX:분유 + EX:MASTER:분유 >= LOCAL:6 || EX:방뇨 + EX:MASTER:방뇨 >= LOCAL:7
		PRINTFORMD 뭉클한 열기 속에,
		SIF EX:사정 + EX:MASTER:사정 >= LOCAL:5
			PRINTFORMD 정액의 독특한 냄새
		SIF EX:분유 + EX:MASTER:분유 >= LOCAL:6
			PRINTFORMD \@ EX:사정 + EX:MASTER:사정 >= LOCAL:5 ? 와  # \@달콤한 모유 향기
		SIF EX:방뇨 + EX:MASTER:방뇨 >= LOCAL:7
			PRINTFORMD \@ EX:사정 + EX:MASTER:사정 >= LOCAL:5 || EX:분유 + EX:MASTER:분유 >= LOCAL:6 ? 와  # \@소변의 악취
		PRINTFORMDL 가 섞인 음미한 잔향이 농후하게 감돌고,
		PRINTFORMW 그 곳에서 행해진 비밀스러운 행위를 분명하게 말해준다.
	ELSE
		PRINTFORMW  새콤달콤한 체액 냄새와 뜨거운 공기가 방금까지의 정사 흔적을 남기고 있다.
	ENDIF
ENDIF
;----------------------------------------------------------------------------------------------------------

@WEAREDPANTIES_TRANSPARENCY(ARGS)
#DIM 팬티상황

;パンツを奪ったorもらったor元から穿いてない場合
IF CFLAG:노팬티 || (CFLAG:205 == 0 && CFLAG:206 == 0)
	팬티상황 = 0
;パンツを一旦脱いでいた場合
ELSEIF !EQUIP:하반신속옷1 && !EQUIP:하반신속옷2
	팬티상황 = 1
ELSE
	팬티상황 = 2
ENDIF

IF !팬티상황
	PRINTFORMDL %CALLNAME:TARGET%에게는 입을 팬티가 없다.
	IF ARGS == "SPERM"
		PRINTFORMDL 오늘은, 노팬티로 %조사처리(EXPR_VAR("SPERM"),"를")% 늘어뜨린 채 지내게 될 것 같다.
	ELSE
		PRINTFORMDL 오늘은, %조사처리(EXPR_VAR("CROTCH"),"를")% 촉촉히 적신 후에 노팬티로 지내게 될 것 같다.
	ENDIF
;パンツがある場合
ELSE
	SIF 팬티상황 == 1
		PRINTFORMDL %타겟은% 벗었던 속옷을 다시 입었다.
	IF ARGS == "SPERM"
		PRINTFORMD 흘러나온 %조사처리(EXPR_VAR("SPERM"),"가")%
	ELSE
		PRINTFORMD 끝없이 흘러나오는 애액이
	ENDIF
	PRINTFORMD \@ 팬티상황 == 1?  그# \@ 속옷을 %TEXTR("질척질척하게/흠뻑 축축하게/흠뻑 적시게")%
	;パンツが透けうる場合
	IF PANTIES_TRANSPARENCY(TARGET)
		PRINTFORMDL  해서, 비렬의 형태가 훤히 들여다보일 정도였다.
	ELSE
		PRINTFORMDL  했다.
	ENDIF
ENDIF

;### びしょ濡れ判定用式中関数 ################
;ARG=キャラ番号
@SOAKED_OR_NOT(ARGS,ARG)
#FUNCTION
#DIM 필요질충전율
#DIM 필요애널충전율
#DIM 필요윤활레벨

SIF ARG == 0
	ARG = TARGET

필요질충전율 = 30
필요애널충전율 = 30
필요윤활레벨 = PALAMLV:5

IF ARGS == "V_SEMINAL"
	IF 충전율(ARG,1) >= 필요질충전율
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSEIF ARGS == "A_SEMINAL"
	IF 충전율(ARG,2) >= 필요애널충전율
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ELSEIF ARGS == "SECRETIONAL"
	IF PALAM:ARG:윤활 >= 필요윤활레벨
		RETURNF 1
	ELSE
		RETURNF 0
	ENDIF
ENDIF

THROW 부정한 문자열인수

;### 表現バリエーション用式中関数 ################
@EXPR_VAR(ARGS)
#FUNCTIONS
VARSET LOCALS

IF ARGS == "SPERM"
	SELECTCASE RAND:4
	CASE 0
		LOCALS = 백탁액
	CASE 1
		LOCALS = 정액
	CASE 2
		LOCALS = 정액
	CASEELSE
		LOCALS = 정자
	ENDSELECT
ELSEIF ARGS == "VULVA"
	SELECTCASE RAND:4
	CASE 0
		LOCALS = 은밀한 곳
	CASE 1
		LOCALS = 비렬
	CASE 2
		LOCALS = 음문
	CASEELSE
		LOCALS = 여성의 음부
	ENDSELECT
ELSEIF ARGS == "ANUS"
	SELECTCASE RAND:3
	CASE 0
		LOCALS = 엉덩이의 구멍
	CASE 1
		LOCALS = 항문
	CASEELSE
		LOCALS = 아누스
	ENDSELECT
ELSEIF ARGS == "CROTCH"
	SELECTCASE RAND:3
	CASE 0
		LOCALS = 고간
	CASE 1
		LOCALS = 국부
	CASEELSE
		LOCALS = 가랑이
	ENDSELECT
ENDIF

RETURNF LOCALS


code:
;FileName_APPEND_SYS.ERB --------------------------- Rev1.00
;era 명련사_시스템 변경계 이벤트 통괄
;CALL		USER
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
;EVENT_NO_LIST ============================== FLAG:1
;FLAG:1=1 사당 멤버 출현 이벤트
;FLAG:1=2 마미조 내방 이벤트
;FLAG:1=3 명련사멤버 추가 이벤트
;FLAG:1=4
;FLAG:1=5

@SYS_EVENT
;--- 이벤트 자기 정의 블록 ---

;--- 이벤트 실행 블록 ---

;	;자택에 SUMIKOMI_ROOM가 설정되어 있다
	IF FLAG:더부살이캐릭터== 0 && !FLAG:더부살이이벤트 && SUMIKOMI_ROOM && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
		CALL NEWMEMBER_ADD
	ENDIF
;ENDIF

;이하, 각 이벤트 함수 ===============================

;더부살이 EX캐릭터 결정 이벤트
@NEWMEMBER_ADD
#DIM 인원수
#DIM ROOM_N
#DIM C_ID
VARSET LOCAL
인원수 = 0
FOR LOCAL,1,CHARANUM
	;이미 살고 있는 멤버는 제외한다
	SIF CFLAG:LOCAL:신사거주 > 0
		CONTINUE
	SIF TALENT:LOCAL:스침
		CONTINUE
	IF TALENT:LOCAL:연모 && EXP:LOCAL:애정경험 >= 200
		인원수 ++
		LOCAL:LOCAL = 1
		LOCALS = %CALLNAME:LOCAL%
	ENDIF
NEXT
SIF !인원수 || (DAY:3 != 1)
	RETURN
PRINTL
DRAWLINE
PRINTFORML 아침, 잠에서 일어난 %CALLNAME:MASTER%의 앞에 내방자가 나타났다

PRINTFORML %LOCALS%\@ 인원수 > 1 ? 들은 # %조사만처리(LOCALS,"는")% \@ %CALLNAME:MASTER%에게 %GET_MAPNAME(MAIN_MAP)%에 살고 싶다고 말했다
PRINTL
IF MAIN_MAP == 2
	PRINTFORML 연립주택에 빈 방이 있으니, 이사하는 일은 간단할 것이다
	IF TALENT:NameToID(LOCALS):인간
		PRINTFORMW %CALLNAME:거점_주인%에게도 특별히 거절할 이유는 없는 것 같다
	ELSE
		PRINTFORMW %CALLNAME:거점_주인%에게는 정체를 숨기면 된다고 %조사처리(LOCALS,"는")% 말하고 있다
	ENDIF
ELSEIF SUMIKOMI_ROOM == 1303 ;KR판 오리지날 주택 더부살이 패치
	PRINTFORML %조사처리(NAME_FROM_PLACE(SUMIKOMI_ROOM),"를")% 정리하면, 두 사람 정도는 같이 살 수 있을 것이다
ELSE
	PRINTFORML %조사처리(NAME_FROM_PLACE(SUMIKOMI_ROOM),"를")% 개장하면, 한 사람 정도는 살 수 있을 것이다
	PRINTFORMW %CALLNAME:거점_주인%들은 제대로 설명하면 환영해 줄 것 같다
ENDIF
PRINTFORML %마스터는%…
C_ID = 1
FOR LOCAL,1,CHARANUM
	;이미 살고 있는 멤버는 제외한다
	SIF CFLAG:LOCAL:신사거주 > 0
		CONTINUE
	IF TALENT:LOCAL:연모 && EXP:LOCAL:애정경험 >= 200
		C_ID = LOCAL
		PRINTFORML [{LOCAL}] - %CALLNAME:LOCAL%의 이사를 인정한다
	ENDIF
NEXT
PRINTFORML [999] - 인정하지 않는다
$INPUT_LOOP
INPUT
IF RESULT == 999
	PRINTFORMW %마스터가% 고개를 가로젓자 %LOCALS%\@ 인원수 > 1 ? 들은 # %조사만처리(LOCALS,"는")% \@ 아쉽다는 듯이 고개를 숙이고 %CALLNAME:MASTER%의 방을 뒤로 했다…
	;이 방식이라면 한사람 밖에 말을 부를 수 없지만 좋은 방법은 없는 것인가
	;우선 다수의 경우에 각각의 캐릭터의 말을 호출할 수 있도록(듯이) 해 본다, 다만 실제로 할 수 있을지 어떨지는 테스트 되어 있지 않기 때문에 자신은 없다
	IF 인원수 > 1
		FOR LOCAL,1,CHARANUM
			;이미 살고 있는 멤버는 제외한다
			SIF CFLAG:LOCAL:신사거주 > 0
				CONTINUE
			IF TALENT:LOCAL:연모 && EXP:LOCAL:애정경험 >= 200
				CALL KOJO_MESSAGE_SEND("EVENT",19,LOCAL,2,0)
				PRINTL
			ENDIF
		NEXT
	ELSE
		CALL KOJO_MESSAGE_SEND("EVENT",19,C_ID,2,0)
	ENDIF
	RETURN 0
ELSEIF RESULT >= CHARANUM
	CLEARLINE 1
	GOTO INPUT_LOOP
ELSEIF !LOCAL:RESULT
	CLEARLINE 1
	GOTO INPUT_LOOP
ENDIF

IF SUMIKOMI_ROOM == 1303
	PRINTFORML %CALLNAME:RESULT%의 손을 잡고, 같이 지내고 싶다고 말하자 %조사처리(CALLNAME:RESULT,"는")% 기쁜듯이 미소짓고 있다
	PRINTFORMW %마스터는% %조사처리(CALLNAME:RESULT,"와")% 같이 방을 정리하며, 앞으로의 계획에 대해 이야기했다…
	PRINTL
	PRINTFORMW - %조사처리(CALLNAME:RESULT,"와")% %GET_MAPNAME(MAIN_MAP)%에서 동거가 시작되었습니다 -
ELSE
	PRINTFORML %CALLNAME:RESULT%의 손을 잡고, %CALLNAME:거점_주인%에게 부탁해보겠다고 말하자 %조사처리(CALLNAME:RESULT,"는")% 기쁜듯이 미소짓고 있다
	PRINTFORMW 그대로 %CALLNAME:거점_주인%에게 부탁하러 가자 흔쾌히 승낙해 주었다…
	PRINTL
	PRINTFORMW - %조사처리(CALLNAME:RESULT,"가")% 새로 %GET_MAPNAME(MAIN_MAP)%의 동료로 참가했습니다 -
ENDIF
PRINTL
FLAG:더부살이캐릭터= RESULT
CFLAG:(FLAG:더부살이캐릭터):311 = SUMIKOMI_ROOM
CFLAG:(FLAG:더부살이캐릭터):신사거주 = SUMIKOMI_ROOM

CALL KOJO_MESSAGE_SEND("EVENT",19,RESULT,1,0)

CALL ROOMSETTING


code:
;FLAG:50:bit 표기:0마리사, 1, 2대, 3⑨,  4사쿠야, 5 레밀리아, 6 앨리스, 7 흰 백합, 8 패모속의 백합,9-10-11프리즘리바즈, 12요요우무13-14-15야쿠모가, 16 리글, 17―,  18아야야, 19에에이키 님20-21-22산신님 서, 23 텐시, 24이쿠 씨,25-26-27지령조, 28 나즈,  29단지들 -응, 30네, 31은 세우지 않아, 32카센, 33 엘렌, 34 리카코, 35메이라,
;FLAG:50:bit 표기:36리카, 37 루이즈, 38 사토리 님, 39 플랑 , 40니토리, 41레이센, 42, 43 파체, 44 팔꿈치 링, 45 미코 님, (46 코코로, 의미 없음), 47에링, 48개, 49 파르시, 50도 고담, 51 공주님, 52카게로, 53유기, 54화, 55님, 56-저기,  57할까 링, 58 마미조, 59 코스즈, (60신묘마루·의미 없음), 61에이린, 62세키반키, 63 레티
;FLAG:51:bit 표기:0메디,  1코마치, 2시즈하, 3미노리코, 4히나, 5아큐,  6렌코, 7 메리, 8 키스메,  9야마메, 10 이치린, 11 무라사, 12쇼,  13쿄코,  14요시카,  15냥냥, 16 토지, 17 후토, 18 와카사기, 19벤벤, 20 야츠하시, 21 라이코, 22 세이자, 23,24,25,26,27,28,29,30,31,32,33,34,35,
;FLAG:51:bit 표기:
;FileName_BEFORETRAIN.ERB -------------------------- Rev1. 00
;아침 1일 스타트 처리
;CALL		SYSTEM
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@EVENTTRAIN
#PRI
#DIM 콜렉션스키마입수수
#DIM 역서입수수
#DIM 수면시간
#DIM 당신의기상시간
#DIM 의뢰주후보
#DIM 의뢰인
#DIM 동거사람
#DIM 추가수면시간
#DIM 기상방해확률
#DIM 安眠補正 ;숙면 보정
#DIM 快眠係数 ;숙면 계수

;TRAGET 초기화
VARSET TARGET
VARSET LOCAL
;아침 1일 스타트 처리
;초기화

;(天候パッチ)現在の天候管理が0であるときは初回プレイであると判断
IF NOW_WEATHER_CONTROL == 0
	;(天候パッチ)短期予報を行う
	CALL WEATHER_FORECAST_1TERM
	;(天候パッチ)1日予報を行う
	CALL WEATHER_FORECAST_1DAY
ENDIF

FLAG:일일이벤트 = RAND:1000
FLAG:70 = 0
RESETBGCOLOR
CFLAG:MASTER:동침중 = 0
IF IN_HOME(CFLAG:MASTER:초기위치) == 0 || CFLAG:MASTER:초기위치 <= 0
	PRINTW 초기위치가 부정합니다. Default의 위치에 되돌립니다.
	CFLAG:MASTER:초기위치 = Default초기위치
ENDIF
TFLAG:102 = 1
TFLAG:연회장 = GET_JOBPLACE("연회")
UFUFU_START_TIME = 0
UFUFU_START_DAY = 0
FOR LOCAL,0,CHARANUM
	CALL InitializeBeforeTrain(LOCAL)
NEXT

; ;EX캐릭터 방명재정의
;KR판 4.830 버그확인용 임시 주석처리, 추후 삭제 예정

; SIF CFLAG:MASTER:초기위치 == 53
; 	STR:53 = %CALLNAME:MASTER%의 창고
; SIF FLAG:16
; 	STR:55 = %CALLNAME:(FLAG:16)%의 방
FLAG:자실잠금 = 0

;エンカウントモブ店員のリセット
CALL モブ店員画像リセット

;자유행동 함정&눈사람 처리
VARSET FA16_HOLE
FOR COUNT, 0, 100
	SIF !FA17_OBJ:COUNT
		CONTINUE
	;완성된 눈사람은 다음날로 미루어진다.
	IF FA17_EXIST:COUNT % 10 || FA17_OBJ:COUNT < 1000
		FA17_OBJ:COUNT = 0
		FA17_EXIST:COUNT =0
	ELSE
		FA17_EXIST:COUNT ++
	ENDIF
NEXT

CALL RESET_DISH
CALL CHANGE_TIMEZONE
;시간이 MASTER의 기상 예정 시각보다 크면 일자＋1
IF TIME > TIME:3
	DAY ++
	DAY:3 ++
	TIME -= 1440

	CALL CHANGE_MONTH
	;(天候パッチ)短期予報を行う
	CALL WEATHER_FORECAST_1TERM
	;(天候パッチ)1日予報を行う
	CALL WEATHER_FORECAST_1DAY
	;연회의 참가자 결정
	SIF FLAG:3 && 연회개시일판정()
		CALL ENKAI_ENTRY
ENDIF

;아가씨의 몸 주기의 진행
;=================================
FOR LOCAL,0,CHARANUM
	;키스경험이 0이라면[키스미경험]을 취득(미설정캐릭터에게로의 대책이라고 생각된다)
	SIF EXP:LOCAL:키스경험 == 0 && TALENT:LOCAL:키스미경험 == 0
		 TALENT:LOCAL:키스미경험 = 1
	;여성기 부재(성별의 bit0가 0) 혹은[애같음][유치]로[초경]미취득 이라면 주기를 설정하지 않는다
	IF ((TALENT:LOCAL:150 || TALENT:LOCAL:151) && !TALENT:LOCAL:초경) || !GETBIT(TALENT:LOCAL:성별, 0)
		CFLAG:LOCAL:900 = 0
		CONTINUE
	ENDIF
	;주기가 미설정의 경우 여기서 결정
	SIF (CFLAG:LOCAL:900 == 0 || CFLAG:LOCAL:900 > 11)
		CFLAG:LOCAL:900 = RAND:10
	;주기가  1진행된다
	CFLAG:LOCAL:900 += 1
	;아직 10 일주기(11이상으로 1의 위인 만큼 한다)
	SIF CFLAG:LOCAL:900 > 10
		 CFLAG:LOCAL:900 %= 10
	SIF TALENT:LOCAL:임신 > 0
	 	TALENT:LOCAL:임신 += 1
NEXT
;=================================

CALL 내방플래그

;EX캐릭터 휴일 데이트처 우연히 판정
CALL 만남판정

동거사람 = 0
추가수면시간 = 0
;이불에 질질 끌어 들여진다
IF CFLAG:MASTER:현재위치 == OMANEKIBEYA()
	동거사람 = CFLAG:MASTER:초대
ELSEIF PRIVATEROOM:(CFLAG:MASTER:초기위치 % 100) && CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치
	동거사람 = PRIVATEROOM:(CFLAG:MASTER:초기위치 % 100)
ENDIF

CFLAG:동거사람:마지막에만난날 = DAY

IF TALENT:동거사람:연모 && INRANGE(TIME:3, CFLAG:동거사람:기상시간 - 180, CFLAG:동거사람:기상시간)
	기상방해확률 = 20
	SIF DAY:2 == 2
		기상방해확률 = 10
	SIF DAY:2 == 4
		기상방해확률 = 35
	IF 기상방해확률 > RAND:100
		PRINTFORML %마스터가% 엉금엉금 이불에서 기어 나오려고 하자, %CALLNAME:동거사람%에게 껴안겨졌다
		PRINTFORML 조금 더 함께 자고 싶은 것 같다
		PRINTFORMW 어쩔 수 없기 때문에 그녀가 일어날 때까지 이불에서 보내기로 했다……
		EXP:동거사람:애정경험 += 5
		CALL COLORMESSAGE(@"애정경험＋5 (%CALLNAME:동거사람%)", C_PINK, 1)
		추가수면시간 = CFLAG:동거사람:기상시간 - TIME:3
	ENDIF
ENDIF

;30분 마다 신사의 캐릭터를 이동시킨다
LOCAL = 1
WHILE LOCAL
	IF TIME + 30 < TIME:3 + 추가수면시간
		TIME:1 = TIME + 1440 * DAY
		TIME += 30
		CALL CHARA_MOVEMENT
	ELSE
		;전캐릭터의 현재위치 보존
		FOR LOCAL:1,0,CHARANUM
			CFLAG:(LOCAL:1):전턴위치 = CFLAG:(LOCAL:1):현재위치
		NEXT
		;시간을 MASTER의 기상 예정 시각에
		TIME =  TIME:3 + 추가수면시간
		TIME:1 = TIME + 1440 * DAY
		TFLAG:당신기상 = TIME + 1440 * DAY
		CALL CHARA_MOVEMENT
		BREAK
	ENDIF
WEND

;눈을 뜨고 공통 메시지 표시
CALL GOODMORNING

FOR LOCAL,1,CHARANUM
	;초기위치는 99로 통일(53은 낡은 데이터용)
	SIF CFLAG:LOCAL:초기위치 == 53 || CFLAG:LOCAL:초기위치 == MAXROOM || CFLAG:LOCAL:초기위치 == 0
		CFLAG:LOCAL:초기위치 = SUKIMA()
	SIF CFLAG:LOCAL:신사거주
		CFLAG:LOCAL:초기위치 = CFLAG:LOCAL:신사거주
	;일을 정의
	BASE:LOCAL:일량 = MAXBASE:LOCAL:일량
	;불러 하고 있으면(자) 만남 플래그를 자택위치로 한다
	IF CFLAG:LOCAL:초대
		[SKIPSTART]
		;연동 캐릭터는 워프해 버리므로 일괄 보정
		;↑이것 어떤 의미이겠지, 구문 보는 한 마지막 FLAG:(590 + LOCAL) = CFLAG:LOCAL:자택위치만으로 좋은 생각이 드는데
		SELECTCASE LOCAL
		;프리즘리버
		CASE 20, 21, 22
			FLAG:(590 + 20) = CFLAG:LOCAL:자택위치
			FLAG:(590 + 21) = CFLAG:LOCAL:자택위치
			FLAG:(590 + 22) = CFLAG:LOCAL:자택위치
		;아키 자매
		CASE 77, 78
			FLAG:(590 + 77) = CFLAG:LOCAL:자택위치
			FLAG:(590 + 78) = CFLAG:LOCAL:자택위치
		;연꽃 메리
		CASE 81, 82
			FLAG:(590 + 81) = CFLAG:LOCAL:자택위치
			FLAG:(590 + 82) = CFLAG:LOCAL:자택위치
		;츠쿠모 자매(자택은 없지만 설정했을 때 용)
		CASE 94, 95
			FLAG:(590 + 94) = CFLAG:LOCAL:자택위치
			FLAG:(590 + 95) = CFLAG:LOCAL:자택위치
		CASEELSE
			FLAG:(590 + LOCAL) = CFLAG:LOCAL:자택위치
		ENDSELECT
		[SKIPEND]
		CFLAG:LOCAL:만난위치 = CFLAG:LOCAL:자택위치
		;MASTER는 외박 하고 있으면(자) 데이트 플래그(외출 플래그)를 세운다
		SIF CFLAG:MASTER:초대
			CFLAG:MASTER:데이트중 = CFLAG:LOCAL:자택위치 / 100
		;그 날은 연속해서 묵을 수 없게
		TCVAR:LOCAL:연속숙박금지 = 1
	ENDIF
	;육아중なら子供の行動を判定
	SIF FLAG:자식묘사 && TALENT:LOCAL:육아중
		CALL CHILD_MOVEMENT(LOCAL, TALENT:LOCAL:육아중)
	;自立した子供がいるなら子供の行動を判定
	SIF FLAG:자식묘사 && CFLAG:LOCAL:아이인원수 - CFLAG:LOCAL:육아인원수 > 0
		CALL CHILD_MOVEMENT_2(LOCAL)
NEXT

;시스템 변화계 이벤트
CALL SYS_EVENT

;기상시간의 기록
당신의기상시간 = 1440 * DAY + TIME

;체력 기력의 회복
IF DAY == 1
	수면시간 = 480
ELSE
	수면시간 = 당신의기상시간 - CFLAG:MASTER:취침시간 - 추가수면시간 / 2
ENDIF
PRINTL
IF FLAG:기절중단
	SIF CFLAG:MASTER:현재위치 != ENTRANCE
		CFLAG:MASTER:데이트중 = FLAG:기절중단 - 100
	FLAG:기절중단 = 0
	수면시간 /= 5
	PRINTFORMW 이상한 장소에서 잤더니 등이 아프다……
ELSEIF CFLAG:MASTER:철야
	수면시간 /= 2
	PRINTFORMW 어젯밤은 잘 못잤다……
ELSE
	PRINTFORMW {수면시간 / 60}시간 잤다
ENDIF

CALL SleepSoundly
安眠補正 = RESULT
快眠係数 = 480 - (60 * TALENT:MASTER:회복속도) - 安眠補正
BASE:MASTER:체력 += MAXBASE:MASTER:체력 * 수면시간 / 2 / 快眠係数
BASE:MASTER:기력 += MAXBASE:MASTER:기력 * 수면시간 / 快眠係数
BASE:MASTER:정력 += MAXBASE:MASTER:정력 * 수면시간 / 快眠係数

BASE:MASTER:체력 = MIN(MAXBASE:MASTER:체력, BASE:MASTER:체력)
BASE:MASTER:기력 = MIN(MAXBASE:MASTER:기력, BASE:MASTER:기력)
BASE:MASTER:정력 = MIN(MAXBASE:MASTER:정력, BASE:MASTER:정력)
BASE:MASTER:발기 = MIN(1000 * BASE:MASTER:체력 / MAXBASE:MASTER:체력, 1000)
;DEBUGPRINTFORM 기력{MAXBASE:MASTER:기력 * 수면시간 / 2 / (480 -120 * TALENT:MASTER:회복속도)}회복
CFLAG:MASTER:철야 = 0

IF 0 > BASE:MASTER:정력
	BASE:MASTER:기력 += BASE:MASTER:정력 * 5
	IF 0 > BASE:MASTER:기력
		PRINTFORMW 어제의 무리했던 사정의 반동이지 컨디션이 나쁘다……
		BASE:MASTER:체력 += BASE:MASTER:기력
		BASE:MASTER:기력 = 0
	ELSE
		PRINTFORMW 어제의 무리했던 사정의 반동인지 피로가 완전히 가시지 않았다
	ENDIF
	BASE:MASTER:정력 = 0
ENDIF

;의뢰의 발생과 소멸
CALL IRAI_HAPPEN
CALL IRAI_VANISH
CALL MEMO_IRAI_DEADLINE

IF FLAG:운세뽑기계약
	DRAWLINE
	PRINTFORML
	PRINTFORML ┌────────┐
	PRINTFORML ｜　　　　　　　　｜
	PRINTFORML ｜　　멋　진　　　｜
	PRINTFORML ｜　　운세뽑기　　｜
	PRINTFORML ｜　　　　　　　　｜
	PRINTFORML └────────┘
	PRINTFORMW
	CALL FORTUNE
	PRINTFORML
	DRAWLINE
ENDIF
IF FLAG:콜렉션스키마 != NOW_PERIOD() ;이하 NOW_PERIOD() 부분은 (DAY:0)/5 에서 수정됨
	IF FLAG:콜렉션스키마 < NOW_PERIOD()
		콜렉션스키마입수수 = 2
		역서입수수 = 1
	ELSE
	콜렉션스키마입수수 = (FLAG:콜렉션스키마 - NOW_PERIOD()) * 2
	역서입수수 = FLAG:콜렉션스키마 - NOW_PERIOD()
	ENDIF
	ITEM:콜렉션의스키마 = MIN(콜렉션스키마입수수 + ITEM:콜렉션의스키마, 10)
	ITEM:역서 = MIN(역서입수수 + ITEM:역서, 5)
	FLAG:콜렉션스키마 = NOW_PERIOD()
	PRINTL
	PRINTFORML ☆콜렉션의스키마가 조금 보충되어 있었다(현재：{ITEM:콜렉션의스키마}개)
	PRINTFORML ☆역서가 조금 보충되고 있었다(현재：{ITEM:역서}개)
ENDIF
IF !ITEM:미라다의돌 && (FLAG:미라다지급 < NOW_PERIOD()) ;KR판 구잔재. 일판에서는 주석처리
	CALL COLORMESSAGE(@"애욕을 독점하는 미라다의돌밀레니엄은 알고 있어? ", C_D_PINK, 2)
	PRINTFORMW ☆애욕을 독점하는 미라다의돌 밀레니엄이 지급되었다
	ITEM:미라다의돌 ++
	FLAG:미라다지급 = NOW_PERIOD()
ENDIF
;소작인 또한 월초(첫날 제외하다)라면 연공이 내세우고
;외박 해 도망 다니는 일도 할 수 없지는 않다
SIF FLAG:지주 && FLAG:연공 && (TARGET == FLAG:지주 || CFLAG:MASTER:현재위치 != OMANEKIBEYA())
	CALL NENGU_NOUMIN
CALL KODUCHI
CALL CHARA_MOVEMENT

;기상시에 머리맡에의 선물 판정을 실시한다
;CALL GET_GIFT

;조교자는 누군가
IF ASSIPLAY == 0
	PLAYER = MASTER
ELSE
	PLAYER = ASSI
ENDIF
;--------------------------------------------
;대청소
FOR LOCAL,1,11
SIF CFLAG:LOCAL:335 > 0
	CFLAG:LOCAL:335 -= 1
NEXT
SIF CFLAG:MASTER:335 > 0
	CFLAG:MASTER:335 -= 1

FOR LOCAL, 0, CHARANUM
	;의상 설정
	;행동중에 입는 옷을 설정해 갈아 입을 옷 한다
	IF LOCAL == MASTER || !수면시간(LOCAL)
		CALL SELECT_CLOTHES(LOCAL, "오늘의 의상")
		CALL SELECT_CLOTHES(LOCAL, "오늘의 파자마")
		CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
		SETBIT CFLAG:LOCAL:갈아입음실행, 0
	ELSE
		CALL SELECT_CLOTHES(LOCAL, "내일의 의상")
		CALL SELECT_CLOTHES(LOCAL, "오늘의 파자마")
		CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_파자마")
		CFLAG:LOCAL:파자마 = 1
		SETBIT CFLAG:LOCAL:갈아입음실행, 1
	ENDIF
	IF SPECIAL_OUTFIT(LOCAL)
		CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_의상세트", SPECIAL_OUTFIT(LOCAL))
		[IF_DEBUG]
		PRINTFORML %CALLNAME:LOCAL%는 평상시와 다른 옷으로 갈아입었습니다
		[ENDIF]
		TCVAR:LOCAL:어나더_평상복 = 1
	ENDIF
	CALL 속옷확인리셋(LOCAL)
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
NEXT

;발원함 리셋
CVARSET CFLAG, GETNUM(CFLAG, "다음날내방"), 0
FLAG:560 = 0
FLAG:561 = 0
IF FLAG:일시체재
	CFLAG:(FLAG:일시체재):초기위치 = CFLAG:(FLAG:일시체재):본래의초기위치
	CFLAG:(FLAG:일시체재):신사거주 = 0
	CFLAG:(FLAG:일시체재):거점내방 = 1
	FLAG:일시체재 = 0
ENDIF
;----------------------------------------------

;----------------------------------------------
;FileName_BEFORETRAIN.ERB -------------------------- Rev1. 00
;눈을 뜨고 공통 메시지 표시
;CALL		USER
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@GOODMORNING
#DIM 기상상황
#DIM 기상장소
#DIM 연회위치시정
#DIM  DYNAMIC CNT_BIRTHDAY
#DIMS DYNAMIC NAME_CHILD   , 10 * 캐릭터수상한 + 1
#DIM  DYNAMIC AGE_CHILD    , 10 * 캐릭터수상한 + 1
VARSET LOCAL
TARGET = 0
기상상황 = 0
기상장소 = 0

;MASTER와 동실의 캐릭터를 찾는다
FOR LOCAL,1,CHARANUM
	SIF CFLAG:MASTER:현재위치 == CFLAG:LOCAL:현재위치
		;TARGET 결정
		TARGET = LOCAL
NEXT
;타겟이 들어가면 표시
IF TARGET
	;IF CFLAG:TARGET:수면
	IF 수면시간(TARGET)
		;동거중
		IF CFLAG:MASTER:초기위치 == CFLAG:TARGET:초기위치
			;동거중 또한 상대가 자고 있다
			기상상황 = 3
			FOR LOCAL,0,CHARANUM
				CALL SET_TOGETHER(0,LOCAL,1)
			NEXT
			;MASTER와의 접촉 위치를 리셋
			CALL TOUCH_SET(0,0,0,1)
			;RETURN 1
		;비동거 중(방에서 나가므로 기상구상은 없음) 초대 취침 조건인 연모에게 왜 나가 버리는지 모르기 때문에 잠입이나 장난 때만 철퇴하도록 변경했습니다.		ELSE
		;덧붙여서 말하면 먼저 방주인이 밖에 나와 있을 경우, 방에 남겨진다. 만약 수면간 후 취침을 실장했을 때에는 여기서 요분기
		ELSE
			FOR LOCAL,0,CHARANUM
				CALL SET_TOGETHER(0,LOCAL,1)
			NEXT
			;MASTER와의 접촉 위치를 리셋
			CALL TOUCH_SET(0,0,0,1)
			;내 방이 아닌, 억울할 경우 이동 가능한 곳으로 이동
			SIF (CFLAG:TARGET:은밀중 || CFLAG:TARGET:장난) && CFLAG:MASTER:현재위치 != CFLAG:MASTER:초기위치
			CALL GETOUT(MASTER)
			;잠입해 OFF
			CALL SET_SNEAK(0,TARGET,2)
			;장난 OFF
			CALL SET_PRANK(0,TARGET,2)
		ENDIF
	ELSE
		;동거중
		IF CFLAG:MASTER:초기위치 == CFLAG:TARGET:초기위치
			;동거중 또한 상대가 일어나고 있다
			기상상황 = 2
			FOR LOCAL,0,CHARANUM
				CALL SET_TOGETHER(0,LOCAL,1)
			NEXT
			;MASTER와의 접촉 위치를 리셋
			CALL TOUCH_SET(0,0,0,1)
		;비동거중
		ELSE
			;비동거(同棲) 한편 상대가 일어나고 있다
			기상상황 = 1
			;MASTAR의 자기 방에서 기상했다
			IF CFLAG:MASTER:현재위치 == CFLAG:MASTER:311
				기상장소 = 1
				FOR LOCAL,0,CHARANUM
					CALL SET_TOGETHER(0,LOCAL,1)
				NEXT
				;MASTER와의 접촉 위치를 리셋
				CALL TOUCH_SET(0,0,0,1)
			;TARGET의 자기 방에서 기상했다(연모 첨부 상대의 방에서 동침 후 취침시만의 괄
			ELSEIF CFLAG:MASTER:현재위치 == CFLAG:TARGET:311
				기상장소 = 0
				FOR LOCAL,0,CHARANUM
					CALL SET_TOGETHER(0,LOCAL,1)
				NEXT
				;MASTER와의 접촉 위치를 리셋
				CALL TOUCH_SET(0,0,0,1)
			;그 이외(
			ELSE
				;어디서 자...?연모있는 캐릭터의 방에 다른 연모있는 캐릭터를 데리고 잤다..???
				기상장소 = -1
			ENDIF
			;잠입해 OFF
			CALL SET_SNEAK(0,TARGET,2)
			;장난 OFF
			CALL SET_PRANK(0,TARGET,2)
		ENDIF
		;CALL KOJO_EVENT(6, TARGET, 1)
		;동침 후인가 어떤가
		;동침 플래그가 서지 않기 때문에, 통상 기상만
		;IF CFLAG:MASTER:동침중
			;CALL KOJO_MESSAGE_SEND("EVENT", 2, TARGET, 2,0)
		;ELSE
		;ENDIF
	ENDIF
	SIF 기상상황 == 0 || 기상장소 == -1
		CALL MESSAGE_GOODMONING(기상상황, 기상장소)
	SIF 기상상황 && 기상장소 != -1
		CALL KOJO_MESSAGE_SEND("EVENT",2,TARGET, 기상상황, 기상장소)
ENDIF
IF FLAG:이상기상
	PRINTFORML 대기에는 심상치 않은 기색이 감돌고 있다
ELSE
	SELECTCASE TIME:5
		CASE 0,1
			PRINTL 좋은 날씨다.
		CASE IS & 4
			PRINTL 비가 내리고 있다.
		CASE IS & 8
			PRINTL 눈이 내리고 있다.
	ENDSELECT
ENDIF
IF FESTIVAL() != ""
	PRINTFORML 오늘은 %조사처리(FESTIVAL(),"다")%.
	CALL SEASONAL_MORNING
ENDIF
IF DAY == FLAG:개시일 && FLAG:연회개최플래그
;잔치날
	PRINTFORM 오늘은
	CALL 연회예정표시
	PRINTL 가 있다
	;여기서의 연회장 대입이라면 CHARA_MOVEMENT로 불안정이 나왔기 때문에 상부에 이동
	;FLAG:32 = GET_JOBPLACE("연회")
	IF TIME:3 >= FLAG:33
		FOR 연회위치시정, 1, CHARANUM
			IF CFLAG:연회위치시정:연회참가
				CFLAG:연회위치시정:직장 = TFLAG:연회장
				CFLAG:연회위치시정:현재위치 = TFLAG:연회장
			ENDIF
		NEXT
	ENDIF
ELSEIF DAY > FLAG:개시일 && FLAG:연회개최플래그
	CALL ENKAI_END()
	PRINTFORML %조사처리(EnkaiTitle,"는")% 끝났습니다
ENDIF
IF CHILD_HAPPY_BIRTHDAY(CNT_BIRTHDAY, NAME_CHILD, AGE_CHILD)
	PRINTFORM 오늘은
	FOR LOCAL, 1, CNT_BIRTHDAY + 1
		PRINTFORM %NAME_CHILD:LOCAL%(만{AGE_CHILD:LOCAL}세)
		SIF LOCAL == CNT_BIRTHDAY
			BREAK
		PRINTFORM  %조사만처리(NAME_CHILD:LOCAL,"와")%
	NEXT
	PRINTFORML  의 생일이다
ENDIF
CALL CHARA_MOVEMENT
SIF CFLAG:MASTER:지금바쁨
	PRINTFORML …아무래도 자위를 한 채로 자 버린 것 같다…

CALL TODAYS_CHARISMA

;----------------------------------------------
@KODUCHI
;요술망치의 대상
IF CFLAG:MASTER:요술망치 > 0
	CFLAG:MASTER:마력회수 -= 1
	LOCAL = CFLAG:MASTER:마력회수
	IF CFLAG:MASTER:요술망치 == 8
			PRINTFORMW 신묘마루의 몸은 원래대로 돌아갔다
		TALENT:71:체형 = -5
		IF CFLAG:71:초기위치 == 54 || CFLAG:71:현재위치 == 9
			CFLAG:71:현재위치 = 54
			CFLAG:71:초기위치 = 54
		ENDIF
	ELSEIF CFLAG:MASTER:요술망치 == 4
		IF CFLAG:MASTER:마력회수 < 1
			TALENT:MASTER:형상 = CFLAG:MASTER:382
		ELSE
			PRINTW 그렇게 컸던 물건이 비참한 것이 되고 있다…
			TALENT:MASTER:형상 = 2
		ENDIF
	ELSEIF CFLAG:MASTER:요술망치 == 5
		IF CFLAG:MASTER:마력회수 < 1
			TALENT:MASTER:형상 = CFLAG:MASTER:382
		ELSE
			PRINTW 2개 있던 장대가……한 개에…어디 가 아니게 되고 있다
			TALENT:MASTER:183 = 0
			TALENT:MASTER:형상 = 2
			BASE:MASTER:정력 -= MAXBASE:MASTER:정력 / 2
		ENDIF
	ELSEIF CFLAG:MASTER:요술망치 == 6
		SIF CFLAG:MASTER:마력회수 == 2
			PRINTFORMW %CALLNAME:MASTER%의 몸은 원래대로 돌아가고 있다
		TALENT:MASTER:100 = FLAG:원래체격
		IF CFLAG:MASTER:초기위치 == 54 || CFLAG:MASTER:현재위치 == 54
			CFLAG:MASTER:현재위치 = 9
			SIF CFLAG:MASTER:초기위치 == 54
				CFLAG:MASTER:초기위치 = Default초기위치
		ENDIF
	ELSEIF CFLAG:MASTER:요술망치 == 7
		;원래 크기에 되돌릴 뿐(만큼)이므로 변화 없음
	ENDIF
ENDIF
IF CFLAG:MASTER:마력회수 <= 0
	CFLAG:MASTER:요술망치 = 0
	CFLAG:MASTER:마력회수 = 0
ENDIF
;----------------------------------------------
;아침인사 공통구상
;기상상황 = 0: 비동거상대 잠 1: 비동거상대일어남 2:동거상대일어남 3:동거중 상대잠 4:
;기상장소 = 0:상대 방 1:내 방
;----------------------------------------------
@MESSAGE_GOODMONING(기상상황,기상장소)
#DIM 기상상황
#DIM 기상장소
PRINTFORML
SELECTCASE 기상상황
CASE 0
	;非同棲相手眠り
	IF !기상장소
		;とにかくやましい時のみ抜け出すよう変更
		PRINTFORMW %마스터가% 눈을 뜨니 옆에서 %타겟이% 자고 있었다
		IF CFLAG:TARGET:은밀중 || CFLAG:TARGET:장난
			IF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치
				PRINTFORMW %마스터는% %타겟이% 일어났을 때 어떻게 할지 생각했다…
			ELSE
				PRINTFORMW %타겟이% 눈치채지 못하게 %마스터는% 천천히 방을 빠져 나갔다…
			ENDIF
		ELSE
			PRINTFORMW %마스터는% 조용하게 %CALLNAME:TARGET%의 옆을 빠져 나가 하루의 준비를 시작했다
		ENDIF
	ELSE
		;今のところ死に分岐
		PRINTFORMW %마스터가% 눈을 뜨자 옆에서 %타겟이% 자고 있었다
		PRINTFORMW 어째서 %타겟이% 방에 있는 것일까 라고 조금 놀라면서도\@ BEDROOM(CFLAG:MASTER:현재위치) ? 이불 # 옆 \@을 빠져 나가, 하루의 준비를 시작했다
	ENDIF
CASE 1
	;非同棲相手起き
	IF 기상장소 == 0
		;초대방수면かな…？ 연모付き確定？
		PRINTFORMW %마스터가% 눈을 뜨자 %타겟과% 눈이 마주쳤다
		PRINTFORMW 아침의 인사를 한 후, %CALLNAME:TARGET%의 근처를 빠져 나가 하루의 준비를 시작했다
	ELSEIF 기상장소 == 1
		;自室にキャラを連れ込んだ後で（あなたの수면時間の方が早い）寝た場合や勝手に部屋に入ってくる場合（三月精とか割と頻繁）
		;自分で連れ込んだんじゃろがいっ！ って時は個人口上側で対処してください
		PRINTFORMW %마스터가% 눈을 뜨자 %타겟과% 눈이 마주쳤다
		PRINTFORMW 어째서 %타겟이% 방에 있는 것일까 라고 조금 놀라면서도\@ BEDROOM(CFLAG:MASTER:현재위치) ? 이불 # 옆 \@을 빠져 나가, 하루의 준비를 시작했다
	ELSE
		;ここはどこ、この子は誰状態 どうやったらこの分岐に来るかわからない…
		PRINTFORMW 어째서 이런 곳에서 자고 있고, 어째서 %타겟이% 옆에 있는 것일까 하는 의문이 들면서도,\@ BEDROOM(CFLAG:MASTER:현재위치) ? 이불 # 옆 \@을 빠져 나가 하루의 준비를 시작했다
	ENDIF
CASE 2
	;同棲相手起き
	PRINTFORMW %마스터가% 눈을 뜨자  %타겟과% 눈이 마주쳤다
	PRINTFORMW 잠시 동안 %타겟과% 아침의 인사를 주고 받고 나서\@ BEDROOM(CFLAG:MASTER:현재위치) ? 이불 # 옆 \@을 빠져 나가 하루의 준비를 시작했다
CASE 3
	;同棲相手眠り
	PRINTFORMW %마스터가% 눈을 뜨자 옆에서 아직 %타겟이% 새근새근 자고 있었다
	PRINTFORMW %마스터가% %타겟을% 깨우지 않도록 \@ BEDROOM(CFLAG:MASTER:현재위치) ? 이불 # 옆 \@을 빠져 나가 하루의 준비를 시작했다
ENDSELECT
PRINTFORML
RETURN 1

;----------------------------------------------

@InitializeBeforeTrain(ARG)
CFLAG:ARG:면간발각 = 0
CFLAG:ARG:전턴위치 = 0
CFLAG:ARG:데이트중 = MAIN_MAP
CFLAG:ARG:졸음쫒기강도 = 0
CFLAG:ARG:오늘의운세 = RAND:1000
;사정、발기、무드、이성、분노
BASE:ARG:사정 = 0
BASE:ARG:발기 = 0
BASE:ARG:무드 = 0
BASE:ARG:이성 = MAXBASE:ARG:11
BASE:ARG:분노 = 0
BASE:ARG:술기운 = 0
BASE:ARG:발기 = 0
BASE:ARG:심도 = 0
CFLAG:ARG:발기도 = 0
;행동はリセット
CFLAG:ARG:행동 = 0
;덮침侵入リセット
CLEARBIT CFLAG:ARG:42,8
;경험표시用
FOR LOCAL:1,0,100
	TCVAR:ARG:(400 + LOCAL:1) = EXP:ARG:(LOCAL:1)
NEXT
CALL SETTING_PERSONALITY(ARG)
;性交フラグ
TEQUIP:ARG:50 = -1
TEQUIP:ARG:51 = -1
TCVAR:ARG:100 = -1
TCVAR:ARG:101 = -1
;中出し表示用フラグ
TCVAR:ARG:103 = -1
TCVAR:ARG:105 = -1
;수면제차関連
TCVAR:TARGET:수면제차사용 = 0
;사정処理用文字列変数
CSTR:ARG:10 = /
CSTR:ARG:11 = /
;生活時間設定
SIF ARG != MASTER
	CALL 생활시간설정(ARG)
SIF IN_HOME(CFLAG:ARG:초기위치) != 1 & CFLAG:ARG:수면
	CALL SET_SLEEP(0,ARG,0)
RESET_STAIN ARG

@SleepSoundly
#DIM 安眠補正
SIF FLAG:기절중단
	RETURN 0
SIF CFLAG:MASTER:철야
	RETURN 0
SIF CFLAG:MASTER:초대
	RETURN 0
;安眠枕の補正
IF ITEM:스위티숙면배개
	安眠補正 = MIN(RAND:(SQRT(FLAG:튜토리얼글누계 + 1)), 40)
	SELECTCASE 安眠補正
		CASE IS > 30
			PRINTFORMW 배개 덕분인지 굉장한 느낌의 기상이다!
		CASE IS > 20
			PRINTFORMW 배개 덕분인지 피로가 꽤나 풀린 듯한 느낌이다.
	ENDSELECT
ELSE
	安眠補正 = 0
ENDIF
;ベッドの補正
IF ITEM:오동나무침대
	SELECTCASE ITEM:오동나무침대
		CASE 1
			安眠補正 += RAND:20 + RAND:20
		CASE 2
			安眠補正 += RAND:30 + RAND:30
		CASE 3
			安眠補正 += RAND:40 + RAND:40
	ENDSELECT
ENDIF

RETURN 安眠補正


code:
;FileName_DATE_CMN.ERB ----------------------------- Rev1. 00
;데이트 사키나 취득 함수
;CALL		USER
;ARG		VOID
;RETURN		데이트 사키나
;COMMENT
;-----------------------------------------------------------
@DATENAME_PLACE()
#FUNCTIONS
SIF TFLAG:망상중 == 1
	RETURNF "망상"
SIF CHK_DATENOW(CFLAG:MASTER:데이트중) == 0
	RETURNF ""
RETURNF STR:(CFLAG:MASTER:데이트중 + 5000)

;FileName_DATE_CMN.ERB ----------------------------- Rev1. 00
;데이트 지점 나토리 이득 함수
;CALL		USER
;ARG		VOID
;RETURN		데이트 지점명
;COMMENT
;-----------------------------------------------------------
@DATENAME_SPOT()
#FUNCTIONS
SIF CHK_DATENOW(CFLAG:MASTER:데이트중) == 0
	RETURNF ""
SIF TFLAG:데이트도중
	RETURNF "도중"
RETURNF NAME_FROM_PLACE(CFLAG:MASTER:현재위치)

;FileName_DATE_CMN.ERB ----------------------------- Rev1. 00
;데이트 지점 번호 취득 함수
;CALL		USER
;ARG		VOID
;RETURN		데이트 지점 NO
;COMMENT
;-----------------------------------------------------------
@DATE_SPOT()
#FUNCTION
RETURNF CFLAG:MASTER:현재위치 % 100 / 10

;FileName_DATE_CMN.ERB ----------------------------- Rev1. 00
;데이트처 아르바이트 가부
;CALL		USER
;ARG		현재위치
;RETURN		아르바이트처 종류
;COMMENT
;-----------------------------------------------------------
@DATE_PARTTIME(ARG)
#FUNCTION
RETURNF ODEKAKEMAP_SETTING(ARG, "아르바이트")

;お金稼ぎが封印中なのでここも封印
SELECTCASE ARG
	;특수 아르바이트 앞
	CASE 240,450,520,540,650,830
		RETURNF ARG
	;%데이트처%로 아르바이트 해∼…
	CASE 220,230,320,330,460
		RETURNF 2
	;%데이트처%로 식재료 모음을 해∼…
	CASE 350,410,430,440,510,530,630,710,810
		RETURNF 1
ENDSELECT
RETURNF 0

;FileName_DATE_CMN.ERB ----------------------------- Rev1. 01
;데이트 돌아가 이벤트 (CFLAG:13)
;CALL		USER
;ARG		캐릭터 NO
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@DATE_EVENT(ARG)
#DIM 주부족
#DIM 경험부족

VARSET LOCAL
;캔슬 플래그(외부 참조에서 사용예:LOCAL@DATE_EVENT:99 = 1
LOCAL:99 = 0
;파라미터에 의한 발생 기초치 생성

LOCAL = MARK:ARG:괘씸각인 * 10 + MARK:ARG:쾌락각인 * 10
IF TALENT:ARG:연모
	LOCAL += MIN(ABL:ARG:친밀 * 10, 200) + MIN(ABL:ARG:욕망 * 10,200) + MIN(ABL:ARG:봉사정신 * 10,200)
	LOCAL += MIN(EXP:ARG:데이트경험, 200) + MIN(EXP:ARG:애정경험, 200)
ELSEIF TALENT:ARG:사모
	LOCAL += MIN(ABL:ARG:친밀 * 10, 100) + MIN(ABL:ARG:욕망 * 10,100) + MIN(ABL:ARG:봉사정신 * 10,100)
	LOCAL += MIN(EXP:ARG:데이트경험, 100)
ENDIF
LOCAL += GETPALAMLV(PALAM:ARG:욕정, 10) * 5 + GETPALAMLV(PALAM:ARG:호의, 10) * 5 + GETPALAMLV(PALAM:ARG:공순, 10) * 5
;60
LOCAL += BASE:ARG:무드 / 50 + (1000 - BASE:ARG:이성) / 30
LOCAL += TALENT:ARG:담력 * 10 + TALENT:ARG:성적흥미 * 10 - TALENT:ARG:자제심 * 10 - TALENT:ARG:무관심 * 10
DEBUGPRINTFORML 【DATE_EVENT({ARG})】DateEvent_Checksum = {LOCAL}
;헤어질 때에 선물
CALL GIFT(ARG)
IF RESULT == 1
;합의없음(키스 성공하지 않다)
ELSEIF !(CFLAG:ARG:1 & 1) && !(CFLAG:ARG:13 & 1)
	;성공 판정
	IF (LOCAL > 220 + TALENT:ARG:일선을넘지않음 * 30 + ABS(TALENT:ARG:키스미경험 * 20)) && CFLAG:ARG:합의판정 > 180 && (TALENT:ARG:사모 || TALENT:ARG:연모)
		CALL KOJO_MESSAGE_SEND("SP_EVENT", 1, ARG, 0)
		;캔슬 플래그
		IF !TCVAR:ARG:키스캔슬
			CALL ADD_KISS(ARG)
			SETBIT CFLAG:ARG:데이트후이벤트플래그 , 0
		ENDIF
	ELSEIF !MARK:ARG:반발각인
		CALL KOJO_MESSAGE_SEND("SP_EVENT", 3, ARG, 0)
	ENDIF
;반발각인 소거 처리
ELSEIF MARK:ARG:반발각인 && LOCAL > 50
	;ABL:친밀 LVUP 처리 혼잡. 해독이 귀찮았기 때문에 요소들들 취해 타…
	FOR LOCAL, 0,4
		주부족 = 0
		경험부족 = 0
		SIF JUEL_DEMAND(9, LOCAL, 0, ARG) == -2
			BREAK
		SIF JUEL_DEMAND(9, LOCAL, 0, ARG) < 0
			CONTINUE
		;필요한 보주를 찾는다
		FOR LOCAL:1, 0,100
			IF JUEL_DEMAND(9, LOCAL, LOCAL:1, ARG) > 0
				IF JUEL:(ARG):(LOCAL:1) < JUEL_DEMAND(9, LOCAL, LOCAL:1, ARG) / 2
					주부족 ++
					BREAK
				ENDIF
			ENDIF
		NEXT
		SIF 주부족
			CONTINUE
		;필요한 경험을 찾는다
		FOR LOCAL:1, 0,100
			IF EXP_DEMAND(9, LOCAL, LOCAL:1, ARG) > 0
				IF  EXP:(ARG):(LOCAL:1) < EXP_DEMAND(9, LOCAL, LOCAL:1, ARG) / 2
					경험부족 ++
					BREAK
				ENDIF
			ENDIF
		NEXT
		SIF 경험부족
			CONTINUE
		;여기까지 올 수 있으면(자) 반발각인 소거
		;요컨데 데이트로 좋은 분위기＋친밀 LVUP 수준이1/2채우면(자) 반발 소거
		MARK:ARG:반발각인 --
		CALL KOJO_MESSAGE_SEND("SP_EVENT", 3, ARG, (MARK:ARG:반발각인 + 1))
		PRINTL
		IF MARK:ARG:반발각인
			PRINTFORMW %CALLNAME:ARG%는 반발각인 LV{MARK:ARG:반발각인}에 내렸다
		ELSE
			PRINTFORMW %CALLNAME:ARG%는 반발각인 LV1를 잃었다
		ENDIF
		BREAK
	NEXT
;고백하고 있지 않다(MASTER에 연인이 없다)
ELSEIF !(CFLAG:ARG:1 & 4) && !(CFLAG:ARG:13 & 2) &&  !FLAG:고백금지 && CAN_MAKE_연인()
	;성공 판정
	IF (LOCAL > 530 + TALENT:ARG:일선을넘지않음 * 20)
		CALL KOJO_MESSAGE_SEND("SP_EVENT",2,ARG,0)
		IF 스친연인수 == 100 && TALENT:ARG:스침
			PRINTFORML 　- 포말의 사랑의 상대는 100명까지 밖에 기억할 수 없습니다
			PRINTFORML 　　받았을 경우, 지금까지의 누군가의 이름을 잊어 버립니다 -
		ELSEIF FLAG:추가연인수 > 0
			PRINTFORML 　- 연인은{1 + FLAG:추가연인수}인까지로 밖에 취득 할 수 없습니다 -
		ELSE
			;나올 수 없는 경우의 수
			PRINTFORML 　- 연인의 수에 제한은 없습니다 -
		ENDIF
		PRINTFORML %CALLNAME:ARG%의 고백을…
		CALL ASK_YN("받는다","거절한다")
		IF !RESULT
			SETBIT CFLAG:ARG:기정사실 , 2
			SETBIT CFLAG:MASTER:기정사실, 2
			TALENT:MASTER:연인 = 1
			CALL SET_연인(NO:ARG)
			SETBIT CFLAG:ARG:데이트후이벤트플래그 , 1
			CALL KOJO_MESSAGE_SEND("SP_EVENT",2,ARG,1)
			PRINTL
			PRINTFORMW %ARG와% 연인이 되었습니다
		ELSE
			CALL KOJO_MESSAGE_SEND("SP_EVENT",2,ARG,2)
		ENDIF
	;贈り物イベント
	ELSEIF GIFT_DATE_CHECK(ARG)
		CALL GIFT_DATE_EVENT(ARG)
	ELSEIF !MARK:ARG:반발각인
		CALL KOJO_MESSAGE_SEND("SP_EVENT",3,ARG,0)
	ENDIF
;贈り物イベント
ELSEIF GIFT_DATE_CHECK(ARG)
	CALL GIFT_DATE_EVENT(ARG)
ELSE
	CALL KOJO_MESSAGE_SEND("SP_EVENT",3,ARG,0)
ENDIF

@GIFT(ARG)
#DIM 호감도상승치
#DIM 선물평가
;데이트전호감도와 현호감 도를 비교
호감도상승치 = CFLAG:ARG:2 - TFLAG:데이트전호감도
IF DAY:2 == 4 && DAY:3 == 24 && ITEM:94 && TFLAG:데이트전호감도
	PRINTFORML 크리스마스선물을 건네줄까?
	CALL ASK_YN
	IF !RESULT
		PRINTFORMW %CALLNAME:ARG%에 선물을 건네주었다
		ITEM:94 = 0
		IF TALENT:ARG:연인
			PRINTFORMW %CALLNAME:ARG%의 얼굴이 순식간에 붉게 물들어 간다
			PRINTFORMW ……볼에 쪽 해 줄 수 있었다
			선물평가 = 10
		ELSEIF TALENT:ARG:연모
			PRINTFORMW %CALLNAME:ARG%의 얼굴이 순식간에 붉게 물들어 간다
			PRINTFORMW 선물을 받은 %CALLNAME:ARG%는 행복 그 자체라고 하는 느낌이다
			선물평가 = 7
		ELSEIF TALENT:ARG:사모
			PRINTFORML %CALLNAME:ARG%는 놀라면서도 기꺼이 받아 주었다
			PRINTFORML 스트레이트하게 호의를 나타난%CALLNAME:ARG%는, %마스터를% 한층 더 의식한 것 같다
			선물평가 = 5
		ELSE
			PRINTFORMW %CALLNAME:ARG%는 고가의 물건을 건네받았던 것에 당황해도 있는 것 같지만, 그다지도 아닌 것 같다
			선물평가 = 2
		ENDIF
		CFLAG:ARG:2 += 호감도상승치 * 선물평가 / 5
		CFLAG:ARG:4 += 호감도상승치 * 선물평가 / 10
		RETURN 1
	ELSE
		RETURN 0
	ENDIF
ELSE
	RETURN 0
ENDIF

@WITH_연인(ARG)
#FUNCTION
;연인의 몇 사람과 ARG가 같은 장소에 있을까를 돌려준다
VARSET LOCAL
SIF ARG == 0
	ARG = MASTER
FOR LOCAL,1,CHARANUM
	SIF CFLAG:LOCAL:현재위치 == CFLAG:ARG:현재위치 && TALENT:LOCAL:연인
		LOCAL:1 ++
NEXT
RETURNF LOCAL:1

@CAN_MAKE_연인()
#FUNCTION
;연인が今何人いるかカウント
VARSET LOCAL
FOR LOCAL, 1, CHARANUM
	SIF TALENT:LOCAL:연인
		LOCAL:1 ++
NEXT
;KR판 오리지날 복수연인 대응용 주석처리
;SIF LOCAL:1 < (1 + FLAG:추가연인수)
;	RETURNF 1
;RETURNF 0
RETURNF 1
;===========================================
;키스경험やファーストキス処理などをまとめてやる関数
;===========================================
@ADD_KISS(ARG)
IF TALENT:MASTER:키스미경험
	CALL SET_FIRSTKISS(MASTER, ARG, 1)
	EXP:ARG:애정경험 += 10
ENDIF
IF TALENT:ARG:키스미경험
	CALL SET_FIRSTKISS(ARG, MASTER, 1)
	EXP:ARG:애정경험 += 10
ENDIF
EXP:ARG:키스경험 ++
EXP:MASTER:키스경험 ++
SETBIT CFLAG:ARG:기정사실 , 0


code:
@TURN_RESET
;처녀상실
FOR LOCAL, 0, CHARANUM
	SIF !TCVAR:LOCAL:파과
		CONTINUE
	IF TCVAR:LOCAL:파과 == 1
		IF TALENT:LOCAL:처녀 == 1
			TALENT:LOCAL:처녀 = 0
			EX:LOCAL:처녀상실체크 = 1
		ENDIF
		IF LOCAL && (FLAG:시간정지 || TCVAR:LOCAL:만취 || CFLAG:LOCAL:수면)
			TALENT:LOCAL:처녀 = -1
			EX:LOCAL:처녀상실체크 = 1
			CFLAG:LOCAL:292 = 1
		ENDIF
	ENDIF
	IF TCVAR:LOCAL:파과 == 2 && TALENT:LOCAL:처녀 == 2
		TALENT:LOCAL:처녀 = 0
		EX:LOCAL:처녀상실체크 = 2
	ENDIF
	IF TCVAR:LOCAL:파과 == -1 && TALENT:LOCAL:처녀 == -1
		TALENT:LOCAL:처녀 = 0
		EX:LOCAL:처녀상실체크 = 1
	ENDIF
NEXT

;동정상실
IF HAS_PENIS(MASTER)
	SELECTCASE SELECTCOM
		CASE 60, 61, 65, 67, 68, 320, 322
			TALENT:MASTER:1 |= 1
		CASE 62, 63, 66, 69, 70, 323
			TALENT:MASTER:1 |= 2
	ENDSELECT
ENDIF
IF HAS_PENIS(TARGET)
	SELECTCASE SELECTCOM
		CASE 64
			TALENT:1 |= 1
		CASE 92, 93, 94
			TALENT:1 |= 2
		CASE 71
			IF MASTER_POSE(SET_V, SET_P, 1)
				TALENT:1 |= 2
			ELSE
				TALENT:1 |= 1
			ENDIF
	ENDSELECT
ENDIF

;키스 성공
;합의 취득
SIF (SELECTCOM == 312 || SELECTCOM == 602) && TFLAG:193 != 99 && !CFLAG:MASTER:장난
	SETBIT CFLAG:기정사실, 0

;고백 성공
;연인 취득
IF SELECTCOM == 352 && TFLAG:193
	SETBIT CFLAG:기정사실, 2
	SETBIT CFLAG:MASTER:기정사실, 2
	TALENT:MASTER:연인 = 1
	CALL SET_연인(NO:TARGET)
	;섹프 삭제
	IF TALENT:TARGET:섹프 == 1
		TALENT:TARGET:섹프 = 0
	ENDIF
ENDIF
;; 프로포즈 성공
IF SELECTCOM == 380 && TFLAG:193
	SETBIT CFLAG:기정사실, 5
	SETBIT CFLAG:MASTER:기정사실, 5
	SETBIT TALENT:연인,1
	CALL SET_아내(NO:TARGET)
	ITEM:약혼반지=0
	FLAG:엔딩여부=1
	;섹프 삭제
	IF TALENT:TARGET:섹프 == 1
		TALENT:TARGET:섹프 = 0
	ENDIF
ENDIF

;식사
SIF SELECTCOM == 414 || SELECTCOM == 415
	CALL RESET_DISH

;デート道中の進行
IF TFLAG:데이트도중 > 1000
	;開始時は+1000して設定値に戻すだけ
	TFLAG:데이트도중 -= 1000
ELSEIF TFLAG:데이트도중
	SIF !CFLAG:MASTER:우후후
		TFLAG:데이트도중 = TFLAG:데이트도중 - TIME_PROGRESS(TIME:1)
	IF TFLAG:데이트도중 <= 0
		PRINTFORMW %DATENAME_PLACE()%에 도착했습니다
		TFLAG:데이트도중 = 0
		CFLAG:MASTER:현재위치 = GET_ENTRANCE(CFLAG:MASTER:데이트중)
		CFLAG:(FLAG:데이트상대):현재위치 = CFLAG:MASTER:현재위치
	ENDIF
ENDIF

;조교 이력을 1 턴 보존
FOR LOCAL, 0, CHARANUM
	SIF CFLAG:LOCAL:현재위치 == SUKIMA()
		CONTINUE
	TCVAR:LOCAL:110 = TCVAR:LOCAL:10
	TCVAR:LOCAL:112 = TCVAR:LOCAL:12

	SIF TCVAR:LOCAL:102
		TCVAR:LOCAL:102 --
	SIF !TCVAR:LOCAL:102
		TCVAR:LOCAL:103 = -1
	SIF TCVAR:LOCAL:104
		TCVAR:LOCAL:104 --
	SIF !TCVAR:LOCAL:104
		TCVAR:LOCAL:105 = -1
	;체위의 보존
	FOR LOCAL:1, 1, 11
		TEQUIP:LOCAL:(110 + LOCAL:1) = TEQUIP:LOCAL:(100 + LOCAL:1)
	NEXT
	;몸의자세제어
	IF TCVAR:LOCAL:몸의자세제어
		TCVAR:LOCAL:몸의자세제어 --
		SIF TCVAR:LOCAL:몸의자세제어 == 0
			TCVAR:LOCAL:몸의자세 = 0
	ENDIF
	;위치관계제어
	IF TCVAR:LOCAL:위치관계제어
		TCVAR:LOCAL:위치관계제어 --
		SIF TCVAR:LOCAL:위치관계제어 == 0
			TCVAR:LOCAL:위치관계 = 0
	ENDIF
	;내친 김에 사정 처리용 캐릭터라인 변수의 초기화
	CSTR:LOCAL:10 = /
	CSTR:LOCAL:11 = /
	;복장 플래그
	IF FLAG:시간정지 == 1
	ELSE
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
	ENDIF
	IF BATHROOM(CFLAG:LOCAL:현재위치) && GET_MAPID(CFLAG:LOCAL:현재위치) == MAIN_MAP
		;목욕탕 플래그는 MOVEMENT공통처리에 이동했습니다
;		CFLAG:LOCAL:목욕탕 = 0
		RESET_STAIN LOCAL
		CFLAG:LOCAL:질내사정 = 0
		CFLAG:LOCAL:애널사정 = 0
		CFLAG:LOCAL:구내정액 = 0
		CFLAG:LOCAL:안면정액 = 0
		CFLAG:LOCAL:손에정액 = 0
	ELSEIF CFLAG:LOCAL:목욕탕 > 120 && !CFLAG:LOCAL:우후후
		STAIN:LOCAL:4 |= 더러운_애널
	ENDIF
NEXT
;BASE의 변동
FOR LOCAL, 0, CHARANUM
	SIF CFLAG:LOCAL:현재위치 == SUKIMA()
		CONTINUE
	;발기도
	;가산 후
	CFLAG:LOCAL:발기도2 = BASE:LOCAL:발기
	BASE:LOCAL:발기 = MIN(MAXBASE:LOCAL:발기, BASE:LOCAL:발기)
	IF NOWEX:LOCAL:사정
		IF !MASTER_POSE(SET_V, SET_P) && !MASTER_POSE(SET_A, 1)
			BASE:LOCAL:발기 = BASE:LOCAL:발기 * (ABL:LOCAL:욕망 + 1) * (BASE:LOCAL:정력 + 200) / ((MAXBASE:LOCAL:정력 + 200) * (ABL:LOCAL:욕망 + 10))
		ELSE
			BASE:LOCAL:발기 = 1000
		ENDIF
	ENDIF
NEXT

SIF CFLAG:MASTER:우후후
	CALL 우후후중특수이벤트

;플래그의 리셋
TFLAG:192 = 0
TFLAG:193 = 0
TFLAG:194 = 0
TSTR:2 =

;TCVAR의 리셋
FOR LOCAL, 0, CHARANUM
	SIF CFLAG:LOCAL:현재위치 == SUKIMA()
		CONTINUE
	FOR LOCAL:1, 0, 100
		TCVAR:LOCAL:(LOCAL:1) = 0
	NEXT
;삽입 이력
	TCVAR:LOCAL:100 = TEQUIP:LOCAL:50
	TCVAR:LOCAL:101 = TEQUIP:LOCAL:51
NEXT

TFLAG:110 = TCVAR:MASTER:친해져

;FIRSTTIME에 SELECTCOM를 처넣는다
CALLF FIRSTTIME(SELECTCOM)
FOR LOCAL, 1, CHARANUM
	SIF EXP_UP(15, LOCAL)
		CALLF FIRSTTIME("정음", 0, LOCAL)
NEXT
;사정장소
FOR LOCAL:1, 0, 60
	IF GETBIT(TFLAG:1, LOCAL:1)
		LOCALS = "사정"{LOCAL:1}
		CALLF FIRSTTIME(LOCALS, 0, TARGET)
	ENDIF
NEXT
PREVCOM = SELECTCOM
;파생 커맨드의 이력
TFLAG:151 = TFLAG:50
;전회의 TARGET
IF TFLAG:전회커맨드결과 > 0
	TFLAG:103 = TARGET
	TFLAG:150 = ASSIPLAY
ENDIF

;경험치취표시용
FOR LOCAL, 0, CHARANUM
	SIF CFLAG:LOCAL:출금
		CONTINUE
	;현재위치의 보존
	CFLAG:LOCAL:전턴위치 = CFLAG:LOCAL:현재위치
	FOR LOCAL:1, 0, 100
		TCVAR:LOCAL:(400 + LOCAL:1) = EXP:LOCAL:(LOCAL:1)
	NEXT
NEXT
IF BATHCHECK(CFLAG:MASTER:현재위치) && !FLAG:시간정지 && AT_HOME(MASTER)
	FOR LOCAL, 1, CHARANUM
		SIF 목욕탕추방조건(LOCAL) && CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치
			CALL 목욕탕으로부터내쫒아(LOCAL)
		;MASTERが追い出されたならループ終了
		SIF BATHCHECK(CFLAG:MASTER:현재위치) == 0
			BREAK
	NEXT
ENDIF
;TFLAG의 리셋
VARSET TFLAG, 0, 0, 100
TFLAG:400 = 0
TFLAG:이동불능메시지 = 0
;졸리면 기력이 감소해 나간다
IF !CFLAG:MASTER:수면
	IF NEMUKE() >= 960
		BASE:MASTER:체력 = MAX(BASE:MASTER:체력 - 5 * TIME_PROGRESS(TIME:1) , 0)
		BASE:MASTER:기력 = MAX(BASE:MASTER:기력 - 10 * TIME_PROGRESS(TIME:1) , 0)
	ELSEIF NEMUKE() >= 840
		BASE:MASTER:기력 = MAX(BASE:MASTER:기력 - 2 * TIME_PROGRESS(TIME:1) , 0)
	ENDIF
ENDIF

@우후후중특수이벤트
#DIM 탈주도권확률
VARSET LOCAL
;당신 주도
IF CFLAG:TARGET:우후후 == 1 && CFLAG:욕구불만도 > 300 && !TCVAR:TARGET:억지로
;공수 역전
	IF SHIRAHU(TARGET) && TEQUIP:TARGET:체위 == 3
		;강할 만큼(정도) 확률이 높은→분모는 작다
		;1/확률
		탈주도권확률 = 15
		탈주도권확률 -= TALENT:TARGET:담력 * 2
		탈주도권확률 -= TALENT:TARGET:응답 * 2
		탈주도권확률 -= TALENT:TARGET:자존심 * 2
		탈주도권확률 += TALENT:TARGET:자제심 * 3
		탈주도권확률 -= TALENT:TARGET:성적흥미 * 3
		탈주도권확률 += TALENT:TARGET:수치심 * 2
		탈주도권확률 -= TALENT:TARGET:새드 * 5
		탈주도권확률 += TALENT:TARGET:마조 * 5

		;RAND에 건네주므로 최저치는 1
		SIF 탈주도권확률 < 1
			탈주도권확률 = 1
		IF !RAND(탈주도권확률)
			CFLAG:MASTER:우후후 = 2
			TFLAG:COMABLE관리 = 3
			FOR LOCAL, 1, CHARANUM
				IF CFLAG:MASTER:현재위치 == CFLAG:LOCAL:현재위치
					CFLAG:LOCAL:우후후 = 2
					LOCAL:1 ++
				ENDIF
			NEXT
			PRINTFORML 정신을 차려보니, %CALLNAME:TARGET%\@ LOCAL:1 > 1 ? 들 #  \@에게 주도권을 빼앗겨 있었다
		ENDIF
	ENDIF
;상대 주도
ELSEIF CFLAG:TARGET:우후후 == 2
	IF TARGET == RANDOM_CHARANUM && TALENT:TARGET:풍속양 && (BASE:기력 <= 0 || CFLAG:욕구불만도 <= 0)
		PRINTFORML %조사처리(CALLNAME:TARGET, "는")% \@ BASE:기력 <= 0 ? 조금 피곤한 # 만족스러운 \@ 모습으로 주도권을 양보해 왔다
		CFLAG:TARGET:우후후 = 1
		CFLAG:MASTER:우후후 = 1
	ELSEIF BASE:기력 <= 0
		PRINTFORML %타겟은% 조금 피곤하다고 말하며 %마스터를% 해방했다
		CALL 덮쳐지기종료("지쳤다")
	ELSEIF CFLAG:욕구불만도 <= 0 && !TCVAR:TARGET:마음대로해
		PRINTFORML %타겟은% 만족한 것 같다
		CALL KIGEN_CHANGE(TARGET, 100,1)
		BASE:분노 = 0
		CFLAG:언짢음 = 0
		CALL ASK_M("빠져나간다",1,"이쪽은 아직 만족스럽지 않다",1,"좀 더 공격해줘", ABL:새드끼 >= 3)
		SELECTCASE RESULT
			CASE 0
				PRINTFORML %타겟은% %마스터를% 해방했다
				CALL 덮쳐지기종료("만족")
			CASE 1
				PRINTFORML %마스터는% %타겟을% 밀어 넘어뜨렸다
				CALL KOJO_MESSAGE_SEND("EVENT", 30, TARGET, 3)
				FOR LOCAL, 0, CHARANUM
					CFLAG:(TARGET:LOCAL):우후후 = 1
					IF INROOM(CFLAG:MASTER:현재위치) == 2
						CALL DATUI_SHOES(LOCAL, 0)
						CALL DATUI_SHOES(MASTER, 0)
					ENDIF
				NEXT
			CASE 2
				PRINTFORML %타겟은% 눈을 가늘게 뜨고, 그러면 망가질 때까지 해주겠다고 속삭였다
				CALL KOJO_MESSAGE_SEND("EVENT", 30, TARGET, 4)
				TCVAR:TARGET:마음대로해 = 1
		ENDSELECT
	ENDIF
ENDIF

@목욕탕추방조건(ARG)
#FUNCTION
SIF FLAG:70
	RETURNF 0
SIF !GETBIT(TALENT:MASTER:2, 1) && HETEROSEX(MASTER, ARG)
	RETURNF 0
SIF TALENT:ARG:수치심 < 0 && ABL:ARG:친밀 >= 5
	RETURNF 0
SIF TALENT:ARG:무지 && ABL:ARG:친밀 >= 5
	RETURNF 0
SIF CFLAG:ARG:우후후
	RETURNF 0
SIF CFLAG:ARG:태도 < 2
	RETURNF 1
SIF CFLAG:ARG:기정사실 < 1
	RETURNF 1
SIF !(TALENT:ARG:연모 || TALENT:ARG:섹프)
	RETURNF 1

RETURNF 0