[task] | extract_knowledge [title] | MatchmakingService [category] | Services [rephrased] | # MatchmakingService 이벤트 처리 ## 개념 설명 `MatchmakingService`는 매칭 관련 이벤트를 수신하거나 발생시키기 위해 사용됩니다. 이 서비스는 특정 이름 또는 타입의 이벤트 발생 시 지정된 핸들러 함수를 호출하도록 연결(`Connect`)하거나, 기존 연결을 해제(`Disconnect`)하며, 직접 이벤트를 발생(`Send`)시킬 수 있습니다. ## API 사용법 ### 1. 이벤트 연결 (Connect) 이벤트 발생 시 통지받기 위해 핸들러를 등록합니다. 두 가지 오버로드가 제공되며, 핸들러 [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:1397:2
[task] | diverse_qa [title] | ScrollBarMovementType [category] | Enums [rephrased] | 질문: `ScrollBarMovementType` 열거형은 어떤 용도로 사용됩니까? 답변: 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정하기 위해 사용됩니다. 질문: `Elastic` 값의 정수 값은 얼마이며, 그 동작 방식은 무엇입니까? 답변: `Elastic`의 정수 값은 1이며, 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아오는 동작을 수행합니다. 질문: `Clamped` 값의 정수 값은 얼마이며, 그 동작 방식은 무엇입니까? 답변: `Clamped`의 정수 값은 2이며, 스크롤 바가 경계를 넘어가지 않 [original] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr [chunk_id] | Enums:1407:0
[task] | knowledge_list [title] | Logic [category] | Logics [rephrased] | 제시된 문서에 포함된 `Logic` 클래스의 핵심 사실은 다음과 같습니다. 1. `Logic` 클래스는 모든 로직의 부모 로직이며, 로직의 기본 기능들을 제공합니다. 2. `ConnectEvent(string key, IScriptFunction eventHandler)` 메서드는 매개변수 `key`로 지정된 이름의 이벤트가 발생했을 때 `eventHandler`로 통지받도록 연결하며, `EventHandlerBase` 타입을 반환합니다. 3. `ConnectEvent(Type eventType, IScriptFunction ev [original] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 [chunk_id] | Logics:293:0
[task] | wikipedia [title] | MatchmakingService [category] | Services [rephrased] | # MatchmakingService **MatchmakingService**는 메이플스토리 월드에서 리더보드(Leaderboard) 점수 관리 및 매칭(Matchmaking) 기능을 제공하기 위한 서버 전용 서비스입니다. 해당 서비스의 메서드들은 모두 `[ServerOnly]` 및 `[ReleaseOnly]` 속성을 가지며, 네트워크 요청을 처리하는 과정에서 스크립트 실행을 일시 중단하는 `[Yield]` 특성을 갖는 메서드들이 다수를 차지합니다. ## 메서드 ### GetRankInfosAndWait 특정 범위 내의 순위 [original] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn [chunk_id] | Services:1397:1
[task] | extract_knowledge [title] | ScrollBarMovementType [category] | Enums [rephrased] | # ScrollBarMovementType `ScrollBarMovementType`은 스크롤 바가 허용된 경계를 벗어날 때의 동작 방식을 지정하는 열거형(enum)입니다. ## 개념 설명 스크롤 UI 컴포넌트에서 사용자의 스크롤 입력으로 인해 내용이 표시 가능한 범위를 넘어서려 할 때, 시스템은 이 열거형의 값에 따라 특정 물리적 또는 논리적 반응을 수행합니다. * **Elastic (값: 1)**: 경계를 일시적으로 벗어나는 것을 허용하지만, 사용자가 입력을 멈추면 스크롤 바가 원래 위치로 탄성적으로 되돌아오는 동작입 [original] | 스크롤 바가 경계를 벗어날 때의 동작 방식을 지정합니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Elastic | 1 | 경계를 벗어나면 스크롤 바가 당겨졌다가 원래 위치로 튕겨 돌아옵니다. | | Clamped | 2 | 스크롤 바가 경계에를 넘어가지 않고 멈춥니다. | # Methods - **ScrollBarMovementType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **ScrollBarMovementType CastFr [chunk_id] | Enums:1407:0
[task] | knowledge_list [title] | MatchmakingService [category] | Services [rephrased] | 제시된 문서에는 `MatchmakingService`의 이벤트 연결 및 발생 관련 API 5개에 대한 정보만 포함되어 있습니다. 해당 정보에 기반하여 핵심 사실을 다음과 같이 정리합니다. ```lua -- 참고: 아래는 문서에 명시된 API 시그니처를 mLua 스타일로 해석한 예시이며, -- 실제 mLua 구현 시 서비스 접근은 _MatchmakingService 형태로 이루어집니다. local MatchmakingService = _MatchmakingService -- 1. string key 기반 이벤트 연결 local h [original] | - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지 [chunk_id] | Services:1397:2
[task] | wikipedia [title] | Logic [category] | Logics [rephrased] | **Logic** `Logic`은 모든 로직 스크립트의 최상위 부모 클래스로서, 로직 컴포넌트에서 공통적으로 사용할 수 있는 기본 기능을 제공합니다. 이 클래스를 통해 개발자는 이벤트 연결 및 해제, 현재 실행 환경(클라이언트 또는 서버) 확인, 그리고 이벤트 발생 등의 작업을 수행할 수 있습니다. ### 이벤트 관리 `Logic` 클래스는 특정 이벤트가 발생했을 때 지정된 함수를 호출하도록 연결하거나, 기존 연결을 해제하는 메서드를 제공합니다. 이벤트를 연결하기 위해서는 `ConnectEvent` 메서드를 사용합니다. 이 [original] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 [chunk_id] | Logics:293:0
[task] | diverse_qa [title] | Logic [category] | Logics [rephrased] | 질문: Logic 클래스는 어떤 역할을 합니까? 답변: Logic 클래스는 모든 로직의 부모 로직이며, 로직의 기본 기능들을 제공합니다. 질문: ConnectEvent 메서드를 사용하여 이벤트를 연결할 때, 핸들러는 어떤 매개 변수를 전달받습니까? 답변: 핸들러는 event 매개 변수를 전달받습니다. 질문: string 타입의 key를 사용하여 이벤트를 연결하는 ConnectEvent 메서드의 반환 타입은 무엇입니까? 답변: EventHandlerBase 입니다. 질문: Type 타입의 eventType을 사용하여 이벤트를 연 [original] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 [chunk_id] | Logics:293:0
[task] | knowledge_list [title] | MatchmakingService [category] | Services [rephrased] | ```lua -- 문서에서 추출한 핵심 사실 목록 local facts = { "GetRankInfosAndWait 메서드는 string leaderboardId, string seasonId, int32 startRank, int32 count 매개변수를 수신하며, LeaderboardResultCode와 table<LeaderboardRankInfo>를 반환하는 [ServerOnly] [ReleaseOnly] [Yield] 함수입니다.", "GetRankInfosAndWait 메서드에서 startRank는 조회를 [original] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn [chunk_id] | Services:1397:1
[task] | distill [title] | UILogic [category] | Logics [rephrased] | # UILogic UI 좌표 변환 및 계층 순서 조작 기능을 제공합니다. ## Properties - `int32 ScreenHeight [ReadOnly]`: 현재 화면 높이. - `int32 ScreenWidth [ReadOnly]`: 현재 화면 너비. ## Methods 모든 메서드는 `[ClientOnly]` 실행 공간에서 동작합니다. | 메서드 시그니처 | 설명 | | :--- | :--- | | `int32 GetSiblingIndex(UITransformComponent target)` | 같은 부모를 가진 자식 [original] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl [chunk_id] | Logics:294:0
[task] | distill [title] | UILogic [category] | Logics [rephrased] | # [Logics] UILogic 화면 좌표와 UI 좌표를 변환하는 로직입니다. ## 1. 화면 터치 위치로 캐릭터 텔레포트 `ScreenToWorldPosition`을 사용해 화면 터치 좌표를 월드 좌표로 변환 후, `_TeleportService`로 이동합니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { local TouchPoint = event.TouchPoint local worldPo [original] | 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { -- Parameters local TouchPoint = event.TouchPoint -------------------------------------------------------- local worldPosition = _UILogic:ScreenToWorldPosition( [chunk_id] | Logics:294:1
[task] | knowledge_list [title] | MatchmakingService [category] | Services [rephrased] | ```lua -- 문서에 명시된 MatchmakingService 메서드 핵심 사실 목록 -- 각 항목은 독립적으로 이해되는 완결된 문장입니다. 1. `MatchmakingService:CancelMatchingAndWait(string userProfileCode)`는 서버 전용([ServerOnly]), 릴리스 환경 전용([ReleaseOnly]), 그리고 스크립트 실행을 중단시키는(Yield) 메서드로, 매칭을 취소한 후 작업 완료 시 결과 코드(`MatchmakingResultCode`)를 반환합니다. 2. `Matchm [original] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na [chunk_id] | Services:1397:0
[task] | diverse_qa [title] | MatchmakingService [category] | Services [rephrased] | 질문: `GetScoreInfoAndWait` 메서드의 실행 공간과 빌드 환경은 무엇인가요? 답변: `GetScoreInfoAndWait` 메서드는 `[ServerOnly]` 및 `[ReleaseOnly]` 환경에서 실행됩니다. 질문: `GetRankInfoAndWait` 메서드에서 한 번에 조회할 수 있는 최대 순위 개수는 몇 개인가요? 답변: 한 번에 최대 100개까지 조회할 수 있습니다. 질문: `RequestMatchingAndWait` 메서드에서 매칭이 이루어지는 조건은 무엇인가요? 답변: 동일한 `queueName`을 [original] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn [chunk_id] | Services:1397:1
[task] | extract_knowledge [title] | Logic [category] | Logics [rephrased] | # Logic 컴포넌트 `Logic`은 모든 로직의 부모 로직으로, 로직의 기본 기능을 제공합니다. ## 개념 설명 `Logic` 컴포넌트는 이벤트 기반 통신을 위한 API를 제공합니다. `SendEvent` 메서드를 통해 이벤트를 발생시키고, `ConnectEvent` 메서드를 통해 해당 이벤트를 수신하는 핸들러를 등록할 수 있습니다. 또한 현재 스크립트가 서버还是在 클라이언트에서 실행 중인지 확인하는 메서드도 제공합니다. ## API 사용법 ### ConnectEvent 이벤트를 연결합니다. 이 서비스에서 지정된 이름이 [original] | 모든 로직의 부모 로직입니다. 로직의 기본 기능들을 제공합니다. # Methods - **EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)** 이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다. - **EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)** 이벤트를 [chunk_id] | Logics:293:0
[task] | knowledge_list [title] | UILogic [category] | Logics [rephrased] | * `_UILogic` 서비스의 `ScreenToWorldPosition(TouchPoint)` 메서드는 스크린 터치 좌표(`ScreenTouchEvent`의 `TouchPoint` 매개변수)를 월드 좌표로 변환하여 반환하며, 반환 값은 `Vector3` 타입의 `x` 및 `y` 성분을 가집니다. * `_UserService` 서비스의 `LocalPlayer` 프로퍼티는 현재 로컬 플레이어 엔티티를 반환하며, 이 엔티티의 `CurrentMapName` 프로퍼티를 통해 현재 맵 이름 문자열을 조회할 수 있습니다. * `_T [original] | 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { -- Parameters local TouchPoint = event.TouchPoint -------------------------------------------------------- local worldPosition = _UILogic:ScreenToWorldPosition( [chunk_id] | Logics:294:1
[task] | extract_knowledge [title] | MatchmakingService [category] | Services [rephrased] | # MatchmakingService API ## 개념 설명 `MatchmakingService`는 서버에서 리더보드 점수 관리 및 매칭(대전) 기능을 처리하는 서비스입니다. 이 서비스의 메서드는 모두 `[ServerOnly]`로 제한되어 있으며, 네트워크 요청을 수반하는 대부분의 메서드는 `[Yield]` 속성을 가져 호출 시 스크립트 실행이 일시 중단됩니다. 주요 기능은 다음과 같습니다. 1. **리더보드 관리**: 특정 범위 내 순위 조회, 유저 점수 조회, 시즌 정보 조회, 유저 점수 등록 및 순위 갱신. 2. **매칭 [original] | d, string seasonId, int32 startRank, int32 count) [ServerOnly] [ReleaseOnly] [Yield]** 특정 범위 내의 순위 정보를 모두 얻어옵니다. startRank는 조회를 시작할 순위, count는 조회할 순위의 개수입니다. 한 번에 최대 100개까지 조회할 수 있습니다. 작업이 완료되면 결과 코드와 순위 정보들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardScoreInfo GetScoreIn [chunk_id] | Services:1397:1
[task] | diverse_qa [title] | UILogic [category] | Logics [rephrased] | 질문: UILogic 컴포넌트는 어떤 기능을 제공하는가? 답변: UI 관련 기능을 제공합니다. 질문: UILogic의 ScreenHeight 속성은 어떤 특징을 가지고 있는가? 답변: int32 타입으로 현재 화면의 높이를 나타내며, [ReadOnly] 속성을 가지고 있습니다. 질문: UILogic의 ScreenWidth 속성은 무엇을 나타내는가? 답변: int32 타입으로 현재 화면의 너비를 나타냅니다. 질문: GetSiblingIndex 메서드는 어떤 실행 공간에서 사용 가능한가? 답변: ClientOnly 공간에서 사용 [original] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl [chunk_id] | Logics:294:0
[task] | wikipedia [title] | MatchmakingService [category] | Services [rephrased] | # MatchmakingService **MatchmakingService**는 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공하는 서비스입니다. 이 서비스의 모든 메서드는 서버에서만 실행되며([ServerOnly]), 릴리스 빌드에서만 사용할 수 있습니다([ReleaseOnly]). 또한 모든 메서드는 비동기 작업을 수행하며, 작업이 완료될 때까지 스크립트 실행을 중단합니다([Yield]). ## 매치매이킹 기능 ### CancelMatchingAndWait 매칭을 취소합니다. 매칭 취소 작업이 완료되면 [original] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na [chunk_id] | Services:1397:0
[task] | diverse_qa [title] | UILogic [category] | Logics [rephrased] | 질문: 이 문서에 포함된 첫 번째 예제 코드의 주요 기능은 무엇인가요? 답변: 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 기능을 구현하는 예제입니다. 질문: 첫 번째 예제에서 화면 좌표를 월드 좌표로 변환하기 위해 `_UILogic` 컴포넌트의 어떤 메서드를 호출하나요? 답변: `ScreenToWorldPosition` 메서드를 호출합니다. 질문: 첫 번째 예제에서 현재 플레이어를 참조하기 위해 사용하는 서비스와 프로퍼티는 무엇인가요? 답변: `_UserService` 서비스의 `LocalPlayer` 프로퍼티를 사용합 [original] | 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { -- Parameters local TouchPoint = event.TouchPoint -------------------------------------------------------- local worldPosition = _UILogic:ScreenToWorldPosition( [chunk_id] | Logics:294:1
[task] | wikipedia [title] | UILogic [category] | Logics [rephrased] | # UILogic `UILogic` 컴포넌트는 화면 좌표와 월드 좌표, 또는 UI 좌표 간의 변환을 처리하는 서비스를 제공한다. 주로 화면 터치 이벤트의 좌표를 게임 월드 내 위치나 특정 UI 엔티티의 위치로 변환하여 사용할 때 적용된다. ## 화면 터치 위치로 캐릭터 텔레포트 사용자가 화면을 터치한 위치를 월드 좌표로 변환하여, 해당 위치에 로컬 플레이어를 텔레포트 시키는 동작을 구현할 수 있다. 이 과정은 `InputService`의 `HandleScreenTouchEvent` 이벤트 핸들러를 통해 시작된다. 이벤트에서 전 [original] | 터치한 화면 위치로 자신의 캐릭터를 텔레포트 시키는 예제입니다. ```lua Event Handler: [service: InputService] HandleScreenTouchEvent (ScreenTouchEvent event) { -- Parameters local TouchPoint = event.TouchPoint -------------------------------------------------------- local worldPosition = _UILogic:ScreenToWorldPosition( [chunk_id] | Logics:294:1
[task] | distill [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic ## 시간 제어 `timeScale` 값에 따라 게임 시간 흐름을 조절합니다. - `2`: 2배 빠르게, `0.5`: 2배 느리게, `0`: 시간 정지 ## 문자열 변환 및 조작 - `table<string> Split(string origin, string separator = "", boolean useSeparatorAsOne = true)`: `separator` 기준으로 문자열 분할 - `table StringToTable(string str)`: 문자열을 Table로 변환 - `void Strin [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] | UILogic [category] | Logics [rephrased] | [Logics] UILogic 컴포넌트는 UI 관련 기능을 제공하며, 모든 메서드는 [ClientOnly] 제약이 적용됩니다. **Properties** - `int32 ScreenHeight` [ReadOnly] 프로퍼티는 현재 화면의 높이를 반환합니다. - `int32 ScreenWidth` [ReadOnly] 프로퍼티는 현재 화면의 너비를 반환합니다. **Methods** - `int32 GetSiblingIndex(UITransformComponent target)` [ClientOnly] 메서드는 부모가 같은 자식 Tr [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] | MatchmakingService [category] | Services [rephrased] | # MatchmakingService: 매치메이킹 및 리더보드 관리 `MatchmakingService`는 1:1 매치메이킹 프로세스의 취소, 매칭된 사용자 정보 조회, 그리고 리더보드의 생성·삭제·점수·순위 관리 기능을 제공하는 서버 전용 서비스입니다. 모든 메서드는 비동기 작업을 수행하며, 완료 시점까지 스크립트 실행을 중단(Yield)합니다. ## API 사용법 모든 메서드는 `[ServerOnly]` 태그를 가지며, 클라이언트에서 호출할 수 없습니다. ### 매치메이킹 관련 * **CancelMatchingAnd [original] | 1:1 매치매이킹과 승패 결과를 관리하는 리더보드 관련 기능을 제공합니다. # Methods - **MatchmakingResultCode CancelMatchingAndWait(string userProfileCode) [ServerOnly] [ReleaseOnly] [Yield]** 매칭을 취소합니다. 작업이 완료되면 결과 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **LeaderboardResultCode, LeaderboardInfo CreateLeaderboardAndWait(string na [chunk_id] | Services:1397:0
[task] | distill [title] | UtilLogic [category] | Logics [rephrased] | **UtilLogic** 기본 제공 스크립트 `PlayerAttack`에서 `RandomDouble()`을 활용해 확률 기반 크리티컬 공격을 구현하는 예제입니다. ```lua Method: boolean CalcCritical (Entity attacker, Entity defender, string attackInfo) { return _UtilLogic:RandomDouble() < 0.3 } ``` [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] | # UtilLogic 다양한 유틸리티 함수를 제공합니다. ## Properties - `number ElapsedSeconds`: 월드 초기화 이후 경과 시간(초). 서버는 월드 생성 시점, 클라이언트는 접속 시점 기준. - `number ServerElapsedSeconds`: 서버 월드 생성 시점 이후 경과 시간(초). ## Methods ### Geometry - `table<Vector2> ConcaveHull(table<Vector2> points, float concavity, float samplingWeigh [original] | 다양한 유틸리티를 제공합니다. # Properties - **number ElapsedSeconds** 현재 월드가 초기화된 이후 흐른 시간을 초 단위로 반환합니다. 서버는 월드가 생성된 시점 이후, 클라이언트는 접속한 시점 이후를 기준으로 시간이 흐른 값입니다. - **number ServerElapsedSeconds** 서버에서 월드가 생성된 시점 이후 시간이 흐른 값입니다. # Methods - **table<Vector2> ConcaveHull(table<Vector2> points, float concavit [chunk_id] | Logics:295:0
[task] | wikipedia [title] | UILogic [category] | Logics [rephrased] | `UILogic` 컴포넌트는 UI 관련 기능을 제공하며, 화면 크기와 좌표 변환 및 계층 구조 조작에 필요한 속성과 메서드를 포함합니다. 이 컴포넌트는 `Logic` 기반 클래스로부터 이벤트 연결 및 실행 환경 확인 기능을 상속받습니다. ### 속성 (Properties) `UILogic`에는 현재 화면의 크기를 읽기 전용으로 제공하는 두 개의 속성이 있습니다. `ScreenWidth`는 `int32` 타입으로 현재 화면의 너비를 나타내며, `ScreenHeight`는 `int32` 타입으로 현재 화면의 높이를 나타냅니다. 두 [original] | UI 관련 기능을 제공합니다. # Properties - **int32 ScreenHeight [ReadOnly]** 현재 화면의 높이를 나타냅니다. - **int32 ScreenWidth [ReadOnly]** 현재 화면의 너비를 나타냅니다. # Methods - **int32 GetSiblingIndex(UITransformComponent target) [ClientOnly]** 플레이 시 부모가 같은 자식 TransformComponent들의 순서를 조회합니다. - **Vector2 LocalUIToWorl [chunk_id] | Logics:294:0
[task] | knowledge_list [title] | UtilLogic [category] | Logics [rephrased] | 제공된 문서에 포함된 정보만 바탕으로 핵심 사실을 추출한 목록입니다. 1. `_UtilLogic` 서비스의 `StringToTable` 메서드를 호출하여 문자열을 테이블로 변환할 수 있으며, 변환 결과는 테이블 타입을 반환합니다. 2. 변환된 테이블(`table2`)의 인덱스 1부터 마지막 요소까지 반복문을 통해 접근하여 각 요소를 `log` 함수로 출력할 수 있습니다. 3. 기본 제공 스크립트인 `PlayerAttack` 스크립트에는 `CalcCritical`라는 이름의 메서드가 존재하며, 이 메서드는 `Entity` 타입의 공 [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] | wikipedia [title] | UtilLogic [category] | Logics [rephrased] | **UtilLogic** `_UtilLogic`은 문자열과 테이블 간의 변환 및 난수 생성 등 일반적인 유틸리티 기능을 제공하는 서비스입니다. 문자열을 테이블로 변환하는 기능은 `StringToTable` 메서드를 통해 사용할 수 있습니다. 이 메서드는 문자열 인자를 받아 테이블 타입의 값을 반환하며, 변환된 테이블의 각 요소는 루프를 돌리며 접근할 수 있습니다. 예를 들어, `tableToString`이라는 문자열 변수를 `StringToTable` 메서드로 변환하여 `table2`에 저장하고, `for` 문을 이용해 `tab [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] | diverse_qa [title] | UtilLogic [category] | Logics [rephrased] | 질문: timeScale 값이 2일 때 게임 시간의 흐름은 어떻게 되나요? 답변: 게임 시간이 두 배 빠르게 흐릅니다. 질문: timeScale 값이 0.5일 때 게임 시간의 흐름은 어떻게 되나요? 답변: 게임 시간이 두 배 느리게 흐릅니다. 질문: timeScale 값이 0일 때 월드 시간의 상태는 어떻게 되나요? 답변: 월드 시간이 멈춥니다. 질문: Split 함수의 useSeparatorAsOne 파라미터의 기본값은 무엇인가요? 답변: 기본값은 true입니다. 질문: 다음 코드는 무엇을 하는 함수인가요? ```lua t [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] | wikipedia [title] | UtilLogic [category] | Logics [rephrased] | # UtilLogic (Examples) 본 섹션은 `UtilLogic` 컴포넌트에서 제공하는 각 함수의 반환 값을 시연하기 위한 예제 코드를 수록하고 있습니다. 아래 예제는 `OnBeginPlay` 이벤트 핸들러 내에서 클라이언트 실행 공간(`[client only]`)에서 호출되며, `log` 함수를 통해 각 함수의 실행 결과를 출력합니다. ```lua Method: [client only] void OnBeginPlay () { local utc = _UtilLogic:GetUTCNow() log("GetUTCNow : [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