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
349 stars 147 forks source link

아레나 티켓 카운트 sync 가 안맞는 이슈 #4584

Closed sonohoshi closed 1 month ago

sonohoshi commented 2 months ago

실제 Arena 티켓 수량과 arena 화면에서 보이는 티켓 수량이 다릅니다. 전투를 하고 돌아와도 티켓 수가 변경되지 않는 경우가 있습니다. 어떨 때는 한번에 여러 개의 티켓이 소모되면서 수량이 맞는 경우도 있습니다.

sonohoshi commented 1 month ago

10201등, 1000점, 티켓 7개

밑에있는거 쳤으니까 1018점 되어야하는데 티켓은 깎였고 점수랑 등수 업데이트가 안됐음, 그 와중에 Win/Lose는 정상적

sonohoshi commented 1 month ago

ArenaBoard Widget을 껐다켜니까 8589등 1018점으로 정상 업데이트됐음

sonohoshi commented 1 month ago

셀 안에서는 점수가 업데이트된것처럼 1000~1018점 사이의 상대가 18점 준다고 나와있어서 이게 뭐지 하는중

sonohoshi commented 1 month ago

업데이트한 상태 자체를 스크롤 리스트에 정상적으로 넣고는 있는데... 업데이트 해온 상태 자체가 헤드리스에서 받아오는거라서 헤드리스가 캐싱하고 있던 값을 주는듯.

sonohoshi commented 1 month ago

@ipdae 이거 제가 잘 몰라서 그러는데, 헤드리스에서 아레나 플레이어 리스트 갱신을 언제 한번씩 하나요? BattleArena tx 직후에는 헤드리스에게 아레나 리스트를 요청해도 점수가 업데이트되기 이전 상태라서 아레나 관련 상태가 업데이트 안된것처럼 보이는 문제인데, 클라에서 예외처리로 리스트에 자신의 아바타만 GetState로 갱신해서 넣는게 빠를지 아니면 헤드리스를 수정하는게 나을지 싶어서요

sonohoshi commented 1 month ago

그냥 ArenaScore만 따로 GetState해와서 current avatar랑 일치하는거 있으면 강제주입+정렬 시켜보겠습니다. 이쪽이 정신건강에 이로울듯

sonohoshi commented 1 month ago

다 좋은데 클라에서 등수를 직접 계산 안하고 있다보니 정리가 좀 안되는데...

ipdae commented 1 month ago

@ipdae 이거 제가 잘 몰라서 그러는데, 헤드리스에서 아레나 플레이어 리스트 갱신을 언제 한번씩 하나요? BattleArena tx 직후에는 헤드리스에게 아레나 리스트를 요청해도 점수가 업데이트되기 이전 상태라서 아레나 관련 상태가 업데이트 안된것처럼 보이는 문제인데, 클라에서 예외처리로 리스트에 자신의 아바타만 GetState로 갱신해서 넣는게 빠를지 아니면 헤드리스를 수정하는게 나을지 싶어서요

시간이 고정적이진 않고, 워커가 전체 목록을 조회하기때문에 실제 상태보다는 실시간성이 떨어질수밖에 없습니다. 순위정보는 실시간성이 떨어지더라도 티켓같은 실시간성이 필요한 정보만 GetState등을 통해 실제 체인 데이터를 직접 조회해오는게 좋아보입니다. (기억엔 RxProps쪽에서 이 처리를 해뒀던걸로 기억하는데, 이게 안되있으면 고쳐야합니다.)

sonohoshi commented 1 month ago

그럼 RxProps쪽에서 정상처리하도록 수정하겠습니다. 제 기억상으로도 클라가 보정해주던게 있던거같은데 지금은 없는것처럼 동작하네요.

sonohoshi commented 1 month ago

image 별개로 이 이슈가 제보된 주요 포인트는