1 of 24

패스 시스템

작성자 - 강정우

2 of 24

  • 기획의도
  • 일정한 횟수 이상 플레이를 즐긴 유저에게 재화 지급을 통한 동기부여
  • 미션의 내용을 통한 게임플레이 가이드라인 제시

1.개요

3 of 24

2.세부내용 – 데이터 구조

PASSMAIN

PASSREWORD

PASSLEVEL

REWORD

MAIN

MISSIONTYPE

MISSION

MAIN

UI

4 of 24

3-1.PASSTABLE - passmain

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

DESCRIPTION

string

해당 패스의 설명 stringkey

STARTDATE

long

해당 PASS의 시작시간

YYYYMMDDHHMMSS로 표시된다.

기준시는 한국시간 (UTC+9) 이다.

ex> 2020년 11월 5일 00시 00분 00초

20201105000000

ENDDATE

long

해당 PASS의 종료시간

YYYYMMDDHHMMSS로 표시된다.

기준시는 한국시간 (UTC+9) 이다.

ex> 2020년 11월 5일 23시 59분 59초

20201105235959

5 of 24

3-2.PASSTABLE - passreword

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

PASSMAIN_ID

uint

PASSMAIN의 ID

해당 ID의 패스가 활성화될 경우 모든 구성요소를 불러와서 리스트를 구성한다.

PASSLEVEL_ID

uint

PASSLEVEL의 ID

PASSLEVEL - LEVEL을 내림차순 정렬하여 리스트를 구성한다.

해당 PASS의 구성요소들 중 동일한 LEVEL이 존재할경우 ERROR처리하여 데이터확인을 요청한다.

NORMAL_REWARD_ID

uint

REWARD ID

일반패스의 보상을 나타낸다.

PASS_REWARD_ID_1

uint

REWARD ID

구매패스의 보상1을 나타낸다.

PASS_REWARD_ID_2

uint

REWARD ID

구매패스의 보상2를 나타낸다.

6 of 24

3-3.PASSTABLE - passlevel

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

LEVEL

uint

해당패스레벨의 레벨

NEEDPOINT

uint

해당패스레벨의 보상을 받기위한 요구치

7 of 24

3-4.PASSTABLE - passlevel

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

LEVEL

uint

해당패스레벨의 레벨

NEEDPOINT

uint

해당패스레벨의 보상을 받기위한 요구치

8 of 24

4-1.MISSIONTABLE - missionmain

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

TYPE

uint

해당 미션의 타입을 나타낸다

0 : 일일미션

1 : 1달미션

2 : 패스미션

DATETYPE

uint

해당 미션의 제한시간타입을 나타낸다.

기준시간은 한국시간이다.(UTC + 9)

단, TYPE컬럼의 종료시간이 DATETYPE의 종료시간보다 짧을경우 TYPE의 종료시간을 따라간다.

0 : 매일초기화 ( 00시 00분 )

1 : 매주초기화 ( 매주 월요일 00시 00분)

2 : 매달초기화 ( 매달 1일 00시 00분)

3 : 영구지속 ( 영구지속 )

MISSIONTYPE_ID

uint

MISSIONTYPE의 ID

MISSION구성요소를 나타낸다.

REWARD_ID

uint

REWARD의 ID

보상을 나타낸다.

9 of 24

4-2.PASSTABLE - missiontype

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

차트에서 특정 ID를 발송하면 1회 완료처리를 수행할 수 있도록 한다

COUNT

uint

해당미션 달성을 위한 횟수를 표시한다.

STRINGKEY

string

내용 표시를 위한 스트링 키이다.

스트링 테이블을 참조해서 내용을 출력한다.

DESCRIPTION

NONE #

단순 내용 표시용

10 of 24

5-1.REWORDTABLE - rewordmain

컬럼명

데이터타입

설명

ID

uint

데이터의 고유한 ID

다음과같이 하드코딩을 진행한다.

[ 10000번대 대역 : 경험치 ]

10001 : 계정 경험치

10002 : 패스미션 경험치

[ 20000번대 대역 : 재화 ]

20001 : 골드

20002 : 다이아

[ 30000번대 대역 : 캐릭터 ]

30001 : 캐릭터카드1

30002 : 캐릭터카드2

3n : 캐릭터카드 n번째

[ 40000번대 대역 : 일반아이템 ]

40001 : 일반아이템1

40002 : 일반아이템2

4n : 일반아이템 n번째

NUM

uint

보상의 갯수를 표시한다.

IMAGEPATH

string

해당 보상의 image 경로를 출력한다.

11 of 24

6-1.UI/UX 목업

메인화면에서 패스버튼을 클릭하면 아래의 처리를 수행합니다.

�현재 시간(한국시간 UTC+9)이 START ~ END사이에 있는 PASS정보를 불러옵니다.

해당시간의 PASS정보는 0개 혹은 1개만 존재해야함으로 2개이상일경우 에러를 발생시킵니다.

0개일경우 패스버튼 클릭시 아무런 반응이 일어나지 않습니다.

