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

沫那環

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

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

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

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

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

まっつ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
を入れてください。
(ただし、変更によって新たなバグが発見されても責任はとれません。)
 

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
作者は、ウィンドウにアクターをセットし、スキルのリストを作った後リフレッシュをかけるのを忘れていたようです。
というか、リフレッシュをスーパークラス任せにして、その後に自分の作った処理を入れたのでそりゃリフレッシュかかりませんわな。
 

沫那環

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