2017-03-14 1 views
0

私はhttps://github.com/walterhiggins/ScriptCraft/blob/master/docs/YoungPersonsGuideToProgrammingMinecraft.mdを読んでいて、私の息子と試してみたい。私はScriptCraftでMinecraftで自動射撃ガンを構築できますか?

利用可能なイベントの一覧がありますが、このモッズの新機能です。私が考えていることを実装できるかどうかはわかりません。

私の城の周りには、プレーンフィールドの300x300ブロックの広場があります。私は正方形の座標を知っています。

ここで、暴徒が外界から内界に交差するかどうかを追跡できますか?

可能であれば、私が探すべきイベントは何ですか?

次に、mobの位置の方向に何かを通すメカニズムを追加できますか?どのように見えますか?あるいは、暴徒がゾーン内にいることを通知するだけでも。

一般に、私はmobsを追跡し、イベントに対していくつかのアクションを実行します。

+0

http://jabelarminecraft.blogspot.nl/p/minecraft-forge-172-event-handling.html使用する予定の偽造バージョンはわかりませんが、これは利用可能な鍛造イベント。 – Tschallacka

答えて

0

最初に、あなたの息子とこれを探検するための名声。

私は厳密な詳細を提供したいと思いますが、ScriptCraftに精通しています。しかし、それがSpigot(コメントに示唆されているようにForgeではない)に基づいているとすれば、私はその観点から答えを出すことができます。 JavaScriptを使用してPOJOにアクセスするにあたっての熟練した詳細を残しておきます。

プレーヤーの動きがPlayerMoveEventイベントを発生させている間、他のエンティティ/モブには対応するイベントはありません。存在する場合は、エンティティの場所が境界を突破してそれに応じて処理しているかどうかをチェックすることになります。

最も単純なアプローチは、WorldgetLivingEntities()を呼び出す関数を定義し、リストの反復子を使用してエンティティのタイプを判別し、必要なアクションを実行することです。あなたの障壁に違反していると発表します。この機能は、同期タスクの繰り返しとして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"); 
    }); 
}); 

、アプローチは、保護領域を含有し、getEntities()とそこに含まれるエンティティを取得各Chunkにアクセスすることによって最適化されるであろう。

関連する問題