[task] | diverse_qa [title] | 유저 엔티티를 찾아주는 UserService [category] | Guides [rephrased] | 질문: `LocalPlayer` 프로퍼티는 어떤 공간에서 사용할 수 있나요? 답변: `LocalPlayer`는 클라이언트에서만 사용할 수 있으며, 서버에서는 사용할 수 없습니다. 질문: 특정 클라이언트에서 '내 캐릭터'라는 개념은 어떤 공간에서만 유효한가요? 답변: 특정 클라이언트에서 '내 캐릭터'라는 개념은 클라이언트에서만 유효합니다. 질문: `UserEnterEventType` 이벤트는 어느 공간에서 발생하나요? 답변: `UserEnterEventType`은 서버에서만 발생합니다. 질문: 아래 코드의 `PrintLocalP [original] | **LocalPlayer**는 클라이언트에서 내 유저 엔티티를 얻을 수 있는 프로퍼티입니다. 특정 클라이언트에서 내 캐릭터라는 개념은 클라이언트에서만 유효합니다. 그러므로 서버에서는 사용할 수 없고 반드시 클라이언트에서만 사용할 수 있습니다. **UserEnterEventType**은 서버에서만 발생하기 때문에, 클라이언트에서 실행할 수 있는 함수를 하나 추가하여 유저가 게임에 들어올 때마다 내 캐릭터의 이름을 출력하는 코드를 작성해 줍니다. ```lua Method: [client] void PrintLocalPlayerNam [chunk_id] | Guides:60:5
[task] | distill [title] | UI 제작하기 [category] | Guides [rephrased] | **메소 이미지 추가 가이드** 텍스트 박스를 돋보이게 하기 위해 이미지 UI를 추가하는 절차입니다. 1. **UI 에디터**에서 대상 **UIGroup**을 선택합니다. 2. 왼쪽 도구바에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 생성합니다. 3. 생성된 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 옆 버튼(리소스 피커)을 클릭하고, 아래 RUID를 지정합니다. * `RUID:fd255d50cb5177545a0e71c4a84` 4. 프 [original] | 텍스트 박스가 조금 더 돋보이도록 메소 이미지를 추가하겠습니다. 1. UI 에디터를 연 뒤, **UIGroup**을 클릭합니다. 2. 왼쪽 기본 도구에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 추가합니다. 3. 추가한 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 오른쪽 버튼을 클릭하여 **Resource Picker** 창을 엽니다. * RUID:fd255d50cb5177545a0e71c4a84 4. 프로퍼티 에디터 - **UITr [chunk_id] | Guides:64:1
[task] | extract_knowledge [title] | 유저 엔티티를 찾아주는 UserService [category] | Guides [rephrased] | # UserService API ## 개념 설명 `UserService`는 현재 게임 세션에 참여하고 있는 유저(플레이어) 정보를 조회하기 위한 서비스입니다. 이 서비스는 두 가지 주요 프로퍼티를 제공하며, 각각 다른 형태의 유저 데이터를 반환합니다. 1. **UserEntities**: 게임에 참여 중인 모든 유저의 **엔티티(Entity)** 객체를 반환합니다. * **타입**: 사전(Dictionary) 타입. * **구조**: `Key`는 `UserId`, `Value`는 `MODEntity`입니 [original] | **UserService**는 게임에 참여 중인 모든 유저 엔티티를 받아오는 **UserEntities** 프로퍼티를 제공합니다. **UserEntities**는 사전(Dictionary) 타입입니다. **Key - Value** 값으로 **UserId - MODEntity**를 반환합니다. 다음은 유저가 게임에 들어올 때마다 모든 플레이어를 순회하며 **Entity Name**을 출력하는 예제입니다. 위의 **UserEnterEvent**를 다음과 같이 수정합니다. ```lua Event Handler: [service: User [chunk_id] | Guides:60:2
[task] | distill [title] | UI 제작하기 [category] | Guides [rephrased] | # UI 에디터: 텍스트 및 이미지 구성 UI 에디터는 `UIGroup`, `UITransformComponent`, `SpriteGUIRendererComponent`, `TextComponent` 등을 활용해 이름표, 채팅창 등 UI를 구현합니다. ## 핵심 구성 규칙 1. **UIGroup 가시성**: * 새로 추가한 `UIGroup`은 기본적으로 숨겨져 있습니다. * 플레이 화면에서 보이려면 `UIGroupComponent`의 **DefaultShow**를 활성화해야 합니다. 2. **텍스트 [original] | # 학습 과정 소개 메이플스토리 월드 메이커에서는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. UI 에디터를 활용해 캐릭터의 이름이나 스탯 창, 채팅 창 등을 구현할 수 있습니다. 또한 게임의 생동감을 살리는 연출도 만들 수 있습니다. UI 에디터의 기본 기능인 **이미지**와 **텍스트**를 사용해 화면 상단에 환영 메시지 UI를 만들어 봅시다. ##### 참고 가이드 * [UI 에디터](/docs?postId=120) * [기본 UI 컴포넌트](/docs?postId=744) * [UI 엔티티 제어하기](/do [chunk_id] | Guides:64:0
[task] | knowledge_list [title] | 맵 생성과 관리 [category] | Guides [rephrased] | 제공된 원문은 메이플스토리 월드 편집기(UI)의 맵 관리 기능에 대한 설명이며, mLua 스크립트 언어나 API(예: `_EntityService`, `Property`, `Method` 등)에 대한 기술적 정의가 포함되어 있지 않습니다. 지시사항인 "주어진 원문에 있는 정보만 사용하고, 없는 사실·API·코드 예제를 지어내지 않습니다"를 엄격히 준수하여, 원문에 명시된 **편집기 UI 조작 및 규칙**에 한해 핵심 사실을 추출합니다. (mLua API 관련 정보는 원문에 존재하지 않으므로 생략합니다.) ```lua -- 원문에 [original] | # 학습 과정 소개 다양한 맵은 월드를 탐험하는 유저들에게 다채로운 재미를 선사합니다. 이번 과정에서는 맵 생성과 관리 방법을 알아봅시다. # 맵 관리 방법 맵 관리 방법에는 2가지가 있습니다. * **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴를 통해 관리 * **Window - Map List** 창에서 관리 # 새 맵 만들기 | Hierarchy | Map List | | ----------- | ------- | | **Hierarchy - maps**의 콘텍스트 메뉴에서 **Create New M [chunk_id] | Guides:61:0
[task] | wikipedia [title] | UI 제작하기 [category] | Guides [rephrased] | **UI UI 제작하기: 메소 이미지 추가** 이 가이드는 기존 텍스트 박스를 보다 돋보이게 만들기 위해 메소(Meso) 이미지를 추가하는 절차를 설명합니다. 작업은 UI 에디터를 사용하여 수행하며, 이미지 UI 컴포넌트를 생성하고 관련 프로퍼티를 설정한 뒤 실행을 통해 결과를 확인하는 과정으로 구성됩니다. 먼저 UI 에디터를 실행한 후, 대상이 될 **UIGroup**을 선택합니다. 이어지는 단계에서 화면 왼쪽에 위치한 기본 도구 패널에서 **[이미지]** 버튼을 클릭하여 이미지 UI 요소를 씬에 추가합니다. 이미지 UI가 [original] | 텍스트 박스가 조금 더 돋보이도록 메소 이미지를 추가하겠습니다. 1. UI 에디터를 연 뒤, **UIGroup**을 클릭합니다. 2. 왼쪽 기본 도구에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 추가합니다. 3. 추가한 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 오른쪽 버튼을 클릭하여 **Resource Picker** 창을 엽니다. * RUID:fd255d50cb5177545a0e71c4a84 4. 프로퍼티 에디터 - **UITr [chunk_id] | Guides:64:1
[task] | extract_knowledge [title] | 유저 엔티티를 찾아주는 UserService [category] | Guides [rephrased] | # 심화 유저 엔티티를 찾아주는 UserService ## 1. 개념 설명 메이플스토리 월드 스크립트 환경에서 `UserService`는 게임에 접속한 유저 엔티티를 조회하고 관리하는 역할을 담당합니다. 특히 특정 맵에 존재하는 유저들을 효율적으로 조회하거나, 특정 `UserId`에 해당하는 플레이어 엔티티를 직접적으로 가져오는 기능이 포함되어 있습니다. * **`GetUsersByMapComponent()`**: 특정 맵에 존재하는 모든 유저 엔티티를 배열 형태로 반환합니다. 매개변수로 맵의 ID가 아닌, 해당 맵 엔티티 [original] | `GetUsersByMapComponent()` 역시 특정 맵에 있는 유저 엔티티를 얻어오는 함수입니다. 특정 맵의 **mapId**가 아닌 **mapComponent**를 매개 변수로 넘겨줍니다. 다음은 map01에 있는 모든 유저를 `GetUsersByMapComponent()`로 받아오는 코드입니다. **UserEnterEvent**을 다음과 같이 수정합니다. ```lua Event Handler: [service: UserService] HandleUserEnterEvent (UserEnterEvent event) { [chunk_id] | Guides:60:4
[task] | extract_knowledge [title] | 유저 엔티티를 찾아주는 UserService [category] | Guides [rephrased] | # UserService: 유저 엔티티 조회 ## 개념 설명 `UserService`는 메이플스토리 월드 스크립트에서 유저 엔티티와 관련된 정보를 조회하기 위한 서비스입니다. 이 절에서는 현재 게임에 참여 중인 유저 수를 확인하는 `GetUserCount()`와 특정 맵에 위치해 있는 유저 목록을 가져오는 `GetUsersByMapName()` 함수에 대해 설명합니다. * **`GetUserCount()`**: 현재 게임 세션에 접속해 있는 유저의 총 수를 숫자(`number`) 타입으로 반환합니다. * **`GetUse [original] | `GetUserCount()`는 현재 게임에 참여 중인 유저 수를 리턴하는 함수입니다. 다음은 유저가 게임에 들어올 때마다 게임에 참여 중인 모든 유저 수를 출력하는 예제입니다. **UserEnterEvent**를 다음과 같이 수정합니다. ```lua Event Handler: [service: UserService] HandleUserEnterEvent (UserEnterEvent event) { -- Parameters local UserId = event.UserId -------------------- [chunk_id] | Guides:60:3
[task] | extract_knowledge [title] | 유저 엔티티를 찾아주는 UserService [category] | Guides [rephrased] | # UserService와 LocalPlayer를 이용한 내 유저 엔티티 조회 ## 개념 설명 mLua 스크립트에서 클라이언트 측에서 실행되는 스크립트가 자신의 유저 엔티티(캐릭터)에 접근하기 위해 `_UserService.LocalPlayer` 프로퍼티를 사용합니다. `LocalPlayer`는 현재 클라이언트가 제어하는 캐릭터 엔티티를 반환하며, 이 개념은 클라이언트 환경에서만 유효합니다. 따라서 서버 공간(`[server]` 또는 `[server only]`)에서 `LocalPlayer`에 직접 접근할 수 없으며, 반드시 클 [original] | **LocalPlayer**는 클라이언트에서 내 유저 엔티티를 얻을 수 있는 프로퍼티입니다. 특정 클라이언트에서 내 캐릭터라는 개념은 클라이언트에서만 유효합니다. 그러므로 서버에서는 사용할 수 없고 반드시 클라이언트에서만 사용할 수 있습니다. **UserEnterEventType**은 서버에서만 발생하기 때문에, 클라이언트에서 실행할 수 있는 함수를 하나 추가하여 유저가 게임에 들어올 때마다 내 캐릭터의 이름을 출력하는 코드를 작성해 줍니다. ```lua Method: [client] void PrintLocalPlayerNam [chunk_id] | Guides:60:5
[task] | wikipedia [title] | 맵 생성과 관리 [category] | Guides [rephrased] | # 지형 맵 생성과 관리 메이플스토리 월드에서 다양한 맵은 유저들이 월드를 탐험하며 다채로운 재미를 느낄 수 있게 해줍니다. 이 가이드에서는 맵을 생성하고 관리하는 방법에 대해 설명합니다. ## 맵 관리 방법 맵을 관리하는 방법은 크게 두 가지입니다. 첫 번째는 **Hierarchy - maps** 노드 하위에 있는 맵 엔트리의 컨텍스트 메뉴를 이용하는 방식이고, 두 번째는 **Window - Map List** 창을 통해 관리하는 방식입니다. ## 새 맵 만들기 새로운 맵을 생성하려면 Hierarchy 뷰 또는 Map L [original] | # 학습 과정 소개 다양한 맵은 월드를 탐험하는 유저들에게 다채로운 재미를 선사합니다. 이번 과정에서는 맵 생성과 관리 방법을 알아봅시다. # 맵 관리 방법 맵 관리 방법에는 2가지가 있습니다. * **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴를 통해 관리 * **Window - Map List** 창에서 관리 # 새 맵 만들기 | Hierarchy | Map List | | ----------- | ------- | | **Hierarchy - maps**의 콘텍스트 메뉴에서 **Create New M [chunk_id] | Guides:61:0
[task] | diverse_qa [title] | 맵 생성과 관리 [category] | Guides [rephrased] | 질문: 맵 관리 방법은 총 몇 가지가 있으며 각각 무엇인가요? 답변: 맵 관리 방법은 2가지가 있으며, Hierarchy - maps 하위 엔트리의 콘텍스트 메뉴를 통해 관리하는 것과 Window - Map List 창에서 관리하는 것입니다. 질문: Hierarchy 뷰에서 새 맵을 만들 때 사용하는 메뉴 이름은 무엇인가요? 답변: Hierarchy - maps의 콘텍스트 메뉴에서 Create New Map을 클릭하여 새 맵을 만듭니다. 질문: Map List 창에서 새 맵을 만드는 방법은 무엇인가요? 답변: Map List 창 [original] | # 학습 과정 소개 다양한 맵은 월드를 탐험하는 유저들에게 다채로운 재미를 선사합니다. 이번 과정에서는 맵 생성과 관리 방법을 알아봅시다. # 맵 관리 방법 맵 관리 방법에는 2가지가 있습니다. * **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴를 통해 관리 * **Window - Map List** 창에서 관리 # 새 맵 만들기 | Hierarchy | Map List | | ----------- | ------- | | **Hierarchy - maps**의 콘텍스트 메뉴에서 **Create New M [chunk_id] | Guides:61:0
[task] | extract_knowledge [title] | 맵 생성과 관리 [category] | Guides [rephrased] | # 지형 맵 연결: 포탈(Teleport Portal) 설정 ## 1. 개념 설명 메이플스토리 월드에서는 맵 간의 이동을 위해 **포탈(Portal)** 컴포넌트를 사용합니다. 포탈은 두 맵(또는 맵 내 위치)을 연결하는 수단으로, 출발지 포탈의 `TargetPortal` 프로퍼티에 목적지 포탈을 참조(Reference)하여 연결 관계를 형성합니다. 이 연결을 통해 플레이어는 한 맵에서 다른 맵으로 이동할 수 있습니다. ## 2. API 사용법 포탈 연결은 스크립트 코드가 아닌 **프로퍼티 에디터(Property Editor)* [original] | 1. 연결하려는 맵에 포탈을 설치합니다. 2. 포탈의 프로퍼티 에디터에서 **TargetPortal**의 **[◉]** 버튼을 클릭합니다. 이후 **Reference** 팝업 창에서 이동할 포탈을 선택합니다. 3. **[시작]** 버튼을 클릭한 뒤, 출발 포탈에서 도착 포탈로 잘 이동하는지 확인합니다. # 마무리 좋은 맵의 크기와 개수는 정해진 답이 없습니다. 크리에이터의 기획에 맞게 여러 개의 맵을 만들거나, 하나의 커다란 맵을 만들어도 좋습니다. 그러나 맵이 너무 거대하거나 배치된 오브젝트가 많으면 로딩 및 플 [chunk_id] | Guides:61:1
[task] | diverse_qa [title] | UI 제작하기 [category] | Guides [rephrased] | 질문: UI 에디터에서 이미지 UI를 추가하기 위해 클릭해야 하는 버튼은 무엇인가요? 답변: 왼쪽 기본 도구에서 [이미지] 버튼을 클릭하여 이미지 UI를 추가합니다. 질문: 추가한 이미지의 리소스를 선택하기 위해 프로퍼티 에디터의 어떤 컴포넌트와 속성을 조작해야 하나요? 답변: SpriteGUIRendererComponent의 ImageRUID 오른쪽 버튼을 클릭하여 Resource Picker 창을 엽니다. 질문: 문서에 제시된 배경 이미지(메소 이미지)의 Resource ID(RUID) 값은 무엇인가요? 답변: RUID:fd [original] | 텍스트 박스가 조금 더 돋보이도록 메소 이미지를 추가하겠습니다. 1. UI 에디터를 연 뒤, **UIGroup**을 클릭합니다. 2. 왼쪽 기본 도구에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 추가합니다. 3. 추가한 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 오른쪽 버튼을 클릭하여 **Resource Picker** 창을 엽니다. * RUID:fd255d50cb5177545a0e71c4a84 4. 프로퍼티 에디터 - **UITr [chunk_id] | Guides:64:1
[task] | knowledge_list [title] | UI 제작하기 [category] | Guides [rephrased] | 제시된 문서 내용만을 바탕으로 추출한 핵심 사실 목록입니다. * **UI 에디터 제공**: 메이플스토리 월드 메이커는 캐릭터 이름, 스탯 창, 채팅 창 및 게임 연출 구현을 위해 UI 편집 기능을 제공하는 **UI 에디터**를 제공합니다. * **기본 UI 컴포넌트**: **UI 에디터**의 기본 기능으로 **이미지**와 **텍스트** 요소를 사용하여 UI를 구성할 수 있습니다. * **새로운 그룹 추가**: 오른쪽 하단의 버튼을 눌러 새로운 UI 그룹을 추가하면 **UIGroup** 엔티티가 생성되며, 생성 즉시 그룹 [original] | # 학습 과정 소개 메이플스토리 월드 메이커에서는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. UI 에디터를 활용해 캐릭터의 이름이나 스탯 창, 채팅 창 등을 구현할 수 있습니다. 또한 게임의 생동감을 살리는 연출도 만들 수 있습니다. UI 에디터의 기본 기능인 **이미지**와 **텍스트**를 사용해 화면 상단에 환영 메시지 UI를 만들어 봅시다. ##### 참고 가이드 * [UI 에디터](/docs?postId=120) * [기본 UI 컴포넌트](/docs?postId=744) * [UI 엔티티 제어하기](/do [chunk_id] | Guides:64:0
[task] | knowledge_list [title] | UI 제작하기 [category] | Guides [rephrased] | 제시된 원문은 그래픽 사용자 인터페이스(UI) 에디터를 활용한 시각적 객체(이미지) 배치 절차에 관한 내용입니다. 요청하신 대로 핵심 사실만 추출하여 mLua API 명세(Property/Method/Event Handler 및 동기화/실행 공간 제약)와 분리하여 정리했습니다. **참고:** 원문에 포함된 `SpriteGUIRendererComponent`의 `ImageRUID` 및 `UITransfromComponent`의 위치/크기 값들은 UI 에디터의 **프로퍼티(Property)** 설정에 해당하며, mLua 스크립트 언어 [original] | 텍스트 박스가 조금 더 돋보이도록 메소 이미지를 추가하겠습니다. 1. UI 에디터를 연 뒤, **UIGroup**을 클릭합니다. 2. 왼쪽 기본 도구에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 추가합니다. 3. 추가한 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 오른쪽 버튼을 클릭하여 **Resource Picker** 창을 엽니다. * RUID:fd255d50cb5177545a0e71c4a84 4. 프로퍼티 에디터 - **UITr [chunk_id] | Guides:64:1
[task] | distill [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | # 아이템 생성 및 삭제 (mLua) ## 1. 아이템 테이블 (DataSet) 설정 * **이름:** `UserItemDataSet` (필수 고정명. 다른 이름은 데이터 전달 불가) * **생성:** `Workspace > MyDesk` 우클릭 > `Create DataSet` * **필수 컬럼:** `Name`, `IconRUID`, `Description` * **추가 컬럼 예시:** `MaxStackCount`, `EffectAmount` * **IconRUID:** `Workspace`에 이미지를 `Im [original] | # 학습 과정 소개 이번 과정에서는 아이템 생성과 삭제 기능을 알아봅니다. 제작할 예제는 다음과 같습니다. * 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성 * 아이템을 먹으면, 5초 뒤 아이템이 놓여있던 자리에 다시 생성 * 맵에 놓인 다른 아이템을 먹을 때마다 인벤토리에 있는 모든 아이템 삭제 # 아이템 테이블 만들기 먼저 개별 아이템을 만들어 봅시다. 개별 아이템은 아이템 테이블에서 정의할 수 있습니다. 아이템 테이블은 **DataSet**으로 만듭니다. **Workspace - MyDesk**에서 콘 [chunk_id] | Guides:66:0
[task] | wikipedia [title] | UI 제작하기 [category] | Guides [rephrased] | # UI UI 제작하기 ## 학습 과정 소개 메이플스토리 월드 메이커는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. 개발자는 이 에디터를 활용하여 캐릭터의 이름표, 스탯 창, 채팅 창 등 다양한 UI 요소를 구현할 수 있으며, 게임의 생동감을 높이는 연출 효과도 제작할 수 있습니다. 본 가이드에서는 UI 에디터의 기본 기능인 **이미지**와 **텍스트** 요소를 사용하여 화면 상단에 환영 메시지 UI를 구현하는 과정을 다룹니다. 해당 주제와 관련된 추가 참고 자료로는 [UI 에디터](/docs?postId=120) [original] | # 학습 과정 소개 메이플스토리 월드 메이커에서는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. UI 에디터를 활용해 캐릭터의 이름이나 스탯 창, 채팅 창 등을 구현할 수 있습니다. 또한 게임의 생동감을 살리는 연출도 만들 수 있습니다. UI 에디터의 기본 기능인 **이미지**와 **텍스트**를 사용해 화면 상단에 환영 메시지 UI를 만들어 봅시다. ##### 참고 가이드 * [UI 에디터](/docs?postId=120) * [기본 UI 컴포넌트](/docs?postId=744) * [UI 엔티티 제어하기](/do [chunk_id] | Guides:64:0
[task] | knowledge_list [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | ```lua -- 제공된 문서에는 구체적인 mLua 스크립트 코드 블록(OnCreate 제외)이나 추가적인 API 정의가 포함되어 있지 않습니다. -- 따라서 요청하신 '핵심 사실 목록'을 작성합니다. ``` * `UserItemDataSet`은 `Workspace - MyDesk`에서 생성되는 `DataSet`이며, 아이템 테이블의 이름은 데이터를 넘길 수 있도록 반드시 `UserItemDataSet`으로 설정해야 합니다. * 아이템 테이블에는 `Name`, `IconRUID`, `Description` 컬럼이 필수적으로 [original] | # 학습 과정 소개 이번 과정에서는 아이템 생성과 삭제 기능을 알아봅니다. 제작할 예제는 다음과 같습니다. * 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성 * 아이템을 먹으면, 5초 뒤 아이템이 놓여있던 자리에 다시 생성 * 맵에 놓인 다른 아이템을 먹을 때마다 인벤토리에 있는 모든 아이템 삭제 # 아이템 테이블 만들기 먼저 개별 아이템을 만들어 봅시다. 개별 아이템은 아이템 테이블에서 정의할 수 있습니다. 아이템 테이블은 **DataSet**으로 만듭니다. **Workspace - MyDesk**에서 콘 [chunk_id] | Guides:66:0
[task] | distill [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | **아이템 삭제 트리거 구현** 엔티티에 `TriggerComponent`와 아래 `ItemDelete` 스크립트 컴포넌트를 적용합니다. 캐릭터가 트리거 영역에 진입(`TriggerEnterEvent`) 시 해당 엔티티의 인벤토리에 있는 모든 아이템을 즉시 삭제합니다. ```lua [self] HandleTriggerEnterEvent(TriggerEnterEvent event) { local TriggerBodyEntity = event.TriggerBodyEntity local inventory = Trigge [original] | **Preset List**에서 임의의 엔티티를 배치합니다. 그리고 **ItemDelete**라는 이름의 스크립트 컴포넌트를 추가합니다. **ItemDelete** 스크립트를 열고, **TriggerEnterEvent**를 추가합니다. 그리고 아래와 같이 내용을 작성합니다. ```lua [self] HandleTriggerEnterEvent(TriggerEnterEvent event) { --Parameters local TriggerBodyEntity = event.TriggerBodyEntity [chunk_id] | Guides:66:2
[task] | distill [title] | Data DB 저장 및 불러오기 [category] | Guides [rephrased] | # DB Data DB 저장 및 불러오기 ## GlobalDataStorage 생성 및 조회 `GlobalDataStorage`는 데이터 저장/조회용 컨테이너입니다. `_DataStorageService:GetGlobalDataStorage(name)`을 통해 생성 또는 조회합니다. * **동작 규칙**: `name` 인자에 해당하는 `GlobalDataStorage`가 없으면 새로 생성하여 반환하고, 이미 존재하면 기존 인스턴스를 반환합니다. 용도별로 `name`을 달리해 여러 개 생성 가능합니다. * **실행 공간 [original] | # 학습 과정 소개 게임 중 변경된 데이터 값을 GlobalDataStorage에 저장하고 불러오는 방법에 대해 알아봅니다. # Data 생성 및 불러오기 GlobalDataStorage는 데이터의 저장과 불러오기를 할 수 있는 "보관소"라 할 수 있습니다. 우리는 데이터베이스에서 데이터를 저장하거나 불러올 일이 있을 때 이 "보관소"를 이용하면 됩니다. GlobalDataStorage는 `_DataStorageService:GetGlobalDataStorage`를 통해 생성하거나 불러오기가 가능합니다. GetGlobalDat [chunk_id] | Guides:68:0
[task] | diverse_qa [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | 질문: 이번 학습 과정에서 제작할 예제의 주요 기능은 무엇인가요? 답변: 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성되고, 아이템을 먹으면 5초 뒤 원래 자리에 다시 생성되며, 다른 아이템을 먹을 때마다 인벤토리의 모든 아이템이 삭제되는 기능입니다. 질문: 아이템 테이블을 만들기 위해 어떤 에디터 기능을 사용해야 하나요? 답변: Workspace - MyDesk에서 콘텍스트 메뉴를 열어 Create DataSet을 선택하여 DataSet으로 만들어야 합니다. 질문: 아이템 테이블의 이름은 반드시 무엇으로 설정 [original] | # 학습 과정 소개 이번 과정에서는 아이템 생성과 삭제 기능을 알아봅니다. 제작할 예제는 다음과 같습니다. * 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성 * 아이템을 먹으면, 5초 뒤 아이템이 놓여있던 자리에 다시 생성 * 맵에 놓인 다른 아이템을 먹을 때마다 인벤토리에 있는 모든 아이템 삭제 # 아이템 테이블 만들기 먼저 개별 아이템을 만들어 봅시다. 개별 아이템은 아이템 테이블에서 정의할 수 있습니다. 아이템 테이블은 **DataSet**으로 만듭니다. **Workspace - MyDesk**에서 콘 [chunk_id] | Guides:66:0
[task] | wikipedia [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | # 아이템 생성 및 삭제 이 문서는 메이플스토리 월드(MapleStory Worlds)에서 아이템을 생성하고 삭제하는 방법을 설명합니다. 본 가이드는 다음 세 가지 기능을 포함하는 예제 게임을 기반으로 작성되었습니다. 첫째, 맵에 놓인 아이템을 획득할 때마다 인벤토리에 랜덤한 아이템이 생성되는 기능입니다. 둘째, 아이템을 획득한 후 5초가 경과하면 해당 아이템이 이전에 놓여 있던 위치에 다시 생성되는 기능입니다. 셋째, 맵에 놓인 다른 특정 아이템을 획득할 때마다 인벤토리에 저장된 모든 아이템이 삭제되는 기능입니다. ## 아이템 [original] | # 학습 과정 소개 이번 과정에서는 아이템 생성과 삭제 기능을 알아봅니다. 제작할 예제는 다음과 같습니다. * 맵에 놓인 아이템을 먹을 때마다 인벤토리에 랜덤한 아이템이 생성 * 아이템을 먹으면, 5초 뒤 아이템이 놓여있던 자리에 다시 생성 * 맵에 놓인 다른 아이템을 먹을 때마다 인벤토리에 있는 모든 아이템 삭제 # 아이템 테이블 만들기 먼저 개별 아이템을 만들어 봅시다. 개별 아이템은 아이템 테이블에서 정의할 수 있습니다. 아이템 테이블은 **DataSet**으로 만듭니다. **Workspace - MyDesk**에서 콘 [chunk_id] | Guides:66:0
[task] | extract_knowledge [title] | UI 제작하기 [category] | Guides [rephrased] | # UI 에디터에서 배경 이미지 추가하기 UI 컴포넌트에 텍스트 박스를 배치할 때, 가독성이나 시각적 강조를 위해 배경으로 이미지를 삽입할 수 있습니다. 이 과정은 `UIGroup` 객체에 `Image` UI 요소를 추가하고, 해당 요리의 렌더링 및 위치 프로퍼티를 설정하는 방식으로 이루어집니다. ## API 및 프로퍼티 사용법 UI 에디터 환경에서 이미지를 추가하고 설정하기 위해 사용되는 주요 프로퍼티는 다음과 같습니다. 1. **SpriteGUIRendererComponent** * **ImageRUID**: [original] | 텍스트 박스가 조금 더 돋보이도록 메소 이미지를 추가하겠습니다. 1. UI 에디터를 연 뒤, **UIGroup**을 클릭합니다. 2. 왼쪽 기본 도구에서 **[이미지]** 버튼을 클릭하여 이미지 UI를 추가합니다. 3. 추가한 이미지의 프로퍼티 에디터에서 **SpriteGUIRendererComponent**의 **ImageRUID** 오른쪽 버튼을 클릭하여 **Resource Picker** 창을 엽니다. * RUID:fd255d50cb5177545a0e71c4a84 4. 프로퍼티 에디터 - **UITr [chunk_id] | Guides:64:1
[task] | diverse_qa [title] | UI 제작하기 [category] | Guides [rephrased] | 질문: 메이플스토리 월드 메이커에서 UI를 편집할 수 있는 도구의 이름은 무엇인가요? 답변: UI를 편집할 수 있는 도구의 이름은 **UI 에디터**입니다. 질문: UI 에디터를 활용해 구현할 수 있는 예시로 제시된 것들은 무엇인가요? 답변: 캐릭터의 이름, 스탯 창, 채팅 창 등을 구현할 수 있습니다. 질문: 화면 상단에 'Hello MapleStory Worlds' 텍스트를 추가하기 위해 첫 번째로 수행해야 할 작업은 무엇인가요? 답변: 오른쪽 하단의 버튼을 눌러 새로운 그룹을 추가하는 것입니다. 질문: 새로운 그룹을 처음 [original] | # 학습 과정 소개 메이플스토리 월드 메이커에서는 UI를 편집할 수 있는 **UI 에디터**를 제공합니다. UI 에디터를 활용해 캐릭터의 이름이나 스탯 창, 채팅 창 등을 구현할 수 있습니다. 또한 게임의 생동감을 살리는 연출도 만들 수 있습니다. UI 에디터의 기본 기능인 **이미지**와 **텍스트**를 사용해 화면 상단에 환영 메시지 UI를 만들어 봅시다. ##### 참고 가이드 * [UI 에디터](/docs?postId=120) * [기본 UI 컴포넌트](/docs?postId=744) * [UI 엔티티 제어하기](/do [chunk_id] | Guides:64:0
[task] | knowledge_list [title] | Data DB 저장 및 불러오기 [category] | Guides [rephrased] | * `_DataStorageService:GetGlobalDataStorage(name)`은 `name` 문자열 인자를 받아 `GlobalDataStorage` 객체를 반환하며, `name`이 이미 등록되어 있으면 기존 객체를 리턴하고 아니면 새로운 객체를 생성하여 리턴한다. * `_DataStorageService:GetGlobalDataStorage`는 `[server only]` 실행 공간 제약이 있는 함수이므로, 데이터의 저장과 불러오기 작업은 반드시 서버 공간에서 수행해야 한다. * `GlobalDataStora [original] | # 학습 과정 소개 게임 중 변경된 데이터 값을 GlobalDataStorage에 저장하고 불러오는 방법에 대해 알아봅니다. # Data 생성 및 불러오기 GlobalDataStorage는 데이터의 저장과 불러오기를 할 수 있는 "보관소"라 할 수 있습니다. 우리는 데이터베이스에서 데이터를 저장하거나 불러올 일이 있을 때 이 "보관소"를 이용하면 됩니다. GlobalDataStorage는 `_DataStorageService:GetGlobalDataStorage`를 통해 생성하거나 불러오기가 가능합니다. GetGlobalDat [chunk_id] | Guides:68:0
[task] | extract_knowledge [title] | 맵 생성과 관리 [category] | Guides [rephrased] | # 지형 맵 생성과 관리 ## 개념 설명 메이플스토리 월드에서 맵은 유저가 탐험하는 공간의 기본 단위입니다. 맵의 생성, 복제, 삭제, 전환, 시작 맵 지정, 그리고 출시 여부 설정을 통해 월드의 구조를 관리합니다. 맵 관리 인터페이스는 **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴와 **Window - Map List** 창 두 가지로 제공되며, 동일한 기능을 수행합니다. ## API 사용법 및 관리 절차 mLua 스크립트 언어는 런타임의 엔티티 조작에 사용되며, 에디터 단계의 맵 파일 생성 및 메타데이터 [original] | # 학습 과정 소개 다양한 맵은 월드를 탐험하는 유저들에게 다채로운 재미를 선사합니다. 이번 과정에서는 맵 생성과 관리 방법을 알아봅시다. # 맵 관리 방법 맵 관리 방법에는 2가지가 있습니다. * **Hierarchy - maps** 하위 엔트리의 콘텍스트 메뉴를 통해 관리 * **Window - Map List** 창에서 관리 # 새 맵 만들기 | Hierarchy | Map List | | ----------- | ------- | | **Hierarchy - maps**의 콘텍스트 메뉴에서 **Create New M [chunk_id] | Guides:61:0
[task] | distill [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | # 아이템 생성 및 삭제 ## 인벤토리 UI 설정 `Inventory` 엔티티의 `UIInventory` 컴포넌트에 `InventoryBtnPath`가 비어있다면, **Reset All Properties**를 실행하여 경로를 초기화합니다. ## 아이템 획득 로직 (GiftBox) 아이템 엔티티에 `GiftBox` 스크립트 컴포넌트와 `TriggerComponent`를 추가하고, `TriggerEnterEvent` 핸들러를 구현합니다. **동작 규칙:** 1. 트리거에 진입한 엔티티의 `InventoryComponent`를 확 [original] | 이번에는 생성된 아이템을 표시할 인벤토리 UI를 추가합니다. 상단 메뉴에 버튼을 눌러 UI 에디터를 엽니다. **Preset List**에서 **[인벤토리]**, **[버튼모음]** UI를 추가합니다. 만일 **Inventory** 엔티티의 **UIInventory** 컴포넌트에 **InventoryBtnPath**가 비어있으면, 햄버거 메뉴를 열어 **Reset All Properties**를 선택합니다. 그러면 아래와 같이 정상적인 경로가 설정됩니다. # 아이템 엔티티 배치 및 기능 추가 버튼을 눌러 UI 편집모드를 [chunk_id] | Guides:66:1
[task] | wikipedia [title] | Data DB 저장 및 불러오기 [category] | Guides [rephrased] | **DB Data DB 저장 및 불러오기** 본 섹션은 게임 실행 중 변경된 데이터 값을 `GlobalDataStorage`에 저장하고 다시 불러오는 방법에 대해 설명합니다. **Data 생성 및 불러오기** `GlobalDataStorage`는 데이터를 저장하고 불러오는 기능을 제공하는 저장소입니다. 데이터베이스와의 상호작용이 필요할 때 이 저장소를 활용합니다. `GlobalDataStorage` 인스턴스는 `_DataStorageService:GetGlobalDataStorage` 함수를 호출하여 생성하거나 가져올 수 있습 [original] | # 학습 과정 소개 게임 중 변경된 데이터 값을 GlobalDataStorage에 저장하고 불러오는 방법에 대해 알아봅니다. # Data 생성 및 불러오기 GlobalDataStorage는 데이터의 저장과 불러오기를 할 수 있는 "보관소"라 할 수 있습니다. 우리는 데이터베이스에서 데이터를 저장하거나 불러올 일이 있을 때 이 "보관소"를 이용하면 됩니다. GlobalDataStorage는 `_DataStorageService:GetGlobalDataStorage`를 통해 생성하거나 불러오기가 가능합니다. GetGlobalDat [chunk_id] | Guides:68:0
[task] | wikipedia [title] | 아이템 생성 및 삭제 [category] | Guides [rephrased] | # 아이템 생성 및 삭제 이 가이드는 트리거 영역에 캐릭터가 진입했을 때 인벤토리의 모든 아이템을 삭제하는 로직을 구현하는 방법을 설명합니다. ## 구현 절차 첫째, **Preset List**에서 임의의 엔티티를 배치합니다. 이 엔티티는 이후 아이템 삭제 로직이 적용될 대상이 됩니다. 둘째, 배치한 엔티티에 `ItemDelete`라는 이름의 스크립트 컴포넌트를 추가합니다. 셋째, `ItemDelete` 스크립트를 열고 `TriggerEnterEvent` 이벤트 핸들러를 추가합니다. 이 핸들러는 트리거 영역에 다른 엔티티가 [original] | **Preset List**에서 임의의 엔티티를 배치합니다. 그리고 **ItemDelete**라는 이름의 스크립트 컴포넌트를 추가합니다. **ItemDelete** 스크립트를 열고, **TriggerEnterEvent**를 추가합니다. 그리고 아래와 같이 내용을 작성합니다. ```lua [self] HandleTriggerEnterEvent(TriggerEnterEvent event) { --Parameters local TriggerBodyEntity = event.TriggerBodyEntity [chunk_id] | Guides:66:2
[task] | diverse_qa [title] | Data DB 저장 및 불러오기 [category] | Guides [rephrased] | 질문: `GlobalDataStorage`의 주요 역할은 무엇인가요? 답변: `GlobalDataStorage`는 게임 중 변경된 데이터 값을 저장하고 불러오는 기능을 수행하는 "보관소" 역할을 합니다. 질문: `GlobalDataStorage`를 생성하거나 불러오기 위해 사용하는 서비스 함수는 무엇인가요? 답변: `_DataStorageService:GetGlobalDataStorage` 함수를 사용합니다. 질문: `_DataStorageService:GetGlobalDataStorage` 함수의 매개변수 `name` 값에 따 [original] | # 학습 과정 소개 게임 중 변경된 데이터 값을 GlobalDataStorage에 저장하고 불러오는 방법에 대해 알아봅니다. # Data 생성 및 불러오기 GlobalDataStorage는 데이터의 저장과 불러오기를 할 수 있는 "보관소"라 할 수 있습니다. 우리는 데이터베이스에서 데이터를 저장하거나 불러올 일이 있을 때 이 "보관소"를 이용하면 됩니다. GlobalDataStorage는 `_DataStorageService:GetGlobalDataStorage`를 통해 생성하거나 불러오기가 가능합니다. GetGlobalDat [chunk_id] | Guides:68:0