【プラグインその他】ロンチプラグインのアップデート報告スレッド

MZのロンチプラグインは、バグ報告などがあった場合、
原則としてツクールMZのバージョンアップ時に修正が反映されますが、
「それでは遅い」と感じることもあるため、
アップデートして共有の必要性を感じた時の為にこのスレッドを立ち上げました。

ロンチプラグインがバージョンアップされたら、まずはこちらに投稿して参ります。

なお、僕のロンチプラグインは、全てMITライセンスとなっております。

【注意】
BattleVoiceMZ.js だけは、更新頻度が高いため、専用のスレッドで報告しています。
こちらをご覧ください。
 
最後に編集:
まずは、ScreenZoom.js のバージョンアップ(Ver1.1.1)です。
「ピクチャもズームするか」で「いいえ」を選択した時、
途中でフェードアウトを行った際、ピクチャが表示されたままになる、という不具合報告がありましたので、
修正いたしました。
 

Attachments

  • ScreenZoom.zip
    3 KB · 閲覧: 108
こんにちは。ScreenZoom.jsですが、拡大したときにキャラクターデータの隣り合う上下左右に端のドットが表示されてしまいます。
透明データなら気づきませんが、ドットが入っているときは気になってしまいます。
画像2隣り合うマス目を黒塗りに。添付画像1が拡大無し。画像3が拡大中。
 

Attachments

  • 1.JPG
    1.JPG
    143.5 KB · 閲覧: 57
  • 2.jpg
    2.jpg
    15.8 KB · 閲覧: 57
  • 3.JPG
    3.JPG
    124.6 KB · 閲覧: 57
>rei999さん。
どうも、ScreenZoom.js 使ってくれてありがとうございます。

ご指摘の件ですが、これはどうやら、ツクールのコアスクリプトに内在する問題みたいですね。
つまり、僕が組んだ部分ではなく、予め準備された機能を僕が呼び出している、そこにある問題ということです。

なので、僕が直すのは、ちょっと困難な部分になります。
一応、ある程度の解析は行いますが、分からない場合、ツクール公式の方へ、この問題を報告させていただきます。

実際に動くのは、年明けになりますがご了承ください。(僕は年末年始も仕事をため込んでいますので)

それまでは、データ側で、問題が起きないように透明なファイルだけにするなどで、
対処していただけると助かります。
 
隣り合う画像が端いっぱいまで描かれていなければ(余白があれば)ズームしても隣り合わせの絵を巻き込まないかもしれません。
私らはいわゆる「のりしろ」問題と呼んでいるのですが、画像をセットで持ち、その中の1つの絵を切り出して使用する場合、拡縮をかけるとお約束というくらい発生する症状なので、システム側で「のりしろ」を考慮した処理が難しい場合は、絵側で「のりしろ」を考慮して画像を用意するのが早いし良いかもです。例えば、画像2の黒い四角の周囲1~2ドット程度を透明にしておくとかで改善されるかもしれません。
ちなみに私は黒線が見えてしまっても(よほどのことが無い限りは)気にしないざっぱ派です(><;)
 
>神無月サスケさん、ドッ〇君さん
なるほど、ありがとうございました。
画像作成の際に注意しておきたいと思います。

​

 
アイテム合成(強化)シーン追加プラグイン、ItemCombineScene.js、バグ(競合)修正です(Ver1.0.1)。
他の、装備スロットの並びを変更するプラグインと併用した時、
各アクターが装備中の装備を合成すると、合成後の装備が消失してしまうバグを修正しました。

余談:このプラグインは、ツクールMZでシーンクラスを作る練習として作った習作であり、
恐らくMZ公開後に、より使い勝手の良いアイテム合成プラグインが登場するから、
使う人は少ないと思っていたのだけれど、実際に使用している人がいたのでびっくり&嬉しい。
 

Attachments

  • ItemCombineScene.zip
    7.5 KB · 閲覧: 50