1개일경우 패스화면으로 이동시킵니다.

12 of 24

6-2.UI/UX 목업 – PAGE_PASS

뒤로가기

?

DD:MM:SS

패스 아이템 구매

보상

미션

최종 보상

Lv.n+m

item

item

item

item

Lv.n

item

item

Lv.n+1

item

item

레벨

Lv.n

nn/mm

모두 수령

.

.

.

1

2

3

4

5

6

7

8

9

10

11

13 of 24

6-3.UI/UX 목업 – PAGE_PASS

TAG

구분

설명

1

뒤로가기버튼

뒤로가기버튼

클릭시 메인화면으로 이동stringkey : ui_pass_001  // 뒤로가기 

2

안내버튼

패스이벤트 안내버튼

클릭시 이벤트 설명 팝업 발생해당 패스의 DESCRIPTION stringkey를 이용하여 내용 출력

3

시간표시텍스트

현재 남은 시간을 표시

기준시간은 한국시간(UTC + 9)일 > 시간 > 분 > 초 단위로 남은시간을 표시stringkey : ui_pass_002 // {0}{1} 남음 {0} :: 숫자 {1} 일,시간,분,초 알맞은 문구 

4

패스구매하기 버튼

패스 구매하기버튼

클릭시 패스 구매 팝업을 발생stringkey : ui_pass_003 // 패스구매하기

5

최종보상

최종보상을 안내하는 스크롤 구성요소스크롤과 상관없이 항상 최상단에 위치하여 유저가 인지가능해야함아이템 내부 갱신은 구성 아이템 부분 참조

6

레벨별 보상

해당 패스시즌의 PASSREWARD - PASSLEVEL을 참조하여 리스트를 구성ScrollView로 구성되어 유저가 전구간의 보상을 확인 가능해야함첫 페이지 진입시 현재 진행중인 레벨의 보상이 자동 스크롤 되어야함.아이템 내부 갱신은 구성 아이템 부분 참조

7

레벨구매버튼

해당 레벨의 필요경험치를 획득하는 버튼클릭시 레벨 구매 팝업을 발생stringkey : ui_pass_004 // 레벨

API : PacketManager.Instance.PassPointRequest(포인트양)

14 of 24

6-4.UI/UX 목업 – PAGE_PASS

8

현재레벨텍스트

현재 진행중인 레벨을 표시stringkey : ui_pass_005 // Lv.{0}

9

포인트텍스트

현재 보유한 포인트 / 현재 레벨 필요 포인트 표시stringkey : ui_pass_006 // {0} / {1}

10

포인트비율텍스트

9에서 사용한 값을 게이지로 표현

11

모두수령버튼

획득가능한 보상을 모두 획득할 수 있는 버튼획득가능한 보상이 1개라도 존재할 경우 활성화

ㄴ> 클릭시 획득가능한 보상 모두 획득처리획득가능한 보상이 없을 경우 비활성화

ㄴ> 클릭시 반응 Xstringkey : ui_pass_007 // 모두받기

API : PacketManager.Instance.MissionClearRequest(가장 마지막 보상 level id);

15 of 24

6-5.UI/UX 목업 – PAGE_PASS_PASSITEM

Lv.n

item

item

1

2

3

item

일반 딤드

item

획득 딤드

item

비활성 딤드

16 of 24

6-6.UI/UX 목업 – PAGE_PASS_PASSITEM

TAG

구분

설명

1

레벨텍스트

해당 PASSREWARD의 PASSLEVEL 표시도달, 진행중인 레벨의 경우 눈에 띄는 글씨

도달하지 못한 레벨의 경우 어두운 글씨로 표현stringkey : ui_pass_005 // Lv.{0}

2

일반보상아이템

해당 PASSREWARD의 NORMAL_REWARD를 표시NORMAL_REWARD가 0일경우 해당 오브젝트는 출력하지 않는다.획득가능한경우

  • 아이템 이미지를 표시한다.
  • 아이템 클릭시
    • 해당 단계까지의 아이템을 모두 획득처리하며 획득팝업을 발생
    • API : PacketManager.Instance.PassRewardRequest(해당보상 level);

획득불가능한경우

  • 아이템 이미지와 각 상태에맞는 딤드를 표시한다.
  • 이미 획득한경우
    • 일반딤드 + 획득딤드
  • 포인트가 도달하지 못한경우
    • 일반딤드
  • 아이템 클릭시
    • 해당 아이템의 설명팝업을 발생

17 of 24

6-7.UI/UX 목업 – PAGE_PASS_PASSITEM

3

패스구매보상아이템

해당 PASSREWARD의 PASS_REWARD1, PASS_REWARD2를 표시한다.PASS_REWARD가 0일경우 해당 오브젝트는 출력하지 않는다.

획득가능한경우

  • 아이템 이미지를 표시한다.
  • 아이템 클릭시
    • 해당 단계까지의의 아이템을 모두 획득처리하며 획득 팝업을 발생
    • API : PacketManager.Instance.PassRewardRequest(해당보상 level);

