私自身JavaScriptの知識は皆無です。
AutoStateByVariable.jsの修正をしたいと思っています。
これは変数の値で、自動でステートが追加、解除されるプラグインです。
問題はマップ上でステートが追加されている状態で戦闘に入り、自動でステートが追加される変数の時、戦闘ターン終了時になると同じステートが重複されて表示されてしまうことです。
アクターID1に設定しています。
プラグインの変数条件は画像を添付します。
マップ上の自動ステート追加、解除の設定の画像も添付します。
拙い説明で申し訳ありません。まだ情報が足りなければ、言ってください。
プラグインの手直しか、コードのどこを書き直せばいいか回答をお願いします。
【解決済み】自作(ChatGPT 4o)プラグインでステートが重複される問題を解決したい
【解決済み】自作(ChatGPT 4o)プラグインでステートが重複される問題を解決したい
- 添付ファイル
-
- スクリーンショット 2024-05-19 065657.png (27.8 KiB) 閲覧された回数 653 回
-
- スクリーンショット 2024-05-19 065643.png (28.13 KiB) 閲覧された回数 653 回
-
AutoStateByVariable.js
- これを修正したい
- (4.03 KiB) ダウンロード数: 2 回
最後に編集したユーザー こうこう [ 2024年5月19日(日) 10:18 ], 累計 1 回
Re: 自作(ChatGPT 4o)プラグインでステートが重複される問題を解決したい
戦闘のプラグインはほとんど触ってないので間違ってたらごめんなさい
一応以下の修正でうまくいったと思います
79行目からの
の部分を次のように変えてください
何やってるのかというと、ステート付加のとき例えば毒であればステートのIDが4という『数値』なのですが
前のままだとIDが"4"という『文字』情報で付加してしまい、4と"4"が別々のステート扱いで判定されて
重複が起きていました。そこで付加前に文字情報を数値に変換しています。
ついでにおせっかいになりますが、たぶん以下の部分は何も働いていません。
そのままにしても問題ないと思いますが、コメントアウトくらいはしておいたほうがいいかも
104行目から
一応以下の修正でうまくいったと思います
79行目からの
コード: 全て選択
if (meetsCondition) {
if (!actor.isStateAffected(varCond.stateId)) {
statesToAdd.add(varCond.stateId);
}
} else {
if (actor.isStateAffected(varCond.stateId)) {
statesToRemove.add(varCond.stateId);
}
}
コード: 全て選択
const stateId = parseInt(varCond.stateId);
if (meetsCondition) {
if (!actor.isStateAffected(stateId)) {
statesToAdd.add(stateId);
}
} else {
if (actor.isStateAffected(stateId)) {
statesToRemove.add(stateId);
}
}
前のままだとIDが"4"という『文字』情報で付加してしまい、4と"4"が別々のステート扱いで判定されて
重複が起きていました。そこで付加前に文字情報を数値に変換しています。
ついでにおせっかいになりますが、たぶん以下の部分は何も働いていません。
そのままにしても問題ないと思いますが、コメントアウトくらいはしておいたほうがいいかも
104行目から
コード: 全て選択
const _Game_Actor_update = Game_Actor.prototype.update;
Game_Actor.prototype.update = function() {
_Game_Actor_update.call(this);
checkConditions(this);
};
const _Game_Party_update = Game_Party.prototype.update;
Game_Party.prototype.update = function() {
_Game_Party_update.call(this);
this.members().forEach(member => checkConditions(member));
};
Re: 自作(ChatGPT 4o)プラグインでステートが重複される問題を解決したい
すおう様回答ありがとうございます。
コードを書き換えたらうまくいきました。
これで自分の作りたいゲームに近づけることができます。
本当にありがとうございます。
コードを書き換えたらうまくいきました。
これで自分の作りたいゲームに近づけることができます。
本当にありがとうございます。