【解決済み】連続で使えるアイテム

アバター
りんご飴
記事: 8
登録日時: 2021年3月15日(月) 19:58

【解決済み】連続で使えるアイテム

投稿記事by りんご飴 » 2021年7月25日(日) 22:30

いつもお世話になっています。

継続して使えるアイテムを作りたいです。敵とのエンカウントをしばらく無くすアイテムを作っています。
アイテム画面から使い、効果が切れたら連続して使用するかどうかのメッセージを表示するようにしたいのですが、どうすればいいでしょうか?

一回StateAddRemoveCommonプラグインを使って試してみたのですがうまくいきませんでした。設定方法がおかしかったんですかね?
最後に編集したユーザー りんご飴 on 2021年8月18日(水) 09:45 [ 編集 1 回目 ]

アバター
WTR
記事: 559
登録日時: 2015年12月22日(火) 19:14

Re: 連続で使えるアイテム

投稿記事by WTR » 2021年7月25日(日) 23:23

まず StateAddRemoveCommon が何者かわかりません。リンクを貼ってください。
さらに設定方法がおかしいかどうかは設定した内容を説明してもらわなければ判断しようがありません。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
虚構の城跡
記事: 696
登録日時: 2016年9月23日(金) 16:58
連絡を取る:

Re: 連続で使えるアイテム

投稿記事by 虚構の城跡 » 2021年7月26日(月) 00:02

StateAddRemoveCommon自体、何のか幾つか予想してみましたが思った通り、やな様のステート付与解除コモン特徴というプラグイン。
https://w.atwiki.jp/pokotan/pages/3.html

ステートが解除された時にコモンイベントを予約する特徴を追加するプラグインだけど、このプラグインを用いた方法も述べないと分かりませんよ。
sally
記事: 119
登録日時: 2019年8月06日(火) 05:11

Re: 連続で使えるアイテム

投稿記事by sally » 2021年7月26日(月) 00:08

エンカウントを無くすシステムについてはどのように組んでいるのでしょうか。

使用したプラグインがStateAddRemoveCommon
とのことですので名前と状況から推測する限り、おそらくステートを用いているとは思うのですが、明記したほうが回答しやすくなります。
また、StateAddRemoveCommonについては
設定方法のミスはもちろん、競合の可能性もありますので、現段階での原因特定は不可能です。

さて、エンカウント抑制と効果切れの際の判別の方法ですが、これはコモンイベントで作成すれば解決します。
アイテムの使用効果でスイッチをオンにし、並列処理のコモンイベントを作動させます。
後はコモンイベントでエンカウント抑制と抑制する歩数を設定&管理をし、歩数がゼロになったらアイテム再使用の選択肢を表示させる形です。

この方法でよければ、やり方をご説明します。
アバター
りんご飴
記事: 8
登録日時: 2021年3月15日(月) 19:58

Re: 連続で使えるアイテム

投稿記事by りんご飴 » 2021年7月27日(火) 12:14

再確認してみたのですが、プラグイン自体はきちんと動いているっぽいです。ごめんなさい。

今やっている方法は、アイテムを使用時にコモンイベントをつかってメッセージと共にエンカウントを無効にするステートをつけるという方法です。ステートは歩数で解除しています。
ステートにプラグインを使って、ステート解除時にスイッチをオンにするように設定しています。スイッチがオンになったら再使用のコモンイベントを実行するように設定しました。それは機能するのですが、再使用メッセージのコモンイベントからアイテムにつけているコモンイベントを実行しても、ステートがキャラに付かなくて困っていました。

そのため他に方法はあるかどうか質問させていただきました。説明不足で申し訳ございません。
ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: 連続で使えるアイテム

投稿記事by ecf5DTTzl6h6lJj02 » 2021年7月29日(木) 13:46

こんにちは。
りんご飴 さんが書きました:再確認してみたのですが、プラグイン自体はきちんと動いているっぽいです。ごめんなさい。

今やっている方法は、アイテムを使用時にコモンイベントをつかってメッセージと共にエンカウントを無効にするステートをつけるという方法です。ステートは歩数で解除しています。
ステートにプラグインを使って、ステート解除時にスイッチをオンにするように設定しています。スイッチがオンになったら再使用のコモンイベントを実行するように設定しました。それは機能するのですが、再使用メッセージのコモンイベントからアイテムにつけているコモンイベントを実行しても、ステートがキャラに付かなくて困っていました。

