高さ縛りデータパックを作ろう2

スポンサーリンク
Minecraft

前回の続き。第2回目。tick.jsonを正しく作成し、周期処理が行われるように設定しよう。

【この記事での目標】周期処理が行われるように設定しよう

スポンサーリンク

tick.json

「tick」は、時計のチクタクを表す擬音の英単語です。

その名の通り、周期処理の制御ができます。

Minecraftでは、ブロックの状態や時刻の更新、Mobのスポーンやイベントの発生などといったゲームの動作に必要な処理を、すべて包括して一つのループに組み込み周期的に実行している。このループ1回のことをティック(英:Tick)またはゲームティック(英:Game Tick)と呼ぶ。

ティック Minecraft Wiki

つまり、ある周期毎にゲーム内部で更新がかかっており、そこに独自の処理を入れてしまおうということをデータパック作成ではやりたい。

そのtickを設定する「tick.json」を作ります。

tick.jsonの場所

datapackのルートディレクトリから、「data/minecraft/tags/functions」の配下に「tick.json」という名前で配置させます。

tick.jsonの中身

valueの中にArrayで定義します。Arrayの中には、「名前空間:function名」で設定します。

{
    "values": [
    "limit_height:damage"
    ]
}

呼び出すmcfunctionを作成する

tick.jsonに設定したfunction「limit_height:damage」を作成しましょう。

前回をもとに高さを超えた場合にダメージを与える処理を書き込みます。

前回ではコマンド実行したのでターゲットセレクタを「@s」にしましたが、tickの場合「@s」は使えない点に注意しましょう。

execute as @a store result score @a position run data get entity @s Pos[1]

execute as @a if score @s heigher < @s position run effect give @a instant_damage 1 1 true

動作確認

動作確認のためにコマンドブロックを置いて、ボタンクリックでscoreを+5している。

1人プレイであればちゃんと動いているといえそうだ。

まとめ

tickの設定と、その呼び出し先のfunctionを作成しました。

次回は、取得ブロックの管理の検討をします。

コメント

タイトルとURLをコピーしました