アイテム入手時に画面上に1行ウィンドウを表示する TinyGetInfoWndMZ.js、バージョンアップです(Ver1.1.0)。
・アイテムの説明に制御文字を使用可能にするオプション追加(パラメータの7行目)
 注:デフォルトではOFF。ONにすると、長文をリサイズしなくなるため。
・所持金増減の際、ウィンドウを表示するかどうかを選択可能に(これまでは常に表示していた)
 

Attachments

  • TinyGetInfoWndMZ.zip
    7.7 KB · 閲覧: 71
戦闘コマンドに「装備変更」を追加する ChangeEquipOnBattleMZ.js、バージョンアップです(Ver1.3.0)。
・パラメータの設定で「装備変更だけでターンを消費する」モードが設定可能になりました(主にサイドビュー時用)。
・アクターのメモに記述することで、装備変更を表示させないアクターを作成できます。

ご要望があったのでバージョンアップいたしましたが、共有OKとのことだったので、
正式バージョンアップとして公開いたします。

追記 2023/Jul/25 新バージョンが出たため、この版は削除しました。
スレッドの一番新しいプラグインをご利用ください。
 
最後に編集:
戦闘コマンドに「装備変更」を追加する ChangeEquipOnBattleMZ.js、バージョンアップです(Ver1.3.2)。
先日のバージョンでは、ターン制で、装備変更にターンを消費する際、一度装備変更→キャンセル→別の行動が取れる
という不具合がありました。

この版では、装備変更後、キャンセルした場合、装備は変更前の物に戻ります。

追記 2023/Oct/14 新バージョンが出ました。最新版はスレッドの先にあるVer1.4.0aです。
 
最後に編集:
いつもお世話になっております。

競合の報告なのですが、

ChangeEquipOnBattleMZ 最新版(v1.3.2)と
うなぎおおとろ様の ステート付与装備 EquipState(v1.1.0)を組み合わせて使用したところ、
ステート付与装備で設定したステート(武器防具のメモ欄に記入したもの)が反映されない現象を確認いたしました。

ステート付与装備は導入しておきたいプラグインで、またうなぎおおとろ様はツクールのプラグイン制作から引退されたということでサポートも大変だと存じますが、ご対応いただきたくご連絡を差し上げた次第です。

以上、何卒よろしくお願いいたします。
 
>Dr.Qさん
さっそく試したのですが、こちらでは再現しませんでした。
装備の変更を行うと、きちんと装備に指定したステートが付与されました。

①プラグインリストでは、きちんとEquipState.js を上に、ChangeEquipOnBattleMZ.jsを下にしていますか?

それとも、装備変更以外の際に、問題が発生したのでしょうか?
考えられる原因としては以下が挙げられますが、これらのどれかで問題が発生しましたか?
②他のステートが解除された時
③バトルイベントからイベントコマンドで強制的に装備を変更した場合
④バトル終了時
⑤戦闘不能時、および蘇生時
⑥バトルイベントから習得中スキルの追加/削除を行った時

とにかく、①については現バージョン1.3.2の段階で、問題は解決しているはずです。
仮に②~⑥が原因でない場合、もう一度ご確認ください。

以上、お手数ですがよろしくお願いします。
 
>神無月サスケ様

お世話になります。


さっそく試したのですが、こちらでは再現しませんでした。
装備の変更を行うと、きちんと装備に指定したステートが付与されました。

お手数をお掛けして申し訳ありません。
しかしながらこちらの環境ではやはり問題が起こっています。つきましては、まずこちらの環境を整理させてください。

・EquipState.jsとChangeEquipOnBattle.js以外のプラグインを全てOFF
・コアスクリプトのバージョン:v1.6.0
・戦闘画面:サイドビュー
・戦闘システム:ターン制
・ステートを付与したいのは防具
・付与ステートはデバフ(データベース>ステート>特徴に記述)
・付与ステートは解除条件無し(永続)
・ChangeEquipOnBattle.jsのターン消費はtrue



①プラグインリストでは、きちんとEquipState.js を上に、ChangeEquipOnBattle.jsを下にしていますか?

