0コメント

【Bukkit plugin】魔導書作ってみた。Part2【Minecraft Java Edition / spigot】

('ω')たのしい。


ので、色々とやってみるよ。(曖昧過ぎて草)


スクリーンショット 2021-10-19 235335.png


例外処理みたいなのとかを今は書いてる


値を認識できたが、魔法を発動させるうえで必要な数の設定項目が認識できないときは発動失敗で


自爆します。

スクリーンショット 2021-10-20 000256.png

イマイチ感覚がつかめていない部分もあるんだけどとりあえずこれは自分で書いた。


リファレンスと見ながら、弓矢を召喚する時もなんかインスタンス化してたからクリーパーをインスタンス化して色々項目いじって、召喚する・・・みたいなことをやりたかったんだけど


偶然createExplosionという項目があることに気づき。


座標(Location), 爆発力(float), 爆発時のブロック破壊(boolean), 爆発時の炎タイル接地処理(boolean)


らしいのでその通り記述。


Explosive explosiveにインスタンス化しようとしたんだけど、booleanしか格納できないみたいな。


そもそもExplosiveって型が予測変換で出ただけで詳細知らんから調べようかなとか思ったんだけど、



インスタンス化せずに行けた。


前回記述した矢を召喚する時にインスタンス化していたのは、発射済みの矢をArrayList<Entity> arrowsに格納するためって事にさっき気付いた。


格納して、削除処理


削除処理はRemoveEntities(参考サイトのファイル)で行っていたらしく、それも後から追加。


BukkitRunnableを使って遅延させながら処理してるみたいだなっていうのが


new RemoveEntities(arrows).runTaskLater(plugin,5 * 20);


newはインスタンス生成を意味しているってどっかに解説があった


でも代入してないってことは、一度インスタンスとして実行してそれっきりって事・・?


runTaskLaterっていうのが、BukkitRunnableのメソッドで


runTaskLater​(Plugin plugin, long delay)
Schedules this to run after the specified number of server ticks.

らしい。


5*20にしてくれてるのは分かりやすいようにしてくれてるのかな。ありがたい。


マイクラだと1分間に60秒が流れている・・・ではなく


1分間1200tick。1秒間20tick。つまり、tick単位で5秒×20tickって分かるね。なんでlong型なのかは分からんが・・・tickを扱う系のだと桁数が多くなりやすいからlongなのか・・・?




かいた。

スクリーンショット 2021-10-20 012642.png


引数5個用意して、威力、同時発射量、矢の数、拡散率、発射速度を設定できるようにしてみた。


全振り脳筋ステで一回やってみたんだけど、同時発射が拡散減衰のせいで恩恵を受けられてないというw


でもまあ、ウィザーに直撃させたら、一度の発動で130dmgくらい持っていけた



これ・・・対人戦闘用魔法にするなら変えないとだな・・・w



0

この記事へのコメント