そのため他に方法はあるかどうか質問させていただきました。説明不足で申し訳ございません。

使っているプラグインが、
やな様の ステート付与解除時コモン特徴(StateAddRemoveCommonTrait.js)
https://plugin.fungamemake.com/archives/2103
(リンクは、ツクプラの紹介記事)
で、合っていることを前提に書きます。

まず、こちらの環境では、
エンカウントを無効にするステート自身に対して、
<ステート○解除時コモン:□ >
の記述をしても、ステート解除時に指定したコモンイベントが発生させられませんでした。
機能すると書いてありますが、何か別の要因で、スイッチがオンになっていたりはしないでしょうか。

で、こちらで、起動させる方法を別に考えて、次のような方法を取りました。

  1. 範囲を味方全体、使用効果にコモンイベントのみを指定したアイテムを作成。
  2. アクター全員のメモ欄に <ステート○解除時コモン:□>(○はステートのID、□はコモンイベントのID)
    のタグを記入する。
  3. アイテム使用時のコモンイベントとして、以下を設定

    コード: 全て選択

    ◆文章:なし, ウィンドウ, 下
    :  :エンカウントキャンセラーを使用した!
    ◆文章:なし, ウィンドウ, 下
    :  :しばらくの間敵と遭遇しなくなった。
    ◆ステートの変更:パーティ全体, - エンカウント無効
    ◆ステートの変更:パーティ全体, + エンカウント無効
    ◆注釈:下記スクリプトは、
    :  :ステートの変更で、エンカウント無効化のステートを
    :  :一度解除してから、付与しなおしているので、
    :  :ステート解除時のコモンイベントが発生する場合があるので、
    :  :発生した、コモンイベントの呼び出しを削除するものです。
    :  :(この例では解除時のコモンに16番を指定しています)
    ◆スクリプト:if (!!$gameTemp._commonStack) {
    :     : $gameTemp._commonStack = $gameTemp._commonStack.filter(value=>value[0] !== 16);
    :     :}
  4. ステート解除時に呼び出されるコモンイベントとして、以下を設定

    コード: 全て選択

    ◆注釈:下記スクリプトは、
    :  :アクター全員に、ステート解除時のコモンイベントを設定しているため、
    :  :重複して、コモンイベントが発生するので、
    :  :重複分のコモンイベントの呼び出しを削除するものです。
    :  :(この例では解除時のコモンに16番を指定しています)
    ◆スクリプト:if (!!$gameTemp._commonStack) {
    :     : $gameTemp._commonStack = $gameTemp._commonStack.filter(value=>value[0] !== 16);
    :     :}
    ◆条件分岐:パーティがエンカウントキャンセラーを持っている
      ◆文章:なし, ウィンドウ, 下
      :  :エンカウント無効の効果が切れました。
      :  :アイテムを再使用して、効果を継続しますか?
      ◆選択肢の表示:はい, いいえ (ウィンドウ, 右, #1, #2)
      :はいのとき
        ◆文章:なし, ウィンドウ, 下
        :  :アイテムを再使用して、効果を継続しました。
        ◆アイテムの増減:エンカウントキャンセラー - 1
        ◆ステートの変更:パーティ全体, - エンカウント無効
        ◆ステートの変更:パーティ全体, + エンカウント無効
        ◆
      :いいえのとき
        ◆文章:なし, ウィンドウ, 下
        :  :効果の継続を取り止めました。
        ◆
      :分岐終了
      ◆
    :それ以外のとき
      ◆文章:なし, ウィンドウ, 下
      :  :エンカウント無効の効果が切れました。
      :  :アイテムを所持していないため、効果の継続はできません。
      ◆
    :分岐終了
恐らくこれで、希望されている動作になるのではないかと思います。
ご確認ください。
アバター
りんご飴
記事: 8
登録日時: 2021年3月15日(月) 19:58

Re: 連続で使えるアイテム

投稿記事by りんご飴 » 2021年8月18日(水) 09:33

ecf5DTTzl6h6lJj02 さんが書きました:こんにちは。
りんご飴 さんが書きました:再確認してみたのですが、プラグイン自体はきちんと動いているっぽいです。ごめんなさい。

今やっている方法は、アイテムを使用時にコモンイベントをつかってメッセージと共にエンカウントを無効にするステートをつけるという方法です。ステートは歩数で解除しています。
ステートにプラグインを使って、ステート解除時にスイッチをオンにするように設定しています。スイッチがオンになったら再使用のコモンイベントを実行するように設定しました。それは機能するのですが、再使用メッセージのコモンイベントからアイテムにつけているコモンイベントを実行しても、ステートがキャラに付かなくて困っていました。

そのため他に方法はあるかどうか質問させていただきました。説明不足で申し訳ございません。

使っているプラグインが、
やな様の ステート付与解除時コモン特徴(StateAddRemoveCommonTrait.js)
https://plugin.fungamemake.com/archives/2103
(リンクは、ツクプラの紹介記事)
で、合っていることを前提に書きます。

まず、こちらの環境では、
エンカウントを無効にするステート自身に対して、
<ステート○解除時コモン:□ >
の記述をしても、ステート解除時に指定したコモンイベントが発生させられませんでした。
機能すると書いてありますが、何か別の要因で、スイッチがオンになっていたりはしないでしょうか。

で、こちらで、起動させる方法を別に考えて、次のような方法を取りました。

  1. 範囲を味方全体、使用効果にコモンイベントのみを指定したアイテムを作成。
  2. アクター全員のメモ欄に <ステート○解除時コモン:□>(○はステートのID、□はコモンイベントのID)
    のタグを記入する。
  3. アイテム使用時のコモンイベントとして、以下を設定

    コード: 全て選択

    ◆文章:なし, ウィンドウ, 下
    :  :エンカウントキャンセラーを使用した!
    ◆文章:なし, ウィンドウ, 下
    :  :しばらくの間敵と遭遇しなくなった。
    ◆ステートの変更:パーティ全体, - エンカウント無効
    ◆ステートの変更:パーティ全体, + エンカウント無効
    ◆注釈:下記スクリプトは、
    :  :ステートの変更で、エンカウント無効化のステートを
    :  :一度解除してから、付与しなおしているので、
    :  :ステート解除時のコモンイベントが発生する場合があるので、
    :  :発生した、コモンイベントの呼び出しを削除するものです。
    :  :(この例では解除時のコモンに16番を指定しています)
    ◆スクリプト:if (!!$gameTemp._commonStack) {
    :     : $gameTemp._commonStack = $gameTemp._commonStack.filter(value=>value[0] !== 16);
    :     :}
  4. ステート解除時に呼び出されるコモンイベントとして、以下を設定

    コード: 全て選択

    ◆注釈:下記スクリプトは、
    :  :アクター全員に、ステート解除時のコモンイベントを設定しているため、
    :  :重複して、コモンイベントが発生するので、
    :  :重複分のコモンイベントの呼び出しを削除するものです。
    :  :(この例では解除時のコモンに16番を指定しています)
    ◆スクリプト:if (!!$gameTemp._commonStack) {
    :     : $gameTemp._commonStack = $gameTemp._commonStack.filter(value=>value[0] !== 16);
    :     :}
    ◆条件分岐:パーティがエンカウントキャンセラーを持っている
      ◆文章:なし, ウィンドウ, 下
      :  :エンカウント無効の効果が切れました。
      :  :アイテムを再使用して、効果を継続しますか?
      ◆選択肢の表示:はい, いいえ (ウィンドウ, 右, #1, #2)
      :はいのとき
        ◆文章:なし, ウィンドウ, 下
        :  :アイテムを再使用して、効果を継続しました。
        ◆アイテムの増減:エンカウントキャンセラー - 1
        ◆ステートの変更:パーティ全体, - エンカウント無効
        ◆ステートの変更:パーティ全体, + エンカウント無効
        ◆
      :いいえのとき
        ◆文章:なし, ウィンドウ, 下
        :  :効果の継続を取り止めました。
        ◆
      :分岐終了
      ◆
    :それ以外のとき
      ◆文章:なし, ウィンドウ, 下
      :  :エンカウント無効の効果が切れました。
      :  :アイテムを所持していないため、効果の継続はできません。
      ◆
    :分岐終了
恐らくこれで、希望されている動作になるのではないかと思います。
ご確認ください。



試してみたところ、希望通りに動きました!本当にありがとうございます!

“MV:質問” へ戻る