6.5 KiB
게임 API 이벤트 일정·배율 확보 (2026-09-29)
앱 1.2.0이 받은 rpc.api.Event/ListEventInfo 응답의 디코딩된 객체를 LDPlayer의 실행 중인 테스트 계정 프로세스에서 읽었다. 네트워크 패킷 원본이 아니라, 실제 응답을 담은 protobuf 객체를 필드별로 재구성한 자료다. DB·CDN 파일이나 외부 위키에서 추정한 값이 아니다.
보관한 설정: data/game-events/2026-09-29.json. 신규 스코어 챌린지의 일정·라이브 Pt·과제곡 스코어 보너스를 계산기에 적용했다. 미니게임 설정은 원본에 보관하며 기존 라이브 계산 화면의 범위를 확장하지 않는다.
확보 범위와 검증
- 이벤트 설정 5개: 신규 스코어 챌린지, 직전 스포트라이트, 신규 지역 미션, 복귀 미션, 초보자 미션.
- 마라톤 2개·챕터 5개의 일정, 라이브 Pt 보너스, 악곡 스코어 보너스, 미니게임 Pt 보너스·환산 계수 및 랭킹 보상 설정을 확보했다.
- 보너스 행 131개, 미니게임 계수 행 26개를 보관했다. 보너스의 카드·멤버·악곡 참조 64개를 해시 검증된 게임 DB와 대조해 모두 확인했다.
- 앱의 protobuf 정의 12종과 모든 추출 필드의 이름·타입·구조를 대조했다. 누락·추가 필드는 없고 직렬화/역직렬화 왕복 검증을 통과했다.
- 별도의 메모리 재읽기에서 이벤트 5개의 전체 내용이 동일했다. 표시용 캐시에 있던 4개의 기본 정보도 원래 응답 객체와 모두 일치했다. 복귀 미션은 표시 조건
cd-comeback_user가 있으며 이 계정의 표시용 목록에는 없었다. - 이벤트 탭의 신규 이벤트 종료 표시
2026/10/05 19:59도 추출값과 일치한다. 이 계정에서는 메인 퀘스트 1장 4화 클리어 전 이벤트 상세가 잠겨 있었지만 서버 응답의 설정 객체는 이미 수신되어 있었다. - 계정별
isNew,isNoti, 챕터의 현재score를 공개 설정에서 제외했다. 토큰·인증키·계정 식별자·메모리 주소는 포함하지 않는다. 랭킹 보상은 플레이어 목록이 아닌 공통 보상 규칙이다. - 공개 JSON SHA-256:
dbb57a74aa28f1c5684c5dc6f2d45788e8e608011e72aef65db238b148788407.
원본 메모리 추출, 재읽기 및 검증 스크립트는 Git에서 제외된 data/inspection/android-event-2026-09-29/에 보관했다. 원본 응답 타입·앱 바이너리·descriptor 해시는 공개 JSON의 source에 기록했다. 이 목록은 수신 시점의 설정이며, 과거 모든 이벤트나 향후 서버 변경을 포함한다는 뜻은 아니다.
신규 스코어 챌린지
ID: marathon_event-normal-005. 아래 시각은 모두 한국 시간(UTC+9)이다.
| 구분 | 서버 값 |
|---|---|
| 시작 | 2026-09-29 12:00:00 |
| 종료 | 2026-10-05 19:59:59 |
| 교환소 종료 | 2026-10-11 19:59:59 |
| 집계 시작 | 2026-10-06 00:00:00 |
| 집계 랭킹 공개 | 2026-10-06 12:00:00 |
챕터는 1개다. isMarathonScoreRankingDisable은 true이며, 악곡별 최고점과 합산 최고점 랭킹 보상은 별도로 존재한다.
라이브 Pt
원본 단위는 퍼밀(‰)이다. 300은 +30%, 100은 +10%다.
- 마린·코요리·코보·벨즈의 카드: 멤버 보너스 각 +30%.
- 이번 신규 수영복 카드 4종: 신규 카드 보너스 각 +30% 추가.
- 따라서 해당 신규 카드 한 장은 미개화 기준 +60%, 5회 개화 기준 +90%다.
- 속성만을 조건으로 하는 추가 보너스는 이번 응답에 없다.
| 등급 | 개화 0 | 개화 1 | 개화 2 | 개화 3 | 개화 4 | 개화 5 |
|---|---|---|---|---|---|---|
| ★3 | 0% | 1% | 1% | 2% | 2% | 3% |
| ★4 | 0% | 6% | 7% | 8% | 9% | 10% |
| ★5 | 0% | 15% | 18% | 22% | 26% | 30% |
개화 보너스는 해당 단계의 값 하나만 적용한다. 앱의 CardMarathonLiveEventBonusRatioCache.IsBonusApplicable에서 희귀도와 양수인 개화 횟수를 동등 비교하고, CalculateBonusRatioPermil에서 적용되는 규칙을 합산하는 것을 확인했다. 예를 들어 5회 개화에 1~5단계 값을 누적하지 않는다.
과제곡 스코어
아래 대응 카드에 각 곡의 스코어 +10% 규칙이 있다. 곡명은 확보된 DB의 Music.titleLangId → LangMusic_Kor로 확인했다.
| 악곡 | ID | 대응 신규 카드 |
|---|---|---|
| Kyapi | m0548 |
마린 card-00023-5-uniq-0085-00 |
| BAKU LOVE CHEMISTRY | m0413 |
코요리 card-00037-5-uniq-0086-00 |
| PROPOSE | m0358 |
코보 card-03009-5-uniq-0088-00 |
| Play Dice! | m0357 |
벨즈 card-04012-5-uniq-0087-00 |
PARADISE!(m0354)에 대한 스코어 보너스 규칙은 이 응답에 없다.
미니게임
신규 카드 4종 각각에 미니게임 Pt +20% 규칙이 있다. 개화·등급에 따른 미니게임 보너스 행은 없다.
| 미니게임 | marathonScorePermilMultiply 원본 |
계수 ÷ 1000 | bonusPermilUp |
|---|---|---|---|
| 줄넘기 | 1300 | 1.3 | 0 |
| 메가 서킷 | 600 | 0.6 | 0 |
| 모아 쿠킹 | 44 | 0.044 | 0 |
| 포카장! | 600 | 0.6 | 0 |
| 어둠 속 추격 | 300 | 0.3 | 0 |
| 스플래시 볼 | 2700 | 2.7 | 500 (+50%) |
이 표는 서버가 제공한 환산 계수와 보너스다. 미니게임별 점수/시간의 변환·반올림까지 모두 재현한 최종 Pt 공식이라는 의미는 아니다.
직전 스포트라이트 및 기타 일정
marathon_event-relay-002는 2026-09-19 20:00:00~09-27 19:59:59, 교환소 종료는 10-03 19:59:59다. 챕터별 대상 멤버는 아키로제·시오리·라플라스·아냐 순서이고 종료 시각은 각각 09-21·23·25·27의 19:59:59다.
챕터 대상 멤버 +50%, 해당 이벤트 신규 카드 4종 각 +50%, 대응 과제곡 +10%, 개화 보너스는 위 표와 동일하다. 미니게임 신규 카드 보너스는 각 +20%이고, 미니게임 추가 +50% 대상은 줄넘기다. 이 이벤트는 스플래시 볼 계수 행이 없다.
| 미션 | 시작 (한국 시간) | 종료 (한국 시간) |
|---|---|---|
신규 지역 미션 area03-release-260929 |
2026-09-29 06:00:00 | 2026-10-26 04:59:59 |
복귀 미션 comeback-260929 |
2026-09-29 11:00:00 | 2026-10-19 04:59:59 |
| 초보자 미션 | 원본의 기본 시작값 2000-01-01 00:00:00 | 미설정 (0) |
원본은 Unix 밀리초를 사용한다. 종료값은 초 단위 ...59.000이며 기존 수동 기록의 ...59.999로 보정하지 않았다. 표시·개방 조건이 있는 미션은 기간에 들어왔다는 사실만으로 모든 계정에서 사용할 수 있다고 판단하면 안 된다.