새로 오신 분들은 길라잡이위키 규칙을 꼭 읽어주세요.  문서 작성번역을 도와주시면 이 위키에 큰 힘이 됩니다.

베드락 베타 스크립트 설명서

Minecraft Wiki
이동: 둘러보기, 검색

버전 : 1.9.0.3[편집 | 원본 편집]

이것은 마인크래프트의 베타 릴리스에 대한 문서에요. 이 릴리스의 새로운 기능, 구성 요소 및 기능은 최종본이 아니며 최종 릴리스 전에 예고없이 변경 될 수 있어요. 추가 기능이 제대로 작동하지 않으면 릴리스가 베타 버전에서 벗어난 후 문서를 확인하세요. 베타 용으로 작성된 리소스 및 동작 팩은 최종 릴리스에서 작동하지 않을 수 있어요.

스크립팅 체계[편집 | 원본 편집]

마인크래프트 스크립팅 엔진은 JavaScript 언어를 사용해요.
JavaScript 스크립트를 작성하고 행동 팩과 함께 묶어 게임 이벤트를 듣고 응답하고, 개체가 가지고있는 구성 요소의 데이터를 얻고 수정하고, 게임의 다른 부분에 영향을 줄 수 있어요.

데모[편집 | 원본 편집]

스크립트 작성을 시작하는 데 도움이되는 마인크래프트의 친구 데모를 소개해요. 간단히 압축을 풀어 코드를 확인하거나 .mcpack으로 가져 와서 실행할 수 있어요.

데모 마지막 업데이트 다운로드 링크
몹 아레나 12/5/2018 https://aka.ms/minecraftscripting_mobarena
턴 기반 RPG 12/5/2018 https://aka.ms/minecraftscripting_turnbased

알려진 문제[편집 | 원본 편집]

이곳에서 다루지 않을거에요.

선수 조건[편집 | 원본 편집]

그래서 자신 만의 스크립트를 만들고 싶나요? 멋져요! 이 섹션에는 필요한 최소 및 권장 소프트웨어 목록이 있어요.

소프트웨어 최저 추천
코드 편집기 Visual Studio 코드 또는 일반 텍스트 편집기 다음 구성 요소가 설치된 Visual Studio Community 2017 : 'JavaScript 진단', 'JavaScript 및 TypeScript 언어 지원', 'Just-In-Time 디버거'
디버거 N / A Visual Studio 커뮤니티 2017
마인크래프트
다른 것 사용할 수있는 바닐라 행동 팩 https://aka.ms/MinecraftBetaBehaviors 사용할 수있는 바닐라 행동 팩 https://aka.ms/MinecraftBetaBehaviors
저장 텍스트 편집기, 게임 및 스크립트를위한 1.0GB의 여유 공간 Visual Studio, 게임 및 스크립트를위한 3.0GB의 여유 공간

시작하기[편집 | 원본 편집]

먼저 최신 바닐라 행동 패키지를 다운로드해야해요. 다음 링크에서이 정보를 얻을 수 있어요. https://aka.ms/MinecraftBetaBehaviors
행동 팩을 다운로드 한 후 폴더에 압축을 풀어요. Behavior Pack에는 실행하려는 모든 스크립팅 파일이 들어있는 scripts 폴더가 있어요.
scripts 폴더에는 클라이언트 스크립트용과 서버 스크립트용의 두 가지 폴더가 있어요.
-Server Scripts: 이 스크립트는 게임의 서버 측에서 실행돼요. 여기에는 새로운 개체를 생성하거나, 구성 요소를 추가하거나, 개체의 구성 요소를 수정하는 작업이 포함돼요.
-Client Scripts: 이 스크립트는 게임의 각 플레이어 측에서 실행돼요. 이것은 이벤트에 응답하고 플레이어와 관련된 모든 것을 관리하기에 좋은 장소에요.
클라이언트 또는 서버 스크립트를 작성했는지 여부를 결정한 후에는 .js 확장자를 가진 빈 텍스트 파일을 해당 폴더에 추가하고 기본 코드 편집기에서 열면돼요. 멀리 코드! 여기에 원하는만큼의 JavaScript 파일을 만들 수 있습니다 (파일 이름은 중요하지 않습니다). 그리고 그들은 서로 독립적으로 실행됩니다!

참고 : 게임에서 스크립트를 실행하려면 스크립트를 실행할 세계에서 Experimental Gameplay를 활성화 해야돼요. 스크립팅이 아직 베타 버전 인 동안이 작업이 필요해요.
클라이언트 스크립트가 포함 된 세계에 들어가면 기기에서 스크립트를 실행한다는 사실을 수락할지 묻는 메시지가 표시돼요 (로컬 및 멀티 플레이어 환경 모두에 표시됨).

폴더 구조
바닐라 행동 팩
|-scripts
|--client
|---myClientScript.js
|--server
|---myServerScript.js
|-manifest.json
|-pack_icon.png

스크립트의 구조[편집 | 원본 편집]

