뒤끝매치 결과전송 오류 관련 문의

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.16.2
  • 프로젝트명 : FruitParty
  • 스테이터스 코드 : 400
  • 에러 코드 :
//나우 게임오버
if (int.Parse(score)  >= 2000 || isGameOver.Equals("true") )
{
    CancelMatch();
    //슈퍼게이머가 아니면 리턴
    if (!Backend.Match.IsSuperGamer())
    {
        return;
    }
                    
    MatchGameResult matchGameResult = new MatchGameResult();
    matchGameResult.m_winners = new List<SessionId>();
    matchGameResult.m_losers = new List<SessionId>();
                    
    //GameUserInfoDic의 점수에 따라 정렬
    var items = from pair in GameUserInfoDic
        orderby pair.Value.Item2 descending
        select pair;

                    
                    
    switch (NowGameMaxPlayer)
    {
                        
        case 2:
            //now 1대1
            matchGameResult.m_winners.Add(items.First().Key);
            matchGameResult.m_losers.Add(items.Last().Key);
            break;
        default:
            //now 3인, 4인
            foreach (var (key, value) in items)
            {
                print(key + " : " + value.Item1 + " : " + value.Item2);
                matchGameResult.m_winners.Add(key);
            }
            break;
    }

                    
    // 서버로 결과 전송
    Backend.Match.MatchEnd(matchGameResult);
    GameOverTrigger = true;
    return;
}
  • 에러 메시지 : status code: 400, reason: {“errorCode”:“ValidationException”,“message”:“The parameter cannot be converted to a numeric value: NaN”,“statusCode”:400}

1대1 매치상황(2인)에서는 잘 작동합니다. 하지만 개인전 환경 즉

foreach (var (key, value) in items)
{
     print(key + " : " + value.Item1 + " : " + value.Item2);
     matchGameResult.m_winners.Add(key);
}

이 코드에서는 해당 에러 메시지가 뜨면서 정상적으로 결과 처리가 되지 않습니다. key는 SessionID 타입입니다.

안녕하세요 개발자님,
말씀하신 오류는 개인전에서 패배 유저에 대한 처리가 누락되어 발생한 문제로 예상됩니다.

뒤끝매치에서는 개인전의 경우에도 승자뿐 아니라 패자 정보도 명확하게 전달해야 하며,
기획된 승패 기준에 따라 승리 유저를 제외한 패배 유저들에게도 matchGameResult.m_losers.Add(session); 처리를 적용해 주셔야 합니다.

안녕하세요! 링크 에서 개인전 부분 예시코드 찾아보니 matchGameResult.m_losers.Add(session);를 적용하는 코드가 없는 것 같아서 저렇게 작성했었는데

말씀해주신대로 적용하니 이번에는
status code: 400, reason: {“errorCode”:“BadParameterException”,“message”:“bad invalid team infomation, 잘못된 invalid team infomation 입니다”,“statusCode”:400}
오류가 발생합니다.

개인전은 팀을 나누지않는데 이 경우 결과를 어떻게 처리하는지 알 수 있을까요?

개인전 승패 처리에서 1등만 승리 처리가 이루어지고,
이외에는 모두 패배로 처리를 요청해주신 것이 맞으실까요?


스크린샷 2025-03-24 오후 5.04.16
(3인기준)

넵 맞습니다
같은 오류가 발생합니다
status code: 400, reason: {"errorCode":"BadParameterException","message":"bad invalid team infomation, 잘못된 invalid team infomation 입니다","statusCode":400}

문의해주신 내용과 관련하여 상세 확인 후 안내드릴 수 있도록 하겠습니다.

좋아요 1

문의해주신 내용과 관련하여 확인이 지연되고 있습니다.
담당 부서에서 면밀이 확인중에 있어 조금만 더 기다려주시길 양해 부탁드립니다.
확인 과정 중 안내드릴 수 있는 내용이 확인되는 경우 즉시 안내드릴 수 있도록 하겠습니다.

좋아요 1

네 감사합니다 최대한 빠르게 확인해주시면 감사하겠습니다

오래 기다리게 해드려 죄송합니다.
매치 서버 상 오류가 발생하는 원인을 확인하여 픽스 진행되었습니다.

추가로 코드 상 앞서 matchGameResult.m_losers.Add(session); 적용을 안내드렸었는데요,
개인전의 경우 해당 코드 없이 결과 처리를 winner로 순위대로 넣어서 처리해 주시면 되는것으로 확인됩니다.
진행 과정에서 또 다른 문제가 있으신 경우 문의해 주시면 확인하여 안내드릴 수 있도록 하겠습니다.
감사합니다.

감사합니다! 해결했습니다 :)