確認しましたが、この点は大丈夫でした。


考えられる原因としては以下が挙げられますが、これらのどれかで問題が発生しましたか?
②他のステートが解除された時
③バトルイベントからイベントコマンドで強制的に装備を変更した場合
④バトル終了時
⑤戦闘不能時、および蘇生時
⑥バトルイベントから習得中スキルの追加/削除を行った時

③が近いです。バトルイベントでは無いですが、コモンイベントを呼び出してそこから強制的に装備を変更する感じです。ちなみにChangeEquipOnBattle.jsをOFFにしてこのケースを試してみたら、ステートは反映されました。



その他、上記以外に確認した現象

(a)戦闘開始時にステート付与装備を装備しているとステートは付与されている

(b)上記(a)の状態で戦闘中に、手動で「ステート付与を設定していない装備」に変更をすると、ステートが解除されない

(c)戦闘中、ステート付与を設定していない装備 から 手動でステート付与装備に変更する => ステートが反映されない

(d)マップ上の装備変更については問題なし

(e)過去のバージョンのChangeEquipOnBattle(v1.2.3)に戻して試したところ、上記の問題は起こらなかった。


以上、報告させていただきます。

よろしくお願いいたします。
 
戦闘コマンドに「装備変更」を追加する ChangeEquipOnBattleMZ.js、バージョンアップです(Ver1.4.0)。
EquipState.js との競合回避で、問題なく作動するようになりました。

仕様は「ターン制の入力時は、装備変更後直後に、そのステートが反映される」ようにしました。
最初は「入力の際には変更しないで、全員の入力が終わってから」を考えていましたが、不自然に感じたからです。

あと、これはコアスクリプトレベルでの実に不可解なバグがあって、
「敵の攻撃を受けた際、既にかかっているステートであっても、『●●は●●になった」のメッセージが
バトルログに追加されているのですが、Game_BattlerBase.prototype.isStateAffected が、
「既にそのステートが含まれていても、含まれてない(false)を返すことがある」という、理解不能なものでした。
これは、EquipState.js 単体でも起こります。

よって、対象のステートは、「●●は●●になった」「●●の●●は解除された」の文字列は設定しない方が自然かもしれません。

以下、ご確認ください。

追記:2023/Oct/14 最新版はこの下の Ver1.4.0a です。
エンバグの可能性や、挙動の違いを考慮して、この版も残しておきます。
 

Attachments

  • ChangeEquipOnBattleMZ.zip
    4.4 KB · 閲覧: 46
最後に編集:
Game_BattlerBase.prototype.isStateAffected が、
「既にそのステートが含まれていても、含まれてない(false)を返すことがある」
何か勘違いされていないでしょうか。
Game_Battler.prototype.addState では、対象ステートにかかっていようといまいと、行動結果の「追加されたステート」にそのステートIDが追加されます。
「アクターがこの状態になったとき」のログはそれだけで追加されるので、 isStateAffected の結果は特に関係がありません。

攻撃を受けたときにログが追加される理由は、 Game_Battler.prototype.refresh を通っているからです。(敵の攻撃を受けた際、であるのは、TPの追加があるためですね)
バトラーのHPが0でない限りにおいて、 refresh から removeState が呼び出され、戦闘不能ステートを解除する処理を行います。
EquipState.js では removeState が呼び出された際に問答無用で装備ステートを addState によって付加するため、それが起因で「アクターがこの状態になったとき」のログが追加されるというわけです。

いい感じに行動結果の追加されたステート一覧から取り除いてあげれば、ひたすらログに出てくる問題は回避できそうですが、取り除く条件を考え始めると面倒臭そうですね。
装備によって付加された場合は一律でログを出さない仕様にしてしまうのが実装コストも安くて挙動も自然な気がします。
 
どうも。恐らくそのあたりはある程度理解しています。ありがとうございます。
しかし、おかしいのはそこではないのです。

