← 목록

mLua · Nemotron-CC 리프레이즈 (CPT)

총 8,200개 · 페이지 221/274
🔀 랜덤
불러오는 중…

[task] | extract_knowledge [title] | 정규식 언어 [category] | Guides [rephrased] | # 정규식 그룹화 구문 (Grouping Constructs) 정규식에서 **그룹화 구문**은 하위 식(subexpression)을 정의하고, 입력 문자열 내에서 해당 부분 문자열을 캡처(capture)하거나 조건부 매칭을 수행하는 역할을 합니다. 그룹화 구문은 캡처 그룹, 비캡처 그룹, 시야(lookaround) 그룹, 원자성 그룹 등으로 분류됩니다. ## 1. 개념 설명 그룹화 구문은 정규식 패턴 내부의 특정 부분을 괄호로 묶어 독립적인 논리적 단위로 만듭니다. 주요 유형은 다음과 같습니다. * **캡처 그룹**: 일 [original] | 그룹화 구문(Grouping constructs)은 정규식의 하위 식(subexpression)을 나타내며 입력 문자열의 부분 문자열을 캡처합니다. | 그룹화 구문 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `(`*하위 식*`)` | 일치하는 하위 식을 캡처하고 서수(2부터 시작)를 할당합니다. | `(\\w)` | `"deep"`의 `"d"`,`"e"`, `"e"`, `"p"` | | `(?<`*이름*`>`*하위 식*`)` 또는 `(?'`*이름*`'`*하위 식*`)` | 일치하는 하위 식을 명 [chunk_id] | Guides:1043:3

[task] | knowledge_list [title] | 루아 프로파일링 요약 보고서 [category] | Guides [rephrased] | * 루아 프로파일러의 `File - Export Report` 기능을 실행하면 루아 프로파일링 요약 리포트를 XML 형식으로 내보낼 수 있습니다. * 요약 리포트의 `Name` 항목은 콘텍스트 이름을 나타냅니다. * 요약 리포트의 `FrameCount` 항목은 계측된 프레임 수를 나타냅니다. * 요약 리포트의 `StartTime` 항목은 프로파일링 시작 Tick을 나타내며, Tick은 10ns 단위입니다. * 요약 리포트의 `EndTime` 항목은 프로파일링 종료 Tick을 나타내며, Tick은 10ns 단위입니다 [original] | # 학습 과정 소개 루아 프로파일링 요약 보고서에서 어떤 정보가 제공되는지 살펴봅시다. ##### 참고 가이드 [루아 프로파일러를 활용하여 최적화하기](/docs/?postId=762) # 루아 프로파일링 요약 보고서 루아 프로파일러에서 **File - Export Report**를 클릭하면 루아 프로파일링 요약 리포트를 XML로 Export할 수 있습니다. 다음은 요약 리포트에서 제공되는 정보 목록입니다. | 항목 | 설명 | | --- | --- | | Name | 콘텍스트 이름 | | FrameCount | 계측된 프 [chunk_id] | Guides:1046:0

[task] | diverse_qa [title] | 멀티 터치 [category] | Guides [rephrased] | 질문: TouchReceiveComponent를 추가한 엔티티를 터치한 상태로 움직일 때 엔티티는 어떻게 반응하나요? 답변: 엔티티가 터치된 지점을 따라 이동합니다. 질문: 이 예제에서 Scene에 배치된 엔티티는 무엇이며, 몇 개를 사용하나요? 답변: object-44와 object-49 두 개를 사용합니다. 질문: TouchEvent, TouchHoldEvent, TouchReleaseEvent가 발생하기 위해 엔티티에 반드시 있어야 하는 컴포넌트는 무엇인가요? 답변: TouchReceiveComponent입니다. 질문: [original] | **TouchReceiveComponent**를 추가한 엔티티 한 개 또는 여러 개를 터치한 상태로 움직이면 엔티티가 따라서 이동하는 예제를 살펴봅시다. 1. **Preset List - Object**에서 원하는 엔티티 2개를 **Scene**에 배치합니다. 예제에서는 **object-44**와 **object-49**를 사용했습니다. 2. 본 예제에서는 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`를 활용할 예정입니다. 이 이벤트들은 엔티티에 **TouchRec [chunk_id] | Guides:1048:1

[task] | extract_knowledge [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | # DataStorage 사용량 제한 및 Credit 관리 mLua 환경에서 `DataStorage` 컴포넌트를 사용할 때, 데이터 저장에 따른 용량 제한과 요청 횟수 제한(Credit)을 준수해야 합니다. 본 절에서는 DataStorage의 물리적 저장 크기 제한과, 데이터베이스 요청 시 소모되는 Credit 체계에 대해 설명합니다. ## 1. 개념 설명 ### 1.1 용량 제한 (Capacity Limits) DataStorage에 저장할 수 있는 데이터의 크기는 UTF-8 인코딩을 통한 Byte 수 기준으로 제한됩니다. [original] | # 학습 과정 소개 DataStorage를 사용할 때는 제한 용량과 Credit 제한을 확인하고 용량에 맞게 사용해야 합니다. DataStorage 사용량 제한에 관해 알아보겠습니다. # DataStorage 제한 용량 DataStorage의 용량 제한은 다음과 같습니다. 문자열 값 크기는 UTF-8 인코딩을 통해 Byte 배열로 변환했을 때의 Byte 수로 계산됩니다. |구분 | 제한 용량| | --- | --- | | DataStorage name| 1 ~ 64 byte | | DataStorage key| 1 ~ 10 [chunk_id] | Guides:1045:0

[task] | extract_knowledge [title] | 정규식 언어 [category] | Guides [rephrased] | # 정규식 언어: 수량자(Quantifiers)와 역참조(Backreferences) ## 1. 개념 설명 ### 1.1 수량자(Quantifiers) 수량자는 정규식 패턴에서 직전 요소(문자, 그룹, 문자 클래스)가 입력 문자열에 몇 번 반복되어야 하는지 지정하는 문법입니다. 수량자는 기본적으로 **탐욕적(Greedy)** 동작을 하며, 가능한 한 많은 문자를 일치시킵니다. `?`를 접미사로 붙여 **비탐욕적(Lazy)** 동작으로 변경할 수 있습니다. 비탐욕적 수량자는 가능한 한 적은 개수의 문자를 일치시킵니다. ### 1 [original] | 수량자(Quantifiers)는 일치 항목의 입력에 있어야 하는 문자, 그룹 또는 문자 클래스의 인스턴스 수를 지정합니다. | 수량자 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `*` | 이전 요소를 0개 이상 찾습니다. | `a.*c` | `"abcbc"`의 `"abcbc"` | | `+` | 이전 요소를 1개 이상 찾습니다. | `be+` | `"been"`의 `"bee"`, `"bent"`의 `"be"` | | `?` | 이전 요소를 0개 또는 1개 찾습니다. | `rai?` | `"rain [chunk_id] | Guides:1043:4

[task] | knowledge_list [title] | 멀티 터치 [category] | Guides [rephrased] | 제시된 문서의 내용을 바탕으로 핵심 사실을 추출하여 정리하였습니다. 1. `[client]` 실행 공간의 `AddHandler(integer touchId)` 메서드는 `self.handler`가 `nil`이 아닌 경우 중복 등록을 방지하기 위해 즉시 반환하며, 매개변수로 전달받은 `touchId`를 `self.index` 테이블에 삽입하고 `_InputService:ConnectEvent(ScreenTouchHoldEvent, self.Move)`를 호출하여 이벤트 핸들러를 연결한 값을 `self.handler` 프로퍼티에 저장 [original] | 7. `AddHandler()` 함수를 추가합니다. 매개 변수로 **integer** 타입의 **touchId**를 추가합니다. `ScreenTouchHoldEvent`와 `Move()` 함수를 연결합니다. 나중에 구독 취소를 하기 위해, 연결한 이벤트의 핸들러는 프로퍼티로 가지고 있도록 합니다. ```lua Method: [client] void AddHandler(integer touchId) { if self.handler ~= nil then [chunk_id] | Guides:1048:2

[task] | extract_knowledge [title] | 멀티 터치 [category] | Guides [rephrased] | # 멀티 터치 이벤트 처리 멀티 터치는 포인터(예: 손가락) 두 개 이상이 동시에 화면을 터치하는 동작을 의미합니다. 메이플스토리 월드에서는 화면 전체의 터치 상태를 파악하기 위한 `ScreenTouch` 계열 이벤트와 특정 엔티티의 터치 상태를 파악하기 위한 `Touch` 계열 이벤트를 제공합니다. ## 개념 및 API 사용법 멀티 터치 처리는 이벤트의 발생 주체에 따라 두 가지 계열로 나뉩니다. ### 1. ScreenTouch 계열 이벤트 화면 어디를 터치했는지와 무관하게, 화면에 대한 전반적인 터치 상태를 알기 위해 [original] | # 학습 과정 소개 멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 이번 과정에서는 예제를 통해 멀티 터치 활용 방법을 알아봅시다. # 멀티 터치 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다. 아래의 `ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다. * [Sc [chunk_id] | Guides:1048:0

[task] | extract_knowledge [title] | 정규식 언어 [category] | Guides [rephrased] | # 정규식: 교체 구문(Alternation) 및 대체(Substitutions) ## 1. 개념 설명 ### 1.1. 교체 구문 (Alternation Constructs) 교체 구문은 정규식 내에서 **either/or(이것 또는 저것)** 또는 **조건부 일치**를 허용하도록 패턴을 수정하는 문법입니다. 세로 막대(`|`)를 사용하여 여러 가능한 패턴 중 하나와 일치하도록 지정하거나, 특정 조건이 충족되었을 때만 특정 부분과 일치하도록 제어합니다. ### 1.2. 대체 (Substitutions) 대체는 **바꾸기 패턴( [original] | 교체 구문(Alternation Constructs)은 either/or 또는 조건부 일치를 허용하도록 정규식을 수정합니다. | 교체 구문 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `\|` | 세로 막대(\|)로 구분된 한 가지 요소와 일치합니다. | `th(e\|is\|at)` | `"this is the day."`의 `"the"`, `"this"` | | `(?(`*표현식*`)`*예*`\|`*아니오*`)` 또는 `(?(`*표현식*`)`*예*`)` | *표현식*으로 지정한 정규식 패턴이 일치 [chunk_id] | Guides:1043:5

[task] | wikipedia [title] | 멀티 터치 [category] | Guides [rephrased] | **이벤트 멀티 터치** 이벤트 멀티 터치는 `TouchReceiveComponent`가 적용된 엔티티가 터치 입력에 반응하여 사용자가 터치한 위치를 따라 이동하도록 하는 게임 로직 시스템입니다. 이 가이드에서는 두 개의 엔티티(`object-44`, `object-49`)를 예제로 사용하여, 사용자가 엔티티를 터치한 상태로 화면을 드래그하면 해당 엔티티가 지점을 따라 이동하는 동작을 구현하는 과정을 설명합니다. ### 구성 및 설정 구현을 위해 먼저 **Preset List - Object**에서 사용할 엔티티 두 개를 ** [original] | **TouchReceiveComponent**를 추가한 엔티티 한 개 또는 여러 개를 터치한 상태로 움직이면 엔티티가 따라서 이동하는 예제를 살펴봅시다. 1. **Preset List - Object**에서 원하는 엔티티 2개를 **Scene**에 배치합니다. 예제에서는 **object-44**와 **object-49**를 사용했습니다. 2. 본 예제에서는 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`를 활용할 예정입니다. 이 이벤트들은 엔티티에 **TouchRec [chunk_id] | Guides:1048:1

[task] | distill [title] | 멀티 터치 [category] | Guides [rephrased] | **이벤트 멀티 터치 구현** `_InputService`를 통해 `ScreenTouchHoldEvent`를 동적으로 구독/해제하여 다중 터치 시 엔티티 이동을 처리합니다. **1. 핸들러 등록 (`AddHandler`)** 터치 시작 시 `touchId`를 인덱스에 저장하고, `ScreenTouchHoldEvent`를 `Move` 함수와 연결합니다. 이미 핸들러가 존재하면 중복 등록을 방지합니다. ```lua Method: [client] void AddHandler(integer touchId) { if self.h [original] | 7. `AddHandler()` 함수를 추가합니다. 매개 변수로 **integer** 타입의 **touchId**를 추가합니다. `ScreenTouchHoldEvent`와 `Move()` 함수를 연결합니다. 나중에 구독 취소를 하기 위해, 연결한 이벤트의 핸들러는 프로퍼티로 가지고 있도록 합니다. ```lua Method: [client] void AddHandler(integer touchId) { if self.handler ~= nil then [chunk_id] | Guides:1048:2

[task] | distill [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 중복 컴포넌트는 **Console/Build Console**에 로그로 출력되며, 주로 메이커 최초 진입, 맵 이동, 테스트/플레이 시 발생합니다. 원인에 따라 컴포넌트를 수정 또는 제거해야 합니다. ### 1. 맵에 배치된 Entity * **모델에서 배치된 Entity**: 월드 동작에 맞게 모델 또는 엔티티에서 중복 컴포넌트 삭제. * **맵에 직접 배치된 Entity**: 에러 메시지 참조 후 중복 컴포넌트 중 하나 삭제. ### 2. 동적으로 생성한 Entity * **`AddComponent()` 사용 시* [original] | 중복된 컴포넌트가 있을 경우 **Console, Build Console 창**에 관련 로그 메시지가 발생합니다. 이 로그 메시지들은 주로 메이커에서 제작 중인 월드에 처음 들어갈 때, 맵을 변경할 때 출력됩니다. 내용과 상황에 따라 적절하게 컴포넌트를 수정하거나, 제거하면 됩니다. 컴포넌트 중복은 주로 아래 네 가지 상황에서 발생합니다. #### 맵에 이미 배치된 Entity에서 중복 컴포넌트 발생 맵에 배치된 Entity에 중복된 Component가 있을 경우 메이커 프로 모드 최초 진입 시 또는 메이커에서 맵 이동 시 로그 [chunk_id] | Guides:1049:1

[task] | knowledge_list [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 제시된 문서([Guides] 제작 수정 가이드 중복 컴포넌트 수정하기)의 내용을 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. 1. MSW(MapleStory Worlds)는 크리에이터의 월드 제작 지원을 위해 기능 업데이트 및 수정을 지속적으로 진행하며, 향후 중복 컴포넌트 발생을 방지하기 위한 작업을 진행 중입니다. 2. 기능 지원이 완전히 종료되기 전에는 월드의 정상 동작을 위해 중복 컴포넌트 존재 여부를 확인하고 수정하는 것이 권장됩니다. 3. 중복 컴포넌트란 엔티티나 모델에 동일한 종류이거나 동류의 컴포넌트가 2개 이 [original] | # 학습 과정 소개 MSW는 크리에이터의 월드 제작을 지원하기 위해 다양한 기능을 지속적으로 업데이트하고, 수정하고 있습니다. MSW는 앞으로 중복 컴포넌트가 발생하지 않도록 작업 중입니다. 기능 지원이 완전히 종료되기 전에 미리 가이드를 참고해 월드가 문제 없이 동작할 수 있도록 중복 컴포넌트가 있는지 확인하고 수정하시길 권장합니다. # 중복 컴포넌트 엔티티나 모델에 동일한 혹은 동류의 컴포넌트가 2개 이상 추가되었다면 그 컴포넌트들을 중복 컴포넌트라 칭합니다. 중복 컴포넌트는 제작 과정에서 예상치 못하게 하나의 엔티티에 동 [chunk_id] | Guides:1049:0

[task] | wikipedia [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | # 중복 컴포넌트 수정하기 메이플스토리 월드(mLua) 환경에서는 일부 컴포넌트가 다른 특정 컴포넌트와 함께 사용될 때 필수로 요구되는 '필요 컴포넌트'가 존재합니다. 개발자가 이러한 필요 컴포넌트를 포함하는 특정 컴포넌트를 엔티티에 추가하면, 시스템은 요구되는 필요 컴포넌트를 자동으로 함께 추가하는 동작을 수행합니다. 이러한 자동 추가 동작으로 인해, 서로 연관된 컴포넌트들의 추가 순서에 따라 동일한 컴포넌트가 두 번 이상 존재하는 '중복 컴포넌트' 상황이 발생할 수 있습니다. 중복 컴포넌트가 발견된 경우, 이미 추가된 해당 [original] | 몇몇 컴포넌트는 사용 시 필수로 함께 사용해야 하는 필요 컴포넌트가 있습니다. 이 필요 컴포넌트는 특정 컴포넌트를 추가했을 때 자동으로 추가되고 있습니다. 이 동작으로 인해 연관 컴포넌트끼리의 추가 순서에 따라 중복 컴포넌트가 발생할 수 있습니다. 이 경우 추가한 컴포넌트를 삭제하고, 재추가해 수정합니다. 이 과정에서 로직 수정이 필요할 수 있습니다. 필요 컴포넌트가 있는 컴포넌트는 아래의 표에서 확인할 수 있습니다. | 추가한 Component | 필요 Component | | --- | --- | | AIChaseCompo [chunk_id] | Guides:1049:2

[task] | distill [title] | 유저 피드백 설정하기 [category] | Guides [rephrased] | # 유저 피드백 알림 설정 크리에이터는 제작한 월드에 대한 유저 피드백(플레이, 좋아요, 즐겨찾기) 알림을 주기적으로 수신할 수 있습니다. ## 설정 방법 프로 모드(`File - User Feedback Setting`) 또는 디자인 모드(`메뉴 - 유저 피드백 설정`)에서 접근합니다. ## 설정 항목 | 항목 | 설명 | | :--- | :--- | | **플레이** | 플레이한 유저 및 인원수 표시 | | **좋아요** | 좋아요를 누른 유저 및 인원수 표시 | | **즐겨찾기** | 즐겨찾기를 누른 유저 및 인원수 표시 [original] | # 학습 과정 소개 크리에이터는 유저 피드백 알림을 통해 주기적으로 본인이 제작한 월드의 긍정적인 피드백을 전달받을 수 있습니다. 이번 과정에서는 유저 피드백 알림 설정 방법을 알아보겠습니다. # 유저 피드백 알림 ## 알림 설정 유저 피드백 알림은 프로 모드, 디자인 모드에서 모두 설정할 수 있습니다. | 프로 모드 | 디자인 모드 | | :---: | :---: | | **File - User Feedback Setting** | **메뉴 - 유저 피드백 설정** | 유저 피드백 알림 설정 창은 아래와 같이 구성되 [chunk_id] | Guides:1050:0

[task] | distill [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | # 중복 컴포넌트 수정 가이드 MSW는 중복 컴포넌트 문제를 해결하기 위해 기능 업데이트를 진행 중입니다. 완전 종료 전, 월드 오류 방지를 위해 엔티티/모델에 존재하는 중복 컴포넌트를 확인하고 수정하시기 바랍니다. ## 중복 컴포넌트 정의 및 발생 원인 * **정의**: 엔티티나 모델에 **동일하거나 동류(상위/하위 클래스 관계)인 컴포넌트가 2개 이상** 추가된 상태. * **발생 원인**: 1. 제작 중 동일한 종류 컴포넌트를 실수로 중복 추가. 2. 부모-자식 관계 모델/엔티티에서 **상속된 컴 [original] | # 학습 과정 소개 MSW는 크리에이터의 월드 제작을 지원하기 위해 다양한 기능을 지속적으로 업데이트하고, 수정하고 있습니다. MSW는 앞으로 중복 컴포넌트가 발생하지 않도록 작업 중입니다. 기능 지원이 완전히 종료되기 전에 미리 가이드를 참고해 월드가 문제 없이 동작할 수 있도록 중복 컴포넌트가 있는지 확인하고 수정하시길 권장합니다. # 중복 컴포넌트 엔티티나 모델에 동일한 혹은 동류의 컴포넌트가 2개 이상 추가되었다면 그 컴포넌트들을 중복 컴포넌트라 칭합니다. 중복 컴포넌트는 제작 과정에서 예상치 못하게 하나의 엔티티에 동 [chunk_id] | Guides:1049:0

[task] | extract_knowledge [title] | 멀티 터치 [category] | Guides [rephrased] | # 이벤트 멀티 터치 (Multi-Touch) 처리 본 절에서는 `TouchReceiveComponent`를 활용하여 엔티티에 대한 터치를 감지하고, 터치가 유지되는 동안 해당 엔티티를 따라 이동하게 하는 로직을 구현하는 방법을 다룹니다. ## 1. 개념 설명 멀티 터치는 사용자가 화면의 여러 지점을 동시에 터치할 때 발생하는 이벤트를 처리하는 기능입니다. mLua에서는 엔티티가 터치 입력을 수신하기 위해 반드시 **TouchReceiveComponent**가 필요합니다. 주요 이벤트는 다음과 같습니다: * **Touch [original] | **TouchReceiveComponent**를 추가한 엔티티 한 개 또는 여러 개를 터치한 상태로 움직이면 엔티티가 따라서 이동하는 예제를 살펴봅시다. 1. **Preset List - Object**에서 원하는 엔티티 2개를 **Scene**에 배치합니다. 예제에서는 **object-44**와 **object-49**를 사용했습니다. 2. 본 예제에서는 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`를 활용할 예정입니다. 이 이벤트들은 엔티티에 **TouchRec [chunk_id] | Guides:1048:1

[task] | distill [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | # 중복 컴포넌트 수정하기 특정 컴포넌트를 추가하면 필요한 연관 컴포넌트가 **자동으로 추가**됩니다. 이 과정에서 연관 컴포넌트끼리의 추가 순서에 따라 **중복 컴포넌트**가 발생할 수 있습니다. **수정 방법**: 1. 중복된 컴포넌트를 삭제 2. 재추가 3. 필요 시 로직 수정 > **주의**: 재추가 시 기존 로직이 초기화될 수 있으므로, 필요한 경우 로직 재작성이 필요합니다. ## 필수 연관 컴포넌트 목록 | 추가한 Component | 자동 추가되는 필수 Component | | :--- | :--- | | `A [original] | 몇몇 컴포넌트는 사용 시 필수로 함께 사용해야 하는 필요 컴포넌트가 있습니다. 이 필요 컴포넌트는 특정 컴포넌트를 추가했을 때 자동으로 추가되고 있습니다. 이 동작으로 인해 연관 컴포넌트끼리의 추가 순서에 따라 중복 컴포넌트가 발생할 수 있습니다. 이 경우 추가한 컴포넌트를 삭제하고, 재추가해 수정합니다. 이 과정에서 로직 수정이 필요할 수 있습니다. 필요 컴포넌트가 있는 컴포넌트는 아래의 표에서 확인할 수 있습니다. | 추가한 Component | 필요 Component | | --- | --- | | AIChaseCompo [chunk_id] | Guides:1049:2

[task] | diverse_qa [title] | 멀티 터치 [category] | Guides [rephrased] | 질문: `AddHandler()` 함수의 매개 변수 `touchId`의 타입은 무엇인가요? 답변: `touchId`의 타입은 **integer**입니다. 질문: `AddHandler()` 함수 내부에서 `self.handler`가 이미 할당된 경우(nil이 아닌 경우) 수행되는 동작은 무엇인가요? 답변: 함수를 즉시 종료(return)합니다. 질문: `AddHandler()` 함수에서 `_InputService:ConnectEvent()`를 통해 어떤 이벤트와 어떤 함수를 연결하나요? 답변: `ScreenTouchHoldEven [original] | 7. `AddHandler()` 함수를 추가합니다. 매개 변수로 **integer** 타입의 **touchId**를 추가합니다. `ScreenTouchHoldEvent`와 `Move()` 함수를 연결합니다. 나중에 구독 취소를 하기 위해, 연결한 이벤트의 핸들러는 프로퍼티로 가지고 있도록 합니다. ```lua Method: [client] void AddHandler(integer touchId) { if self.handler ~= nil then [chunk_id] | Guides:1048:2

[task] | wikipedia [title] | 유저 피드백 설정하기 [category] | Guides [rephrased] | # 유저 피드백 알림 설정 및 동작 크리에이터는 유저 피드백 알림 기능을 활용하여 자신이 제작한 월드에 대한 긍정적인 사용자 피드백을 주기적으로 확인할 수 있습니다. 본 가이드에서는 유저 피드백 알림의 설정 방법과 출력 방식을 설명합니다. ## 알림 설정 방법 유저 피드백 알림은 메이플스토리 월드의 프로 모드와 디자인 모드에서 모두 설정 가능합니다. 프로 모드에서는 `File` 메뉴의 `User Feedback Setting` 항목을 통해, 디자인 모드에서는 `메뉴`의 `유저 피드백 설정` 항목을 통해 설정 창을 열 수 있습니 [original] | # 학습 과정 소개 크리에이터는 유저 피드백 알림을 통해 주기적으로 본인이 제작한 월드의 긍정적인 피드백을 전달받을 수 있습니다. 이번 과정에서는 유저 피드백 알림 설정 방법을 알아보겠습니다. # 유저 피드백 알림 ## 알림 설정 유저 피드백 알림은 프로 모드, 디자인 모드에서 모두 설정할 수 있습니다. | 프로 모드 | 디자인 모드 | | :---: | :---: | | **File - User Feedback Setting** | **메뉴 - 유저 피드백 설정** | 유저 피드백 알림 설정 창은 아래와 같이 구성되 [chunk_id] | Guides:1050:0

[task] | wikipedia [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | MSW(MapleStory Worlds)는 크리에이터의 월드 제작을 지원하기 위해 다양한 기능을 지속적으로 업데이트 및 수정하고 있습니다. 향후 동일한 컴포넌트가 한 엔티티에 중복으로 추가되는 상황을 방지하기 위한 작업이 진행 중이며, 기능 지원이 완전히 종료되기 전에 월드가 문제 없이 동작할 수 있도록 사전에 중복 컴포넌트를 확인하고 수정하는 것이 권장됩니다. 중복 컴포넌트는 하나의 엔티티나 모델에 동일하거나 동류의 컴포넌트가 두 개 이상 존재하는 상태를 의미합니다. 이러한 중복은 제작 과정에서 동일한 종류의 컴포넌트를 한 엔티 [original] | # 학습 과정 소개 MSW는 크리에이터의 월드 제작을 지원하기 위해 다양한 기능을 지속적으로 업데이트하고, 수정하고 있습니다. MSW는 앞으로 중복 컴포넌트가 발생하지 않도록 작업 중입니다. 기능 지원이 완전히 종료되기 전에 미리 가이드를 참고해 월드가 문제 없이 동작할 수 있도록 중복 컴포넌트가 있는지 확인하고 수정하시길 권장합니다. # 중복 컴포넌트 엔티티나 모델에 동일한 혹은 동류의 컴포넌트가 2개 이상 추가되었다면 그 컴포넌트들을 중복 컴포넌트라 칭합니다. 중복 컴포넌트는 제작 과정에서 예상치 못하게 하나의 엔티티에 동 [chunk_id] | Guides:1049:0

[task] | knowledge_list [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 제공된 원문에는 `AddComponent()` 함수의 매개변수, 반환 타입, 또는 동기화/서버·클라이언트 실행 공간 제약에 대한 기술적 정보가 포함되어 있지 않습니다. 따라서 요청하신 API 상세 사양(매개변수, 반환 타입, 실행 공간)은 원문에 근거하여 기술할 수 없으며, 원문에 명시된 사실과 제한 사항만 추출하여 정리합니다. ```lua -- 원문에 명시된 API 또는 함수 이름은 'AddComponent()' 하나뿐이며, -- 해당 함수의 매개변수, 반환 타입, 실행 공간 제약은 문서에 기재되어 있지 않습니다. ``` * [original] | 중복된 컴포넌트가 있을 경우 **Console, Build Console 창**에 관련 로그 메시지가 발생합니다. 이 로그 메시지들은 주로 메이커에서 제작 중인 월드에 처음 들어갈 때, 맵을 변경할 때 출력됩니다. 내용과 상황에 따라 적절하게 컴포넌트를 수정하거나, 제거하면 됩니다. 컴포넌트 중복은 주로 아래 네 가지 상황에서 발생합니다. #### 맵에 이미 배치된 Entity에서 중복 컴포넌트 발생 맵에 배치된 Entity에 중복된 Component가 있을 경우 메이커 프로 모드 최초 진입 시 또는 메이커에서 맵 이동 시 로그 [chunk_id] | Guides:1049:1

[task] | knowledge_list [title] | 유저 피드백 설정하기 [category] | Guides [rephrased] | 제시된 문서에 포함된 정보만 기반으로 핵심 사실을 추출하여 정리하였습니다. * 유저 피드백 알림은 크리에이터가 제작한 월드에 대한 긍정적인 피드백을 주기적으로 전달받기 위한 기능입니다. * 유저 피드백 알림 설정은 프로 모드와 디자인 모드 모두에서 수행할 수 있습니다. * 프로 모드에서는 **File - User Feedback Setting** 메뉴를 통해 알림 설정에 접근합니다. * 디자인 모드에서는 **메뉴 - 유저 피드백 설정** 메뉴를 통해 알림 설정에 접근합니다. * 설정 창 내 '플레이' 항목은 해당 [original] | # 학습 과정 소개 크리에이터는 유저 피드백 알림을 통해 주기적으로 본인이 제작한 월드의 긍정적인 피드백을 전달받을 수 있습니다. 이번 과정에서는 유저 피드백 알림 설정 방법을 알아보겠습니다. # 유저 피드백 알림 ## 알림 설정 유저 피드백 알림은 프로 모드, 디자인 모드에서 모두 설정할 수 있습니다. | 프로 모드 | 디자인 모드 | | :---: | :---: | | **File - User Feedback Setting** | **메뉴 - 유저 피드백 설정** | 유저 피드백 알림 설정 창은 아래와 같이 구성되 [chunk_id] | Guides:1050:0

[task] | wikipedia [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 중복 컴포넌트 수정하기 메이플스토리 월드 스크립트 엔진에서 컴포넌트가 중복되면 `Console` 또는 `Build Console` 창에 관련 로그 메시지가 출력됩니다. 이러한 로그는 주로 메이커에서 제작 중인 월드에 최초 진입하거나 맵을 변경할 때 발생하며, 로그의 내용과 상황을 파악하여 중복된 컴포넌트를 적절히 수정하거나 제거해야 합니다. 컴포넌트 중복은 크게 네 가지 상황에서 발생하며, 각 상황별 처리 방법은 다음과 같습니다. 첫째, 맵에 이미 배치된 Entity에서 중복 컴포넌트가 발생하는 경우입니다. 맵에 배치된 Enti [original] | 중복된 컴포넌트가 있을 경우 **Console, Build Console 창**에 관련 로그 메시지가 발생합니다. 이 로그 메시지들은 주로 메이커에서 제작 중인 월드에 처음 들어갈 때, 맵을 변경할 때 출력됩니다. 내용과 상황에 따라 적절하게 컴포넌트를 수정하거나, 제거하면 됩니다. 컴포넌트 중복은 주로 아래 네 가지 상황에서 발생합니다. #### 맵에 이미 배치된 Entity에서 중복 컴포넌트 발생 맵에 배치된 Entity에 중복된 Component가 있을 경우 메이커 프로 모드 최초 진입 시 또는 메이커에서 맵 이동 시 로그 [chunk_id] | Guides:1049:1

[task] | knowledge_list [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 제시된 문서 내용만 기반으로 핵심 사실을 정리한 목록입니다. 1. 몇몇 컴포넌트는 사용 시 필수로 함께 사용해야 하는 필요 컴포넌트가 존재하며, 특정 컴포넌트를 추가했을 때 이 필요 컴포넌트는 자동으로 추가됩니다. 2. 연관 컴포넌트끼리의 추가 순서에 따라 중복 컴포넌트가 발생할 수 있으며, 이 경우 추가한 컴포넌트를 삭제하고 재추가하여 수정해야 합니다. 3. 컴포넌트 삭제 및 재추가 과정에서는 로직 수정이 필요할 수 있습니다. 4. `AIChaseComponent`를 추가하면 `StateComponent`가 자동으로 필요 컴포넌 [original] | 몇몇 컴포넌트는 사용 시 필수로 함께 사용해야 하는 필요 컴포넌트가 있습니다. 이 필요 컴포넌트는 특정 컴포넌트를 추가했을 때 자동으로 추가되고 있습니다. 이 동작으로 인해 연관 컴포넌트끼리의 추가 순서에 따라 중복 컴포넌트가 발생할 수 있습니다. 이 경우 추가한 컴포넌트를 삭제하고, 재추가해 수정합니다. 이 과정에서 로직 수정이 필요할 수 있습니다. 필요 컴포넌트가 있는 컴포넌트는 아래의 표에서 확인할 수 있습니다. | 추가한 Component | 필요 Component | | --- | --- | | AIChaseCompo [chunk_id] | Guides:1049:2

[task] | diverse_qa [title] | 중복 컴포넌트 수정하기 [category] | Guides [rephrased] | 질문: MSW에서 '중복 컴포넌트'가 발생한다는 것은 무엇을 의미합니까? 답변: 엔티티나 모델에 동일한 혹은 동류의 컴포넌트가 2개 이상 추가된 상태를 말합니다. 질문: 중복 컴포넌트가 주로 발생하는 원인은 무엇입니까? 답변: 제작 과정에서 예상치 못하게 하나의 엔티티에 동일한 종류의 컴포넌트를 여러 번 추가하거나, 부모-자식 관계의 모델 또는 엔티티에서 상속받은 컴포넌트를 인지하지 못한 채 컴포넌트를 추가할 때 주로 발생합니다. 질문: MSW 개발진은 중복 컴포넌트 문제에 대해 어떤 조치를 취하고 있으며, 크리에이터에게 무엇을 [original] | # 학습 과정 소개 MSW는 크리에이터의 월드 제작을 지원하기 위해 다양한 기능을 지속적으로 업데이트하고, 수정하고 있습니다. MSW는 앞으로 중복 컴포넌트가 발생하지 않도록 작업 중입니다. 기능 지원이 완전히 종료되기 전에 미리 가이드를 참고해 월드가 문제 없이 동작할 수 있도록 중복 컴포넌트가 있는지 확인하고 수정하시길 권장합니다. # 중복 컴포넌트 엔티티나 모델에 동일한 혹은 동류의 컴포넌트가 2개 이상 추가되었다면 그 컴포넌트들을 중복 컴포넌트라 칭합니다. 중복 컴포넌트는 제작 과정에서 예상치 못하게 하나의 엔티티에 동 [chunk_id] | Guides:1049:0

[task] | extract_knowledge [title] | 유저 피드백 설정하기 [category] | Guides [rephrased] | # 유저 피드백 알림 설정 ## 개념 설명 유저 피드백 알림은 크리에이터가 제작한 월드에 대한 유저의 긍정적 반응(플레이, 좋아요, 즐겨찾기)을 주기적으로 전달받는 기능입니다. 이 알림은 PC 및 모바일 환경에서 모두 출력되며, 모바일에서 앱이 비활성화된 상태일 경우 백그라운드 푸시로 전달됩니다. ## API 사용법 mLua 스크립트 언어를 통한 직접적인 API 호출이나 코드 작성은 요구되지 않습니다. 해당 기능은 메이플스토리 월드 에디터의 GUI(그래픽 사용자 인터페이스)를 통해 설정합니다. ### 설정 경로 * **프로 [original] | # 학습 과정 소개 크리에이터는 유저 피드백 알림을 통해 주기적으로 본인이 제작한 월드의 긍정적인 피드백을 전달받을 수 있습니다. 이번 과정에서는 유저 피드백 알림 설정 방법을 알아보겠습니다. # 유저 피드백 알림 ## 알림 설정 유저 피드백 알림은 프로 모드, 디자인 모드에서 모두 설정할 수 있습니다. | 프로 모드 | 디자인 모드 | | :---: | :---: | | **File - User Feedback Setting** | **메뉴 - 유저 피드백 설정** | 유저 피드백 알림 설정 창은 아래와 같이 구성되 [chunk_id] | Guides:1050:0

[task] | knowledge_list [title] | 메이플스토리 월드 루아 문법 확장 [category] | Guides [rephrased] | 1. 문자열 이어 붙이기 할당 연산자 `..=`는 기존 문자열 변수에 새로운 문자열을 연결하여 그 결과를 해당 변수에 다시 할당하는 역할을 수행합니다. 2. 왼쪽 비트 시프트 할당 연산자 `<<=`는 변수의 이진수 값을 왼쪽으로 지정된 비트 수만큼 이동시키고, 발생한 공백부(오른쪽)에 0을 채운 결과를 해당 변수에 할당합니다. 3. 오른쪽 비트 시프트 할당 연산자 `>>=`는 변수의 이진수 값을 오른쪽으로 지정된 비트 수만큼 이동시킨 결과를 해당 변수에 할당합니다. [original] | 문자열 이어 붙이기 할당 연산자(String concatenation assignment operator) `..=`는 문자열을 이어 붙인 결과를 할당합니다. ```lua local str = 'Hello, ' str ..= 'MapleStory ' str ..= 'World!' print(str) -- Output : -- Hello, MapleStory World! ``` #### 왼쪽 비트 시프트 할당 연산자 비트 시프트는 프로그래밍에서 사용되는 비트 연산자 중 하나로, 이진수 값을 왼쪽이나 오른쪽으로 이동시킵니다. 왼쪽 [chunk_id] | Guides:1071:1

[task] | wikipedia [title] | 멀티 터치 [category] | Guides [rephrased] | **이벤트 멀티 터치 구현** 이벤트 멀티 터치 기능은 사용자가 화면의 여러 지점을 동시에 터치하거나 드래그할 때, 해당 입력에 대응하는 엔티티가 각각 독립적으로 이동하도록 제어하는 로직을 의미합니다. 이 기능을 구현하기 위해서는 입력 서비스(Input Service)를 통해 스크린 터치 이벤트와 엔티티의 터치 릴리스 이벤트를 연결하고, 현재 활성인 터치 ID를 추적하여 이벤트 구독을 관리해야 합니다. 구현 과정은 다음과 같은 단계로 진행됩니다. **1. 이벤트 핸들러 등록 (`AddHandler` 함수)** 먼저, 특정 터 [original] | 7. `AddHandler()` 함수를 추가합니다. 매개 변수로 **integer** 타입의 **touchId**를 추가합니다. `ScreenTouchHoldEvent`와 `Move()` 함수를 연결합니다. 나중에 구독 취소를 하기 위해, 연결한 이벤트의 핸들러는 프로퍼티로 가지고 있도록 합니다. ```lua Method: [client] void AddHandler(integer touchId) { if self.handler ~= nil then [chunk_id] | Guides:1048:2

[task] | diverse_qa [title] | 유저 피드백 설정하기 [category] | Guides [rephrased] | 질문: 크리에이터는 유저 피드백 알림을 통해 어떤 정보를 주기적으로 전달받을 수 있나요? 답변: 크리에이터는 유저 피드백 알림을 통해 본인이 제작한 월드에 대한 긍정적인 피드백을 주기적으로 전달받을 수 있습니다. 질문: 유저 피드백 알림 설정은 어떤 모드에서 수행할 수 있나요? 답변: 유저 피드백 알림은 프로 모드와 디자인 모드에서 모두 설정할 수 있습니다. 질문: 프로 모드에서 유저 피드백 설정 메뉴에 접근하는 경로를 선택지 중 고르시오. 1. Edit - User Feedback 2. File - User Feedback S [original] | # 학습 과정 소개 크리에이터는 유저 피드백 알림을 통해 주기적으로 본인이 제작한 월드의 긍정적인 피드백을 전달받을 수 있습니다. 이번 과정에서는 유저 피드백 알림 설정 방법을 알아보겠습니다. # 유저 피드백 알림 ## 알림 설정 유저 피드백 알림은 프로 모드, 디자인 모드에서 모두 설정할 수 있습니다. | 프로 모드 | 디자인 모드 | | :---: | :---: | | **File - User Feedback Setting** | **메뉴 - 유저 피드백 설정** | 유저 피드백 알림 설정 창은 아래와 같이 구성되 [chunk_id] | Guides:1050:0

[task] | distill [title] | 메이플스토리 월드 루아 문법 확장 [category] | Guides [rephrased] | ## 문자열 이어 붙이기 할당 연산자 `..=` 연산자는 문자열을 이어 붙인 결과를 변수에 할당합니다. ```lua local str = 'Hello, ' str ..= 'MapleStory ' str ..= 'World!' print(str) -- Output : Hello, MapleStory World! ``` ## 비트 시프트 할당 연산자 비트 시프트는 이진수 값을 왼쪽(`<<`) 또는 오른쪽(`>>`)으로 이동시키는 연산입니다. * **왼쪽 비트 시프트 할당 (`<<=`)**: 비트를 왼쪽으로 이동하고 오른쪽에 0 [original] | 문자열 이어 붙이기 할당 연산자(String concatenation assignment operator) `..=`는 문자열을 이어 붙인 결과를 할당합니다. ```lua local str = 'Hello, ' str ..= 'MapleStory ' str ..= 'World!' print(str) -- Output : -- Hello, MapleStory World! ``` #### 왼쪽 비트 시프트 할당 연산자 비트 시프트는 프로그래밍에서 사용되는 비트 연산자 중 하나로, 이진수 값을 왼쪽이나 오른쪽으로 이동시킵니다. 왼쪽 [chunk_id] | Guides:1071:1

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