[Ren'py] 렌파이로 육성 시뮬레이션 게임 만들기 (4) DSE 를 이용해 이벤트 만들기 (2) : 미연시 만들기

 

event.어쩌구() 함수 이용하기

이제 특별한 형태로 & 특별한 조건에서 발생하는 이벤트를 만들어보도록 합시다.
2025-02-21-01 미소녀 연애 시뮬레이션을 만들기 01 - A stunning anime-style girl standing in a cozy school library, surrounded by bookshelves filled with books. She has a sweet and charming expression, w.png

 

 

 

event.once()

* 스트레스가 일정 수치에 도달하면, 좀 쉬어가면서 하라는 식의 안내 이벤트가 튀어나오도록 해봅시다.

* 이 이벤트는 한 번만 나타나면 충분할 겁니다.

* 일단은 스트레스가 5 이상이 되었을 때 이벤트가 등장해야겠고.. 이벤트가 한 번만 나타나도록 하는 조건은..

* event.once() 함수를 사용하면 됩니다. event.once()는 항상 참값을 반환하다가, event.once()가 적힌 이벤트가 실행되고 나면 그 이벤트에 적인 event.once() 는 거짓값을 반환하기 때문에, 한 번만 나타나면 이벤트의 조건으로 사용하면 좋습니다.


 

event.solo()

* 정신력이 3 미만인 상태에서 휴식 중에 TV를 보다, 우연히 라이벌의 경기를 보고 자극을 받았다.. 는 내용의 이벤트를 만들어보겠습니다.

* 이 이벤트는 휴식 스케쥴이 실행됐을 때, 일반 휴식 이벤트 (rest) 를 대신해서 실행되도록 만들겠습니다.

* 일단 priority 값을 낮게 줘서 이 이벤트의 실행 조건이 먼저 판별되게 한 다음,

* 'act == "휴식" and mental < 3' 이라는 조건에서 실행되도록 적습니다.


* 이걸로 자극 이벤트의 설정은 완료입니다. 손 볼 곳은 rest 이벤트쪽입니다.

event.solo()를 사용한 이벤트는, 이벤트 실행 조건을 충족하였으며 event.solo()를 사용한 이벤트보다 우선도가 높은, 즉, priority 값이 작은 이벤트가 없는 경우에만 실행됩니다. 예제를 이용해서 설명을 하자면 다음과 같습니다.

자극 이벤트는 휴식 이벤트와 실행 조건이 같지만, 자극 이벤트 쪽이 우선도가 높으므로, 자극 이벤트가 실행될 때는 휴식 이벤트가 실행되지 않습니다.

event.solo() 함수는 비슷한 상황에서 실행되는 이벤트 중에 우선도가 높은 이벤트가 있다면 실행되지 말아야 할 이벤트에 사용하면 좋습니다.

 

event.only()

* 이제 주인공이 스트레스가 높아 에 걸리는 이벤트를 만들어봅시다.

* 일단 우선도를 가장 높게, 그러니까 priority = 0 값을 가장 낮게 줍니다.

* 그리고 스트레스가 3 * 플레이 일 수보다 높으면 병 이벤트를 발생시키도록 하겠습니다(기존에 적었던 병 상태 발병 공식은 무시하기로 했습니다.. -.-;).

* 남은 건 이 이벤트보다 우선도가 낮은(priority 값이 높은) 다른 이벤트는 모두 발생하지 않도록 설정하는 겁니다. event.only()를 적어줍시다.



오로지 이 상황에서는 이 이벤트만 튀어나와야 한다! 하는 이벤트에 사용해주도록 합시다.

 

event.happened(*이벤트) 와 event.depends(*이벤트) 그리고 call events_end_day


* 이번에 만들어볼 이벤트는 릴뤡스 입니다. 이 이벤트는 병 걸린 이벤트를 반드시 봐야지만 다음날 발생하도록 만들어줘야 합니다.
event.depends(*이벤트) 함수를 사용하면 이것을 가능하게 할 수 있습니다.


그 전에, 이 event.depends()를 사용하면서 특정 이벤트가 하루 전에 발생했다는 걸 인식시키려면 하루 단위의 스케쥴이 모두 완료된 지점에 다음과 같은 명령어를 적어줘야 합니다.



call events_end_day 를 사용하면, 예를 들면 첫째 날에 a 라는 이벤트가 발생한 경우 events_excuted_yesterday 라는 변수에 이 이벤트가 실행되었다는 것을 저장하고, 둘째날 진행으로 넘어가게 됩니다.

그러니까 event.depends(*이벤트) 를 사용하게 되면, 이 함수는 이벤트에 적은 이벤트를 events_excuted_yesterday 에서 검색할 수 있게 되는 겁니다. 이벤트를 발견했다면 event.denpends()가 사용된 이벤트를 실행시키게 됩니다.

event.happened(*이벤트) event.depends()와 비슷하지만 이는 게임 중에 어느 때라도 이벤트가 발생했다면 event.happened() 가 적힌 이벤트를 실행한다는 것이 다른 점입니다.

 

 

 

event.random(확률)

 * 일정한 확률에 따라 이벤트를 발생시킬 수 있도록 해주는 함수입니다. 입력하는 값은 부동소수점값(소수점 찍힌 숫자)이어야 합니다. 어려운 점은 없다고 생각해서 자세한 예는 생략하겠습니다.

* 이 함수를 이용하면 능력치값을 계산해서 일반 스탯 획득의 성공/실패를 가를 수 있을 겁니다. 프린세스 메이커에서 능력치에 따라 알바/학습의 성공/실패가 갈라졌었죠. 그런 걸 얘기하는 겁니다.

 

 

 

event.choose_one(group, group_count = 1)


* 이번에는 마인드 컨트롤을 하면 등장하는 이벤트 두 가지를 만들어보겠습니다.

* 한 이벤트는 보통의 이벤트이지만, 낮은 확률로 마인드 컨트롤을 하다가 잠을 자버리는 -0- 이벤트가 발생하도록 만들겁니다.

* 일단 새 이벤트를 하나 더 만듭니다.

* 그 다음 이 두 이벤트를 하나의 그룹으로 묶어줍니다. 이 그룹으로 묶는 작업을 위해 event.choose_one()을 사용합시다.

이렇게 하면 두 이벤트가 "마컨" 이라는 하나의 그룹으로 묶이게 된 겁니다. 이제 마인드 컨트롤 스케쥴을 실행할 때마다 자동으로 저 두 이벤트 중 하나가 선택되어 실행될 겁니다.

마인드 컨트롤을 하다가 낮잠을 자는 이벤트는 확률이 일반 마컨 스케쥴보다 낮아야 합니다. group_count 로 잠 자는 이벤트에 낮은 숫자를, 일반 이벤트에는 높은 숫자를 지정해줍시다.

(위의 스크립트에서는 확인용으로 m_control_sleep 이벤트의 group_count 를 높게 줬습니다)

group_count 는 큰 값이 확률이 높고 적은 값이 확률이 적습니다.

이전 글에서도 적었지만, event()에는 위에 열거한 event.어쩌구 들을 전부 혼합해서 사용할 수도 있습니다. 이벤트의 성격에 맞게 각각 조합해서 사용한다면 보다 복잡한 조건에서 발생하는 이벤트도 만들 수 있습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

네 끝입니다..) 렌파이로 육성 시뮬레이션을 만들 때 필요한 지식은 설명해드린 것이 전부이고, 앞으론 알게 된 기능을 응용해 만드는 일만 남았습니다. 모쪼록 재미나게 게임 만드시길.

