2017/04/15

Valkyrie Javelin!

弓と同じ動作で追尾性能を持つ槍を放ちます
というわけで、バルキリージャベリンを作ってみた。1.6付近と思われるメソッドを1.11.2用に作り替えてみたという話。えらい時間かかってしまった…(´・ω・`)

追尾性能を持つとはいえ、RayTraceResultでNullを吐きっぱなしになることがあるため、一定時間飛翔すると爆発するようにしています。一応、村人とアイアンゴーレムは追尾しない対象に。村守るときとか咄嗟に撃って当たったらまずいので。

といっても、EntityAnimalはhitするんだなぁ…牧場で使うとえらい目にあいますので注意。

そろそろ公開してもいいころだろうか…?

2017/04/14

Lightning Bolt!

だが射線上が燃える
クロスボウボルトって言うんですから、「ライトニングボルト」もあっていいよねと、着弾地点に落雷するヘビークロスボウ専用弾を作ってみました。

……(´・ω・`)あれ? 挙動がなんか思ったのと違う…。

確かに落雷するので匠が巨匠になってくれるんですが、上から雷が降ってきてくれない…。それどころか、射線に近いブロックに着火しまくる始末。

(´・ω・`)これはこれで♪

グロウストーンダストと鉄インゴット、羽でクラフトできるようにしときました。…実際には使いにくいやろなぁ…

2017/04/12

1.11.2でローカルホストに接続できない問題

ログインした瞬間にキックされる 
MODもとりあえずできたしマルチのテストすっかーと思って、サーバを立ち上げてログイン…したらいきなり

InternalException:
io.netty.handler.codec.DecoderException:
IndexOutOfBoundsException:
readerIndex(38)+length(8)exseeds writerIndex(38):
UnplooledHeapByteBufうんたらかんたら

というエラーで蹴られるという話。このログはググったところ「看板に規定以上の文字数を入れた時」に発生するものらしい。

MODで看板弄ってないんだけど…? 他にメモリ不足とかもあるらしいので、描画距離を変えてみたが変わらず。
一部文字化けしている
ログを確認してみると一部で変な文字化け。ぬるぽとかも含めて検索したが解決方法は「再インストール」っぽいのでクライアントを再インストール → ×

もしかしたらーと思い、サーバを再インストール。…ぉ? 動いた。

●MOD無しforgeサーバ → 動く
●MOD有りforgeサーバ → 動く

燃えてみる。問題ない。

まずはクリエイティブモードで起動。特に問題ない様子。自分にOP権限与えてサバイバルモードで燃えてみる。動く。次に自作MODのmobをスポーンさせてみる。


わらわらとスポーンさせる
これも問題ない様子。

どうやらMOD起因によるものではないようです(´・ω・`)なんだったんでしょうね?

英語圏での噂によると「システム自体に不具合があるんじゃないかと思われる」とのこと。それだったらお手上げですねぇ。

とりあえずマルチも動いたので一安心(´・ω・`)♪

2017/04/11

1.11.2の自作MOD導入成功

紆余曲折あったが制作&導入成功
1.11.2の自作MODをビルドし導入できたので、覚書などを残してみる。

●バニラのチェストLootTableにアイテムを追加する
assetsフォルダにminecraftフォルダ作って無理矢理上書きという手段は取れる。が、そこは新規にクラスを作りeventhandlerで突っ込んでやると追加は可能。
レアアイテムは簡単に出ない程度に調整

●ドロップ表jsonファイルが反映されない
微妙に追記する必要がある。jsonファイル内の、

"rolls"

の直前に

"name": "main",

を追加すると読む。これで6時間費やした。

●自作の音を鳴らす
自前でSoundEventクラスとSoundEvevtsクラスを作ってやるとよい。めんどくさかったー(;´Д`)

