RPG Maker Forums

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
#============================================================================# [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. 
 

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,035
Messages
1,018,450
Members
137,820
Latest member
georg09byron
Top