[task] | two_turn [pass] | ✅ 통과 [title] | ScrollPositionChangedEvent [question] | UI Entity에서 ScrollPositionChangedEvent가 발생하는 조건과 NormalizedPosition 속성을 확인하고 싶습니다 [answer] | `ScrollPositionChangedEvent`는 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생합니다. 이 이벤트가 발생하려면 해당 UI Entity에 `ScrollLayoutGroupComponent` 또는 `GridViewComponent`가 반드시 장착되어 있어야 합니다. 또한, 이 이벤트는 Client 공간에서만 발생하며, 이벤트 객체의 `NormalizedPosition` 속성(`Vector2` 타입)을 통해 스크롤바의 정규화된 위치를 확인할 수 있습니다. 이벤트를 처리하는 mLua 스크립트 예시 [followup] | GridViewComponent와 ScrollLayoutGroupComponent 중 하나만 있을 때와 둘 다 있을 때 이벤트 발생 차이는 무엇이며, NormalizedPosition 값 범위를 검증하는 클라이언트 코드 예시를 보여주세요 [followup_answer] | 참고 문서에 따르면 `ScrollPositionChangedEvent`는 UI Entity에 `ScrollLayoutGroupComponent` 또는 `GridViewComponent`가 있을 때 발생합니다. 문서에는 두 컴포넌트가 동시에 존재할 경우와 하나만 존재할 경우의 이벤트 발생 빈도나 우선순위 차이에 대한 설명이 없으며, 단순히 둘 중 하나만 존재해도 이벤트가 발생한다는 사실만 명시되어 있습니다. `NormalizedPosition`은 `Vector2` 타입이며 스크롤바의 정규화된 위치를 나타냅니다. 문서에는 구체적인 값 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 발생 조건(ScrollLayoutGroupComponent 또는 GridViewComponent 장착, Client 공간)과 NormalizedPosition 속성(Vector2)을 정확히 설명하고, 표준 mLua 이벤트 핸들러 문법으로 적절한 예시를 제공하여 질문에 완벽히 부합합니다. [source_doc] | 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생하는 이벤트입니다. UI Entity에 ScrollLayoutGroupComponent 또는 GridViewComponent가 있어야 이벤트가 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * GridViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." da
[task] | single_turn [pass] | ❌ 탈락 [title] | WorldInstanceService [question] | WorldInstanceService를 통해 다른 월드 인스턴스와 통신할 때, 인스턴스 간 데이터 공유를 위해 SharedVariable을 사용해야 하나요? [answer] | WorldInstanceService를 통해 다른 월드 인스턴스와 통신할 때, 인스턴스 간 데이터 공유를 위해 `SharedVariable`을 사용해야 합니다. 제공된 문서 목록에 `SharedVariableInfo`와 `SharedVariableKeyInfo` 항목이 포함되어 있으며, 이는 월드 인스턴스 간의 데이터 공유를 위한 변수 관리와 관련된 구조체임을 시사합니다. 또한 `[월드 인스턴스 통신]` 문서 항목이 존재하므로, 인스턴스 간 통신 및 데이터 공유 시 이러한 공유 변수 메커니즘을 활용하는 것이 표준적인 방식입니다. [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=3 coherence=4 complexity=None verbosity=2 [judge_reason] | 문서에 명시된 구조체 이름만 근거로 통신 방식이 '반드시' SharedVariable이라고 단정하는 것은 근거가 부족하지만, 구체적인 API 지어내기는 없으며 문서 참조를 권유한 점은 적절함 [source_doc] | * PlayerComponent * Division * SharedMemoryResultCode * UserEnterEvent * SharedVariableInfo * SharedVariableKeyInfo * UserService * [월드 인스턴스 통신](/docs?postId=999) * [인스턴스 맵 만들기](/docs?postId=540) * [특정 월드 인스턴스로 워프하기](/docs?postId=1122)
[task] | single_turn [pass] | ❌ 탈락 [title] | WorldInstanceService [question] | 월드 인스턴스 통신 기능과 일반 맵 간 이동 기능은 API 사용 측면에서 어떤 차이가 있나요? [answer] | 제공된 참고 문서 목록에는 `WorldInstanceService`와 관련 링크 제목(월드 인스턴스 통신, 인스턴스 맵 만들기, 특정 월드 인스턴스로 워프하기)만 포함되어 있으며, 실제 API 명세, 함수 시그니처, 또는 일반 맵 간 이동 API(예: `TeleportService` 등)의 상세 내용은 포함되어 있지 않습니다. 따라서 **월드 인스턴스 통신 기능과 일반 맵 간 이동 기능의 API 사용 측면에서의 구체적인 차이(함수 이름, 파라미터, 이벤트 구조 등)를 설명할 수 있는 정보가 문서에 없습니다.** 참고 문서에 명시 [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 API 상세가 없어 답할 수 없다고 정직하게 답변했으나, system 규칙에 있는 표준 구문이나 일반적 차이점을 언급하지 않아 실질적 도움이 적음 [source_doc] | * PlayerComponent * Division * SharedMemoryResultCode * UserEnterEvent * SharedVariableInfo * SharedVariableKeyInfo * UserService * [월드 인스턴스 통신](/docs?postId=999) * [인스턴스 맵 만들기](/docs?postId=540) * [특정 월드 인스턴스로 워프하기](/docs?postId=1122)
[task] | two_turn [pass] | ✅ 통과 [title] | RoomService [question] | RoomService를 통해 모든 룸이나 특정 룸에 이벤트를 전송할 때 동기(Wait) 방식과 비동기(Async) 방식 중 어떤 것을 선택해야 하며, 각 방식의 차이점은 무엇인가요? [answer] | RoomService를 통해 이벤트를 전송할 때 동기(Wait) 방식과 비동기(Async) 방식의 선택 기준과 차이점은 다음과 같습니다. ### 1. 핵심 차이점 * **동기(Wait) 방식 (`AndWait`)** * 이벤트 전송 요청이 완료될 때까지 **현재 스크립트의 실행을 중단(블로킹)**합니다. * 전송 결과(`SendEventRequestResultCode`)를 즉시 반환받습니다. * 후속 로직이 반드시 전송 완료 후 실행되어야 하는 경우에만 사용해야 합니다. * **비동기(As [followup] | RequestSendEventToAllRoomsAndWait와 RequestSendEventToAllRoomsAsync를 비교할 때, 스크립트 실행 중단(Yield)이 발생하는 시점과 콜백 함수가 호출되는 로직을 구체적으로 설명해 주세요. [followup_answer] | `RequestSendEventToAllRoomsAndWait`(동기)와 `RequestSendEventToAllRoomsAsync`(비동기)의 실행 흐름 차이, 특히 Yield(실행 중단) 시점과 콜백 호출 로직은 다음과 같습니다. ### 1. RequestSendEventToAllRoomsAndWait (동기 방식) * **Yield(실행 중단) 시점:** * 메서드 호출 즉시 **Yield**가 발생합니다. * 이벤트가 **모든 룸에 전송이 완료될 때까지** 현재 스크립트의 실행이 완전히 중단됩니다 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 동기/비동기 방식의 차이와 선택 기준을 문서에 근거하여 명확히 설명하고, 주의사항 및 실제 사용 예제를 제공하여 질문자 입장에서 매우 유용하며 오류가 없습니다. [source_doc] | 단합니다. - **SendEventRequestResultCode RequestSendEventToAllRoomsAndWait(EventType sendEvent) [Yield]** 이벤트를 모든 룸에 전송합니다. 수신자는 RoomService에 핸들러를 등록해 이벤트를 수신할 수 있습니다. 수행하는 동안 스크립트 실행을 중단합니다. Entity, EntityRef, Component, ComponentRef를 Event에 담아 전송하면 유효하지 않은 값이 전달될 수 있으므로 주의해야 합니다. - **void RequestSen
[task] | single_turn [pass] | ✅ 통과 [title] | UITouchReceiveComponent [question] | 이 컴포넌트의 Enable 프로퍼티와 EnableInHierarchy 프로퍼티의 값이 서로 다르게 나타나는 경우는 언제인가요? [answer] | `Enable` 프로퍼티와 `EnableInHierarchy` 프로퍼티의 값이 서로 다른 경우는 다음과 같습니다. **`Enable`은 `true`이지만 `EnableInHierarchy`은 `false`인 경우:** * 이 컴포넌트 자체의 `Enable` 상태가 `true`로 설정되어 있음에도 불구하고, **이 컴포넌트를 소유한 엔티티(Entity)의 활성화 상태가 `false`** 일 때 발생합니다. * 즉, 컴포넌트 자체는 켜져 있지만, 계층 구조상 상위 엔티티가 비활성화되어 있어 실제로는 동작하지 않는 상태를 의미합 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 EnableInHierarchy 설명(Enable이 true라도 엔티티 Enable이 false면 false 반환)을 정확히 해석하여 두 프로퍼티 값이 다른 경우를 명확히 답변했습니다. [source_doc] | UI Entity를 터치할 수 있고, 터치 시 동작을 제어할 수 있습니다. # Properties ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다. - **En
[task] | code [pass] | ❌ 탈락 [title] | ScreenRecordService [question] | ScreenRecordService의 ConnectEvent(string key, ...) 오버로드를 사용해 "RecStart"라는 키로 이벤트를 연결하고, 이벤트 발생 시 녹화 중임을 표시하는 UI 상태 변경 로직을 구현하는 스크립트를 작성해줘 [answer] | 참고 문서에 `ScreenRecordService`의 `ConnectEvent(string key, IScriptFunction eventHandler)` 메서드와 `DisconnectEvent`, `SendEvent`는 정의되어 있습니다. 그러나 질문에서 요구하는 **"녹화 중임을 표시하는 UI 상태 변경"** 을 위한 구체적인 UI 관련 API, 컴포넌트, 또는 이벤트 타입(예: `RecStartEvent`)은 제공된 참고 문서에 포함되어 있지 않습니다. 따라서, 존재하지 않는 UI API나 이벤트를 지어내지 않기 위해, `S [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=2 complexity=3 verbosity=4 [judge_reason] | UI API 부재로 인한 한계 설명은 적절하나, ConnectEvent를 메서드 호출 방식으로 작성한 것은 mLua의 이벤트 핸들러 선언 문법과 상충될 수 있으며, 과도한 불확실성 주석으로 인해 가독성이 떨어진다. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputSubmitEditorEvent [question] | TextInputSubmitEditorEvent 를 발생하는 두 컴포넌트 이름을 단계별 번호 목록으로 나열하세요. [answer] | TextInputSubmitEditorEvent를 발생하는 컴포넌트는 다음과 같습니다. 1. TextGUIRendererInputComponent 2. TextInputComponent [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 두 컴포넌트 이름을 정확하고 간결하게 단계별 번호로 나열하여 질문을 완벽히 충족했습니다. [source_doc] | 입력을 마치고 Enter 키를 눌렀을 때 호출되는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * TextGUIRendererInputComponent <img src="https://img.shields.io/static/v1?label=Space&message=Editor&color=c4a484" alt="custom" title="Editor에서 이벤트가 발생합니다." data-nodeid="4"> * TextInputComponent <img src="https://img.shields.io/static/
[task] | two_turn [pass] | ✅ 통과 [title] | WorldInstanceService [question] | WorldInstanceService의 RequestSendEventToAllWorldInstancesAndWait 메서드와 WorldInstanceExcludedEvent에 대해 궁금합니다. [answer] | WorldInstanceService의 `RequestSendEventToAllWorldInstancesAndWait` 메서드와 `WorldInstanceExcludedEvent`에 대한 정보는 다음과 같습니다. **1. RequestSendEventToAllWorldInstancesAndWait** 이 메서드는 현재 월드 인스턴스에서 생성한 커스텀 이벤트를 **모든** 월드 인스턴스에 전송하기 위해 사용됩니다. * **사용법**: `_WorldInstanceService:RequestSendEventToAllWorldIns [followup] | 유저 입장 시 이벤트 전송 후, WorldInstanceExcludedEvent가 발생하는 은퇴 상태의 월드 인스턴스에서도 HandleMyUserEnterEvent 핸들러가 정상적으로 트리거되는지 여부와, ETag 기반 공유 메모리 업데이트 시 PreconditionFailed 오류가 발생했을 경우의 구체적인 재시도 로직 코드 작성 요청 [followup_answer] | 참고 문서를 근거로 질문에 대한 답변은 다음과 같습니다. **1. 은퇴 상태(WorldInstanceExcludedEvent 발생) 월드 인스턴스에서 HandleMyUserEnterEvent 트리거 여부** 참고 문서에는 `WorldInstanceExcludedEvent`가 "월드 서버가 은퇴 상태가 되면 해당 월드 서버에 속한 월드 인스턴스에서 발생하는 이벤트"라고만 정의되어 있습니다. `RequestSendEventToAllWorldInstancesAndWait` 메서드가 은퇴 상태의 월드 인스턴스까지 이벤트를 전송하는지, 혹 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 API 명세와 예제 코드를 정확히 인용하여 질문에 충실히 답변했으며, 지어낸 정보가 없습니다. [source_doc] | # Events - **WorldInstanceExcludedEvent** 월드 서버가 은퇴 상태가 되면 해당 월드 서버에 속한 월드 인스턴스에서 발생하는 이벤트입니다. # Examples #### ETag ETag를 사용하는 예제입니다. ```lua local code, mem = _WorldInstanceService:GetSharedMemory("memname") -- current.Info.ETag에는 최신 ETag가 담겨 있습니다. local current = mem:GetVariableAndWait("v
[task] | single_turn [pass] | ✅ 통과 [title] | RegexOption [question] | ExplicitCapture 옵션이 활성화된 상태에서 정규식 패턴에서 비명명 그룹은 어떻게 처리되나요? [answer] | `ExplicitCapture` 옵션(값 4)이 활성화되면, 정규식 패턴에서 `(?...)` 형식으로 명시적으로 명명되었거나 번호가 매겨진 그룹만 유효한 캡처로 취급됩니다. 즉, 이 옵션을 사용할 경우 다른 형태의 그룹(예: 단순히 괄호 `()`로 묶인 비명명 그룹)은 캡처 대상에서 제외되며, 결과적으로 캡처되지 않게 됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 ExplicitCapture 설명과 일치하며, 비명명 그룹이 제외된다는 논리적 추론도 정확하고 간결합니다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputSubmitEditorEvent [question] | TextInputSubmitEditorEvent 의 생성자 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua -- TextInputSubmitEditorEvent 생성자 -- 매개변수: string text (기본값 nil) -- 지정한 값으로 TextInputSubmitEditorEvent를 초기화합니다. TextInputSubmitEditorEvent(string text = nil) ``` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 생성자 시그니처와 설명을 주석으로 정확히 포함하여 요청에 충실하게 응답했습니다. [source_doc] | 입력을 마치고 Enter 키를 눌렀을 때 호출되는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * TextGUIRendererInputComponent <img src="https://img.shields.io/static/v1?label=Space&message=Editor&color=c4a484" alt="custom" title="Editor에서 이벤트가 발생합니다." data-nodeid="4"> * TextInputComponent <img src="https://img.shields.io/static/
[task] | instruction_following [pass] | ✅ 통과 [title] | RegexOption [question] | RegexOption의 Multiline과 ExplicitCapture 값을 이진수로 변환하여 합산한 결과를 10진수로 출력하세요. [answer] | `RegexOption`의 `Multiline` 값은 2, `ExplicitCapture` 값은 4입니다. 이 값들을 이진수로 변환하면 다음과 같습니다. * `Multiline` (2): `10` (2진수) * `ExplicitCapture` (4): `100` (2진수) 두 값을 합산하면 $2 + 4 = 6$이 됩니다. 따라서 10진수로 출력한 결과는 **6**입니다. mLua에서 이를 확인하는 코드 예시는 다음과 같습니다. ```lua Method: [client only] void OnBeginPlay() { [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서의 값을 정확히 인용하여 요청된 연산을 수행했고, mLua 표준 구문으로 적절히 예시를 제시했습니다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | code [pass] | ✅ 통과 [title] | WorldInstanceService [question] | 현재 월드 인스턴스가 실행 중인 서버의 지역(Division) 정보를 조회하여 로그에 출력하는 스크립트를 작성해줘. (사용 서비스: _WorldInstanceService) [answer] | ```lua Method: [server only] void OnBeginPlay() { local division = _WorldInstanceService:GetDivision() log("Current Division: " .. tostring(division)) } ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시된 GetDivision() 메서드와 [server only] 실행 공간, 표준 생명주기 메서드 및 로그 출력을 정확하고 간결하게 구현했습니다. [source_doc] | 월드 인스턴스 관련 기능을 제공합니다. # Properties - **string WorldInstanceId [ReadOnly]** 현재 월드 인스턴스의 Id입니다. # Methods - **SharedMemoryResultCode DeleteSharedMemoryAndWait(string name) [ServerOnly] [Yield]** 공유 메모리를 삭제합니다. 해당 공유 메모리를 사용 중인 월드 인스턴스가 있더라도 삭제됩니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void DeleteSharedM
[task] | instruction_following [pass] | ✅ 통과 [title] | RegexOption [question] | 문서의 Members 표에 있는 모든 멤버 이름과 값, 설명을 마크다운 표 형식으로 그대로 재현하세요. [answer] | | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Singleline | 16 | 한 줄 모드로 지정해 입력된 문자열이 한 줄로 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 Members 표를 요청대로 빠짐없이 정확히 재현하였습니다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputSubmitEditorEvent [question] | TextInputSubmitEditorEvent 에 포함된 프로퍼티와 생성자 시그니처를 표로 정리해서 보여주세요. [answer] | `TextInputSubmitEditorEvent`의 프로퍼티와 생성자 시그니처는 다음과 같습니다. | 구분 | 이름 | 타입 / 시그니처 | 설명 | | :--- | :--- | :--- | :--- | | **Properties** | `Text` | `string` | 이벤트를 통해 전달된 텍스트입니다. | | **Constructors** | `TextInputSubmitEditorEvent` | `TextInputSubmitEditorEvent(string text = nil)` | 지정한 값으로 `TextInputSub [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 프로퍼티와 생성자 정보를 정확하고 명확한 표 형식으로 제시하여 질문에 완벽하게 부합합니다. [source_doc] | 입력을 마치고 Enter 키를 눌렀을 때 호출되는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * TextGUIRendererInputComponent <img src="https://img.shields.io/static/v1?label=Space&message=Editor&color=c4a484" alt="custom" title="Editor에서 이벤트가 발생합니다." data-nodeid="4"> * TextInputComponent <img src="https://img.shields.io/static/
[task] | single_turn [pass] | ✅ 통과 [title] | RegexOption [question] | RegexOption의 여러 값을 하나의 패턴에 동시에 적용하려면 어떻게 처리해야 하나요? [answer] | RegexOption의 여러 값을 하나의 패턴에 동시에 적용하려면 비트 필드(bitfield) 연산자인 `|` (OR)를 사용해야 합니다. 각 옵션은 고유한 비트 값을 가지므로, `|` 연산자를 통해 값을 조합하여 여러 옵션이 동시에 활성화된 상태의 숫자를 생성할 수 있습니다. 예를 들어, `IgnoreCase`(1), `Multiline`(2), `Singleline`(16) 옵션을 동시에 적용하려면 다음과 같이 작성합니다. ```lua local regex = Regex("your_pattern", RegexOption.Ig [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | RegexOption이 비트 플래그(1, 2, 4, 16 등)로 정의되어 있음을 정확히 인지하고 비트 OR 연산자를 사용하는 것이 표준적인 처리 방식임을 설명하며, 제공된 예시도 문법적으로 올바르고 문서의 값과 일치한다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | instruction_following [pass] | ✅ 통과 [title] | ScrollPositionChangedEvent [question] | ScrollPositionChangedEvent를 처리하는 mLua 이벤트 핸들러 코드를 주석으로만 설명 포함하여 출력하세요. [answer] | ```lua Event Handler: [self] HandleScrollPositionChangedEvent(ScrollPositionChangedEvent event) { -- ScrollPositionChangedEvent 는 UI Entity 의 스크롤 위치가 변경될 때 발생하는 이벤트입니다. -- 이 이벤트가 발생하려면 해당 Entity 에 ScrollLayoutGroupComponent 또는 GridViewComponent 가 장착되어 있어야 합니다. -- 이벤트는 Client 공간에서 발생하며, s [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 이벤트 발생 조건, 프로퍼티 타입, 실행 공간(Client/self)을 정확히 반영하며, mLua 문법과 주석 설명이 적절하고 명확합니다. [source_doc] | 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생하는 이벤트입니다. UI Entity에 ScrollLayoutGroupComponent 또는 GridViewComponent가 있어야 이벤트가 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * GridViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." da
[task] | code [pass] | ❌ 탈락 [title] | ScreenRecordService [question] | ScreenRecordService의 SendEvent를 호출하여 녹화 종료 이벤트를 발생시키고, ConnectEvent로 연결된 핸들러에서 해당 이벤트를 수신해 로그를 출력하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `ScreenRecordService`의 `SendEvent`와 `ConnectEvent` 메서드 시그니처만 정의되어 있을 뿐, 구체적인 이벤트 타입 이름(예: `ScreenRecordStopEvent` 등)이나 이벤트 객체의 프로퍼티는 명시되어 있지 않습니다. mLua 스크립트에서 특정 서비스의 이벤트를 연결하려면 해당 이벤트의 정확한 타입 이름(Type) 또는 키(Key)가 필요합니다. 문서에 없는 이벤트 타입을 임의로 지어내서는 안 되므로, 아래 예제에서는 **가정된 이벤트 타입 이름 `ScreenRec [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=2 coherence=3 complexity=3 verbosity=3 [judge_reason] | 문서에 없는 이벤트 타입과 생성자를 지어내어 예시를 작성했으며, mLua의 이벤트 핸들러 문법(Event Handler 블록)을 무시하고 일반 메서드로 작성한 점이 정합성을 해침. [source_doc] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지
[task] | instruction_following [pass] | ❌ 탈락 [title] | WorldInstanceService [question] | 특정 월드 인스턴스로 워프하기 위해 `_EntityService`와 `_SpawnService`를 조합하는 로직을 구현해 주세요. 코드만 출력하고 설명은 주석으로 [answer] | ```lua Property: [None] number TargetInstanceMapId = 1001 [None] string TargetInstanceMapPath = "/instances/instance_map_01" Method: [server only] void WarpToSpecificInstance(number UserId) { -- 1. 대상 인스턴스 맵 엔티티를 경로로 검색합니다. local targetMapEntity = _EntityService:GetEntityByPath(self.TargetI [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 API(_UserService:GetUserEntityByUserId, PlayerComponent:MoveToEntityByPath)를 지어내고, _SpawnService로 유저를 워프하는 논리는 비현실적이며 문서 내용과 불일치함. [source_doc] | * PlayerComponent * Division * SharedMemoryResultCode * UserEnterEvent * SharedVariableInfo * SharedVariableKeyInfo * UserService * [월드 인스턴스 통신](/docs?postId=999) * [인스턴스 맵 만들기](/docs?postId=540) * [특정 월드 인스턴스로 워프하기](/docs?postId=1122)
[task] | two_turn [pass] | ✅ 통과 [title] | RoomService [question] | RoomService의 이벤트 수신 처리를 위해 ConnectEvent를 사용할 때, 문자열(key) 기반과 타입(Type) 기반 연결 방식의 차이점과 각각의 장단점은 무엇인가요? [answer] | RoomService에서 `ConnectEvent`를 사용하여 이벤트를 수신할 때, **문자열(key) 기반**과 **타입(Type) 기반** 연결 방식은 다음과 같은 차이점과 장단점을 가집니다. ### 1. 연결 방식의 차이점 * **문자열(key) 기반 (`string key`)** * **동작 원리:** 이벤트의 **이름(string)**을 키로 사용하여 핸들러를 등록합니다. * **매개변수:** `ConnectEvent(string key, IScriptFunction eventHandler)` [followup] | 특정 이벤트 타입에 대한 핸들러를 등록하고, 필요할 때 DisconnectEvent로 연결을 해제하는 전체 생명주기를 관리하는 mLua 스크립트 코드를 작성해 주세요. [followup_answer] | RoomService에서 특정 이벤트 타입에 대한 핸들러를 등록하고, 필요할 때 `DisconnectEvent`로 연결을 해제하는 전체 생명주기를 관리하는 mLua 스크립트 코드입니다. 문서에는 `ConnectEvent`와 `DisconnectEvent`의 매개변수로 `string key` 또는 `Type eventType`을 사용할 수 있다고 명시되어 있습니다. 아래 예시는 **타입(Type) 기반** 연결을 사용하는 경우를 보여줍니다. (문자열 기반인 경우 `MyCustomEventType` 대신 이벤트 이름 문자열을 사용하면 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=3 [judge_reason] | 문서의 API 시그니처와 주의사항을 정확히 인용하고, 문자열과 타입 기반 연결의 차이 및 장단점을 논리적으로 설명했으며, mLua 문법에 부합하는 예시 코드를 제공하여 질문에 충실히 답했습니다. [source_doc] | 단합니다. - **SendEventRequestResultCode RequestSendEventToAllRoomsAndWait(EventType sendEvent) [Yield]** 이벤트를 모든 룸에 전송합니다. 수신자는 RoomService에 핸들러를 등록해 이벤트를 수신할 수 있습니다. 수행하는 동안 스크립트 실행을 중단합니다. Entity, EntityRef, Component, ComponentRef를 Event에 담아 전송하면 유효하지 않은 값이 전달될 수 있으므로 주의해야 합니다. - **void RequestSen
[task] | single_turn [pass] | ✅ 통과 [title] | ScrollPositionChangedEvent [question] | ScrollPositionChangedEvent가 발생하는 UI Entity에 반드시 붙여야 하는 컴포넌트는 무엇인가요? [answer] | ScrollPositionChangedEvent가 발생하려면 UI Entity에 `ScrollLayoutGroupComponent` 또는 `GridViewComponent` 중 하나가 붙어 있어야 합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 필수 컴포넌트 조건을 정확하고 간결하게 답변했습니다. [source_doc] | 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생하는 이벤트입니다. UI Entity에 ScrollLayoutGroupComponent 또는 GridViewComponent가 있어야 이벤트가 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * GridViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." da
[task] | single_turn [pass] | ✅ 통과 [title] | WorldInstanceService [question] | 월드 서버가 은퇴 상태가 되면 발생하는 WorldInstanceExcludedEvent의 구체적인 트리거 조건과 처리 방법이 궁금합니다. [answer] | **WorldInstanceExcludedEvent**는 월드 서버가 은퇴 상태가 될 때, 해당 월드 서버에 속해 있는 월드 인스턴스에서 발생합니다. 참고 문서에는 이 이벤트의 구체적인 트리거 조건(예: 특정 시간 경과, 자원 부족 등)이나 이벤트 핸들러를 통해 수행해야 하는 구체적인 처리 로직(예: 유저 강제 종료, 데이터 저장 등)에 대한 상세 설명이 제공되지 않습니다. 문서에서 확인 가능한 정보만으로는 이벤트 발생 시점에 대한 추가적인 세부 사항이나 권장되는 처리 방법을 알 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 포함된 정보만 정확히 인용하고, 문서에 없는 트리거 조건이나 처리 로직을 지어내지 않은 채 한계를 명확히 서술하여 질문 의도에 부합합니다. [source_doc] | # Events - **WorldInstanceExcludedEvent** 월드 서버가 은퇴 상태가 되면 해당 월드 서버에 속한 월드 인스턴스에서 발생하는 이벤트입니다. # Examples #### ETag ETag를 사용하는 예제입니다. ```lua local code, mem = _WorldInstanceService:GetSharedMemory("memname") -- current.Info.ETag에는 최신 ETag가 담겨 있습니다. local current = mem:GetVariableAndWait("v
[task] | single_turn [pass] | ✅ 통과 [title] | RegexOption [question] | CastFrom 메서드를 사용해 숫자 3을 RegexOption으로 변환하면 어떤 옵션들이 활성화되나요? [answer] | `RegexOption`의 각 멤버 값은 2의 거듭제곱(2, 4, 8, 16...)으로 정의되어 있으며, 여러 옵션을 동시에 활성화하려면 값들을 비트 OR(`|`) 연산으로 조합합니다. 숫자 **3**은 이진수로 `11`이며, 이는 값이 1인 `IgnoreCase`와 값이 2인 `Multiline`의 합(1 + 2 = 3)과 일치합니다. 따라서 `RegexOption.CastFrom(3)`를 사용하면 다음 두 옵션이 동시에 활성화됩니다. 1. **IgnoreCase (1)**: 대소문자를 구분하지 않고 일치 항목을 찾도록 지 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 Enum 값(1, 2)을 정확히 조합하여 3이 IgnoreCase와 Multiline의 합임을 논리적으로 설명하고, 표준 mLua 구문으로 예시를 제공하여 정확하고 유용합니다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | single_turn [pass] | ✅ 통과 [title] | ScrollPositionChangedEvent [question] | ScrollPositionChangedEvent 생성자에서 normalizedPosition 인자를 생략하면 기본값은 어떻게 설정되나요? [answer] | `ScrollPositionChangedEvent` 생성자의 `normalizedPosition` 인자를 생략하면 기본값으로 `Vector2(0, 0)` 이 설정됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서의 생성자 서명(Vector2 normalizedPosition = Vector2(0, 0))과 정확히 일치하는 정보를 간결하고 명확하게 전달했습니다. [source_doc] | 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생하는 이벤트입니다. UI Entity에 ScrollLayoutGroupComponent 또는 GridViewComponent가 있어야 이벤트가 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * GridViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." da
[task] | single_turn [pass] | ✅ 통과 [title] | ScrollPositionChangedEvent [question] | 이벤트에서 스크롤바의 현재 위치를 정규화된 값으로 가져오는 속성 이름은 무엇인가요? [answer] | `ScrollPositionChangedEvent`에서 스크롤바의 현재 정규화된 위치를 가져오는 속성 이름은 `NormalizedPosition`입니다. 이 속성은 `Vector2` 타입이며, 이벤트 핸들러에서 `event.NormalizedPosition`으로 접근하여 사용할 수 있습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서에 명시된 속성 이름과 타입을 정확히 답변하여 질문에 완벽하게 부합합니다. [source_doc] | 스크롤이 가능한 UI Entity에서 스크롤 위치가 변경될 때 발생하는 이벤트입니다. UI Entity에 ScrollLayoutGroupComponent 또는 GridViewComponent가 있어야 이벤트가 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * GridViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." da
[task] | code [pass] | ✅ 통과 [title] | WorldInstanceService [question] | 출시 환경에서만 동작하는 WorldInstanceInfoPages를 비동기로 조회하여, 조회 성공 여부와 결과 객체를 출력하는 스크립트를 작성해줘. (사용 서비스: _WorldInstanceService) [answer] | 출시 환경에서 `WorldInstanceInfo`를 페이지 단위로 비동기로 조회하려면 `_WorldInstanceService`의 `GetWorldInstanceInfoPagesAsync` 메서드를 사용합니다. 이 메서드는 작업이 완료되면 성공 여부(boolean)와 결과 객체(`WorldInstanceInfoPages`)를 인수로 전달하는 콜백 함수를 호출합니다. 참고로, 이 메서드는 출시(Release) 환경에서만 정상 동작하며, 메이커(Maker)에서 실행하면 `false`와 `nil`이 전달됩니다. ```lua Metho [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 명시된 API 시그니처와 동작 방식을 정확히 이해하여, 비동기 콜백 처리와 메이커 환경에서의 동작( false, nil)을 고려한 적절한 예제를 제공했습니다. [source_doc] | 월드 인스턴스 관련 기능을 제공합니다. # Properties - **string WorldInstanceId [ReadOnly]** 현재 월드 인스턴스의 Id입니다. # Methods - **SharedMemoryResultCode DeleteSharedMemoryAndWait(string name) [ServerOnly] [Yield]** 공유 메모리를 삭제합니다. 해당 공유 메모리를 사용 중인 월드 인스턴스가 있더라도 삭제됩니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void DeleteSharedM
[task] | two_turn [pass] | ✅ 통과 [title] | ScreenRecordService [question] | 녹화 중 마이크 기기를 변경하거나 남은 녹화 시간을 확인하는 API를 사용해서, 녹화 시작부터 종료까지의 전체 프로세스를 제어하는 mLua 스크립트 예시를 작성해 주세요. [answer] | 제공된 참고 문서에 포함된 `ScreenRecordService` API를 사용하여 녹화 시작, 마이크 기기 변경, 남은 시간 확인, 그리고 녹화 종료까지의 전체 프로세스를 제어하는 mLua 스크립트 예시는 다음과 같습니다. 참고로, `ScreenRecordService`는 클라이언트 전용(`[ClientOnly]`) 서비스이며, 대부분의 메서드가 `Wait` 접미사가 붙어 있어 비동기 처리를 위해 `wait()` 함수나 콜백을 활용해야 합니다. 또한, 모바일 환경(`Android`)과 PC 환경(`Windows/Mac`)에서 지 [followup] | GetMicrophoneDevicesAndWait()로 기기를 찾고 SetMicrophoneIndexForRecording()으로 설정한 후, IsRecording() 상태를 확인하는 로직이 포함된 코드를 만들어 주세요. [followup_answer] | 요청하신 `GetMicrophoneDevicesAndWait()`, `SetMicrophoneIndexForRecording()`, `IsRecording()` API를 사용하여 마이크 기기를 변경하고 녹화 상태를 확인하는 mLua 스크립트 예시는 다음과 같습니다. ```lua Method: [client only] void ChangeMicAndCheckStatus() { -- 1. 사용 가능한 마이크 기기 목록 가져오기 -- GetMicrophoneDevicesAndWait는 [Yield] 메서드이므로 실행이 잠 [scores] | helpfulness=3 correctness=3 coherence=4 complexity=4 verbosity=3 [judge_reason] | API 사용법이 문서와 일치하나, [Yield] 메서드 처리 방식이 mLua의 wait() 패턴과 명확히 연결되지 않아 비동기 처리에 혼동을 줄 수 있음 [source_doc] | 화면 녹화 기능을 제공합니다. \n\n플랫폼별로 지원하는 녹화 모드(ScreenRecordMode)가 다릅니다. Android 환경에서는 ScreenAndGameAudioAndMic 모드로 녹화되고, Windows 환경에서는 ScreenAndMic 모드 녹화됩니다. 환경에 맞지 않는 모드를 선택하면 지원하는 녹화 모드로 화면을 녹화합니다. # Methods - **string FinishRecordAndWait() [ClientOnly] [Yield]** 녹화를 종료합니다. 녹화 파일 생성을 완료하면 저장 경로를 반환합니다.
[task] | code [pass] | ✅ 통과 [title] | WorldInstanceService [question] | 월드 인스턴스 간 데이터를 주고받기 위해 "GlobalBossState"라는 이름의 공유 메모리를 생성하고, 이후 사용이 끝나면 해당 공유 메모리를 해제하는 스크립트를 작성해줘. (사용 서비스: _WorldInstanceService) [answer] | `_WorldInstanceService`를 사용하여 `GlobalBossState`라는 이름의 공유 메모리를 생성(또는 기존 것을 가져오기)하고, 작업이 끝난 후 해제하는 스크립트입니다. 공유 메모리 접근과 해제는 모두 서버에서만 실행되므로 `[server only]` 속성을 적용했습니다. ```lua Method: [server only] void OnBeginPlay () { -- "GlobalBossState" 이름의 공유 메모리를 얻어옵니다. -- 이미 존재하면 기존 것을, 없으면 새로 생성합니다. local re [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 CreateVariable API를 예시로 제시했으나 주석으로 처리했고, 반환값 처리 방식이 문서와 미묘하게 다를 수 있으나 핵심 흐름은 정확합니다. [source_doc] | 월드 인스턴스 관련 기능을 제공합니다. # Properties - **string WorldInstanceId [ReadOnly]** 현재 월드 인스턴스의 Id입니다. # Methods - **SharedMemoryResultCode DeleteSharedMemoryAndWait(string name) [ServerOnly] [Yield]** 공유 메모리를 삭제합니다. 해당 공유 메모리를 사용 중인 월드 인스턴스가 있더라도 삭제됩니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void DeleteSharedM
[task] | single_turn [pass] | ✅ 통과 [title] | RegexOption [question] | Multiline과 Singleline 옵션이 서로 어떤 차이점이 있나요? [answer] | `RegexOption` enum에서 `Multiline`과 `Singleline`은 문자열의 줄(line)을 어떻게 해석하고 처리할지를 결정하는 옵션으로, 서로 반대되는 동작을 합니다. **1. Multiline (값: 2)** * **의미:** 여러 줄 모드입니다. * **차이점:** 입력된 문자열이 여러 줄로 구성되어 있음을 명시적으로 지정합니다. * **영향:** 정규식 엔진이 문자열 내의 개행 문자(`\n` 등)를 인식하여, 줄 시작(`^`)과 줄 끝(`$`) 앵커가 각 줄의 시작과 끝에 매칭되도록 처리합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 정의와 표준 정규식 문법 지식을 적절히 결합하여 두 옵션의 차이를 명확하고 정확하게 설명했습니다. [source_doc] | 정규 표현식에 필요한 옵션을 지정할 수 있습니다. # Members | 이름 | 값 | 설명 | |---|---|---| | None | 0 | 옵션을 설정하지 않습니다. | | IgnoreCase | 1 | 대소문자를 구분하지 않고 일치 항목을 찾도록 지정합니다. | | Multiline | 2 | 여러 줄 모드입니다. 여러 줄로 구성된 문자열을 처리할 수 있도록 지정합니다. | | ExplicitCapture | 4 | (?...) 형식을 명시적으로 명명하거나 번호가 매겨진 그룹만 유효한 캡처되도록 지정합니다. | | Sin
[task] | single_turn [pass] | ✅ 통과 [title] | TextInputSubmitEditorEvent [question] | TextInputSubmitEditorEvent 의 생성자에서 text 인자를 생략하면 어떤 값이 기본으로 설정되나요? [answer] | `TextInputSubmitEditorEvent`의 생성자에서 `text` 인자를 생략하면 기본값으로 `nil`이 설정됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 생성자 시그니처(text = nil)를 정확히 인용하여 질문을 간결하고 정확하게 답변했습니다. [source_doc] | 입력을 마치고 Enter 키를 눌렀을 때 호출되는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * TextGUIRendererInputComponent <img src="https://img.shields.io/static/v1?label=Space&message=Editor&color=c4a484" alt="custom" title="Editor에서 이벤트가 발생합니다." data-nodeid="4"> * TextInputComponent <img src="https://img.shields.io/static/
[task] | code [pass] | ❌ 탈락 [title] | WorldInstanceService [question] | 월드 인스턴스의 공유 메모리에 저장된 변수 값이 특정 임계값 이상으로 변경되면 해당 값을 클라이언트에 동기화하고 서버 로그에 기록하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `WorldInstanceService`, `SharedVariableInfo`, `SharedVariableKeyInfo`, `SharedMemoryResultCode` 등의 항목 이름만 나열되어 있으며, **공유 메모리(Shared Memory)의 값을 읽거나 변경하는 구체적인 API 함수명(예: Get, Set, OnChange 이벤트 등)과 그 파라미터, 반환값에 대한 설명이 전혀 포함되어 있지 않습니다.** mLua 스크립트 작성 시에는 존재하지 않는 API나 함수를 임의로 만들어서는 안 되므로, 제 [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 실제 API 명세가 없어 코드를 작성할 수 없다고 정확히 판단했으나, 시스템 규칙에 기반한 최소한의 예시 코드 제시 없이 거절만 했으므로 유용성이 낮음 [source_doc] | * PlayerComponent * Division * SharedMemoryResultCode * UserEnterEvent * SharedVariableInfo * SharedVariableKeyInfo * UserService * [월드 인스턴스 통신](/docs?postId=999) * [인스턴스 맵 만들기](/docs?postId=540) * [특정 월드 인스턴스로 워프하기](/docs?postId=1122)