[task] | knowledge_list [title] | UtilLogic [category] | Logics [rephrased] | ```lua -- 문서: [Logics] UtilLogic -- 아래는 제공된 문서 내용에 기반한 핵심 사실 목록입니다. ``` 1. `number ElapsedSeconds` 프로퍼티는 현재 월드가 초기화된 이후 흐른 시간을 초 단위(number)로 반환하며, 서버는 월드 생성 시점, 클라이언트는 접속 시점을 기준으로 계산됩니다. 2. `number ServerElapsedSeconds` 프로퍼티는 서버에서 월드가 생성된 시점 이후 흐른 시간을 초 단위(number)로 반환합니다. 3. `table<Vector2> Concave [original] | 다양한 유틸리티를 제공합니다. # Properties - **number ElapsedSeconds** 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. - **number ServerElapsedSeconds** 서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다. # Methods - **table<Vector2> ConcaveHull(table<Vector2> points, float concavit [chunk_id] | Logics:295:0
[task] | wikipedia [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic **UtilLogic**은 메이플스토리 월드 스크립트 언어 mLua에서 제공하는 유틸리티 로직 컴포넌트입니다. 이 컴포넌트는 문자열 처리, 데이터 형식 변환, 시간 조절 및 이벤트 관리 등 스크립트 개발에 필요한 기본적인 도구 함수들을 제공합니다. ## 시간 조절 `timeScale` 속성은 게임 내 시간 흐름의 배율을 제어합니다. `timeScale`의 값이 2이면 게임 시간이 두 배로 빠르게 흐르며, 0.5이면 두 배로 느리게 흐릅니다. 값이 0으로 설정되면 월드의 시간 흐름이 완전히 멈춥니다. ## [original] | 다. 예를 들어, timeSclae의 값이 2라면 게임 시간이 두 배 빠르게 흐르고, 값이 0.5라면 두 배 느리게 흐릅니다. 만약 값이 0이면 월드 시간이 멈춥니다. - **table<string> Split(string origin, string separator = "", boolean useSeparatorAsOne = true)** origin 문장을 separator를 기준으로 분할합니다. - **table StringToTable(string str)** string을 Table 형식으로 변환합니다. - **vo [chunk_id] | Logics:295:1
[task] | distill [title] | CollisionService [category] | Services [rephrased] | # [Services] CollisionService 충돌 관련 기능을 제공합니다. ## Methods * **`table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)`** `filterCollisionGroup`과 충돌하는 충돌 그룹들을 테이블로 반환합니다. * **`CollisionMapService GetMapServiceFor(Entity entity)`** `[Deprecated]` 더 이상 사용되지 않습니 [original] | 충돌 관련 기능을 제공합니다. # Methods - **table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)** filterCollisionGroup과 충돌하는 충돌 그룹들을 테이블로 얻어옵니다. - **CollisionMapService GetMapServiceFor(Entity entity) [Deprecated]** 더는 사용하지 않는 함수입니다. GetSimulator(Entity) 함수를 사용하세요. - **Collisi [chunk_id] | Services:297:0
[task] | knowledge_list [title] | UtilLogic [category] | Logics [rephrased] | ```lua -- 문서에 명시된 정보만 기반으로 핵심 사실 추출 ``` 1. `UtilLogic`의 `timeSclae` 프로퍼티 값이 2일 경우 게임 시간은 두 배 빠르게, 0.5일 경우 두 배 느리게, 0일 경우 월드 시간이 멈춥니다. 2. `Split` 메서드는 `string origin`과 `string separator` 매개변수를 받아 `table<string>` 타입으로 반환하며, 기본값은 `separator`가 빈 문자열(""), `useSeparatorAsOne`이 `true`입니다. 3. `StringToTabl [original] | 다. 예를 들어, timeSclae의 값이 2라면 게임 시간이 두 배 빠르게 흐르고, 값이 0.5라면 두 배 느리게 흐릅니다. 만약 값이 0이면 월드 시간이 멈춥니다. - **table<string> Split(string origin, string separator = "", boolean useSeparatorAsOne = true)** origin 문장을 separator를 기준으로 분할합니다. - **table StringToTable(string str)** string을 Table 형식으로 변환합니다. - **vo [chunk_id] | Logics:295:1
[task] | extract_knowledge [title] | UILogic [category] | Logics [rephrased] | # UILogic 컴포넌트 `UILogic`은 UI 관련 기능을 제공하는 스크립트 컴포넌트입니다. 주로 화면 좌표, UI 좌표, 월드(World) 좌표 간의 변환 및 UI 자식 요소 순서 관리에 사용됩니다. 모든 메서드는 클라이언트 환경에서만 실행됩니다. ## 1. 개념 설명 mLua에서 UI는 `UITransformComponent`를 통해 위치와 크기를 관리하며, 좌표계는 다음과 같이 구분됩니다. * **Screen 좌표**: 현재 렌더링되는 화면상의 픽셀 단위 좌표입니다. * **UI 좌표**: UI 요소들의 상 [original] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl [chunk_id] | Logics:294:0
[task] | extract_knowledge [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic 스크립트 `_UtilLogic`은 mLua 환경에서 제공되는 유틸리티 로직 스크립트입니다. 이 스크립트는 문자열 처리 및 난수 생성 등 공용 기능을 제공합니다. ## 개념 설명 * **StringToTable**: 문자열을 테이블 형태로 변환하는 기능을 제공합니다. * **RandomDouble**: 난수를 생성하는 기능을 제공합니다. 기본 제공 스크립트인 `PlayerAttack`에서 일정 확률로 크리티컬 공격을 발동시키기 위해 사용됩니다. ## API 사용법 ### 1. StringToTab [original] | able2 = _UtilLogic:StringToTable(tableToString) for i = 1, #table2 do log(table2[i]) end -- first -- second } ``` 기본 제공 스크립트인 PlayerAttack 스크립트는 RandomDouble() 함수를 사용해 일정 확률로 크리티컬 공격을 발동시킵니다. ```lua Method: boolean CalcCritical (Entity attacker, Entity defender, string attackInfo) { return [chunk_id] | Logics:295:3
[task] | extract_knowledge [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic 유틸리티 함수 `UtilLogic`은 문자열 조작, 테이블 변환, 환경 확인 및 이벤트 관리를 위한 기본 유틸리티 함수를 제공합니다. ## 1. 개념 설명 `UtilLogic`은 다음과 같은 기능을 제공합니다: * **문자열 처리:** 문자열 분할, 부분 문자열 추출, 앞뒤 공백/특정 문자 제거(Trim) * **형식 변환:** 문자열과 테이블 간의 상호 변환 * **시간 제어:** 월드 시간 흐름 속도 조절 (timeScale) * **환경 확인:** 현재 실행 환경이 서버인지 클라이언트인 [original] | 다. 예를 들어, timeSclae의 값이 2라면 게임 시간이 두 배 빠르게 흐르고, 값이 0.5라면 두 배 느리게 흐릅니다. 만약 값이 0이면 월드 시간이 멈춥니다. - **table<string> Split(string origin, string separator = "", boolean useSeparatorAsOne = true)** origin 문장을 separator를 기준으로 분할합니다. - **table StringToTable(string str)** string을 Table 형식으로 변환합니다. - **vo [chunk_id] | Logics:295:1
[task] | knowledge_list [title] | CollisionService [category] | Services [rephrased] | CollisionService는 충돌 관련 기능을 제공하는 서비스입니다. GetCollisionGroupsWith 메서드는 filterCollisionGroup 매개변수를 받아 filterCollisionGroup과 충돌하는 CollisionGroup 객체들의 테이블(table<CollisionGroup>)을 반환합니다. GetMapServiceFor 메서드는 Entity 매개변수를 받아 CollisionMapService를 반환하지만 Deprecated 상태이며, GetSimulator(Entity) 함수 사용을 권장합니다. Ge [original] | 충돌 관련 기능을 제공합니다. # Methods - **table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)** filterCollisionGroup과 충돌하는 충돌 그룹들을 테이블로 얻어옵니다. - **CollisionMapService GetMapServiceFor(Entity entity) [Deprecated]** 더는 사용하지 않는 함수입니다. GetSimulator(Entity) 함수를 사용하세요. - **Collisi [chunk_id] | Services:297:0
[task] | extract_knowledge [title] | UILogic [category] | Logics [rephrased] | # UILogic 스크립트 컴포넌트 `UILogic`은 화면 좌표와 월드 좌표, UI 좌표 간의 변환을 수행하는 서비스입니다. 이 절에서는 터치 입력을 받아 캐릭터를 텔레포트하거나 UI 엔티티의 위치를 변경하는 두 가지 시나리오에 대한 API 사용법을 다룹니다. ## 1. 개념 설명 mLua 환경에서 사용자의 터치 이벤트(`ScreenTouchEvent`)는 화면의 2D 픽셀 좌표(`TouchPoint`)를 전달합니다. 이 좌표는 직접적으로 게임 로직에 사용될 수 없으며, 목적지에 따라 변환이 필요합니다. 1. **월드 좌 [original] | 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { -- Parameters local TouchPoint = event.TouchPoint -------------------------------------------------------- local worldPosition = _UILogic:ScreenToWorldPosition( [chunk_id] | Logics:294:1
[task] | diverse_qa [title] | UtilLogic [category] | Logics [rephrased] | 질문: `UtilLogic` 컴포넌트에서 `ElapsedSeconds` 프로퍼티는 무엇을 반환합니까? 답변: 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. 질문: `ServerElapsedSeconds` 프로퍼티와 `ElapsedSeconds` 프로퍼티의 차이점은 무엇입니까? 답변: `ServerElapsedSeconds`는 서버에서 월드가 생성된 시점 이후 시간이 흐른 값인 반면, `ElapsedSeconds`는 서 [original] | 다양한 유틸리티를 제공합니다. # Properties - **number ElapsedSeconds** 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. - **number ServerElapsedSeconds** 서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다. # Methods - **table<Vector2> ConcaveHull(table<Vector2> points, float concavit [chunk_id] | Logics:295:0
[task] | wikipedia [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic `UtilLogic` 컴포넌트는 다양한 유틸리티 기능을 제공하는 스크립트 모듈입니다. 이 컴포넌트는 시간 측정, 기하학적 계산, 문자열 조작, 난수 생성 등 게임 개발에 필요한 여러 도구를 포함하고 있습니다. ## 속성 (Properties) **ElapsedSeconds** (`number`): 현재 월드가 초기화된 이후 경과한 시간을 초 단위로 반환합니다. 서버 환경에서는 월드가 생성된 시점부터, 클라이언트 환경에서는 클라이언트가 접속한 시점부터 시간이 측정됩니다. **ServerElapsedSeco [original] | 다양한 유틸리티를 제공합니다. # Properties - **number ElapsedSeconds** 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. - **number ServerElapsedSeconds** 서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다. # Methods - **table<Vector2> ConcaveHull(table<Vector2> points, float concavit [chunk_id] | Logics:295:0
[task] | diverse_qa [title] | UtilLogic [category] | Logics [rephrased] | 질문: `_UtilLogic:GetUTCNow()` 함수는 어떤 형식의 문자열을 반환하나요? 답변: `MM/dd/yyyy HH:mm:ss.fff` 형식의 문자열을 반환합니다. 질문: `_UtilLogic:RandomInteger()` 함수가 반환할 수 있는 정수 범위는 무엇인가요? 답변: 0부터 2147483646까지의 정수를 반환합니다. 질문: `_UtilLogic:RandomIntegerRange(1, 5)`를 호출했을 때 반환 값의 범위는 어떻게 되나요? 답변: 1부터 5 사이의 정수를 반환합니다. 질문: `_UtilLo [original] | # Examples 다음 예시 코드는 각 함수의 반환 값을 보여줍니다. ```lua Method: [client only] void OnBeginPlay () { local utc = _UtilLogic:GetUTCNow() log("GetUTCNow : " .. tostring(utc)) -- MM/dd/yyyy HH:mm:ss.fff local randomInteger = _UtilLogic:RandomInteger() log("RandomInteger [chunk_id] | Logics:295:2
[task] | diverse_qa [title] | UtilLogic [category] | Logics [rephrased] | 질문: `_UtilLogic:StringToTable` 함수의 반환 값은 어떤 데이터 타입으로 처리되는가? 답변: `table` 타입으로 처리되며, 반환된 테이블은 `table2` 변수에 저장되어 `#table2` 연산자로 크기를 구하고 인덱스로 접근할 수 있습니다. 질문: 아래 코드의 `for` 루프는 어떤 작업을 수행하는가? ```lua for i = 1, #table2 do log(table2[i]) end ``` 답변: `table2`의 요소 개수만큼 반복하며, 각 인덱스에 해당하는 값을 `log` 함수를 통해 출력 [original] | able2 = _UtilLogic:StringToTable(tableToString) for i = 1, #table2 do log(table2[i]) end -- first -- second } ``` 기본 제공 스크립트인 PlayerAttack 스크립트는 RandomDouble() 함수를 사용해 일정 확률로 크리티컬 공격을 발동시킵니다. ```lua Method: boolean CalcCritical (Entity attacker, Entity defender, string attackInfo) { return [chunk_id] | Logics:295:3
[task] | distill [title] | UtilLogic [category] | Logics [rephrased] | # [Logics] UtilLogic `_UtilLogic` 서비스는 날짜/시간, 랜덤, 문자열 처리, 테이블 변환 기능을 제공합니다. ## API 시그니처 및 동작 규칙 | 메서드 | 반환형 | 동작/규칙 | | :--- | :--- | :--- | | `GetUTCNow()` | `string` | 현재 UTC 시각을 `"MM/dd/yyyy HH:mm:ss.fff"` 형식으로 반환. | | `RandomInteger()` | `number` | `0` ~ `2147483646` 범위의 정수 랜덤. | | `RandomInt [original] | # Examples 다음 예시 코드는 각 함수의 반환 값을 보여줍니다. ```lua Method: [client only] void OnBeginPlay () { local utc = _UtilLogic:GetUTCNow() log("GetUTCNow : " .. tostring(utc)) -- MM/dd/yyyy HH:mm:ss.fff local randomInteger = _UtilLogic:RandomInteger() log("RandomInteger [chunk_id] | Logics:295:2
[task] | diverse_qa [title] | CollisionService [category] | Services [rephrased] | 질문: CollisionService는 어떤 기능을 제공하는 서비스인가요? 답변: 충돌 관련 기능을 제공합니다. 질문: `GetCollisionGroupsWith` 메서드의 반환 타입은 무엇이며, 어떤 값을 인수로 받나요? 답변: 반환 타입은 `table<CollisionGroup>`이며, `CollisionGroup filterCollisionGroup`을 인수로 받습니다. 질문: `GetCollisionGroupsWith` 메서드는 무엇을 반환합니까? 답변: `filterCollisionGroup`과 충돌하는 충돌 그룹들을 [original] | 충돌 관련 기능을 제공합니다. # Methods - **table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)** filterCollisionGroup과 충돌하는 충돌 그룹들을 테이블로 얻어옵니다. - **CollisionMapService GetMapServiceFor(Entity entity) [Deprecated]** 더는 사용하지 않는 함수입니다. GetSimulator(Entity) 함수를 사용하세요. - **Collisi [chunk_id] | Services:297:0
[task] | knowledge_list [title] | DataService [category] | Services [rephrased] | 1. `_DataService` 서비스는 데이터셋의 데이터를 읽어오는 기능을 제공합니다. 2. `_DataService`의 `GetCell(string name, int32 row, int32 col)` 메서드는 이름이 `name`인 데이터셋에서 `row` 번째 행, `col` 번째 열의 데이터를 `string` 타입으로 반환합니다. 3. `_DataService`의 `GetCell(string name, int32 row, string columnName)` 메서드는 이름이 `name`인 데이터셋에서 `row` 번째 행, `col [original] | 데이터셋의 데이터를 읽어오는 기능을 제공합니다. # Methods - **string GetCell(string name, int32 row, int32 col)** 이름이 name인 데이터셋에서 row 번째 행, col 번째 열 데이터를 읽어옵니다. - **string GetCell(string name, int32 row, string columnName)** 이름이 name인 데이터셋에서 row 번째 행 columnName열 데이터를 읽어옵니다. - **int32 GetRowCount(string name)** [chunk_id] | Services:298:0
[task] | knowledge_list [title] | UtilLogic [category] | Logics [rephrased] | 제시된 문서의 예시 코드와 주석에 포함된 정보만을 기반으로 `UtilLogic` 서비스의 핵심 사실을 추출하여 정리합니다. ```lua -- 문서에 명시된 함수들의 실행 공간 및 동작 확인 -- [client only] 컨텍스트에서 호출됨 ``` 1. `_UtilLogic:GetUTCNow()` 함수는 현재 UTC 시각을 "MM/dd/yyyy HH:mm:ss.fff" 형식의 문자열로 반환하며, 예시 코드에서는 `[client only]` 실행 공간에서 호출되었습니다. 2. `_UtilLogic:RandomInteger()` 함수 [original] | # Examples 다음 예시 코드는 각 함수의 반환 값을 보여줍니다. ```lua Method: [client only] void OnBeginPlay () { local utc = _UtilLogic:GetUTCNow() log("GetUTCNow : " .. tostring(utc)) -- MM/dd/yyyy HH:mm:ss.fff local randomInteger = _UtilLogic:RandomInteger() log("RandomInteger [chunk_id] | Logics:295:2
[task] | distill [title] | DataService [category] | Services [rephrased] | # [Services] DataService 데이터셋의 데이터를 읽어오는 기능을 제공합니다. ## Methods ### GetCell - `string GetCell(string name, int32 row, int32 col)` 이름이 `name`인 데이터셋에서 `row` 번째 행, `col` 번째 열 데이터를 읽어옵니다. - `string GetCell(string name, int32 row, string columnName)` 이름이 `name`인 데이터셋에서 `row` 번째 행, `columnName` 열 데이 [original] | 데이터셋의 데이터를 읽어오는 기능을 제공합니다. # Methods - **string GetCell(string name, int32 row, int32 col)** 이름이 name인 데이터셋에서 row 번째 행, col 번째 열 데이터를 읽어옵니다. - **string GetCell(string name, int32 row, string columnName)** 이름이 name인 데이터셋에서 row 번째 행 columnName열 데이터를 읽어옵니다. - **int32 GetRowCount(string name)** [chunk_id] | Services:298:0
[task] | distill [title] | BadgeService [category] | Services [rephrased] | # [Services] BadgeService ## Examples ### GetBadgeInfosAndWait 조건(배지 등급, 상태)에 해당하는 배지 정보를 페이지 단위로 검색합니다. 반환 객체 `BadgeInfoPages`는 결과 분할 처리를 지원합니다. ```lua Method: void SearchAvailableNormalRareBadges () { -- 노멀, 레어 등급이고 획득 가능 상태인 배지 검색 local pages = _BadgeService:GetBadgeInfosAndWait({BadgeGrade. [original] | # Examples #### GetBadgeInfosAndWait 조건에 해당하는 배지들을 검색할 수 있습니다. 이 함수가 리턴하는 BadgeInfoPages 타입의 객체는 검색된 결과가 많을 경우 결과를 페이지 단위로 나눠 구할 수 있게 해줍니다. ```lua Method: void SearchAvailableNormalRareBadges () { -- 노멀, 레어 등급이고 획득 가능 상태인 배지를 검색합니다. local pages = _BadgeService:GetBadgeInfosAndWait({BadgeGrade.N [chunk_id] | Services:299:1
[task] | wikipedia [title] | BadgeService [category] | Services [rephrased] | # BadgeService 예제 `BadgeService`의 `GetBadgeInfosAndWait` 메서드는 지정된 조건에 부합하는 배지 정보를 검색하는 기능을 제공합니다. 이 메서드가 반환하는 객체는 `BadgeInfoPages` 타입이며, 검색 결과가 대량으로 존재하는 경우 데이터를 페이지 단위로 나누어 순차적으로 조회할 수 있도록 지원합니다. 다음 코드 예제는 노멀(Normal) 및 레어(Rare) 등급 중 획득 가능 상태(`BadgeStatus.Ing`)에 있는 배지를 검색하여, 페이지 단위로 데이터를 가져온 후 각 배 [original] | # Examples #### GetBadgeInfosAndWait 조건에 해당하는 배지들을 검색할 수 있습니다. 이 함수가 리턴하는 BadgeInfoPages 타입의 객체는 검색된 결과가 많을 경우 결과를 페이지 단위로 나눠 구할 수 있게 해줍니다. ```lua Method: void SearchAvailableNormalRareBadges () { -- 노멀, 레어 등급이고 획득 가능 상태인 배지를 검색합니다. local pages = _BadgeService:GetBadgeInfosAndWait({BadgeGrade.N [chunk_id] | Services:299:1
[task] | knowledge_list [title] | BadgeService [category] | Services [rephrased] | 1. `BadgeService`의 `GetBadgeInfosAndWait` 메서드는 특정 등급과 상태 조건에 해당하는 배지 정보를 비동기적으로 검색합니다. 2. `GetBadgeInfosAndWait` 메서드의 첫 번째 매개변수는 검색 대상이 될 `BadgeGrade` 타입의 배열(예: `{BadgeGrade.Normal, BadgeGrade.Rare}`)이며, 두 번째 매개변수는 `BadgeStatus` 타입의 값(예: `BadgeStatus.Ing`)으로 전달됩니다. 3. `GetBadgeInfosAndWait` 메서드가 반환하 [original] | # Examples #### GetBadgeInfosAndWait 조건에 해당하는 배지들을 검색할 수 있습니다. 이 함수가 리턴하는 BadgeInfoPages 타입의 객체는 검색된 결과가 많을 경우 결과를 페이지 단위로 나눠 구할 수 있게 해줍니다. ```lua Method: void SearchAvailableNormalRareBadges () { -- 노멀, 레어 등급이고 획득 가능 상태인 배지를 검색합니다. local pages = _BadgeService:GetBadgeInfosAndWait({BadgeGrade.N [chunk_id] | Services:299:1
[task] | wikipedia [title] | CollisionService [category] | Services [rephrased] | # CollisionService CollisionService는 메이플스토리 월드 스크립트 환경에서 충돌(Collision) 관련 기능을 제공하는 서비스입니다. 이 서비스는 충돌 그룹 간의 관계 조회, 특정 엔티티나 맵에 대한 충돌 시뮬레이터 접근, 그리고 충돌 가능 여부 판별 등의 기능을 수행합니다. ## 메서드 CollisionService는 다음과 같은 고유 메서드를 제공합니다. `GetCollisionGroupsWith` 메서드는 `CollisionGroup` 타입의 `filterCollisionGroup`을 인자로 [original] | 충돌 관련 기능을 제공합니다. # Methods - **table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)** filterCollisionGroup과 충돌하는 충돌 그룹들을 테이블로 얻어옵니다. - **CollisionMapService GetMapServiceFor(Entity entity) [Deprecated]** 더는 사용하지 않는 함수입니다. GetSimulator(Entity) 함수를 사용하세요. - **Collisi [chunk_id] | Services:297:0
[task] | extract_knowledge [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic `UtilLogic` 컴포넌트는 시간 관리, 문자열 조작, 난수 생성, 지오메트리 계산 등 다양한 유틸리티 기능을 제공합니다. ## 1. 개념 설명 * **시간 관리**: 월드 초기화 이후 경과 시간(`ElapsedSeconds`)과 서버 생성 이후 경과 시간(`ServerElapsedSeconds`)을 제공합니다. 클라이언트에서는 시간 흐름 속도(`SetClientTimeScale`)를 조절할 수 있습니다. * **문자열 처리**: 문자열 포함 여부 확인, 삽입, 삭제, 교체, nil/빈 문자열 [original] | 다양한 유틸리티를 제공합니다. # Properties - **number ElapsedSeconds** 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. - **number ServerElapsedSeconds** 서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다. # Methods - **table<Vector2> ConcaveHull(table<Vector2> points, float concavit [chunk_id] | Logics:295:0
[task] | diverse_qa [title] | DataService [category] | Services [rephrased] | 질문: DataService의 주요 기능은 무엇인가요? 답변: 데이터셋의 데이터를 읽어오는 기능을 제공합니다. 질문: `GetCell(string name, int32 row, int32 col)` 메서드의 반환 타입은 무엇이며, 어떤 데이터를 읽어오나요? 답변: 반환 타입은 string이며, 이름이 name인 데이터셋에서 row 번째 행, col 번째 열 데이터를 읽어옵니다. 질문: 열 인덱스가 아닌 열 이름을 사용하여 데이터를 읽어오고 싶다면 어떤 메서드를 사용해야 하나요? 답변: `GetCell(string name, in [original] | 데이터셋의 데이터를 읽어오는 기능을 제공합니다. # Methods - **string GetCell(string name, int32 row, int32 col)** 이름이 name인 데이터셋에서 row 번째 행, col 번째 열 데이터를 읽어옵니다. - **string GetCell(string name, int32 row, string columnName)** 이름이 name인 데이터셋에서 row 번째 행 columnName열 데이터를 읽어옵니다. - **int32 GetRowCount(string name)** [chunk_id] | Services:298:0
[task] | distill [title] | DamageSkinService [category] | Services [rephrased] | ### [Services] DamageSkinService **이벤트 연결 및 발생** 특정 이벤트 발생 시 지정된 핸들러에 통지하거나, 이벤트를 직접 발생시킵니다. ```lua -- 이벤트 연결 (문자열 키 또는 타입 지정) EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler) EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler) -- 이벤트 연결 해제 boolean D [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:300:1
[task] | extract_knowledge [title] | CollisionService [category] | Services [rephrased] | # CollisionService `CollisionService`는 게임 내 객체 간의 충돌(Collision) 및 트리거(Trigger) 검출 기능을 제공하는 서비스입니다. 이 서비스를 통해 엔티티가 속한 맵의 충돌 시뮬레이터(`CollisionSimulator`)를 얻거나, 충돌 그룹 간의 충돌 여부를 확인하고, 특정 범위 내의 충돌 객체를 조회할 수 있습니다. ## API 사용법 ### 주요 메서드 * **`GetSimulator(Entity entity)` / `GetSimulator(string mapName) [original] | 충돌 관련 기능을 제공합니다. # Methods - **table<CollisionGroup> GetCollisionGroupsWith(CollisionGroup filterCollisionGroup)** filterCollisionGroup과 충돌하는 충돌 그룹들을 테이블로 얻어옵니다. - **CollisionMapService GetMapServiceFor(Entity entity) [Deprecated]** 더는 사용하지 않는 함수입니다. GetSimulator(Entity) 함수를 사용하세요. - **Collisi [chunk_id] | Services:297:0
[task] | distill [title] | BadgeService [category] | Services [rephrased] | # BadgeService 유저 배지 지급 및 정보 조회를 담당하는 서비스입니다. ## Methods - **boolean AwardBadgeAndWait(string userId, string badgeId) [ServerOnly] [Yield]** 유저에게 배지를 지급하고 성공 여부를 반환합니다. 실행 중 스크립트 중단(Yield). 메이커 환경에서는 지급 불가 상태의 배지도 테스트용 지급이 가능합니다. - **BadgeInfo GetBadgeInfoAndWait(string badgeId) [Yield]** 배지 [original] | 유저가 배지를 획득할 수 있게 하거나 배지 정보를 조회하는 기능을 제공합니다. # Methods - **boolean AwardBadgeAndWait(string userId, string badgeId) [ServerOnly] [Yield]** 유저에게 배지를 지급하고 지급 성공 여부를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. 메이커 환경에서는 지급 받을 수 없는 상태의 배지도 테스트를 위해 지급 받을 수 있습니다. - **BadgeInfo GetBadgeInfoAndWait(string badgeId) [Y [chunk_id] | Services:299:0
[task] | diverse_qa [title] | BadgeService [category] | Services [rephrased] | 질문: BadgeService는 어떤 기능을 제공하는 서비스인가요? 답변: 유저가 배지를 획득할 수 있게 하거나 배지 정보를 조회하는 기능을 제공합니다. 질문: `AwardBadgeAndWait` 메서드의 실행 공간과 동작 특징은 무엇인가요? 답변: `[ServerOnly]` 영역에서 실행되며, `[Yield]` 속성을 가지고 있어 수행하는 동안 스크립트 실행을 중단합니다. 질문: 메이커 환경에서 `AwardBadgeAndWait`를 사용하면 어떤 특별한 점이 있나요? 답변: 지급받을 수 없는 상태의 배지도 테스트를 위해 지급받 [original] | 유저가 배지를 획득할 수 있게 하거나 배지 정보를 조회하는 기능을 제공합니다. # Methods - **boolean AwardBadgeAndWait(string userId, string badgeId) [ServerOnly] [Yield]** 유저에게 배지를 지급하고 지급 성공 여부를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. 메이커 환경에서는 지급 받을 수 없는 상태의 배지도 테스트를 위해 지급 받을 수 있습니다. - **BadgeInfo GetBadgeInfoAndWait(string badgeId) [Y [chunk_id] | Services:299:0
[task] | wikipedia [title] | DataService [category] | Services [rephrased] | # DataService **DataService**는 미리 정의된 데이터셋의 데이터를 읽어오는 기능을 제공하는 서비스입니다. 이 서비스는 행과 열을 지정하여 특정 셀의 값을 조회하거나, 데이터셋 전체를 객체 형태로 가져와 반복적으로 접근할 수 있습니다. ## 메서드 ### 데이터 조회 관련 메서드 * **`string GetCell(string name, int32 row, int32 col)`** 이름이 `name`인 데이터셋에서 `row` 번째 행과 `col` 번째 열에 해당하는 데이터를 문자열(`string [original] | 데이터셋의 데이터를 읽어오는 기능을 제공합니다. # Methods - **string GetCell(string name, int32 row, int32 col)** 이름이 name인 데이터셋에서 row 번째 행, col 번째 열 데이터를 읽어옵니다. - **string GetCell(string name, int32 row, string columnName)** 이름이 name인 데이터셋에서 row 번째 행 columnName열 데이터를 읽어옵니다. - **int32 GetRowCount(string name)** [chunk_id] | Services:298:0
[task] | knowledge_list [title] | DamageSkinService [category] | Services [rephrased] | * `DamageSkinService`의 `ConnectEvent(string key, IScriptFunction eventHandler)` 메서드는 문자열 형태의 이벤트 이름(`key`)을 지정하여 해당 이벤트가 발생 시 `eventHandler`에 `event` 매개 변수를 전달하도록 연결하며, `EventHandlerBase` 타입을 반환합니다. * `DamageSkinService`의 `ConnectEvent(Type eventType, IScriptFunction eventHandler)` 메서드는 타입 객체(`e [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:300:1