見出し画像

地形タグごとに痛さが違うダメージ床

まさかの固定値

MZではダメージ床をDBのタイルセットから設定できるようになって、これはきっと簡単にいろんなダメージ値のダメージ床をつくれそうだなと思ってたらそれがぜんぜんそんなことないんですよ。rmmz_objects.js の4820行目あたりです。

Game_Actor.prototype.basicFloorDamage = function() {
   return 10;
};

は? まーたお前はそうやってマジックナンバーを……。いやまぁ、マニュアルに固定値10って書いてあったんでその時点で「は?」とは思ってましたが、コード読んで改めて「は?」でした。

毒沼とかバリアとかあるだろうがよ

逆に言うと、地形タグを読む方法があれば、あの関数を書き換えれば地形タグごとにダメージを変えるのは簡単そうですよね。で、それらしいことをやっていそうなところを探したところ見つけました。

$gamePlayer.terrainTag()

これが、プレイヤーキャラが立ってる地形の地形タグを返してくれます。0-7の整数が返されるので、あとはこれでswitchなりなんなりして Game_Actor.basicFloorDamage() からいろんな値を返すようにしてやればOKですね。なんなら、プラグインの設定でどの地形タグはいくつと設定させることもできます。

ついでなので、フラッシュの色もさがしたところ rmmz_objects.js の1048行目あたりにこう書いてありました。

Game_Screen.prototype.startFlashForDamage = function() {
   this.startFlash([255, 0, 0, 128], 8);
};

赤固定ですね。それならこれも書き換えてやればプラグインの設定でRGBを入れさせればいろんな色で光らせることができそうです。ここでついでに音を出すこともできますね。SEファイル名とボリューム、ピッチでもプラグインの設定で入れて、それを 

AudioManager.playStaticSe({
    name: params.name, 
    volume: params.volume, 
    pitch: params.pitch
});

とかやればよさそうです。

ということで、プラグインのコメントのところを書くのがいちばん面倒でしたが、タイトルどおりのものができました。

スクリーンショット 2021-07-19 23.40.55

ダウンロードはこちら

CSVN_variableFloorDamage.js
※右クリックでDL

ほかにつくったやつはこちら

cursed-steven/rmmz: RPGツクールMZ用のプラグインスクリプトをおいていきます。

この記事が気に入ったらサポートをしてみませんか?