[task] | wikipedia [title] | EditorService [category] | Services [rephrased] | # EditorService **EditorService**는 메이플스토리 월드(MapleStory Worlds)의 에디터 환경에서 모델, 타일, 맵 레이어, 엔티티 계층 구조, 그리고 시작 맵을 제어하기 위한 서비스입니다. 또한 `Service` 기반 클래스에서 상속받은 이벤트 연결 및 해제, 발생 기능을 제공합니다. ## 메서드 ### 모델 및 타일 선택 `SetSelectedModel(string modelId)` 메서드는 지정된 `modelId`에 해당하는 모델을 선택 상태로 만듭니다. `SetSelectedTile( [original] | - **void SetSelectedModel(string modelId)** 해당하는 modelId의 모델을 선택합니다. - **void SetSelectedTile(string tileRUID)** 지정한 RUID의 타일을 선택합니다. 타일을 지정하지 않으면 현재 레이어의 타일이 선택됩니다. - **void SetSiblingIndex(Entity entity, int32 index)** 같은 부모를 가진 엔티티들의 계층 순서를 변경합니다. - **void SetStartingMap(string mapId)** 해 [chunk_id] | Services:312:1
[task] | extract_knowledge [title] | ItemService [category] | Services [rephrased] | # ItemService: 인벤토리 아이템 관리 `ItemService`는 플레이어의 인벤토리에 아이템을 생성하고, 아이템의 개수를 변경하며, 아이템을 제거하는 기능을 제공하는 서비스입니다. 이 서비스는 `_ItemService` 접두어를 사용하여 접근합니다. ## API 사용법 ### 1. 아이템 생성 (`CreateItem`) 인벤토리에 새로운 아이템 인스턴스를 추가합니다. * **인수**: * `modelId`: 아이템의 모델 ID (예: `TestItem`) * `name`: 아이템의 이름 (예 [original] | 플레이어의 인벤토리에 아이템을 추가하고, 개수를 변경하고, 제거하는 예제입니다. 이름이 `Get Item`인 오브젝트에 충돌하면 아이템을 3개 획득합니다. 이름이 `Give Item`인 오브젝트에 충돌하면 아이템 개수가 1 감소합니다. 아이템 개수가 0이 되면 제거합니다. 이름이 `Trash Can`인 오브젝트에 충돌하면 아이템을 제거합니다. ```lua Event Handler: [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { -- Parameters lo [chunk_id] | Services:310:1
[task] | extract_knowledge [title] | DataStorageService [category] | Services [rephrased] | # DataStorageService `DataStorageService`는 메이플스토리 월드 환경에서 다양한 데이터 저장소(DataStorage)를 관리하는 서버 전용 서비스입니다. 이 서비스는 Creator, Global, Sortable, User 네 가지 유형의 DataStorage에 대한 삭제(Delete) 및 조회(Get) 기능을 제공합니다. 모든 메서드는 `[ServerOnly]` 속성을 가지며, 클라이언트에서는 호출할 수 없습니다. ## 1. 개념 설명 메이플스토리 월드의 데이터 저장소는 용도와 구조에 따라 네 [original] | 다양한 DataStorage 접근 기능을 제공합니다. # Methods - **int32 DeleteCreatorDataStorageAndWait() [ServerOnly] [Yield]** CreatorDataStorage를 삭제하고, 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **int32 DeleteCreatorDataStorageAndWait(string name) [ServerOnly] [Yield]** 특정 이름의 CreatorDataStorage를 삭제하고, 에러 코드를 반환합니다 [chunk_id] | Services:309:0
[task] | diverse_qa [title] | EditorService [category] | Services [rephrased] | 질문: `EditorService`의 `SetSelectedModel` 메서드는 어떤 역할을 하나요? 답변: 해당하는 modelId의 모델을 선택합니다. 질문: `SetSelectedTile` 메서드에서 타일 RUID를 지정하지 않으면 어떤 결과가 발생하나요? 답변: 현재 레이어의 타일이 선택됩니다. 질문: `SetSiblingIndex` 메서드의 두 번째 매개변수 `index`의 자료형은 무엇인가요? 답변: int32 질문: `SetStartingMap` 메서드를 사용하면 무엇을 설정할 수 있나요? 답변: 해당하는 mapId [original] | - **void SetSelectedModel(string modelId)** 해당하는 modelId의 모델을 선택합니다. - **void SetSelectedTile(string tileRUID)** 지정한 RUID의 타일을 선택합니다. 타일을 지정하지 않으면 현재 레이어의 타일이 선택됩니다. - **void SetSiblingIndex(Entity entity, int32 index)** 같은 부모를 가진 엔티티들의 계층 순서를 변경합니다. - **void SetStartingMap(string mapId)** 해 [chunk_id] | Services:312:1
[task] | diverse_qa [title] | EditorService [category] | Services [rephrased] | 질문: EditorService에서 `EnterEditorEvent`는 언제 발생하나요? 답변: Editor 진입 시 발생합니다. 질문: 플레이 모드 진입과 관련된 이벤트는 무엇이며, 어떤 시점에 발생하나요? 답변: `EnterPlayEvent`이며, 플레이 모드에 진입할 때 발생합니다. 질문: 엔티티가 생성될 때 발생하는 에디터 이벤트의 이름은 무엇인가요? 답변: `EntityCreateEditorEvent`입니다. 질문: 엔티티 삭제 시 발생하는 이벤트와 엔티티 선택 시 발생하는 이벤트는 각각 무엇인가요? 답변: 엔티티 삭 [original] | # Events - **EnterEditorEvent** Editor 진입 시 발생하는 에디터 이벤트입니다. - **EnterPlayEvent** 플레이 모드에 진입할 때 발생하는 이벤트입니다. - **EntityCreateEditorEvent** 엔티티 생성 시 발생하는 에디터 이벤트입니다. - **EntityDeleteEditorEvent** 엔티티가 삭제되었을 때 발생하는 에디터 이벤트입니다. - **EntityDeselectEditorEvent** 엔티티 선택 해제 시 발생하는 에디터 이벤트입니다. - * [chunk_id] | Services:312:2
[task] | wikipedia [title] | UserService [category] | Services [rephrased] | # UserService UserService는 메이플스토리 월드 스크립트 환경에서 유저 관련 기능을 제공하는 서비스입니다. 이 서비스는 현재 월드에 접속된 유저의 엔티티와 정보에 접근하고, 유저 수를 조회하며, 특정 조건에 맞는 유저를 필터링하거나 유저를 추방하는 등의 작업을 수행할 수 있습니다. 또한, 출시 환경에서는 월드 인사이트(World Insight)를 연계하여 유저의 제재 여부를 확인하거나 제재 사유를 조회하는 기능을 제공합니다. ## 속성(Properties) UserService는 다음과 같은 읽기 전용 속성을 [original] | 유저 관련 기능을 제공합니다. # Properties - **Entity LocalPlayer [ReadOnly]** 내 유저 엔티티입니다. 클라이언트에서만 사용 가능합니다. - **ReadOnlyDictionary<string, Entity> UserEntities [ReadOnly]** 모든 유저 엔티티 목록입니다. key는 유저 Id, value는 유저 엔티티입니다. - **ReadOnlyDictionary<string, User> Users [ReadOnly]** 모든 유저 정보 목록입니다. key는 유저 Id [chunk_id] | Services:311:0
[task] | knowledge_list [title] | EditorService [category] | Services [rephrased] | ```lua -- EditorService API 핵심 사실 정리 -- (문서 위치: [Services] EditorService) -- 1. SetSelectedModel -- 반환 타입: void -- 매개변수: string modelId -- 설명: 해당하는 modelId의 모델을 선택합니다. -- 2. SetSelectedTile -- 반환 타입: void -- 매개변수: string tileRUID -- 설명: 지정한 RUID의 타일을 선택합니다. 타일을 지정하지 않으면 현재 레이어의 타일이 선택됩니다. -- 3. S [original] | - **void SetSelectedModel(string modelId)** 해당하는 modelId의 모델을 선택합니다. - **void SetSelectedTile(string tileRUID)** 지정한 RUID의 타일을 선택합니다. 타일을 지정하지 않으면 현재 레이어의 타일이 선택됩니다. - **void SetSiblingIndex(Entity entity, int32 index)** 같은 부모를 가진 엔티티들의 계층 순서를 변경합니다. - **void SetStartingMap(string mapId)** 해 [chunk_id] | Services:312:1
[task] | distill [title] | EntityService [category] | Services [rephrased] | ### TagComponent를 통한 Visible 제어 특정 `Tag`를 가진 엔티티들의 `Visible` 속성을 수정합니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` ### GetEntitiesSpawnedByModelId [original] | `TagComponent`를 통해 특정 Tag를 가지고 있는 엔티티들의 `visible`을 수정하는 예제입니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` #### GetEntitiesSpawnedByModelId MoveMonst [chunk_id] | Services:313:1
[task] | distill [title] | EditorService [category] | Services [rephrased] | # EditorService 에디터 환경(메이커)에서 엔티티, 맵, DataSet, 카메라, UI 등을 제어하는 서비스입니다. ## Methods ### Entity & Model - **void CloneSelectedEntity()** 선택된 엔티티를 복제합니다. - **void CreateSelectedModel(Vector2 position, boolean select = true)** 선택된 모델을 `position`에 생성합니다. - **void CreateSelectedModel(Vector2 positio [original] | 에디터 스크립트 관련 기능을 제공합니다. # Methods - **void CloneSelectedEntity()** 선택된 엔티티를 복제합니다. - **void CreateMap(func<string> callback)** 맵을 생성합니다. callback으로 생성된 맵의 Id를 전달받습니다. - **void CreateSelectedModel(Vector2 position, boolean select = true)** 선택된 모델을 position에 생성합니다. - **void CreateSelectedModel( [chunk_id] | Services:312:0
[task] | extract_knowledge [title] | EditorService [category] | Services [rephrased] | # EditorService 이벤트 ## 개념 설명 `EditorService`는 에디터 환경에서 발생하는 상태 변경 및 사용자 입력을 감지하기 위한 이벤트를 제공합니다. 주요 이벤트는 다음과 같습니다. * **모드 전환 관련** * `EnterEditorEvent`: 에디터 진입 시 발생. * `EnterPlayEvent`: 플레이 모드 진입 시 발생. * `WorldLoadEditorEvent`: 에디터 진입 시 발생. * **엔티티 상태 관련** * `EntityCreat [original] | # Events - **EnterEditorEvent** Editor 진입 시 발생하는 에디터 이벤트입니다. - **EnterPlayEvent** 플레이 모드에 진입할 때 발생하는 이벤트입니다. - **EntityCreateEditorEvent** 엔티티 생성 시 발생하는 에디터 이벤트입니다. - **EntityDeleteEditorEvent** 엔티티가 삭제되었을 때 발생하는 에디터 이벤트입니다. - **EntityDeselectEditorEvent** 엔티티 선택 해제 시 발생하는 에디터 이벤트입니다. - * [chunk_id] | Services:312:2
[task] | knowledge_list [title] | EntityService [category] | Services [rephrased] | 제시된 원문에만 존재하는 정보에 기반하여 핵심 사실을 정리하면 다음과 같습니다. 1. `_EntityService:GetEntitiesByTag(tag)` 메서드는 `string` 타입의 `tag` 매개변수를 받아 해당 태그를 가진 엔티티들을 반환하며, 이 메서드는 `[server]` 실행 공간에서만 사용 가능합니다. 2. `GetEntitiesByTag` 메서드로 반환된 엔티티의 `Visible` 프로퍼티를 `boolean` 값으로 수정하여 특정 태그를 가진 엔티티들의 가시성을 제어할 수 있습니다. 3. `_EntityServi [original] | `TagComponent`를 통해 특정 Tag를 가지고 있는 엔티티들의 `visible`을 수정하는 예제입니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` #### GetEntitiesSpawnedByModelId MoveMonst [chunk_id] | Services:313:1
[task] | diverse_qa [title] | EditorService [category] | Services [rephrased] | 질문: EditorService는 어떤 기능을 제공하는 서비스인가요? 답변: EditorService는 에디터 스크립트 관련 기능을 제공합니다. 질문: 선택된 엔티티를 복제하기 위해 호출해야 하는 메서드는 무엇인가요? 답변: CloneSelectedEntity() 메서드를 호출해야 합니다. 질문: CreateMap 메서드의 callback 파라미터는 어떤 값을 전달받나요? 답변: 생성된 맵의 Id를 전달받습니다. 질문: CreateSelectedModel 메서드에서 select 파라미터의 기본값은 무엇인가요? 답변: true입 [original] | 에디터 스크립트 관련 기능을 제공합니다. # Methods - **void CloneSelectedEntity()** 선택된 엔티티를 복제합니다. - **void CreateMap(func<string> callback)** 맵을 생성합니다. callback으로 생성된 맵의 Id를 전달받습니다. - **void CreateSelectedModel(Vector2 position, boolean select = true)** 선택된 모델을 position에 생성합니다. - **void CreateSelectedModel( [chunk_id] | Services:312:0
[task] | distill [title] | EntityService [category] | Services [rephrased] | # [Services] EntityService 엔티티 생성, 조회, 파괴 및 이벤트 처리 기능을 제공합니다. ## Methods ### 엔티티 조회 - **Entity GetEntity(string id)**: `id`로 엔티티를 반환합니다. - **Entity GetEntityByPath(string worldPath)**: `worldPath`의 엔티티를 반환합니다. - **Entity GetEntityByTag(string tag)**: `tag`를 가진 엔티티를 반환합니다. - **table<Entity> GetEnt [original] | 엔티티와 관련된 여러 기능을 제공합니다. # Methods - **void Destroy(Entity entity)** 엔티티를 파괴합니다. - **void Destroy(Entity entity, float delaySeconds)** 엔티티를 delaySeconds(초) 후 파괴합니다. - **table<Entity> GetEntitiesByPath(string worldPath)** worldPath에 해당하는 경로의 엔티티를 반환합니다. - **table<Entity> GetEntitiesByTag(string [chunk_id] | Services:313:0
[task] | distill [title] | CameraService [category] | Services [rephrased] | # CameraService 이벤트를 연결, 해제 및 발생시키는 서비스입니다. ## API ### ConnectEvent 이벤트를 연결합니다. 이벤트 발생 시 `event` 매개변수를 전달받아 핸들러를 호출합니다. ```lua EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler) EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler) ``` ### DisconnectEv [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:314:1
[task] | wikipedia [title] | EntityService [category] | Services [rephrased] | # EntityService `EntityService`는 메이플스토리 월드 스크립트 환경에서 엔티티를 조회하고 관리하기 위한 서비스입니다. `_EntityService`라는 언더스코어 접두사가 붙은 전역 객체를 통해 접근하며, 특정 조건에 맞는 엔티티 목록을 반환하거나 모델 ID 기반 생성된 엔티티를 식별하는 기능을 제공합니다. ## Tag 기반 엔티티 조회 및 가시성 제어 `TagComponent`를 통해 특정 태그를 가진 엔티티들을 일괄적으로 조회하고, 그들의 `visible` 속성을 수정할 수 있습니다. 이 작업은 서버 [original] | `TagComponent`를 통해 특정 Tag를 가지고 있는 엔티티들의 `visible`을 수정하는 예제입니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` #### GetEntitiesSpawnedByModelId MoveMonst [chunk_id] | Services:313:1
[task] | diverse_qa [title] | EntityService [category] | Services [rephrased] | 질문: `TagComponent`를 통해 특정 Tag를 가진 엔티티의 `visible` 속성을 수정하는 코드는 어떤 실행 공간에서 작성되어야 하는가? 답변: `[server]` 실행 공간에서 작성되어야 한다. 질문: `_EntityService:GetEntitiesByTag(tag)` 메서드는 어떤 데이터를 반환하는가? 답변: 특정 Tag를 가지고 있는 엔티티들의 목록을 반환한다. 질문: 다음 코드는 무엇을 수행하는가? ```lua local entities = _EntityService:GetEntitiesByTag(tag) [original] | `TagComponent`를 통해 특정 Tag를 가지고 있는 엔티티들의 `visible`을 수정하는 예제입니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` #### GetEntitiesSpawnedByModelId MoveMonst [chunk_id] | Services:313:1
[task] | distill [title] | CameraService [category] | Services [rephrased] | # [Services] CameraService 카메라 제어 기능을 제공합니다. ## Properties | 속성 | 타입 | 설명 | | :--- | :--- | :--- | | `currentZoomRatio` | `float` | 현재 줌 비율 (읽기 전용) | | `TransitionBlendTime` | `float` | 카메라 전환 블렌드 시간 | | `TransitionBlendType` | `CameraBlendType` | 카메라 전환 애니메이션 블렌드 타입 | ## Methods ### `GetCurren [original] | 카메라 관련 기능을 제공합니다. # Properties - **float currentZoomRatio [ReadOnly]** 현재 줌 비율입니다. - **float TransitionBlendTime** 카메라 전환 시 블렌드 시간이 얼마나 걸릴지를 정의합니다. - **CameraBlendType TransitionBlendType** 카메라 전환 시의 애니메이션 블랜드 타입을 정의합니다. # Methods - **CameraComponent GetCurrentCameraComponent() [ClientOnly [chunk_id] | Services:314:0
[task] | knowledge_list [title] | CameraService [category] | Services [rephrased] | CameraService의 `ConnectEvent(string key, IScriptFunction eventHandler)` 메서드는 문자열 형태의 이벤트 키(key)와 스크립트 함수 핸들러를 매개변수로 받아 이벤트를 연결하며, 해당 이름의 이벤트가 발생 시 핸들러에 event 매개변수를 전달하고 `EventHandlerBase` 타입을 반환합니다. CameraService의 `ConnectEvent(Type eventType, IScriptFunction eventHandler)` 메서드는 이벤트 타입(Type)과 스크립트 [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:314:1
[task] | wikipedia [title] | CameraService [category] | Services [rephrased] | # CameraService CameraService는 카메라 관련 이벤트를 처리하기 위한 서비스입니다. 이 서비스는 이벤트를 연결(Connect), 해제(Disconnect), 그리고 발생(Send)시키는 기능을 제공합니다. ## 이벤트 연결 이벤트를 연결하기 위해 `ConnectEvent` 메서드를 사용합니다. 이 메서드는 두 가지 오버로드 형태로 존재하며, 각각 이벤트의 식별 방식이 다릅니다. 첫째, `EventHandlerBase ConnectEvent(string key, IScriptFunction eventHan [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:314:1
[task] | knowledge_list [title] | EditorService [category] | Services [rephrased] | ```lua -- EditorService 메서드 목록 -- 아래 목록은 주어진 문서에 명시된 정보만을 기반으로 작성되었습니다. ``` 1. `CloneSelectedEntity()` 메서드는 반환 타입이 `void`이며, 현재 선택된 엔티티를 복제하는 기능을 수행합니다. 2. `CreateMap(func<string> callback)` 메서드는 반환 타입이 `void`이며, 맵을 생성하고 생성된 맵의 Id를 `callback` 파라미터를 통해 전달받습니다. 3. `CreateSelectedModel(Vector2 positio [original] | 에디터 스크립트 관련 기능을 제공합니다. # Methods - **void CloneSelectedEntity()** 선택된 엔티티를 복제합니다. - **void CreateMap(func<string> callback)** 맵을 생성합니다. callback으로 생성된 맵의 Id를 전달받습니다. - **void CreateSelectedModel(Vector2 position, boolean select = true)** 선택된 모델을 position에 생성합니다. - **void CreateSelectedModel( [chunk_id] | Services:312:0
[task] | distill [title] | CameraService [category] | Services [rephrased] | # CameraService ## Events - **CameraSwitchEvent**: 카메라 대상 전환 시 발생. - **CameraZoomEndEvent**: 카메라 줌 변경 완료 후 발생. ## Usage `LeftShift` 키 입력 시 `Target Entity`의 카메라로 전환하고 200으로 줌인, 키 해제 시 로컬 플레이어 카메라로 복귀하는 예제입니다. ```lua Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) { [original] | # Events - **CameraSwitchEvent** 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. - **CameraZoomEndEvent** 카메라의 줌 변경이 완료된 후 발생하는 이벤트입니다. # Examples `LeftShift` 키를 누르고 있는 동안 카메라가 `Target Entity`를 2배 확대해 가까이에서 보이도록 만드는 예제입니다. ```lua Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) [chunk_id] | Services:314:2
[task] | extract_knowledge [title] | UserService [category] | Services [rephrased] | # 13장 UserService: 유저 관리 `UserService`는 메이플스토리 월드에서 유저 엔티티와 유저 정보에 접근하고, 유저 수를 조회하며, 특정 조건에 맞는 유저를 필터링하고, 유저를 추방하는 기능을 제공합니다. ## 1. 개념 설명 `UserService`는 전역 서비스이며, 스크립트에서 언더스코어 접두사(`_UserService`)를 붙여 접근합니다. 이 서비스는 두 가지 핵심 데이터 구조를 제공합니다. 1. **User Entities (`UserEntities`)**: 현재 월드에 접속한 유저들의 `En [original] | 유저 관련 기능을 제공합니다. # Properties - **Entity LocalPlayer [ReadOnly]** 내 유저 엔티티입니다. 클라이언트에서만 사용 가능합니다. - **ReadOnlyDictionary<string, Entity> UserEntities [ReadOnly]** 모든 유저 엔티티 목록입니다. key는 유저 Id, value는 유저 엔티티입니다. - **ReadOnlyDictionary<string, User> Users [ReadOnly]** 모든 유저 정보 목록입니다. key는 유저 Id [chunk_id] | Services:311:0
[task] | wikipedia [title] | EditorService [category] | Services [rephrased] | **EditorService** EditorService는 메이플스토리 월드 에디터 환경에서 스크립트가 실행될 때 사용할 수 있는 다양한 편집 및 관리 기능을 제공하는 서비스입니다. 이 서비스를 통해 엔티티 복제, 맵 생성 및 삭제, 데이터셋 조작, 카메라 제어, 모델 프로퍼티 읽기 및 쓰기, 그리고 에디터 UI와의 상호작용 등 개발자가 필요한 기능을 수행할 수 있습니다. ### 엔티티 및 모델 관리 엔티티와 모델에 대한 조작은 특정 엔티티를 선택하거나 복제하는 기능으로 시작됩니다. `CloneSelectedEntity()` [original] | 에디터 스크립트 관련 기능을 제공합니다. # Methods - **void CloneSelectedEntity()** 선택된 엔티티를 복제합니다. - **void CreateMap(func<string> callback)** 맵을 생성합니다. callback으로 생성된 맵의 Id를 전달받습니다. - **void CreateSelectedModel(Vector2 position, boolean select = true)** 선택된 모델을 position에 생성합니다. - **void CreateSelectedModel( [chunk_id] | Services:312:0
[task] | extract_knowledge [title] | EntityService [category] | Services [rephrased] | # EntityService를 활용한 엔티티 탐색 및 조작 ## 1. 개념 설명 `_EntityService`는 특정 조건(태그, 모델 ID 등)에 맞는 엔티티를 검색하고, 검색된 엔티티의 상태를 수정하기 위한 서비스입니다. 이 서비스는 서버 공간(`[server]`)에서 주로 사용되며, 검색된 엔티티 목록을 반환하여 반복문을 통해 개별 엔티티의 컴포넌트(예: `Visible`, `RigidbodyComponent`)에 접근할 수 있게 합니다. ## 2. API 사용법 문서에 명시된 주요 메서드는 다음과 같습니다. * ** [original] | `TagComponent`를 통해 특정 Tag를 가지고 있는 엔티티들의 `visible`을 수정하는 예제입니다. ```lua [server] void VisibleTagEntities (string tag, boolean visible) { local entities = _EntityService:GetEntitiesByTag(tag) for k, v in pairs(entities) do v.Visible = visible end } ``` #### GetEntitiesSpawnedByModelId MoveMonst [chunk_id] | Services:313:1
[task] | knowledge_list [title] | CameraService [category] | Services [rephrased] | CameraService는 카메라 관련 기능을 제공하는 서비스입니다. CameraService의 currentZoomRatio 프로퍼티는 읽기 전용(ReadOnly) float 타입으로, 현재 카메라의 줌 비율을 나타냅니다. CameraService의 TransitionBlendTime 프로퍼티는 float 타입으로, 카메라 전환 시 블렌드 시간이 얼마나 걸릴지를 정의합니다. CameraService의 TransitionBlendType 프로퍼티는 CameraBlendType 타입으로, 카메라 전환 시의 애니메이션 블렌드 타입을 정 [original] | 카메라 관련 기능을 제공합니다. # Properties - **float currentZoomRatio [ReadOnly]** 현재 줌 비율입니다. - **float TransitionBlendTime** 카메라 전환 시 블렌드 시간이 얼마나 걸릴지를 정의합니다. - **CameraBlendType TransitionBlendType** 카메라 전환 시의 애니메이션 블랜드 타입을 정의합니다. # Methods - **CameraComponent GetCurrentCameraComponent() [ClientOnly [chunk_id] | Services:314:0
[task] | wikipedia [title] | EntityService [category] | Services [rephrased] | # EntityService EntityService는 메이플스토리 월드 스크립트 환경에서 엔티티(Entity)의 생성, 조회, 수정, 파괴 등 생명주기 관리 및 상태 확인과 관련된 기능을 제공하는 서비스입니다. 이 서비스는 `_EntityService`라는 접두어와 함께 호출되며, 주로 서버 측 로직에서 엔티티를 제어하는 데 사용됩니다. ## 메서드 (Methods) EntityService는 엔티티를 식별하고 조작하기 위한 다양한 메서드를 제공합니다. ### 엔티티 파괴 엔티티를 즉시 또는 지연하여 파괴할 수 있습니다. [original] | 엔티티와 관련된 여러 기능을 제공합니다. # Methods - **void Destroy(Entity entity)** 엔티티를 파괴합니다. - **void Destroy(Entity entity, float delaySeconds)** 엔티티를 delaySeconds(초) 후 파괴합니다. - **table<Entity> GetEntitiesByPath(string worldPath)** worldPath에 해당하는 경로의 엔티티를 반환합니다. - **table<Entity> GetEntitiesByTag(string [chunk_id] | Services:313:0
[task] | diverse_qa [title] | CameraService [category] | Services [rephrased] | 질문: CameraService의 주요 역할은 무엇인가요? 답변: CameraService는 카메라 관련 기능을 제공합니다. 질문: currentZoomRatio 프로퍼티의 읽기/쓰기 권한은 어떻게 되나요? 답변: currentZoomRatio 프로퍼티는 [ReadOnly] 속성이 적용되어 읽기 전용입니다. 질문: TransitionBlendTime 프로퍼티가 정의하는 내용은 무엇인가요? 답변: TransitionBlendTime은 카메라 전환 시 블렌드 시간이 얼마나 걸릴지를 정의합니다. 질문: GetCurrentCamera [original] | 카메라 관련 기능을 제공합니다. # Properties - **float currentZoomRatio [ReadOnly]** 현재 줌 비율입니다. - **float TransitionBlendTime** 카메라 전환 시 블렌드 시간이 얼마나 걸릴지를 정의합니다. - **CameraBlendType TransitionBlendType** 카메라 전환 시의 애니메이션 블랜드 타입을 정의합니다. # Methods - **CameraComponent GetCurrentCameraComponent() [ClientOnly [chunk_id] | Services:314:0
[task] | wikipedia [title] | CameraService [category] | Services [rephrased] | # CameraService: Events `CameraService`는 카메라 관련 이벤트를 정의하며, 주요 이벤트는 `CameraSwitchEvent`와 `CameraZoomEndEvent`입니다. `CameraSwitchEvent`는 카메라가 비추는 대상이 전환될 때 발생하며, `CameraZoomEndEvent`는 카메라의 줌 변경 작업이 완료된 후 발생합니다. # Examples 다음은 `LeftShift` 키를 누르고 있는 동안 `Target Entity`의 카메라를 2배 확대하여 가까이에서 보이도록 만들고, 키를 [original] | # Events - **CameraSwitchEvent** 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. - **CameraZoomEndEvent** 카메라의 줌 변경이 완료된 후 발생하는 이벤트입니다. # Examples `LeftShift` 키를 누르고 있는 동안 카메라가 `Target Entity`를 2배 확대해 가까이에서 보이도록 만드는 예제입니다. ```lua Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) [chunk_id] | Services:314:2
[task] | knowledge_list [title] | CameraService [category] | Services [rephrased] | - `CameraSwitchEvent`는 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. - `CameraZoomEndEvent`는 카메라의 줌 변경이 완료된 후 발생하는 이벤트입니다. - `_CameraService:SwitchCameraTo(targetCamera)` 메서드는 `CameraComponent` 타입의 매개변수를 받아 지정된 카메라로 전환을 수행합니다. - `_CameraService:ZoomTo(200, 1.0)` 메서드는 두 개의 숫자 매개변수를 받아 카메라의 줌을 지정된 값으로 변경합니다. - `_Ca [original] | # Events - **CameraSwitchEvent** 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. - **CameraZoomEndEvent** 카메라의 줌 변경이 완료된 후 발생하는 이벤트입니다. # Examples `LeftShift` 키를 누르고 있는 동안 카메라가 `Target Entity`를 2배 확대해 가까이에서 보이도록 만드는 예제입니다. ```lua Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) [chunk_id] | Services:314:2
[task] | diverse_qa [title] | EntityService [category] | Services [rephrased] | 질문: `EntityService`의 `Destroy(Entity entity)` 메서드의 기능은 무엇인가요? 답변: 전달받은 엔티티를 즉시 파괴합니다. 질문: `EntityService`에서 엔티티를 일정 시간 지연 후 파괴하려면 어떤 메서드를 사용해야 하나요? 답변: `Destroy(Entity entity, float delaySeconds)` 메서드를 사용해야 합니다. 질문: `GetEntitiesByPath(string worldPath)` 메서드가 반환하는 데이터 타입은 무엇인가요? 답변: `table<Entity>` [original] | 엔티티와 관련된 여러 기능을 제공합니다. # Methods - **void Destroy(Entity entity)** 엔티티를 파괴합니다. - **void Destroy(Entity entity, float delaySeconds)** 엔티티를 delaySeconds(초) 후 파괴합니다. - **table<Entity> GetEntitiesByPath(string worldPath)** worldPath에 해당하는 경로의 엔티티를 반환합니다. - **table<Entity> GetEntitiesByTag(string [chunk_id] | Services:313:0