← 목록

mLua · Nemotron SDG 질문-응답 (SFT)

총 21,567개 · 페이지 88/719
🔀 랜덤
불러오는 중…

[task] | single_turn [pass] | ✅ 통과 [title] | ScrollBarMovementType [question] | 숫자 1을 ScrollBarMovementType으로 변환할 때 CastFrom 메서드를 어떻게 호출해야 하나요? [answer] | `ScrollBarMovementType`의 정적 메서드인 `CastFrom`을 사용하여 숫자 1을 해당 타입으로 변환할 수 있습니다. 숫자를 인수로 전달하면 값이 1에 해당하는 `Elastic` 멤버가 반환됩니다. mLua에서 정적 메서드를 호출할 때는 콜론(`:`)이 아닌 점(`.`)을 사용해야 합니다. ```lua local movementType = ScrollBarMovementType.CastFrom(1) log(movementType) ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 API 명세와 mLua 표준 구문에 정확히 부합하며, 질문을 간결하고 명확하게 해결했습니다. [source_doc] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr

[task] | instruction_following [pass] | ✅ 통과 [title] | UILogic [question] | ScreenToWorldPosition 메서드의 반환 타입과 실행 공간([ClientOnly])을 코드 주석으로만 출력하세요. [answer] | ```lua -- 반환 타입: Vector2 -- 실행 공간: [ClientOnly] ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 질문에서 요구한 반환 타입과 실행 공간만 코드 주석으로 정확히 출력하여 문서와 일치합니다. [source_doc] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl

[task] | single_turn [pass] | ✅ 통과 [title] | ScrollBarMovementType [question] | ScrollBarMovementType에 CastFrom(string) 메서드가 있는데, 어떤 문자열 값을 전달해야 Elastic로 변환되나요? [answer] | 제공된 문서에는 `ScrollBarMovementType`의 멤버 이름(`Elastic`, `Clamped`)과 값(`1`, `2`)만 명시되어 있으며, `CastFrom(string)` 메서드에 어떤 문자열을 전달해야 `Elastic`으로 변환되는지에 대한 구체적인 매핑 정보(예: "Elastic", "1" 등)가 포함되어 있지 않습니다. 따라서 문서 근거만으로 `CastFrom(string)`에 전달해야 할 정확한 문자열 값을 알 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서에 없는 구체적인 매핑 값을 지어내지 않고 문서 한계를 정확히 지적하여 질문에 가장 적절한 답변을 제공했습니다. [source_doc] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr

[task] | single_turn [pass] | ❌ 탈락 [title] | MODConditionType [question] | StateSet 내부에서 Condition을 표현하는 객체와 StateComponent 자체의 관계는 어떻게 설정되는지 설명해 주실 수 있나요? [answer] | StateSet 내부에서 Condition을 표현하는 객체는 `StateComponent`와 **소유자(Owner)와 속성(Property)** 관계로 연결됩니다. 구체적으로 설명하면 다음과 같습니다. 1. **소유 관계**: Condition 객체는 `StateComponent`가 직접 소유합니다. 이는 Condition 객체의 `ParentComponent` 프로퍼티를 통해 확인됩니다. 2. **ParentComponent 프로퍼티**: * Condition 스크립트에는 `ParentComponent`라는 읽기 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=3 [judge_reason] | OnConditionCheck과 Rotation.z 등 문서에 없는 API를 지어냈고, ParentComponent를 스크립트 Property로 선언하는 예시는 시스템 제공 읽기 전용 프로퍼티임을 오해하게 만드는 오류가 있음. [source_doc] | StateSet에서 사용되는 Condition을 표현합니다. 나만의 ConditionType을 정의하여 StateSet에서 활용할 수 있습니다. StateComponent에 직접적으로 추가, 제거하는 API는 추후 제공될 예정입니다. # Properties - **StateComponent ParentComponent [ReadOnly]** 이 Condition을 소유한 StateComponent입니다.

[task] | single_turn [pass] | ✅ 통과 [title] | ScrollBarMovementType [question] | 스크롤 바가 경계를 넘어가도 계속 움직이게 하려면 어떤 설정이 필요한가요? [answer] | 스크롤 바가 경계를 넘어가도 계속 움직이게 하는 설정은 제공된 문서에 없습니다. 문서에 정의된 `ScrollBarMovementType`은 다음과 같은 두 가지 동작 방식만 지원합니다: 1. **Elastic (값: 1)**: 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 **튕겨 돌아옵니다**. 2. **Clamped (값: 2)**: 스크롤 바가 경계를 **넘어가지 않고 멈춥니다**. 따라서, 제공된 `ScrollBarMovementType` API를 사용하여 스크롤 바가 경계를 넘어 계속 움직이게 하는 것은 불가 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 '계속 움직임' 옵션이 없음을 정확히 지적하고, 정의된 두 가지 모드(Elastic, Clamped)를 올바르게 설명하여 질문에 충실히 답했습니다. [source_doc] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr

