#============================================================================== # ■ VX-RGSS2-5 用語辞典-アナライザ [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # スキル、アイテムを使って、敵の能力を調べることができるようになります。 # 使用可能時 :バトルのみ # 効果範囲 :単体のみ #------------------------------------------------------------------------------ # 必須 : 自動生成Plugin、自動更新Plugin #------------------------------------------------------------------------------ # 自動生成 : ATC_ENEMY_A を使用してください # 自動更新 : A_UP[ATC_ENEMY_A] を有効にしてください #------------------------------------------------------------------------------ module DictAnalizer # アナライザとして使用するスキルID SKILL_ID = [83, 84] # アナライザとして使用するアイテムID ITEM_ID = [22] # 画面背景の不透明度 BACK_OPACITY = 160 end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 行動結果の表示 # target : 対象者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias display_action_effects_analizer display_action_effects def display_action_effects(target, obj = nil) display_action_effects_analizer(target, obj) exec_analizer(target, obj) if is_analizer?(target, obj) end #-------------------------------------------------------------------------- # ● 失敗の表示 # target : 対象者 (アクター) # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias display_failure_analizer display_failure def display_failure(target, obj) return if is_analizer?(target, obj) display_failure_analizer(target, obj) end #-------------------------------------------------------------------------- # ● アナライザ : スキル or アイテム #-------------------------------------------------------------------------- def is_analizer?(target, obj) return false if target.actor? # エネミーだけ return false if target.missed case obj when RPG::Skill return false unless DictAnalizer::SKILL_ID.include?(obj.id) return true when RPG::Item return unless DictAnalizer::ITEM_ID.include?(obj.id) return true end return false end #-------------------------------------------------------------------------- # ● アナライザ実行 #-------------------------------------------------------------------------- def exec_analizer(target, obj=nil) if !defined?(DictAutoUpdate) or !defined?(DictAutoCreate) p "自動生成、自動更新がありません。" return end # setup analizer = Window_DictInfo.new analizer.back_opacity = DictAnalizer::BACK_OPACITY a_up = DictAutoUpdate::A_UP[DictDef::ATC_ENEMY_A] enemy_id = target.enemy_id data = $game_system.dictionary[a_up.category_id][enemy_id] data.show_flg = true unless data.show_flg data.info = DictAutoCreate.enemy_text(enemy_id) if data.info == "" analizer.refresh(data, 0) # update while 1 #update_basic(true) # @message_windowは更新したくない Graphics.update # ゲーム画面を更新 Input.update # 入力情報を更新 $game_system.update # タイマーを更新 $game_troop.update # 敵グループを更新 @spriteset.update # スプライトセットを更新 analizer.update_arrow if Input.trigger?(Input::C) Sound.play_decision break elsif Input.trigger?(Input::B) Sound.play_cancel break # 上ボタンが押された場合 elsif Input.repeat?(Input::UP) or Input.repeat?(Input::L) analizer.page_up # 下ボタンが押された場合 elsif Input.repeat?(Input::DOWN) or Input.repeat?(Input::R) analizer.page_dw end end # exit analizer.dispose end end