이 섹션에서는 마인크래프트 스크립트 엔진을위한 JavaScript 스크립트 파일의 기본 구조에 대한 간단한 설명을 볼 수 있어요. JavaScript에 대해 더 자세히 배우고 싶거나 기본 튜토리얼을 따르고 싶다면 Mozilla 개발자 네트워크에서 공식 문서를 확인하세요. https://developer.mozilla.org/docs/Web/JavaScript
이러한 방식은 스크립트의 필수 부분이지만 절대로 사용자가 가질 수있는 유일한 부분은 아니에요. 필요에 따라 추가 메서드를 만들 수 있어요. 아래 메서드 중 하나에서 호출해야해요.


1. 시스템 등록

먼저 파일에 시스템을 등록해야돼요. 이것은 우리 스크립트가 클라이언트 또는 서버 스레드 중 하나에 설정되도록 서명해요. 일반적으로 클라이언트 또는 서버 폴더에 스크립트 파일을 넣을 지 여부에 따라 선택해요. 이를 수행하려면 클라이언트 또는 서버에서 registerSystem을 호출하고 필요한 API 버전을 지정하기 만하면돼요.

매개 변수
유형 이름 설명
정수 주요한버전 이것은 스크립트가 작업하도록 설계된 마인크래프트 스크립트 엔진의 주요 버전이에요.
정수 부조화 스크립트가 작동하도록 설계된 마인크래프트 스크립트 엔진의 개정판이에요.
코드 예제
클라이언트 체계
let sampleClientSystem = client.registerSystem(0, 0);
서버 체계
let sampleServerSystem = server.registerSystem(0, 0);


2. 시스템 초기화

이것은 시스템이 등록 된 직후에 호출되는 첫 번째 메소드에요. 세계 시작에서 스크립트가로드되는 즉시 실행돼요.
이 기능을 사용하여 스크립트 환경을 설정할 수 있어요. 사용자 정의 구성 요소 및 이벤트 등록, 이벤트 리스너 등록 등이 가능해요. 월드가 준비되고 플레이어가 추가되기 전에 실행되기 때문에 시도하지 않아야해요. 여기에 개체를 생성하세요!

코드 예제
sampleSystem.initialize = function() {
	//Initialize all the things
};


3. 체계 업데이트

이 메서드는 게임 틱마다 한 번 호출돼요. 서버와 클라이언트는 초당 20 회 틱해요. 이 기능은 구성 요소 변경을 확인하고 확인하고 이에 대응할 수있는 좋은 기회에요.

코드 예제
sampleSystem.update = function() {
	//Update all the things
};


4. 체계 종료

이 메소드는 마인크래프트 스크립트 엔진이 종료 될 때 호출돼요. 클라이언트를 위해 이것은 세계를 떠날 때에요; 서버의 경우 이것은 마지막 플레이어가 세계를 빠져 나간 후에요.

코드 예제
sampleSystem.shutdown = function() {
    //Cleanup all the things
};

디버깅[편집 | 원본 편집]