●防御力を持った武器は作れない
マンゴーシュのメソッドを弄り直してたんですがどうしても無理っぽかったので、仕方なく「耐性」を付与した(´・ω・`)装備スロットでNull吐くからね…。

●Building 82% > :retromapReplacedMainで止まる
build.gradleにある、

minecraft {
    version = "1.11.2-13.20.0.2228"
    runDir = "run"
}

の中に

makeObfSourceJar = false

を追記すればOK。

////

とりあえずリリース直前にはこぎつけたから…あとはデバッグだなぁ…(;´Д`)デバッグってEclipse上で遊んでりゃいいんですかね…?

2017/04/08

実際の攻撃速度と薙ぎ払い

1.11.2での戦闘は武器に攻撃速度とゲージが追加されて、フルゲージで一定速度以下なら薙ぎ払いになるわけですが、レイピアで「薙ぎ払い」っておかしいよねと思って試行錯誤。
レイピアで薙ぎ払い…?

そこで「攻撃速度は遅いが、ノックバックを減らしmobの無敵時間を減らす」ことで手数による攻撃にしてみる。バニラ剣よりも攻撃速度が遅いのでゲージが貯まるまで時間がかかるし、ノックバックも少ないのでゲージが貯まる前に攻撃しないといけないが、クリック連打でズバズバと攻撃は可能。攻撃力が下がるとはいえ、1対1なら連打で一気に倒せるものの武器の耐久値と満腹度がゴリゴリ減る仕様になりました(´・ω・`)わーぉ

バニラ剣の半分ぐらいの攻撃速度
金のレイピアなんてmob2体相手したらもう壊れますw

ここまで速度下がるともうちょい攻撃力あげていいかな…

武器を選ぶ楽しさってのが欲しいよねぇ。強い武器だけ使ってりゃいいじゃ面白くないし。
殴るより投擲の方が強いダガー系

あ、そういや新武器も追加してみた。

ヘビークロスボウ専用弾ジャベリンボルトとその強化型
ヘビークロスボウに「ジャベリンボルト」と「強化型ジャベリンボルト」を追加。hitしたmobを強烈にノックバックさせしばらく動きを止めます。強化型ジャベリンボルトはそれに加えて爆発するという鬼畜仕様。

まず普通のmobは死ぬ
そう、DeadSpace2のジャベリンガンですw

あの武器楽しかったからねー(*‘∀‘)電撃バリバリはできないけど…

ていうかですね、今までリリースしてた1.7.10と1.9版、まともにエンチャントできないわ武器の耐久値は減らないわとバグというか不具合だらけだったということが今さら判明したわけで(;´Д`)いやー申し訳ない!!

今回ホントに細かくやってたら「あ、これ古いバージョンあかんわ」と思ったのです。実は武器のクラス継承をItemクラスからやっていたのがほとんどだったため、耐久度アップのエンチャントしか乗らなかったという話。ItemSwordからじゃないとダメージ増加とか付かなかったのですね(;´Д`)

なんでItemクラスからの継承にしたかというと「オーバーライドしても武器の攻撃力を自由にいじれないから」。今回ググってたら、「ItemSwordクラスを継承してgetItemAttributeModifiersメソッドに一旦removeAllをかましてからputするとそっちが優先される」というのを発見したのでそれにしてみました。

これで何とかいけるか…? しばらくデバッグ継続と…。

2017/03/12

1.11.2でmobの生成に成功する

ゴブリンとオークが矢を撃ち合ってるの図
int entityId = entityClass.hashCode();とか無理矢理IDつけたらいけましたハイ(´・ω・`)起動するたびにIDが変わっちゃうのはどうにかならんか。変わるのはやっぱ問題あるよねぇ…うーん。

一つのmod内で被らなきゃいいとかいう話なのでmobはとりあえず1000から++してみたとかいう話。

以前はfindGlobalUniqueEntityId()とかだったんだけどねぇ。EntityRegistryクラスから無くなっちゃったからねぇ…。

