设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 127|回复: 0

[转载发布] Change Battle Background depend on Skill

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-7-31 15:11:56 | 显示全部楼层 |阅读模式
    Battle Background Change 
    Version. 1.0
    Devil Knight

    Introduction
     
    This Script allow you to change battle Background depend on skill use and get affected from it
     
    Features

    - Easy To use
    - You can give each Field State Effect
    - You can change whole Background By using skill

    How to Use
    All Instruction in The Script

    Demo
    https://www.dropbox.com/s/mew0nd9ol1qskie/Demo%20Battle%20Background%20Change.rar?dl=0
    Script

    Spoiler                Code:       
    1.  #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    复制代码

    #                       Condition Battle Background Change

    #                       Version: 1.0

    #                       Author: Devil Knight

    #                       Date: 24th  Sep, 2014

    #-------------------------------------------------------------------------------

    # Description:

    #

    #       This Script allow you to change battle Background depend on skill use 

    #         and get affected from it

    #

    #-------------------------------------------------------------------------------

    # Instruction:

    #

    #     - In Editablel Region do the following:

    #       

    #       - In Skill Section Write The name of the skills that will affect fields

    #

    #       - In Fields area section write the name of fields (wall or floor)  

    #         that will have elemental power with state ID that will accur in those

    #         fields

    #

    #       - From field_affect_by_flame to field_affect_by_wind write Sections 

    #         the names of the fieldsthat will get affect from skill, 

    #         field that will change to, and the state ID that will accur 

    #         (Note: In each secion the :affected_field, :field_change, and 

    #             :state_id must be in the same order)

    #

    #     - You Can Resist State Effect from feature window in DateBase 

    #       (From Rate  =>  State Resist  =>  State_Name)

    #

    #

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    module Devil_Knight

      module Battle_Background_Change

        

        #---------------------------------------------------------------------  

        #                                                                 #

        #                   EDITABLE REGION                               #

        #                                                                 #

        #--------------------------------------------------------------------

        #-----------------------------------------------------------------------

        # Write All Skill Name That Will Affect Field

        #-----------------------------------------------------------------------

        Skill   = 

        {

              :skill    =>  

                    {

                                    :flame    =>  ["Fire"],            # Flame Skills

                                    :ice      =>  ["Ice"],             # Ice Skills

                                   
    oison   =>  ["Poison Cloud"],    # Poison Skills

                                    :dark     =>  ["Dark Cloud"],            # Dark Skills

                                    :water    =>  ["Water"],           # Water Skills

                                    :light    =>  ["Saint", "Shock"],  # Light Skills

                                    :wind     =>  ["Wind"],               # Wind Skills

                    },

        }

        #-----------------------------------------------------------------------

        # Write All Fields Name That Will Be Affect (Name of Wall or Floor)

        #-----------------------------------------------------------------------

        Fields  = 

        {

              #Fields Elements 

              :area     =>

              {

                              :flame_field  =>    ["Lava2", "LavaCave"],  # Fields That Have Flame Element

                              :flame_state_id =>  26,                      # Original Flame Field State ID

                              :ice_field    =>    ["Snow", "Snowfield"],  # Fields That Have Ice Element

                              :ice_state_id =>  27,                      # Original Ice Field State ID

                             
    oison_field =>    ["PoisonSwamp"],        # Fields That Have Poison Element

                             
    oison_state_id =>  2,                     # Original Poison Field State ID

                              :lighting_field =>  [nil],                  # Fields That Have Light Element

                              :light_state_id =>  7,                      # Original Light area State ID

                              :water_area   =>    ["Sea"],                # Fields That Have Water Element

                              :water_state_id =>  nil,                      # Original Water area State ID

                              :dark_area    =>    ["DarkSpace"],          # Fields That Have Dark Element

                              :dark_state_id =>  3,                      # Original Dark Area State ID

                              :wind_area    =>    [nil],                  # Fields That Have Wind Element

                              :wind_state_id =>  nil,                      # Original Wind Area State ID

              },

              

              # Fields That will Affect From Flame Skills

              :field_affect_by_flame => 

              {

                :affected_field   =>  ["Grassland", "Snowfield"], # Fields That Will Affect From Flame 

                #                         |              |

                #                         V              V

                :field_change     =>  ["LavaCave",  "Grassland"], # Fields That Will Change To

                #                         |              |

                #                         V              V

                :state_id         =>  [   26,           nil    ], # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Ice Skills

              :field_affect_by_ice => 

              {

                :affected_field   =>  ["Grassland", "LavaCave", "Lava2"],  # Fields That Will Affect From Ice

                #                         |              |

                #                         V              V

                :field_change     =>  ["Snowfield", "Grassland", "Grassland"], # Fields That Will Change To

                #                         |              |

                #                         V              V

                :state_id         =>  [   27,           nil    ,    nil     ], # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Poison Skills

              :field_affect_by_poison => 

              {

                :affected_field   =>  ["Grassland"],      # Fields That Will Affect From Poison

                #                         |              

                #                         V              

                :field_change     =>  ["PoisonSwamp"],    # Fields That Will Change To

                #                         |

                #                         V              

                :state_id         =>  [   2],             # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Dark Skills

              :field_affect_by_dark => 

              {

                :affected_field   =>  ["Grassland", "Snowfield"], # Fields That Will Affect From Dark

                #                         |              |

                #                         V              V

                :field_change     =>  ["DarkSpace", "DarkSpace"], # Fields That Will Change To

                #                         |              |

                #                         V              V

                :state_id         =>  [   3,             3    ],  # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Water Skills

              :field_affect_by_water => 

              {

                :affected_field   =>  ["LavaCave"], # Fields That Will Affect From Water

                #                         |

                #                         V              

                :field_change     =>  ["Lava1"],    # Fields That Will Change To

                #                         |              

                #                         V              

                :state_id         =>  [   nil ],    # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Light Skills

              :field_affect_by_light => 

              {

                :affected_field   =>  ["DarkSpace"],  # Fields That Will Affect From Light

                #                         |              

                #                         V              

                :field_change     =>  ["Road1"],  # Fields That Will Change To

                #                         |              

                #                         V

                :state_id         =>  [   nil ],  # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              # Fields That will Affect From Wind Skills

              :field_affect_by_wind => 

              {

                :affected_field   =>  ["Sand", "Desert"], # Fields That Will Affect From Wind

                #                         | 

                #                         V              

                :field_change     =>  ["Sand", "Desert"], # Fields That Will Change To

                #                         |

                #                         V              

                :state_id         =>  [   3,        3  ],   # State ID Trigger Depend on Field Change To (Take The State From State Menu)

              },

              

        }

        #---------------------------------------------------------------------  

        #                                                                 #

        #                   End Of EDITABLE REGION                        #

        #                                                                 #

        #--------------------------------------------------------------------

      end

    end

    #==============================================================================

    # ** Scene_Battle

    #------------------------------------------------------------------------------

    #  This class performs battle screen processing.

    #==============================================================================

     

    class Scene_Battle < Scene_Base

      include Devil_Knight::Battle_Background_Change

      attr_accessor   :skill_name                 # Skill that has Been Used

      attr_accessor  
    revious_effect_id         # Last State ID Has Been Trigger

      attr_accessor   :battle_start_state_trigger # To Apply Field State Effect At Battle Start

      #--------------------------------------------------------------------------

      # * Start Processing

      #--------------------------------------------------------------------------

      alias devil_knight_Battle_background_change_Scene_Battle_start    start

      def start

        devil_knight_Battle_background_change_Scene_Battle_start()

        @battle_start_state_trigger = false # The state of original field did not active

      end

      #--------------------------------------------------------------------------

      # * Event Processing

      #--------------------------------------------------------------------------

      alias devil_knight_Battle_background_change_Scene_Battle_process_event    process_event

      def process_event

        if @spriteset.field_type != "normal" && @battle_start_state_trigger == false

          all_battle_members.each do |battler|

            battler.add_state(@spriteset.original_field_state_id) # Add the state of original field

            @log_window.display_affected_status(battler, nil)

            @log_window.wait_and_clear

          end

           @battle_start_state_trigger = true # The state of original field has activated

        end

        devil_knight_Battle_background_change_Scene_Battle_process_event()

      end

      #--------------------------------------------------------------------------

      # * Battle Action Processing

      #--------------------------------------------------------------------------

      def process_action

        return if scene_changing?

        if !@subject || !@subject.current_action

          @subject = BattleManager.next_subject

        end

        return turn_end unless @subject

        if @subject.current_action

          @subject.current_action.prepare

          if @subject.current_action.valid?

            @status_window.open

            execute_action

            skill_effect(@skill_name) # Call the new method

          end

          @subject.remove_current_action

        end

        process_action_end unless @subject.current_action

      end

      #--------------------------------------------------------------------------

      # * New Method: Skill Effect

      #--------------------------------------------------------------------------

      def skill_effect(skill_name)

        if @spriteset.update_field(skill_name)  # To check is there any change need to do

          all_battle_members.each do |battler|

              if battler.alive? && @spriteset.state_id == nil # To check is the used skill element oppose the original field element

                battler.remove_state(@spriteset.original_field_state_id)  # Remove the original field state effect from battler

                @log_window.display_removed_states(battler)

                @log_window.wait_and_clear

              elsif battler.alive? && @spriteset.state_id != nil  # If used skill element does not oppose the original filed element 

                if @spriteset.state_id != @spriteset.original_field_state_id  # To check is the used skill element same as original field element

                  battler.remove_state(@spriteset.original_field_state_id)  # Remove the original field state effect from battler

                  @log_window.display_removed_states(battler) 

                  @log_window.wait_and_clear

                end

                battler.add_state(@spriteset.state_id)  # Add new field state affect to battler

                @log_window.display_affected_status(battler, nil)

                @log_window.wait_and_clear

              end

              if battler.alive? && @previous_effect_id != nil # Remove the field state effect from battler

                battler.remove_state(@previous_effect_id)

                @log_window.display_affected_status(battler, nil)

                @log_window.wait_and_clear

              end

            end

            @previous_effect_id = @spriteset.state_id # Assign the last state affect has been used

        end

      end

      #--------------------------------------------------------------------------

      # * End Turn

      #--------------------------------------------------------------------------

      alias devil_knight_Battle_Background_change_Scene_Battle_turn_end   turn_end

      def turn_end

        @spriteset.timer -= 1   if @spriteset.timer > 0 # Number of turn end of the new field element

        if @spriteset.timer == 0  

          update_basic  # Change Field Background

          all_battle_members.each do |battler|

            battler.remove_state(@previous_effect_id) # Remove the field state effect from battler

            @log_window.display_auto_affected_status(battler)

            @log_window.wait_and_clear

            if @spriteset.field_type != "normal" # To Check is original field has element effect  

              battler.add_state(@spriteset.original_field_state_id) # Add original field state effect to battler

              @log_window.display_affected_status(battler, nil)

              @log_window.wait_and_clear

            end

          end

        end

        @spriteset.timer = -1 if @spriteset.timer == 0  

        devil_knight_Battle_Background_change_Scene_Battle_turn_end()

      end

      #--------------------------------------------------------------------------

      # * Use Skill/Item

      #--------------------------------------------------------------------------

      alias devil_knight_Battle_Background_change_Scene_Battle_use_item   use_item

      def use_item

        item = @subject.current_action.item

        @skill_name = item.name # Assign Skill name

        devil_knight_Battle_Background_change_Scene_Battle_use_item()

      end

    end

    #==============================================================================

    # ** Spriteset_Battle

    #------------------------------------------------------------------------------

    #  This class brings together battle screen sprites. It's used within the

    # Scene_Battle class.

    #==============================================================================

     

    class Spriteset_Battle

      include Devil_Knight::Battle_Background_Change

      

      attr_accessor   :field_change_active           # Is Field Change By Skill Or Not?

      attr_accessor   :flame                         # Field Has Flame Element

      attr_accessor   :water                         # Field Has Water Element

      attr_accessor   :ice                           # Field Has Ice Element

      attr_accessor   :dark                          # Field Has Dark Element

      attr_accessor  
    oison                        # Field Has Poison Element

      attr_accessor   :light                         # Field Has Light Element

      attr_accessor   :wind                          # Field Has Wind Element

      attr_accessor   :timer                         # Number Of Turn That Affect Remain

      attr_accessor    
    _wall                        # Original Wall Background

      attr_accessor    
    _floor                       # Original Floor Background

      attr_accessor   :field_type                    # Original Field Element   

      attr_accessor   :state_id                      #  State ID that Will Trigger 

      attr_accessor  
    revious_Affected_Field_type  # Name Of Last Skill Used

      

      #--------------------------------------------------------------------------

      # * Object Initialization

      #--------------------------------------------------------------------------

      alias devil_knight_battle_background_change_spriteset_battle_initialize   initialize 

      def initialize

        devil_knight_battle_background_change_spriteset_battle_initialize()

        @p_floor  = @back1_sprite.bitmap  # Save Previous Floor

        @p_wall   = @back2_sprite.bitmap  # Save Previous Wall

        @field_type = original_field_type # Get Field Element Type

        @timer  = -1  

        @state_id = -1

        @field_change_active = false

      end

      #--------------------------------------------------------------------------

      # * New Method: Assign State ID to Each Type of Field

      #--------------------------------------------------------------------------

      def original_field_state_id

        return Fields[:area][:flame_state_id]    if @field_type == "flame" && Fields[:area][:flame_state_id] != nil

        return Fields[:area][:ice_state_id]     if @field_type == "ice"  && Fields[:area][:ice_state_id] != nil

        return Fields[:area][
    oison_state_id]   if @field_type == "poison"  && Fields[:area][
    oison_state_id] != nil

        return Fields[:area][:light_state_id]   if @field_type == "lighting" && Fields[:area][:light_state_id]

        return Fields[:area][:dark_state_id]  if @field_type == "dark" && Fields[:area][:dark_state_id] != nil

        return Fields[:area][:wind_state_id]  if @field_type == "wind" && Fields[:area][:wind_state_id] != nil

        return Fields[:area][:water_state_id]  if @field_type == "water" && Fields[:area][:water_state_id]  != nil

      end

      #--------------------------------------------------------------------------

      # * New Method: Change Battle Field Background

      #--------------------------------------------------------------------------

      def update_field(skillname)

        position = -1

        affected_field_type = nil

        affected_field_type = find_skill(skillname)                               # Find If The Skill Affect Original Field

        position = find_field(affected_field_type) if affected_field_type != nil  # Get The Position Of affected Field, New Field, And State ID For The New Field

        # If Flame Skill used On Flame Element Field That Has been Changed By Previous Skill

        if @field_change_active && affected_field_type == :field_affect_by_flame && @field_type == "flame" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Ice Skill used On Ice Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_ice && @field_type == "ice" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Dark Skill used On Dark Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_dark && @field_type == "dark" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Poison Skill used On Poison Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_poison && @field_type == "poison" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Light Skill used On Light Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_light && @field_type == "lighting" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Water Skill used On Water Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_water && @field_type == "water" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Wind Skill used On Wind Element Field That Has been Changed By Previous Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_wind && @field_type == "wind" 

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = original_field_state_id

          return true

        # If Ice Element Skill used On Field That Has been Changed By Flame Element Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_ice && @flame

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = nil

          return true

        # If Water Element Skill used On Field That Has been Changed By Flame Element Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_water && @flame

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = nil

          return true

        # If Flame Element Skill used On Field That Has been Changed By Ice Element Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_flame && @ice

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = nil

          return true

        # If Light Element Skill used On Field That Has been Changed By Dark Element Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_light && @dark

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = nil

          return true

        # If Dark Element Skill used On Field That Has been Changed By Light Element Skill

        elsif @field_change_active && affected_field_type == :field_affect_by_dark && @light

          Graphics.fadeout(30)

          return_original_floor

          return_original_wall

          Graphics.fadein(30)

          @timer  = -1

          @field_change_active = false

          @state_id = nil

          return true

        # If Element Skill used On Field That Has been Changed By same Element Skill

        elsif @field_change_active  &&  @previous_affected_field_type == affected_field_type

          @timer  = 4

          return false

        # Change Field Element And Background Depend on The Used Skill

        elsif position > -1 

          Graphics.fadeout(30)

          change_floor(Fields[affected_field_type][:field_change][position])

          change_wall(Fields[affected_field_type][:field_change][position])

          @timer  = 4

          @field_change_active = true

          @state_id = Fields[affected_field_type][:state_id][position]

          lava_field      if affected_field_type == :field_affect_by_flame

          ice_field       if affected_field_type == :field_affect_by_ice

          water_area      if affected_field_type == :field_affect_by_water

          dark_area       if affected_field_type == :field_affect_by_dark

          poison_field    if affected_field_type == :field_affect_by_poison

          lighting_field  if affected_field_type == :field_affect_by_light

          wind_area       if affected_field_type == :field_affect_by_wind

          Graphics.fadein(30)

          @previous_affected_field_type = affected_field_type

          return true

        else

          return false

        end

      end

      #--------------------------------------------------------------------------

      # * New Method: Check Original Field Status

      #--------------------------------------------------------------------------

      def original_field_type

        # Check Original Field In The Flame Field

        Fields[:area][:flame_field].each do |flame_field|

          if  flame_field ==  battleback1_name || flame_field ==  battleback2_name

            lava_field

            return "flame" 

          end

        end

        # Check Original Field In The Ice Field

        Fields[:area][:ice_field].each do |snow_field|

          if  snow_field ==  battleback1_name || snow_field ==  battleback2_name

            ice_field

            return "ice" 

          end

        end

        # Check Original Field In The Water Field

        Fields[:area][:water_area].each do |water|

          if  water ==  battleback1_name  || water ==  battleback2_name

            water_area

            return "water" 

          end

        end

        # Check Original Field In The Dark Field

        Fields[:area][:dark_area].each do |dark_field|

          if  dark_field ==  battleback1_name || dark_field ==  battleback2_name

            dark_area

            return "dark" 

          end

        end

        # Check Original Field In The Poison Field

        Fields[:area][
    oison_field].each do |poison_area|

          if  poison_area ==  battleback1_name  || poison_area ==  battleback2_name

            poison_field

            return "poison" 

          end

        end

        # Check Original Field In The Light Field

        Fields[:area][:lighting_field].each do |lighting_area|

          if  lighting_area ==  battleback1_name  || lighting_area ==  battleback2_name

            lighting_field

            return "lighting" 

          end

        end

        # Check Original Field In The Wind Field

        Fields[:area][:wind_area].each do |wind|

          if  wind ==  battleback1_name  || wind ==  battleback2_name

            wind_area

            return "wind" 

          end

        end

        normal_field

        return "normal"

      end

      #--------------------------------------------------------------------------

      # * New Method: Change Floor Background To New One

      #--------------------------------------------------------------------------

      def change_floor(floor)

        @back1_sprite.bitmap = Cache.battleback1(floor)

        @back1_sprite.z = 0

        center_sprite(@back1_sprite)

      end

      #--------------------------------------------------------------------------

      # * New Method: Change Wall Background To New One

      #--------------------------------------------------------------------------

      def change_wall(wall)

        @back2_sprite.bitmap = Cache.battleback1(wall)

        @back2_sprite.z = 1

        center_sprite(@back2_sprite)

      end

      #--------------------------------------------------------------------------

      # * New Method: Find Used Skill Element

      #--------------------------------------------------------------------------

      def find_skill(skillname)

        # Check Flame Skills Element

        Skill[:skill][:flame].each do |flame_skill|

          if flame_skill == skillname

            return :field_affect_by_flame

          end

        end

        # Check Ice Skills Element

        Skill[:skill][:ice].each do |ice_skill|

          if ice_skill == skillname

            return :field_affect_by_ice

          end

        end

        # Check Poison Skills Element

        Skill[:skill][
    oison].each do |poison_skill|

          if poison_skill == skillname 

            return :field_affect_by_poison

          end

        end

        # Check Water Skills Element

        Skill[:skill][:water].each do |water_skill|

          if water_skill == skillname

            return :field_affect_by_water

          end

        end

        # Check Dark Skills Element

        Skill[:skill][:dark].each do |dark_skill|

          if dark_skill == skillname

            return :field_affect_by_dark

          end

        end

        # Check Light Skills Element

        Skill[:skill][:light].each do |light_skill|

          if light_skill == skillname

            return :field_affect_by_light

          end

        end

        # Check Wind Skills Element

        Skill[:skill][:wind].each do |wind_skill|

          if wind_skill == skillname

            return :field_affect_by_wind

          end

        end

        return nil

      end

      #--------------------------------------------------------------------------

      # * New Method: Find Field That Affect From Skill

      #--------------------------------------------------------------------------

      def find_field(skill_element)

        position = 0

        Fields[skill_element][:affected_field].each do |field|

          if field == battleback1_name || field == battleback2_name

            return position

          else

            position += 1

          end

        end

        return -1

      end

      #--------------------------------------------------------------------------

      # * New Method: Return Original Floor Background

      #--------------------------------------------------------------------------

      def return_original_floor

        @back1_sprite.bitmap = @p_floor

        @back1_sprite.z = 0

        center_sprite(@back1_sprite)

      end

      #--------------------------------------------------------------------------

      # * New Method: Return Original Wall Background

      #--------------------------------------------------------------------------

      def return_original_wall

        @back2_sprite.bitmap = @p_wall

        @back2_sprite.z = 1

        center_sprite(@back2_sprite)

      end

      #--------------------------------------------------------------------------

      # * Update Battle Background (Floor) Sprite

      #--------------------------------------------------------------------------

      alias devil_knight_battle_background_change_spriteset_battle_update_battleback1   update_battleback1

      def update_battleback1

          if @field_change_active == true &&  @timer  ==  0

            Graphics.fadeout(30)

            return_original_floor

          else

            devil_knight_battle_background_change_spriteset_battle_update_battleback1()

          end

      end

      #--------------------------------------------------------------------------

      # * Update Battle Background (Wall) Sprite

      #--------------------------------------------------------------------------

      alias devil_knight_battle_background_change_spriteset_battle_update_battleback2   update_battleback2

      def update_battleback2

        if @field_change_active == true &&  @timer  ==  0

          return_original_wall

          Graphics.fadein(30)

          @field_change_active = false

          original_field_status

        else

          devil_knight_battle_background_change_spriteset_battle_update_battleback2

        end

      end

      #--------------------------------------------------------------------------

      # * New Method: Return Original Field Status

      #--------------------------------------------------------------------------

      def original_field_status

        normal_field    if @field_type == "normal"

        lava_field      if @field_type == "flame"

        ice_field       if @field_type == "ice"

        poison_field    if @field_type == "poison"

        lighting_field  if @field_type == "lighting"

        dark_area       if @field_type == "dark"

        wind_area       if @field_type == "wind"

        water_area      if @field_type == "water"

      end

      #==========================================================================

      # * New Methods: Field Status

      #========================================================================== 

      #--------------------------------------------------------------------------

      # * Normal Field Status

      #-------------------------------------------------------------------------- 

      def normal_field

        @flame    = false

        @water    = false

        @ice      = false

        @dark     = false

        @poison   = false

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Flame Field Status

      #-------------------------------------------------------------------------- 

      def lava_field

        @flame    = true

        @water    = false

        @ice      = false

        @dark     = false

        @poison   = false

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Ice Field Status

      #-------------------------------------------------------------------------- 

      def ice_field

        @flame    = false

        @water    = false

        @ice      = true

        @dark     = false

        @poison   = false

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Poison Field Status

      #-------------------------------------------------------------------------- 

      def poison_field

        @flame    = false

        @water    = false

        @ice      = false

        @dark     = false

        @poison   = true

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Dark Area Status

      #-------------------------------------------------------------------------- 

      def dark_area

        @flame    = false

        @water    = false

        @ice      = false

        @dark     = true

        @poison   = false

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Water Area Status

      #-------------------------------------------------------------------------- 

      def water_area

        @flame    = false

        @water    = true

        @ice      = false

        @dark     = false

        @poison   = false

        @light    = false

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Light Field Status

      #-------------------------------------------------------------------------- 

      def lighting_field

        @flame    = false

        @water    = false

        @ice      = false

        @dark     = false

        @poison   = false

        @light    = true

        @wind     = false

      end

      #--------------------------------------------------------------------------

      # * Wind Area Status

      #-------------------------------------------------------------------------- 

      def wind_area

        @flame    = false

        @water    = false

        @ice      = false

        @dark     = false

        @poison   = false

        @light    = false

        @wind     = true

      end

    end

     



     
    Credit and Thanks
    - all Members of this community For all help they gave me to do this

    Author's Notes
    - Any Question I am More Than happy to answer
    - Please Feedback because it is really Help


    本贴来自国际rpgmaker官方论坛作者:GGSlayer处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/change-battle-background-depend-on-skill.32323/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 18:09 , Processed in 0.153152 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表