원본 소스 코드는 이러함


여기서 가져옴


;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


중요한 부분은 ;성공 판정 아래의 코드임


    IF (LOCAL > 220 + TALENT:ARG:일선을넘지않음 * 30 + ABS(TALENT:ARG:키스미경험 * 20)) && CFLAG:ARG:합의판정 > 180 && (TALENT:ARG:사모 || TALENT:ARG:연모)


LOCAL이 220 + 일선을넘지않음 X 30 + 키스미경험 X 20보다 높으며,

또한 CFLAG:ARG:합의판정이 180보다 높으며, 또한 사모 또는 연모 상태여야 한다. 


라는 최종 조건을 만족했을 때 키스 이벤트가 발생하고 구상 내부에서 키스캔슬 TCVAR를 세우지 않았다면 ADD_KISS를 실행함.


LOCAL은 위에서 유리한 판정값을 더하고 불리한 판정값을 뺀 합계치이고, 일선을넘지않음 소질이 있다면 허들이 높아지고 키스미경험이라면 허들이 또다시 높아진다고 이해하면 됨. ABS()로 절댓값을 따지는 이유는 펠라 경험은 있는데 키스 미경험인 경우 -1으로 기록되기 때문.


그 위에 있는 ELSEIF 문에는 이렇게 써있는데 


ELSEIF !(CFLAG:ARG:1 & 1) && !(CFLAG:ARG:13 & 1)


!(CFLAG:ARG:1 & 1)은... &가 비트 비교 연산자인데 비트로 기록되는 기정사실 CFLAG 중 키스 부분. 즉 아나타와 키스를 하고 있지 않은 경우를 나타냄


!(CFLAG:ARG:13 & 1)은 데이트 후 이벤트 플래그임. 이미 데이트 후 키스 이벤트가 발생한 경우에는 이벤트를 실행하지 않는다는 뜻임.


SETBIT CFLAG:ARG:데이트후이벤트플래그 , 0

데이트 후 키스 이벤트가 발생했을 때 구문에서 CFLAG:13의 0비트 (즉 1)에 플래그가 세워졌다고 기록함. 캐릭터 당 한번만 볼 수 있다는 거.


그리고 그 위에 주석이 잘못됐는데

CALL GIFT(ARG)

라는 함수에서 0을 반환한 경우에만 데이트 후 이벤트를 실행하도록 되어있음.

그런데 이건 크리스마스 선물 전달하는 이벤트라 전달하지 않았으면 0을 반환하는 내용이라 주석 내용이랑 매치는 안 하네.


그럼 이제 처음부터 다시 보는데


VARSET LOCAL

은 LOCAL이라는 변수의 값을 초기화하는 명령어임.

밑에서 LOCAL 변수의 값을 가지고 판정을 하는데 다른 함수에서 조작한 내용이 남아있으면 안되니까 당연하지.


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 에 괘씸각인 X 10 과 쾌락각인 X 10을 더하고

사모일 경우 친밀 X 10 , 욕망 X 10, 봉사정신 X 10, 데이트 경험, 연모일 경우 추가로 애정경험을 LOCAL에 더함.


MIN()은 여러 숫자 중 작은 쪽을 선택해서 전달하는 식중함수인데 주로 한계치를 표현하는데 쓰임. 여기서는 사모일 때 데이트 경험이 101, 친밀이 11 이상이더라도 100을 더한다는 뜻. 연모일 경우 한계치가 두 배 높다.


사족으로 MIN()의 반대는 MAX()인데 이건 주로 최소치를 표현할 때 쓰임(변수가 100 미만이어도 최소 100을 전달한다 등)


LOCAL += GETPALAMLV(PALAM:ARG:욕정, 10) * 5 + GETPALAMLV(PALAM:ARG:호의, 10) * 5 + GETPALAMLV(PALAM:ARG:복종, 10) * 5
LOCAL += BASE:ARG:무드 / 50 + (1000 - BASE:ARG:이성) / 30

이 부분은 데이트 도중에 끌어올릴 수 있는 숫자들임


욕정 레벨 X 5 + 호의 레벨 X 5 + 복종 레벨 X 5

그리고 무드 / 50 + (1000 - 이성) / 30

참고로 무드는 하트 하나에 200 정도이고, Overdrive!가 떴을 때는 각 캐릭터마다 설정되어있는 MAXBASE:무드에 도달했음을 뜻함(거의 1500)

이성은 점차 깎이는 BASE값이라서 최고조에 달했을 때 0이 되어 Limitbreak!로 표시됨. 즉 무드와 이성으로 얻을 수 있는 최대 LOCAL 보정값은 63 정도.


LOCAL += TALENT:ARG:담력 * 10 + TALENT:ARG:성적흥미 * 10 - TALENT:ARG:자제심 * 10 - TALENT:ARG:무관심 * 10 

여기에 소질 '겁쟁이'일 경우 10 마이너스, '다부짐'일 경우 10 플러스,

'보수적'일 경우 10 마이너스, '호기심'일 경우 10 플러스,

'자제심'일 경우 10 마이너스, '무관심'일 경우 10 마이너스가 된다.


대체로 가드가 단단한 캐릭터일 수록 데이트 후 키스 이벤트도 보기 어렵다는 뜻이지.