[task] | single_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | 이벤트 핸들러에서 전달받는 event 매개 변수의 구체적인 구조나 접근 가능한 필드가 무엇인지 확인하는 방법이 있나요? [answer] | 제시된 참고 문서에는 `MatchmakingService`의 `ConnectEvent`와 `DisconnectEvent`, `SendEvent` 메서드의 시그니처와 간단한 설명만 포함되어 있습니다. 문서에는 이벤트 핸들러에서 전달받는 `event` 매개 변수의 구체적인 구조(클래스 정의)나 접근 가능한 필드 목록이 명시되어 있지 않습니다. 또한, 런타임에 이벤트 객체의 필드를 동적으로 확인하는 방법(예: `print`나 디버거 사용법 등)에 대한 설명도 포함되어 있지 않습니다. 따라서, 제공된 문서 범위 내에서는 이벤트 매개 변 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 내용을 지어내지 않고, 문서 범위 내에서 정보를 제공하지 못함을 정확히 인지하여 솔직하게 답변한 점이 정확성과 일관성 면에서 높게 평가됩니다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지

[task] | code [pass] | ✅ 통과 [title] | MatchmakingService [question] | `_MatchmakingService:WarpMatchUser`를 호출해 매칭된 유저를 워프시키고 결과 코드를 로그에 기록하는 서버 전용 스크립트를 작성해줘 [answer] | ```lua Property: [None] string TargetUserProfileCode = "" Method: [server only] void WarpAndLog() { local resultCode = _MatchmakingService:WarpMatchUser(self.TargetUserProfileCode) log("WarpMatchUser result code: " .. resultCode) } ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 WarpMatchUser 시그니처와 서버 전용 제약 조건을 정확히 반영하여 요청된 기능을 구현했으며, 불필요한 설명 없이 명확합니다. [source_doc] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn

[task] | instruction_following [pass] | ✅ 통과 [title] | UILogic [question] | UIToWorldPosition 메서드의 UI 좌표 원점 기준점을 표로 정리해서 설명하세요. [answer] | `UIToWorldPosition` 메서드에서 UI 좌표의 원점은 **최상위 UI의 pivot(Middle Center)** 입니다. | 항목 | 내용 | | :--- | :--- | | **UI 좌표 원점** | 최상위 UI의 pivot(Middle Center) | | **설명** | UI 좌표계의 기준점이 되는 위치입니다. `UIToWorldPosition` 메서드를 사용할 때 전달하는 `uiPosition` 값은 이 원점을 기준으로 한 좌표 값을 의미합니다. | [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서의 'UIToWorldPosition' 설명에 명시된 원점 기준점(최상위 UI의 pivot(Middle Center))을 정확히 표로 정리하여 질문에 충실히 답했습니다. [source_doc] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl

[task] | code [pass] | ✅ 통과 [title] | MODConditionType [question] | MODConditionType 컴포넌트를 가진 엔티티가 터치될 때 ParentComponent 프로퍼티의 값을 검증하여 유효한 StateComponent를 참조하고 있는지 확인하는 스크립트를 작성해줘 [answer] | `MODConditionType` 컴포넌트는 `StateComponent`를 소유하는 `ParentComponent` 프로퍼티를 가지며, 이 프로퍼티는 읽기 전용(ReadOnly)입니다. 따라서 해당 엔티티가 터치될 때 `ParentComponent`가 `nil`이 아닌지, 즉 유효한 `StateComponent`를 참조하고 있는지 검증하는 로직은 `TouchEvent` 이벤트 핸들러에서 구현할 수 있습니다. 참고 문서의 예제에서는 `self.ParentComponent`를 통해 해당 Condition을 소유한 StateCompo [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 MODConditionType 프로퍼티 및 mLua 표준 구문(TouchEvent, log, self 접근)을 정확히 사용하여 질문을 충실히 구현했다. [source_doc] | StateSet에서 사용되는 Condition을 표현합니다. 나만의 ConditionType을 정의하여 StateSet에서 활용할 수 있습니다. StateComponent에 직접적으로 추가, 제거하는 API는 추후 제공될 예정입니다. # Properties - **StateComponent ParentComponent [ReadOnly]** 이 Condition을 소유한 StateComponent입니다.

[task] | single_turn [pass] | ✅ 통과 [title] | ScrollBarMovementType [question] | ScrollBarMovementType의 Elastic와 Clamped 중 어느 쪽이 유저가 스크롤을 끝까지 밀었을 때 자연스러운 느낌을 주나요? [answer] | ScrollBarMovementType의 두 가지 옵션 중 유저가 스크롤을 끝까지 밀었을 때 자연스러운 느낌을 주는 것은 **Elastic**입니다. Elastic(값: 1)은 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아오는 동작을 하며, 이러한 물리적 반동 효과는 모바일 앱이나 최신 UI에서 흔히 볼 수 있는 직관적이고 부드러운 경험을 제공합니다. 반면, Clamped(값: 2)는 스크롤 바가 경계에 도달하면 단순히 멈추는 방식이라, 끝까지 밀었을 때 갑자기 딱 끊기는 느낌이 들어 상대적으로 덜 자연스러울 수 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | Elastic이 자연스러운 UX라는 주장은 문서의 '튕겨 돌아온다'는 설명과 일치하나, 코드 예시에서 Property 블록의 문법([None] 다음 줄에 선언)을 잘못 기재하고 있어 문법적 정확성이 약간 훼손됨. [source_doc] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr

[task] | single_turn [pass] | ❌ 탈락 [title] | MatchmakingService [question] | MatchmakingService에서 ConnectEvent를 사용할 때 string key와 Type eventType 중 어떤 방식이 더 안정적이며, 각 방식의 차이점은 무엇인가요? [answer] | 제공된 참고 문서에는 `MatchmakingService`의 `ConnectEvent` 메서드에 대해 두 가지 시그니처(문자열 `key` 기반과 `Type eventType` 기반)가 존재한다고만 기술되어 있습니다. 하지만 **두 방식 중 어느 쪽이 더 "안정적"인지에 대한 비교, 장단점 분석, 또는 권장사항에 대한 정보는 문서에 포함되어 있지 않습니다.** 또한, 각 방식이 내부적으로 어떻게 동작하는지(예: 문자열 매칭의 타이핑 오류 위험성, Type 기반의 컴파일 타임 안전성 등)에 대한 설명도 문서에 없습니다. 따라서 문서 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 두 방식의 안정성 비교나 장단점 정보가 없음을 정확히 지적하고, 지어내지 않은 채 질문의 전제를 검증하여 정직한 답변을 제공했습니다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지

[task] | two_turn [pass] | ✅ 통과 [title] | UILogic [question] | UILogic의 좌표 변환 메서드들이 어떤 역할을 하는지 각각 설명해 주세요 [answer] | UILogic의 좌표 변환 메서드들은 클라이언트에서만 실행되며, UI 좌표, Screen 좌표, World 좌표 간의 변환을 수행합니다. 각 메서드의 역할은 다음과 같습니다. * **`UIToWorldPosition(Vector2 uiPosition)`**: UI 좌표를 World 좌표로 변환합니다. UI 좌표의 원점은 최상위 UI의 pivot(Middle Center)를 기준으로 합니다. * **`WorldToScreenPosition(Vector2 worldPosition)`**: World 좌표를 Screen 좌표로 [followup] | World 좌표와 Screen 좌표, 그리고 UI 좌표 간의 변환 방향별 메서드 사용 예시 코드를 보여주세요 [followup_answer] | World, Screen, UI 좌표 간의 변환 방향별 메서드 사용 예시입니다. ### 1. World 좌표 → Screen 좌표 월드에서 특정 지점(예: 플레이어 위치)을 화면 상의 픽셀 좌표로 변환합니다. ```lua Property: [None] UITransformComponent targetUI = nil Method: [client only] void OnBeginPlay() { self.targetUI = _EntityService:GetEntityByPath("/ui/UIGroup/UIEmpty").UIT [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 좌표 변환 메서드들의 역할과 제약 조건을 정확하고 명료하게 설명하고 있습니다. [source_doc] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl

[task] | code [pass] | ❌ 탈락 [title] | MatchInfo [question] | 매칭 결과 코드(ResultCode)가 성공인 경우 홈 유저의 ID를 출력하는 스크립트를 작성해줘 [answer] | 참고 문서에 `MatchInfo` 객체의 프로퍼티로 `Home`과 `ResultCode`가 존재하며, `Home`은 `MatchUserInfo` 타입임을 알 수 있습니다. 또한 `MatchmakingResultCode`는 매칭 결과 코드 타입입니다. 다만, 제공된 참고 문서에는 `MatchmakingResultCode`의 상수 값(예: `Success` 또는 `0` 등)이 명시되어 있지 않으며, `MatchUserInfo` 타입이 `UserId` 프로퍼티를 가지고 있는지 여부도 명시되어 있지 않습니다. 또한 `MatchInfo` [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=3 coherence=4 complexity=3 verbosity=3 [judge_reason] | 문서에 없는 API를 지어내지 않으려는 태도는 정확하지만, 질문자의 의도(예시 코드 작성)에 부응하지 못해 도움이 제한적이며, 존재하지 않는 가정들을 반복적으로 설명하여 장황함. [source_doc] | 매칭이 성사된 경기의 정보입니다. # Properties - **MatchUserInfo Away [ReadOnly]** 자동으로 지정된 어웨이 유저입니다. 어웨이 유저는 홈 유저의 차례가 끝날 때까지 기다려야 합니다. - **MatchUserInfo Home [ReadOnly]** 자동으로 지정된 홈 유저입니다. 홈 유저는 먼저 선공 기회를 갖습니다. - **string ProfileCode [ReadOnly]** 매칭을 요청한 유저의 프로필 코드입니다. - **MatchmakingResultCode ResultCo

[task] | code [pass] | ❌ 탈락 [title] | MODConditionType [question] | MODConditionType 컴포넌트에서 ParentComponent 프로퍼티가 null인지 확인하여 소유된 StateComponent가 없는 경우 경고를 출력하는 스크립트를 작성해줘 [answer] | `MODConditionType` 컴포넌트에서 `ParentComponent` 프로퍼티는 `ReadOnly` 속성을 가지며, 이 Condition을 소유한 `StateComponent`를 참조합니다. 따라서 `ParentComponent`가 `nil`인지 확인하여 `StateComponent`가 연결되지 않은 경우 경고를 출력하는 스크립트는 다음과 같이 작성할 수 있습니다. ```lua Property: [None] boolean IsValid = false [None] table ActionKeys = {} [None] tabl [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=2 complexity=2 verbosity=4 [judge_reason] | 참고 문서에 존재하지 않는 다수의 프로퍼티와 컴포넌트 이름을 지어내어 작성했으며, 질문의 핵심이었던 ParentComponent 타입이 StateComponent임을 무시하고 nil 체크만 수행하는 등 문맥상 오류가 많습니다. [source_doc] | StateSet에서 사용되는 Condition을 표현합니다. 나만의 ConditionType을 정의하여 StateSet에서 활용할 수 있습니다. StateComponent에 직접적으로 추가, 제거하는 API는 추후 제공될 예정입니다. # Properties - **StateComponent ParentComponent [ReadOnly]** 이 Condition을 소유한 StateComponent입니다.

[task] | single_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | DisconnectEvent 호출 시 boolean 반환값이 false로 나오는 경우, 주로 어떤 원인으로 연결이 끊기지 않는 것인가요? [answer] | `DisconnectEvent` 호출 시 `false`가 반환되는 주된 원인은 **해당 이벤트와 핸들러 간의 연결(Subscription)이 존재하지 않기 때문**입니다. 구체적으로는 다음과 같은 상황이 해당됩니다: 1. **이미 해제된 상태**: 해당 `eventHandler`가 이미 `DisconnectEvent`를 통해 해제된 적이 있어 더 이상 연결 목록에 남아있지 않은 경우. 2. **미연결 상태**: `ConnectEvent`를 호출하여 해당 핸들러를 등록하지 않았거나, 등록 시 사용한 `key`(또는 `Type`)와 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 시그니처와 반환 타입을 바탕으로 반환값의 의미를 논리적으로 추론하여 정확하고 명확하게 설명했습니다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지

[task] | code [pass] | ✅ 통과 [title] | MatchResultUserInfo [question] | MatchResultUserInfo의 Extras 데이터를 파싱하여 다음 매칭 설정에 사용하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `MatchResultUserInfo` 구조체의 프로퍼티 정의(`Extras`, `MatchResult`, `ProfileCode`, `Score`)와 일반적인 mLua 문법 예제만 포함되어 있습니다. 문서에 따르면, `Extras` 프로퍼티는 **"매칭을 요청할 때 저장한 추가 데이터"** 인 문자열(`string`)로 정의되어 있습니다. 하지만 참고 문서에는 **`Extras` 데이터의 구체적인 포맷(JSON, CSV, Key-Value 등)이 무엇인지, 또는 어떤 함수를 사용하여 파싱해야 하는지(예: ` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=3 [judge_reason] | 문서에 없는 파싱 API나 매칭 서비스 메서드를 지어내지 않고, 제공된 정보 범위 내에서 제한점을 명확히 설명하며 안전한 기본 구조를 제시하여 정확성과 일관성이 높습니다. [source_doc] | 경기 종료 후 유저의 승패 여부와 점수 등의 정보를 나타냅니다. # Properties - **string Extras [ReadOnly]** 매칭을 요청할 때 저장한 추가 데이터입니다. - **MatchResultType MatchResult [ReadOnly]** 승패 여부입니다. - **string ProfileCode [ReadOnly]** 유저의 프로필 코드입니다. - **int32 Score [ReadOnly]** 경기 결과를 반영하여 새로 계산된 점수입니다.

[task] | single_turn [pass] | ❌ 탈락 [title] | MatchResultUserInfo [question] | ReadOnly 속성이 붙어 있는 MatchResultUserInfo의 프로퍼티들을 스크립트에서 직접 수정하려고 하면 어떤 오류가 발생하며, 대안은 무엇인가요? [answer] | `MatchResultUserInfo` 구조체의 `Extras`, `MatchResult`, `ProfileCode`, `Score` 프로퍼티는 모두 `[ReadOnly]` 속성이 붙어 있습니다. mLua에서 읽기 전용(ReadOnly) 필드를 직접 수정하려고 하면 런타임(Run-time) 오류가 발생합니다. 일반적으로 "attempt to assign to a read-only field" 또는 "cannot modify read-only property"와 유사한 에러 메시지가 출력되며, 해당 스크립트 실행이 중단됩니다. * [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 구체적인 에러 메시지와 _DataStorageService API를 지어내어 정확도가 낮음. [source_doc] | 경기 종료 후 유저의 승패 여부와 점수 등의 정보를 나타냅니다. # Properties - **string Extras [ReadOnly]** 매칭을 요청할 때 저장한 추가 데이터입니다. - **MatchResultType MatchResult [ReadOnly]** 승패 여부입니다. - **string ProfileCode [ReadOnly]** 유저의 프로필 코드입니다. - **int32 Score [ReadOnly]** 경기 결과를 반영하여 새로 계산된 점수입니다.

[task] | two_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | MatchmakingService의 리더보드 생성 시 `ratingStrategy`와 `scoringStrategy` 설정 제약 조건이 무엇인가요? [answer] | MatchmakingService의 리더보드 생성 시 `ratingStrategy`와 `scoringStrategy` 설정 제약 조건은 다음과 같습니다. 1. `ratingStrategy`가 `None`인 경우: - 리더보드에는 점수만 등록되고 순위는 계산되지 않습니다. 2. `ratingStrategy`가 `None`이 아닌 값으로 설정되는 경우(즉, 순위를 계산하려는 경우): - `scoringStrategy`는 반드시 `Last`로 설정해야 합니다. 이 제약 조건은 `CreateLeaderboardAndWait [followup] | `ratingStrategy`를 `None`으로 설정하지 않고 순위를 계산하려면 `scoringStrategy`를 어떻게 설정해야 하며, `resetInfo`가 `nil`일 때의 시즌 운영 방식은 어떻게 되나요? [followup_answer] | `ratingStrategy`를 `None`이 아닌 값으로 설정하여 순위를 계산하려면, `scoringStrategy`는 반드시 `Last`로 설정해야 합니다. `resetInfo`가 `nil`인 경우, 리더보드를 초기화하지 않고 하나의 시즌으로만 운영됩니다. [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 CreateLeaderboardAndWait 설명과 정확히 일치하며, 질문한 제약 조건을 명확하고 간결하게 답변했습니다. [source_doc] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na

[task] | code [pass] | ✅ 통과 [title] | LeaderboardSeasonResetInfo [question] | `LeaderboardSeasonResetInfo`의 `Schedule` 프로퍼티 값을 읽어와서 로컬 변수에 저장하고, 해당 값이 "0 9 15 * *"와 동일하면 "매달 15일 오전 9시 초기화"라고, 아니면 "기타 주기 설정"이라고 로그로 출력하는 스크립트를 작성해줘. [answer] | `LeaderboardSeasonResetInfo` 객체의 `Schedule` 프로퍼티 값을 확인하여 조건에 따라 메시지를 출력하는 스크립트입니다. ```lua [server only] void CheckSchedule(LeaderboardSeasonResetInfo resetInfo) { local schedule = resetInfo.Schedule local targetSchedule = "0 9 15 * *" if schedule == targetSchedule then log("매달 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 Schedule 프로퍼티와 예시 값을 정확히 활용해 요청한 조건 분기 로직을 구현했으며, mLua 문법도 적절히 사용했습니다. [source_doc] | 리더보드초기화 방식을 나타냅니다. 리더보드가 초기화될 때마다 새 시즌이 시작됩니다. # Properties - **DateTime ResettingAt [ReadOnly]** 다음 리셋 날짜와 시각입니다. ResetType이 Never일 경우 nil입니다. - **LeaderboardSeasonResetType ResetType** 초기화 방식입니다. - **string Schedule** 새로운 시즌이 시작되는 주기를 Cron 표현식으로 지정합니다. 예를 들어, '0 9 15 * *'로 설정하면 매달 15일 오전 9

[task] | single_turn [pass] | ✅ 통과 [title] | MatchResultUserInfo [question] | 매칭 시스템에서 여러 유저의 MatchResultUserInfo를 한 번에 가져오는 경우, 특정 유저의 정보가 누락되었을 때 어떻게 감지하고 처리해야 하나요? [answer] | 제공된 참고 문서에는 `MatchResultUserInfo` 구조체의 프로퍼티(Extras, MatchResult, ProfileCode, Score)만 정의되어 있을 뿐, 매칭 시스템에서 결과 목록을 가져오는 API, 이벤트 핸들러, 또는 여러 유저의 정보를 한 번에 반환하는 메서드에 대한 정보가 포함되어 있지 않습니다. 따라서 "여러 유저의 MatchResultUserInfo를 한 번에 가져오는" 구체적인 API나 이벤트가 무엇인지 문서에 근거하여 답변할 수 없으며, 누락 감지 및 처리를 위한 특정 함수나 코드 예제를 지어낼 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 API를 지어내지 않고, 제공된 프로퍼티를 활용해 누락 감지 로직을 논리적으로 제시하며, 문서 한계를 명확히 고지하여 신뢰도가 높습니다. [source_doc] | 경기 종료 후 유저의 승패 여부와 점수 등의 정보를 나타냅니다. # Properties - **string Extras [ReadOnly]** 매칭을 요청할 때 저장한 추가 데이터입니다. - **MatchResultType MatchResult [ReadOnly]** 승패 여부입니다. - **string ProfileCode [ReadOnly]** 유저의 프로필 코드입니다. - **int32 Score [ReadOnly]** 경기 결과를 반영하여 새로 계산된 점수입니다.

[task] | code [pass] | ❌ 탈락 [title] | MatchmakingService [question] | MatchmakingService의 ConnectEvent(string key, IScriptFunction eventHandler) 오버로드를 활용해 특정 문자열 키로 매칭 관련 이벤트를 구독하고 처리하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `MatchmakingService`의 `ConnectEvent` API가 존재함을 명시하고 있지만, mLua 스크립트에서 해당 서비스를 직접 호출하는 구체적인 문법(예: `_MatchmakingService:ConnectEvent(...)`)이나 특정 문자열 키에 해당하는 이벤트 타입, 그리고 핸들러 함수의 정확한 시그니처에 대한 예제가 포함되어 있지 않습니다. 문서에는 C# 기반의 API 시그니처(`IScriptFunction` 등)만 제시되어 있고, 실제 mLua(Lua 5.3) 환경에서 서비스 메서드를 [followup] | [followup_answer] | [scores] | helpfulness=0 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 mLua 문법을 지어내지 않으려 거부한 것은 정확성 측면에서 안전하지만, 시스템 규칙에 명시된 표준 서비스 호출 패턴(_Service:Method)과 생명주기 메서드를 활용하여 합리적 예시를 제시할 수 있었음에도 도움을 주지 못해 유용성이 매우 낮습니다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지

[task] | code [pass] | ✅ 통과 [title] | LeaderboardSeasonResetInfo [question] | `LeaderboardSeasonResetInfo`의 `ResetType`이 `Never`가 아닌 경우 `ResettingAt` 값이 nil이 아니라면 그 날짜와 시각을 문자열로 변환하여 출력하고, `Never`이거나 `ResettingAt`이 nil이면 "리더보드가 초기화되지 않습니다"라는 메시지를 출력하는 스크립트를 작성해줘. [answer] | `LeaderboardSeasonResetInfo`의 `ResettingAt` 프로퍼티는 `DateTime` 타입이며, `ResetType`이 `Never`일 때만 `nil`이 됩니다. 따라서 `ResettingAt`이 `nil`이 아닌지 확인하여 `nil`이 아니면 문자열로 변환해 출력하고, `nil`이면 해당 메시지를 출력하는 로직으로 구성할 수 있습니다. ```lua Property: [None] LeaderboardSeasonResetInfo resetInfo = LeaderboardSeasonResetInfo() Met [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 질문에서 요구한 ResetType 조건 확인 로직이 누락되었으나, 문서상 Never일 때 nil이므로 결과적으로는 동일한 동작을 하며 API 사용은 정확함 [source_doc] | 리더보드초기화 방식을 나타냅니다. 리더보드가 초기화될 때마다 새 시즌이 시작됩니다. # Properties - **DateTime ResettingAt [ReadOnly]** 다음 리셋 날짜와 시각입니다. ResetType이 Never일 경우 nil입니다. - **LeaderboardSeasonResetType ResetType** 초기화 방식입니다. - **string Schedule** 새로운 시즌이 시작되는 주기를 Cron 표현식으로 지정합니다. 예를 들어, '0 9 15 * *'로 설정하면 매달 15일 오전 9

[task] | code [pass] | ✅ 통과 [title] | MatchmakingService [question] | `_MatchmakingService:UpdateMatchResultAndWait`를 호출해 승패 정보를 반영하여 점수를 재계산하고 경기 결과 정보를 반환받아 로그에 출력하는 서버 전용 스크립트를 작성해줘 [answer] | `_MatchmakingService:UpdateMatchResultAndWait`는 `leaderboardId`, `homeUserProfileCode`, `awayUserProfileCode`, `winnerUserProfileCode` 인자를 받아 승패를 반영한 점수 재계산을 수행하고, 결과 코드와 경기 결과 정보를 반환하는 `[ServerOnly]` 및 `[Yield]` 메서드입니다. 비겼을 때는 `winnerUserProfileCode`에 `nil`을 전달해야 합니다. 요청하신 동작을 수행하는 서버 전용 스크립트는 다음과 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 시그니처와 제약(서버 전용, Yield, nil 처리)을 정확히 반영하여 요청된 동작을 수행하는 스크립트를 명확하게 제시했습니다. [source_doc] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn

[task] | single_turn [pass] | ✅ 통과 [title] | Logic [question] | IsClient()와 IsServer()를 사용하여 로직의 실행 환경을 구별할 때, 멀티캐스트 환경에서는 어떤 값을 반환하는지 궁금합니다. [answer] | 제공된 참고 문서에는 `IsClient()`와 `IsServer()` 메서드가 각각 "현재 실행 환경이 클라이언트인지 아닌지", "현재 실행 환경이 서버인지 아닌지"의 여부를 반환한다고만 명시되어 있습니다. 그러나 **멀티캐스트(multicast) 환경**에서 이 두 메서드가 구체적으로 어떤 값(`true` 또는 `false`)을 반환하는지에 대한 정보는 문서에 포함되어 있지 않습니다. 따라서 문서의 내용만으로는 멀티캐스트 환경에서의 반환 값을 확인할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 멀티캐스트 환경 반환값을 지어내지 않고, 문서 한계를 정확히 지적하여 질문에 대한 정직한 답변을 제공했습니다. [source_doc] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를

[task] | code [pass] | ✅ 통과 [title] | LeaderboardSeasonResetInfo [question] | `LeaderboardSeasonResetInfo`를 생성자 `LeaderboardSeasonResetInfo()`를 사용하여 초기화한 뒤, `ResetType`과 `Schedule` 프로퍼티의 현재 값을 테이블 형태로 정리하여 `log` 함수로 한 번에 출력하는 스크립트를 작성해줘. [answer] | `LeaderboardSeasonResetInfo` 객체를 생성한 후, `ResetType`과 `Schedule` 프로퍼티의 값을 테이블에 담아 `log`로 출력하는 스크립트는 다음과 같습니다. 참고로 `ResetType`이 `Never`인 경우 `ResettingAt`은 `nil`이 되지만, 질문에서 요구한 `ResetType`과 `Schedule`은 항상 접근 가능한 프로퍼티입니다. ```lua [server only] void OnBeginPlay() { -- LeaderboardSeasonResetInfo 객체 생 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 생성자 및 프로퍼티 정보를 정확히 활용하여 요구된 스크립트를 오류 없이 작성했습니다. [source_doc] | 리더보드초기화 방식을 나타냅니다. 리더보드가 초기화될 때마다 새 시즌이 시작됩니다. # Properties - **DateTime ResettingAt [ReadOnly]** 다음 리셋 날짜와 시각입니다. ResetType이 Never일 경우 nil입니다. - **LeaderboardSeasonResetType ResetType** 초기화 방식입니다. - **string Schedule** 새로운 시즌이 시작되는 주기를 Cron 표현식으로 지정합니다. 예를 들어, '0 9 15 * *'로 설정하면 매달 15일 오전 9

[task] | code [pass] | ✅ 통과 [title] | MatchmakingService [question] | `_MatchmakingService:SetScoreAndWait`를 호출하여 리더보드 점수를 갱신하고 결과 코드를 로그에 출력하는 서버 전용 스크립트를 작성해줘 [answer] | `_MatchmakingService:SetScoreAndWait`는 비동기 처리(Yield)를 포함하며, 작업이 완료되면 결과 코드를 반환합니다. 이를 호출하여 리더보드 점수를 갱신하고 결과 코드를 로그에 출력하는 서버 전용 스크립트는 다음과 같습니다. ```lua Property: [None] string LeaderboardId = "your_leaderboard_id" string UserProfileCode = "your_user_profile_code" number Score = 100 string Extras = "" [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 SetScoreAndWait 시그니처와 제약(ServerOnly, Yield)을 정확히 반영하여 mLua 문법으로 적절히 구현했습니다. [source_doc] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn

[task] | single_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | EventHandlerBase 타입을 직접 생성하거나 관리할 필요 없이 ConnectEvent의 반환값만 저장해두면 나중에 DisconnectEvent에 안전하게 전달할 수 있나요? [answer] | 네, 가능합니다. `ConnectEvent` 메서드는 성공적으로 이벤트 연결이 완료되면 `EventHandlerBase` 타입의 객체를 반환합니다. 이 반환 값을 변수에 저장해 두었다가, 해당 이벤트 연결을 끊을 때 `DisconnectEvent` 메서드의 두 번째 매개변수로 전달하면 됩니다. 따라서 직접 `EventHandlerBase`를 생성하거나 별도로 관리할 필요 없이, `ConnectEvent`의 반환값만 저장하여 나중에 `DisconnectEvent`에 전달하는 방식이 안전하고 올바른 사용법입니다. 아래는 이 방식을 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 API 시그니처와 동작 방식을 정확히 해석하여, ConnectEvent 반환값을 저장해 DisconnectEvent에 전달하는 표준적인 사용법을 명확하고 일관되게 설명했습니다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지

[task] | single_turn [pass] | ❌ 탈락 [title] | Logic [question] | 이벤트 연결과 해제 시 boolean 반환 값이 false를 반환하는 경우는 어떤 상황에서 발생하며, 이를 통해 어떤 오류를 감지할 수 있나요? [answer] | 제공된 참고 문서에는 `DisconnectEvent` 메서드가 `boolean` 타입을 반환한다는 사실만 명시되어 있습니다. 그러나 **`false`를 반환하는 구체적인 상황(예: 이벤트가 존재하지 않는 경우, 핸들러가 연결되어 있지 않은 경우 등)이나 이를 통해 감지할 수 있는 오류에 대한 설명은 문서에 포함되어 있지 않습니다.** 따라서 문서의 정보만으로는 `false` 반환 조건과 오류 감지 방법에 대해 답변할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서에 없는 정보를 지어내지 않고 문서 한계를 정확히 지적했으나, 질문자의 의도(구체적 상황 설명)에 대한 실질적 도움이 부족함. [source_doc] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를

[task] | two_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | `CreateLeaderboardAndWait`를 호출할 때 월드별 리더보드 생성 한도와 시즌 보관 정책이 어떻게 적용되나요? [answer] | `CreateLeaderboardAndWait`를 호출할 때 월드별 리더보드 생성 한도와 시즌 보관 정책은 다음과 같이 적용됩니다. **1. 월드별 리더보드 생성 한도** * 하나의 월드 내에서 최대 **20개**의 리더보드를 생성할 수 있습니다. * 이 한도를 초과하여 리더보드를 생성하려고 하면 생성이 불가능합니다. **2. 시즌 보관 정책** * 각 리더보드별로 생성된 시즌 중 **최근 30개**까지만 시스템에 보관됩니다. * `resetInfo` 파라미터가 `nil`로 전달되는 경우, 리더보드가 초기화되지 않 [followup] | 월드당 최대 20개 리더보드 생성 한도와 최근 30개 시즌 보관 정책이 초과될 경우 어떤 처리가 이루어지는지 구체적인 예외 상황을 알려주세요. [followup_answer] | 제공된 참고 문서에는 월드당 리더보드 생성 한도(20개) 초과 시나 최근 30개 시즌 보관 정책 초과 시에 대해 **구체적인 예외 상황, 오류 코드, 또는 자동 처리 방식(예: 가장 오래된 시즌 삭제 등)이 명시되어 있지 않습니다.** 문서에는 한도와 보관 정책 자체("월드당 최대 20개까지", "최근 30개까지만 보관")만 기술되어 있으며, 이를 위반하거나 초과했을 때 시스템이 어떻게 반응하는지(예: `CreateLeaderboardAndWait`가 실패하는지, 특정 `LeaderboardResultCode`를 반환하는지, 기존 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 월드당 최대 20개 한도, 최근 30개 시즌 보관 정책, nil일 때 단일 시즌 운영, ratingStrategy/Last 제약 사항이 정확하고 일관되게 설명되어 있습니다. [source_doc] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na

[task] | two_turn [pass] | ✅ 통과 [title] | MatchmakingService [question] | 매칭이 성사된 유저 정보를 조회하는 `GetMatchUserInfosAndWait` 메서드의 반환 값 구조는 어떻게 되나요? [answer] | `GetMatchUserInfosAndWait` 메서드는 매칭이 성사된 유저들의 정보를 조회하기 위해 사용되며, 두 가지 값을 반환합니다. 1. **`MatchmakingResultCode`**: 매칭 정보 조회 작업의 결과를 나타내는 결과 코드입니다. 2. **`table<MatchUserInfo>`**: 매칭된 유저들의 정보를 담고 있는 테이블입니다. 이 테이블의 구조는 다음과 같습니다. - **첫 번째 요소**: Home 유저의 `MatchUserInfo` - **두 번째 요소**: Away 유저의 `MatchUs [followup] | 반환되는 `table<MatchUserInfo>`에서 Home 유저와 Away 유저 정보를 구분하여 추출하는 mLua 코드 예시를 작성해주세요. [followup_answer] | `GetMatchUserInfosAndWait` 메서드가 반환하는 `table<MatchUserInfo>`에서 첫 번째 요소는 Home 유저, 두 번째 요소는 Away 유저 정보입니다. 아래는 이를 구분하여 추출하는 mLua 코드 예시입니다. ```lua Property: [None] string leaderboardId = "" Method: [server only] void GetMatchedUserInfos() { local profileCode = self.Entity.PlayerComponent.ProfileCo [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 반환값 구조(결과 코드, Home/Away 순서의 테이블)와 메서드 속성을 정확히 설명하고, 표준 mLua 구문을 사용해 적절한 예시를 제시했습니다. [source_doc] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na

← → 방향키로 페이지 이동 · 숫자 입력 후 Enter로 점프