ガチャ改造プラグインを、スクリプトから実行

れんどろっぷ
記事: 6
登録日時: 2017年7月25日(火) 23:08

ガチャ改造プラグインを、スクリプトから実行

投稿記事by れんどろっぷ » 2018年4月29日(日) 18:01

いつも皆様にはお世話になっております。

トリアコンタン様が公式ガチャプラグインを改造された、
下のフォーラムページでで返信・公開されているプラグインについてです。
viewtopic.php?f=49&t=788

このスクリプトの『全額でガチャを引く機能』を、
イベントのスクリプトから実行したいです。
(スクリプトの中身を読んで実行したのですが、
 該当するファンクション?が見つけられませんでした…)

また、もしできればなのですが、
新しいものをゲットしたときだけあるコモンイベントを実行させたいです。
改造は可能でしょうか?

レスお待ちしております。

アバター
ベルファーレ長田(゜∀゜)
記事: 38
登録日時: 2017年9月08日(金) 13:22
お住まい: VIPツクールスレ
連絡を取る:

Re: ガチャ改造プラグインを、スクリプトから実行

投稿記事by ベルファーレ長田(゜∀゜) » 2018年4月30日(月) 06:40

どうも。

> このスクリプトの『全額でガチャを引く機能』を、
> イベントのスクリプトから実行したいです。

Gacha.jsで実装されている内容をイベントコマンドのスクリプトから実行することは難しいです。
550行目に記述されている下記メソッドの引数をInfinityに設定して実行すれば、
全額ガチャで実行することができます。

コード: 全て選択

Scene_Gacha.prototype.commandGacha = function(remainCount) {

}

しかし現状のGacha.jsの記述内容では、
イベントコマンドのスクリプトからはScene_Gachaを参照することができません。
プラグインの書き方によっては参照可能となりますが、
プラグインという形式でそれが望ましいかどうかは別問題で、
そのように改造したことによる影響範囲はそれなりにあると思います。

本件を解決するためにGacha.jsを改造するなら、プラグインコマンドを追加し、
①ガチャ画面表示後、
②全額ガチャをすぐに実行し、
③ガチャ画面を終了する
という処理を実行するようにした方がよいと思います。
やってみようと思いましたが…できませんでした!!力不足ですみません!!!

> また、もしできればなのですが、
> 新しいものをゲットしたときだけあるコモンイベントを実行させたいです。
> 改造は可能でしょうか?

ガチャ画面ではコモンイベントは実行されないので難しい…ですが、
Gacha.jsをちょっと改造したうえで、
トリアコンタン氏の「メニュー内コモンイベントプラグイン」と組み合わせれば可能です。
https://triacontane.blogspot.jp/2017/11/blog-post.html

①スイッチX番を監視して、ONになったらメッセージを表示するようなコモンイベントを準備。
※イベントトリガーは「なし」で良い
newItem.png


②「メニュー内コモンイベントプラグイン」にて、
①で作成したコモンイベントをガチャ画面にて並列実行するように設定する。
menuCommon.png


③Gacha.jsの691行目に定義されているshowResultメソッドの中身に、
下記のように新規アイテムを入手したときにスイッチX番をONにするような処理を追加する。

コード: 全て選択

Scene_Gacha.prototype.showResult = function() {
    …
    if (this._newItem) {
        $gameSwitches.setValue( 1, true );
    }
};


このようにすることで新規アイテム入手時にコモンイベントの処理を実行するようなことができます。
result.png
----------------------------------------------------------------
◆名前
ベルファーレ長田(゜∀゜)◆AHYA/HaiA.
◆肩書
スーパーツクラー
◆Twitter
https://twitter.com/velfare_nagata
----------------------------------------------------------------
れんどろっぷ
記事: 6
登録日時: 2017年7月25日(火) 23:08

Re: ガチャ改造プラグインを、スクリプトから実行

投稿記事by れんどろっぷ » 2018年5月01日(火) 02:16

返信ありがとうございます!
少し難しいのですね……。
もう少し勉強してみます!

また、2つ目のお願いですが、
書いて頂いているように加筆してみましたが、
うまく反応してくれませんでした。

showResultの中は、このように書けばよかったでしょうか?

コード: 全て選択

    Scene_Gacha.prototype.showResult = function() {
        this._goldWindow.hide();
        this._commandWindow.hide();
        this._dummyWindow.hide();
        this._getCommandWindow.show();
        this._getWindow.show();
        var message = this.getNewItemText() + getText;
        var reg     = /Item Name/gi;
        message     = message.replace(reg, String(this._item.name));
        this._helpWindow.setText(message);
        this._wait = 0;
        this._getCommandWindow.activate();
        if (this._newItem) {
            $gameSwitches.setValue( 20, true );
        }
    };


この中では20番のスイッチをONにするようにしているのですが、
新しくアイテムをゲットしても、ONにならないようです。
書き方を間違えてますでしょうか?
なにかご指摘あれば教えていただけるとありがたいです…
アバター
ベルファーレ長田(゜∀゜)
記事: 38
登録日時: 2017年9月08日(金) 13:22
お住まい: VIPツクールスレ
連絡を取る:

Re: ガチャ改造プラグインを、スクリプトから実行

投稿記事by ベルファーレ長田(゜∀゜) » 2018年5月01日(火) 18:05

どうも。

> showResultの中は、このように書けばよかったでしょうか?

記述されている内容をコピペしてShowResultメソッドを上書きしてみましたが、
問題なく新規アイテムゲット時にスイッチ20番がONになりました。
なので記述内容は問題ないと思います。

念のため下記をご確認ください。
・本当に新規アイテムをゲットした時にテストできているか
・F9キーでスイッチ/変数一覧を表示し、スイッチ20番がどうなっているか
----------------------------------------------------------------
◆名前
ベルファーレ長田(゜∀゜)◆AHYA/HaiA.
◆肩書
スーパーツクラー
◆Twitter
https://twitter.com/velfare_nagata
----------------------------------------------------------------

“MV:質問” へ戻る