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

[转载发布] Multiple Hazard Tiles and On Map State Damage Eyecandy!

[复制链接]
累计送礼:
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-8-1 13:26:57 | 显示全部楼层 |阅读模式
    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. 
     


    本贴来自国际rpgmaker官方论坛作者:jamiras843处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/multiple-hazard-tiles-and-on-map-state-damage-eyecandy.33750/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-17 23:20 , Processed in 0.142359 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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