← 목록

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

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

[task] | distill [title] | 비정상 거래 대응 가이드 [category] | Guides [rephrased] | # [Guides] 비정상 거래 대응 가이드 ## 개요 유료 상품 및 거래 시스템 운영 시, 플랫폼 운영정책 위반(비정상 거래)을 방지하여 크리에이터 수익 보호와 플레이어 피해를 예방하기 위한 가이드입니다. ## 비정상 거래의 기준 이용약관·운영정책 및 관련 법령에 따라 금지되는 행위입니다. 관리 조치 시 판매 수익 차감 또는 마이너스 수익 발생 가능. 1. **현금화 목적 거래**: 유료/무료 재화, 아이템 등을 현금 획득 목적으로 거래하거나 시도하는 행위 2. **현금 거래 보조**: 아이템 이동 등 현금 거래에 직접적으로 [original] | 월드가 성장하고 다수의 유료 상품이 추가되면 더욱 다양한 형태의 거래 및 결제 행위가 발생할 수 있으며 이러한 거래 행위가 올바르게 관리될 수 있도록 본 가이드를 마련하였습니다. 비정상 거래로 인한 피해로부터 크리에이터님의 콘텐츠를 보호할 수 있도록 안내드리는 가이드에 맞춰 사전 예방하시는 것을 권장해 드립니다. # 비정상 거래 대응의 필요성 크리에이터는 크리에이터가 제작한 월드에서 운영정책 위반 행위가 발생하지 않도록 플레이어 간의 거래 방식과 거래 시스템에 대해 긴밀한 관리가 필요합니다. * 플랫폼에서 금지하고 있는 비정상 [chunk_id] | Guides:1299:0

[task] | extract_knowledge [title] | mLua [category] | Guides [rephrased] | # mLua 스크립트 문법 ## 1. 개념 설명 mLua는 메이플스토리 월드(MSW) 메이커의 스크립트 엔트리를 표현하기 위한 전용 프로그래밍 언어입니다. 메이커 내장 편집기를 벗어나 외부 편집기에서 스크립트를 작성하려면 이 문법을 준수해야 합니다. mLua 스크립트는 `script` 블록으로 정의되며, 내부에는 프로퍼티(Property), 메서드(Method), 이벤트 핸들러(Event Handler)를 포함합니다. 멤버에 특정 동작(동기화, 실행 공간 지정 등)을 부여하기 위해 Attribute를 사용합니다. ## 2. A [original] | # 학습 과정 소개 메이플스토리 월드 메이커를 벗어나 외부 편집기에서 스크립트를 작성하기 위해서는 mLua 문법에 맞게 작성해야 합니다. mLua의 문법에 대해 알아봅시다. ##### 참고 가이드 [LocalWorkspace](/docs/?postId=1165) [ExtendedScriptFormat](/docs/?postId=1166) [mLua Extension](/docs?postId=1209) [공동 제작](/docs/?postId=670) # mLua MSW 메이커의 스크립트 엔트리를 표현하기 위한 프로그래밍 언어입니 [chunk_id] | Guides:1287:0

[task] | wikipedia [title] | mLua [category] | Guides [rephrased] | # mLua 어노테이션(Annotation) mLua 스크립트에서 어노테이션은 코드에 메타데이터를 추가하여 스크립트 편집기(스크립트 어시스트)의 기능을 활성화하거나, 개발자 간 코드 의도를 명확히 전달하기 위해 사용됩니다. 주요 어노테이션으로는 반환 타입을 지정하는 `Return Annotation`, 비권장 사항을 명시하는 `Deprecated Annotation`, 오버라이드를 방지하는 `Sealed Annotation`, 그리고 설명 텍스트를 제공하는 `Description Annotation`이 있습니다. ## Retur [original] | Return Annotation은 대상 함수의 반환 타입을 지정할 수 있습니다. 함수 정의문, 메소드 정의문에 사용할 수 있습니다. Return Annotation은 대상 함수의 반환 타입을 지정하여 스크립트 어시스트의 도움을 받을 수 있습니다. ```lua ---@return TYPE ``` **사용 예시** ```lua ---@return Entity local function TestFunction(testParamA, testParamB) return self.Entity end ``` ```lua ---@retu [chunk_id] | Guides:1287:3

[task] | diverse_qa [title] | mLua [category] | Guides [rephrased] | 질문: mLua는 어떤 목적을 위해 사용되는 프로그래밍 언어인가요? 답변: mLua는 MSW 메이커의 스크립트 엔트리를 표현하기 위한 프로그래밍 언어입니다. 질문: 외부 편집기에서 스크립트를 작성할 때 무엇을 준수해야 하나요? 답변: mLua 문법에 맞게 작성해야 합니다. 질문: 스크립트 정의문의 기본 문법은 무엇인가요? 답변: `script 타입이름` 으로 시작하고 `end` 로 끝나는 형식입니다. 질문: 스크립트가 다른 타입으로부터 상속받을 때 사용하는 키워드는 무엇이며, 문법은 어떻게 되나요? 답변: `extends` 키 [original] | # 학습 과정 소개 메이플스토리 월드 메이커를 벗어나 외부 편집기에서 스크립트를 작성하기 위해서는 mLua 문법에 맞게 작성해야 합니다. mLua의 문법에 대해 알아봅시다. ##### 참고 가이드 [LocalWorkspace](/docs/?postId=1165) [ExtendedScriptFormat](/docs/?postId=1166) [mLua Extension](/docs?postId=1209) [공동 제작](/docs/?postId=670) # mLua MSW 메이커의 스크립트 엔트리를 표현하기 위한 프로그래밍 언어입니 [chunk_id] | Guides:1287:0

[task] | diverse_qa [title] | mLua [category] | Guides [rephrased] | 질문: `@MaxLength` 어트리뷰트는 어떤 타입의 프로퍼티에 적용할 수 있나요? 답변: `@MaxLength` 어트리뷰트는 **string 타입의 프로퍼티**에만 적용할 수 있습니다. 질문: `@MaxLength(5)` 코드가 의미하는 바는 무엇인가요? 답변: 해당 코드(string 타입의 프로퍼티 `NewVlaue`)에 최대 길이 5자를 지정하는 어트리뷰션을 적용했다는 의미입니다. 질문: `@Component` 어트리뷰션의 매개 변수는 무엇이며, 적용 대상은 무엇인가요? 답변: 매개 변수는 **없으며**, 적용 대상은 * [original] | #### MaxLength Attribute MSW 메이커의 프로퍼티 에디터에 최대 길이를 지정합니다. 적용 대상은 **string 타입의 프로퍼티**입니다. * 매개 변수: **integer** ```lua @MaxLength(5) property string NewVlaue = "test" ``` #### Component Attribute 스크립트를 Component로 지정합니다. 적용 대상은 **스크립트**입니다. * 매개 변수: **없음** ```lua @Component script NewComponent e [chunk_id] | Guides:1287:2

[task] | diverse_qa [title] | mLua [category] | Guides [rephrased] | 질문: Return Annotation은 어떤 용도로 사용됩니까? 답변: Return Annotation은 대상 함수의 반환 타입을 지정하여 스크립트 어시스트의 도움을 받을 수 있도록 하는 데 사용됩니다. 질문: Return Annotation은 어떤 정의문에 사용할 수 있습니까? 답변: Return Annotation은 함수 정의문과 메소드 정의문에 사용할 수 있습니다. 질문: 다음 코드의 주석 `---@return Entity`는 무엇을 의미합니까? ```lua ---@return Entity local function Te [original] | Return Annotation은 대상 함수의 반환 타입을 지정할 수 있습니다. 함수 정의문, 메소드 정의문에 사용할 수 있습니다. Return Annotation은 대상 함수의 반환 타입을 지정하여 스크립트 어시스트의 도움을 받을 수 있습니다. ```lua ---@return TYPE ``` **사용 예시** ```lua ---@return Entity local function TestFunction(testParamA, testParamB) return self.Entity end ``` ```lua ---@retu [chunk_id] | Guides:1287:3

[task] | wikipedia [title] | mLua [category] | Guides [rephrased] | # mLua 어트리뷰트 및 어노테이션 mLua 언어에는 코드 구조를 정의하거나 메타데이터를 부여하기 위한 두 가지 주요 문법 요소인 어트리뷰트(Attribute)와 어노테이션(Annotation)이 존재한다. 어트리뷰트는 MSW 메이커의 프로퍼티 에디터 설정이나 스크립트의 특정 타입 지정에 사용되며, 어노테이션은 개발 시 타입 힌트를 제공하기 위해 코드에 추가되는 메타데이터이다. ## 어트리뷰트 (Attribute) 어트리뷰트는 `@` 기호로 시작하며, 특정 대상에 추가 정보를 제공한다. ### MaxLength Attrib [original] | #### MaxLength Attribute MSW 메이커의 프로퍼티 에디터에 최대 길이를 지정합니다. 적용 대상은 **string 타입의 프로퍼티**입니다. * 매개 변수: **integer** ```lua @MaxLength(5) property string NewVlaue = "test" ``` #### Component Attribute 스크립트를 Component로 지정합니다. 적용 대상은 **스크립트**입니다. * 매개 변수: **없음** ```lua @Component script NewComponent e [chunk_id] | Guides:1287:2