스크립트가 작동하지 않거나 원하는 것을하고 있나요? 두려워하지 마세요! 스크립트 엔진에 디버깅 기능을 내장하여 스크립트로 진행되는 작업을 파악할 수 있어요. 프로그래밍에 익숙하지 않거나 디버깅에 대해 더 알고 싶다면 Visual Studio에서 디버깅에 대한 설명서를 참조하세요 (https://docs.microsoft.com/visualstudio/debugger).

스크립트로 문제가 발생했을 때 어떤 일이 벌어 졌는지 알려주는 두 가지 방법이 있어요 : 게임 내 및 고급. 게임 내에서 디버깅하려면 게임과 스크립트 만 있으면되지만 고급 디버깅을 위해서는 Windows 10 PC와 Visual Studio가 설치되어 있어야해요.

인 게임

게임에서 스크립트를 실행하면 스크립트 엔진은 문제가 발생할 때마다 오류 메시지를 출력해요. 예를 들어 스크립트 엔진이 알지 못하는 구성 요소를 가져 오려고하면 오류가 발생하게돼요.
이 메시지를보기 위해 생성 된 모든 오류 메시지가있는 대화 화면을 열 수 있어요. 또는 게임이 생성 한 로그 파일을 열 수 있어요. 로그 파일의 위치는 플랫폼에 따라 달라요. Windows 10에서 다음 위치에서 로그 파일을 찾을 수 있어요:

%APPDATA%\..\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\logs

스크립트에 대한 작업을하면서 스크립트에 디버그 메시지와 도구를 추가로 빌드하는 것이 좋아요. 이렇게하면 무언가가 제대로 작동하지 않을 때 분별할 수 있어요. 추가 도움이 필요하면 공식 Discord 채널에 문의하세요. https://discord.gg/Minecraft


실제 시간 (Advanced)

Visual Studio가 설치된 Windows 10 PC가있는 경우 Visual Studio 디버거를 연결하고 스크립트를 실시간으로 디버깅 할 수 있어요.
이 문서의 "권장"절에서 언급 한 구성 요소로 Visual Studio를 설치 한 경우 JIT (Just-In-Time Debugger)가 설치되어 활성화되어요. 이 도구는 스크립트에서 예외가 발생할 때마다 Visual Studio에서 메시지를 팝업하고 스크립트가 손상된 줄에서 Visual Studio를 열 수있게해요.

또한 스크립트 엔진에 수동으로 연결하고 코드를 디버깅 할 수 있어요. 원격 디버깅을 사용하여 다른 장치에서 실행중인 Minecraft를 연결하고 디버깅 할 수 있어요. 원격 디버깅 사용 방법에 대한 지침은 위의 Visual Studio 디버거 설명서를 참조하세요.
먼저 Visual Studio를 시작해야해요. 설치 후 Visual Studio를 처음 시작한 경우 JavaScript 개발을위한 환경을 설정하고 메시지가 표시되면 Microsoft 계정에 로그인하는 것이 좋아요. 이렇게하면 필요한 가장 중요한 도구로 Visual Studio 인터페이스가 설정돼요.
Visual Studio가 열리면 마인크래프트를 실행해야해요. Experimental Gameplay가 활성화 된 새로운 세상을 만들고 스크립트가 포함 된 행동 팩을 적용하세요.
세계를 만든 후에 Visual Studio로 돌아가 디버그 메뉴를 클릭하세요. 그런 다음 "프로세스에 첨부"를 클릭하세요. 창이 열리면 필터 프로세스라는 검색 창이 나타나요. 클릭하고 마인크래프트를 입력해요.
목록이 마인크래프트가 실행중인 인스턴스로만 좁혀지면 유형 열을보고 스크립트 엔진이 실행 중인지 확인할 수 있어요. 이것은 스크립트와 x86 또는 x64 중 하나를 말해요.

프로세스를 선택하고 '붙히기'를 클릭하여 디버거를 게임에 연결하세요. 이제 스크립트 코드의 다음 줄이 실행될 때 일시 중지 단추를 눌러 스크립트 엔진을 일시 중지 할 수 있어요. 이렇게하면 스크립트에서 변수 값을 검사하고 코드에서 오류가 발생하면 Visual Studio로 침입 할 수 있어요.

경고 : 디버거를 사용하여 코드를 단계별로 진행하기 위해 중단 점을 누르면 클라이언트가 시간 초과 및 연결 끊기를하거나 서버가 모든 플레이어의 연결을 끊을 수 있어요.

스크립트 바인딩[편집 | 원본 편집]

바인딩은 게임에서 물건을 변경하거나 수정하는 마인크래프트 스크립트 엔진의 기능이에요.

개체 바인딩[편집 | 원본 편집]

createEntity()

컴퍼넌트를 가지지 않는 빈 상태 (empty)의 개체를 작성해, 그 개체를 세계에 배치하지 않아요.

Return Value
유형 설명
JavaScript object object 새롭게 작성된 개체를 나타내는 EntityObject
매개 변수
유형 이름 설명
String __식별자__ 읽기 전용. 이것은 namespace : name 형식의 오브젝트 식별자에요. 예를 들어 유형이 개체이고 개체가 바닐라 소를 나타내는 경우 식별자는 minecraft : cow에요.
String __유형__ 읽기 전용. 이것은 우리가 사용하고있는 개체의 유형을 정의해요. 가능 : entity, item_entity, level, component, query
Integer id 읽기 전용. 이것은 세계 개체의 고유 한 식별자에요.
JavaScript Object null 항목을 만들 때 문제가 발생했습니다.



createEntity(Type, 템플릿 식별자)

개체를 만들고 JSON에 정의 된대로 지정된 템플릿을 적용해요. 이렇게하면 스크립팅에서 생성 된 개체의 기반으로 적용된 동작 팩에서 개체를 빠르게 만들 수 있어요. 개체는 지정된 식별자의 JSON 파일에 정의 된 모든 구성 요소, 구성 요소 그룹 및 이벤트 트리거를 사용하여 세계로 파생돼요. 서버에 등록 된 스크립트에서만 작동해요.

매개 변수
유형 이름 설명
String Type 템플릿에서 작성중인 개체의 유형을 지정해요. 유효한 입력은`entity`와`item_entity`에요.
String TemplateIdentifier 적용된 동작 팩의 개체 식별자 중 하나 일 수 있어요. 예를 들어 여기에 minecraft : cow를 지정하면 JSON에 정의 된대로 제공된 엔터티가 만들어져요.


Return Value
유형 설명
JavaScript Object object 새롭게 작성된 개체를 나타내는 EntityObject
매개 변수
유형 이름 설명
String __식별자__ 읽기 전용. 이것은 namespace : name 형식의 오브젝트 식별자에요. 예를 들어 유형이 엔터티이고 개체가 바닐라 소를 나타내는 경우 식별자는 minecraft : cow에요.
String __유형__ 읽기 전용. 이것은 우리가 사용하고있는 개체의 유형을 정의해요. 가능 : entity, item_entity, level, component, query
Integer id 읽기 전용. 이것은 세계 개체의 고유 한 식별자에요.
JavaScript Object null 항목을 만들 때 문제가 발생했습니다.