石橋を叩いて壊すブログ

簡単なボスモンスターをクライアントMOD不要で追加するプラグインを書いてみた

プラグイン作りのサンプル用として簡単なソースにとどめつつ、
マルチワールドでみんなで楽しめるコンテンツとして、
ボスモンスターを追加するBukkitプラグインを書いてみた。
クライアントMODは不要。


こちらが追加されるボス。スケルトンに鉄の装備を着せている。
ヘルメットをかぶっているため太陽光でも燃えない。名前が誰かに似てるのは気のせい。

このボスは4つの必殺技を持っており、攻撃を受けるとたまに必殺技で反撃してくる。


トルネードショット。
360度全方向に発射される矢に逃げ場はない。


シャワーショット。
頭上に向けて放たれた矢は豪雨のように襲い掛かる。


マシンガンショット。
間断なく打ち込まれる矢がターゲットを針のむしろにする。


ヒールポーション。
打ち上げられたスプラッシュダメージポーションはスケルトンを回復しつつ周囲を襲う。

エンチャント付きダイヤ装備でないと倒せない程度に難しくしてあるが、
あくまでプラグイン作りの学習用なので、あまり精密な難易度調整はしていない。
また、MineCraftのバージョンが上がっても修正などはしないかもしれない。

導入

導入方法は簡単。BossMonster.jarファイルをダウンロードして、Bukkitのpluginsフォルダに入れるだけ。
Bukkitの1.6.2-R1.0 Recommended Build(ビルド番号2879)で動作確認済み。

BossMonster.jar - 10KB

使用

導入後、OP権限付きプレイヤーがゲーム内でコマンド「/boss」を実行すると、コマンド実行者のいる場所にボスが現れる。

「/boss 10」のように、コマンドの後ろに数字をつけると難易度調整ができる。指定しない場合のデフォルトは1。
基本的にはボスの討伐に参加する人数(10人なら10)を指定して、あとは好みで増減。

ソースコード

このプラグインは、6つのjavaソースファイルと、1つの設定ファイルからなっている。

もしEclipseをつかっているなら、BossMonsterというパッケージを作り、
そのなかに以下の構成になるよう7つのファイルを設定してビルドすれば動くはず。
ソースコードはわかりやすいよう多めに日本語でコメントを打ってあるので参考になれば幸い。
改造しての配布はご自由にどうぞ。


パッケージの構成

後日このプラグイン作りながら思ったことを徒然と書くと思う。


倒すとランダムな個数のダイヤモンドとエンダードラゴンと同等の経験値オーブを出す。

2013/09/25追記:
1箇所バグがあったので、添付ファイルを修正した。

誤:
286:			e.getEntity()
287:					.getWorld()
288:					.dropItem(e.getEntity().getLocation(),
289:							new ItemStack(Material.DIAMOND, rand.nextInt(65)));
正:
286:			e.getEntity()
287:					.getWorld()
288:					.dropItem(e.getEntity().getLocation(),
289:							new ItemStack(Material.DIAMOND, 1+rand.nextInt(64)));

rand.nextInt(65)は0以上65未満のランダムな整数を返すが、誤の状態だとゼロが返された場合
ゼロ個のダイヤモンドという無意味なアイテムスタックが生まれてしまうので、最低でも1個はダイヤモンドが出るようにした。

2014/08/03追記:
本プラグインの次バージョンを作成しました。

この記事を評価

200 54

コメント

  1. 古いコメント(15件)は省略されています。すべて表示
  2. 【石橋】 やってみた。setRemoveWhenFarAway(false)でたしかにデスポーンされなくなるみたい…なんだけど、アンロードはされるので、チャンクがアンロードされると一緒にアンロード→チャンクロード時に再ロードとなるのでエンティティオブジェクトとしてはequalsにはならないみたい。でもありがと。前回の村人のアンロードを防ぐ方法と併用でなんとかなるかな? [2014/4/25 18:49]
  3. 【あむたす】 なるほど。そんな方法があるとは...これからもplugin開発頑張ってください! [2014/4/27 00:00]
  4. 【ゲスト】 体験版の人はできますか? [2014/7/22 12:17]
  5. 【石橋】 体験版ではたぶん無理かな。ちょっと調べた限りでは、体験版はシングルプレイ専用みたい(改造すればいけるみたいだけど正規の手段かは判断しかねる)。まあシングルプレイにはシングルプレイのボス(エンダードラゴンとかウィザーとか)がいるからそれを討伐して遊ぶといいさ。 [2014/7/22 18:01]
  6. 【nakamura】 こんにちわ、いきなりすみませんが、今イベントを開こうとしていてプラグインを必要としています・・・ですが....ボクの力じゃ何にもできないんですよねwできればプラグインを作って欲しいのですがいいのであればSkypeに登録していただけないでしょうか?IDは(管理者権限で削除)です。こんないきなりで作ってくれるとは思っていませんがどうかよろしくお願い致しますorz [2014/10/18 22:42]
  7. 【石橋】 依頼は受け付けてないので、ごめんね。 [2014/10/19 01:58]
  8. 【おっか】 コマンドブロックでは起動できますか?または名前の変更やmobの変更はできますか? [2014/12/25 19:05]
  9. 【石橋】 あー、それ全部できないなあ。申し訳ない。mob変更しちゃうとスキル考えなきゃいけないから難しいんだ。例えば弓持ってないゾンビが弓スキルつかったりしたらおかしいからね。一応名前とか最大HPの変更とか考えてたらできたのが http://www.jias.jp/blog/?77 の記事だったりはする。 [2014/12/25 19:40]
  10. 【けんた】 ヤッバ [2015/7/5 18:38]
  11. 【yutadd】 すげーーーーーー [2018/3/27 18:13]

【この記事にコメント】
お名前:
コメント:

295,349

記事カテゴリー

最近の記事

  1. FF14を翻訳したら国によって結構特色が違った[12/11]
  2. ゼロから始めるFactorioの回路構築(実践例編)[7/24]
  3. ゼロから始めるFactorioの回路構築(条件回路・論理演算編)[7/24]
  4. ゼロから始めるFactorioの回路構築(定数回路・算術回路編)[7/24]
  5. ゼロから始めるFactorioの回路構築(入力・出力・混合編)[7/24]

RSS1.0 RSS2.0

最近のコメント

  1. おー、お役に立てたようでなによりです。再起…[9/11]
  2. この記事が非常の役立ちました。おかげさまで…[9/9]
  3. 1.14.2のAPIで試しましたが、MapInitializeEv…[9/9]
  4. 天晴れ!押したらポーションのモヤモヤでまし…[5/26]
  5. 習うより慣れろって感じで。この記事は記事冒…[4/7]

記事を検索


管理人

石橋

自転車でどこへでも行く