質問したいことはタイトルの通りなのですが、詳細は以下になります。
*詳細*
ローグライクカードゲームを作っていて、アイテム(カード)のコストをゲーム内変数で管理しています。
エネミーとのバトルシーンの中で、各カードのコスト(変数)が変化することがありますが、
バトルシーンが終わったら、これらの変数をすべて初期化したいと考えています。
スクリプトで「$gameVariables.clear();」を実行すれば全変数を初期化できますが、
初期化したくない変数まで初期化されてしまい、困っています。
初期化したくない変数はかなりの数(ローグライク要素が多くあるため)あり、
また初期化したい変数もかなりの数(カード1枚に対して1つの変数が割り当てられるため)あるのですが、
なにか良い方法はありませんでしょうか?
また変数の最小値・最大値は0~9999程度を想定しています。
以下はゲームのイメージです。
【解決済み】全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
-
- 記事: 9
- 登録日時: 2022年12月17日(土) 07:51
【解決済み】全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
最後に編集したユーザー 4031kfep53 [ 2023年3月04日(土) 16:44 ], 累計 1 回
Re: 全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
コモンイベントで初期化処理を作成します。
その上で、何らかの方法でバトル終了時にコモンイベントを呼び出します。
簡単で確実なのはこれです。
その上で、何らかの方法でバトル終了時にコモンイベントを呼び出します。
簡単で確実なのはこれです。
現在、プラグイン依頼はお休み中です。
-
- 記事: 9
- 登録日時: 2022年12月17日(土) 07:51
Re: 全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
しぐれん様、ご返信ありがとうございます!
説明不足で申し訳ないです!
しぐれん様のアドバイスの通り、『バトル終了後に変数を初期化するコモンイベントを呼ぶ』ところまでは一応できています!
ただ初期化のために『$gameVariables.clear();』を使っているため、初期化したくない変数まですべて初期化されてしまい、困っている状況です。
タイトルにある『(一部の例外は除く)』の部分が解決できていない形になります。
現時点でも初期化すべき変数が200個を超えているため、手動で一つ一つ初期化するのは辛いです。
どうにかして変数を退避して『$gameVariables.clear();』で全初期化するしかないかな?と考えているのですが、
良い方法が思いつきませんでした。
分かりにくい説明となってしまい申し訳ないです。アドバイスありがとうございます。
説明不足で申し訳ないです!
しぐれん様のアドバイスの通り、『バトル終了後に変数を初期化するコモンイベントを呼ぶ』ところまでは一応できています!
ただ初期化のために『$gameVariables.clear();』を使っているため、初期化したくない変数まですべて初期化されてしまい、困っている状況です。
タイトルにある『(一部の例外は除く)』の部分が解決できていない形になります。
現時点でも初期化すべき変数が200個を超えているため、手動で一つ一つ初期化するのは辛いです。
どうにかして変数を退避して『$gameVariables.clear();』で全初期化するしかないかな?と考えているのですが、
良い方法が思いつきませんでした。
分かりにくい説明となってしまい申し訳ないです。アドバイスありがとうございます。
Re: 全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
通常は変数を連番で使用して、変数の操作で1~100までの変数を0で初期化します。
連番などではない場合は、変数名で判断するのはいかがでしょうか。
変数名に、指定した文字列が含まれる場合に、その変数のみ0で初期化されます。
スクリプトの変数名の例:
[R]カード番号1
カード番号2_自動初期化
連番などではない場合は、変数名で判断するのはいかがでしょうか。
変数名に、指定した文字列が含まれる場合に、その変数のみ0で初期化されます。
コード: 全て選択
var resetKeywords = ['[R]', '自動初期化', 'カードリセット']; // ''で文字列を囲み、,で区切る
$dataSystem.variables.forEach((name, id) => {
resetKeywords.forEach(s => name. indexOf(s) !== -1 && $gameVariables.setValue(id, 0));
});
[R]カード番号1
カード番号2_自動初期化
-
- 記事: 9
- 登録日時: 2022年12月17日(土) 07:51
Re: 全ての変数を特定のタイミングで初期化したい(一部の例外は除く)
chro様 ご回答ありがとうございます!
変数名を使うのは考えていませんでした。ありがとうございます。
chro様の案で対応してみたいと思います。
ありがとうございました!
変数名を使うのは考えていませんでした。ありがとうございます。
chro様の案で対応してみたいと思います。
ありがとうございました!