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

ぷりおん
記事: 9
登録日時: 2019年12月23日(月) 23:51

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

投稿記事by ぷりおん » 2021年3月08日(月) 23:03

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

Arkroyal
記事: 80
登録日時: 2021年1月06日(水) 10:41

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

投稿記事by Arkroyal » 2021年3月09日(火) 18:34

質問の内容に近いプラグインをお勧めいたします。

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

viewtopic.php?t=1203

よろしければ試してみてください。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

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

投稿記事by ムノクラ » 2021年3月09日(火) 18:45

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


邪道かもしれませんが、コモンイベントの最後に下記のスクリプトを入れてはいかがでしょうか?

コード: 全て選択

SceneManager.push(Scene_Item);
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
ぷりおん
記事: 9
登録日時: 2019年12月23日(月) 23:51

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

投稿記事by ぷりおん » 2021年3月13日(土) 10:45

回答ありがとうございます!
しかし、お二方が教えて下さったやり方を試した結果、両方ともアイテム画面の1番最初に戻されてしまいます。
私の理想としては、選んだアイテムに戻るというものを考えています。
また、イベント「レベルアップを表示」を使用しているのですが
、表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。アイテムを使用する度にレベルアップを表示したいです。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

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

投稿記事by ムノクラ » 2021年3月13日(土) 11:03

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


理想は普通の回復アイテムなどを使用した挙動(新規プロジェクトのポーション等)だと予想しています。
基本機能ではレベルアップのアクター指定はコモンイベントでしかできないと思います。
上記の理想を実現するのは、専用のプラグインが必要と予想しています。

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

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

レベルアップの表示をするとなると、かなり複雑な内容になると予想されます。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

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

投稿記事by ムノクラ » 2021年3月13日(土) 14:22

過去に似たような記事を書いたはず…と思って見返したら、尻切れトンボだったので、作り直してサンプルプロジェクトもアップしました。

参考になれば幸いです。
https://fungamemake.com/archives/7501
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
名無し蛙
記事: 310
登録日時: 2015年11月23日(月) 02:46

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

投稿記事by 名無し蛙 » 2021年3月13日(土) 14:35

どうもこんにちは
確かにプラグイン化は不可避でしょうけどそんなに難しく考える程のものではないと思いますよ
ぶりおん さんが書きました:表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。

これに関しては「レベルの増減」の直後に「スクリプト」の

コード: 全て選択

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を使用している事に注意してください
ぷりおん
記事: 9
登録日時: 2019年12月23日(月) 23:51

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

投稿記事by ぷりおん » 2021年3月16日(火) 00:18

名無し蛙 さんが書きました:どうもこんにちは
確かにプラグイン化は不可避でしょうけどそんなに難しく考える程のものではないと思いますよ
ぶりおん さんが書きました:表示される前にアイテム画面に戻ってしまい、閉じた後にレベルアップが表示されます。

これに関しては「レベルの増減」の直後に「スクリプト」の

コード: 全て選択

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)
名無し蛙
記事: 310
登録日時: 2015年11月23日(月) 02:46

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

投稿記事by 名無し蛙 » 2021年3月16日(火) 18:48

コード: 全て選択

{
    "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
ぷりおん
記事: 9
登録日時: 2019年12月23日(月) 23:51

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

投稿記事by ぷりおん » 2021年3月19日(金) 11:27

名無し蛙 さんが書きました:

コード: 全て選択

{
    "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

名無し蛙様、ありがとうございます。
おかげでだいぶ理想に近い挙動を作ることができました。
最後にもう一つだけあるのですが、実はレベルアップアイテムは大事なものに設定しております。
このプラグインでは、レベルアップアイテムを通常アイテムに設定するとうまくいくのですが、大事なものに設定すると、通常アイテムの初期画面に戻ってしまいます。
そこだけどうにかなったりしないでしょうか?

“MV:質問” へ戻る