ページ 12

【解決済み】コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月08日(月) 23:03
by ぷりおん
私は、アイテムを使って特定のキャラをレベルアップさせるゲームを制作しています。やり方は、アイテムを使用するとコモンイベントが起こり、特定のキャラがレベルアップするというものです。しかしこのやり方では、いちいちメニューからアイテムを選択し、レベルアップというのを繰り返さなければならず、非常に手間がかかります。そこで、どなたかコモンイベント終了後にもう一度アイテム選択画面に戻る、もしくはアイテムを連続で使用し、コモンイベントを連続で起こすなどの方法を教えてくださらないでしょうか?

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月09日(火) 18:34
by Arkroyal
質問の内容に近いプラグインをお勧めいたします。

Terunon様が作った RestoreMenuAfterCommon というプラグインです。

viewtopic.php?t=1203

よろしければ試してみてください。

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月09日(火) 18:45
by ムノクラ
ぷりおん さんが書きました:私は、アイテムを使って特定のキャラをレベルアップさせるゲームを制作しています。やり方は、アイテムを使用するとコモンイベントが起こり、特定のキャラがレベルアップするというものです。しかしこのやり方では、いちいちメニューからアイテムを選択し、レベルアップというのを繰り返さなければならず、非常に手間がかかります。そこで、どなたかコモンイベント終了後にもう一度アイテム選択画面に戻る、もしくはアイテムを連続で使用し、コモンイベントを連続で起こすなどの方法を教えてくださらないでしょうか?
邪道かもしれませんが、コモンイベントの最後に下記のスクリプトを入れてはいかがでしょうか?

コード: 全て選択

SceneManager.push(Scene_Item);

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月13日(土) 10:45
by ぷりおん
回答ありがとうございます!
しかし、お二方が教えて下さったやり方を試した結果、両方ともアイテム画面の1番最初に戻されてしまいます。
私の理想としては、選んだアイテムに戻るというものを考えています。
また、イベント「レベルアップを表示」を使用しているのですが
、表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。アイテムを使用する度にレベルアップを表示したいです。

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月13日(土) 11:03
by ムノクラ
ぷりおん さんが書きました:回答ありがとうございます!
しかし、お二方が教えて下さったやり方を試した結果、両方ともアイテム画面の1番最初に戻されてしまいます。
私の理想としては、選んだアイテムに戻るというものを考えています。
また、イベント「レベルアップを表示」を使用しているのですが
、表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。アイテムを使用する度にレベルアップを表示したいです。
理想は普通の回復アイテムなどを使用した挙動(新規プロジェクトのポーション等)だと予想しています。
基本機能ではレベルアップのアクター指定はコモンイベントでしかできないと思います。
上記の理想を実現するのは、専用のプラグインが必要と予想しています。

簡易な代替案として出しましたが、満足できないようですので、そのようなプラグインの作成依頼を出すのが現実的と思います。

自分がタイトルをつけるなら…
回復アイテムと似た挙動でレベルアップするアイテムを作れるプラグイン
といったところでしょうか。

レベルアップの表示をするとなると、かなり複雑な内容になると予想されます。

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月13日(土) 14:22
by ムノクラ
過去に似たような記事を書いたはず…と思って見返したら、尻切れトンボだったので、作り直してサンプルプロジェクトもアップしました。

参考になれば幸いです。
https://fungamemake.com/archives/7501

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月13日(土) 14:35
by 名無し蛙
どうもこんにちは
確かにプラグイン化は不可避でしょうけどそんなに難しく考える程のものではないと思いますよ
ぶりおん さんが書きました:表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。
これに関しては「レベルの増減」の直後に「スクリプト」の

コード: 全て選択

this.setWaitMode("message");
を指定すれば保留状態になります。注意点は一行だけですが下記のスクリプトと纏めない事です。

次にアイテム画面の初期設定ですが、かなり強引な処理ですが
あまり凝ったものを望まないのならこのくらいのプラグインで充分ではないでしょうか

コード: 全て選択

{
    "use strict";
    const _Scene_Item_start =  Scene_Item.prototype.start;
    Scene_Item.prototype.start = function() {
        _Scene_Item_start.call(this);
        if( 0 < SceneManager._stack.length ) return;
        SceneManager._stack.push(Scene_Map.prototype.constructor)
        SceneManager._stack.push(Scene_Menu.prototype.constructor)
        this._categoryWindow.select(0);
        this._categoryWindow.deactivate();
        this._itemWindow.setCategory("item");
        this.onCategoryOk();
    };
}
そしてアイテム画面を呼び出すコマンドはこれで

