1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

【解決済】Skill Learn Engineのアクターの切り替えで不具合

沫那環2018-06-02に開始した「ツクールVX/VXAce」の中の討論

  1. 沫那環

    沫那環 ユーザー

    こんばんは。いつもお世話になっています。
    Yanfly ChannelのLearn Skill Engineを使用しているのですが、
    以下のような不具合が発生してしまい、対処に困っています。

    メニューから1番目のキャラのスキル習得画面を開き、Rボタンで2番目のキャラに移る。

    キャラのステータスは2番目のものになるが、習得できるスキルの一覧は1番目のキャラのもののまま。

    そのままRボタンで3番目のキャラに移ると、ステータスが3番目のものなのに2番目のキャラの習得可能スキル一覧が表示されてしまう。
    同じように、Lボタンで3番目から2番目のキャラへ戻ると、2番目のステータスなのに1番目のキャラの習得可能スキルの一覧が表示されてしまう。

    このように、L・Rボタンでキャラを切り替えると、キャラのクラスに正しく対応する習得可能スキル一覧ではなく、一つずれた一覧が表示されてしまいます。
    こちらの不具合は、新規プロジェクトにLearn Skill Engine単体を組み込んだ状態でも確認しています。
    この不具合への対処方法があれば、どなたがお教えいただけないでしょうか?
     
    #1
  2. まっつUP

    まっつUP ユーザー

    沫那環様
    お世話になります。

    Yanfly Engine Ace - Learn Skill Engine v1.00の単体導入下で
    end # Scene_LearnSkillの前の行に
    コード:
    #--------------------------------------------------------------------------
      # ● アクターの切り替え
      #--------------------------------------------------------------------------
      def on_actor_change
        @command_window.actor = @actor
        @status_window.actor = @actor
        @item_window.actor = @actor
        refresh_windows
        @command_window.activate
      end
    を入れてください。
    (ただし、変更によって新たなバグが発見されても責任はとれません。)
     
    #2
    沫那環 がいいね!しました
  3. faida

    faida ユーザー

    まっつUP様のコードで答えが出ているので別解です。
    コード:
    #==============================================================================
    # ■ Window_LearnSkillList
    #==============================================================================
    
    class Window_LearnSkillList < Window_SkillList
      #--------------------------------------------------------------------------
      # ● アクターの設定
      #--------------------------------------------------------------------------
      def actor=(actor)
        return if @actor == actor
        @actor = actor
        make_learn_skills_list # ここ
        refresh
        self.oy = 0
      end
    end
    作者は、ウィンドウにアクターをセットし、スキルのリストを作った後リフレッシュをかけるのを忘れていたようです。
    というか、リフレッシュをスーパークラス任せにして、その後に自分の作った処理を入れたのでそりゃリフレッシュかかりませんわな。
     
    #3
    沫那環 がいいね!しました
  4. 沫那環

    沫那環 ユーザー

    >まっつUPさん、faidaさん
    お二人とも、解決案をありがとうございます。
    どちらのコードでも、導入後は無事に動くようになりました。
    後ほど、スレのタイトルを「解決済」に変えておきます。
     
    #4

このページを共有