디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇ(175.206) 2019.02.27 01:02:12
조회 2522 추천 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
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2872 설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
49547 공지 텍스트게임 이야기는 아카라이브 텍스트게임채널로 [2] 홀릭_갤로그로 이동합니다. 21.01.16 14347 57
49772 정보 기록용 메가텐 일판을 대충 하기. [1] Kadalin갤로그로 이동합니다. 06.07 82 0
49770 일반 돌 임/신 얼마정도에 알음? .(115.139) 05.26 293 0
49762 일반 에라토호 리버스 모바일 딥빠(49.167) 03.09 290 0
49759 일반 요우키 TS 존나 꼴리네 [1] 수태갤로그로 이동합니다. 02.09 1005 1
49758 일반 사이버 유랑민 텍붕이(168.126) 01.18 190 0
49754 일반 모야 여기는 에라토호갤이야? [3] 파이베리갤로그로 이동합니다. 23.12.17 1124 0
49753 일반 레밀리아 졸라 귀엽네 11(121.148) 23.12.03 714 1
49751 일반 에라토우 해보고 싶은데 00(118.218) 23.11.10 277 0
49740 일반 에라토호 뉴비다 조수 가능 이면 조교완료냐? agsterv(198.145) 23.07.23 368 0
49724 일반 오랜만에 오니까 살아났네 Crown갤로그로 이동합니다. 23.06.10 1059 0
49712 일반 혹시 ym에 구슬 관련 버그 있음? [2] ㅇㅇ(116.96) 23.03.31 382 0
49704 일반 머고 [1] ㅇㅇ(58.237) 23.02.03 300 0
49701 일반 아니 ㅆㅃ 왜 채찍질하면 고통은 안쌓이고 공포만 ㅈㄴ쌓이냐 [1] ㅇㅇ(124.54) 23.01.08 1265 0
49699 일반 텍린이 혹시 추천해줄 만한 것 없음? [1] ㅇㅇ(114.200) 22.11.08 1622 0
49678 일반 텍갬 개꿀잼 [1] ㅇㅇ(115.139) 22.01.22 1079 5
49667 일반 텍챈으로 [1] hanakoi갤로그로 이동합니다. 21.12.05 2950 2
49662 일반 스미레테루 하고왓는데 ㅇㅇ갤로그로 이동합니다. 21.11.28 364 0
49661 일반 늒네 모바일 글자 크기설정 어케함? ㅇㅇ(61.77) 21.11.28 667 0
49659 일반 TW 업뎃 많이 됨? [3] Arisaka갤로그로 이동합니다. 21.11.23 1702 1
49648 일반 용신년 도망간거임? [1] 지미갤로그로 이동합니다. 21.11.14 1401 1
49647 일반 아카라이브 존나게 귀찮은데 ㅇㅇ(180.70) 21.11.14 1166 0
49643 일반 머요정특) 그 누구보다도 배빵을 좋아함 [1] 준치갤로그로 이동합니다. 21.11.13 715 0
49641 일반 텍갤 완장 어디감 [1] explo갤로그로 이동합니다. 21.11.13 692 0
49639 일반 글삭튀했네 [1] ㅇㅇ(182.222) 21.11.12 789 0
49638 일반 머요정아 사랑해 [3] 준치갤로그로 이동합니다. 21.11.12 3857 9
49636 일반 텍겜 재밌네 [2] ㅇㅇ(119.203) 21.11.12 840 0
49635 일반 wls 여신전생 5 출시됐다 [2] NekoRobot갤로그로 이동합니다. 21.11.12 633 3
49632 일반 텍스트 ㅇㅇ(121.175) 21.11.12 208 0
49631 일반 텍겜의 끝은 ㅇㅇ(115.139) 21.11.12 778 0
49630 일반 고마워 대요정 ㅇㅇ(218.155) 21.11.12 735 3
49629 일반 조용하네.. [1] ㅇㅇ(182.216) 21.11.12 542 1
49628 일반 ㄷㅇ(223.62) 21.11.12 161 0
49625 일반 다어디간 데스 ㅇㅇ(121.146) 21.11.10 251 0
49624 일반 택갤로 ㅇㅇ(114.201) 21.10.28 396 0
49623 일반 캐릭터 추가했는데 자꾸 오류남 ㅇㅇ(211.186) 21.10.23 293 1
49622 일반 여기살아났으니 여기로다시 이주하자 ㅇㅇ(114.201) 21.10.19 519 1
49620 일반 지옥에서 부활하여 товарищ갤로그로 이동합니다. 21.10.08 283 2
49618 일반 DOL같은 HTML겜 더 없음? [1] ㅇㅇ(59.19) 21.09.22 2468 0
49611 일반 갤 언제 부활했냐 [3] 가오가이가갤로그로 이동합니다. 21.07.06 1624 3
49472 일반 동방 잘 모르는데 코이시 꼴림? [3] ㅇㅇ(223.33) 20.07.22 1715 1
49470 일반 걸라이프 모바일로 어케함? ㅇㅇ(223.39) 20.07.22 529 0
49469 일반 AI던겐 질문 받는다. [2] ㅇㅇ(39.7) 20.07.22 716 1
49468 일반 리버스 레쥬구상 많은 애 누구누구 있음? [1] ㅇㅇ(139.162) 20.07.22 562 0
49465 개발 사나에 구상 2020END가 갱신되었습니다... [4] 시나리오사나에(211.213) 20.07.22 560 2
49462 일반 dol 뉴비 질문좀 [3] ㅇㅇ(223.39) 20.07.22 3022 0
49461 일반 엉덩이를만진다 판정 뭘 건들어야함? [3] ㅇㅇ(121.178) 20.07.22 1040 1
49460 일반 k 여아나타는 함락어케띄우냐 [4] ㅇㅇ(1.218) 20.07.22 853 0
49459 일반 비교적 복종 구상 많은 에라 추천해줄 텍붕이 구함 [7] ㅇㅇ(1.250) 20.07.22 828 0
49458 개발 [목록 추가]eraTW 구상 가필/교정 하셨던 분들을 찾습니다. [2] UEZ4갤로그로 이동합니다. 20.07.22 660 4
49457 일반 란스 질문 받는다 [28] ㅇㅇ(218.148) 20.07.22 915 2
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2