devunt / DFAssist

FFXIV Duty Finder & F.A.T.E. Assist
https://devunt.github.io/DFAssist
The Unlicense
65 stars 120 forks source link

무작위 매칭 멘토일 때는 어떤 임무 걸렸는지 안 보여주기? #34

Closed devunt closed 7 years ago

devunt commented 7 years ago

문제가 있는 것으로 추정

devunt commented 7 years ago

@laiglinne-ff @RyuaNerin @hibiyasleep @dlunch

어떻게 하는지 좋을지에 대해 의견 받고 있습니다. 마지막으로 세팅된게 무작위 매칭일 경우에는 실제로 매칭된게 뭔지 안 보여주는 방법도 있긴 한데 처음부터 기능이 없었으면 모를까 중간에 넣으면 그냥 업데이트를 안 하는 방식으로 어뷰징이 가능할 것 같아서 걱정이 되네요.

혹시 이런 일이 있을까봐 제가 v20160924.1 릴리즈의 530831857c499efa73fb40ad43bcd2060066fcbd 커밋부터 강제 업데이트로 정책을 바꾸긴 했는데 뭐 어차피 오픈소스라서 직접 컴파일해서 쓰는 방식으로 어떻게든 어뷰징은 가능하니까요.

아니면 기본설정에 기본적으로 unchecked 상태로 "무작위 임무에서도 실제 매칭된 임무 보여주기" 같은 체크박스 하나 추가하고 체크할 시 "해당 기능을 무작위 임무에서의 선택적 임무 고의 불참 등의 목적으로 사용하지 말아주세요." 같은 yes나 yes/no 박스 하나 띄우고 직접 체크한 사람들한테만 보여주는 방식도 괜찮지 않을까 생각하고 있습니다.

아, 그리고 제가 여러 사정상 파판을 작년 중순부터 접은 상황이라... 계속 나오는 확장판이나 유저들한테 기능 피드백 받아서 대신 관리해주실 분도 필요할 것 같지 않나 싶네요.

devunt commented 7 years ago

devenv_2017-03-18_18-07-24

일단 def70e37f81b257e1c2da7f1d2a0a379861781e8 에서 관련 UI 코드는 커밋했습니다. 이제 파판 하시는 분이 매칭 패킷(opcode 0x339)에 매칭된게 무작위로 매칭된건지 아닌지 나타내는 필드가 있는지 알아봐주시면 좋을 것 같네요

dlunch commented 7 years ago

패킷 로그를 봤는데요, 현재 roulette id를 가져오는 부분이 있는 듯 하네요.

180004050402000050010200000000000000000000000000 무숙
190008060502000052010200000000000000000000000000 무토
19000409a000000052010a00780b1ee20000000000000000 멘토
190008000b02000004000600780b1ee20000000000000000 율4
190018009700000004000600782bcee10000000000000000 어둠의세계

직접 넣어서 간 두 인스턴스는 3번째 바이트가 0이고, 나머지 인스턴스는 3번째 바이트가 roulette id네요.

3.2때 확인한 데이터라 지금은 어떨지 모르겠습니다. 한국서버 계정이 없네요. 확인 부탁드립니다.

devunt commented 7 years ago

@dlunch 님의 코멘트에 따른 테스트 코드가 추가되었습니다. 릴리즈해서 배포하기 전 아무나 테스트 한번 부탁드려요!

hibiyasleep commented 7 years ago

image

opcode=0x02de의 임무 확인 상태 로그가 처리되지 않은 것 같습니다...만,

214,0,0,0,4,1,2,1,1,0,0,0,112,168,185,137 [집단전 훈련을 완수하라!, 4, 1/1, 1/1, 2/2]

0x2de 패킷에는 돌발 관련 얘기가 안 보입니다.

devunt commented 7 years ago

일단 0x339의 매칭 패킷의 무작위 임무 관련 처리는 잘 된 것 같으나 0x2de가 문제인거죠?

devunt commented 7 years ago

한번 0x02DE 패킷 중 status 2번으로 오는 패킷은 아예 로깅을 하지 않도록 수정해봤습니다.

사실 2번이 언제 오는건지는 잘 모르겠긴 한데요... 제 기억에도 그렇고 상단 올려주신 스크린샷도 그렇고 2번은 늘 0x0339 직전에 따라왔던 것 같아서 딱히 추가적으로 로그를 찍을 필요는 없을 것 같아서 일단 비활성화해봤습니다.

devunt commented 7 years ago

이 정도면 대충 해결할 수 있을 것 같은데 마지막으로 한번 테스트 해 주시면 잠시 후 v20170320.1 릴리즈 진행하도록 하겠습니다.

hibiyasleep commented 7 years ago

0x2de - status=2는 현재 매칭된 임무의 인원 정보로 추정됩니다. 힐러로 인원수 제한 해제하고 들어갔을 때:

[00:02:51] DFAN: 매칭 상태 업데이트됨 [옛 암다포르 시가지, 2, 0/1, 1/1, 0/2]

가 날아옵니다.

devunt commented 7 years ago

정보 감사합니다. 그럼 일단 무작위 매칭은 이렇게 해결된 것 같고 부가적으로 status 2번 패킷을 사용하면 코드에 TODO로 적어두셨던 조율 해제 파티의 최대 인원 수 정확히 알아내기가 해결될 수도 있을 것 같네요. status 4번은 늘 2번 패킷 뒤에 따라올 것 같으니... 흠 지금 바로 구현 시작해서 이번 릴리즈에 넣으실 수 있나요?

hibiyasleep commented 7 years ago

네 아마도...? 인원수 구성 안 맞는 파티(인게임에서 m/n으로 표시됨)의 경우 어떻게 되는지 확인이 필요할텐데, 오늘 중으로 확인하고 구현해보겠습니다.

devunt commented 7 years ago

v20170322.1에서 구현, 릴리즈되었습니다. 기여해주신 모든 분들께 감사드립니다.