[task] | extract_knowledge [title] | Vector4 [category] | Misc [rephrased] | # Vector4 (4차원 벡터) ## 개념 설명 `Vector4`는 4차원 공간의 방향과 위치를 표현하는 벡터 타입입니다. `x`, `y`, `z`, `w`라는 네 개의 실수(float) 성분을 가지며, 각 성분을 통해 특정 축의 값을 직접 접근하거나 수정할 수 있습니다. ## API 사용법 ### 속성 (Properties) - **인스턴스 속성**: `x`, `y`, `z`, `w` - 각각 벡터의 해당 축 원소를 나타내는 `float` 타입의 속성입니다. - **정적 읽기 전용 속성 (Static, ReadOnly) [original] | 4차원 벡터입니다. # Properties - **float w** 벡터의 w축 원소입니다. - **float x** 벡터의 x축 원소입니다. - **float y** 벡터의 y축 원소입니다. - **float z** 벡터의 z축 원소입니다. - **Vector4 negativeInfinity [Static] [ReadOnly] [HideFromInspector]** Vector4(-inf, -inf, -inf, -inf)를 간단히 사용할 수 있습니다. - **Vector4 one [Static] [ReadOn [chunk_id] | Misc:1022:0
[task] | extract_knowledge [title] | Vector3 [category] | Misc [rephrased] | # Vector3 API `Vector3`은 3차원 공간의 벡터를 나타내는 구조체입니다. 이 절에서는 `Vector3` 인스턴스 메서드와 정적(Static) 메서드를 통해 벡터 연산(내적, 외적, 거리, 보간, 사영, 반사 등)을 수행하는 방법을 다룹니다. ## 1. 개념 설명 `Vector3` API는 크게 두 가지 형태로 제공됩니다. 1. **인스턴스 메서드 (Instance Method)**: 이미 생성된 `Vector3` 객체에서 호출하며, 다른 벡터와의 관계(각도, 거리, 내적 등)나 자기 자신의 속성(크기, 정규 [original] | - **float Angle(Vector3 b)** 두 벡터 사이의 각도를 구합니다. 0부터 180 사이의 값을 반환합니다. - **Vector3 Clone()** 복사본을 생성합니다. - **Vector3 Cross(Vector3 b)** 두 벡터를 외적한 Vector3 객체를 생성해 반환합니다. - **float Distance(Vector3 b)** 두 벡터 사이의 거리를 구합니다. - **float Dot(Vector3 b)** 두 벡터의 내적을 구합니다. - **Vector3 Lerp(Vector3 b, [chunk_id] | Misc:1021:1
[task] | wikipedia [title] | SharedVariableKeyInfo [category] | Misc [rephrased] | # SharedVariableKeyInfo **SharedVariableKeyInfo**는 메이플스토리 월드 스크립트 환경에서 공유 변수를 식별하는 데 사용되는 정보 구조체입니다. ## 속성(Properties) 이 구조체는 다음과 같은 두 가지 문자열(`string`) 속성을 가집니다. 첫째, **ETag** 속성은 데이터 무결성을 보장하기 위해 사용됩니다. 변수 값을 업데이트할 때, 이 속성에 지정된 값이 현재 데이터베이스에 저장된 값과 정확히 일치할 경우에만 실제 업데이트 작업이 실행됩니다. 이는 여러 클라이언트나 서버 [original] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey [chunk_id] | Misc:1028:0
[task] | diverse_qa [title] | RoomSharedMemory [category] | Misc [rephrased] | 질문: `BatchUpdateVariableAsync` 메서드의 실행 공간은 어디인가요? 답변: [ServerOnly]입니다. 질문: `SharedVariableKeyInfo`의 ETag가 최신이 아닐 때 `BatchUpdateVariableAsync` 또는 `UpdateVariableAndWait` 메서드를 호출하면 어떻게 되나요? 답변: 값을 수정하지 않습니다. 질문: ETag가 nil 또는 빈 문자열인 경우, `BatchUpdateVariableAsync`와 `UpdateVariableAndWait` 메서드는 어떻게 동작하 [original] | leKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchUpdateVariableAsync(Dictionary<SharedVariableKeyInfo, string> keyValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** [chunk_id] | Misc:1026:1
[task] | diverse_qa [title] | Vector4 [category] | Misc [rephrased] | 질문: Vector4 타입은 몇 차원의 벡터를 나타냅니까? 답변: Vector4는 4차원 벡터를 나타냅니다. 질문: Vector4의 기본 속성(Properties)에 포함된 축 원소 이름들은 무엇입니까? 답변: Vector4의 기본 속성에는 x, y, z, w 축 원소가 포함됩니다. 질문: Vector4.zero 상수 값은 무엇입니까? 답변: Vector4.zero는 Vector4(0, 0, 0, 0)을 나타냅니다. 질문: Vector4.one 상수 값은 무엇입니까? 답변: Vector4.one은 Vector4(1, 1, 1, [original] | 4차원 벡터입니다. # Properties - **float w** 벡터의 w축 원소입니다. - **float x** 벡터의 x축 원소입니다. - **float y** 벡터의 y축 원소입니다. - **float z** 벡터의 z축 원소입니다. - **Vector4 negativeInfinity [Static] [ReadOnly] [HideFromInspector]** Vector4(-inf, -inf, -inf, -inf)를 간단히 사용할 수 있습니다. - **Vector4 one [Static] [ReadOn [chunk_id] | Misc:1022:0
[task] | diverse_qa [title] | SharedVariableKeyInfo [category] | Misc [rephrased] | 질문: `SharedVariableKeyInfo`는 어떤 목적으로 사용되는 정보인가요? 답변: 공유 변수를 식별하는 데 사용하는 정보입니다. 질문: `ETag` 속성이 `nil`이나 빈 문자열로 설정되었을 때 업데이트는 어떻게 수행되나요? 답변: 무조건 업데이트를 수행합니다. 질문: `ETag`를 사용하는 주요 목적은 무엇인가요? 답변: 여러 곳에서 동시에 업데이트를 시도했을 때 발생하는 동시 다발적 덮어쓰기 현상을 막기 위한 것입니다. 질문: `SharedVariableKeyInfo`의 `Name` 속성은 어떤 값을 포함하나 [original] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey [chunk_id] | Misc:1028:0
[task] | extract_knowledge [title] | RoomSharedMemory [category] | Misc [rephrased] | # RoomSharedMemory ## 개념 설명 `RoomSharedMemory`는 여러 `Room` 간에 데이터를 공유하기 위해 사용되는 메모리 객체입니다. 이 객체를 통해 서버 측에서 공유 변수를 생성, 조회, 수정, 삭제할 수 있습니다. ## API 사용법 ### Properties - **`string Name [ReadOnly]`**: 공유 메모리의 이름을 나타내는 읽기 전용 속성입니다. ### Methods 모든 메서드는 `[ServerOnly]` 실행 공간에서만 호출 가능합니다. 각 작업은 동기화(`And [original] | Room끼리 공유하는 메모리를 나타내는 객체입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1026:0
[task] | extract_knowledge [title] | Vector3 [category] | Misc [rephrased] | # Vector3 정적 메서드 (Static Methods) 본 절에서는 `Vector3` 클래스에서 제공하는 정적 메서드(Static Methods)에 대해 다룹니다. 이 메서드들은 인스턴스 생성 없이 클래스 이름으로 직접 호출하며, 벡터 연산, 변환, 보간 등을 수행합니다. ## 개념 설명 `Vector3` 정적 메서드는 주로 기하학적 계산과 데이터 형식 변환을 위해 사용됩니다. 주요 기능은 다음과 같습니다. 1. **반사(Reflection)**: 벡터가 평면에 부딪혀 반사되는 경로를 계산합니다. 2. **각도 계산 [original] | 체를 생성해 반환합니다. planeNormal은 평면의 법선 벡터입니다. - **Vector3 Reflect(Vector3 vector, Vector3 normal) [Static]** 벡터를 평면에 반사시킨 Vector3 객체를 생성해 반환합니다. normal은 평면의 법선 벡터입니다. - **float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) [Static]** 두 벡터 사이의 각도를 구합니다. axis를 기준으로 from에 대해 to가 이루는 각이 반시계 방향이면 양수 [chunk_id] | Misc:1021:2
[task] | knowledge_list [title] | SharedVariableKeyInfo [category] | Misc [rephrased] | ```lua -- 문서: [Misc] SharedVariableKeyInfo -- 공유 변수를 식별하는 데 사용하는 정보입니다. -- [Property] string ETag -- 변수를 업데이트할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. -- 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. -- nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. -- 변수가 업데이트 되면 새로운 ETag가 만들어집니다. -- [Property] stri [original] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey [chunk_id] | Misc:1028:0
[task] | knowledge_list [title] | RoomSharedMemory [category] | Misc [rephrased] | 제시된 문서에서 추출한 RoomSharedMemory 관련 핵심 사실 목록입니다. 1. `BatchUpdateVariableAsync` 메서드는 `[ServerOnly]` 제약이 있으며, 매개변수로 `Dictionary<SharedVariableKeyInfo, string> keyValues`와 `func<Dictionary<string, SharedVariableResult>> callbackFunction`을 받습니다. 2. `BatchUpdateVariableAsync`는 입력된 `SharedVariableKeyInfo`의 [original] | leKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchUpdateVariableAsync(Dictionary<SharedVariableKeyInfo, string> keyValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** [chunk_id] | Misc:1026:1
[task] | extract_knowledge [title] | SharedVariableInfo [category] | Misc [rephrased] | # SharedVariableInfo `SharedVariableInfo`는 서버에 저장된 공유 변수의 현재 상태를 나타내는 읽기 전용 정보 객체입니다. 이 객체를 통해 변수의 이름, 현재 값, 그리고 동시성 제어에 사용되는 `ETag`를 조회할 수 있습니다. ## 개념 설명 공유 변수는 여러 클라이언트나 서버 로직이 접근하는 글로벌 상태일 수 있습니다. 이러한 환경에서는 동일한 변수에 대해 여러 곳에서 동시에 업데이트를 시도하면 데이터가 덮어쓰기(Overwrite)되는 문제가 발생할 수 있습니다. 이를 방지하기 위해 `Sh [original] | 공유 변수 정보입니다. # Properties - **string ETag [ReadOnly]** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name [ReadOnly]** 변수 이름입니다. - **string Value [ReadOnly]** [chunk_id] | Misc:1027:0
[task] | extract_knowledge [title] | SharedVariableKeyInfo [category] | Misc [rephrased] | # SharedVariableKeyInfo 공유 변수를 식별하기 위한 정보를 담는 구조체입니다. 이 객체는 공유 변수의 이름과 동시성 제어에 사용되는 `ETag`를 포함합니다. ## 1. 개념 설명 `SharedVariableKeyInfo`는 서버 또는 클라이언트 간 공유되는 변수를 참조하거나 업데이트할 때 필요한 메타데이터를 정의합니다. 주요 속성은 다음과 같습니다. * **Name**: 식별할 공유 변수의 이름입니다. * **ETag (Entity Tag)**: 동시성 제어 메커니즘으로 사용됩니다. * [original] | 공유 변수를 식별하는 데 사용하는 정보입니다. # Properties - **string ETag** 변수를 업데이트 할 때 현재 DB에 저장된 값과 같을 경우에만 실제로 업데이트를 수행합니다. 여러 곳에서 동시에 업데이트를 시도했을 때 동시 다발적 덮어쓰기 현상을 막는데 유용하게 사용됩니다. nil이나 빈 문자열을 주면 무조건 업데이트를 수행합니다. 변수가 업데이트 되면 새로운 ETag가 만들어집니다. - **string Name** 변수 이름입니다. # Constructors - **SharedVariableKey [chunk_id] | Misc:1028:0
[task] | wikipedia [title] | RoomSharedMemory [category] | Misc [rephrased] | # RoomSharedMemory **RoomSharedMemory**는 메이플스토리 월드(MapleStory Worlds) 환경에서 서로 다른 룸(Room) 간에 데이터를 공유하기 위해 사용되는 메모리 객체입니다. 이 객체를 통해 개발자는 룸을 횡단하는 공유 변수를 생성, 조회, 수정, 삭제하는 일련의 작업을 수행할 수 있습니다. ## 속성 (Properties) RoomSharedMemory 객체는 다음 속성을 가집니다. * **Name** (`string`, 읽기 전용): 해당 공유 메모리 영역의 고유 이름을 나타냅 [original] | Room끼리 공유하는 메모리를 나타내는 객체입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1026:0
[task] | distill [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | ### WorldInstanceSharedMemory **변수 관리 API** * **`void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction)`** `[ServerOnly]` * 변수 사용을 종료합니다. 사용처가 없으면 자동 삭제됩니다. * 완료 시 `callbackFunction`을 호출합니다. * **`SharedVariableResult SetVariableAndWait(string name, s [original] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie [chunk_id] | Misc:1030:2
[task] | wikipedia [title] | RoomSharedMemory [category] | Misc [rephrased] | # RoomSharedMemory **RoomSharedMemory**는 서버 측에서 공유 변수(Shared Variable)를 생성, 조회, 수정, 삭제하는 기능을 제공하는 API 모음입니다. 모든 메서드는 `[ServerOnly]` 속성을 가지며 클라이언트에서는 호출할 수 없습니다. 각 기능은 비동기(Async) 방식과 대기(Yield) 방식 두 가지 형태로 제공되며, 대기 방식은 수행 중 스크립트 실행을 일시 중단합니다. ## 변수 값 수정 (Update) 변수 값을 수정하는 `UpdateVariableAndWait`와 [original] | leKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchUpdateVariableAsync(Dictionary<SharedVariableKeyInfo, string> keyValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** [chunk_id] | Misc:1026:1
[task] | distill [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # WorldInstanceSharedMemory 서버 전용 `[ServerOnly]` API입니다. `AndWait` 메서드는 `[Yield]` 속성을 가지며 실행 중 스크립트 처리를 중단합니다. `Async` 메서드는 비동기로 실행되며 완료 시 `callbackFunction`을 호출합니다. ### 주요 동작 규칙 * **변수 생성/설정**: `BatchSetVariable*` 계열은 변수가 없으면 생성, 있으면 값을 수정합니다. * **변수 업데이트**: `BatchUpdateVariable*` 계열은 `Shared [original] | 다. 이미 있으면 기존 변수들의 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchSetVariableAsync(Dictionary<string, string> nameValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** 입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 작업 [chunk_id] | Misc:1030:1
[task] | distill [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # WorldInstanceSharedMemory WorldInstance 간 공유 메모리입니다. ## Properties - **string Name [ReadOnly]**: 공유 메모리 이름. ## Methods 모든 메서드는 `[ServerOnly]`입니다. `Wait` 접미사 메서드는 `[Yield]`이며 실행 중 스크립트 처리를 중단합니다. `Async` 접미사 메서드는 완료 시 `callbackFunction`을 호출합니다. ### 변수 생성 (Create) - **`Dictionary<string, SharedV [original] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1030:0
[task] | distill [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # [Misc] WorldInstanceSharedMemory ## 제한 사항 ### 작명 규칙 `WorldInstanceMemory` 및 공유 변수 이름은 **알파벳(대/소문자), 숫자, 공백, `_`, `\`, `-`** 로만 작성 가능합니다. * 길이: **1~100자** ### 수량 및 용량 제한 | 항목 | 제한값 | | :--- | :--- | | 월드당 생성 가능한 `WorldInstanceSharedMemory` 수 | **100개** | | 공유 변수 1개당 최대 저장 용량 | **80,000 bytes** [original] | # 제한 사항 **WorldInstanceService**를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 WorldInstanceMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * **알파벳 대,소문자** * **숫자** * **공백** * **_, \\, -** #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 WorldInstanceSharedMemory는 최대 **100개**입 [chunk_id] | Misc:1030:3
[task] | wikipedia [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # 제한 사항 `WorldInstanceService`를 활용할 때는 이름 지정 규칙, 용량 및 수량 한계, 그리고 호출 빈도 제한 등 몇 가지 기술적 제약 사항을 준수해야 합니다. ## 작명 규칙 `WorldInstanceMemory` 및 공유 변수의 이름은 알파벳 대소문자, 숫자, 공백, 그리고 특수 문자 `_`, `\`, `-`만 사용하여 지정할 수 있습니다. 이름의 길이는 최소 1자부터 최대 100자까지 허용됩니다. ## 수량 및 용량 제한 월드당 생성할 수 있는 `WorldInstanceSharedMemory` 인 [original] | # 제한 사항 **WorldInstanceService**를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 WorldInstanceMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * **알파벳 대,소문자** * **숫자** * **공백** * **_, \\, -** #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 WorldInstanceSharedMemory는 최대 **100개**입 [chunk_id] | Misc:1030:3
[task] | diverse_qa [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | 질문: `BatchSetVariableAsync` 메서드의 실행 공간은 어디인가요? 답변: `BatchSetVariableAsync` 메서드는 [ServerOnly] 실행 공간에서 작동합니다. 질문: `BatchUpdateVariableAndWait` 메서드에서 `SharedVariableKeyInfo`의 ETag가 nil 또는 빈 문자열일 때 어떤 처리가 이루어지나요? 답변: ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 질문: `CreateVariableAndWait` 메서드가 수행되는 동안 스크립트 실행은 [original] | 다. 이미 있으면 기존 변수들의 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchSetVariableAsync(Dictionary<string, string> nameValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** 입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 작업 [chunk_id] | Misc:1030:1
[task] | diverse_qa [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | 질문: WorldInstanceSharedMemory 컴포넌트의 주요 목적은 무엇인가요? 답변: WorldInstance끼리 공유하는 메모리를 관리하기 위한 것입니다. 질문: WorldInstanceSharedMemory의 `Name` 속성은 어떤 타입이며, 수정 가능한가요? 답변: `Name` 속성은 `string` 타입이며, `[ReadOnly]` 속성이 적용되어 있어 수정이 불가능합니다. 질문: `BatchCreateVariableAndWait` 메서드는 어떤 실행 공간에서 사용되나요? 답변: `[ServerOnly]` 속 [original] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1030:0
[task] | distill [title] | MobileShareService [category] | Services [rephrased] | # MobileShareService 모바일 기기 전용으로, `ScreenshotService` 캡처 이미지나 `ScreenRecordService` 녹화 영상을 소셜 미디어에 공유합니다. ## Methods **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** `filePath`의 이미지/영상을 공유합니다. 파일 부재 또는 공유 실패 시 `false` 반환. ### Inherited from Service * **EventHandlerBase Conne [original] | ScreenshotService로 찍은 이미지나 ScreenRecordService로 녹화한 영상을 소셜 미디어에 공유하는 기능을 제공합니다.\n모바일 기기에서만 사용할 수 있습니다. # Methods - **boolean ShareFileAndWait(string filePath) [ClientOnly] [Yield]** filePath 경로에 있는 이미지 또는 영상을 공유합니다. 파일이 없거나 공유에 실패한 경우 false를 반환합니다. ##### inherited from Service: - **EventHandle [chunk_id] | Services:1031:0
[task] | knowledge_list [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | 제시된 문서 원문에서 추출한 `WorldInstanceSharedMemory` 컴포넌트의 핵심 사실 목록입니다. 1. `WorldInstanceSharedMemory`는 WorldInstance끼리 공유하는 메모리를 관리하는 컴포넌트입니다. 2. `Name` 프로퍼티는 `string` 타입의 읽기 전용(ReadOnly) 값으로, 해당 공유 메모리의 이름을 나타냅니다. 3. `BatchCreateVariableAndWait` 메서드는 `[ServerOnly]` 및 `[Yield]` 제약이 있으며, `Dictionary<stri [original] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1030:0
[task] | knowledge_list [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | * `ReleaseVariableAsync` 메서드는 `[ServerOnly]` 실행 공간에서 동작하며, 매개변수로 변수 이름(`string name`)과 콜백 함수(`func<SharedMemoryResultCode> callbackFunction`)를 받아 해당 변수 사용을 마치고 더 이상 참조가 없으면 자동으로 삭제한 뒤 작업 완료 시 결과 코드를 인자로 전달하여 콜백 함수를 호출하는 비동기 함수이다. * `SetVariableAndWait` 메서드는 `[ServerOnly]` 및 `[Yield]` 속성을 가지며, 매개 [original] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie [chunk_id] | Misc:1030:2
[task] | diverse_qa [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | 질문: `ReleaseVariableAsync` 메서드는 어떤 실행 공간에서 사용할 수 있나요? 답변: `ReleaseVariableAsync` 메서드는 [ServerOnly] 실행 공간에서만 사용할 수 있습니다. 질문: `ReleaseVariableAsync` 함수의 두 번째 인자로 전달되는 `callbackFunction`은 어떤 시점에 호출되나요? 답변: 작업이 완료되면 결과 코드와 함께 `callbackFunction`으로 전달된 함수가 호출됩니다. 질문: `SetVariableAndWait` 메서드는 스크립트 실행에 어 [original] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie [chunk_id] | Misc:1030:2
[task] | knowledge_list [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | WorldInstanceSharedMemory를 사용할 때 WorldInstanceMemory와 공유 변수 이름은 알파벳 대소문자, 숫자, 공백, 밑줄(_), 역슬래시(\), 하이픈(-)로만 작성해야 하며 길이는 1자 이상 100자 이하여야 합니다. 한 월드에서 생성할 수 있는 WorldInstanceSharedMemory 인스턴스의 최대 개수는 100개입니다. 단일 WorldInstanceSharedMemory 객체 내의 하나의 공유 변수에 저장할 수 있는 데이터의 최대 용량은 80,000 bytes입니다. WorldInst [original] | # 제한 사항 **WorldInstanceService**를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 WorldInstanceMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * **알파벳 대,소문자** * **숫자** * **공백** * **_, \\, -** #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 WorldInstanceSharedMemory는 최대 **100개**입 [chunk_id] | Misc:1030:3
[task] | wikipedia [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # WorldInstanceSharedMemory **WorldInstanceSharedMemory**는 여러 WorldInstance 간에 데이터를 공유하기 위해 사용되는 메모리 컴포넌트입니다. 이 컴포넌트를 통해 서버 측에서 공유 변수를 생성, 조회, 수정, 해제 및 삭제하는 작업을 수행할 수 있습니다. ## 속성 (Properties) * **Name**: `string` 타입의 읽기 전용(ReadOnly) 속성으로, 해당 공유 메모리의 이름을 나타냅니다. ## 메서드 (Methods) 모든 메서드는 서버 전용(` [original] | WorldInstance끼리 공유하는 메모리입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하 [chunk_id] | Misc:1030:0
[task] | knowledge_list [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | WorldInstanceSharedMemory의 API는 모두 [ServerOnly]로 지정되어 서버 공간에서만 실행되며, [Yield]가 붙은 동기(Wait) 계열 메서드는 수행 중 스크립트 실행을 중단(일시 정지)합니다. 1. `BatchSetVariableAsync(Dictionary<string, string> nameValues, func<Dictionary<string, SharedVariableResult>> callbackFunction)`은 [ServerOnly] 비동기 메서드로, 입력된 이름과 값 쌍에 해당하는 [original] | 다. 이미 있으면 기존 변수들의 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchSetVariableAsync(Dictionary<string, string> nameValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** 입력한 이름, 값 쌍들로 변수가 없으면 새 변수들을 할당합니다. 이미 있으면 기존 변수들의 값을 수정합니다. 작업 [chunk_id] | Misc:1030:1
[task] | wikipedia [title] | WorldInstanceSharedMemory [category] | Misc [rephrased] | # WorldInstanceSharedMemory `WorldInstanceSharedMemory`는 월드 인스턴스 내에서 공유 메모리 변수를 관리하기 위한 API를 제공합니다. 이 문서에 설명되는 모든 메서드는 서버 공간(ServerOnly)에서 실행되며, 일부 메서드는 비동기 작업을 처리하거나 스크립트 실행을 일시 중단하는 특징을 가집니다. ## 변수 해제 변수의 사용을 종료하려면 `ReleaseVariableAsync` 메서드를 사용합니다. ```lua void ReleaseVariableAsync(string name [original] | 다. - **void ReleaseVariableAsync(string name, func<SharedMemoryResultCode> callbackFunction) [ServerOnly]** 변수 사용을 마칩니다. 해당 변수를 사용하는 곳이 더 이상 없으면 자동으로 삭제됩니다. 작업이 완료되면 결과 코드와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **SharedVariableResult SetVariableAndWait(string name, string value) [ServerOnly] [Yie [chunk_id] | Misc:1030:2
[task] | extract_knowledge [title] | RoomSharedMemory [category] | Misc [rephrased] | # RoomSharedMemory ## 개념 설명 `RoomSharedMemory`는 서버에서 실행되는 공유 메모리 변수를 관리하는 API입니다. 이 API를 통해 개발자는 변수를 생성(Create), 조회(Get), 설정(Set), 수정(Update), 삭제(Delete)할 수 있습니다. 변수 수정 시 `SharedVariableKeyInfo` 객체의 `ETag` 값을 사용하여 동시성 충돌을 방지할 수 있습니다. * `ETag`가 최신 버전과 일치하지 않는 경우: 값 수정이 거부됩니다. * `ETag`가 `nil` 또는 [original] | leKeyInfo의 ETag가 최신이 아니면 값을 수정하지 않습니다. ETag가 nil 또는 빈 문자열이면 무조건 값을 수정합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchUpdateVariableAsync(Dictionary<SharedVariableKeyInfo, string> keyValues, func<Dictionary<string, SharedVariableResult>> callbackFunction) [ServerOnly]** [chunk_id] | Misc:1026:1