획득불가능한경우

  • 아이템 이미지와 각 상태에맞는 딤드를 표시한다.
  • 이미 획득한경우
    • 일반딤드 + 획득딤드
  • 패스아이템을 구매하지 않은경우
    • 포인트에 도달한경우
      • 자물쇠딤드
    • 포인트에 도달하지 못한경우
      • 일반딤드 + 자물쇠딤드
  • 아이템 클릭시
    • 해당 아이템의 설명 팝업을 발생

18 of 24

6-8.UI/UX 목업 – PAGE_PASS_MISSIONITEM

item

남은시간

임무수행도

임무 설명

보상 받기

1

2

3

4

5

item

남은시간

임무수행도

임무 설명

보상 받기

19 of 24

6-9.UI/UX 목업 – PAGE_PASS_MISSIONITEM

TAG

구분

설명

1

아이템 이미지

아이템 이미지를 나타낸다.이미 획득한 보상의 경우 하단의 딤드처리로 표현한다.

2

남은시간

현재 남은 시간을 표시

상세설명 상단의 PASS PAGE.3참조단, 해당 미션 남은 시간, 해당 PASS의 ENDDATE 중 더 짧은 시간을 출력stringkey : ui_pass_002 // {0}{1} 남음 {0} :: 숫자 {1} 일,시간,분,초 알맞은 문구  

3

임무수행도

해당 MISSIONTYPE의 COUNT - 현재 수행한 COUNT 표시stringkey : ui_pass_008 // {0}회 남음

4

임무설명

해당 MISSIONTYPE의 stringkey를 표시

5

보상버튼

해당 미션 완료시 해당 버튼을 클릭하여 보상을 받는다.기본 비활성화 상태에서 임무수행도가 0회 남았을경우 활성화시킨다.

활성화된 버튼 클릭시

  • 아이템 획득 팝업을 발생시킨다.
  • 해당보상을 획득처리한다.

비활성화된 버튼 클릭시

  • 아무런 반응도 일어나지 않는다.

API : PacketManager.Instance.MissionClearRequest(해당보상 id);

20 of 24

6-10.UI/UX 목업 – POPUP_PASSINFO

설명설명

설명

설명

설명

설명

1

2

TAG

구분

설명

1

이벤트설명

해당 패스의 description stringkey를 가져온다.

2

닫기버튼

해당 팝업을 닫는다.

21 of 24

6-11.UI/UX 목업 – POPUP_ITEMINFO

TAG

구분

설명

1

아이템이미지

아이템의 IMAGEPATH를 불러온다.

2

설명

해당 아이템의 설명을 불러온다.

�현재 간이 데이터를 사용중임으로 “-”로 대체한다.

3

닫기버튼

해당 팝업을 닫는다.

이미지

설명설명설명설명

2

1

3

22 of 24

6-12.UI/UX 목업 – POPUP_GETITEM

TAG

구분

설명

1

알림을 위한 문구이다

stringkey : ui_pass_009 // 아이템 획득!

알림을 위한 문구이다

stringkey : ui_pass_009 // 아이템 획득!

2

획득한 아이템을 리스트에 순차적으로 표시한다.

아이템리스트 content rect.width < 아이템 이미지들의 rect.width의 합

일 경우 Horizontal scroll이 활성화된다.

각 아이템들은 IMAGEPATH를 불러온다.

획득한 아이템을 리스트에 순차적으로 표시한다.

아이템리스트 content rect.width < 아이템 이미지들의 rect.width의 합

일 경우 Horizontal scroll이 활성화된다.

각 아이템들은 IMAGEPATH를 불러온다.

3

닫기버튼

해당 팝업을 닫는다.

아이템 획득

1

3

이미지

이미지

이미지

2

23 of 24

6-13.UI/UX 목업 – POPUP_BUYBASE

{}다이아를 사용하여

{}레벨을 올립니다.

TAG

구분

설명

1

레벨구매문구

알림을 위한 문구이다stringkey : ui_pass_010 // {0}다이아를 사용하여 {1}레벨을 달성합니다. {0} : 50고정치 {1} : 현재레벨

2

취소버튼

취소버튼이다.해당팝업을 닫는다.stringkey : ui_pass_011 // 취소

3

확인버튼

확인버튼이다.{}다이아를 소모해서 {}레벨을 달성한다.

해당팝업을 닫는다.stringkey : ui_pass_012 // 확인

1

확인

취소

3

2

24 of 24

6-14.UI/UX 목업 – POPUP_BUYBASE

{}다이아를 사용하여

패스를 활성화 합니다.

TAG

구분

설명

1

레벨구매문구

알림을 위한 문구이다stringkey : ui_pass_013 //  {0}다이아를 사용하여 패스를 활성화합니다. {0} : 1000고정치

2

취소버튼

취소버튼이다.해당팝업을 닫는다.stringkey : ui_pass_011 // 취소

3

확인버튼

확인버튼이다.{}다이아를 소모해서 패스를 활성화한다.

해당팝업을 닫는다.stringkey : ui_pass_012 // 확인

1

확인

취소

3

2