[task] | single_turn [pass] | ⏳ 미판정 [title] | MouseMoveEvent [question] | InputService의 MouseMoveEvent 핸들러를 클라이언트에서만 처리하는 이유는 서버 측에서는 마우스 위치를 알 수 없기 때문인가요? [answer] | 네, 정확합니다. `MouseMoveEvent`는 `InputService`의 **Client(클라이언트)** 공간에서만 발생하는 이벤트입니다. 서버는 클라이언트에서 입력된 마우스의 실제 좌표나 이동 델타 값을 직접적으로 알 수 없으며, 이러한 로컬 입력 이벤트는 클라이언트 측에서만 처리됩니다. 따라서 마우스 움직임에 반응하는 로직(예: 카메라 이동, UI 포인터, 클라이언트 사이드 애니메이션 등)을 작성할 때는 `InputService`의 `MouseMoveEvent` 핸들러를 사용해야 하며, 이 핸들러는 기본적으로 클라이언트에 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 마우스가 움직일 때 InputService에서 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Vector2 MouseDelta** 마우스의 수평, 수직 이동량을 나타냅니다. 오른쪽, 위쪽으
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | RectTileCollisionEndEvent의 Entity 속성은 충돌한 타일 자체를 가리키나요, 아니면 타일에서 벗어난 엔티티를 가리키나요? [answer] | RectTileCollisionEndEvent의 `Entity` 속성은 타일 자체를 가리키는 것이 아니라, **타일에서 벗어난 엔티티**를 가리킵니다. 문서에서 이 속성을 "타일과 충돌한 엔티티입니다."라고 정의하고 있으며, 이벤트 자체가 "충돌한 타일에서 벗어날 때" 발생한다는 점을 고려하면, 이 `Entity`는 해당 타일과 충돌 상태였다가 그 상태가 종료된(벗어난) 주체, 즉 플레이어나 NPC 등 물리 바디를 가진 엔티티를 의미합니다. 타일 자체의 정보는 `RectTileInfo TileInfo`, `RectTileMapC [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | code [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | RectTileCollisionEndEvent에서 TilePosition을 저장하고 마지막 벗어난 타일 좌표를 화면에 표시하는 스크립트를 작성해줘 [answer] | RectTileCollisionEndEvent는 엔티티가 충돌하고 있던 타일에서 벗어날 때 발생하는 이벤트입니다. 이 이벤트 핸들러 내부에서 `event.TilePosition`을 읽어 저장하고, 해당 좌표를 화면에 출력할 수 있습니다. 참고로, 제공된 문서에는 `RectTileCollisionEndEvent`의 프로퍼티와 생성자, 그리고 발생한 컴포넌트(`KinematicbodyComponent`, `SideviewbodyComponent`) 정보는 있지만, **화면에 텍스트를 직접 출력하는 API(예: UI 컴포넌트나 Prin [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | code [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | RectTileCollisionEndEvent에서 TileInfo를 검사하여 특정 타일에서 벗어날 때 로그를 출력하는 스크립트를 작성해줘 [answer] | RectTileCollisionEndEvent는 엔티티가 충돌한 타일에서 벗어날 때 발생하며, `KinematicbodyComponent` 또는 `SideviewbodyComponent`를 가진 엔티티에서 Server 또는 Client 공간에서 발생할 수 있습니다. 이벤트 핸들러에서 `event.TileInfo` 프로퍼티를 통해 타일 정보를 가져오고, 여기서 필요한 필드(예: 타일 ID 등)를 검사하여 조건이 맞을 경우 `log` 함수로 메시지를 출력할 수 있습니다. 아래는 특정 타일에서 벗어날 때 로그를 출력하는 mLua 스크 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | two_turn [pass] | ⏳ 미판정 [title] | ResourceUploadEvent [question] | ResourceUploadEvent를 처리하기 위해 어떤 Event Handler를 작성해야 하나요? [answer] | `ResourceService`에서 발생하는 `ResourceUploadEvent`를 처리하려면 `[service: ResourceService]` 태그를 가진 Event Handler를 작성해야 합니다. 이 이벤트는 서버 공간(`[server only]`)에서 발생하므로, 핸들러에도 `[server only]` 태그를 함께 붙여야 합니다. 핸들러의 파라미터로 `ResourceUploadEvent` 타입의 `event`를 받으며, `event.RUID`를 통해 업로드된 리소스의 RUID, `event.UserId`를 통해 리소스를 [followup] | ResourceService의 [service: ResourceService] 핸들러를 구현하여 event.RUID와 event.UserId를 접근하는 코드 예제를 작성해 주세요. [followup_answer] | `ResourceService`에서 발생하는 `ResourceUploadEvent`를 처리하기 위한 Event Handler는 아래처럼 작성합니다. ```lua Event Handler: [server only] [service: ResourceService] HandleResourceUploadEvent(ResourceUploadEvent event) { -- Parameters local RUID = event.RUID local UserId = event.UserId ---------------- [scores] | [judge_reason] | [source_doc] | 월드 플레이 중 생성된 리소스 업로드에 성공했을 때 ResourceService에서 발생하는 이벤트입니다. 이 이벤트는 리소스가 업로드된 월드의 모든 서버에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * ResourceService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties
[task] | single_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | 이벤트 핸들러에서 self.Entity와 event.AttachedEntity를 구분해서 사용할 때, 각각의 TransformComponent.Position 값이 실제 물리 엔진의 좌표와 어떻게 다른지 알고 싶습니다. [answer] | 제시된 참고 문서에는 `RigidbodyAttachEvent`의 프로퍼티(`AttachedEntity`, `Offset`)와 생성자에 대한 정보만 포함되어 있습니다. `self.Entity`와 `event.AttachedEntity`의 `TransformComponent.Position` 값이 실제 물리 엔진 좌표와 어떻게 다른지에 대한 기술적 설명이나 차이점에 대한 정보는 제공된 문서에 존재하지 않습니다. 따라서 해당 질문에 대해 답변할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | instruction_following [pass] | ⏳ 미판정 [title] | math [question] | `math.cosh`, `math.sinh`, `math.tanh` 함수의 이름과 매개변수 타입을 3줄 이내로 나열하세요. [answer] | `cosh(number x)` `sinh(number x)` `tanh(number x)` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S
[task] | instruction_following [pass] | ⏳ 미판정 [title] | math [question] | math.random의 3가지 오버로드별 인자 범위와 반환 타입을 단계별 번호 목록으로 설명하세요. [answer] | mLua의 `math.random` 함수는 다음과 같이 3가지 오버로드(인자 개수별)로 제공됩니다. 1. **`math.random()` (인자 없음)** - **인자 범위**: 인자가 없습니다. - **반환 타입**: `number` (실수) - **설명**: `[0, 1)` 범위에 균등하게 분포하는 유사난수 실수를 반환합니다. 2. **`math.random(integer n)` (인자 1개)** - **인자 범위**: `n`은 정수(`integer`)입니다. - **반환 타입**: `integer [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Properties - **integer mininteger [Static]** 정수 중 값이 가장 작은 정수입니다. - **integer maxinteger [Static]** 정수 중 값이 가장 큰 정수입니다. - **number pi [Static]** π 값입니다. - **number huge [Static]** 수가 가장 큰 실수 값입니다. # Functions - **integer ceil(number x) [Static]** x보다 크거나 같은 가장 작은 정수 값을 반환합니다. - **numb
[task] | code [pass] | ⏳ 미판정 [title] | global [question] | xpcall, wait, isvalid, log, log_warning, log_error를 사용하여 오류 발생 시 경고와 오류 로그를 출력하고 2초 대기 후 유효하지 않은 객체를 감지하여 처리하는 스크립트를 작성해줘 [answer] | 요청하신 `xpcall`, `wait`, `isvalid`, `log`, `log_warning`, `log_error` 기능을 사용하여 오류 발생 시 로그를 출력하고, 2초 대기 후 객체 유효성을 검사하여 처리하는 스크립트입니다. ```lua Property: [None] boolean IsProcessing = false Method: [server only] void OnBeginPlay() { self:IsProcessing = false log("스크립트 시작: OnBeginPlay 호출됨") } [se [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **boolean, any... xpcall(func f, func msgh, any... args) [Static]** pcall 함수와 동일하게 사용합니다. 다만, 새 메시지 핸들러 msgh를 설정할 수 있습니다. - **table enum(table table) [Static]** 지정된 테이블의 키와 값을 교환 후 테이블을 반환합니다. - **void wait(number seconds) [Static]** seconds 동안 현재 스크립트의 실행을 중단합니다. - **boolean isvalid(any obj
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionBeginEvent [question] | 이벤트 핸들러에서 TilePosition 프로퍼티를 통해 타일의 인덱스 좌표를 얻는 것과, Point 프로퍼티의 월드 좌표를 직접 계산해 인덱스를 구하는 방식 중 어떤 것이 성능 면에서 더 유리한가요? [answer] | 제공된 참고 문서에는 `RectTileCollisionBeginEvent`의 프로퍼티 정의(`Entity`, `Normal`, `Point`, `TileInfo`, `TileMap`, `TilePosition`)와 생성자, 그리고 이벤트가 발생하는 컴포넌트(`KinematicbodyComponent`, `SideviewbodyComponent`) 정보만 포함되어 있습니다. 문서에는 **`TilePosition`을 직접 사용하는 방식**과 **`Point`를 이용해 인덱스를 계산하는 방식** 간의 성능 비교 데이터, 내부 구현 원리 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌 가능한 타일과 접촉했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/s
[task] | instruction_following [pass] | ⏳ 미판정 [title] | math [question] | math 모듈의 static 프로퍼티 4개와 static 함수 22개를 이름과 반환 타입만 나열한 표로 정리하세요. [answer] | 참고 문서에 포함된 `math` 모듈의 Static 프로퍼티와 Static 함수는 다음과 같습니다. ### Static 프로퍼티 (4개) | 이름 | 반환 타입 | | :--- | :--- | | mininteger | integer | | maxinteger | integer | | pi | number | | huge | number | ### Static 함수 (22개) | 이름 | 반환 타입 | | :--- | :--- | | ceil | integer | | acos | number | | deg | number | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Properties - **integer mininteger [Static]** 정수 중 값이 가장 작은 정수입니다. - **integer maxinteger [Static]** 정수 중 값이 가장 큰 정수입니다. - **number pi [Static]** π 값입니다. - **number huge [Static]** 수가 가장 큰 실수 값입니다. # Functions - **integer ceil(number x) [Static]** x보다 크거나 같은 가장 작은 정수 값을 반환합니다. - **numb
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | SideviewbodyComponent에서 RectTileCollisionEndEvent를 처리할 때, 이벤트 발생 공간이 Server와 Client 모두라고 되어 있는데 양쪽에서 중복으로 트리거되는 걸 방지하려면 어떻게 해야 하나요? [answer] | 참고 문서에 따르면 `RectTileCollisionEndEvent`는 `SideviewbodyComponent`를 통해 Server와 Client 양쪽에서 발생합니다. 그러나 해당 문서에는 **이벤트 중복 트리거를 방지하는 구체적인 메서드, 속성, 또는 필터링 API가 제공되지 않습니다.** 따라서 문서에 근거하여 중복 방지를 위한 코드 패턴이나 API를 제시할 수 없습니다. 일반적인 mLua 개발 관행(참고 문서 범위 밖)에서는 Event Handler의 실행 공간을 `[server]` 또는 `[client]` 중 하나로 제 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | instruction_following [pass] | ⏳ 미판정 [title] | math [question] | `math.clamp` 함수의 시그니처와 동작 방식을 코드 블록 하나로만 제시하세요. [answer] | ```lua Method: [server only] void OnBeginPlay() { local value = 15.0 local min = 0.0 local max = 10.0 -- math.clamp(value, min, max) local clampedValue = math.clamp(value, min, max) log(clampedValue) -- 10.0 출력 } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | RectTileCollisionEndEvent를 직접 생성할 때 TilePosition 인자를 Vector2Int(0, 0)으로 기본값 처리했는데, 실제 타일 위치가 (10, 5)인 경우 이 값을 어떻게 전달해야 정확한 타일 정보를 얻을 수 있나요? [answer] | `RectTileCollisionEndEvent`를 직접 생성할 때, 실제 타일 위치가 (10, 5)라면 `TilePosition` 인자에 `Vector2Int(10, 5)`를 전달해야 합니다. `RectTileCollisionEndEvent` 생성자의 시그니처는 다음과 같습니다: `RectTileCollisionEndEvent(Entity entity = nil, RectTileMapComponent tileMap = nil, Vector2Int tilePosition = Vector2Int(0, 0), RectTileInfo [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | single_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | RigidbodyAttachEvent가 서버와 클라이언트에서 모두 발생하는데, 어떤 경우엔 서버에서만 뜨고 어떤 경우엔 클라이언트에서만 뜨는 건가요? [answer] | `RigidbodyAttachEvent`의 발생 공간은 **붙는 대상 엔티티의 종류**에 따라 달라집니다. 1. **플레이어가 붙는 경우:** * **클라이언트(Client)** 공간에서 발생합니다. * 플레이어가 `RigidbodyComponent:AttachTo`를 통해 다른 엔티티에 붙을 때, 해당 이벤트는 클라이언트에서 트리거됩니다. 2. **플레이어가 아닌 엔티티(몬스터, NPC, 아이템 등)가 붙는 경우:** * **서버(Server)** 공간에서 발생합니다. * 플레이어 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | single_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | RigidbodyAttachEvent의 Offset 프로퍼티는 읽기 전용인가요, 아니면 핸들러 내부에서 값을 수정해서 물리적 위치를 강제로 바꿀 수 있나요? [answer] | 제공된 문서에 따르면 `RigidbodyAttachEvent`의 `Offset` 프로퍼티는 이벤트가 발생했을 때의 상태(AttachedEntity를 기준으로 부착한 엔티티의 Offset)를 나타내는 값입니다. 문서에는 이 프로퍼티가 읽기 전용인지, 또는 핸들러 내부에서 값을 수정하여 물리적 위치를 강제로 바꿀 수 있는지에 대한 명시적인 설명이 없습니다. 또한 `RigidbodyAttachEvent` 핸들러 내에서 `Offset` 값을 변경하는 코드 예제나 관련 API 문서가 제공되지 않았습니다. 따라서 주어진 정보만으로는 `Of [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | single_turn [pass] | ⏳ 미판정 [title] | global [question] | tonumber 함수의 base 인수를 지정하지 않으면 기본적으로 어떤 진법으로 변환되며, 변환이 실패하면 어떤 값이 반환되나요? [answer] | `tonumber` 함수의 `base` 인수를 지정하지 않으면 기본적으로 **10진법**으로 변환됩니다. 입력 값이 숫자로 변환되지 않으면 **`nil`** 이 반환됩니다. ```lua local numberValue = tonumber("123") log(numberValue) -- 123 local failedValue = tonumber("abc") log(failedValue) -- nil ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Functions - **any assert(any v, string message = "assertion failed!") [Static]** v의 값이 false 또는 nil이면 error를 호출합니다. 그렇지 않다면 인수 전체를 반환합니다. 오류의 경우 message가 오류 객체가 되며 인수가 없으면 "assertion failed!"을 사용합니다 - **void error(string message, integer level = 1) [Static]** 함수를 종료하고 에러 메시지를 반환합니다. - **any c
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | RectTileCollisionEndEvent의 Normal 속값이 Vector2 타입인데, 이는 2D 사이드뷰에서의 2차원 벡터인가요 아니면 3D 공간에서의 벡터인가요? [answer] | `RectTileCollisionEndEvent`의 `Normal` 속성은 **2D 평면(2차원) 공간에서의 벡터**입니다. 이유는 다음과 같습니다: 1. **타입이 `Vector2`임**: 문서에서 `Normal`의 타입이 `Vector2`로 명시되어 있습니다. `Vector2`는 x, y 두 개의 좌표만 가지는 2차원 벡터 타입입니다. (3D 공간의 벡터는 `Vector3` 타입을 사용합니다.) 2. **발생 컴포넌트**: 이 이벤트는 `KinematicbodyComponent` 또는 `SideviewbodyComponent` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | instruction_following [pass] | ⏳ 미판정 [title] | math [question] | `math.frexp` 함수가 반환하는 m과 e의 값 범위 조건을 표로 정리하세요. [answer] | `math.frexp` 함수는 입력값 `x`를 `m * 2^e` 형태로 분해하여 `m`과 `e`를 반환합니다. 이때 반환되는 값의 범위 조건은 다음과 같습니다. | 입력값 x 조건 | m (만성) | e (지수) | | :--- | :--- | :--- | | `x`가 0이 아닐 때 | 절댓값이 **[0.5, 1)** 범위에 있음 | **정수** | | `x`가 0일 때 | **0** | **정수** | 즉, `math.frexp(x)`를 호출하면 첫 번째 반환값 `m`은 위에서 설명한 범위를 만족하는 실수이고, 두 번째 반환값 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S
[task] | single_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | 클라이언트에서 이벤트 핸들러를 등록했는데 서버 엔티티가 붙는 경우 이벤트가 안 들어오는 것 같은데, 이는 공간(Space) 제한 때문인가요? [answer] | 네, 공간(Space) 제한 때문입니다. `RigidbodyAttachEvent`는 엔티티의 종류에 따라 발생 공간이 달라집니다. 1. **플레이어**: 클라이언트(Client)에서 이벤트가 발생합니다. 2. **플레이어가 아닌 엔티티 (서버 엔티티)**: 서버(Server) 공간에서 이벤트가 발생합니다. 따라서 질문하신 대로 **서버 엔티티**가 `RigidbodyComponent:AttachTo`를 통해 붙는 경우, 해당 이벤트는 **서버 공간**에서 발생하므로 클라이언트에서 등록한 이벤트 핸들러로는 감지할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionBeginEvent [question] | RectTileCollisionBeginEvent가 발생한 직후 같은 타일에 대해 RectTileCollisionEndEvent가 바로 연속으로 발생하지 않는 이유와, 두 이벤트의 발생 순서를 보장하는 로직은 어떻게 구성해야 하나요? [answer] | 제시된 참고 문서에는 `RectTileCollisionBeginEvent`의 정의와 프로퍼티, 생성자 정보만 포함되어 있습니다. `RectTileCollisionEndEvent`에 대한 정보, 두 이벤트 사이의 시간 간격이나 발생 순서 보장 로직, 그리고 "같은 타일에 대해 연속으로 발생하지 않는 이유"에 대한 설명은 문서에 존재하지 않습니다. 따라서 제공된 문서 근거 내에서 두 이벤트의 발생 순서 보장 로직이나 특정 발생 조건을 설명하는 것은 불가능합니다. 문서에 없는 API나 동작 원리를 지어내지 않기 때문에, 이 부분에 대해 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌 가능한 타일과 접촉했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/s
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionEndEvent [question] | 타일에서 완전히 벗어날 때 발생하는 RectTileCollisionEndEvent와, 타일 사이를 넘어갈 때 발생하는 다른 충돌 이벤트의 차이는 무엇인가요? [answer] | 제공된 참고 문서에는 `RectTileCollisionEndEvent`에 대한 정보만 포함되어 있으며, 타일 사이를 넘어갈 때 발생하는 "다른 충돌 이벤트"(예: 타일 진입 시 이벤트 등)에 대한 설명이나 API 정보는 없습니다. 따라서 두 이벤트의 차이를 비교하여 설명해 드릴 수 없습니다. 참고로, 제공된 문서에 따르면 `RectTileCollisionEndEvent`는 **충돌한 타일에서 벗어날 때** 발생하는 이벤트입니다. 이 이벤트는 `KinematicbodyComponent` 또는 `SideviewbodyComponen [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌한 타일에서 벗어날 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/stat
[task] | instruction_following [pass] | ⏳ 미판정 [title] | global [question] | rawget, rawset, rawequal 함수가 메타메소드를 호출하지 않는다는 특징에 초점을 맞춰 각 함수의 동작 방식을 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Property: [None] table MyTable = {} table MetaTable = { __index = function(t, key) return "From __index metamethod: " .. tostring(key) end, __newindex = function(t, key, value) return "From __newindex metamethod: " .. tostring(key) end } Method: [server only] [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Functions - **any assert(any v, string message = "assertion failed!") [Static]** v의 값이 false 또는 nil이면 error를 호출합니다. 그렇지 않다면 인수 전체를 반환합니다. 오류의 경우 message가 오류 객체가 되며 인수가 없으면 "assertion failed!"을 사용합니다 - **void error(string message, integer level = 1) [Static]** 함수를 종료하고 에러 메시지를 반환합니다. - **any c
[task] | single_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | RigidbodyComponent:AttachTo 호출 시 Offset 파라미터를 Vector2로만 받는데, Z축 방향의 오프셋을 주고 싶을 때는 어떻게 처리해야 하나요? [answer] | `RigidbodyComponent:AttachTo(string, Vector3)` 메서드의 두 번째 파라미터는 `Vector3` 타입을 받습니다. `RigidbodyAttachEvent`의 `Offset` 프로퍼티가 `Vector2`인 것은 이벤트 발생 시 클라이언트/서버 2D 좌표계 기준으로 전달되는 값이며, 실제 `AttachTo` 호출 시에는 `Vector3`을 사용해야 합니다. 따라서 Z축 방향의 오프셋을 주고 싶다면 `Vector3`의 세 번째 값(z)을 지정하여 호출하면 됩니다. 예를 들어, X축 0, Y축 0, Z [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | single_turn [pass] | ⏳ 미판정 [title] | RectTileCollisionBeginEvent [question] | RectTileCollisionBeginEvent에서 제공하는 Point와 Normal 프로퍼티는 각각 어떤 좌표계 기준으로 값이 반환되며, 충돌 방향을 판단할 때 이 두 값 중 어떤 것을 주로 활용해야 하나요? [answer] | 제공된 참고 문서에는 `RectTileCollisionBeginEvent`의 `Point`와 `Normal` 프로퍼티의 **좌표계 기준(예: 월드 좌표, 로컬 좌표 등)** 에 대한 명시적인 정보가 없습니다. 문서에는 각각 "충돌한 지점"과 "충돌한 지점의 법선 벡터"라고만 정의되어 있으며, 좌표계 기준에 대한 설명은 찾아볼 수 없습니다. 따라서, 문서에 근거하여 좌표계 기준을 단정하여 설명할 수 없습니다. 충돌 방향을 판단할 때 주로 활용해야 할 값은 **`Normal`** 프로퍼티입니다. * **`Point`**: 충돌이 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 충돌 가능한 타일과 접촉했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * KinematicbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * SideviewbodyComponent <img src="https://img.shields.io/s
[task] | single_turn [pass] | ⏳ 미판정 [title] | math [question] | math.frexp 함수가 반환하는 m과 e 변수는 각각 어떤 조건을 만족하나요? [answer] | `math.frexp(number x)` 함수는 입력값 `x`를 `m * 2^e` 형태로 분해하여 두 값을 반환합니다. 반환되는 변수 `m`과 `e`는 다음과 같은 조건을 만족합니다. 1. **e (지수 부분)**: 정수(integer) 타입입니다. 2. **m (가중치 부분)**: * 입력값 `x`가 **0이 아닐 때**: `m`의 절댓값은 `[0.5, 1)` 범위에 있습니다. * 입력값 `x`가 **0일 때**: `m`은 `0`입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S
[task] | single_turn [pass] | ⏳ 미판정 [title] | math [question] | math.cosh와 math.sinh 함수를 사용할 때 각각 어떤 값을 반환하는지 알고 싶습니다. [answer] | `math.cosh`와 `math.sinh`는 모두 정적(Static) 함수로, 숫자(number) 값을 입력으로 받아 숫자(number) 값을 반환합니다. * **`math.cosh(number x)`**: 입력값 `x`의 **쌍곡선 코사인(hyperbolic cosine)** 값을 반환합니다. * **`math.sinh(number x)`**: 입력값 `x`의 **쌍곡선 사인(hyperbolic sine)** 값을 반환합니다. mLua에서는 표준 Lua 함수처럼 `.` (점) 기호를 사용하여 호출합니다. ```lua [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S
[task] | code [pass] | ⏳ 미판정 [title] | RigidbodyDetachEvent [question] | RigidbodyComponent의 Detach 상태 해제 시 RigidbodyDetachEvent의 DetachedEntity 속성을 참조하여 로그를 출력하는 스크립트를 작성해줘 [answer] | RigidbodyComponent의 `Detach()` 호출로 Attach 상태가 해제될 때 발생하는 `RigidbodyDetachEvent`의 `DetachedEntity` 속성을 참조하여 로그를 출력하는 스크립트입니다. ```lua Event Handler: [self] HandleRigidbodyDetachEvent (RigidbodyDetachEvent event) { local DetachedEntity = event.DetachedEntity log("Rigidbody detach event triggered. De [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:Detach()를 통해 Attach 상태가 해제될 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다.
[task] | two_turn [pass] | ⏳ 미판정 [title] | RigidbodyAttachEvent [question] | RigidbodyAttachEvent가 발생되는 시기와 공간 규칙에 대해 설명해 주세요. [answer] | `RigidbodyAttachEvent`는 엔티티가 `RigidbodyComponent:AttachTo(string, Vector3)` 메서드를 호출하여 다른 엔티티에 물리적으로 부착(Attach)되었을 때 발생하는 이벤트입니다. **발생 시기와 공간 규칙** 1. **발생 시점**: * `RigidbodyComponent:AttachTo`가 성공적으로 호출되어 엔티티가 부착된 상태가 되었을 때 발생합니다. * 이 이벤트는 `RigidbodyComponent`에 의해 트리거됩니다. 2. **발생 공간 [followup] | 플레이어와 비플레이어 엔티티의 발생 공간 차이와, 이 이벤트가 서버/클라이언트 중 어디에서 핸들러가 실행되는지 구체적인 코드 예시를 보여 주세요. [followup_answer] | `RigidbodyAttachEvent`의 발생 공간은 엔티티의 종류에 따라 다음과 같이 구분됩니다. 1. **플레이어 엔티티**: 클라이언트(Client) 공간에서 이벤트가 발생합니다. 2. **비플레이어 엔티티 (기타 엔티티)**: 서버(Server) 공간에서 이벤트가 발생합니다. 따라서 이벤트 핸들러의 실행 공간은 이벤트가 발생하는 공간과 일치해야 합니다. 즉, 플레이어 엔티티에 붙는 경우 `[client]` 또는 `[client only]`로, 비플레이어 엔티티에 붙는 경우 `[server]` 또는 `[server o [scores] | [judge_reason] | [source_doc] | 엔티티가 RigidbodyComponent:AttachTo(string, Vector3)를 통해 특정 엔티티에 붙었을 때 발생하는 이벤트입니다. 플레이어는 클라이언트에서 발생하고, 그 외의 엔티티는 서버 공간에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client
[task] | single_turn [pass] | ⏳ 미판정 [title] | math [question] | math.sign 함수를 사용하면 어떤 형태의 값이 반환되나요? [answer] | `math.sign` 함수는 전달된 `value`의 부호를 나타내는 정수를 반환합니다. 구체적으로, 전달된 값에 따라 다음과 같은 값을 반환합니다: * **양수**인 경우: `1` * **음수**인 경우: `-1` * **0**인 경우: `0` ```lua Method: [server only] void OnBeginPlay() { local positiveValue = 10 local negativeValue = -5 local zeroValue = 0 local signOfPositi [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 실수형 값이 거의 같은지 확인합니다. - **number cosh(number x) [Static]** x의 쌍곡선 코사인을 반환합니다. - **number sinh(number x) [Static]** x의 쌍곡선 사인을 반환합니다. - **number tanh(number x) [Static]** x의 쌍곡선 탄젠트를 반환합니다. - **number pow(number x, number y) [Static]** x의 y 거듭제곱을 반환합니다. - **number, integer frexp(number x) [S