디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[개발] eratohoK 데일리 이벤트 작성 방법.txt

ㅇㅇ(175.206) 2019.02.27 01:02:12
조회 2511 추천 32 댓글 5
														



viewimage.php?id=39b8c832e2d335a3&no=24b0d769e1d32ca73cee82fa11d028317b450a23a99188d24b1fcb77b605b56eb6b267dd6b6b83cd7fc267a55bd9017c5474e8bf0b75534c7c8b3607727b4b



eratohoK 한글판 資料 폴더에 있던 txt 파일의 번역 손 봐서 올림.

위 이미지 파일은 .jpg 지우면 txt 파일 된다. 이 글이랑 내용 똑같음.




eratohoK 데일리 이벤트 만들기

==========================


ver1. 14.0 이후에서 데일리 이벤트를 제작하는 법을 설명하겠음.

템플릿이이 `ERB/SYSTEM/EVENT/DAILY/テンプレ`에 있으니 이용하는 걸 추천함.


## 사전 준비


정해놔야 하는 거


+ 데일리 이벤트의 종류

+ 데일리 이벤트의 이름

+ 데일리 이벤트의 식별자


### 데일리 이벤트의 종류


데일리 이벤트에는, 통상 데일리 이벤트와 통상 데일리에서 파생해 발동하는 「파생 데일리 이벤트」가 존재함.

파생 데일리 이벤트는, 예를 들어 「어느 데일리 이벤트에서 특정 선택을 하면, 다른 이벤트가 발생하게 만들고 싶다」 같을 때에 씀.


통상 데일리 이벤트는 저마다 고유의 발생 확률이 있으며, 컨피그로 설정한 발생 배율이나 발생 갯수의 영향을 받음.

파생 데일리 이벤트에는 발생 확률이 존재하지 않음. 또한,


+ 파생 원인이 된 데일리가 컨피그에서 OFF로 되지 않았음

+ 발생 조건을 만족함


이상을 만족함으로써, 컨피그에서 설정한 발생 배율이나 발생 갯수의 영향을 받지 않고 발동함.


### 데일리 이벤트의 이름


데일리 이벤트의 이름임. 예를 들어 「약장수의 방문」이나 「더운 밤」 등을 가리킴.


### 데일리 이벤트의 식별자


eratohoK 본체에 데일리 이벤트를 인식시키는 데에 필요한 문자열을 가리킴. 식별자를 후술할 함수군에 포함함으로써, eratohoK가 데일리 이벤트를 인식할 수 있음. 통상 데일리 이벤트, 파생 데일리 이벤트 각각으로, 식별자는 일치할 필요가 있음. 

예를 들면 「약장수의 방문」의 식별자는 「SMUGGLER」임.


## 이벤트의 등록


종류, 이름, 식별자를 정했으면, `ERB\SYSTEM\EVENT_DAILY에 CREATE_DAILY_MAP.ERB`를 열 것. `REGISTER_DAILY`라는 함수가 대량으로 호출되어 있을 테니, 다른 호출을 따라 써서 호출을 추가할 것.

 `CALL REGISTER_DAILY(데일리의 구분, 데일리의 식별자, "데일리의 이름")` 같은 식이 됨.

이걸로 eratohoK는 만든 데일리 이벤트를 인식할 수 있게 됨.


## 실장해야 할 함수


데일리 이벤트가 바르게 동작하기 위해 실장되어 있어야 할 함수군에 대해 설명함.

함수명을 직접 타자 치다간 실수의 원인이 되니 구현할 때는 앞서 말한 템플릿을 이용할 것을 추천함.

XX 부분에는 앞서 말한 식별자를 입력할 것.

(DERIVATION_)이라고 된 부분은, 그 데일리가 파생 데일리일 때에 입력할 것(템플릿을 이용한다면 의식할 필요는 없겠지만).



### EVENT_DAILY_XX_RATE


통상 데일리 이벤트에 필수. 그 데일리 이벤트의 발동율을 천분율로 반환함.

20으로 쓰면 2%의 확률로 발동하는 데일리 이벤트가 되지만, 실제로는 컨피그에서 설정한 발동 배율의 영향을 받는다.


### EVENT_DAILY_DERIVATION_XX_DISABLE


파생 데일리 이벤트에 필수. 자신의 파생 원인이 되는 데일리 이벤트의, 컨피그에서 설정한 ON-OFF 설정을 반환함  

컨피그에서 OFF된 (배열 변수 DAILY_DISABLE의 해당하는 요소의 값이 1)인 경우에는, 파생 데일리 이벤트도 발생하지 않음.

