[task] | knowledge_list [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 1. `BadgeService`는 웹에서 사전에 등록한 배지를 월드 내에서 활용하기 위해 사용하는 서비스입니다. 2. 월드가 출시되지 않은 상태일 경우, 배지를 등록하거나 지급 로직을 구현해도 유저가 실제로 배지를 획득할 수 없으므로 이 제약 사항을 인지해야 합니다. 3. 유저가 배지를 획득하면 획득 알림 창이 8초 동안 표시되며 해당 배지의 정보가 함께 노출됩니다. 4. 유저가 여러 개의 배지를 연속으로 획득하는 경우, 알림 창은 배지를 획득한 시간 순서대로 순차적으로 표시됩니다. 5. 배지 지급을 구현하기 위해서는 사전에 '배지 [original] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에 [chunk_id] | Guides:664:0
[task] | extract_knowledge [title] | 헤어 만들기 [category] | Guides [rephrased] | # 메이플스토리 월드: 아바타 헤어 아이템 제작 가이드 본 절에서는 메이플스토리 월드(MapleStory Worlds)의 리소스 제작 환경에서 아바타 헤어 아이템을 제작할 때 사용하는 레이어 구조와 그림자 처리 규칙을 설명합니다. 이 내용은 2D 이미지 에디터(예: Adobe Illustrator)에서 작업할 때 참고하는 레이어 명명 규칙 및 폴더 구조에 대한 것입니다. ## 1. 개념 설명 아바타 헤어 아이템은 캐릭터의 자세(일반, 엎드림 등)와 모자 착용 여부(NoCap, WithCap)에 따라 다른 레이어에서 그려집니다. [original] | 1. NoCap 폴더 헤어의 앞모습을 그릴 레이어와 모자 샘플을 포함한 폴더입니다. [모자 만들기](/docs?postId=592) vslot의 3번 유형에 해당하는 모자 샘플입니다. * **guide_cap_samples**: 기본 헤어로 머리 모양이 변하지 않는 모자 샘플이 포함되어 있습니다. * **edithere:front_hairOverHead_31**: 헤어의 앞모습을 그릴 수 있는 레이어입니다. 2. WithCap 폴더 모자를 썼을 때 눌리는 헤어의 앞모습을 그릴 레이어와 해당하는 종류의 모자 샘플들이 [chunk_id] | Guides:657:1
[task] | distill [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # 유료화 월드 숍 서비스 활용하기 유료 상품을 구매한 유저에게 보상이나 상태가 반영되도록 `PlayerReward` 컴포넌트를 `DefaultPlayer`에 추가하여 구현합니다. ### 1. 프로퍼티 정의 UI 텍스트 컴포넌트 경로와 동기화 대상 데이터를 정의합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion = 0 [None] TextCo [original] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone [chunk_id] | Guides:659:3
[task] | extract_knowledge [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # WorldShopService 활용 가이드 ## 1. 개념 설명 `WorldShopService`는 메이플스토리 월드 내에서 웹에서 사전에 등록한 상품(아이템, 이용권)을 유저가 구매할 수 있도록 처리하는 서비스입니다. * **역할**: 유저의 구매 요청을 처리하고, 구매 성공 시 크리에이터가 정의한 보상(상품 지급)을 실행합니다. * **제약 사항**: 출시되지 않은 월드(테스트/개발 단계)에서는 상품을 등록하더라도 실제 판매가 불가능합니다. ## 2. API 사용법 및 UI 구성 `WorldShopServic [original] | # 학습 과정 소개 `WorldShopService`를 활용해 웹에서 등록한 아이템, 이용권을 구매할 수 있게 만들어봅시다. 출시하지 않은 월드에서는 상품을 출시하더라도, 실제로 판매할 수 없음을 유념하세요. # WorldShopService 등록한 상품을 월드에서 활용할 때는 `WorldShopService`를 활용해야 합니다. 구매 성공한 유저는 크리에이터가 제공한 상품을 지급 받아야 합니다. # 활용 예시 아이템과 이용권을 등록합니다. 아이템을 구매하면 즉시 포션 수를 100으로 증가시키고, 이용권을 구매한 뒤 공격을 [chunk_id] | Guides:659:0
[task] | extract_knowledge [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # 월드 숍 서비스(WorldShopService)를 활용한 상품 구매 처리 ## 1. 개념 설명 `WorldShopService`는 유료화 월드에서 상품 구매 이벤트를 처리하고, 구매 성공 시 사용자에게 상품을 지급하는 로직을 연결하는 데 사용됩니다. 구매가 발생한 시점에 서버 측에서 해당 구매 정보를 받아들이고, 실제 아이템 또는 패스 등 보상을 지급한 후 성공 여부를 반환하는 구조로 동작합니다. ## 2. API 사용법 상품 구매 처리를 위해 다음 API를 사용합니다. * **`_WorldShopService:SetP [original] | **MyShopLogic**에 포션 상품 구매에 성공하는 경우 포션 100개를 얻을 수 있도록 아래와 같이 입력합니다. `WorldShopService:SetProcessPurchaseCallback`을 활용해 상품 구매가 발생했을 때 상품을 지급합니다. 상품을 지급이 성공하면 true를, 실패하면 false를 반환해야 합니다. ```lua Method: [server only] void OnBeginPlay() { _WorldShopService:SetProcessPurchaseCallback(self.ProcessPu [chunk_id] | Guides:659:2
[task] | distill [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | # 아이템 배지 서비스 활용하기 배지는 웹에서 등록 후 `BadgeService`로 획득 처리합니다. **출시되지 않은 월드에서는 배지를 등록해도 획득이 불가**합니다. ## BadgeService 동작 규칙 * 획득 시 유저 화면에 **8초간 알림창** 표시. * 연속 획득 시 **획득 순서대로** 알림창 표시. ## 활용 예시: 특정 장소 도착 시 배지 지급 3가지 등급(노멀, 레어, 에픽)의 배지를 등록하고, 해당 좌표에 닿았을 때 지급하는 로직입니다. ### 1. 사전 준비 (웹 등록) | 배지 등급 | 배지 [original] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에 [chunk_id] | Guides:664:0
[task] | extract_knowledge [title] | 헤어 만들기 [category] | Guides [rephrased] | # 메이플스토리 월드: 아바타 아이템(헤어) 레이어 구조 및 제작 가이드 본 절에서는 메이플스토리 월드의 아바타 아이템인 헤어(Hair)를 제작할 때 사용하는 스프라이트 시트(Sprite Sheet)의 레이어 구조, 모자(Cap)와의 상호작용 규칙, 그리고 기본 이미지 작업 프로세스를 다룹니다. ## 1. 개념 설명: 헤어 및 모자 레이어 구조 헤어 아이템은 캐릭터의 자세(일반, 엎드림)와 관점(앞모습, 뒷모습)에 따라 서로 다른 레이어를 참조하여 렌더링됩니다. 또한, 모자 아이템을 착용했을 때 헤어가 눌리는 효과를 표현하기 [original] | 1. NoCap 헤어의 뒷모습을 그릴 수 있는 레이어와 모자 샘플이 포함되어 있습니다. [모자 만들기](/docs?postId=592) vslot의 3번 유형에 해당하는 모자 샘플입니다. * **guide_cap_samples**: 기본 헤어로 머리 모양이 변하지 않는 모자 샘플이 포함되어 있습니다. * **edithere:back_backHair_91**: 헤어의 뒷모습을 그릴 수 있는 레이어입니다. 앞모습에서는 별도의 레이어에 그린 긴 머리를 함께 그려야합니다 2. WithCap 모자를 썼을 때 눌리는 헤어의 [chunk_id] | Guides:657:2
[task] | diverse_qa [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | 질문: 상품 구매 후 유저에게 반영하기 위해 어떤 컴포넌트를 생성하고 어디에 추가해야 하나요? 답변: 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가해야 합니다. 질문: 아래 코드 블록에서 `Potion` 프로퍼티의 동기화 상태(Sync)와 초기값은 각각 무엇인가요? ```lua [Sync] number Potion= 0 ``` 답변: `Potion` 프로퍼티의 동기화 상태는 `[Sync]` 이고, 초기값은 `0` 입니다. 질문: 포션 아이템 구매 시 포션 수량을 증가시키는 `G [original] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone [chunk_id] | Guides:659:3
[task] | wikipedia [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | # 아이템 배지 서비스 활용하기 ## 학습 과정 소개 본 가이드는 웹 환경에서 배지를 등록한 후, `BadgeService` API를 활용하여 플레이어가 특정 오브젝트에 닿았을 때 해당 배지를 획득하도록 만드는 방법을 다룹니다. 주의할 점으로, 아직 출시되지 않은 월드에서는 배지를 등록하거나 지급 설정을 하더라도 실제 게임 내에서는 배지를 획득할 수 없으므로 이점을 유념해야 합니다. ## BadgeService 등록된 배지는 `BadgeService`를 통해 게임 로직에서 활용할 수 있습니다. 플레이어가 배지를 획득하면, 획득된 [original] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에 [chunk_id] | Guides:664:0
[task] | knowledge_list [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | 제시된 문서에 기반하여 추출한 핵심 사실 목록입니다. 1. `PlayerReward` 컴포넌트는 `DefaultPlayer` 엔티티에 추가되어 상품 구매 시 유저에게 보상이 반영되도록 구성됩니다. 2. `PotionValue` 프로퍼티는 `[None]` 동기화 속성을 가지며, UI 경로 `/ui/DefaultGroup/MyPotionInfo/PotionValue`를 가리키는 `TextComponent` 타입입니다. 3. `Potion` 프로퍼티는 `[Sync]` 동기화 속성을 가지며 기본값이 0인 `number` 타입입니다. 4. [original] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone [chunk_id] | Guides:659:3
[task] | diverse_qa [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 질문: 출시하지 않은 월드에서 배지를 출시하면 유저가 실제로 배지를 획득할 수 있는가? 답변: 아니요, 출시하지 않은 월드에서는 배지를 출시하더라도 실제로 획득할 수 없습니다. 질문: `BadgeService`를 통해 배지를 획득한 유저에게 나타나는 알림창의 지속 시간은 얼마나 되는가? 답변: 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타납니다. 질문: 유저가 여러 배지를 연속으로 획득한 경우, 알림창은 어떤 순서로 나타나는가? 답변: 획득한 순서대로 나타납니다. 질문: 문서의 활용 예시에서 등록한 배지 3개의 등급은 [original] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에 [chunk_id] | Guides:664:0
[task] | distill [title] | 배지 관리하기 [category] | Guides [rephrased] | # 아이템 배지 관리하기 ## Badge Viewer 메이커에서 배지를 등록/관리하는 창입니다. 배지는 등급별로 폴더 자동 분류됩니다. **주요 콘텍스트 메뉴:** - `Copy Badge ID`: 배지 ID 복사 - `Copy Badge Thumbnail RUID`: 섬네일 RUID 복사 - `Create New Badge`: 새 배지 생성 - `Edit Badge`: 배지 수정 - `Open Badge List(Web)`: 외부 브라우저에서 배지 상태 확인 - `Refresh Viewer`: 목록 새로고침 ## 배지 상태별 [original] | # 학습 과정 소개 배지 뷰어와 활용 방법, 배지 상태별 기능 제한에 대해 알아봅시다. # Badge Viewer 메이커에서 배지를 등록하고, 관리할 수 있는 창입니다. 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 주요 콘텍스트 메뉴는 아래와 같습니다. | 메뉴 이름 | 설명 | | ----- | --- | | Copy Badge ID | 등록한 배지의 ID를 복사합니다. | | Copy Badge Thumbnail RUID | 등록한 배지의 섬네일 RUID를 복사합니다. | | Create New [chunk_id] | Guides:663:0
[task] | distill [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | **배지 지급 서비스 활용 가이드** 플레이어가 특정 장소를 통과할 때 배지를 지급하는 로직을 구현합니다. ### 1. 설정 1. **배지 획득 지점**: `TriggerComponent`와 `SendBadgeInfo` 컴포넌트를 가진 오브젝트를 배치합니다. * `SendBadgeInfo`에 `BadgeInfo` 프로퍼티(`string`)를 추가하여 배지 ID를 저장합니다. ```lua Property: [None] string BadgeInfo = "" ``` 2. **플레이어 [original] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property: [chunk_id] | Guides:664:1
[task] | knowledge_list [title] | 배지 관리하기 [category] | Guides [rephrased] | ```lua -- 문서 핵심 사실 추출 목록 ``` 1. Badge Viewer는 메이커에서 배지를 등록하고 관리하는 창이며, 등록된 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 2. Badge Viewer의 'Copy Badge ID' 메뉴는 등록한 배지의 ID를 복사하는 기능을 제공합니다. 3. Badge Viewer의 'Copy Badge Thumbnail RUID' 메뉴는 등록한 배지의 섬네일 RUID를 복사하는 기능을 제공합니다. 4. Badge Viewer의 'Create New Badge' 메뉴는 새로 [original] | # 학습 과정 소개 배지 뷰어와 활용 방법, 배지 상태별 기능 제한에 대해 알아봅시다. # Badge Viewer 메이커에서 배지를 등록하고, 관리할 수 있는 창입니다. 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 주요 콘텍스트 메뉴는 아래와 같습니다. | 메뉴 이름 | 설명 | | ----- | --- | | Copy Badge ID | 등록한 배지의 ID를 복사합니다. | | Copy Badge Thumbnail RUID | 등록한 배지의 섬네일 RUID를 복사합니다. | | Create New [chunk_id] | Guides:663:0
[task] | knowledge_list [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 제시된 문서 내용에만 근거하여 핵심 사실을 추출한 목록입니다. * 버튼 클릭 시 배지 확인창의 표시 상태를 토글하고 버튼 텍스트를 변경하는 로직은 `[self]` 실행 공간의 `HandleButtonClickEvent(ButtonClickEvent event)` 이벤트 핸들러에서 구현합니다. * UI 엔티티는 `_EntityService:GetEntityByPath("/ui/BadgeLayer")` 메서드를 사용하여 경로로 조회하여 참조합니다. * 엔티티의 활성화 상태는 `Enable` 프로퍼티를 조회하고, `SetEn [original] | 배지 획득 확인창을 여는 버튼을 만들고, 버튼을 누르면 '배지보기'에서 '닫기'로 바뀌게 만들어봅시다. 1. **UI 에디터 - DefaultGroup - BadgeOpenBtn** 버튼을 배치합니다. 2. 프로퍼티 에디터에서 TextComponent를 추가하고, **Text**에 **배지 보기**를 입력합니다. 3. 새로운 **BadgeOpenBtn 컴포넌트**를 생성하고, **BadgeOpenBtn**에 추가합니다. 4. 버튼을 클릭할 때 발생하는 ButtonClickEvent를 받아서 BadgeLayer 엔티티의 E [chunk_id] | Guides:664:2
[task] | knowledge_list [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 제시된 문서의 내용을 바탕으로 추출한 핵심 사실 목록입니다. * `TriggerComponent`는 플레이어가 배지를 획득하는 장소 역할을 하는 오브젝트에 추가되어야 하며, 해당 이벤트는 서버와 클라이언트 양쪽 공간(Server, Client)에서 발생합니다. * `SendBadgeInfo` 컴포넌트는 배지 획득 장소 오브젝트에 추가되며, `[None]` 동기화 속성을 가진 `string` 타입의 `BadgeInfo` 프로퍼티를 통해 배지 ID를 저장합니다. * `PlayerGetBadge` 컴포넌트는 `DefaultP [original] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property: [chunk_id] | Guides:664:1
[task] | extract_knowledge [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # 유료화 월드 숍 서비스 활용하기 월드 숍(World Shop) 서비스는 상품 구매를 유도하고, 구매 결과에 따라 아이템 지급 여부를 확인하는 UI를 구성하기 위한 API를 제공합니다. 이 절에서는 상품 정보를 UI에 노출하고 구매를 요청하는 클라이언트 측 로직, 그리고 상품 ID를 기반으로 상품 정보를 조회하는 방법에 대해 설명합니다. ## 개념 설명 * **WorldShopService**: 상품 구매를 요청하고 상품 정보를 조회하는 데 사용되는 서비스입니다. 클라이언트 공간에서 주로 사용되며, `PromptPurch [original] | 상품 구매에 성공했을 때 포션 개수와 이용권 보유 여부를 확인할 수 있는 ui를 만들어봅시다. 1. **UI 에디터 - DefaultGroup - MyPotionInfo** 이미지 엔티티를 배치합니다. 2. 하위에 이미지와 텍스트 엔티티를 배치하고, 아래의 그림처럼 이름을 변경합니다. #### 상품 정보를 구매창에 불러오기 1. 새로운 **ItemSlot** 스크립트 컴포넌트를 생성하고 **Item, Pass UI엔티티**에 추가합니다. 2. **ItemSlot** 컴포넌트 스크립트 에디터 창을 열고, 프로퍼티를 추가합니다. [chunk_id] | Guides:659:1
[task] | diverse_qa [title] | 배지 관리하기 [category] | Guides [rephrased] | 질문: Badge Viewer는 무엇이며, 어떤 기능을 제공하나요? 답변: Badge Viewer는 메이커에서 배지를 등록하고 관리할 수 있는 창으로, 등록한 배지는 등급에 따라 폴더에 자동으로 분류됩니다. 질문: Badge Viewer의 'Copy Badge ID' 메뉴의 기능은 무엇인가요? 답변: 등록한 배지의 ID를 복사합니다. 질문: Badge Viewer에서 'Open Badge List(Web)' 메뉴를 선택하면 어떤 일이 일어나나요? 답변: 생성한 배지들의 상태를 확인할 수 있는 외부 브라우저 창을 엽니다. 질문: [original] | # 학습 과정 소개 배지 뷰어와 활용 방법, 배지 상태별 기능 제한에 대해 알아봅시다. # Badge Viewer 메이커에서 배지를 등록하고, 관리할 수 있는 창입니다. 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 주요 콘텍스트 메뉴는 아래와 같습니다. | 메뉴 이름 | 설명 | | ----- | --- | | Copy Badge ID | 등록한 배지의 ID를 복사합니다. | | Copy Badge Thumbnail RUID | 등록한 배지의 섬네일 RUID를 복사합니다. | | Create New [chunk_id] | Guides:663:0
[task] | wikipedia [title] | 배지 관리하기 [category] | Guides [rephrased] | # 아이템 배지 관리하기 본 문서는 메이플스토리 월드(MapleStory Worlds)에서 배지(Badge)를 등록하고 관리하는 방법, 배지 상태별 기능 제한 사항, 그리고 메이커(Maker)와 출시된 월드(World) 환경에서의 차이점을 설명합니다. ## Badge Viewer Badge Viewer는 메이커에서 배지를 등록하고 관리할 수 있는 창입니다. 이곳에서 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 등록된 배지에 마우스를 올려두면 배지 정보를 확인할 수 있으며, 주요 콘텍스트 메뉴는 다음과 같 [original] | # 학습 과정 소개 배지 뷰어와 활용 방법, 배지 상태별 기능 제한에 대해 알아봅시다. # Badge Viewer 메이커에서 배지를 등록하고, 관리할 수 있는 창입니다. 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 주요 콘텍스트 메뉴는 아래와 같습니다. | 메뉴 이름 | 설명 | | ----- | --- | | Copy Badge ID | 등록한 배지의 ID를 복사합니다. | | Copy Badge Thumbnail RUID | 등록한 배지의 섬네일 RUID를 복사합니다. | | Create New [chunk_id] | Guides:663:0
[task] | wikipedia [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # 유료화 월드 숍 서비스 활용하기 유료화 월드 숍 서비스(World Shop Service)를 통해 상품을 구매한 유저에게 해당 혜택이 반영되도록 하는 과정은 `PlayerReward` 컴포넌트를 중심으로 구성됩니다. 이 가이드에서는 포션 아이템 구매 시 포션 수량 증가, 이용권 구매 시 UI 상태 변경 및 보유 상태에 따른 추가 보상 획득 로직을 구현하는 방법을 다룹니다. ## 1. PlayerReward 컴포넌트 생성 및 프로퍼티 설정 먼저 새로운 `PlayerReward` 컴포넌트를 생성하고, 이 컴포넌트를 `Defau [original] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone [chunk_id] | Guides:659:3
[task] | extract_knowledge [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | # 아이템 배지 서비스 활용하기 ## 1. 개념 설명 `BadgeService`는 웹에서 사전에 등록한 배지(Badge)를 월드 내 스크립트에서 처리하기 위한 API입니다. 이 서비스를 통해 플레이어는 특정 조건(예: 특정 오브젝트 터치, 장소 도착 등)을 충족했을 때 배지를 획득할 수 있습니다. 배지를 획득한 유저의 클라이언트에는 획득 알림창이 **8초** 동안 표시됩니다. 이때 배지의 이름, 썸네일, 설명 등의 정보가 함께 노출됩니다. 만약 짧은 시간 내에 여러 배지를 연속으로 획득한 경우, 알림창은 획득 순서대로 큐에 쌓 [original] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에 [chunk_id] | Guides:664:0
[task] | distill [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | **아이템 배지 서비스 활용: 배지 획득 확인창** UI 버튼(`BadgeOpenBtn`)을 통해 배지 확인창(`BadgeLayer`)의 열림/닫힘을 제어하고, 버튼 텍스트를 동적으로 변경하는 로직입니다. ### 1. 버튼 및 UI 구성 1. **UI 에디터**: `DefaultGroup`에 `BadgeOpenBtn` 배치. 2. **TextComponent**: `Text` 프로퍼티에 "배지 보기" 입력. 3. **컴포넌트**: `BadgeOpenBtn` 엔티티에 새 컴포넌트 추가. 4. **배지 확인창**: `Badg [original] | 배지 획득 확인창을 여는 버튼을 만들고, 버튼을 누르면 '배지보기'에서 '닫기'로 바뀌게 만들어봅시다. 1. **UI 에디터 - DefaultGroup - BadgeOpenBtn** 버튼을 배치합니다. 2. 프로퍼티 에디터에서 TextComponent를 추가하고, **Text**에 **배지 보기**를 입력합니다. 3. 새로운 **BadgeOpenBtn 컴포넌트**를 생성하고, **BadgeOpenBtn**에 추가합니다. 4. 버튼을 클릭할 때 발생하는 ButtonClickEvent를 받아서 BadgeLayer 엔티티의 E [chunk_id] | Guides:664:2
[task] | diverse_qa [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 질문: 특정 장소를 지나가는 플레이어에게 배지를 지급하기 위해 오브젝트에 먼저 추가해야 하는 컴포넌트는 무엇인가요? 답변: TriggerComponent를 추가해야 합니다. 질문: 배지 ID를 저장하기 위해 Workspace의 MyDesk에 생성하고 장소 오브젝트에 추가하는 컴포넌트의 이름은 무엇인가요? 답변: SendBadgeInfo 컴포넌트입니다. 질문: SendBadgeInfo 컴포넌트에서 배지 ID를 저장하기 위해 추가되는 프로퍼티의 이름과 타입은 무엇인가요? 답변: 프로퍼티 이름은 BadgeInfo이며 타입은 strin [original] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property: [chunk_id] | Guides:664:1
[task] | extract_knowledge [title] | 배지 관리하기 [category] | Guides [rephrased] | # 아이템 배지 관리하기 ## 1. 개념 설명 메이플스토리 월드에서 배지(Badge)는 플레이어의 달성 상태나 보유 아이템을 시각적으로 표현하는 요소입니다. 메이커(Maker) 환경에서는 `Badge Viewer`를 통해 배지를 등록하고 상태를 관리할 수 있으며, 이 상태에 따라 월드 내에서의 정보 조회, 노출, 획득 가능 여부가 결정됩니다. 배지는 등급에 따라 자동 분류되며, 각 배지는 고유한 ID와 섬네일 RUID(Resource ID)를 가집니다. 배지의 상태(Status)는 `미출시`, `획득 대기`, `획득 가능`, ` [original] | # 학습 과정 소개 배지 뷰어와 활용 방법, 배지 상태별 기능 제한에 대해 알아봅시다. # Badge Viewer 메이커에서 배지를 등록하고, 관리할 수 있는 창입니다. 등록한 배지는 배지 등급에 따라 각각의 폴더에 자동으로 분류됩니다. 주요 콘텍스트 메뉴는 아래와 같습니다. | 메뉴 이름 | 설명 | | ----- | --- | | Copy Badge ID | 등록한 배지의 ID를 복사합니다. | | Copy Badge Thumbnail RUID | 등록한 배지의 섬네일 RUID를 복사합니다. | | Create New [chunk_id] | Guides:663:0
[task] | distill [title] | 확률 정보 공개 [category] | Guides [rephrased] | # 확률 정보 공개 가이드 **의무**: 크리에이터는 확률형 아이템 제공 시, ‘확률형 아이템 확률 정보공개 관련 해설서’에 따라 아이템 사용 전 확률 정보를 고지해야 합니다. 미준수 시 **최대 월드 이용 제한**이 적용됩니다. ## 확률형 아이템 정의 및 분류 플레이어가 유상 구매(직접/간접)한 아이템 중 종류·효과·성능이 **우연적 요소**에 의해 결정되는 것. 1. **캡슐형**: 구매/사용 시 제공되는 아이템의 종류·등급·성능이 우연으로 결정 2. **강화형**: 구매/사용 시 대상 아이템의 종류·등급·성능 변화 결과 [original] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및 [chunk_id] | Guides:667:0
[task] | diverse_qa [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 질문: 배지 획득 확인창을 여는 버튼의 기본 텍스트는 무엇으로 설정하나요? 답변: 프로퍼티 에디터에서 TextComponent의 Text에 **배지 보기**를 입력합니다. 질문: `BadgeOpenBtn` 컴포넌트가 부착된 버튼에서 `ButtonClickEvent`를 처리할 때, 어떤 서비스 메서드를 사용하여 `/ui/BadgeLayer` 엔티티를 참조하나요? 답변: `_EntityService:GetEntityByPath("/ui/BadgeLayer")` 메서드를 사용합니다. 질문: 다음 코드 스니펫에서 `BadgeLayerP [original] | 배지 획득 확인창을 여는 버튼을 만들고, 버튼을 누르면 '배지보기'에서 '닫기'로 바뀌게 만들어봅시다. 1. **UI 에디터 - DefaultGroup - BadgeOpenBtn** 버튼을 배치합니다. 2. 프로퍼티 에디터에서 TextComponent를 추가하고, **Text**에 **배지 보기**를 입력합니다. 3. 새로운 **BadgeOpenBtn 컴포넌트**를 생성하고, **BadgeOpenBtn**에 추가합니다. 4. 버튼을 클릭할 때 발생하는 ButtonClickEvent를 받아서 BadgeLayer 엔티티의 E [chunk_id] | Guides:664:2
[task] | wikipedia [title] | 확률 정보 공개 [category] | Guides [rephrased] | # 확률 정보 공개 메이플스토리 월드(MapleStory Worlds)에서 크리에이터가 창작한 아이템 내에 확률형 아이템을 포함하여 제공하는 경우, 해당 아이템 사용 전에 사용자에게 확률 정보를 고지해야 할 의무가 있습니다. 이는 메이플스토리 월드의 확률 정보 공개 가이드에 근거하며, 본 가이드는 문화체육관광부의 ‘확률형 아이템 확률 정보공개 관련 해설서’ 내용을 따릅니다. 가이드를 준수하지 않을 경우 최대 월드 이용 제한이 부과될 수 있습니다. ## 확률 정보 공개 대상 확률형 아이템은 플레이어가 직접적이거나 간접적으로 유상 [original] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및 [chunk_id] | Guides:667:0
[task] | extract_knowledge [title] | 월드 숍 서비스 활용하기 [category] | Guides [rephrased] | # 유료화 월드 숍 서비스 활용: PlayerReward 컴포넌트 구현 ## 1. 개념 설명 유료화 월드 숍(World Shop)에서 상품을 구매한 유저에게 보상(아이템, 이용권 등)을 반영하기 위해 `PlayerReward` 컴포넌트를 사용한다. 이 컴포넌트는 클라이언트와 서버 간의 상태 동기화를 통해 구매 상태를 UI에 표시하고, 특정 조건(이용권 보유 여부)에 따른 게임 로직(보상 추가 지급)을 처리한다. ## 2. API 사용법 ### 주요 컴포넌트 및 서비스 - **PlayerReward**: 유저에게 보상을 관리하 [original] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone [chunk_id] | Guides:659:3
[task] | distill [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | ### 아이템 배지 서비스 활용 `BadgeService`를 활용해 배지 정보 조회 및 소유 여부 확인을 구현합니다. ### 1. 프로퍼티 정의 `BadgeSlot` 컴포넌트에 배지 ID와 UI 표시용 `TextComponent` 참조를 추가합니다. ```lua Property: [None] string BadgeId = "" [None] TextComponent BadgeTitle = nil [None] TextComponent Hasbadge = nil [None] TextComponent BadgDesc = nil ``` [original] | 1. 새로운 **BadgeSlot 컴포넌트**를 생성하고 **BadgeSlot_01**에 추가합니다. 2. 획득한 배지의 이름, 소유 정보, 설명을 가져올 수 있도록 프로퍼티를 추가합니다. ```lua Property: [None] string BadgeId = "" -- 조회할 배지 ID [None] TextComponent BadgeTitle = nil -- 배지 이름 [None] TextComponent Hasbadge = nil -- 배지 소유 정보 [Non [chunk_id] | Guides:664:3
[task] | knowledge_list [title] | 배지 서비스 활용하기 [category] | Guides [rephrased] | 요청하신 문서의 핵심 사실을 API 이름, 매개변수, 반환 타입, 동기화/서버·클라이언트 제약을 명시하여 정리한 목록입니다. 1. `BadgeSlot` 컴포넌트는 `[None]` 동기화 속성을 가진 `string` 타입의 `BadgeId`, `TextComponent` 타입의 `BadgeTitle`, `TextComponent` 타입의 `Hasbadge`, `TextComponent` 타입의 `BadgDesc` 프로퍼티를 포함하여 정의됩니다. 2. `OnBeginPlay` 메서드는 `[client only]` 실행 공간에서 동작하 [original] | 1. 새로운 **BadgeSlot 컴포넌트**를 생성하고 **BadgeSlot_01**에 추가합니다. 2. 획득한 배지의 이름, 소유 정보, 설명을 가져올 수 있도록 프로퍼티를 추가합니다. ```lua Property: [None] string BadgeId = "" -- 조회할 배지 ID [None] TextComponent BadgeTitle = nil -- 배지 이름 [None] TextComponent Hasbadge = nil -- 배지 소유 정보 [Non [chunk_id] | Guides:664:3