【解決済み】ショップの処理から購入して閉じたか購入せずに閉じたかの取得
Posted: 2025年1月31日(金) 00:21
スクリプトについて相談があります。
私はまったくと言っていいほどJavaScriptが分からないので、ChatGPTに、
ショップの処理から購入して閉じたか購入せずに閉じたかの取得 するスクリプトを書いてもらおうと思い
作っていたのですが、実際生成されたスクリプトを使用してイベントを作ってみたのですが、上手くいきません。
変数n番の値を購入し閉じた場合に変更し、条件分岐でn番が0の場合に購入させるためにラベルジャンプ、1の場合に購入後の処理を行おうと思っています。ですが試していると変数が変更されません。
制御文字で変数を確認していますが、初期値のままです。
もしどなたかお詳しい方がいらっしゃいましたらご指南願います。また如何に生成したスクリプトを貼って起きますので、参考にしてください。
(() => {
// 変数57の初期化(ショップ開始時)
const _Scene_Shop_create = Scene_Shop.prototype.create;
Scene_Shop.prototype.create = function() {
_Scene_Shop_create.call(this);
console.log("ショップ開始時の変数57:", $gameVariables.value(57)); // ショップ開始時の確認
};
// アイテム購入処理
const _Scene_Shop_doBuy = Scene_Shop.prototype.doBuy;
Scene_Shop.prototype.doBuy = function(number) {
// 元の購入処理を呼び出し
_Scene_Shop_doBuy.call(this, number);
// 購入後にフラグを設定
console.log("購入が完了:", number); // 購入したアイテムの番号を確認
$gameVariables.setValue(57, 1); // 変数57を1に設定(購入フラグ)
console.log("購入フラグ:", $gameVariables.value(57)); // 購入フラグの確認
};
// ショップを閉じる処理(フラグ確認)
const _Scene_Shop_popScene = Scene_Shop.prototype.popScene;
Scene_Shop.prototype.popScene = function() {
_Scene_Shop_popScene.call(this);
console.log("ショップ終了時の変数57:", $gameVariables.value(57)); // 終了時の変数57の確認
};
// ショップ終了時に変数57の値が0であれば、やめたフラグとして設定
const _Scene_Shop_onBuyCancel = Scene_Shop.prototype.onBuyCancel;
Scene_Shop.prototype.onBuyCancel = function() {
_Scene_Shop_onBuyCancel.call(this);
if ($gameVariables.value(57) === 0) {
console.log("購入せずにキャンセルされた場合");
}
};
})();
私はまったくと言っていいほどJavaScriptが分からないので、ChatGPTに、
ショップの処理から購入して閉じたか購入せずに閉じたかの取得 するスクリプトを書いてもらおうと思い
作っていたのですが、実際生成されたスクリプトを使用してイベントを作ってみたのですが、上手くいきません。
変数n番の値を購入し閉じた場合に変更し、条件分岐でn番が0の場合に購入させるためにラベルジャンプ、1の場合に購入後の処理を行おうと思っています。ですが試していると変数が変更されません。
制御文字で変数を確認していますが、初期値のままです。
もしどなたかお詳しい方がいらっしゃいましたらご指南願います。また如何に生成したスクリプトを貼って起きますので、参考にしてください。
(() => {
// 変数57の初期化(ショップ開始時)
const _Scene_Shop_create = Scene_Shop.prototype.create;
Scene_Shop.prototype.create = function() {
_Scene_Shop_create.call(this);
console.log("ショップ開始時の変数57:", $gameVariables.value(57)); // ショップ開始時の確認
};
// アイテム購入処理
const _Scene_Shop_doBuy = Scene_Shop.prototype.doBuy;
Scene_Shop.prototype.doBuy = function(number) {
// 元の購入処理を呼び出し
_Scene_Shop_doBuy.call(this, number);
// 購入後にフラグを設定
console.log("購入が完了:", number); // 購入したアイテムの番号を確認
$gameVariables.setValue(57, 1); // 変数57を1に設定(購入フラグ)
console.log("購入フラグ:", $gameVariables.value(57)); // 購入フラグの確認
};
// ショップを閉じる処理(フラグ確認)
const _Scene_Shop_popScene = Scene_Shop.prototype.popScene;
Scene_Shop.prototype.popScene = function() {
_Scene_Shop_popScene.call(this);
console.log("ショップ終了時の変数57:", $gameVariables.value(57)); // 終了時の変数57の確認
};
// ショップ終了時に変数57の値が0であれば、やめたフラグとして設定
const _Scene_Shop_onBuyCancel = Scene_Shop.prototype.onBuyCancel;
Scene_Shop.prototype.onBuyCancel = function() {
_Scene_Shop_onBuyCancel.call(this);
if ($gameVariables.value(57) === 0) {
console.log("購入せずにキャンセルされた場合");
}
};
})();