コード: 全て選択

SceneManager.goto(Scene_Item);
ムノクラさんが書いたものとは違い、pushではなくgotoを使用している事に注意してください

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月16日(火) 00:18
by ぷりおん
名無し蛙 さんが書きました:どうもこんにちは
確かにプラグイン化は不可避でしょうけどそんなに難しく考える程のものではないと思いますよ
ぶりおん さんが書きました:表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。
これに関しては「レベルの増減」の直後に「スクリプト」の

コード: 全て選択

this.setWaitMode("message");
を指定すれば保留状態になります。注意点は一行だけですが下記のスクリプトと纏めない事です。

次にアイテム画面の初期設定ですが、かなり強引な処理ですが
あまり凝ったものを望まないのならこのくらいのプラグインで充分ではないでしょうか

コード: 全て選択

{
    "use strict";
    const _Scene_Item_start =  Scene_Item.prototype.start;
    Scene_Item.prototype.start = function() {
        _Scene_Item_start.call(this);
        if( 0 < SceneManager._stack.length ) return;
        SceneManager._stack.push(Scene_Map.prototype.constructor)
        SceneManager._stack.push(Scene_Menu.prototype.constructor)
        this._categoryWindow.select(0);
        this._categoryWindow.deactivate();
        this._itemWindow.setCategory("item");
        this.onCategoryOk();
    };
}
そしてアイテム画面を呼び出すコマンドはこれで

コード: 全て選択

SceneManager.goto(Scene_Item);
ムノクラさんが書いたものとは違い、pushではなくgotoを使用している事に注意してください

名無し蛙様、ありがとうございます。
本当に無知で申し訳ないのですが、作ってくださったプラグインの導入方法が分かりません。
ご教授いただければうれしいです。m(_ _"m)

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月16日(火) 18:48
by 名無し蛙

コード: 全て選択

{
    "use strict";
    const _Scene_Item_start =  Scene_Item.prototype.start;
    Scene_Item.prototype.start = function() {
        _Scene_Item_start.call(this);
        if( 0 < SceneManager._stack.length ) return;
        SceneManager._stack.push(Scene_Map.prototype.constructor)
        SceneManager._stack.push(Scene_Menu.prototype.constructor)
        this._categoryWindow.select(0);
        this._categoryWindow.deactivate();
        this._itemWindow.setCategory("item");
        this.onCategoryOk();
    };
}
①エクスプローラ右クリックで空のテキストファイルを用意する
②メモ帳等のテキストエディタで内容に上記のコードをコピー&ペーストする
③拡張子が.jsなら何でも良いけどファイル名は適当にItemUseContinue.jsとでもしておきましょうか
④他のプラグインと同様にプラグインマネージャに登録する。出来れば下の方が不慮の事態が発生しづらいです
プラグインファイルに関してはこれで大丈夫だと思います。
イベントの方はこんな感じで。
ツクマテ説明.png

Re: コモンイベント後にもう一度アイテム選択画面に戻りたい

Posted: 2021年3月19日(金) 11:27
by ぷりおん
名無し蛙 さんが書きました:

コード: 全て選択

{
    "use strict";
    const _Scene_Item_start =  Scene_Item.prototype.start;
    Scene_Item.prototype.start = function() {
        _Scene_Item_start.call(this);
        if( 0 < SceneManager._stack.length ) return;
        SceneManager._stack.push(Scene_Map.prototype.constructor)
        SceneManager._stack.push(Scene_Menu.prototype.constructor)
        this._categoryWindow.select(0);
        this._categoryWindow.deactivate();
        this._itemWindow.setCategory("item");
        this.onCategoryOk();
    };
}
①エクスプローラ右クリックで空のテキストファイルを用意する
②メモ帳等のテキストエディタで内容に上記のコードをコピー&ペーストする
③拡張子が.jsなら何でも良いけどファイル名は適当にItemUseContinue.jsとでもしておきましょうか
④他のプラグインと同様にプラグインマネージャに登録する。出来れば下の方が不慮の事態が発生しづらいです
プラグインファイルに関してはこれで大丈夫だと思います。
イベントの方はこんな感じで。
ツクマテ説明.png
名無し蛙様、ありがとうございます。
おかげでだいぶ理想に近い挙動を作ることができました。
最後にもう一つだけあるのですが、実はレベルアップアイテムは大事なものに設定しております。
このプラグインでは、レベルアップアイテムを通常アイテムに設定するとうまくいくのですが、大事なものに設定すると、通常アイテムの初期画面に戻ってしまいます。
そこだけどうにかなったりしないでしょうか?