Game_BattlerBase.prototype.isStateAffected 内で、「現在のステート配列」「新たに追加予定ステートID」「結果」を
console.log で出力してみてください。
JavaScript:
Game_BattlerBase.prototype.isStateAffected = function(stateId) {
  if (stateId === 13) {
    console.log(this._states, stateId, this._states.includes(stateId));
  }
  return this._states.includes(stateId);
};
この結果の出力は、[13] 13 true と、 [13] 13 false を交互に繰り返すのです。
当然、includes 関数は、常に true を出力しないとおかしいはずですよね?

これはもうお手上げ、ということです。

(Ver1.4.0a)を作りました。
追記:2023/Oct/14 現時点での最新版はこちらになります。



こちらは、ご指摘の通り「装備によって追加されたステートは、一律で付加されたことを表示しない」という処理にしました。
戦闘中メッセージで「●●は●●状態になっている」などの表示はされるため、これを表示させる前提です。

>Dr.Qさん
お手数ですが、こちらもお試しいただけませんでしょうか。
 

Attachments

  • ChangeEquipOnBattleMZ.zip
    4.6 KB · 閲覧: 87
最後に編集:
トピックの本筋から逸れた内容で恐縮ですが、これをそのままにしておくと何か致命的な誤解を抱えたままになってしまいそうなので続けさせてください。
(技術畑の話になるので、よくわからないよ、という方は本ポストを適当に読み飛ばしてください)

この結果の出力は、[13] 13 true と、 [13] 13 false を交互に繰り返すのです。

EquipState.jsによって永続的に付与されるステートについて、戦闘中にコンソール出力するとこのような表示になる、ということでしょうか。
こちらの環境では再現できませんでした。

Array.prototype.includes は SameValueZero のアルゴリズムを用いて等価性を評価するので、仰るような表記が出るのだとすると、コアスクリプトがどうとかは全く関係なく、お使いのjs処理系に何らか問題があると言わざるを得ません。

MZ1.7.0で採用されているのはNWjs 0.48.4 ですが、サスケさんの環境も同様でしょうか。
NWjsのバージョンはコンソール上で nw.process.versions.nw を実行することによって確認可能です。
navigator.appVersion で確認できる実行環境も念のため確認すると何か差異があるかもしれません。

5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
私の実行環境はこうです。

あるいは、EquipState.jsでステートIDを文字列型で設定してしまうと、 includes の結果は偽になります。
<EquipState: "13">
こんなふうに設定すると、文字列型として解釈されて、数値型配列の _states に対して .includes は常に偽を返します。

とは言え、交互に結果が変わるというのは奇妙な話ですし、文字列型であればコンソール上で見分けがつくようになっているはずです。
ステート13はデフォルトではスタンで、ゴブリンの体当たりによって付加され得る、というのは流石に変な前提をつけすぎですよね……。
他のメンバーに対して付加された際に数値型で正しい表示がされ、常に装備で付加し続けるメンバーに対しては文字列型なので偽が表示される、とか。
 
どうも。お騒がせしております。詳細情報ありがとうございます。

うちのプロジェクトでは、ステートの13番は魔法剣の炎であり、スタンではありません。
NW.js はどうやら最新のものらしく、出力は一緒でした。
文字列かもしれないと思い、明示的に数値に変換も行いましたが、これもまた一緒。

他での使用でこのようなことは起きていないので、さらに謎を深めています。
もう、考えても仕方がないので、あのまま行くつもりですし、
別に作った新規プロジェクトでも同様の結果だったので、謎は深まるばかりです。

お付き合いいただきありがとうございます。
 
最後に編集:
>Dr.Qさん
コアスクリプトがv1.6.0とありますが
現在のMZの最新はv1.7.0じゃないですかね
コアスクリプトがv1.6.0なのは、今年の2月くらいに作り始めたプロジェクトファイルで、その頃の最新バージョンがv1.6.0だったからです。
コアスクリプトを更新すると未知の不具合(プラグインが対応してなかったり等)が起きそうで、怖くて更新できていません……。
 
Back
トップ