[task] | wikipedia [title] | mLua [category] | Guides [rephrased] | # mLua 속성(Attribute) mLua에서 제공하는 속성(Attribute)은 메소드, 이벤트 핸들러, 프로퍼티에 메타데이터를 부여하여 실행 환경, 에디터 표시 방식, 이벤트 소스 등을 제어합니다. 각 속성은 적용 대상과 허용되는 매개변수 유형이 다르며, 컴포넌트(Component)와 로직(Logic) 타입에서 사용할 수 있습니다. ## ExecSpace Attribute `ExecSpace` 속성은 메소드와 이벤트 핸들러의 실행 제어 공간(Execution Space)을 지정합니다. 적용 대상은 **메소드**와 **이 [original] | 메소드와 이벤트 핸들러의 실행제어 공간을 지정합니다. 파라미터는 string으로 지정된 문자열로만 사용이 가능합니다. 적용 대상은 **메소드, 이벤트 핸들러**입니다. 적용 가능 타입은 **Component, Logic**입니다. * 매개 변수: **string** ("Server", "Client", "ServerOnly", "ClientOnly", "Multicast") ```lua @ExecSpace("Client") @ExecSpace("Server") @ExecSpace("ServerOnly") @ExecSpace("C [chunk_id] | Guides:1287:1

[task] | wikipedia [title] | 비정상 거래 대응 가이드 [category] | Guides [rephrased] | # 비정상 거래 대응 가이드 메이플스토리 월드(MapleStory Worlds)의 성장과 다수의 유료 상품 도입에 따라 다양한 형태의 거래 및 결제 행위가 발생할 가능성이 높아짐에 따라, 본 가이드는 이러한 거래 행위의 올바른 관리를 위해 마련되었습니다. 본 가이드는 크리에이터가 자발적으로 사전 예방 조치를 취함으로써, 비정상 거래로 인한 피해로부터 자신의 콘텐츠를 보호하는 것을 목적으로 합니다. ## 비정상 거래 대응의 필요성 크리에이터는 자기가 제작한 월드 내에서 운영정책 위반 행위가 발생하지 않도록 플레이어 간 거래 방식 [original] | 월드가 성장하고 다수의 유료 상품이 추가되면 더욱 다양한 형태의 거래 및 결제 행위가 발생할 수 있으며 이러한 거래 행위가 올바르게 관리될 수 있도록 본 가이드를 마련하였습니다. 비정상 거래로 인한 피해로부터 크리에이터님의 콘텐츠를 보호할 수 있도록 안내드리는 가이드에 맞춰 사전 예방하시는 것을 권장해 드립니다. # 비정상 거래 대응의 필요성 크리에이터는 크리에이터가 제작한 월드에서 운영정책 위반 행위가 발생하지 않도록 플레이어 간의 거래 방식과 거래 시스템에 대해 긴밀한 관리가 필요합니다. * 플랫폼에서 금지하고 있는 비정상 [chunk_id] | Guides:1299:0

[task] | extract_knowledge [title] | mLua [category] | Guides [rephrased] | # mLua Annotation 사용법 mLua에서는 `---@` 접두어가 있는 Annotation을 사용하여 스크립트 구조에 메타데이터를 부여합니다. 이는 스크립트 어시스트(IDE 지원)의 정확도를 높이고, 코드의 상태(비권장, 봉인, 설명)를 명시적으로 관리하는 데 사용됩니다. ## 1. Return Annotation 함수나 메소드가 반환하는 값의 타입을 지정합니다. 이를 통해 스크립트 어시스트가 반환값에 맞는 자동완성 및 타입 검증을 제공합니다. * **적용 범위**: 함수 정의문, 메소드 정의문 * **구문* [original] | Return Annotation은 대상 함수의 반환 타입을 지정할 수 있습니다. 함수 정의문, 메소드 정의문에 사용할 수 있습니다. Return Annotation은 대상 함수의 반환 타입을 지정하여 스크립트 어시스트의 도움을 받을 수 있습니다. ```lua ---@return TYPE ``` **사용 예시** ```lua ---@return Entity local function TestFunction(testParamA, testParamB) return self.Entity end ``` ```lua ---@retu [chunk_id] | Guides:1287:3

