ページ 1 / 1
【保留】変数によるステート取得
Posted: 2023年6月06日(火) 12:41
by LInna
変数でパーティメンバーのステートを取得する事は可能でしょうか。
また、取得したステートを代入するという事は可能でしょうか。
Re: 変数によるステート取得
Posted: 2023年6月06日(火) 17:25
by 剣崎 宗二
出来るかできないで言えば無論できます。
ただ、いくつか考慮すべき事があります。
・複数ステートが付与されている場合、どういう形式で変数に入れたいのか(IDの配列でいいのか?)
・ステートの残ターン数も取得する必要があるのか?(ステートとは別に保存されてます)
・代入する際、既に同じステートが付与されていたらどうするのか?(或いは「完全に取得した時のステートの状態に戻す」のか?)
等。具体的にやりたい事によって話は大分変わりますので、今すぐ確固な回答はできません。
Re: 変数によるステート取得
Posted: 2023年6月06日(火) 17:32
by LInna
剣崎 宗二 さんが書きました:出来るかできないで言えば無論できます。
ただ、いくつか考慮すべき事があります。
・複数ステートが付与されている場合、どういう形式で変数に入れたいのか(IDの配列でいいのか?)
・ステートの残ターン数も取得する必要があるのか?(ステートとは別に保存されてます)
・代入する際、既に同じステートが付与されていたらどうするのか?(或いは「完全に取得した時のステートの状態に戻す」のか?)
等。具体的にやりたい事によって話は大分変わりますので、今すぐ確固な回答はできません。
コメントありがとうございます。
複数ステートがある場合はIDの配列で構いません。
残ターンは配慮したいです。
同じステートがある場合は無視で、完全に取得した時のステートの状態に戻したいです。
分かりやすく言うと、ドラクエの時の砂というアイテムと同じことがしたいです。
使用すると戦闘開始時の状態に戻るという効果です。
HPとMPはスクリプトと変数で何とか書けたので、後はステートを……という状況です。
Re: 変数によるステート取得
Posted: 2023年6月06日(火) 17:56
by 剣崎 宗二
であれば以前回答したこちらが多少参考になるかと思います。
viewtopic.php?t=8637
回答自体はステートの状態を相手側に移すという物ですが、同じ仕組みを利用すればステートの状態の退避、入れ直しも可能かと。
Re: 変数によるステート取得
Posted: 2023年6月06日(火) 22:51
by LInna
剣崎 宗二 さんが書きました:であれば以前回答したこちらが多少参考になるかと思います。
viewtopic.php?t=8637
回答自体はステートの状態を相手側に移すという物ですが、同じ仕組みを利用すればステートの状態の退避、入れ直しも可能かと。
すみません、教えて下さりありがたいのですが、色々試してみたのですがどうも分かりません。
戦闘開始時に
$gameVariables.setValue(63,JsonEx.makeDeepCopy($gameParty.members()[0]._states);
$gameVariables.setValue(64,JsonEx.makeDeepCopy($gameParty.members()[0]._stateTurns);
のスクリプトを実行し、
スキルからコモンイベントを呼び出して
$gameParty.members()[0]._states = JsonEx.makeDeepCopy($gameParty.members()[0]._states);
$gameParty.members()[0]._stateTurns = JsonEx.makeDeepCopy($gameParty.members()[0]._stateTurns);
のスクリプトを実行しようと思ったのですが、
戦闘開始時にエラーが出ました。
難しいです。
Re: 変数によるステート取得
Posted: 2023年6月06日(火) 23:59
by 剣崎 宗二
1. 開始時スクリプトに誤りがあります。括弧類は必ずかっことかっこ閉じが対応するようにしてください。
↓
コード: 全て選択
$gameVariables.setValue(63,JsonEx.makeDeepCopy($gameParty.members()[0]._states));
$gameVariables.setValue(64,JsonEx.makeDeepCopy($gameParty.members()[0]._stateTurns));
2. 他のプラグインを一回切り、そちらとの競合などではない事をご確認ください。
(YEP_AutoPassiveStatesが見えてます)
3. スキルからコモンイベントの呼び出し部分は完全に誤り(同じものを同じところに入れなおしている)のですが、そもそも開始時のエラーを乗り越えないとそこに行けないので一旦放置いたします。
結局、LInna様がやろうとしている事は決して「簡単な事」ではないのです…
Re: 変数によるステート取得
Posted: 2023年6月07日(水) 00:19
by LInna
剣崎 宗二 さんが書きました:1. 開始時スクリプトに誤りがあります。括弧類は必ずかっことかっこ閉じが対応するようにしてください。
↓
コード: 全て選択
$gameVariables.setValue(63,JsonEx.makeDeepCopy($gameParty.members()[0]._states));
$gameVariables.setValue(64,JsonEx.makeDeepCopy($gameParty.members()[0]._stateTurns));
2. 他のプラグインを一回切り、そちらとの競合などではない事をご確認ください。
(YEP_AutoPassiveStatesが見えてます)
3. スキルからコモンイベントの呼び出し部分は完全に誤り(同じものを同じところに入れなおしている)のですが、そもそも開始時のエラーを乗り越えないとそこに行けないので一旦放置いたします。
結局、LInna様がやろうとしている事は決して「簡単な事」ではないのです…
そうなんですね……。
薄々分かってはいましたが、ツクールどころかちゃんとしたスクリプトを弄り始めて半年も経ってない状態では、無理そうです。
もう少し経験を積んでから、再度熟考してみようと思います。
一先ず、ステートは諦め、HPとMPが戦闘開始時に戻り、相手も全員回復、復活するというスキルで運用します。
お手数おかけして申し訳ございません。
本当にありがとうございます。