← 목록

mLua · Nemotron SDG 질문-응답 (SFT)

총 21,567개 · 페이지 47/719
🔀 랜덤
불러오는 중…

[task] | two_turn [pass] | ✅ 통과 [title] | MenuPopupOpenedEvent [question] | `MenuPopupOpenedEvent`의 생성자(Constructor)에 파라미터를 전달할 수 있는지, 없다면 기본값 초기화의 구체적인 의미를 설명해 주세요. [answer] | `MenuPopupOpenedEvent`의 생성자(Constructor)에 파라미터를 전달할 수 없습니다. 문서에 명시된 생성자 시그니처는 `MenuPopupOpenedEvent()`로, 괄호가 비어 있어 어떤 인자도 받지 않는 구조입니다. **기본값 초기화의 구체적인 의미:** 생성자가 `MenuPopupOpenedEvent()`로 정의되어 있다는 것은 해당 이벤트 객체가 생성될 때 시스템이 미리 정의된 **기본값(Default Value)** 상태로 초기화됨을 의미합니다. 이는 개발자가 직접 이벤트를 생성하여 특정 데이터를 [followup] | 이 이벤트가 Client 공간에서만 발생한다는 점을 고려하여, 서버에서 해당 이벤트를 직접 수신하지 못할 때 클라이언트와 서버 간 상태를 동기화하기 위해 사용할 수 있는 대안적인 API 또는 패턴이 있다면 알려 주세요. [followup_answer] | 제공된 참고 문서에는 `MenuPopupOpenedEvent`가 Client 공간에서 발생한다는 사실과 생성자 정보만 포함되어 있으며, **클라이언트와 서버 간 상태 동기화를 위한 대안적인 API나 패턴에 대한 정보는 없습니다.** 따라서 주어진 문서 범위 내에서 클라이언트에서 발생한 메뉴 팝업 이벤트를 서버로 전달하거나 서버 상태를 동기화하는 구체적인 방법(예: `ClientToServerEvent`, 커스텀 네트워크 메시지 전송 API 등)을 설명할 수 없습니다. [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 명시된 파라미터 없는 생성자 시그니처를 정확히 인용하고, InputService의 클라이언트 발생 특성 및 이벤트 수신 중심의 사용 방식을 논리적으로 설명하여 질문에 충실히 답했습니다. [source_doc] | 메뉴 팝업을 열 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **MenuPopupOpenedEvent()** 기본값으로 MenuPopupOpenedEvent를 초기화합니다.

[task] | two_turn [pass] | ❌ 탈락 [title] | MenuPopupClosedEvent [question] | MenuPopupClosedEvent를 처리하는 핸들러 내부에서 클라이언트 로직을 수행할 때 사용할 수 있는 표준 생명주기 메서드와의 관계는 무엇인가요? [answer] | `MenuPopupClosedEvent`는 `InputService`에 의해 **클라이언트 공간(Client)** 에서 발생하는 이벤트입니다. 따라서 이 이벤트를 처리하는 핸들러(`HandleMenuPopupClosedEvent`)는 기본적으로 클라이언트에서 실행됩니다. 표준 생명주기 메서드와의 관계는 다음과 같습니다. 1. **실행 공간의 일치성**: * `OnBeginPlay()`, `OnUpdate(number delta)`, `OnEndPlay()`는 스크립트가 부착된 엔티티가 활성화되는 시점부터 비활성화되는 [followup] | 이벤트 핸들러 본문에서 wait() 함수나 _TimerService:SetTimerOnce()를 사용하여 팝업 닫힘 후 지연 처리를 구현하려면, [client only] 또는 [client] 실행 공간 지정이 필요한지, 그리고 코드 예시는 어떻게 되는지 알려주세요. [followup_answer] | `MenuPopupClosedEvent`는 `InputService`에 의해 **클라이언트(Client)** 공간에서 발생하는 이벤트입니다. 따라서 이 이벤트를 처리하는 핸들러(`HandleMenuPopupClosedEvent`)는 기본적으로 클라이언트에서 실행됩니다. `wait()` 함수나 `_TimerService:SetTimerOnce()`를 사용하여 지연 처리를 구현할 때의 실행 공간 지정 여부와 코드 예시는 다음과 같습니다. ### 1. 실행 공간 지정 여부 * **핸들러 자체**: `MenuPopupClosedE [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=3 [judge_reason] | 문서와 규칙에 없는 '[multicast] 메서드 호출' 등을 지어내거나 OnUpdate의 프레임 단위 실행, 엔티티 비활성화 시 이벤트 미호출 등 근거 없는 세부 사항을 포함했으나, 핵심인 클라이언트 공간 일치성은 잘 설명함. [source_doc] | 메뉴 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **MenuPopupClosedEvent()** 기본값으로 MenuPopupClosedEvent를 초기화합니다.

[task] | single_turn [pass] | ✅ 통과 [title] | EntityEnabledInHierarchyChangedEvent [question] | 이벤트 핸들러에서 이벤트가 발생한 특정 엔티티를 참조하기 위해 어떤 프로퍼티를 사용해야 하나요? [answer] | `EntityEnabledInHierarchyChangedEvent`에서 이벤트가 발생한 특정 엔티티를 참조하려면 **`Entity`** 프로퍼티를 사용합니다. 이 프로퍼티는 `EntityEventType`에서 상속된 것으로, 이벤트를 발생시킨 엔티티를 반환합니다. 예시 코드: ```lua Event Handler: [self] HandleEntityEnabledInHierarchyChangedEvent (EntityEnabledInHierarchyChangedEvent event) { local targetEntity [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 Entity 프로퍼티 설명과 mLua 표준 이벤트 핸들러 구문을 정확히 반영하여 질문에 명확하게 답변했습니다. [source_doc] | 엔티티의 EnabledInHierarchy가 변경되었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **boolean EnabledInHierarchy** 엔티티의 E

[task] | single_turn [pass] | ✅ 통과 [title] | ExitPopupClosedEvent [question] | ExitPopupClosedEvent를 사용할 때 InputService의 다른 입력 이벤트들과 처리 순서가 충돌하는 경우가 있을까요? [answer] | 제공된 참고 문서에는 `ExitPopupClosedEvent`가 종료 팝업을 닫을 때 발생하며, `InputService`에 의해 Client 공간에서 발생한다는 정보만 포함되어 있습니다. 문서에는 다른 입력 이벤트들과의 **처리 순서**나 **충돌 여부**에 대한 명시적인 설명, 우선순위 규칙, 또는 동시 발생 시 동작 방식이 기재되어 있지 않습니다. 따라서 제공된 정보만으로는 처리 순서 충돌이 발생하는지 여부를 판단할 수 없습니다. 일반적인 mLua 구조상 이벤트 핸들러는 각각 독립적으로 등록되지만, 특정 프레임 내에서 여러 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 정보를 지어내지 않고, 문서 한계를 명확히 지적하며 질문의 전제(충돌 가능성)에 대해 신중하게 답변하여 정확성과 일관성이 높음. [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | code [pass] | ✅ 통과 [title] | TotalServerFunctionRateLimitEvent [question] | RateLimitService 의 TotalServerFunctionRateLimitEvent 이벤트 핸들러에서 이벤트의 FunctionName 이 "Attack" 이고 EntityId 가 비어있지 않을 경우 경고 로그를 출력하는 스크립트를 작성해줘 [answer] | RateLimitService 의 `TotalServerFunctionRateLimitEvent` 이벤트는 서버에서 발생합니다. 이벤트 핸들러는 `[server only]` 실행 공간과 `[service: RateLimitService]` 어트리뷰트를 함께 사용하여 등록합니다. 요청하신 조건(`FunctionName` 이 "Attack" 이고 `EntityId` 가 비어있지 않을 때 경고 로그 출력)을 만족하는 mLua 스크립트는 다음과 같습니다. ```lua Event Handler: [server only] [service: [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 이벤트 프로퍼티와 생성자 정보를 정확히 활용하여 요청된 조건에 맞는 mLua 스크립트를 오류 없이 작성했습니다. [source_doc] | server 실행 제어 함수의 총 호출량이 제한을 초과했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RateLimitService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **string EntityId** 함수의 컴포넌트가 속한 엔티티의 Id입니다

[task] | code [pass] | ✅ 통과 [title] | ExitPopupClosedEvent [question] | InputService 의 ExitPopupClosedEvent 를 처리하여 종료 팝업이 닫히면 _LogService 로 로그를 남기는 스크립트를 작성해줘 [answer] | `InputService`의 `ExitPopupClosedEvent`는 종료 팝업이 닫힐 때 **Client** 공간에서 발생하는 이벤트입니다. 참고 문서에 `_LogService`에 대한 정보가 제공되지 않았습니다. mLua 표준 기능으로 로그를 남기는 `log(...)` 함수를 사용하여 요청하신 동작을 구현했습니다. ```lua Event Handler: [service: InputService] HandleExitPopupClosedEvent(ExitPopupClosedEvent event) { ----------- [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 _LogService 대신 표준 log 함수를 사용하여 정확하고 간결한 코드를 제공했습니다. [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | code [pass] | ❌ 탈락 [title] | MenuPopupOpenedEvent [question] | InputService의 MenuPopupOpenedEvent를 수신하여 메뉴가 열렸을 때 게임의 일시 정지 상태를 true로 설정하는 스크립트를 작성해줘 [answer] | 메뉴 팝업이 열렸을 때 게임의 일시 정지 상태를 `true`로 설정하는 스크립트는 `InputService`의 `MenuPopupOpenedEvent`를 수신하는 이벤트 핸들러를 구현하여 작성할 수 있습니다. 참고 문서에 명시된 `InputService`에서 발생하는 `MenuPopupOpenedEvent`를 처리하는 예제 형식에 따라 작성한 코드는 다음과 같습니다. ```lua Event Handler: [service: InputService] HandleMenuPopupOpenedEvent(MenuPopupOpenedEve [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=2 [judge_reason] | 이벤트 핸들러 구조는 정확하나, 문서에 없는 _GameService:SetPause API를 예제 코드로 제시하여 지어낸 API 사용 우려가 있으나 주의사항으로 경계했음 [source_doc] | 메뉴 팝업을 열 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **MenuPopupOpenedEvent()** 기본값으로 MenuPopupOpenedEvent를 초기화합니다.

[task] | single_turn [pass] | ✅ 통과 [title] | EntityEnabledInHierarchyChangedEvent [question] | EntityEnabledInHierarchyChangedEvent 에서는 어떤 프로퍼티를 통해 엔티티의 현재 활성화 상태를 확인할 수 있나요? [answer] | `EntityEnabledInHierarchyChangedEvent` 이벤트에서 엔티티의 현재 활성화 상태는 **`EnabledInHierarchy`** 프로퍼티를 통해 확인할 수 있습니다. 이 프로퍼티는 `boolean` 타입이며, 해당 이벤트가 발생했을 때 엔티티의 `EnabledInHierarchy` 값이 변경된 최신 상태를 담고 있습니다. 예를 들어, 특정 엔티티가 비활성화되는 경우를 처리하려면 다음과 같이 이벤트 핸들러를 작성할 수 있습니다. ```lua Event Handler: [self] HandleEntityE [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 프로퍼티 정보와 시스템 규칙의 이벤트 핸들러 문법을 정확히 반영하여 질문에 충실히 답변했습니다. [source_doc] | 엔티티의 EnabledInHierarchy가 변경되었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **boolean EnabledInHierarchy** 엔티티의 E

[task] | code [pass] | ✅ 통과 [title] | PixelGUIRendererComponent [question] | ResetWithColor()로 16x16 크기의 흰색 스프라이트를 생성한 후, OnUpdate에서 매 0.5초마다 SetPixel()을 사용하여 좌측 하단 기준 (x, y) 좌표가 1씩 증가하는 대각선 패턴으로 빨간색 점을 하나씩 추가해가는 애니메이션을 구현하는 [client only] 스프�립트를 작성해줘. [answer] | `ResetWithColor`로 16x16 흰색 스프라이트를 초기화하고, `OnUpdate`에서 누적 시간을 기준으로 매 0.5초마다 대각선 좌표 `(x, y)`를 1씩 증가시켜 빨간색 픽셀을 하나씩 설정하는 로직을 구현했습니다. 좌측 하단이 `(1, 1)`인 점을 고려하여 대각선은 `(1,1)`, `(2,2)`, ... 순서로 진행하며, 16x16 범위를 벗어나지 않도록 인덱스를 제한했습니다. ```lua Property: [None] number elapsed = 0 [None] number lastDrawTime = 0 [N [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 API(ResetWithColor, SetPixel)와 좌표계(1,1 기준), mLua 문법 규칙을 정확히 준수하여 요구된 애니메이션 로직을 구현했습니다. [source_doc] | - **void FillColor(Color color) [ClientOnly]** 스프라이트 전체의 색을 변경합니다. - **Color GetPixel(int32 x, int32 y) [ClientOnly]** 원하는 위치의 픽셀 값을 반환합니다. 좌측 하단이 (1, 1)입니다. - **table<Color> GetPixels() [ClientOnly]** 현재 스프라이트의 모든 픽셀 값을 반환합니다. 행 우선입니다.(Row-major) - **table<integer> GetPixelsAsRGBAInt() [Clien

[task] | single_turn [pass] | ❌ 탈락 [title] | ExitPopupOpenedEvent [question] | InputService를 통해 종료 팝업이 열렸을 때 클라이언트에서만 발생한다고 하는데, 서버 스크립트에서 이 이벤트를 직접 수신해서 처리하는 방법이 있을까요? [answer] | InputService를 통해 발생하는 `ExitPopupOpenedEvent`는 **클라이언트 공간(Client Space)** 에서만 발생하는 이벤트입니다. 메이플스토리 월드의 mLua 구조상, 클라이언트 공간에서 발생하는 서비스 이벤트는 서버 스크립트에서 **직접 수신하여 처리할 수 없습니다.** 서버와 클라이언트는 독립된 실행 환경으로 동작하며, 클라이언트 전용 이벤트는 서버로 자동 전달되지 않습니다. 따라서 서버 스크립트에서 이 이벤트를 처리하려면, 클라이언트 스크립트에서 이벤트를 수신한 후 **서버로 데이터를 보내는 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=3 verbosity=2 [judge_reason] | 서버로 전달하는 RPC 메서드(CallServerMethod 등)가 mLua 문서나 규칙에 존재하지 않는 지어낸 API이며, [Sync] 프로퍼티 변경이 서버 메서드를 트리거한다는 설명도 근거가 부족해 정확도가 낮음 [source_doc] | 종료 팝업을 열 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupOpenedEvent()** 기본값으로 ExitPopupOpenedEvent를 초기화합니다.

[task] | single_turn [pass] | ✅ 통과 [title] | TextRendererSpacingOption [question] | TextRendererSpacingOption의 Character와 Word 프로퍼티는 각각 어떤 요소 사이의 간격을 조절하나요? [answer] | `TextRendererSpacingOption`의 프로퍼티 간격 조절 대상은 다음과 같습니다. * **Character**: **글자** 사이의 간격을 조절합니다. * **Word**: **단어** 사이의 간격을 조절합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서의 정의와 정확히 일치하며, 질문에 대한 핵심 정보를 간결하고 명확하게 답변했습니다. [source_doc] | 다양한 간격 옵션입니다. # Properties - **float Character** 글자 간격을 설정합니다. - **float Line** 줄 간격을 설정합니다. - **float Paragraph** 줄 나눔 간격을 설정합니다. - **float Word** 단어 간격을 설정합니다. # Methods - **TextRendererSpacingOption Clone()** 복사본을 생성합니다.

[task] | single_turn [pass] | ✅ 통과 [title] | ExitPopupClosedEvent [question] | InputService를 통해 ExitPopupClosedEvent를 처리할 때, 반드시 클라이언트 공간에서만 동작하도록 해야 하는 이유가 무엇인가요? [answer] | ExitPopupClosedEvent는 종료 팝업이 닫혔을 때 발생하는 이벤트로, `InputService`에 의해 트리거되며 **Client(클라이언트) 공간**에서만 발생합니다. 클라이언트 공간에서만 동작하도록 해야 하는 이유는 다음과 같습니다. 1. **이벤트 발생 원천이 클라이언트이기 때문입니다.** 종료 팝업의 UI 조작(닫기 버튼 클릭 등)은 서버가 아닌 플레이어의 기기(클라이언트)에서 직접 이루어집니다. 따라서 `InputService`를 통해 이 이벤트가 생성되는 시점 자체가 클라이언트 환경입니다. 2. [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 추론(서버에서 오류 발생 등)을 포함했으나, 문서에 명시된 'Client' 발생 사실과 표준 문법 예시는 정확히 제시하여 질문의 의도를 충족함. [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | single_turn [pass] | ✅ 통과 [title] | EntityEnabledInHierarchyChangedEvent [question] | EntityEnabledInHierarchyChangedEvent 는 어떤 상태 변화가 감지되었을 때 트리거되는 이벤트인가요? [answer] | `EntityEnabledInHierarchyChangedEvent`는 엔티티의 **EnabledInHierarchy** 상태가 변경되었을 때 트리거되는 이벤트입니다. 이 이벤트는 `MODEntity` API에 의해 발생하며, 서버(Server)와 클라이언트(Client) 양쪽 공간에서 모두 발생할 수 있습니다. ### 이벤트 프로퍼티 * **EnabledInHierarchy** (`boolean`): 변경된 엔티티의 `EnabledInHierarchy` 값입니다. * **Entity** (`Entity`): 이벤트를 발 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 모든 정보(발생 조건, 공간, 프로퍼티, 생성자)를 정확히 요약했고, mLua 규칙에 부합하는 예제를 제공하여 질문에 완벽히 답했습니다. [source_doc] | 엔티티의 EnabledInHierarchy가 변경되었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **boolean EnabledInHierarchy** 엔티티의 E

[task] | instruction_following [pass] | ✅ 통과 [title] | RateLimitService [question] | SetTotalServerFunctionRateLimit과 개별 제한 메서드의 동작 차이점을 3문장 이내로 설명해줘 [answer] | `SetTotalServerFunctionRateLimit`은 컴포넌트, 서비스, 로직을 가리지 않고 모든 서버 실행 제어 함수 호출에 대해 하나의 공통 토큰 버퍼를 적용하여 총 호출량을 제한합니다. 반면 `SetServerFunctionRateLimitForComponent`와 같은 개별 제한 메서드는 특정 대상의 특정 함수에만 독립된 토큰 버퍼를 설정하여, 해당 함수의 호출량만 정밀하게 제어합니다. 따라서 개별 제한은 특정 기능의 악용을 방지하는 데 유용하고, 총량 제한은 유저의 전반적인 서버 함수 호출 빈도를 일괄적으로 조 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 API 정의와 동작 방식을 정확히 비교하여 3문장 이내로 명확하게 설명했습니다. [source_doc] | 스크립트 및 네이티브 API의 사용량을 제한하는 기능을 제공합니다. # Methods - **void SetServerFunctionRateLimitForComponent(string entityId, string componentName, string functionName, int32 maxToken, float tokenRefillPerSecond) [ServerOnly]** 특정 엔티티에 속한 컴포넌트의 server 실행 제어 함수 호출량을 제한합니다. 유저가 함수를 호출할 때마다 토큰이 1개씩 차감됩니다. 토큰을 모

[task] | code [pass] | ❌ 탈락 [title] | ExitPopupClosedEvent [question] | InputService 의 ExitPopupClosedEvent 가 발생하면 _UIManager 로 특정 UI 를 숨기고 _SoundService 로 효과음을 재생하는 스크립트를 작성해줘 [answer] | **참고 문서에 `_UIManager`, `_SoundService` API가 존재하지 않습니다.** 제시된 참고 문서에는 `ExitPopupClosedEvent`가 `InputService`에서 발생하는 Client 공간 이벤트라는 정보와, `InputService`의 `KeyDownEvent`를 처리하는 예제 코드만 포함되어 있습니다. `_UIManager`나 `_SoundService`와 같은 서비스의 존재 여부나 해당 메서드(특정 UI 숨기기, 효과음 재생)에 대한 설명이 문서에 없어, 이를 기반으로 코드를 작성하거나 예시 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 API를 지어내지 않고 문서에 있는 정보만 사용하여 구조를 제시했으나, 질문자의 요구사항(구체적인 UI/음성 처리)을 충족하지 못해 유용성이 제한적입니다. [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | instruction_following [pass] | ✅ 통과 [title] | RateLimitService [question] | RateLimitService의 이벤트 연결과 총 호출량 제한 설정을 보여주는 코드만 출력하고 설명은 주석으로 [answer] | ```lua Method: [server only] void OnBeginPlay() { -- Server 실행 제어 함수들의 총 호출량을 제한 설정 (최대 토큰 10개, 초당 1개 재충전) _RateLimitService:SetTotalServerFunctionRateLimit(10, 1) -- 총 호출량 제한 초과 시 발생하는 이벤트 핸들러 연결 _RateLimitService:ConnectEvent("TotalServerFunctionRateLimitEvent", self:HandleTotalServerFunction [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 API 명세와 이벤트 이름, 매개변수 타입을 정확히 준수하며 요청된 코드를 주석과 함께 명확하게 제시했습니다. [source_doc] | 스크립트 및 네이티브 API의 사용량을 제한하는 기능을 제공합니다. # Methods - **void SetServerFunctionRateLimitForComponent(string entityId, string componentName, string functionName, int32 maxToken, float tokenRefillPerSecond) [ServerOnly]** 특정 엔티티에 속한 컴포넌트의 server 실행 제어 함수 호출량을 제한합니다. 유저가 함수를 호출할 때마다 토큰이 1개씩 차감됩니다. 토큰을 모

[task] | instruction_following [pass] | ✅ 통과 [title] | UpdateAuthorityType [question] | UpdateAuthorityType 열거형의 멤버와 값, 설명을 표로 정리해서 출력하세요. [answer] | | 이름 | 값 | 설명 | |---|---|---| | Server | 0 | 서버 공간에서 실행됩니다. | | Client | 1 | 클라이언트 공간에서 실행됩니다. | [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 명시된 UpdateAuthorityType 열거형의 멤버, 값, 설명을 요청대로 표로 정확하고 간결하게 정리했습니다. [source_doc] | AIComponent가 실행될 공간을 나타냅니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Server | 0 | 서버 공간에서 실행됩니다. | | Client | 1 | 클라이언트 공간에서 실행됩니다. | # Methods - **UpdateAuthorityType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **UpdateAuthorityType CastFrom(string value) [Static]** 문자열을 해당 타입으로

[task] | single_turn [pass] | ❌ 탈락 [title] | ExitPopupClosedEvent [question] | ExitPopupClosedEvent 핸들러 안에서 다른 엔티티의 위치를 변경하는 서버 로직을 실행하려고 하면 어떤 오류가 발생하나요? [answer] | ExitPopupClosedEvent는 InputService에 의해 **Client** 공간에서 발생하는 이벤트입니다. 참고 문서의 예제와 Event Handler 문법(`[service: InputService]`)을 보면, 이 이벤트 핸들러는 기본적으로 클라이언트 사이드에서 실행됩니다. mLua의 일반 규칙상 클라이언트에서 실행되는 이벤트 핸들러 내부에서 **서버 로직**(다른 엔티티의 상태 변경, 서버 전용 서비스 호출 등)을 직접 실행하려고 하면 실행 공간 불일치(Space Mismatch) 또는 권한 오류가 발생합니다. [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | Client 공간 이벤트임을 정확히 지적했으나, 구체적인 오류 메세지나 서버 로직 전환용 API가 문서에 없어 추측성 서술이 포함되어 있어 완전한 정확성을 얻지 못함 [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | code [pass] | ✅ 통과 [title] | PixelGUIRendererComponent [question] | 8x8 크기의 스프라이트를 초기화하고, 매 프레임마다 좌측 하단(1,1)부터 순서대로 픽셀을 순회하며 현재 픽셀의 알파값을 0.1씩 감소시켜 전체 스프라이트가 점진적으로 투명해지는 효과를 구현하는 [client only] 스크립트를 작성해줘. [answer] | 8x8 크기의 스프라이트를 초기화하고, 매 프레임마다 좌측 하단(1,1)부터 순서대로 픽셀을 순회하며 알파값을 0.1씩 감소시키는 효과를 구현하기 위해 `OnUpdate` 생명주기 메서드를 사용합니다. `GetPixel`과 `SetPixel` 메서드를 통해 현재 프레임에서 처리할 픽셀의 위치를 계산하고, 해당 픽셀의 색상을 가져온 후 알파값을 수정하여 다시 설정합니다. 알파값이 0.1씩 감소하므로, 한 번의 완전한 순회(64프레임)가 끝나면 모든 픽셀의 알파값이 0.64 감소하게 됩니다. (참고: `SetAlpha`는 전체 스프라 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 API(ResetWithColor, GetPixel, SetPixel)와 좌표 체계(1,1 시작), 행 우선 순서를 정확히 적용하여 요구사항을 충족하는 명확하고 적절한 코드를 제시했습니다. [source_doc] | - **void FillColor(Color color) [ClientOnly]** 스프라이트 전체의 색을 변경합니다. - **Color GetPixel(int32 x, int32 y) [ClientOnly]** 원하는 위치의 픽셀 값을 반환합니다. 좌측 하단이 (1, 1)입니다. - **table<Color> GetPixels() [ClientOnly]** 현재 스프라이트의 모든 픽셀 값을 반환합니다. 행 우선입니다.(Row-major) - **table<integer> GetPixelsAsRGBAInt() [Clien

[task] | code [pass] | ✅ 통과 [title] | TotalServerFunctionRateLimitEvent [question] | RateLimitService 의 TotalServerFunctionRateLimitEvent 이벤트 핸들러에서 이벤트의 EntityId 와 TypeName 을 결합하여 특정 문자열로 변환하고 테이블에 저장하는 스크립트를 작성해줘 [answer] | `RateLimitService`에서 발생하는 `TotalServerFunctionRateLimitEvent`를 처리하기 위한 스크립트입니다. 이벤트 핸들러에서 `event.EntityId`와 `event.TypeName`을 가져와 문자열로 결합한 뒤, 스크립트 프로퍼티로 선언한 테이블에 저장하도록 작성했습니다. ```lua Property: [None] table RateLimitLog = {} Event Handler: [server only] [service: RateLimitService] HandleTotalServe [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 이벤트 속성과 시스템 규칙에 따라 정확하고 명확한 스크립트 예시를 제공했습니다. [source_doc] | server 실행 제어 함수의 총 호출량이 제한을 초과했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RateLimitService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **string EntityId** 함수의 컴포넌트가 속한 엔티티의 Id입니다

[task] | instruction_following [pass] | ✅ 통과 [title] | UpdateAuthorityType [question] | UpdateAuthorityType의 CastFrom 메서드 시그니처를 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua -- UpdateAuthorityType CastFrom(number value) [Static] -- 숫자를 해당 타입으로 변환합니다. UpdateAuthorityType CastFrom(number value) -- UpdateAuthorityType CastFrom(string value) [Static] -- 문자열을 해당 타입으로 변환합니다. UpdateAuthorityType CastFrom(string value) ``` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 시그니처와 설명을 주석과 함께 정확히 제시했으나, mLua의 실제 호출 문법(콜론 등)이 아닌 선언부만 보여줘 실질적 사용에 대한 도움이 약간 제한적임. [source_doc] | AIComponent가 실행될 공간을 나타냅니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Server | 0 | 서버 공간에서 실행됩니다. | | Client | 1 | 클라이언트 공간에서 실행됩니다. | # Methods - **UpdateAuthorityType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **UpdateAuthorityType CastFrom(string value) [Static]** 문자열을 해당 타입으로

[task] | instruction_following [pass] | ✅ 통과 [title] | UpdateAuthorityType [question] | UpdateAuthorityType의 정의와 관련 서비스(AIComponent)를 3문장 이내로 요약해서 작성하세요. [answer] | UpdateAuthorityType은 AIComponent가 서버(Server) 또는 클라이언트(Client) 공간 중 어디에서 실행될지를 정의하는 열거형입니다. 이 타입은 숫자나 문자열을 해당 값으로 변환하는 정적 메서드인 CastFrom을 제공합니다. AIComponent와 함께 사용되어 실행 환경을 제어하며, 구체적인 서비스 API는 문서에 명시되어 있지 않습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 정의, 멤버, 메서드 정보를 정확히 3문장 이내로 요약했으며, 문서에 없는 사실을 지어내지 않았습니다. [source_doc] | AIComponent가 실행될 공간을 나타냅니다. # Members | 이름 | 값 | 설명 | |---|---|---| | Server | 0 | 서버 공간에서 실행됩니다. | | Client | 1 | 클라이언트 공간에서 실행됩니다. | # Methods - **UpdateAuthorityType CastFrom(number value) [Static]** 숫자를 해당 타입으로 변환합니다. - **UpdateAuthorityType CastFrom(string value) [Static]** 문자열을 해당 타입으로

[task] | single_turn [pass] | ❌ 탈락 [title] | EntityEnabledInHierarchyChangedEvent [question] | 이벤트를 발생시키는 API가 Server, Client 양쪽에서 동작한다는 점은 스크립트 작성 시 어떤 주의사항을 요구하나요? [answer] | `EntityEnabledInHierarchyChangedEvent`는 Server와 Client 양쪽 공간(Space)에서 모두 발생합니다. 따라서 이 이벤트를 처리하는 스크립트를 작성할 때는 이벤트 핸들러의 실행 공간을 명시적으로 구분해야 합니다. 주요 주의사항은 다음과 같습니다: 1. **실행 공간 지정 필수**: 이벤트 핸들러는 기본적으로 특정 공간에서만 실행되도록 지정해야 합니다. * 서버 로직(스폰, 데이터 변경 등)을 수행하려면 `[server only]` 또는 `[server]` 태그를 사용합니다. [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=2 [judge_reason] | 이벤트가 Server/Client 양쪽에서 발생한다는 핵심 정보를 정확히 전달했으나, 이벤트 핸들러에 [server only] 같은 실행 공간 태그를 직접 붙이는 문법과 Entity.Name 프로퍼티는 제공된 문서 및 표준 규칙에 존재하지 않는 지어낸 내용이다. [source_doc] | 엔티티의 EnabledInHierarchy가 변경되었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **boolean EnabledInHierarchy** 엔티티의 E

[task] | code [pass] | ✅ 통과 [title] | PixelGUIRendererComponent [question] | F 키를 누르면 PixelGUIRendererComponent 의 화면 전체를 Color.black 으로 채운 후, _UtilLogic:RandomIntegerRange 를 이용해 9개의 무작위 좌표를 생성하여 self.Puzzles 테이블에 저장하고, 저장된 순서대로 _UtilLogic:RandomIntegerRange 로 생성된 좌표에 Color.yellow 로 픽셀을 설정하고 0.35초 대기 후 Color.black 으로 되돌리는 로직을 실행하는 스크립트를 작성해줘 [answer] | 요청하신 로직을 수행하는 mLua 스크립트입니다. ```lua Property: [None] table Puzzles = {} [None] PixelGUIRendererComponent PixelGUIRendererComp Method: [client only] void OnBeginPlay() { self.PixelGUIRendererComp = self.Entity.PixelGUIRendererComponent } [client only] void StartPuzzle(number index) { if ind [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 요청 로직을 정확히 구현했으나, 참고 문서와 달리 FillColor와 좌표 생성 로직을 OnBeginPlay가 아닌 이벤트 핸들러로 이동시켜 문서와의 일관성이 떨어집니다. [source_doc] | F 키를 누르면 픽셀이 무작위로 깜빡이는 예제입니다. ```lua Property: [None] table Puzzle = {} [None] PixelGUIRendererComponent PixelGUIRendererComp [None] table PuzzlePos = {} Method: [client only] void OnBeginPlay() { self.PixelGUIRendererComp = self.Entity.PixelGUIRendererComponent self.PixelGUIRendererComp:FillCol

[task] | code [pass] | ✅ 통과 [title] | MenuPopupOpenedEvent [question] | InputService의 MenuPopupOpenedEvent를 처리하여 메뉴가 열렸을 때 특정 UI 컴포넌트의 가시성을 true로 변경하는 스크립트를 작성해줘 [answer] | `InputService`의 `MenuPopupOpenedEvent`는 메뉴 팝업이 열릴 때 **Client** 공간에서 발생합니다. 이 이벤트를 처리하여 특정 UI 컴포넌트의 가시성을 변경하는 스크립트는 아래와 같이 작성할 수 있습니다. 참고로, 제공된 문서에는 `MenuPopupOpenedEvent`가 `InputService`에 의해 Client 공간에서 발생한다는 정보와 기본 생성자 정보만 포함되어 있으며, UI 컴포넌트 접근 방법이나 가시성 변경 API에 대한 구체적인 명세는 문서에 없습니다. 따라서 아래 예제는 mLua [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 UI API를 지어내지 않고 명시적 주의사항을 달아 정직하게 답변했으며, mLua 문법 규칙도 정확히 준수했습니다. [source_doc] | 메뉴 팝업을 열 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **MenuPopupOpenedEvent()** 기본값으로 MenuPopupOpenedEvent를 초기화합니다.

[task] | code [pass] | ✅ 통과 [title] | PixelGUIRendererComponent [question] | InputService 의 KeyDownEvent 를 처리하여 F 키가 눌리면 self.PixelGUIRendererComp:FillColor(Color.black) 을 호출하고, PixelGUIRendererComponent 의 Width 와 Height 범위 내에서 _UtilLogic:RandomIntegerRange 를 사용하여 10개의 무작위 좌표를 self.RandomPixels 테이블에 저장하며, 저장된 좌표 순서대로 SetPixel 로 Color.red 를 적용하고 0.5초 대기 후 Color.black 으로 초기화하는 [answer] | F 키가 눌리면 배경을 검정색으로 채우고, `PixelGUIRendererComponent`의 `Width`와 `Height` 범위 내에서 10개의 무작위 좌표를 생성하여 `self.RandomPixels` 테이블에 저장합니다. 이후 저장된 순서대로 해당 픽셀에 `Color.red`를 적용하고 0.5초 대기 후 `Color.black`으로 초기화하는 로직을 포함합니다. ```lua Property: [None] table RandomPixels = {} [None] PixelGUIRendererComponent PixelGUIRe [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 요구사항(F키, FillColor, 10개 좌표 생성, SetPixel/대기/초기화 순차 실행)을 mLua 문법과 API에 맞춰 정확하고 명확하게 구현했습니다. [source_doc] | F 키를 누르면 픽셀이 무작위로 깜빡이는 예제입니다. ```lua Property: [None] table Puzzle = {} [None] PixelGUIRendererComponent PixelGUIRendererComp [None] table PuzzlePos = {} Method: [client only] void OnBeginPlay() { self.PixelGUIRendererComp = self.Entity.PixelGUIRendererComponent self.PixelGUIRendererComp:FillCol

[task] | code [pass] | ❌ 탈락 [title] | ExitPopupClosedEvent [question] | InputService 의 ExitPopupClosedEvent 를 통해 종료 팝업이 닫히면 _TimerService 로 2초 후 _SceneService 로 메인 씬으로 전환하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `ExitPopupClosedEvent`가 `InputService`에서 발생하는 이벤트임을 확인 할 수 있습니다. 요청하신 `_TimerService`와 `_SceneService` API의 구체적인 메서드 명(예: `SetTimerOnce`, `ChangeScene` 등)이 제공된 문서에 포함되어 있지 않아, 정확한 API 이름을 지어낼 수 없습니다. 따라서 **제공된 문서 범위 내에서 `ExitPopupClosedEvent` 핸들러만 작성**해 드립니다. 실제 구현 시에는 `_TimerService`와 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=4 coherence=4 complexity=3 verbosity=3 [judge_reason] | 문서에 없는 API를 지어내지 않고 정직하게 한계를 명시했으나, system 규칙에 포함된 _TimerService 메서드와 씬 전환 관련 표준 구문을 무시하여 실질적인 코드 완성을 거부했으므로 유용성이 낮음 [source_doc] | 종료 팝업을 닫을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * InputService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **ExitPopupClosedEvent()** 기본값으로 ExitPopupClosedEvent를 초기화합니다.

[task] | instruction_following [pass] | ✅ 통과 [title] | RateLimitService [question] | RateLimitService의 4가지 SetServerFunctionRateLimit 메서드의 적용 대상과 차이를 표로 정리해서 [answer] | RateLimitService의 4가지 메서드는 제한을 적용하는 대상의 범위가 다릅니다. 특정 엔티티의 특정 컴포넌트 함수부터, 로직/서비스의 함수, 그리고 전체 서버 함수 호출량까지 세분화하여 제한을 설정할 수 있습니다. | 메서드 이름 | 적용 대상 | 설명 | | :--- | :--- | :--- | | `SetServerFunctionRateLimitForComponent` | **특정 엔티티의 특정 컴포넌트 함수** | 특정 엔티티(`entityId`)에 속한 특정 컴포넌트(`componentName`)의 특정 serve [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 4가지 메서드의 적용 대상, 파라미터, 및 동작 방식을 표와 설명으로 정확하고 명확하게 정리하여 질문에 완벽히 부응함. [source_doc] | 스크립트 및 네이티브 API의 사용량을 제한하는 기능을 제공합니다. # Methods - **void SetServerFunctionRateLimitForComponent(string entityId, string componentName, string functionName, int32 maxToken, float tokenRefillPerSecond) [ServerOnly]** 특정 엔티티에 속한 컴포넌트의 server 실행 제어 함수 호출량을 제한합니다. 유저가 함수를 호출할 때마다 토큰이 1개씩 차감됩니다. 토큰을 모

[task] | instruction_following [pass] | ✅ 통과 [title] | RateLimitService [question] | SetServerFunctionRateLimitForService 호출 시 첫 번째 인자로 전달되는 서비스 이름과 두 번째 인자로 전달되는 함수 이름을 2문장 이내로 설명하세요. [answer] | 첫 번째 인자는 제한을 적용할 대상 서비스의 이름(예: "TeleportService")을, 두 번째 인자는 해당 서비스 내에서 호출 빈도를 제한할 특정 함수의 이름(예: "TeleportToEntityPath")을 전달합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 인용하여 첫 번째 인자(서비스 이름)와 두 번째 인자(함수 이름)의 의미를 2문장 이내로 명확하고 정확하게 설명했습니다. [source_doc] | server 함수 제한을 설정하는 예제입니다. 설정한 제한은 해당 룸에서만 동작하기 때문에 Logic에서 관리하는 것을 권장합니다. ```lua Method: [server only] void OnBeginPlay() { -- TeleportService의 TeleportToEntityPath 함수에 제한을 설정합니다. _RateLimitService:SetServerFunctionRateLimitForService("TeleportService", "TeleportToEntityPath", 3, 0.1) -- 직접 만

[task] | two_turn [pass] | ✅ 통과 [title] | RateLimitService [question] | RateLimitService는 스크립트 및 네이티브 API 사용량 제한에 어떤 기능을 제공하는가? [answer] | RateLimitService는 스크립트 및 네이티브 API의 사용량을 제한하기 위해 토큰 기반의 레이트 리밋 시스템을 제공합니다. 유저가 server 실행 제어 함수를 호출할 때마다 토큰이 1개씩 차감되며, 토큰이 모두 소진되면 해당 유저의 함수 호출이 제한됩니다. 제한된 토큰은 `tokenRefillPerSecond` 값에 따라 초당 일정량씩 재충전됩니다. 구체적인 제한 기능은 대상 범위에 따라 다음과 같이 나뉩니다: 1. **특정 컴포넌트 함수 제한**: `SetServerFunctionRateLimitForCompone [followup] | `SetServerFunctionRateLimitForComponent`를 사용해 특정 엔티티의 컴포넌트 함수 호출을 제한하는 코드 예제를 작성해 주세요. [followup_answer] | `SetServerFunctionRateLimitForComponent`를 사용하여 특정 엔티티의 컴포넌트 함수 호출을 제한하는 코드 예제는 다음과 같습니다. 이 예제에서는 유저가 입장할 때(`HandleUserEnterEvent`) 해당 유저의 엔티티를 조회하여, `PlayerComponent`의 `MoveToEntityByPath` 함수에 대해 최대 토큰 3개, 초당 0.1개 재충전으로 호출량을 제한합니다. ```lua Event Handler: [server only] [service: UserService] HandleU [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | RateLimitService의 기능과 메서드, 이벤트를 정확히 설명했으나, 예제 코드에 존재하지 않는 TeleportService와 TeleportToEntityPath를 지어내어 정확도가 약간 낮아짐. [source_doc] | 스크립트 및 네이티브 API의 사용량을 제한하는 기능을 제공합니다. # Methods - **void SetServerFunctionRateLimitForComponent(string entityId, string componentName, string functionName, int32 maxToken, float tokenRefillPerSecond) [ServerOnly]** 특정 엔티티에 속한 컴포넌트의 server 실행 제어 함수 호출량을 제한합니다. 유저가 함수를 호출할 때마다 토큰이 1개씩 차감됩니다. 토큰을 모

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