[task] | distill [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3 최적화 가이드 ## 1. 타입 제약 및 mLua 사용법 `FastVector3`은 **Property 타입** 또는 **함수 매개변수**로 직접 지정할 수 없습니다. - **대체 타입**: `any` 또는 `table` - **mLua 권장**: `any` 타입과 함께 어노테이션(Annotation) 사용 ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewMethod [original] | `FastVector3`은 **프로퍼티 타입, 함수의 매개변수**로 지정할 수 없습니다. 그러므로 `FastVector3`을 타입이나 매개 변수로 사용할 때는 **any, table** 타입을 사용해야 합니다. 특히 **mLua**를 사용할 때는 **any** 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하기를 권장합니다. ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewM [chunk_id] | Guides:1300:1

[task] | knowledge_list [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | 제시된 문서 원문에 포함된 정보만을 바탕으로 핵심 사실을 추출하여 정리한 목록입니다. 1. `FastVector2`, `FastVector3`, `FastColor` 타입은 Lua Table로 구현되어 있으며, 기존의 `Vector2`, `Vector3`, `Color` 타입과 동일한 기능을 제공하지만 월드 부하 발생 시 최적화 목적으로 사용 가능합니다. 2. `FastVector3`은 `Vector3`의 모든 프로퍼티와 함수를 구현하고 있으며, `Vector3`으로의 자동 변환을 지원합니다. 3. `FastVector3`은 동기 [original] | # 학습 과정 소개 `FastVector3`을 사용하는 방법과 월드 최적화에 활용하는 방법에 대해 알아봅시다. # Fast 타입 `FastVector2`, `FastVector3`, `FastColor` 타입은 Lua Table로 작성되어 기존의 `Vector2`, `Vector3`, `Color`를 보완할 수 있습니다 .두 종류의 타입 모두 같은 기능을 제공하지만, Fast 접두사가 붙은 타입은 월드에 부하가 발생할 때 최적화 용도로 사용할 수 있습니다. # FastVector3 특징 FastVector3의 5가지 특징은 [chunk_id] | Guides:1300:0

[task] | diverse_qa [title] | 비정상 거래 대응 가이드 [category] | Guides [rephrased] | 질문: 본 가이드가 마련된 주된 목적은 무엇인가요? 답변: 월드가 성장하고 다수의 유료 상품이 추가됨에 따라 발생할 수 있는 다양한 형태의 거래 및 결제 행위가 올바르게 관리될 수 있도록 하며, 비정상 거래로 인한 피해로부터 크리에이터의 콘텐츠를 보호하기 위함입니다. 질문: 크리에이터가 월드 내에서 운영정책 위반 행위가 발생하지 않도록 관리해야 하는 주 대상은 무엇인가요? 답변: 플레이어 간의 거래 방식과 거래 시스템입니다. 질문: 플랫폼에서 금지하고 있는 비정상 거래의 기준에 따른 관리가 이루어지지 않을 경우 발생할 수 있는 [original] | 월드가 성장하고 다수의 유료 상품이 추가되면 더욱 다양한 형태의 거래 및 결제 행위가 발생할 수 있으며 이러한 거래 행위가 올바르게 관리될 수 있도록 본 가이드를 마련하였습니다. 비정상 거래로 인한 피해로부터 크리에이터님의 콘텐츠를 보호할 수 있도록 안내드리는 가이드에 맞춰 사전 예방하시는 것을 권장해 드립니다. # 비정상 거래 대응의 필요성 크리에이터는 크리에이터가 제작한 월드에서 운영정책 위반 행위가 발생하지 않도록 플레이어 간의 거래 방식과 거래 시스템에 대해 긴밀한 관리가 필요합니다. * 플랫폼에서 금지하고 있는 비정상 [chunk_id] | Guides:1299:0

[task] | knowledge_list [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | * `FastVector3` 타입은 mLua 스크립트에서 프로퍼티 타입 또는 함수의 매개변수 타입으로 직접 지정할 수 없으므로, 해당 위치에서는 반드시 `any` 또는 `table` 타입을 사용해야 합니다. * mLua 환경에서 `FastVector3`을 `any` 타입으로 사용할 때는 `---@type FastVector3` 또는 `---@param vt FastVector3`과 같은 어노테이션(Annotation)을 함께 사용하는 것이 권장됩니다. * `FastVector3` 객체는 메타테이블 조작을 통해 정적 프로퍼 [original] | `FastVector3`은 **프로퍼티 타입, 함수의 매개변수**로 지정할 수 없습니다. 그러므로 `FastVector3`을 타입이나 매개 변수로 사용할 때는 **any, table** 타입을 사용해야 합니다. 특히 **mLua**를 사용할 때는 **any** 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하기를 권장합니다. ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewM [chunk_id] | Guides:1300:1

[task] | distill [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3 개요 및 최적화 가이드 `FastVector3`은 Lua Table로 구현된 경량 타입으로, 기존 `Vector3`과 동일한 기능을 제공하지만 월드 부하가 클 때 최적화 목적으로 사용됩니다. ## 핵심 특징 및 주의사항 1. **구현 방식**: Lua Table 기반이라 `Vector3`보다 가볍고 유연합니다. 2. **호환성**: `Vector3`의 모든 프로퍼티/함수를 지원하며, `Vector3`으로 자동 변환됩니다. 3. **동기화 미지원**: **다른 공간 실행 함수(멀티캐스트 등)의 매개 [original] | # 학습 과정 소개 `FastVector3`을 사용하는 방법과 월드 최적화에 활용하는 방법에 대해 알아봅시다. # Fast 타입 `FastVector2`, `FastVector3`, `FastColor` 타입은 Lua Table로 작성되어 기존의 `Vector2`, `Vector3`, `Color`를 보완할 수 있습니다 .두 종류의 타입 모두 같은 기능을 제공하지만, Fast 접두사가 붙은 타입은 월드에 부하가 발생할 때 최적화 용도로 사용할 수 있습니다. # FastVector3 특징 FastVector3의 5가지 특징은 [chunk_id] | Guides:1300:0

[task] | knowledge_list [title] | 비정상 거래 대응 가이드 [category] | Guides [rephrased] | 제시된 원문은 메이플스토리 월드의 스크립트 언어(mLua)나 특정 API(메서드, 이벤트 핸들러 등)의 기술적 명세가 아니라, **크리에이터를 위한 운영 정책 및 콘텐츠 기획 가이드**입니다. 따라서 mLua 코드, API 매개변수, 반환 타입, 서버/클라이언트 실행 공간 제약 등의 기술적 사실은 원문에 존재하지 않습니다. 원문에 명시된 정보만 추출하여, '비정상 거래 대응 가이드'의 핵심 사실들을 독립적인 문장으로 정리하면 다음과 같습니다. 1. 본 가이드는 월드가 성장하고 유료 상품이 증가함에 따라 발생할 수 있는 다양한 형 [original] | 월드가 성장하고 다수의 유료 상품이 추가되면 더욱 다양한 형태의 거래 및 결제 행위가 발생할 수 있으며 이러한 거래 행위가 올바르게 관리될 수 있도록 본 가이드를 마련하였습니다. 비정상 거래로 인한 피해로부터 크리에이터님의 콘텐츠를 보호할 수 있도록 안내드리는 가이드에 맞춰 사전 예방하시는 것을 권장해 드립니다. # 비정상 거래 대응의 필요성 크리에이터는 크리에이터가 제작한 월드에서 운영정책 위반 행위가 발생하지 않도록 플레이어 간의 거래 방식과 거래 시스템에 대해 긴밀한 관리가 필요합니다. * 플랫폼에서 금지하고 있는 비정상 [chunk_id] | Guides:1299:0

[task] | knowledge_list [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | * `FastVector3` 객체는 인덱스 접근이 가능하며, 인덱스 1은 x, 2는 y, 3은 z 값을 각각 나타냅니다. * `FastVector3`에 대한 인덱스 접근은 키(x, y, z)를 이용한 접근보다 약간 더 빠른 성능을 보입니다. * 인덱스 접근은 키 접근보다 가독성이 낮으므로, 월드에 최대한의 최적화가 필요한 상황(예: `Normalize()` 함수 호출 빈도가 지나치게 높은 경우)에서만 사용을 권유합니다. * `FastVector3`의 메타테이블을 `getmetatable(FastVector3.zero) [original] | `FastVector3`은 인덱스를 이용해 접근할 수도 있습니다. 아래 표를 보면 인덱스를 이용한 접근이 키를 이용한 접근보다 약간 더 빠른 것을 알 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/17453667314987383595f55d84737a7cb12f62068050b.png{"width":"1080px"} "FastVector3Index") 인덱스를 이용해 `FastVector3`에 접근하는 예제는 아래와 같습니다. x는 1, y는 2, z는 3에 [chunk_id] | Guides:1300:3

[task] | wikipedia [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3을 활용한 월드 최적화 `FastVector3`은 mLua 스크립트 환경에서 성능 최적화를 위해 사용되는 타입입니다. 이 타입은 메모리 관리 방식에 특별한 제약이 있으므로, 이를 이해하고 올바르게 사용하는 것이 중요합니다. ## 타입 지정 및 매개변수 사용 제약 `FastVector3`은 프로퍼티(Property)의 타입이나 함수의 매개변수(Parameter)로 직접 지정할 수 없습니다. 따라서 `FastVector3`을 프로퍼티 또는 매개변수로 사용해야 하는 상황에서는 `any` 또는 `table` 타 [original] | `FastVector3`은 **프로퍼티 타입, 함수의 매개변수**로 지정할 수 없습니다. 그러므로 `FastVector3`을 타입이나 매개 변수로 사용할 때는 **any, table** 타입을 사용해야 합니다. 특히 **mLua**를 사용할 때는 **any** 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하기를 권장합니다. ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewM [chunk_id] | Guides:1300:1

[task] | distill [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | `FastVector3`는 인덱스(`[1]`, `[2]`, `[3]`)와 키(`.x`, `.y`, `.z`)로 접근할 수 있습니다. 인덱스 접근은 키 접근보다 미세하게 빠르지만 가독성이 낮으므로, `Normalize()` 등 호출 빈도가 높은 함수 최적화 시에만 권장합니다. ```lua local v = FastVector3(1, 2, 3) print(v.x, v.y, v.z) -- Output: 1 2 3 print(v[1], v[2], v[3]) -- Output: 1 2 3 ``` 인덱스 접근을 활용한 `Nor [original] | `FastVector3`은 인덱스를 이용해 접근할 수도 있습니다. 아래 표를 보면 인덱스를 이용한 접근이 키를 이용한 접근보다 약간 더 빠른 것을 알 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/17453667314987383595f55d84737a7cb12f62068050b.png{"width":"1080px"} "FastVector3Index") 인덱스를 이용해 `FastVector3`에 접근하는 예제는 아래와 같습니다. x는 1, y는 2, z는 3에 [chunk_id] | Guides:1300:3

[task] | wikipedia [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3을 활용한 월드 최적화 메이플스토리 월드(MapleStory Worlds)의 `FastVector3` 타입은 멤버 이름(x, y, z)을 사용하는 키 접근 방식과 함께, 정수 인덱스를 이용한 접근 방식을 지원합니다. 벤치마크 결과에 따르면, 인덱스 기반 접근은 키 기반 접근보다 처리 속도가 약간 더 빠릅니다. `FastVector3`의 각 성분은 특정 인덱스와 대응됩니다. 구체적으로 x 성분은 인덱스 1, y 성분은 2, z 성분은 3에 매핑됩니다. 아래 코드 예제는 이 대응 관계를 보여줍니다. ```l [original] | `FastVector3`은 인덱스를 이용해 접근할 수도 있습니다. 아래 표를 보면 인덱스를 이용한 접근이 키를 이용한 접근보다 약간 더 빠른 것을 알 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/17453667314987383595f55d84737a7cb12f62068050b.png{"width":"1080px"} "FastVector3Index") 인덱스를 이용해 `FastVector3`에 접근하는 예제는 아래와 같습니다. x는 1, y는 2, z는 3에 [chunk_id] | Guides:1300:3

[task] | diverse_qa [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | 질문: FastVector2, FastVector3, FastColor 타입은 무엇으로 구현되어 있나요? 답변: FastVector2, FastVector3, FastColor 타입은 Lua Table로 구현되어 있습니다. 질문: Fast 접두사가 붙은 타입의 주요 용도는 무엇인가요? 답변: Fast 접두사가 붙은 타입은 월드에 부하가 발생할 때 최적화 용도로 사용할 수 있습니다. 질문: FastVector3은 Vector3과 비교했을 때 구현 방식에서 어떤 차이가 있나요? 답변: FastVector3은 Lua Table로 구현 [original] | # 학습 과정 소개 `FastVector3`을 사용하는 방법과 월드 최적화에 활용하는 방법에 대해 알아봅시다. # Fast 타입 `FastVector2`, `FastVector3`, `FastColor` 타입은 Lua Table로 작성되어 기존의 `Vector2`, `Vector3`, `Color`를 보완할 수 있습니다 .두 종류의 타입 모두 같은 기능을 제공하지만, Fast 접두사가 붙은 타입은 월드에 부하가 발생할 때 최적화 용도로 사용할 수 있습니다. # FastVector3 특징 FastVector3의 5가지 특징은 [chunk_id] | Guides:1300:0

[task] | diverse_qa [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | 질문: FastVector3은 프로퍼티 타입이나 함수의 매개변수로 직접 지정할 수 있는가? 답변: 아니요, FastVector3은 프로퍼티 타입이나 함수의 매개변수로 지정할 수 없습니다. 질문: FastVector3을 타입이나 매개변수로 사용할 때 어떤 타입을 사용해야 하는가? 답변: any 또는 table 타입을 사용해야 합니다. 질문: mLua 환경에서 FastVector3을 매개변수로 사용할 때 권장되는 타입과 함께 사용하는 것은 무엇인가? 답변: any 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하는 것 [original] | `FastVector3`은 **프로퍼티 타입, 함수의 매개변수**로 지정할 수 없습니다. 그러므로 `FastVector3`을 타입이나 매개 변수로 사용할 때는 **any, table** 타입을 사용해야 합니다. 특히 **mLua**를 사용할 때는 **any** 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하기를 권장합니다. ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewM [chunk_id] | Guides:1300:1

[task] | extract_knowledge [title] | mLua [category] | Guides [rephrased] | # mLua 속성(Attribute) 사용법 mLua에서는 컴포넌트(Component)와 로직(Logic)의 메서드(Method), 이벤트 핸들러(Event Handler), 프로퍼티(Property)에 특정 동작이나 UI 표시 방식을 부여하기 위해 `@Attribute` 문법을 사용합니다. 이 절에서는 실행 공간 제어, 인스펙터 UI 편집, 이벤트 발송 객체 지정에 사용되는 주요 속성들을 설명합니다. ## 1. ExecSpace Attribute 메서드와 이벤트 핸들러가 실행되는 공간(서버, 클라이언트, 멀티캐스트 등)을 지 [original] | 메소드와 이벤트 핸들러의 실행제어 공간을 지정합니다. 파라미터는 string으로 지정된 문자열로만 사용이 가능합니다. 적용 대상은 **메소드, 이벤트 핸들러**입니다. 적용 가능 타입은 **Component, Logic**입니다. * 매개 변수: **string** ("Server", "Client", "ServerOnly", "ClientOnly", "Multicast") ```lua @ExecSpace("Client") @ExecSpace("Server") @ExecSpace("ServerOnly") @ExecSpace("C [chunk_id] | Guides:1287:1

[task] | knowledge_list [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | ```lua -- 핵심 사실 정리: FastVector3 활용 및 최적화 가이드 1. `FastVector3`은 값을 생성하거나 읽어올 때 참조 객체를 생성하지 않아, 참조 객체가 자동으로 생성·파괴되는 `Vector3` 대비 처리 시간과 메모리 사용량을 줄여 최적화에 유리하다. 2. `Vector3` 객체를 생성하거나 `TransformComponent.Position`과 같은 `Vector3` 타입 프로퍼티를 읽을 때 Lua 스크립트 사용을 위해 참조 객체가 자동으로 생성된다. 3. `FastVector3(0, 0, 0)` [original] | 최적화를 위해 `Vector3` 대신 `FastVector3`을 사용하는 이유는 값을 생성하거나, 읽어올 때 **참조 객체를 생성하지 않기 때문**입니다. `Vector3`의 경우 Lua 스크립트에서 사용하기 위해 참조 객체가 필요합니다. 메이플스토리 월드의 `Vector3` 객체를 사용하면 참조 객체가 자동으로 생성, 파괴됩니다. 그러나 이 과정에서 처리 시간이 길어지고 메모리 사용량이 증가해 최적화가 필요하게 됩니다. ```lua -- Position 값을 읽어올 때 참조 객체가 생성됨 local position = self [chunk_id] | Guides:1300:2

[task] | distill [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3을 활용한 월드 최적화 `Vector3`은 Lua 스크립트 접근 시 참조 객체를 생성/파괴하여 성능 저하와 메모리 증가를 유발합니다. 이를 방지하기 위해 참조 객체를 생성하지 않는 `FastVector3`을 사용합니다. ## 기본 사용법 및 주의사항 `FastVector3` 생성 및 네이티브 프로퍼티 대입 시 참조 객체가 생성되지 않습니다. ```lua -- 참조 객체 생성 없음 local pos = FastVector3(0, 0, 0) pos.x = 1 pos.y = 2 self.Entity.Tran [original] | 최적화를 위해 `Vector3` 대신 `FastVector3`을 사용하는 이유는 값을 생성하거나, 읽어올 때 **참조 객체를 생성하지 않기 때문**입니다. `Vector3`의 경우 Lua 스크립트에서 사용하기 위해 참조 객체가 필요합니다. 메이플스토리 월드의 `Vector3` 객체를 사용하면 참조 객체가 자동으로 생성, 파괴됩니다. 그러나 이 과정에서 처리 시간이 길어지고 메모리 사용량이 증가해 최적화가 필요하게 됩니다. ```lua -- Position 값을 읽어올 때 참조 객체가 생성됨 local position = self [chunk_id] | Guides:1300:2

[task] | distill [title] | 월드코인 정산 비율 [category] | Guides [rephrased] | # 월드코인 정산 비율 크리에이터 제작 콘텐츠(CGC) 상품 판매 수익은 아래 비율로 정산됩니다. **정산 구조** * **총 판매 금액 (100%)** * **판매 수수료 (30%)**: 스토어(Google, Apple) 결제 및 PG 수수료 등 자동 공제분. 플랫폼 추가 수수료 없음. * **정산 대상 수익 (70%)**: 판매 수수료 차감 후 잔여 금액. **정산 대상 수익(70%) 배분** * **Toben Studio Inc. (35%)**: 정산 대상 수익의 50%. 서버/DB/솔루션 유 [original] | # 학습 과정 소개 이번 과정에서는 크리에이터가 판매한 월드 상품과 아바타 상품(‘크리에이터 제작 콘텐츠’를 의미하며 이하 ‘CGC 상품’)이 어떻게 수익으로 전환되는지 알아봅시다. 메이플스토리 월드에서 CGC 상품을 판매하시면 일정한 정산 비율을 거쳐 크리에이터 수익으로 적립해 드립니다. 자세한 정산 비율은 아래 항목을 참고해 주세요. # 월드코인 정산 비율 메이플스토리 월드는 CGC 상품 판매 금액의 65%를 공제한 후, 35%를 USD로 크리에이터님께 정산해 드립니다. 자세한 정산 비율은 아래 그래프를 참고해 주세요. [chunk_id] | Guides:1302:0

[task] | extract_knowledge [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3 활용 및 최적화 `FastVector3`은 메모리 관리 효율을 높이기 위해 참조 객체 생성을 최소화하는 목적으로 사용됩니다. Lua에서 Native 타입에 접근할 때마다 참조 객체가 생성되며, 이 객체는 Lua Garbage Collector와 Native Garbage Collector를 통해 이중으로 정리됩니다. `FastVector3`을 효율적으로 사용하면 이러한 참조 객체 생성 빈도를 줄여 월드 성능을 최적화할 수 있습니다. ## 1. 타입 제한 및 어노테이션 사용 `FastVector3`은 m [original] | `FastVector3`은 **프로퍼티 타입, 함수의 매개변수**로 지정할 수 없습니다. 그러므로 `FastVector3`을 타입이나 매개 변수로 사용할 때는 **any, table** 타입을 사용해야 합니다. 특히 **mLua**를 사용할 때는 **any** 타입을 사용하고, 어노테이션(Annotation)을 함께 사용하기를 권장합니다. ```lua ---@type FastVector3 property any vt = FastVector3(0,0,0) ---@param vt FastVector3 method void NewM [chunk_id] | Guides:1300:1

[task] | distill [title] | 로컬화된 Entity [category] | Guides [rephrased] | # 로컬화된 Entity **로컬화된 Entity(Localized Entity)**는 클라이언트에서만 생성되는 엔티티입니다. Hierarchy 창에서 `Localized` 아이콘으로 표시됩니다. 기본 엔티티는 서버와 클라이언트 모두에서 생성되지만, 로컬화하면 서버 부담을 줄이고 동기화 통신을 최소화하여 효율성을 높일 수 있습니다. 꾸미기 요소나 데이터 저장이 불필요한 엔티티에 적합합니다. ## 유의 사항 1. **부모-자식 관계**: 부모 엔티티를 로컬화하면 자식 엔티티도 모두 로컬화됩니다. 2. **서버 함수 제한**: `[ [original] | # 학습 과정 소개 클라이언트에서만 생성되는 로컬화된 엔티티에 대해 알아봅시다. ##### 참고 가이드 [서버와 클라이언트](/docs?postId=207) [예시로 알아보는 서버 검증](/docs?postId=1084) [패킷 변조 대비하기](/docs?postId=1102) [Effective MSW 2](/docs/?postId=560) # 로컬화된 엔티티 **로컬화된 엔티티(Localized Entity)**란 클라이언트에서만 생성되는 엔티티를 의미합니다. Hierarchy 창에서는 ![[object Object]] [chunk_id] | Guides:1301:0

[task] | wikipedia [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | # FastVector3을 활용한 월드 최적화 ## 개요 `FastVector3`은 메이플스토리 월드(MapleStory Worlds)의 mLua 스크립트 환경에서 성능 최적화를 위해 설계된 벡터 타입입니다. 본 문서는 `FastVector3`의 구현 방식, 기존 `Vector3`과의 차이점, 그리고 월드 내 부하를 줄이기 위한 구체적인 활용 방법에 대해 설명합니다. ## Fast 타입의 정의와 특징 mLua 환경에서는 `FastVector2`, `FastVector3`, `FastColor`와 같은 Fast 접두사가 붙은 타입 [original] | # 학습 과정 소개 `FastVector3`을 사용하는 방법과 월드 최적화에 활용하는 방법에 대해 알아봅시다. # Fast 타입 `FastVector2`, `FastVector3`, `FastColor` 타입은 Lua Table로 작성되어 기존의 `Vector2`, `Vector3`, `Color`를 보완할 수 있습니다 .두 종류의 타입 모두 같은 기능을 제공하지만, Fast 접두사가 붙은 타입은 월드에 부하가 발생할 때 최적화 용도로 사용할 수 있습니다. # FastVector3 특징 FastVector3의 5가지 특징은 [chunk_id] | Guides:1300:0

[task] | diverse_qa [title] | FastVector3을 활용한 월드 최적화 [category] | Guides [rephrased] | 질문: `FastVector3`에서 인덱스를 이용한 접근이 키를 이용한 접근보다 얼마나 빠릅니까? 답변: 인덱스를 이용한 접근은 키를 이용한 접근보다 약간 더 빠릅니다. 질문: `FastVector3` 객체에서 인덱스 1, 2, 3은 각각 어떤 좌표 값을 나타냅니까? 답변: 인덱스 1은 x, 인덱스 2는 y, 인덱스 3은 z 좌표 값에 대응됩니다. 질문: 아래 코드를 실행했을 때 출력 결과는 무엇입니까? ```lua local v = FastVector3(1, 2, 3) print(v[1], v[2], v[3]) ``` 답변: [original] | `FastVector3`은 인덱스를 이용해 접근할 수도 있습니다. 아래 표를 보면 인덱스를 이용한 접근이 키를 이용한 접근보다 약간 더 빠른 것을 알 수 있습니다. ![[object Object]](https://mod-file.dn.nexoncdn.co.kr/bbs/17453667314987383595f55d84737a7cb12f62068050b.png{"width":"1080px"} "FastVector3Index") 인덱스를 이용해 `FastVector3`에 접근하는 예제는 아래와 같습니다. x는 1, y는 2, z는 3에 [chunk_id] | Guides:1300:3

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