【保留】変数によるステート取得

LInna
記事: 24
登録日時: 2023年2月18日(土) 08:57

【保留】変数によるステート取得

投稿記事by LInna » 2023年6月06日(火) 12:41

変数でパーティメンバーのステートを取得する事は可能でしょうか。
また、取得したステートを代入するという事は可能でしょうか。
最後に編集したユーザー LInna on 2023年6月07日(水) 00:19 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 変数によるステート取得

投稿記事by 剣崎 宗二 » 2023年6月06日(火) 17:25

出来るかできないで言えば無論できます。
ただ、いくつか考慮すべき事があります。

・複数ステートが付与されている場合、どういう形式で変数に入れたいのか(IDの配列でいいのか?)
・ステートの残ターン数も取得する必要があるのか?(ステートとは別に保存されてます)
・代入する際、既に同じステートが付与されていたらどうするのか?(或いは「完全に取得した時のステートの状態に戻す」のか?)

等。具体的にやりたい事によって話は大分変わりますので、今すぐ確固な回答はできません。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
LInna
記事: 24
登録日時: 2023年2月18日(土) 08:57

Re: 変数によるステート取得

投稿記事by LInna » 2023年6月06日(火) 17:32

剣崎 宗二 さんが書きました:出来るかできないで言えば無論できます。
ただ、いくつか考慮すべき事があります。

・複数ステートが付与されている場合、どういう形式で変数に入れたいのか(IDの配列でいいのか?)
・ステートの残ターン数も取得する必要があるのか?(ステートとは別に保存されてます)
・代入する際、既に同じステートが付与されていたらどうするのか?(或いは「完全に取得した時のステートの状態に戻す」のか?)

等。具体的にやりたい事によって話は大分変わりますので、今すぐ確固な回答はできません。


コメントありがとうございます。

複数ステートがある場合はIDの配列で構いません。
残ターンは配慮したいです。
同じステートがある場合は無視で、完全に取得した時のステートの状態に戻したいです。

分かりやすく言うと、ドラクエの時の砂というアイテムと同じことがしたいです。
使用すると戦闘開始時の状態に戻るという効果です。
HPとMPはスクリプトと変数で何とか書けたので、後はステートを……という状況です。
アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 変数によるステート取得

投稿記事by 剣崎 宗二 » 2023年6月06日(火) 17:56

であれば以前回答したこちらが多少参考になるかと思います。
viewtopic.php?t=8637

回答自体はステートの状態を相手側に移すという物ですが、同じ仕組みを利用すればステートの状態の退避、入れ直しも可能かと。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
LInna
記事: 24
登録日時: 2023年2月18日(土) 08:57

Re: 変数によるステート取得

投稿記事by LInna » 2023年6月06日(火) 22:51

剣崎 宗二 さんが書きました:であれば以前回答したこちらが多少参考になるかと思います。
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);

のスクリプトを実行しようと思ったのですが、
戦闘開始時にエラーが出ました。
難しいです。
添付ファイル
新規キャンバス.png
アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 変数によるステート取得

投稿記事by 剣崎 宗二 » 2023年6月06日(火) 23:59

1. 開始時スクリプトに誤りがあります。括弧類は必ずかっことかっこ閉じが対応するようにしてください。

コード: 全て選択

$gameVariables.setValue(63,JsonEx.makeDeepCopy($gameParty.members()[0]._states));
$gameVariables.setValue(64,JsonEx.makeDeepCopy($gameParty.members()[0]._stateTurns));


2. 他のプラグインを一回切り、そちらとの競合などではない事をご確認ください。
(YEP_AutoPassiveStatesが見えてます)

3. スキルからコモンイベントの呼び出し部分は完全に誤り(同じものを同じところに入れなおしている)のですが、そもそも開始時のエラーを乗り越えないとそこに行けないので一旦放置いたします。


結局、LInna様がやろうとしている事は決して「簡単な事」ではないのです…
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
LInna
記事: 24
登録日時: 2023年2月18日(土) 08:57

Re: 変数によるステート取得

投稿記事by LInna » 2023年6月07日(水) 00:19

剣崎 宗二 さんが書きました: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が戦闘開始時に戻り、相手も全員回復、復活するというスキルで運用します。


お手数おかけして申し訳ございません。
本当にありがとうございます。

“MV:質問” へ戻る