Multiple Hazard Tiles and On Map State Damage Eyecandy!

● ARCHIVED · READ-ONLY
Started by jamiras843 4 posts View original ↗
  1. Dragon Quest Tile Damage and State Damage Eyecandy V1.00
    Jamiras843


    Introduction

    Ever want more customization with hazardous tiles without cluttering your maps with events for each damage square? Or tired of the poison slip damage effect being exactly the same as the default damage floor tiles? Well worry not, this script allows you to have multiple hazard terrains using the in-editor "Damage  Floor" marker in the tile sets tab all tied to a variable.  I know all this can be done with eventing, but why worry about lag? 


    Features

    • Allows five custom HP damage floors and one MP dame floor.
    • Allows a sound effect to be played on the damage floor
    • Control of the color of the flash of the damage tiles 
    • Damage tiles can now add states
    • A switch to negate the damage floor for say a skill or item
    • The ability to alter 3 states that use slip damage and customize the on screen effects (all actor effects are still done in the States tab in the database.

    Screenshots... Nah, how about a Video!





    How to Use
    Plug-in-play, don't see much compatibility issues.

    Demo
    http://www.mediafire.com/download/00tp6roy19az68s/Damage+Tiles.exe

    Script
    Spoiler
    #============================================================================# [VXAce] Dragon Quest Tile DMG and State DMG Flash V1.00#----------------------------------------------------------------------------# By Jamiras843## Features: #     V1.00#     * Allows you to have 5 HP and 1 MP damage type floors based on switches#     * Plays SE with damage#     * Damage floors fully custom with damage and screen flashes#     * Damage floors can add states#     * A switch to negate floor damage and effects#     * Ability to change flash color for slip states for 3 different states# #============================================================================$imported = {} if $imported.nil?$imported["Dragon Quest Tile DMG and State DMG Flash"] = true module Jami_DQ_Tile_DMG  #========================================================================  # Script options  #------------------------------------------------------------------------  # Here you can edit the switches and damage amounts for each floor type   # Make all simple edits here! They are easy to understand and labled!   #=========================================================================beginEXPLANATION  F1_DAMAGE = 1                                    amount of HP or MP taken  F1_SFX_ON = true                                 when on plays SE on step     F1_SFX = ""                                   SE file to play (leave "")  F1_ADD_STATE = false                             when true adds a state      F1_STATE = 0                                  the state to be added  F1_RED =255                                      flash hue red 0-255  F1_GREEN = 0                                     flash hue grn 0-255  F1_BLUE = 255                                    flash hue blu 0-255=end    STEPGUARD_SWITCH = 1  FLOOR_VARIABLE = 1                              #Set variable number to match                                                  #floor type. MP damage is 6.  #FLOOR 1 Edits  F1_DAMAGE = 1  F1_SFX_ON = true     F1_SFX = "Poison"  F1_ADD_STATE = false     F1_STATE = 0  F1_RED =255  F1_GREEN = 0  F1_BLUE = 255    #FLOOR2 Edits  F2_DAMAGE = 4  F2_SFX_ON = true     F2_SFX = "Fire1"  F2_ADD_STATE = false     F2_STATE = 0  F2_RED = 255  F2_GREEN = 0  F2_BLUE = 0    #FLOOR3 Edits  F3_DAMAGE = 5  F3_SFX_ON = true     F3_SFX = "Ice4"  F3_ADD_STATE = false     F3_STATE = 0  F3_RED = 0  F3_GREEN = 255  F3_BLUE = 255    #FLOOR4 Edits  F4_DAMAGE = 6  F4_SFX_ON = true     F4_SFX = "Thunder2"  F4_ADD_STATE = false     F4_STATE = 0  F4_RED = 255  F4_GREEN = 255  F4_BLUE = 0    #FLOOR5 Edits  F5_DAMAGE = 7  F5_SFX_ON = true     F5_SFX = "Water2"  F5_ADD_STATE = false     F5_STATE = 0  F5_RED = 0  F5_GREEN = 110  F5_BLUE = 255    #FLOOR6 (MP DAMAGE) Edits  MP_DAMAGE = 2  MP_SFX_ON = true     MP_SFX = "Down1"  MP_ADD_STATE = false     MP_STATE = 0  MP_RED = 0  MP_GREEN = 0  MP_BLUE = 0    #========================================================================  # Script options (MORE!?)  #------------------------------------------------------------------------  # Here you can edit the states slip damage screen effects  # NOTE: All damage is still done through the database under the "STATES"  #       tab, this is only for editing the eyecandy.  #  # Make all simple edits here! They are easy to understand and labled!   #========================================================================  #State 1 Screen effects  STATE1 = 2  STATE1_SFX_ON = true     STATE1_SFX = "Bell1"  STATE1_RED = 255  STATE1_GREEN = 255  STATE1_BLUE = 255   #State 2 Screen effects  STATE2 = 0  STATE2_SFX_ON = false     STATE2_SFX = ""  STATE2_RED = 0  STATE2_GREEN = 0  STATE2_BLUE = 0    #State 3 Screen effects  STATE3 = 0  STATE3_SFX_ON = false     STATE3_SFX = ""  STATE3_RED = 0  STATE3_GREEN = 0  STATE3_BLUE = 0end #module  class Game_Party < Game_Unit  #--------------------------------------------------------------------------  # * Term  #--------------------------------------------------------------------------   def s_any?(state_id)    members.any? {|actor| actor.state?(state_id)}  end end  class Game_Actor < Game_Battler  #--------------------------------------------------------------------------  # * Floor Damage Processing  #--------------------------------------------------------------------------  def execute_floor_damage    return if $game_switches[Jami_DQ_Tile_DMG::STEPGUARD_SWITCH]    damage = (basic_floor_damage * fdr).to_i    if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 6    self.mp -= [damage, max_floor_damage].min    else    self.hp -= [damage, max_floor_damage].min    end    perform_map_damage if damage > 0  end  #--------------------------------------------------------------------------  # * State Damage Processing  #--------------------------------------------------------------------------    def turn_end_on_map    if $game_party.steps % steps_for_turn == 0    on_turn_end    perform_state1_effect if $game_party.s_any?(Jami_DQ_Tile_DMG::STATE1)    perform_state2_effect if $game_party.s_any?(Jami_DQ_Tile_DMG::STATE2)    perform_state3_effect if $game_party.s_any?(Jami_DQ_Tile_DMG::STATE3)    end  end   #--------------------------------------------------------------------------  # * Get Base Value for Floor Damage  #--------------------------------------------------------------------------  def basic_floor_damage    if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 1    return Jami_DQ_Tile_DMG::F1_DAMAGE    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 2    return Jami_DQ_Tile_DMG::F2_DAMAGE    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 3    return Jami_DQ_Tile_DMG::F3_DAMAGE    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 4    return Jami_DQ_Tile_DMG::F4_DAMAGE    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 5    return Jami_DQ_Tile_DMG::F5_DAMAGE    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 6    return Jami_DQ_Tile_DMG::MP_DAMAGE    end      end #basic_floor_damage    #--------------------------------------------------------------------------  # * Execute Damage Effect on Map  #--------------------------------------------------------------------------  def perform_map_damage        if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 1    $game_map.screen.start_flash_F1    if Jami_DQ_Tile_DMG::F1_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::F1_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end       if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 2    $game_map.screen.start_flash_F2    if Jami_DQ_Tile_DMG::F2_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::F2_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 3    $game_map.screen.start_flash_F3    if Jami_DQ_Tile_DMG::F3_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::F3_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end      if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 4    $game_map.screen.start_flash_F4    if Jami_DQ_Tile_DMG::F4_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::F4_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end    if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 5    $game_map.screen.start_flash_F5    if Jami_DQ_Tile_DMG::F5_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::F5_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end    if $game_variables[Jami_DQ_Tile_DMG::FLOOR_VARIABLE] == 6    $game_map.screen.start_flash_MP    if Jami_DQ_Tile_DMG::MP_ADD_STATE == true      $game_party.members.each { |actor|      already_dead = actor.dead?      actor.add_state(Jami_DQ_Tile_DMG::MP_STATE)      actor.perform_collapse_effect if actor.dead? and !already_dead      }      $game_party.clear_results    end #state if    end     end #perform-map_damage_effect    def perform_state1_effect  $game_map.screen.start_flash_state1    end   def perform_state2_effect  $game_map.screen.start_flash_state2    end   def perform_state3_effect  $game_map.screen.start_flash_state3    endend #Game_Actor`` class Game_Screen  #--------------------------------------------------------------------------  # * Start Flash (Damage Floor)  #--------------------------------------------------------------------------  def start_flash_F1    start_flash(Color.new(Jami_DQ_Tile_DMG::F1_RED,Jami_DQ_Tile_DMG::F1_GREEN,Jami_DQ_Tile_DMG::F1_BLUE,128), 8)    if Jami_DQ_Tile_DMG::F1_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::F1_SFX)    end  end  def start_flash_F2    start_flash(Color.new(Jami_DQ_Tile_DMG::F2_RED,Jami_DQ_Tile_DMG::F2_GREEN,Jami_DQ_Tile_DMG::F2_BLUE,128), 8)    if Jami_DQ_Tile_DMG::F2_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::F2_SFX)    end  end  def start_flash_F3    start_flash(Color.new(Jami_DQ_Tile_DMG::F3_RED,Jami_DQ_Tile_DMG::F3_GREEN,Jami_DQ_Tile_DMG::F3_BLUE,128), 8)    if Jami_DQ_Tile_DMG::F3_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::F3_SFX)    end  end  def start_flash_F4    start_flash(Color.new(Jami_DQ_Tile_DMG::F4_RED,Jami_DQ_Tile_DMG::F4_GREEN,Jami_DQ_Tile_DMG::F4_BLUE,128), 8)    if Jami_DQ_Tile_DMG::F4_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::F4_SFX)    end  end  def start_flash_F5    start_flash(Color.new(Jami_DQ_Tile_DMG::F5_RED,Jami_DQ_Tile_DMG::F5_GREEN,Jami_DQ_Tile_DMG::F5_BLUE,128), 8)    if Jami_DQ_Tile_DMG::F5_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::F5_SFX)    end  end  def start_flash_MP    start_flash(Color.new(Jami_DQ_Tile_DMG::MP_RED,Jami_DQ_Tile_DMG::MP_GREEN,Jami_DQ_Tile_DMG::MP_BLUE,128), 8)    if Jami_DQ_Tile_DMG::MP_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::MP_SFX)    end  end  def start_flash_state1    start_flash(Color.new(Jami_DQ_Tile_DMG::STATE1_RED,Jami_DQ_Tile_DMG::STATE1_GREEN,Jami_DQ_Tile_DMG::STATE1_BLUE,128), 8)    if Jami_DQ_Tile_DMG::STATE1_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::STATE1_SFX)    end  end  def start_flash_state2    start_flash(Color.new(Jami_DQ_Tile_DMG::STATE2_RED,Jami_DQ_Tile_DMG::STATE2_GREEN,Jami_DQ_Tile_DMG::STATE2_BLUE,128), 8)    if Jami_DQ_Tile_DMG::STATE2_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::STATE2_SFX)    end  end  def start_flash_state3    start_flash(Color.new(Jami_DQ_Tile_DMG::STATE3_RED,Jami_DQ_Tile_DMG::STATE3_GREEN,Jami_DQ_Tile_DMG::STATE3_BLUE,128), 8)    if Jami_DQ_Tile_DMG::STATE3_SFX_ON == true    Audio.se_play("Audio/SE/" + Jami_DQ_Tile_DMG::STATE3_SFX)    end  endend #Game_Picture
    FAQ

    Q: Why not use something relevant, like regions or terrain tags

    A: I am currently using other scripts that use these things, a variable or multiple switches were the only options left.

    Q: Can you convert it for regions/terrain tags

    A: No. I am not a coder. I don't know what I'm doing really. This script is super messy, but it works as is. 

    Credit and Thanks
    - Jamiras843
    - Xypher (for this bit of info http://forums.rpgmakerweb.com/index.php?/topic/16071-yanfly-battle-engine-removes-poison-flash/)

    Terms of Use

    Use as you see fit commercial or not, credit would be nice though. 
     
  2. Looks pretty good. Terms of use?
  3. Free use, credit would be nice but not needed.
  4. Is there a way to add states to affected characters?