planetarium / NineChronicles

Unity client application for Nine Chronicles, a fully decentralized idle RPG powered by the community.
https://nine-chronicles.com/
GNU Affero General Public License v3.0
355 stars 148 forks source link

[캐릭터] 간헐적으로 캐릭터 생성 시 닉네임 입력 과정을 생략하는 현상 #5106

Closed QgamesGeonPyoNoh closed 4 weeks ago

QgamesGeonPyoNoh commented 4 weeks ago

APV version info

v200190

Client version info

v190.0.0

Device

Android, iOS

detailed device info

Android 12, iOS 17

account address info

0x3146FE0E47A1998e14cd8a33640e3648A5A90276

avatar address info

No response

purchase receipt info

No response

What happened?

[내용] 간헐적으로 캐릭터 생성 시 닉네임 입력 과정을 생략하는 현상 -해당 현상 발생 후 로딩이 계속되며, 실제 캐릭터는 생성되지 않았습니다. -Android, iOS 환경에서 확인했습니다.

https://github.com/planetarium/NineChronicles/assets/150774808/06dd6749-fd37-492d-a1f6-f97a69701bf6

How to reproduce the issue

[재현 스텝]

  1. 앱 실행 후 캐릭터 생성 클릭
  2. 시작하기 버튼 클릭
  3. 간헐적으로 닉네임 입력 과정을 생략하는 현상 확인

[Should be] 캐릭터 생성 시 닉네임 입력 과정을 진행해야 합니다.

Relevant log output

KeyNotFoundException: index(1) Nekoyume.State.States.SelectAvatarAsync (System.Int32 index, System.Boolean initializeReactiveState, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.State.States.SelectAvatarAsync (System.Int32 index, System.Boolean initializeReactiveState, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.State.RxProps.SelectAvatarAsync (System.Int32 avatarIndexToSelect, Libplanet.Common.HashDigest1[T] stateRootHash, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.State.RxProps.SelectAvatarAsync (System.Int32 avatarIndexToSelect, Libplanet.Common.HashDigest1[T] stateRootHash, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0) Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, System.Boolean pressed, System.Boolean released) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.EventSystem.Update () (at <00000000000000000000000000000000>:0) --- End of stack trace from previous location where exception was thrown --- Cysharp.Threading.Tasks.UniTask+ExceptionResultSource1[T].GetResult (System.Int16 token) (at <00000000000000000000000000000000>:0) Nekoyume.State.RxProps.SelectAvatarAsync (System.Int32 avatarIndexToSelect, Libplanet.Common.HashDigest1[T] stateRootHash, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.State.RxProps.SelectAvatarAsync (System.Int32 avatarIndexToSelect, Libplanet.Common.HashDigest1[T] stateRootHash, System.Boolean forceNewSelection) (at <00000000000000000000000000000000>:0) Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0) Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, System.Boolean pressed, System.Boolean released) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.EventSystem.Update () (at <00000000000000000000000000000000>:0) --- End of stack trace from previous location where exception was thrown --- Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine] (TStateMachine& stateMachine) (at <00000000000000000000000000000000>:0) Nekoyume.UI.LoginDetail.LoginClick () (at <00000000000000000000000000000000>:0) UnityEngine.Events.UnityEvent.Invoke () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, System.Boolean pressed, System.Boolean released) (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.StandaloneInputModule.Process () (at <00000000000000000000000000000000>:0) UnityEngine.EventSystems.EventSystem.Update () (at <00000000000000000000000000000000>:0) --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__7_0 (System.Object state) (at <00000000000000000000000000000000>:0) UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <00000000000000000000000000000000>:0) UnityEngine.UnitySynchronizationContext.Exec () (at <00000000000000000000000000000000>:0)

QgamesGeonPyoNoh commented 4 weeks ago

수정 내용 확인 완료되었습니다.

[테스트 환경] Android.v200190-190.0.1 iOS.v190.0.1(76)

https://github.com/planetarium/NineChronicles/assets/150774808/e0602053-f63e-4a04-93de-b30166299ad8