はじめまして。
いま、敵キャラのパラメーターをスクリプトで操作するようなイベントを作成しようと考えており、
このページの解説を参考にしています。
https://db.liberty-quest.com/rpgmakermv ... ript/#i-11
$dataEnemies[1].params[0] = 500;// ID 1 の敵キャラの最大HPを 500 にする
とあるのですが、
パラメーターを操作する敵キャラを「1」のような定数ではなく、
変数1番の値のIDの敵キャラを指定したい場合、
どのように記述すればいいのでしょうか?
御教示のほど、どうぞよろしくお願いいたします。
【解決済】スクリプト内で変数を引用する記述について
-
- 記事: 4
- 登録日時: 2020年3月07日(土) 09:02
【解決済】スクリプト内で変数を引用する記述について
最後に編集したユーザー dokuninjin [ 2020年3月08日(日) 09:16 ], 累計 1 回
Re: スクリプト内で変数を引用する記述について
実験できていませんが、下記でできないでしょうか?dokuninjin さんが書きました:はじめまして。
いま、敵キャラのパラメーターをスクリプトで操作するようなイベントを作成しようと考えており、
このページの解説を参考にしています。
https://db.liberty-quest.com/rpgmakermv ... ript/#i-11
$dataEnemies[1].params[0] = 500;// ID 1 の敵キャラの最大HPを 500 にする
とあるのですが、
パラメーターを操作する敵キャラを「1」のような定数ではなく、
変数1番の値のIDの敵キャラを指定したい場合、
どのように記述すればいいのでしょうか?
御教示のほど、どうぞよろしくお願いいたします。
$dataEnemies[String($gameVariables.value(1))].params[0] = 500;
参考記事
https://fungamemake.com/archives/7968
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
- Plasma Dark
- 記事: 736
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: スクリプト内で変数を引用する記述について
String() は不要です。$dataEnemies[String($gameVariables.value(1))].params[0] = 500;
コード: 全て選択
$dataEnemies[$gameVariables.value(1)]
が、本当にこれをイベント中に書き換えるんでしょうか。
これは敵キャラ実体ではなく、敵キャラを作るための元データであって、しかも書き換えてもセーブデータには反映されません。
(つまり、イベントによって敵キャラのステータスを書き換え、セーブしてゲームを終了。そのデータをロードした後には敵キャラのステータスは元に戻っています)
要件次第では別のアプローチのほうが良いこともあります。
もちろん、イベントで一時的に書き換えるだけで良ければこの方法でも問題ありません。
-
- 記事: 4
- 登録日時: 2020年3月07日(土) 09:02
Re: スクリプト内で変数を引用する記述について
質問者です。
みなさん早速ご回答いただき、誠にありがとうございます。
どういうイベントを作ろうとしているかと申しますと、
敵に疑似的な「レベル」を持たせようと思っています。
まず、戦闘開始直後に敵のIDを取得
$gameTroop.members()[0]._enemyId
次に、敵キャラの各能力値を変数に格納。
その敵の「初期レベル」で各能力値を除算し、「1レベル当たりの能力値」を算出。
その後、「レベル上昇幅」と「1レベル当たりの能力値」を乗算して、
教えていただいた敵能力値を書き換えるスクリプトで「レベル上昇後の能力」に置き換えていく
……という処理を考えています。
と、ここまで書いて思ったのですが、
確かに、御指摘いただいているように、データベースそのものを書き換えてしまうと、
「もともとの能力値」が保持できないので、バグってしまいそうですね。
戦闘中だけインスタントに「指定した値分だけ」能力値を上昇させる処理ってできないものなのでしょうか。
質問の趣旨が変わってきてしまいましたね。
申し訳ありません。
みなさん早速ご回答いただき、誠にありがとうございます。
どういうイベントを作ろうとしているかと申しますと、
敵に疑似的な「レベル」を持たせようと思っています。
まず、戦闘開始直後に敵のIDを取得
$gameTroop.members()[0]._enemyId
次に、敵キャラの各能力値を変数に格納。
その敵の「初期レベル」で各能力値を除算し、「1レベル当たりの能力値」を算出。
その後、「レベル上昇幅」と「1レベル当たりの能力値」を乗算して、
教えていただいた敵能力値を書き換えるスクリプトで「レベル上昇後の能力」に置き換えていく
……という処理を考えています。
と、ここまで書いて思ったのですが、
確かに、御指摘いただいているように、データベースそのものを書き換えてしまうと、
「もともとの能力値」が保持できないので、バグってしまいそうですね。
戦闘中だけインスタントに「指定した値分だけ」能力値を上昇させる処理ってできないものなのでしょうか。
質問の趣旨が変わってきてしまいましたね。
申し訳ありません。
-
- 記事: 4
- 登録日時: 2020年3月07日(土) 09:02
Re: スクリプト内で変数を引用する記述について
すみません、ありがとうございました。
戦闘開始時点でいったんすべての能力値を「レベルアップ前」の能力値として変数に格納し、
教えていただいたスクリプトでレベルアップ処理を実行、
戦闘が完全に終わった後に能力値を「レベルアップ前」に戻してやるという手順で、
思い通りのものが実装できました。
たいへん助かりました。ありがとうございました。
戦闘開始時点でいったんすべての能力値を「レベルアップ前」の能力値として変数に格納し、
教えていただいたスクリプトでレベルアップ処理を実行、
戦闘が完全に終わった後に能力値を「レベルアップ前」に戻してやるという手順で、
思い通りのものが実装できました。
たいへん助かりました。ありがとうございました。
- Plasma Dark
- 記事: 736
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: スクリプト内で変数を引用する記述について
解決されたようですが、私の敵レベル設定プラグインを改修してみました。
https://github.com/elleonard/RPGtkoolMV ... myLevel.js
敵にレベルを設定でき、プラグインコマンドで動的にレベルを変化させられます。
変化後のステータス計算はプラグインが勝手にやってくれます。
デフォルト設定では、レベルに比例して変化します。
(レベルが倍になればステータスも倍になる)
ステータス種別によってはあまり変化幅が大きいと困ることもあろうと思い、ステータス種別ごとに変化幅に対して倍率をかけることもできます。
https://github.com/elleonard/RPGtkoolMV ... myLevel.js
敵にレベルを設定でき、プラグインコマンドで動的にレベルを変化させられます。
変化後のステータス計算はプラグインが勝手にやってくれます。
デフォルト設定では、レベルに比例して変化します。
(レベルが倍になればステータスも倍になる)
ステータス種別によってはあまり変化幅が大きいと困ることもあろうと思い、ステータス種別ごとに変化幅に対して倍率をかけることもできます。
-
- 記事: 4
- 登録日時: 2020年3月07日(土) 09:02
Re: スクリプト内で変数を引用する記述について
おおっ、便利そうなプラグインですね!
ありがとうございます!
ありがとうございます!
