← 목록

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

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

[task] | instruction_following [pass] | ✅ 통과 [title] | MobileShareService [question] | MobileShareService의 ShareFileAndWait 메서드 호출 시 반환 타입과 실행 공간 제한 조건을 3문장 이내로 설명하세요. [answer] | `ShareFileAndWait` 메서드는 성공 여부에 따라 `boolean` 타입을 반환합니다. 이 메서드는 클라이언트에서만 실행할 수 있으며, `[Yield]` 속성을 가져 호출 후 코드가 일시 정지됩니다. 파일이 없거나 공유에 실패하면 `false`가 반환됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 반환 타입(boolean), 실행 공간([ClientOnly]), 제약([Yield]), 실패 조건(false 반환)을 모두 정확히 3문장 이내로 요약했습니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | code [pass] | ❌ 탈락 [title] | Vector4 [question] | Vector4 Multiply, Addition, Inequality를 활용하여 현재 벡터 값이 목표 벡터와 다를 때만 매 프레임마다 특정 배수로 증분하여 목표 값에 도달하도록 만드는 스크립트를 작성해줘 [answer] | Vector4의 `Addition`, `Multiply`, `Inequality` 정적 메서드를 활용하여 현재 벡터 값이 목표 벡터와 다를 때만 매 프레임(`OnUpdate`)마다 특정 배수로 증분하여 목표 값에 도달하도록 만드는 스크립트는 다음과 같습니다. ```lua Property: [None] Vector4 TargetVector = Vector4(10, 20, 30, 40) [None] number IncrementScale = 1.5 Method: [server only] void OnBeginPlay() { [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=2 complexity=3 verbosity=2 [judge_reason] | 핵심 로직은 정확하나, 질문에서 명시한 3개 API 외 Subtraction을 사용한 점을 스스로 인정하면서도 코드 주석에 과도한 추론 과정을 남기는 등 불필요한 장황함이 있고, CurrentVector 프로퍼티 선언이 누락되어 실제 컴파일이 불가능한 코드 예시를 제공했음. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | single_turn [pass] | ✅ 통과 [title] | WorldInstanceSharedMemory [question] | BatchDeleteVariableAndWait는 변수를 사용 중인 곳이 있더라도 삭제된다고 하는데, 이 경우 다른 WorldInstance에서 해당 변수에 접근하면 어떤 문제가 발생하나요? [answer] | `BatchDeleteVariableAndWait`를 통해 변수가 삭제된 후, 다른 WorldInstance에서 해당 변수에 접근하면 **해당 변수가 존재하지 않는 상태**가 됩니다. 참고 문서에는 삭제된 변수에 대한 접근 시 발생하는 구체적인 오류 코드나 예외 발생 방식이 명시되어 있지 않습니다. 다만, `BatchGetVariableAndWait`나 `GetVariableAndWait`와 같은 조회 메서드를 호출하여 변수 정보를 얻어오려 할 경우, 해당 변수가 이미 삭제되었으므로 **변수 정보를 반환받지 못하거나 실패 결과를 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 구체적인 오류 코드를 지어내지 않고, 문서의 '강제 삭제' 설명과 일반적 로직으로 합리적으로 추론하며, 안전한 사용법을 제안하여 질문의 의도에 부합합니다. [source_doc] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | single_turn [pass] | ✅ 통과 [title] | WorldInstanceSharedMemory [question] | WorldInstanceSharedMemory의 메서드들이 모두 ServerOnly로 지정되어 있는 이유는 무엇이며, 클라이언트에서 직접 호출할 경우 어떤 오류가 발생하나요? [answer] | 제공된 참고 문서에는 `WorldInstanceSharedMemory` 메서드들이 `[ServerOnly]`로 지정된 **이유**나 클라이언트에서 호출 시 발생하는 **구체적인 오류 메시지**에 대한 정보가 포함되어 있지 않습니다. 따라서 문서에 근거하여 이 질문에 답할 수 없습니다. 다만, 문서에서 확인할 수 있는 사실은 다음과 같습니다: 1. `BatchCreateVariableAndWait`, `BatchGetVariableAndWait`, `BatchSetVariableAndWait` 등 `WorldInstanceSha [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 '이유'나 '구체적 오류'를 지어내지 않고, 문서에 명시된 [ServerOnly] 태그 사실만 근거로 정확하고 간결하게 답변했습니다. [source_doc] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | instruction_following [pass] | ✅ 통과 [title] | WorldInstanceSharedMemory [question] | 분당 함수 호출 및 이벤트 전송 횟수 제한과 Batch 호출 시 계산 방식을 단계별 번호 목록으로 작성하세요. [answer] | WorldInstanceSharedMemory 사용 시 분당 제한 사항과 Batch 호출 계산 방식은 다음과 같습니다. 1. **함수 호출 횟수 제한** * 월드의 생성된 모든 월드 인스턴스에서 분당 최대 **1,000회**까지 WorldInstanceSharedMemory 함수를 호출할 수 있습니다. 2. **Batch 호출 시 함수 호출 횟수 계산 방식** * Batch 함수를 1회 호출하여 100개의 공유 변수 값을 변경하는 경우, 함수 호출 횟수는 **100회**로 계산됩니다. * 즉, Batch로 처리한 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 제한 사항과 Batch 호출 계산 방식을 정확하고 명확하게 단계별로 서술했습니다. [source_doc] | # 제한 사항 **WorldInstanceService**를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 WorldInstanceMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * **알파벳 대,소문자** * **숫자** * **공백** * **_, \\, -** #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 WorldInstanceSharedMemory는 최대 **100개**입

[task] | single_turn [pass] | ❌ 탈락 [title] | SharedVariableKeyInfo [question] | 여러 클라이언트가 동시에 같은 공유 변수를 수정하려고 시도할 때 ETag를 활용하여 덮어쓰기 충돌을 방지하는 원리를 설명해 주세요. [answer] | 여러 클라이언트가 동시에 같은 공유 변수를 수정할 때 ETag는 **낙관적 락(Optimistic Locking)** 방식의 일종으로 동작하여 동시 다발적 덮어쓰기(Concurrent Overwrite)를 방지합니다. ### ETag 기반 충돌 방지 원리 1. **최신 상태 확인 (Read)** 클라이언트가 공유 변수를 수정하기 전에, 먼저 해당 변수의 현재 값과 함께 **최신 ETag**를 가져와야 합니다. `GetVariableAndWait` 메서드를 사용하면 변수 값과 함께 `Info.ETag` 필드에 저장된 현재 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 없는 _WorldInstanceService, GetVariableAndWait, UpdateVariableAndWait, SharedMemoryResultCode 등 API와 코드 예제를 지어내어 정확도가 0점입니다. [source_doc] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey

[task] | code [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | 월드 인스턴스 공유 메모리에 "player_score"라는 이름의 변수를 "100"으로 설정하는 서버 전용 스크립트를 작성해줘 [answer] | 월드 인스턴스 공유 메모리에 변수를 설정하려면 `_WorldInstanceService:GetSharedMemory`로 메모리 인스턴스를 가져온 후, `SetVariableAndWait` 메서드를 사용해야 합니다. 요청하신 "player_score" 변수를 "100"으로 설정하는 서버 전용 스크립트는 다음과 같습니다. ```lua Property: [None] string MemoryName = "MySharedMemory" string VariableName = "player_score" string VariableValue = [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 `_WorldInstanceService` 서비스와 `GetSharedMemory` 메서드를 지어냈으며, 문서에 명시된 메서드만 사용해야 함에도 잘못된 접근 방식을 제시했음 [source_doc] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie

[task] | single_turn [pass] | ✅ 통과 [title] | WorldInstanceSharedMemory [question] | BatchReleaseVariableAndWait를 호출했을 때 "자동으로 삭제"된다는 문장의 의미는, 다른 인스턴스가 아직 참조 중일 때에도 즉시 메모리가 해제되는 것을 의미하나요? [answer] | 아니요, 다른 인스턴스가 아직 참조 중일 때에도 즉시 메모리가 해제되는 것을 의미하지 않습니다. `BatchReleaseVariableAndWait`는 특정 변수에 대한 **사용 종료(Release)**를 알리는 메서드입니다. 이 메서드의 설명에 "해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다"라고 명시되어 있습니다. 이는 참조 카운트(Reference Counting) 방식과 유사한 동작을 의미하며, 다음과 같이 해석할 수 있습니다: 1. **참조 중일 경우:** 다른 WorldInstance나 스크립트가 해 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 '해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다'라는 설명을 참조 카운트 방식의 종료 시점에 맞춰 정확하고 명확하게 해석하여 질문에 적절히 답했습니다. [source_doc] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | instruction_following [pass] | ✅ 통과 [title] | MobileShareService [question] | ConnectEvent와 DisconnectEvent 메서드의 두 가지 오버로드 차이를 표로 정리해서 출력하세요. [answer] | MobileShareService의 `ConnectEvent`와 `DisconnectEvent` 메서드는 첫 번째 매개변수의 타입에 따라 두 가지 오버로드로 제공되며, 이벤트 식별 방식을 다르게 합니다. | 메서드 | 오버로드 1 (문자열 기반) | 오버로드 2 (타입 기반) | | :--- | :--- | :--- | | **ConnectEvent** | `EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)`<br>이벤트 **이름**(string)을 ` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 ConnectEvent와 DisconnectEvent 오버로드 시그니처 및 반환값을 표로 정확하고 명확하게 정리했습니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | code [pass] | ❌ 탈락 [title] | SharedVariableInfo [question] | ETag 를 확인하여 값이 변경되었을 때만 로컬 캐시를 갱신하는 SharedVariableInfo 를 사용하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `SharedVariableInfo`의 `ETag`, `Name`, `Value` 프로퍼티와 `_WorldInstanceService`, `WorldInstanceSharedMemory` 객체의 메서드(`GetSharedMemory`, `GetVariableAndWait`, `UpdateVariableAndWait` 등)에 대한 정보만 포함되어 있습니다. 문서에 따르면, **서버에서 공유 변수 값을 읽는 것(`GetVariableAndWait`)만 제공되며, 특정 변수의 값이 변경되었을 때 클라이언트나 서버 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=1 coherence=4 complexity=None verbosity=2 [judge_reason] | 참고 문서에는 SharedVariableInfo의 프로퍼티만 기술되어 있고, 응답에서 사용한 _WorldInstanceService, GetSharedMemory, GetVariableAndWait 등 API는 문서에도 mLua 표준 규칙에도 존재하지 않는 지어낸 내용입니다. [source_doc] | 공유 변수 정보입니다. # Properties - **string ETag [ReadOnly]** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name [ReadOnly]** 변수 이름입니다. - **string Value [ReadOnly]**

[task] | code [pass] | ❌ 탈락 [title] | RoomSharedMemory [question] | RoomSharedMemory의 'ChatHistory' 공유 변수에 최근 채팅 기록을 저장하고, 용량 제한(80,000 bytes)에 도달하면 가장 오래된 기록을 삭제한 후 'ChatHistoryUpdated' 이벤트를 전송하는 스크립트를 작성해줘 [answer] | RoomSharedMemory는 참고 문서에 제공된 API 명세(메서드, 이벤트 핸들러, 프로퍼티)가 없습니다. 문서에는 RoomSharedMemory의 **제한 사항** (작명 규칙, 용량 제한 등)만 언급되어 있을 뿐, 실제로 공유 변수를 생성하거나 값에 접근하기 위한 mLua 함수 시그니처가 정의되어 있지 않습니다. 따라서 제공된 참고 문서만을 근거로 **실제 동작하는 RoomSharedMemory 접근 코드**를 작성하는 것은 불가능합니다. 존재하지 않는 API를 지어내면 안 되므로, 요청하신 구체적인 코드(공유 변수 저장 [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 RoomSharedMemory의 실제 조작 API가 명시되지 않았으므로, 존재하지 않는 함수를 지어내지 않고 제한 사항만 정리한 것은 정확하지만 사용자 요청인 코드 작성에는 도움을 주지 못했습니다. [source_doc] | # 제한 사항 RoomSharedMemory를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 RoomSharedMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * 알파벳 대,소문자 * 숫자 * 공백 * _, \, - #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 RoomSharedMemory는 최대 100개입니다. * 하나의 공유 변수에 저장할 수 있는 최댓값은 80,000 byte

[task] | two_turn [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | WorldInstanceSharedMemory의 변수 생성과 조회 시 동기(Wait)와 비동기(Async) 메서드를 어떻게 선택해야 하는지 알려주세요 [answer] | WorldInstanceSharedMemory에서 변수를 생성하거나 조회할 때 동기(Wait)와 비동기(Async) 메서드를 선택하는 기준은 **스크립트의 흐름 제어 방식**과 **성능(블로킹 여부)**입니다. ### 1. 동기 메서드 (Wait) 사용 시 `*AndWait`로 끝나는 메서드들은 수행하는 동안 **스크립트 실행을 중단**(블로킹)시킵니다. * **적합한 경우:** * 다음 로직을 수행하기 위해 반드시 현재 작업(변수 생성/조회)이 완료되어야 할 때. * 코드의 가독성이 중요하고, 복잡한 [followup] | BatchCreateVariableAndWait를 호출할 때 스크립트 실행이 중단되는 Yield 특성을 고려하여, 대기 시간 동안 다른 로직을 병렬 처리하고 싶다면 어떤 Async 패턴으로 코드를 구성해야 하는지 예시를 요청합니다. [followup_answer] | `BatchCreateVariableAndWait`는 `[Yield]` 특성을 가지므로 호출 시 현재 스크립트 코루틴이 블로킹됩니다. 이 대기 시간 동안 다른 로직을 병렬로 처리하려면 `BatchCreateVariableAsync`를 사용해야 합니다. 비동기 패턴의 핵심은 **콜백 함수(callback function)**를 통해 결과를 처리하는 것입니다. `BatchCreateVariableAsync`는 즉시 반환하므로, 호출 직후 다른 로직을 실행할 수 있으며, 변수 생성이 완료되면 전달된 콜백 함수가 실행됩니다. 아래는 ` [scores] | helpfulness=4 correctness=0 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 없는 _WorldInstanceService:GetSharedMemory API와 SharedVariableResult의 Info.Value 프로퍼티를 지어내어 정확도가 0점입니다. [source_doc] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | code [pass] | ❌ 탈락 [title] | SharedVariableKeyInfo [question] | 입력값으로 이름과 ETag를 받아 SharedVariableKeyInfo를 생성하되, ETag가 빈 문자열이면 nil로 처리하도록 하는 유틸리티 함수를 작성해줘 [answer] | 사용자가 요청한 유틸리티 함수는 mLua의 메서드(Method) 블록 안에 정의되는 일반 함수로 작성할 수 있습니다. mLua는 Lua 5.3 기반이므로, 함수 정의 시 `local function` 또는 `function`을 사용하여 작성하며, 파라미터는 선언부에서 타입을 명시하지 않고 본문에서 직접 처리합니다. 요청에 따라 `ETag`가 빈 문자열(`""`)인 경우 `nil`로 변환하여 `SharedVariableKeyInfo` 생성자에 전달하도록 로직을 구성합니다. ```lua Method: [server] SharedVa [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | 요청된 유틸리티 함수 로직은 정확하나, 사용 예시에서 제공된 문서에 없는 `_WorldInstanceService` 및 `SharedMemory` 관련 API를 지어내어 정확성에서 감점이 됩니다. [source_doc] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey

[task] | two_turn [pass] | ✅ 통과 [title] | Vector3 [question] | Vector3 상수(Vector3.up, Vector3.forward 등)를 활용한 위치 연산 시, `+=` 연산자가 지원되지 않는다는 점에 대해 어떻게 이해해야 하며, 상수를 사용하여 Entity의 Position을 상단 방향으로 10만큼 이동시키는 올바른 코드 문법은 무엇인가요? [answer] | mLua는 Lua 5.3 기반이므로 `+=`, `-=`, `*=`, `/=`와 같은 복합 대입 연산자를 지원하지 않습니다. 따라서 `self.Entity.Transform.Position += Vector3.up * 10`과 같은 문법은 사용할 수 없습니다. 대신, 현재 위치를 읽어서 이동 벡터를 더한 **새로운 Vector3 객체**를 생성한 뒤, 그 결과를 다시 `Position` 속성에 대입하는 방식(`Position = Position + Vector`)으로 작성해야 합니다. Entity의 Position을 상단 방향으로 [followup] | `Vector3.up`과 같은 상수 벡터를 `number`와 곱할 때 `Vector3 Multiply(float left, Vector3 right)`와 `Vector3 Multiply(Vector3 left, float right)` 중 어떤 시그니처가 적용되는지 구분해서 설명해 주시고, Scale을 2배로 키우는 코드 `self.Entity.Transform.Scale = Vector3.one * 2`에서 `Vector3.one`의 역할과 연산 결과를 해석해 주세요. [followup_answer] | `Vector3.up`과 같은 상수 벡터를 `number`와 곱할 때 적용되는 시그니처는 연산자의 순서에 따라 다음과 같이 구분됩니다. 1. **`Vector3 Multiply(Vector3 left, float right)`** * **적용 예시:** `Vector3.up * 10` * **설명:** 벡터가 왼쪽, 숫자가 오른쪽에 위치할 때 이 시그니처가 적용됩니다. `Vector3.up`은 `Vector3` 타입이고 `10`은 `number`(float) 타입이므로, 벡터를 실수배한 새로운 `Vector [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 예제와 규칙에 정확히 부합하며, += 미지원 사유와 올바른 대안 코드를 명확히 설명했습니다. [source_doc] | # Operators - **Vector3 Addition(Vector3 left, Vector3 right) [Static]** 두 벡터를 더한 Vector3 객체를 생성해 반환합니다. - **Vector3 Division(Vector3 left, float right) [Static]** 벡터를 실수로 나눈 Vector3 객체를 생성해 반환합니다. - **boolean Equality(Vector3 left, Vector3 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면

[task] | code [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | 월드 인스턴스 공유 메모리의 "player_score" 변수를 해제하여 더 이상 사용하지 않음을 알리는 서버 전용 스크립트를 작성해줘 [answer] | 월드 인스턴스 공유 메모리의 변수를 해제하는 기능은 `ReleaseVariableAsync` 메서드를 사용하여 구현합니다. 이 메서드는 서버 전용으로 동작하며, 해당 변수를 사용하는 곳이 더 이상 없으면 변수가 자동으로 삭제됩니다. 아래는 "player_score" 변수를 해제하는 mLua 스크립트 예시입니다. ```lua Method: [server only] void ReleasePlayerScoreVariable() { local code, mem = _WorldInstanceService:GetSharedMemor [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=3 verbosity=2 [judge_reason] | 참고 문서와 mLua 규칙에 없는 _WorldInstanceService:GetSharedMemory API를 지어내어 코드가 실행될 수 없으므로 정확도가 0점입니다. [source_doc] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie

[task] | single_turn [pass] | ✅ 통과 [title] | MobileShareService [question] | ShareFileAndWait 메서드가 false를 반환할 수 있는 구체적인 원인은 무엇인가요? [answer] | `ShareFileAndWait` 메서드가 `false`를 반환하는 구체적 원인은 다음 두 가지입니다. 1. **파일이 없는 경우**: 전달된 `filePath` 경로에 해당 이미지 또는 영상 파일이 존재하지 않을 때. 2. **공유 실패의 경우**: 파일은 존재하지만 공유 과정 자체에 실패했을 때. 이 메서드는 모바일 기기에서만 사용 가능하며, 공유 완료 또는 실패를 기다리는(Yield) 동작을 수행합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 false 반환 원인(파일 부재, 공유 실패)과 모바일 전용, Yield 특성을 정확하고 간결하게 설명했습니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | instruction_following [pass] | ✅ 통과 [title] | RoomService [question] | CreateInstanceRoom 메서드의 매개변수 목록과 기본값을 코드 블록으로만 출력하세요. [answer] | ```lua InstanceRoom CreateInstanceRoom(string key, table<string> mapNames, float firstUserWaitSeconds = 10) ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 CreateInstanceRoom 시그니처를 코드 블록으로만 정확히 추출하여 요청사항을 완벽히 충족했습니다. [source_doc] | 룸 관련 기능을 제공합니다. # Properties - **ReadOnlyDictionary<string, InstanceRoom> InstanceRooms [ReadOnly]** 활성화된 모든 인스턴스 룸의 목록입니다. - **string RoomKey [ReadOnly]** 현재 룸의 key입니다. 현재 룸이 인스턴스 룸이면 생성 시 지정한 key 값을, 정적 룸이면 StaticRoomKey와 같은 값을 나타냅니다. - **string StaticRoomKey [ReadOnly]** 정적 룸의 key입니다. 정적

[task] | single_turn [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | BatchSetVariableAndWait에서 "변수가 없으면 새 변수들을 할당"한다는 설명은 기존에 존재하는 변수의 값을 덮어쓰는 것과 어떤 차이점이 있나요? [answer] | `BatchSetVariableAndWait`는 이름과 값 쌍을 전달받아 변수를 설정하는 메서드입니다. 문서에 따르면, 이 메서드는 **변수가 없으면 새 변수를 할당**하고, **변수가 이미 존재하면 기존 값으로 덮어쓰기**하는 동작을 수행합니다. 따라서 "기존에 존재하는 변수의 값을 덮어쓰는 것"과 `BatchSetVariableAndWait`의 차이점은 **없습니다**. `BatchSetVariableAndWait`는 두 가지 경우를 모두 포함하는 통합된 동작을 수행하며, 변수의 존재 여부를 확인하여 자동으로 생성 또는 수정합 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 API(_WorldInstanceService:GetSharedMemory, result.Code)를 지어냈고, '덮어쓰기'라는 동작을 문서 없이 추측하여 서술했으므로 정확도가 낮음 [source_doc] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | single_turn [pass] | ✅ 통과 [title] | MobileShareService [question] | MobileShareService의 ShareFileAndWait는 PC 환경에서 실행할 경우 어떻게 동작하나요? [answer] | MobileShareService는 모바일 기기에서만 사용할 수 있는 서비스입니다. 따라서 PC 환경에서 `ShareFileAndWait`를 실행하더라도 모바일 기기에서와 동일한 방식으로 동작하지 않습니다. 참고 문서에 따르면, 해당 서비스는 "모바일 기기에서만 사용할 수 있습니다"라고 명시되어 있으며, PC 환경에서의 구체적인 동작(예: 에러 발생, 무시, false 반환 등)에 대한 설명은 제공되지 않습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서 기반 답변으로, 모바일 전용이라는 제약 사항을 정확히 지적하고 문서에 없는 PC 동작 방식을 지어내지 않아 정확하고 유용합니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | code [pass] | ❌ 탈락 [title] | SharedVariableKeyInfo [question] | SharedVariableKeyInfo를 생성하여 이름과 ETag를 설정하고, ETag가 비어있지 않으면 업데이트를 시도하도록 하는 스크립트를 작성해줘 [answer] | `SharedVariableKeyInfo`는 공유 변수의 이름(`Name`)과 현재 데이터베이스에 저장된 버전 정보인 `ETag`를 포함하여 생성합니다. `ETag`가 비어있지 않은 경우, 이 값이 현재 DB의 `ETag`와 일치할 때만 업데이트가 성공적으로 수행됩니다. 요구사항에 따라 `SharedVariableKeyInfo`를 생성하고, `ETag`가 비어있지 않을 때만 업데이트를 시도하는 로직을 포함한 스크립트입니다. ```lua Property: [None] string VariableName = "MySharedVar" [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 _WorldInstanceService, GetSharedMemory, UpdateVariableAndWait 등 API와 SharedMemoryResultCode를 지어내어 정확도가 0점입니다. [source_doc] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey

[task] | code [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | 월드 인스턴스 공유 메모리의 "game_state" 변수를 ETag 기반 동시성 제어를 통해 "paused" 값으로 업데이트하는 서버 전용 스크립트를 작성해줘 [answer] | 월드 인스턴스 공유 메모리의 `game_state` 변수를 ETag 기반 동시성 제어로 업데이트하는 서버 전용 스크립트는 아래처럼 작성합니다. 1. `_WorldInstanceService:GetSharedMemory`로 메모리 객체를 가져옵니다. 2. `GetVariableAndWait`로 현재 변수 상태와 최신 ETag를 조회합니다. 3. 조회된 ETag를 `SharedVariableKeyInfo`에 담아 `UpdateVariableAndWait`를 호출하여 "paused" 값으로 수정합니다. 4. ETag 불일치로 인한 수정 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 없는 `_WorldInstanceService`, `GetSharedMemory`, `GetVariableAndWait` 및 `SharedMemoryResultCode` 등을 지어내어 정합성이 낮음. [source_doc] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie

[task] | code [pass] | ❌ 탈락 [title] | WorldInstanceSharedMemory [question] | 월드 인스턴스 공유 메모리의 "inventory_data" 변수를 비동기 방식으로 "new_items" 값으로 수정하는 서버 전용 스크립트를 작성해줘 [answer] | 월드 인스턴스 공유 메모리에서 `inventory_data` 변수를 비동기 방식으로 수정하려면 `_WorldInstanceService:GetSharedMemory`로 메모리 객체를 얻은 후, 현재 변수의 `ETag`를 가져와 `SharedVariableKeyInfo`를 구성해야 합니다. 이후 `UpdateVariableAsync` 메서드를 호출하여 값을 `"new_items"`로 변경하고, 콜백 함수에서 처리 결과를 확인합니다. ```lua Method: [server only] void OnBeginPlay() { lo [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 `GetSharedMemory`, `GetVariableAndWait` API를 지어내어 사실과 다르며, 요청된 `UpdateVariableAsync`만으로도 충분히 작성 가능한 상황에서 불필요한 오류가 발생한다. [source_doc] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie

[task] | instruction_following [pass] | ❌ 탈락 [title] | RoomService [question] | MoveUsersToInstanceRoom과 MoveUsersToStaticRoom 메서드의 반환 타입 차이를 3문장 이내로 설명하세요. [answer] | `MoveUsersToInstanceRoom`은 성공적으로 이동된 유저의 수를 나타내는 `int32` 타입을 반환합니다. 반면 `MoveUsersToStaticRoom`은 해당 유저의 정적 맵 이동 성공 여부를 나타내는 `boolean` 타입을 반환합니다. 따라서 전자는 이동된 인원을, 후자는 작업의 성패 여부를 확인하는 데 사용됩니다. [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | MoveUsersToStaticRoom의 반환 타입이 int32임에도 boolean이라고 지어내어 문서와 어긋난다. [source_doc] | 룸 관련 기능을 제공합니다. # Properties - **ReadOnlyDictionary<string, InstanceRoom> InstanceRooms [ReadOnly]** 활성화된 모든 인스턴스 룸의 목록입니다. - **string RoomKey [ReadOnly]** 현재 룸의 key입니다. 현재 룸이 인스턴스 룸이면 생성 시 지정한 key 값을, 정적 룸이면 StaticRoomKey와 같은 값을 나타냅니다. - **string StaticRoomKey [ReadOnly]** 정적 룸의 key입니다. 정적

[task] | single_turn [pass] | ✅ 통과 [title] | MobileShareService [question] | ScreenRecordService로 녹화한 영상 파일을 공유할 때, ShareFileAndWait에 전달해야 할 filePath는 어떤 형식이어야 하나요? [answer] | 제공된 참고 문서에는 `ShareFileAndWait` 메서드에 전달할 `filePath`의 구체적인 형식(예: 절대 경로, 상대 경로, 특정 파일 확장자 등)이 명시되어 있지 않습니다. 문서에는 `filePath` 경로에 있는 이미지 또는 영상을 공유한다고만 기술되어 있으며, `ScreenRecordService`로 녹화한 영상의 실제 파일 경로 생성 방식이나 형식 관련 정보는 포함되어 있지 않습니다. [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 filePath 형식이 명시되지 않았음을 정확히 지적하여 잘못된 추측을 방지했으나, 실질적인 해결책(예: ScreenRecordService의 메서드 확인 권장)이 없어 도움이 제한적입니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | two_turn [pass] | ✅ 통과 [title] | MobileShareService [question] | MobileShareService는 어떤 기능을 제공하며 모바일 기기 외 환경에서는 사용할 수 있나요? [answer] | MobileShareService는 `ScreenshotService`로 캡처한 이미지나 `ScreenRecordService`로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다. 이 서비스는 **모바일 기기에서만 사용할 수 있으며**, 모바일 기기 외의 환경에서는 사용할 수 없습니다. [followup] | ShareFileAndWait 메서드가 파일이 없거나 공유에 실패했을 때 반환하는 값은 무엇이며, 이는 어떤 상황에서 발생하나요? [followup_answer] | `ShareFileAndWait` 메서드는 파일이 없거나 공유에 실패한 경우 **false**를 반환합니다. 이는 다음 두 가지 상황에서 발생합니다: 1. 전달된 `filePath` 경로에 해당 이미지 또는 영상 파일이 존재하지 않는 경우 2. 파일은 존재하지만 공유 과정 중 오류가 발생하여 공유가 실패한 경우 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서의 내용과 정확히 일치하며 질문에 간결하고 정확하게 답변했습니다. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | code [pass] | ✅ 통과 [title] | SharedVariableKeyInfo [question] | SharedVariableKeyInfo의 기본 생성자를 사용하여 Name 속성만 초기화하고, ETag가 nil이 아닌지 확인하는 로직을 포함하는 스크립트를 작성해줘 [answer] | `SharedVariableKeyInfo`는 `Name`과 `ETag` 두 속성을 가지며, 기본 생성자 `SharedVariableKeyInfo()`는 두 속성을 모두 기본값(빈 값)으로 초기화합니다. 따라서 기본 생성자만으로는 `Name` 속성을 초기화하는 동시에 `ETag`가 `nil`이 **아닌** 상태가 될 수 없습니다. `ETag`가 `nil`이 아닌 값(예: 특정 문자열)이 되어야 하므로, `Name`과 함께 `ETag` 값을 지정하는 생성자 `SharedVariableKeyInfo(string name, string e [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 사용자의 '기본 생성자 사용'이라는 전제와 'ETag가 nil이 아님'이라는 조건이 모순임을 지적하고, 이를 만족시키기 위해 2인자 생성자를 사용하는 현실적인 대안을 제시했으며, 모든 API 사용이 문서와 일치한다. [source_doc] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey

[task] | single_turn [pass] | ✅ 통과 [title] | WorldInstanceSharedMemory [question] | WaitAnd로 끝나는 함수와 Async로 끝나는 함수를 구분해서 사용할 때 스크립트 실행 흐름에 어떤 차이가 발생하나요? [answer] | `WaitAnd`로 끝나는 함수와 `Async`로 끝나는 함수는 **스크립트 실행이 중단되는지(블로킹) 여부**에서 핵심적인 차이가 있습니다. ### 1. WaitAnd 함수 (동기식, Yield) * **특징:** 함수 호출 시 **스크립트 실행이 중단됩니다.** * **동작 방식:** 작업(네트워크 요청 등)이 완료될 때까지 현재 스크립트의 나머지 코드를 실행하지 않고 대기합니다. 작업이 완료되면 반환값을 받아 즉시 다음 코드를 실행합니다. * **사용 시 주의:** 함수 선언부에 `[Yield]` 속성이 붙어 있어 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | WaitAnd(블로킹)와 Async(콜백)의 실행 흐름 차이를 정확히 설명했으나, 코드 예시에서 문서에 없는 _WorldInstanceService:GetSharedMemory API를 지어내어 정확성에 감점이 발생함 [source_doc] | 다. 이미 있으면 기존 변수들의 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchSetVariableAsync(Dictionary<string, string> nameValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** 입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 작업

[task] | two_turn [pass] | ✅ 통과 [title] | Vector3 [question] | Vector3의 생성과 레퍼런스 동작 방식에서, 로컬 변수에 할당한 Vector를 Entity의 Position에 대입했을 때 좌표가 변경되지 않는 원인은 무엇이며, 원하는 좌표로 이동시키려면 어떤 방법들이 있나요? [answer] | mLua에서 `Vector3`은 레퍼런스 타입처럼 동작하지만, `Entity`의 `Transform.Position` 프로퍼티에 접근할 때 반환되는 값은 내부적으로 복사된 값(또는 바인딩된 값)을 가리키며, 이 값에 직접 성분을 수정해도 Entity의 실제 좌표는 즉시 변경되지 않습니다. 구체적으로, 아래 코드처럼 로컬 변수 `position`에 `self.Entity.Transform.Position`을 할당하고 `position.x = 10`으로 수정하면 Entity의 x좌표만 10으로 변경됩니다. 이후 `position = [followup] | 위 예시에서 `position = v` 구문이 실행된 후 Entity가 (1.0, 2.0, 3.0)으로 이동하지 않는 구체적인 이유를 설명해 주시고, 세 가지 대안 방법 중 컴포넌트 접근을 직접 수정하는 방식(3번 방법)의 코드 예시를 보여주세요. [followup_answer] | `position = v` 구문이 실행된 후 Entity가 (1.0, 2.0, 3.0)으로 이동하지 않는 이유는, 이 구문이 **로컬 변수 `position`이 가리키는 대상만 변경**하기 때문입니다. 1. `local position = self.Entity.Transform.Position` 실행 시, `position` 변수는 Entity의 현재 좌표 데이터를 참조하게 됩니다. 2. `position.x = 10` 실행 시, 참조 대상의 x 성분이 10으로 수정되므로 Entity의 x 좌표가 10으로 변경됩니다. 3. [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 예시와 설명을 정확히 재현했으나, '내부적으로 복사된 값'이라는 원문 기반이 없는 추측성 설명을 포함하여 정확성에서 감점됩니다. [source_doc] | # Operators - **Vector3 Addition(Vector3 left, Vector3 right) [Static]** 두 벡터를 더한 Vector3 객체를 생성해 반환합니다. - **Vector3 Division(Vector3 left, float right) [Static]** 벡터를 실수로 나눈 Vector3 객체를 생성해 반환합니다. - **boolean Equality(Vector3 left, Vector3 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면

[task] | instruction_following [pass] | ❌ 탈락 [title] | MobileShareService [question] | ScreenshotService로 찍은 이미지를 공유하는 mLua 코드 예제를 단계별 번호 목록으로 작성하세요. [answer] | ScreenshotService로 촬영한 이미지를 모바일 기기의 소셜 미디어에 공유하는 mLua 스크립트 예제는 다음과 같습니다. 참고로 `MobileShareService`는 모바일 기기에서만 동작하며, `ShareFileAndWait` 메서드는 비동기적으로 실행되므로(Yield) `wait()`와 같은 대기 처리가 필요할 수 있습니다. ```lua Property: [None] string screenshotPath = "/storage/screenshots/my_screenshot.png" Method: [client o [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | 질문에 맞지 않게 단계별 번호 목록이 아닌 코드 블록과 설명 혼합 형태로 제시했으며, ScreenshotService의 구체적인 사용법을 생략하여 도움 정도가 낮고, MobileShareService의 정확한 API 사용은 문서와 일치하나 전체적인 형식 미준수로 감점함. [source_doc] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle

[task] | instruction_following [pass] | ✅ 통과 [title] | RoomService [question] | 공유 메모리 관련 메서드 3개의 실행 방식(동기/비동기)과 콜백 여부를 표로 정리하세요. [answer] | 참고 문서에 명시된 `RoomService`의 공유 메모리 관련 메서드 3개는 다음과 같이 정리할 수 있습니다. | 메서드명 | 실행 방식 | 콜백 여부 | | :--- | :--- | :--- | | `DeleteSharedMemoryAndWait(string name)` | 동기 (Yield) | 없음 | | `DeleteSharedMemoryAsync(string name, func<SharedMemoryResultCode> callbackFunction)` | 비동기 | 있음 (`callbackFunction`) | | ` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 메서드 시그니처와 설명을 정확히 분석하여 요청된 표 형식으로 명확하게 정리했으며, 오류나 과장된 서술이 없습니다. [source_doc] | 룸 관련 기능을 제공합니다. # Properties - **ReadOnlyDictionary<string, InstanceRoom> InstanceRooms [ReadOnly]** 활성화된 모든 인스턴스 룸의 목록입니다. - **string RoomKey [ReadOnly]** 현재 룸의 key입니다. 현재 룸이 인스턴스 룸이면 생성 시 지정한 key 값을, 정적 룸이면 StaticRoomKey와 같은 값을 나타냅니다. - **string StaticRoomKey [ReadOnly]** 정적 룸의 key입니다. 정적

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