RPGツクールMZ(以下MZ)はJavaScriptを利用することが出来る。JAVAと名称が酷似しているが書き方は結構違うのでややこしい。寧ろ旧作で利用出来たRubyのほうがJAVA風な気がする。一番ややこしいのは先頭と末尾の括弧の数だ。眠くなる等の理由で消してしまうと、何処でSyntaxエラーが起きているのかトレースが非常に大変だ。そういう意味でもRubyのほうが分かり易かった。ただMZはプラグイン管理から@Typeによる設定項目が使えるなど非常にユーザーライクな点には、尿道から涙を流すほど感動したものだ。また買ってから一週間程度なので、ストーリーは皆無、ずっとインフラ整備に明け暮れている。
そんな中で、ステート耐性の共有プラグインを作った。これは、毒や猛毒など似たようなステートを作成する場合に役立つのだろうか。この例の場合だと、毒に耐性を持つ防具を作る際、ステート有効度から毒耐性と猛毒耐性、二種類の有効度を設定することになる。でも今回のプラグインを使い、猛毒ステートのメモ欄に毒ステートのIDを記載することで、猛毒ステートは毒ステートの有効度を参照することになる。しかしまだ作ったばかりで満足にテストしきれていないのでバグってたら切ない。
挙動に問題無いとして、注意点もある。ステート無効化を考慮していないので、必要な時以外は無効化を利用せずにステート有効度0%で済ませたい。
あとはVXaceの時と同じように「二つ名を感情として扱い、感情によってTPチャージ率が変化する仕組み」も作った。しかし期待通りに動作すれば良いというものでもなく、あまりにゲロ臭いコードになってしまったのでとても紹介出来ない。いや、出来やしない。
可否についてどう書くタイプか。俺は専ら出来る、出来ないと漢字で書くタイプだ。
// Copyright (c) 2023 GCC
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
/*:
* @target MZ
* @plugindesc ステート耐性を共有する
* @version 1.0
* @help ステートのメモ欄にの形式で記載。StateIdは数字で入力。
* 例:←ID8のステート耐性を参照させる。
* 【ver.1.0】
*/
(() => {
const _Game_BattlerBase_share_stateRate = Game_BattlerBase.prototype.stateRate;
Game_BattlerBase.prototype.stateRate = function(stateId) {
if($dataStates[stateId].meta.ResistShare){
return _Game_BattlerBase_share_stateRate.call(this, stateId) * this.traitsPi(Game_BattlerBase.TRAIT_STATE_RATE, Number($dataStates[stateId].meta.ResistShare));
}
else{
return _Game_BattlerBase_share_stateRate.call(this, stateId);
}
};
})();
そういえば色んなプラグインをダウンロードさせて頂いた。その中の自動戦闘プラグインを少し改変して、MP消費しない行動のみ、敵スコープの行動(スコープ1~6限定)のみ、それと通常攻撃だけ行う自動戦闘を追加してみた。そして自動戦闘中にキャンセルあるいはマウスの右クリックを押すと自動戦闘が解除される仕様にした。結局、できるできないを漢字で書くか否かだけで人を判断するのは危ういだろう。
アクターコマンドについても忘れていた。攻撃という表示は撤廃し、装備中の武器タイプに応じたアイコンと、装備中の武器が表示されるようにした。なんかこうしたかったから、こうした。人間またはアフリカゾウは、なんかこうしたいと思った時にこうするタイプと、なんかこうしたいけど今はいいやってタイプに分けられるらしい。
※コードにreturnを書き忘れていたので追記した。
※コメント投稿者のブログIDはブログ作成者のみに通知されます