2025-02-21-02 미소녀 연애 시뮬레이션을 만들기 02 - A stunning anime-style girl standing in a cozy school library, surrounded by bookshelves filled with books. She has a sweet and charming expression, w.png

 

출처: https://askance.tistory.com/45 [백안시의 공방 - 소설형 게임 제작실:티스토리]

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
45 [게임 일반] 선택 기반 게임의 표준 패턴 : Standard Patterns in Choice-Based Games 졸리운_곰 2025.01.13 236
44 [게임 일반] SharpMoku a Gomoku/Five in a Row Written in C# : SharpMoku a Gomoku/Five in a Row C#로 작성됨 : 오목게임 개발 file 졸리운_곰 2024.10.31 311
43 [게임 마켓플레이스] 스팀에 ‘게임’을 출시하고 싶다면? file 졸리운_곰 2024.09.07 316
42 [게임 일반] 카드 덱 이미지 (트럼프 카드) 졸리운_곰 2024.05.27 224
41 [게임 개발 일반] 콘솔은 어려울수록, 모바일은 쉬울수록 '돈' 쓴다 file 졸리운_곰 2023.10.30 264
40 [게임 개발 일반] 게임 초기 기획서 작성 방법 졸리운_곰 2023.07.16 250
39 [게임 일반] 하이퍼 캐주얼 모바일 게임 퍼블리셔가 말하는 개발자의 필수 역량은? file 졸리운_곰 2023.02.08 245
38 [게임 일반] 외신, 2D 게임 개발에 적합한 엔진 10종 선정 file 졸리운_곰 2023.01.15 206
37 [게임 일반] 성공적인 하이퍼 캐주얼 게임 제작을 위해 알아야 할 모든 것 졸리운_곰 2023.01.11 192
36 [게임 일반] 게임의 정의와 요소 file 졸리운_곰 2023.01.02 185
35 [게임 일반] 게임(Game), 일상에서 만드는 놀이의 즐거움 file 졸리운_곰 2023.01.02 205
34 [게임 일반] 우리는 왜 게임에 빠지는가 - 게임의 요소와 게임 변천의 역사 졸리운_곰 2023.01.02 250
33 [게임 일반] 재미있는 게임이란? 10부. 게임의 6단계 file 졸리운_곰 2023.01.02 194
32 [게임 일반] 재미있는 게임이란? 9부 -스타2의 패턴전략- file 졸리운_곰 2023.01.02 215
31 [게임 일반] 재미있는 게임이란? 8부 -블리자드의 패턴전략- file 졸리운_곰 2023.01.02 265
30 [게임 일반] 재미있는 게임이란? 7부 -Wow의 패턴전략- file 졸리운_곰 2023.01.02 162
29 [게임 일반] 재미있는 게임이란? 6부 -패턴과 리소스- file 졸리운_곰 2023.01.02 228
28 [게임 일반] 재미있는 게임이란? 5부 -카오스 시스템- file 졸리운_곰 2023.01.02 266
27 [게임 일반] 재미있는 게임이란? 4부 -패턴과 상호작용-' file 졸리운_곰 2023.01.02 186
26 [게임 일반] 재미있는 게임이란? 3부 '게임이 나아가야 할 방향' file 졸리운_곰 2023.01.02 162
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED