잡담

퀘스트 시스템 구상

by 이프 posted Sep 12, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

 우선... 기획안을 쓰기 시작하기전에, 원래 이런글이 올라가야할 죽은 아이디어 게시판에 애도를..ㅡ,.ㅡ


* 주로 등장하는 퀘스트의 유형

1. 아이템 ○○○를 ○개 가지고와라.

2. 몬스터 ○○○를 ○마리 해치우고 와라.

3. 이 아이템을 ○○○마을 ○○○에게 전해주고 와라.

4. 미궁에빠진 ○○○를 구출해라.


* 주석표시

- define sort = 정렬 선택자 메소드

- set class = 커먼으로 올려서 공용화


* 시스템의 흐름(수락,확인,취소,완료 장면)

- 마을에 들어가기전 마을코드 id 입력

- 퀘스트를 주는 npc에게 대화를 걸면 퀘스트 선택 화면으로 이동

- 마을 코드id로 커먼에 만들어놓은 데이터베이스로 조건분기

- [define sort]수락한 퀘스트를 제외한 해당 마을의 리스트를 아이콘으로 출력

- 퀘스트 종류에 따라 아이콘이 다르며, 아이콘을 선택하면 퀘스트 내용과 수락여부를 묻는다.

- 퀘스트를 수락하면 주인공의 확장메뉴에서 내용을 확인 할 수 있게 된다.

- 퀘스트를 수락할때 마을번호+퀘스트번호+조건만족 카운트로 인식코드를 만든다

   // 예) 마을번호 15, 퀘스트번호 12, 카운트0 => 151200

  // v[퀘스트_코딩1] = v[마을코드id]; v[퀘스트_코딩1] * 10000; v[퀘스트_코딩1]

  // v[퀘스트_코딩2] = v[퀘스트_종류idx]; v[퀘스트_코딩2] = v[퀘스트_코딩2] * 100

  // v[퀘스트_코딩1] += v[퀘스트_코딩2]; v[퀘스트_수락1~5] = v[퀘스트_코딩1]

- [set class]퀘스트 정보 확인이나 완료조건을 인식할때 코드를 디코딩해서 데이터베이스에 매치한다.

  // [define sort]v[퀘스트_코딩1] = v[퀘스트_수락1~5]; v[퀘스트_코딩2~3] = v[퀘스트_코딩1];

  // v[퀘스트_코딩1] = v[퀘스트_코딩1] / 10000; v[퀘스트_코딩1] = v[퀘스트_코딩1] * 10000;

  // [퀘스트_코딩2] = v[퀘스트_코딩2] / 1000; [퀘스트_코딩2] = v[퀘스트_코딩2] * 1000;

  // [퀘스트_코딩3] -= v[퀘스트_코딩1~2];

  // v[퀘스트_코딩2] = v[퀘스트_코딩2] / 10000; v[퀘스트_코딩2] = v[퀘스트_코딩2] / 100;

- 퀘스트를 취소하면 수락가능 목록으로 다시 돌아가지만, 퀘스트를 완료하면 보상을 받고, 같은 퀘스트를 선택할 수 없게된다.

- 퀘스트를 취소하거나, 완료하면 해당퀘스트가 수락가능 목록으로 다시 돌아간다.


* 시스템의 흐름(수락 세부장면)

- 시간에 따라 출력되는 퀘스트의 차별화

- 수락가능한 퀘스트수 출력


* 시스템의 흐름(퀘스트 수행장면)

- 퀘스트를 받은 상태에서만 해당 퀘스트의 필요 카운트가 올라간다(예: 몬스터 퇴치수)

- 퀘스트 요구조건을 만족하면 보상을 받고 퀘스트가 종료된다.


* 제약사항

- 퀘스트는 5개까지 받을 수 있다.

- 각 마을별 퀘스트 상태 변수가 필요


* 퀘스트 데이터 구조

- 퀘스트 종류

   // 아이템 배달, 몬스터 퇴치, 아이템 전달

- 제한날짜

- 완료 조건+보상


* 필요 재료목록

- v[마을코드id],v[퀘스트_종류idx],v[퀘스트_수락1~5],v[퀘스트_코딩1~2],sw[퀘스트_수락1~5]

- v[퀘스트_대분류],v[퀘스트_포인터],v[퀘스트_트리거],v[퀘스트_값]

- v[퀘스트_cnt], v[퀘스트_수락날짜1~5]

TAG •

Who's 이프

?

<>문장: 의문의 사내
::「돈내놔 새끼야!」
<>문장:피떡이된 남자
::「드...드리겠습니다!」
<>선택지의 표시:...필요없어!

:[...필요없어!]의 경우

<>게임오버:

<>

분기종료

<>