`RETURN DAILY_DISABLE:(FINDELEMENT(DAILY_EVENT_NAME_ENG, "XX"))` 같은 식으로 반환한다. XX에는 **파생원인 데일리 이벤트의** 식별자가 들어감.


### EVENT_DAILY_(DERIVATION_) XX_DECISION


통상·파생 데일리 이벤트 모두 필수  

발생 확률 외의 판정, 예를 들어 「특정의 플래그가 서있는가」 같은 체크를 실시함.

체크를 클리어했을 경우는 1, 클리어하지 못했을 경우에는  0을 반환함. 0을 반환했을 경우, 데일리 이벤트는 발동하지 않음.

통상 데일리 이벤트에서는 확률 판정과 이 함수를 모두 클리어한 이벤트가 「기본적으로는」 발생함.

파생 데일리 이벤트에는 확률 판정이 없기 때문에, 이 함수만 클리어해도 「기본적으로는」 발생함.


### EVENT_DAILY_(DERIVATION_) XX_SETTARGET


통상·파생 데일리 이벤트 모두 필수는 아님.

그 데일리 이벤트가 특정 캐릭터만을 대상으로 삼고 싶다, 또한 대상이 되는 캐릭터가 없으면 발동하고 싶지 않을 경우에 구현함.

이때 선출한 대상은 배열 변수 DAILY_TARGET에 격납해두고, 데일리 이벤트 본체 함수에서 꺼냄.

선출한 대상이 존재할 경우는 1, 존재하지 않을 경우는 0을 반환함. 0을 반환했을 경우, 데일리 이벤트는 발동하지 않음.

예를 들어 통상 데일리 「암캐의 생활」은, 소질 「암캐」 보유자만을 대상으로 삼고 있음. 이 경우의 코드는 이하와 같이 됨.


```

FOR LOCAL, 0, CHARANUM

;여자가 아니거나, 사망 상태, 포로인 캐릭터는 안 됨

SIF ! IS_FEMALE(LOCAL)

CONTINUE

SIF CFLAG:LOCAL:특수 상태 ==특수 상태_사망

CONTINUE

SIF CFLAG:LOCAL:포로처

CONTINUE

;암캐가 없으면 안 됨

IF GETBIT(TALENT:LOCAL:소질_음란계, 소질_음란_암캐)

DAILY_TARGET:DAILY_TARGET_NUM = LOCAL

DAILY_TARGET_NUM ++

ENDIF

NEXT


SIF DAILY_TARGETNUM == 0

RETURN 0


RETURN 1

```


### EVENT_DAILY_(DERIVATION_) XX_NAME


통상·파생 데일리 이벤트 모두 필수는 아님.

데일리 이벤트가 발동할 시, 이벤트명이 표시됨.

이 이벤트명은 기본적으로 등록할 때(아래 참조)의 것이지만, NAME 함수가 반환한 값은 그것을 덮어쓴다.

이벤트 진행에 따라서 이벤트명을 고쳐 쓰고 싶을 때 이용함.


###  EVENT_DAILY_XX_GENRE


통상 데일리 이벤트에 필수. 데일리 이벤트의 장르를 적는 곳.

어떤 장르가 있는지는, VARIABLE_DAILY.ERH에 적혀 있음.

사실 구현하지 않아도 데일리 이벤트 자체는 발동하지만, 컨피그에서 ON-OFF 설정을 할 수 없어져서 지장을 초래함.


### EVENT_DAILY_XX_ALLOW_WHEN_WANDERING


통상·파생 데일리 이벤트 모두 필수는 아님.

주인공이 방랑 중일 때의 발생을 허가함.


### EVENT_DAILY_(DERIVATION_) XX


데일리 이벤트의 본체임. 여기다 이벤트의 본체를 적는다.


## DVAR/DSTR


데일리 이벤트에 관련된 값을 격납하는 데에 쓰는 배열 변수. 세이브됨.

DAILY_CONST.ERH를 열고 정수를 선언해서, 그것을 배열 요소로 접속하는 데에 목차로 이용함.

예를 들어 「샘플」 이벤트에서  「이벤트가 종료되어, 두 번 다시 발생하지 않음을 가리키는 플래그」를 준비한다면, 이하와 같이 할 것.


1. DAILY_CONST.ERH에,`# DIM CONST 샘플_이벤트 종료 플래그 = 400`이라고 적는다(번호는 적당히 바꿔 읽을 것. 어느 정도 여유가 있으며 비어 있는 곳을 지정할 것).

2. 이벤트 본체나 DECISION 함수 등에서, `DVAR:샘플_이벤트 종료 플래그`에다가 대입이나 참조를 실행함.


### 비고:DVAR에 캐릭터에 대한 참조를 보존


eratohoK에서는 캐릭터의 삭제 및 교체를 실행할 때가 있기에, 단순히 캐릭터 번호를 격납하고 이러려고 하면, 격납시와 꺼낼 때에 별개의 캐릭터를 참조할 가능성이 있음.

이런 사례를 막기 위해 eratohoK에서는 캐릭터 생성시, ID라는 불변의 고정값을 할당하고 있음. DVAR와 같이 세이브되는 변수로 캐릭터 참조를 격납하고 싶으면 이쪽을 이용할 것.

`DVAR:샘플_대상 = GET_ID(대상)`과 같이 격납하고, `대상 = ID_TO_CHARA(DVAR:샘플_대상)`과 같이 꺼낸다.


## 개별 대사 데일리에 대해


개별 대사 데일리도 대체로 작성 방법은 동일하지만, 이하 사항에서 차이가 있음.


### 각 함수명


`EVENT_`로 되어 있던 부분이 `KOJO_`가 됨. 더불어 캐릭터 NO를 지정하는 `KXX`라는 구절이 각 함수에 포함되어 있으므로 XX를 캐릭터 NO로 치환할 필요가 있음.


### 이벤트의 등록처


전 이벤트가 공통으로 쓰는 CREATE_DAILY_MAP이 아니라 각 캐릭터 고유의 CREATE_DAILY_MAP를 호출하게 됨.

`CREATE_KOJO_DAILY_MAP_K{캐릭터 NO}(대상)`이라는 함수 내에서 호출해서, `CALL REGISTER_KOJO_DAILY(대상, 데일리의 구분, 데일리의 식별자, "데일리의 이름")`이라는 식으로 적고 등록함.

`


### 필수적인 함수


개별 대사 데일리를 발동시키려면 최저한의 개별 대사 본체도 필요함.

개별 대사 템플릿 중 `KOJO_COMMON_KX.ERB` 내부의, `KOJO_EXIST_KXXX` 함수가 필요하다.





샘플 데일리 이벤트도 한 번 만들어볼까 했는데 그랬다간 아예 강좌 연재가 될 것 같아서 보류했다.


직접 만들어보면 별로 안 어려우니까 다들 해봐라.



자동등록방지

추천 비추천

32

고정닉 4

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2861 설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
49547 공지 텍스트게임 이야기는 아카라이브 텍스트게임채널로 [2] 홀릭_갤로그로 이동합니다. 21.01.16 14023 57
49763 일반 돓겜.다운받앗는.데 이렇게만뜸 플.레.이어떻.게하죠 [1] ㅇㅇ갤로그로 이동합니다. 05.03 789 0
49762 일반 에라토호 리버스 모바일 딥빠(49.167) 03.09 241 0
49761 일반 돌.겜 crime 질.문 d(39.116) 03.03 410 0
49759 일반 요우키 TS 존나 꼴리네 [1] 수태갤로그로 이동합니다. 02.09 797 1
49758 일반 사이버 유랑민 텍붕이(168.126) 01.18 167 0
49757 일반 돌 이전 내용못보냐 [1] 텍붕이(219.249) 01.10 421 0
49754 일반 모야 여기는 에라토호갤이야? [3] 파이베리갤로그로 이동합니다. 23.12.17 965 0
49753 일반 레밀리아 졸라 귀엽네 11(121.148) 23.12.03 627 1
49751 일반 에라토우 해보고 싶은데 00(118.218) 23.11.10 257 0
49749 일반 선장 제펠 오케 만날 수 있음? 11(114.203) 23.11.05 135 0
49748 일반 시드ㄴl 비키니 입히는 방법 아는사람? ㅁㄴㅇㄹ(220.88) 23.09.23 847 0
49747 일반 돌 집 구매할 수 있는 방법? [2] 아몰랑(61.79) 23.09.07 1093 0
49746 일반 돌 의지력 높히는 법 아는 사람?ㅠㅠ [7] 히나갤로그로 이동합니다. 23.08.23 1534 0
49744 일반 나 돌 처음하거든?알려줄사람 [3] eres(122.34) 23.08.20 1475 0
49743 일반 돌)손 순결 복구못해? [3] 마앙고갤로그로 이동합니다. 23.08.03 2767 0
49741 일반 이거 어떡함? ㅜㅜ(116.36) 23.07.29 583 0
49740 일반 에라토호 뉴비다 조수 가능 이면 조교완료냐? agsterv(198.145) 23.07.23 351 0
49738 일반 돌 플레이 중인데 이거 어캐 탈출함? [2] ㅈㄱㄴ(118.223) 23.07.19 2725 0
49736 일반 돌 착유기 어케 씀 [2] ㅇㅇ(175.205) 23.07.05 3251 0
49735 일반 돌겜 한글패치 [2] ㅇㅇ(59.10) 23.07.04 5548 0
49732 일반 DOL) 웹버전 데이터 지금 불러오기 안되는거같은데 맞음? ㅇㅇ(1.233) 23.06.26 566 0
49731 일반 dol 이거 시작하고 나서 설정 다시 어떻게 조정함? [1] .(58.237) 23.06.25 1221 0
49730 일반 Dol)여캐로 에덴 줘패기 성공함 [1] ㅇㅇ갤로그로 이동합니다. 23.06.24 3376 0
49729 일반 Dol)젖소 되는법이 뭐야? [3] ㅇㅇ갤로그로 이동합니다. 23.06.22 3357 0
49728 일반 Dol) 로빈 나중에 돌아옴? [1] ㅇㅇ(118.235) 23.06.21 1404 0
49727 일반 돌겜 한 컴에서 캐릭터 두 개 이상 굴릴 수 있음? [2] ㅇㅇ(180.228) 23.06.12 1337 0
49725 일반 dol)젖소되면 에덴 못만남? [1] ㅇㅇ(211.214) 23.06.10 2768 0
49724 일반 오랜만에 오니까 살아났네 Crown갤로그로 이동합니다. 23.06.10 989 0
49722 일반 Dol) 소 목장? 여기서 어떻게 벗어남 [2] ㅇㅇ(106.101) 23.06.05 2928 0
49720 일반 Dol) 하다가 ㄹㅇ 정병올 것 같았는데 ㅇㅇ(123.254) 23.06.05 3032 0
49719 일반 돌겜 제일 최근에 나온 한글패치 잇슴? ㅇㅇ(124.57) 23.06.02 2781 1
49718 일반 올빼미인형 왜생긴거임? [3] ㅇㅇ(220.77) 23.06.02 2149 0
49716 일반 Dol) 운동 존내늘려서 에덴 줘팰수 있음? [2] ㅇㅇ(223.62) 23.05.31 2238 0
49715 일반 던전 AI 질문 ㅇㅇ(223.38) 23.05.22 228 0
49714 일반 Ai던전같은 글쓰는겜 추천좀 라제니온갤로그로 이동합니다. 23.05.05 352 0
49712 일반 혹시 ym에 구슬 관련 버그 있음? [2] ㅇㅇ(116.96) 23.03.31 371 0
49710 일반 학교갈거야 ㅇㅇ(118.37) 23.03.10 987 0
49709 일반 돌린이 저장 하는법 몰루 ㅇㅇ(110.45) 23.03.08 526 0
49708 일반 DOL 뉴비 질문 ㅇㅇ(175.115) 23.02.25 3002 0
49707 일반 dol 병원 이송 되면 무조건 옷 바뀜 ㅇㅇ(58.78) 23.02.19 1295 0
49705 일반 Dol겜 그레이트호크 이벤트 뭐임 자다가 봉변당함 ㅇㅇ(1.232) 23.02.05 1984 0
49704 일반 머고 [1] ㅇㅇ(58.237) 23.02.03 289 0
49702 일반 Dol같은 야겜말고 일반모바일겜 없냐 ㅇㅇ(1.176) 23.01.15 1955 0
49701 일반 아니 ㅆㅃ 왜 채찍질하면 고통은 안쌓이고 공포만 ㅈㄴ쌓이냐 [1] ㅇㅇ(124.54) 23.01.08 1188 0
49700 일반 DoL 왤케 머리가 자꾸 기는거임? ㅇㅇ(14.138) 22.12.04 1579 0
49699 일반 텍린이 혹시 추천해줄 만한 것 없음? [1] ㅇㅇ(114.200) 22.11.08 1517 0
49678 일반 텍갬 개꿀잼 [1] ㅇㅇ(115.139) 22.01.22 1032 5
49667 일반 텍챈으로 [1] hanakoi갤로그로 이동합니다. 21.12.05 2897 2
49665 일반 Ai던전 결제할까 말까.. [1] 나락(121.127) 21.12.04 1282 0
49664 일반 Do you: ~~ 여기에 어떻게 이어나가면 됨? ㅇㅇ(223.39) 21.12.04 426 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2