0コメント

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

こにゃにゃちわ=^_^=

java言語って難しいなとか思いながらも、色々なサイトを調べながらついにここまで出来たって感じなのでまとめてみる。

この動画を見てもらえれば何を作ったかっていうのは分かると思うが、本を開く(or殴る(使う))と矢を発射する魔法?って感じ。

今回はみんな大好きコマンドでの実装・・・ではなく、ちゃんとしたプログラミング言語で書いたため、当然感覚は異なり。

今日は午後五時…より前か?から、夕飯を挟んだとはいえ午前三時の今まで書いてた。

引用元:
     のBossMonster,Skill,MachinegunShotクラス
今回書いたコード
スクリーンショット 2021-10-17 031809.pngスクリーンショット 2021-10-17 031749.pngスクリーンショット 2021-10-17 031738.png

bookメソッドをメインクラスで宣言しておいて、これが元。

流れとしては、記述済みの本を使う(殴るか、開く)と、62行目のreturnで返されずに後述の処理に続く。

さらに、本の名前にmagicって混じってたら本処理が実行

本の1ページ目のテキストを読み込んで行ごとに配列にぶち込む

で二進数の文字列をint型の10進数に変換する

何故かというと、中に2進数で記述して、それを読み込んでるから。意味はない。()

ちなみに今回のプログラムは魔法識別するための一行目と、2行目以降威力や速度のパラメータ

って感じで記述

00000001
0011
0010
0010
0100
0100

今回は魔法識別の1行目と威力決定の2行目だけだけど、

いろいろ制約をかけて各自で記述させて自分のMPと相談しながら魔法を構築できる、みたいなの面白くない?????

ちょっと難易度高そうだけど。プレイヤーが小中学生含むと考えれば。


話を戻すと、これで一行目の値の魔法識別はswitch文で識別。

でSimpleArrowShotクラスのSimpleArrowShotメソッドを呼び出し魔法の初期設定。ここで値に準じた設定をするんだけど、見ての通り2行目の値しか使ってないので威力とかも変えてみたいな。

そしてSkillクラスの方の・・・BukkitRunnableでrunメソッドからfireメソッドを実行

処理が終わったらcalcelを呼び出してsuper.cancel()で

super.cancelって何・・・?


引用元のコードの一部をコピペして使ってるんだけど、どうやらそれの残骸らしく、スーパークラス(親クラス)のcancelメソッドを呼び出してる(途中で終了した時にこっちの処理も終了させるために用意してあるみたい?)から、それを使ってない今回はいらないって事だね

何が難しかったかって、継承。

やったことが無かったもので。

とりあえず、SimpleArrowShotを呼び出して、extendsで参照している親クラスのSkillで情報取得して・・・みたいなのは何となくわかった

今後も色々やってみようかな。

プラグインを初めてまともに書いた、という記事でした。

0

この記事へのコメント