2017-03-14 6 views
0

나는 https://github.com/walterhiggins/ScriptCraft/blob/master/docs/YoungPersonsGuideToProgrammingMinecraft.md을 읽고 아들과 함께 시도하고 싶습니다.Minecraft에서 ScriptCraft로 자동 사격 총을 만들 수 있습니까?

사용할 수있는 이벤트 목록이 있지만이 모드를 처음 접했을 때 내가 생각하고있는 것을 구현할 수 있는지 확신 할 수 없습니다.

말하자면, 평야에는 300x300 블록 크기의 내 성 주변에 영토가 있습니다. 나는 그 사각형의 좌표를 안다.

이제 폭도가 외부에서 내부로 경계를 교차하는지 추적 할 수 있습니까?

가능하다면 무엇을 찾아야합니까?

그런 다음 mob의 위치 방향으로 어떤 메커니즘을 추가 할 수 있습니까? 어떻게 생겼어? 또는 영역에 몹이 있다는 신호를 보냅니다.

일반적으로 나는 몹을 추적하고 이벤트에 대해 몇 가지 작업을 수행하려고합니다.

+0

http://jabelarminecraft.blogspot.nl/p/minecraft-forge-172-event-handling.html 어떤 ​​단조 버전을 사용할 계획인지 알 수는 없지만이 중 멋진 목록은 사용 가능한 단조 이벤트. – Tschallacka

답변

0

먼저 아들과 함께 탐험 해보십시오.

정확한 세부 정보를 제공하고 싶지만 ScriptCraft에 대한 내 친숙성은 제한적입니다. 그러나 Spigot (의견에 제안 된대로 Forge는 아님)을 기반으로하기 때문에, 나는 그 관점에서 답을 제공 할 수 있습니다. POJO를 자바 스크립트로 전문적 지식에 액세스하는 것에 대한 핵심적인 내용을 남겨 둘 것입니다.

플레이어의 움직임에 따라 PlayerMoveEvent 이벤트가 발생하지만 다른 엔터티/mob에는 해당 이벤트가 없습니다. 존재한다면 엔티티의 위치가 경계선을 벗어나 그에 따라 처리하는지 여부를 확인하는 것이 중요합니다.

가장 간단한 방법은 World에있는 getLivingEntities()을 호출하는 함수를 정의하여 목록에 대한 반복기를 사용하여 엔터티 유형을 결정하고 원하는 작업을 수행하는 것입니다. 당신 장벽을 깨뜨렸다 고 발표합니다. 이 기능은 BukkitScheduler이 반복되는 동기 작업으로 예약 된 작업으로 등록됩니다. 나는이 지연된 비동기 작업에 대한 것이지만 작업 예약을 위해이 example을 발견했습니다. 여러 기관과 대형 서버에서

load(__folder + "../drone/drone.js"); 
load(__folder + "../core/scriptcraft.js"); 

Drone.extend("big",function(){ 
    server.scheduler.scheduleAsyncDelayedTask(global.plugin,function(){ 
     (new Drone()).box(1,500,100,500); 
     print("done"); 
    }); 
}); 

, 상기 방법은 보호 된 영역을 포함하는 각 액세스 Chunk getEntities()과 함께 내부에 포함 엔티티를 검색함으로써 최적화 될 것이다.