0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【マインクラフト(統合版)】Websocketサーバーを使って「スウィープロッド(範囲攻撃)」を作ってみました

Last updated at Posted at 2024-07-30

はじめに

以下のように「スウィープロッド」をメインハンドに持った状態で「ダッシュ+スニーク」操作を実行する事で範囲攻撃が発動します。
対牛発動

射程距離は5ブロックで、発動時に範囲内にいるモブに大ダメージを与えます。
ダメージ付与ポイントは現在15ポイントに設定していますので牛や羊などのモブは一撃で倒せます。

対ハスクの場合は2回の連続攻撃で倒せます。
以下の2回目の攻撃のように空中でも発動します。
対ハスク発動

動作環境

プラットフォーム
Windows10
マインクラフト(統合版)
Windows Edition v1.21.2
socket-manager
v1.13.3
言語
PHP v8.2.4(v8.1.0以降)

「スウィープロッド」の取得

socket-manager環境のビヘイビアパック/リソースパックなどのアドオンパックを適用しておけば、以下の方法でユニークアイテムとして「スウィープロッド」が手に入ります。

ショップで購入する場合

以下のショップで購入できます。

コマンドで取得する場合

以下はワールドオーナーやシステム組み込み用としてコマンドで取得する方法です。

あとはsocket-managerでWebsocketサーバーを起動後、マインクラフトからの接続が完了すれば「スウィープロッド」を含めた各種コンテンツが使えるようになります。

socket-managerの導入方法やアドオンパックの所在については以下のページでご紹介していますのでご興味のある方はご覧ください。

アドオンパックの適用方法については以下のページでご紹介しています。

サーバー側の実装

今回は二段ジャンプの実装でも使っていた"PlayerTravelled"というサブスクライブイベントを使用しています。
travelMethodの値(7:スニーク、8:ダッシュ)をみてそのイベントがスニークなのかダッシュなのかを判断できるようになっています。

サブスクライブイベントの処理内容については以下のページでご紹介しています。

注意しないといけないのが、この"PlayerTravelled"はイベントが発生した時に1回だけ発行されるわけではありません。
プレイヤーの移動距離に応じて複数回イベントが発生しています。

実装内容の詳細は他のコンテンツも含めて以下のページでご紹介していますのでご興味のある方はご覧ください。

おわりに

今回の実装で思わぬ副産物がありました。

攻撃発動時に「ダッシュ+スニーク」操作でクリティカルのパーティクルを出しているのですが、以下のようにメインハンドで発動対象のアイテムを持っていなくてもパーティクルが表示されています。
パーティクル表示

もちろん「スウィープロッド」は持っていないので攻撃は発動していませんが、これはこれでカッコイイのでそのまま残しておきますw

今回の実装は以下の実装でも活用しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?