てか1.11.2のmoddingの仕方載ってるとこ少ないよね…ていうかほとんどないよね…(´・ω・`)

2017/03/11

Minecraft 1.11.2の自作武器MOD制作中

無いなら自分で作る。

久しく手をつけてなかったんですが、Minecrat 1.11.2のレコメンド版Forge1.11.2-2228で自作武器MODを制作。
武器のくせにノックバック耐性付与
クロスボウのリロード処理だけに3日かかってしまった…(;´Д`)NBTタグの使い方がよく分からんかったもんで…。なんとかうまくいった様子。ぬるぽ吐きまくりでホント参った…。

しかし、リロードしてクロスボウを構える前(※多分0.4秒以下)に右クリック離すと発射されずにリロード状態が解除されちゃったり、ヘビークロスボウがリロード後にオフハンドのクロスボウボルトを入れ変えると、入れ替える前のボルトが発射されて、入れ替えた方の弾数が減るとか、連射できるクランクリピーターボウがonUpdateメソッドで暴発する不具合(※再度右クリック長押しで直る)があったりして、これは仕様と開き直るしかない感じ。元々この不具合自体は1.7.10版も1.9版もあるんだけど(;´Д`)

ライトクロスボウのリロード状態が一目で分かるアイコン
まぁ、それでも頑張ってmoddingしていたわけで、うまくいった部分はあったりします。そういう部分は満足(*´▽`*)

ヘビークロスボウのエクスプロージョンボルトによる爆発
しかしまー、既存のメソッドが微妙に変わってたりして1.9のメソッドそのままでいける部分とダメな部分があったりした。onItemRightClickとか。結構武器の数が多いもんで修正が面倒なこと(;´Д`)

ハルバードの通常攻撃は常にスイープアタック。薙ぎ払い!
特に1.11.2の現時点ではMODの数が非常に少ないこともあり、武器の威力がちょっと強すぎるかなーと思ったりしてます。元々1.7.10の他のMODと組み合わせて使うこと前提だったため、ダマスカス鋼製の武器なんて大抵のmobを1~2発で倒せちゃうし(´・ω・`)防具のヘビーダマスカスアーマーなんてクリーパーの自爆でダメージ無いからねぇ。ついでにノックバック耐性まで付いてるからmobに囲まれてもイライラせずに戦闘できます。その代わり、移動速度落ちるけど。

あ、鉱石生成は1.9のメソッドでいけるみたいです。バナジウム鉱石(※ダマスカス鋼を作るために必要)の生成に成功してましたんで。

ダガーオブルナダイヤルの弾幕。月齢と時間で威力が変わる武器です。
しばらくはデバッグ作業かなぁ。射撃系の武器で自分にヒットすることがあるけども、再現されづらいというところもありますんで。onUpdateメソッドにsuper.onUpdate()付けたら当たりにくいのかしら…? 自爆するエンティティとしないエンティティがあってイマイチ不明。再現されやすいのはmobの目の前で発射したときが多い様子。瞬間的に反射したのがヒットする感じ? ビルドしたらまた変わるんかなぁ。デバッグ環境だとちょいと処理落ちしやすいというか…ねぇ。

ところで1.11.2自体のゲーム性って結構変わった感じねぇ。草原の地形効果があんなに強いものとは…攻撃しようとしたら草に判定吸われるようになってるようでmobにhitしにくいのなんのw

しかしだな…基本的にシングルプレイばっかりだもんで、あまり楽しめないというか…自分でmoddingしてると好きなように弄れるってのもあるし。まったりマイクライフを楽しめばいいんだろうと思ったり…ね。

んでもって近日公開、といきたいところなんですが追加mobはまだ手を付けてないし、外注が入っちゃったりしてるのでいつぐらいになるかはちょっと不明。

コメントもらえたら早くなる…かもしれません(´・ω・`)ハイ。自分の状態もあまり良くない時あるんでねぇ…。

それ以前に、自分はプログラマじゃないんでねぇ…JAVA全くわかってないんだもんw

好きに作って好きに公開。まぁそれでいいよね。