ガチャプラグインについて

Mr.あきちゃん
記事: 68
登録日時: 2017年7月23日(日) 02:51

ガチャプラグインについて

投稿記事by Mr.あきちゃん » 2017年10月04日(水) 14:38

皆様にはいつも大変お世話になっております。
「質問」ではなく「素材のリクエスト」ですべきなのかもしれませんが、
ガチャ(プラグイン)についてお伺いします。

ガチャを実行する際、以下のようにしたいのです。
1.イベントで「ガチャをしますか?」で「はい」と答えたら、すぐさまガチャ画面にしたい。
 "gacha open"とすると、更に「ガチャをする」「やめる」が出てきますが、これが不要。
 goldは消費しなくて構いません。

2.1回ガチャをしたら、一旦終了したい。
 サンプルでは、ガチャを引いたあと、続けて「ガチャをする」「やめる」となりますが、
 一旦イベントを終了したいのです。(1が出来れば必然的に終了するかも)

なんか、うまく説明できなくて、申しわけありません…^^;
ようするにgoldではなく、例えば「福引券」というようなアイテムが有るときにだけ
ガチャができる、というようなことをやりたいのです。

上記1と2をやろうとする場合、既存のgacha.jsのどのあたりをいじればできますか?
それともいじる程度では不可能でしょうか?(作りなおし)
gacha.jsのスクリプトを見ても、手も足も出ず、いじる程度で済むのか、
作り直すくらいなのかもわからないのです。

いじる程度ですまないのであれば、トピ違いで申し訳ありませんが、
リクエストとしてお願い致します。
宜しくお願い致します。

Mr.あきちゃん
記事: 68
登録日時: 2017年7月23日(日) 02:51

Re: ガチャプラグインについて

投稿記事by Mr.あきちゃん » 2017年10月04日(水) 21:26

すみません、↑だったらわざわざプラグインにしなくても、
アニメーションの表示とピクチャの表示とかでどうにかなりますね^^;

ただし、普通に「アニメーションの表示」だと、アニメーションが終わると
映像が消えてしまいます。(当たり前ですが…)
ガチャサンプルの星のアニメーションみたく、アニメーションを最後のフレームで
ストップさせるにはどうすれば良いのでしょうか?
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: ガチャプラグインについて

投稿記事by ビービー » 2017年10月05日(木) 13:36

こんにちは。
制作お疲れ様です。

ド素人なので無理矢理できるようにした感じです。
スマートではありませんが、いちおうできるようになったのでお伝えしておきます。

まず335行目からのScene_Gacha.prototype.createに以下の追加部分を追加してください。

コード: 全て選択

    Scene_Gacha.prototype.create = function () {
        Scene_MenuBase.prototype.create.call(this);

        this.createHelpWindow();
        this.createGoldWindow();
        this.createCommandWindow();
        this.createDummyWindow();
        this.createGetCommandWindow();
        this.createGetWindow();
//追加
        this._commandWindow.deactivate();
        this._goldWindow.hide();
        this._commandWindow.hide();
        this._dummyWindow.hide();
//ここまで
        this._rankSprite = new Sprite_GachaEffect();
        this._rankSprite.keepDisplay(true);
        this.addChild(this._rankSprite);

        this._windowFadeSprite = new ScreenSprite();
        this._windowFadeSprite.setColor(0, 0, 0);
        this._windowFadeSprite.opacity = 0;
        this._windowFadeSprite.visible = false;
        this.addChild(this._windowFadeSprite);

        this._effectSprite = new Sprite_GachaEffect();
        this._effectSprite.x = Graphics.boxWidth / 2;
        this._effectSprite.y = Graphics.boxHeight / 2;
        this.addChild(this._effectSprite);

//コメントアウト
//        this._helpWindow.setText(message);
//ここまで
//追加
        this.commandGacha();
//ここまで
    };

    Scene_Gacha.prototype.createGoldWindow = function () {
        this._goldWindow = new Window_Gold(0, this._helpWindow.height);
        this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
        this.addWindow(this._goldWindow);
    };

次に396行目からのScene_Gacha.prototype.createGetCommandWindowを以下の改変を行ってください。

コード: 全て選択

    Scene_Gacha.prototype.createGetCommandWindow = function () {
        this._getCommandWindow = new Window_GachaGetCommand(Graphics.boxWidth, false);
        this._getCommandWindow.y = Graphics.boxHeight - this._getCommandWindow.height;
//改変
        this._getCommandWindow.setHandler('cancel', this.popScene.bind(this));
//ここまで
        this._getCommandWindow.hide();
        this.addWindow(this._getCommandWindow);
    };

これで動作すると思います。

ただし問題が一点。
所持金が足りなくてもガチャができてしまいます。
事前に条件分岐などで引けないようにしてください。

より良い解決策をどなたかが提案してくれるまでの一時しのぎとしてご使用ください。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Mr.あきちゃん
記事: 68
登録日時: 2017年7月23日(日) 02:51

Re: ガチャプラグインについて

投稿記事by Mr.あきちゃん » 2017年10月06日(金) 00:06

ビービー様

お世話になります。
いや素晴らしい!!
理想通りの動きです!!

アニメーションの表示とピクチャの表示でどうにかしてはいたのですが、
ピクチャの表示だと、なかなか位置合わせが面倒で…
このガチャプラグインはピクチャの位置合わせもやっていたのですね(当然ですが)

ちなみにgoldは無視(消費0に)しているので、所持金の心配は無用です。
一時しのぎどころか、これが完成版ですよ。
どうもありがとうございました。

“MV:質問” へ戻る