Ventwig 26 Posted July 16, 2014 (edited) VTS-Wound Damage - Version 1.01By Ventwig(VTS- Because everyone needs an obnoxious acronym to go along with them!)IntroductionAttacks can deal "Wound Damage" - damage to a target's max hp - on top of regular HP damage.This prevents the player from fully healing their characters unless certain skills or items are used to recover wounds.Features-Wound Damage that damages max HP-Customizable "wound rates" as well as the option to have a skill only affect wounds-Option to fully recover wounds after battle -Displays wound damage text when only affecting wounds -Compatible with Neo Gauge Ultimate Ace with a patch-Compatible with my Enemy HP Bars script with a patch -Compatible with Syvkal's Menu Bars script with a patch Screenshots PLEASE NOTE:Wounds are only calculate based on HP damage and HP recovery.To deal wounds, the skill has to be set to HP DamageTo heal wounds, the skill has to be set to HP Recovery The opposite is true using a negative wound rate In the damage formula, mhp (both a.mhp and b.mhp) will refer to the target's current max hp. To affect the target's original max hpuse omhp, instead. The same is true for percent-based healing.To refer to an actor's current wound damage, use whp. Scripthttp://pastebin.com/LxfkkgsX CompatibilityThere will be compatibility errors with any script that tries to draw an actor's HP a different way. If you run into any errors, please tell me. View Patches: Neo Gauge Ultimate Ace and Wound Damage *Patch* http://rmrk.net/index.php?topic=45005.0-Place below NGUA. -Place Wound Damage below both scripts # Neo Gauge Ultimate Ace and Wound Damage *Patch* # Requires both scripts # NGUA by Wortana and Pacman # Wound Damage by Ventwig class Window_Base < Window #Set colors for wound hp bar WHP_GCOLOR_1 = Color.new(139,50,0) WHP_GCOLOR_2 = Color.new(200,100,50) WHP_GCOLOR_3 = Color.new(255,255,37) def draw_actor_hp(actor, x, y, width = 124) gwidth = width * actor.hp_rate# / actor.omhp gwidth2 = width * actor.mhp_rate# / actor.omhp cg = neo_gauge_back_color c1, c2, c3 = cg[0], cg[1], cg[2] draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3) (1..3).each {|i| eval("c#{i} = WHP_GCOLOR_#{i}")} draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, gwidth2, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false, width, 30) (1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")} draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false, width, 30) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end end Enemy HP Bars and Wound Damage *Patch* Script in my signature-Place Enemy HP Bars under Wound Damage -Place this patch under both scripts # Enemy HP Bars and Wound Damage *Patch* # Requires both scripts # Both Scripts by Ventwig class Window_Enemy_Hud < Window_Base if EHUD::NEO_ULTIMATE_ACE == false def draw_actor_hp(actor, x, y, width = 124) draw_hp_gauge(x, y, width, actor.hp_rate, actor.mhp_rate, hp_gauge_color1, hp_gauge_color2) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) if EHUD::DRAW_HP_VOCAB == true change_color(hp_color(actor)) draw_text(x+width/4*3, y, 100, line_height, actor.hp) if EHUD::DRAW_HP_NUMBERS == true change_color(system_color) end def draw_hp_gauge(x, y, width, rate, rate2, color1, color2) fill_w2 = (width * rate2).to_i fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w2, 6, text_color(VTS_WOUNDS::WOUND_COLOR1), text_color(VTS_WOUNDS::WOUND_COLOR2)) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) end else def draw_actor_hp(actor, x, y, width = 124) gwidth = width * actor.hp_rate# / actor.omhp gwidth2 = width * actor.mhp_rate# / actor.omhp cg = neo_gauge_back_color c1, c2, c3 = cg[0], cg[1], cg[2] draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3) (1..3).each {|i| eval("c#{i} = WHP_GCOLOR_#{i}")} draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, gwidth2, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false, width, 30) (1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")} draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 + HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false, width, 30) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) if EHUD::DRAW_HP_VOCAB == true change_color(hp_color(actor)) draw_text(x+width/4*3, y, 100, line_height, actor.hp) if EHUD::DRAW_HP_NUMBERS == true change_color(system_color) end end end Syvkal's Menu Bars VXAce and Wound Damage *Patch* http://www.rpgmakervxace.net/topic/1799-syvkals-menu-bars-vxace/-Place patch below both scripts -Order of original scripts does not matter # Syvkal's Menu Bars VXAce and VTS-Wound Damage *Patch* # Requires both scripts # Menu Bars by Syvkal # Wound Damage by Ventwig class Window_Base < Window def draw_actor_hp(actor, x, y, width = 124) @rate = [actor.hp_rate, 1.0].min @rate2 = [actor.mhp_rate, 1.0].min draw_syvkal_hp_gauge(x, y, width, @rate, @rate2, hp_gauge_color1, hp_gauge_color2, HPSTYLE) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_syvkal_hp_gauge(x, y, width, rate, rate2, color1, color2, style = '') fill_w = (width * rate).to_i fill_w2 = (width * rate2).to_i gauge_y = y + line_height - 8 h = 6 style.slice!(/\s*/); style = style.split(/\s*/) if style.empty? or (style[0] == '|' && style[1] == '|') contents.fill_rect(x-2, gauge_y-2, width+4, 10, COLOR1) contents.fill_rect(x-1, gauge_y-1, width+2, 8, COLOR2) contents.gradient_fill_rect(x, gauge_y, width, 6, COLOR3, COLOR4) contents.gradient_fill_rect(x, gauge_y, fill_w2, 6, text_color(VTS_WOUNDS::WOUND_COLOR1), text_color(VTS_WOUNDS::WOUND_COLOR2)) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) else adj1 = style_adj_string(style[0]); adj2 = style_adj_string(style[1], true) h += 4 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) a3 = adj1[2]; a4 = adj2[4].nil? ? adj2[2] : adj2[4] contents.fill_rect(x-a3 +a1, gauge_y-2 + i, width+(a3+a4) - a1 - a2, 1, COLOR1) end h -= 2 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) a3 = adj1[1]; a4 = adj2[3].nil? ? adj2[1] : adj2[3] contents.fill_rect(x-a3 +a1, gauge_y-1 + i, width+(a3+a4) - a1 - a2, 1, COLOR2) end h -= 2 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) contents.gradient_fill_rect(x +a1, gauge_y +i, width - a1 - a2, 1, COLOR3, COLOR4) end for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) contents.gradient_fill_rect(x +a1, gauge_y +i, fill_w2 - a1 - a2, 1, text_color(VTS_WOUNDS::WOUND_COLOR1), text_color(VTS_WOUNDS::WOUND_COLOR2)) contents.gradient_fill_rect(x +a1, gauge_y +i, fill_w - a1 - a2, 1, color1, color2) end end end end Yanfly Engine Ace and Wound Damage *Patch* -Place patch below both scripts -Order of original scripts does not matter # Yanfly Engine Ace and Wound Damage *Patch* # Requires both scripts # YEA by Yanfly # Wound Damage by Ventwig class Window_BattleStatus < Window_Selectable def draw_actor_hp(actor, dx, dy, width = 124) draw_hp_gauge(dx, dy, width, actor.hp_rate, actor.mhp_rate, hp_gauge_color1, hp_gauge_color2) change_color(system_color) cy = (Font.default_size - contents.font.size) / 2 + 1 draw_text(dx+2, dy+cy, 30, line_height, Vocab::hp_a) draw_current_and_max_values(dx, dy+cy, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end end Let me know if there's anything else you want compatibility with! Update History: It got deleted so I forgot... Version 1.0 (????) - Initial Release Version 1.01 (Jul 17 2014) - Increased functionality Update Plans: -Wound "Poison" -More compatibility! Edited July 25, 2014 by Ventwig 3 Share this post Link to post Share on other sites
bloodyliao 5 Posted July 18, 2014 Nice script, making the whole battle more complex and interesting!However, it is a pitty that the script seems not compatible with the 3 scripts i'm currently using.First, the MOG - Enemy HP Meter #==============================================================================# +++ MOG - Enemy HP Meter (v1.2) +++#==============================================================================# By Moghunter# http://www.atelier-rgss.com/#==============================================================================# Apresenta um medidor animado com o HP do inimigo.#==============================================================================# Para ocultar o HP do inimigo use a TAG abaixo na caixa de notas.## ##==============================================================================# Serão necessários as imagens.## Battle_Enemy_HP_Layout.png# Battle_Enemy_HP_Meter.png##==============================================================================#==============================================================================# ◠Histórico (Version History)#==============================================================================# v 1.2 - Melhoria na performance.#==============================================================================module MOG_ENEMY_HP#Posição geral do medidor em relação ao battler.POSITION_CORRECTION = [0,0]#Posição do medidor de HP.HP_METER_POSITION = [2,4]#Prioridade do medidor na tela.PRIORITY_Z = 101end#==============================================================================# ■Game Enemy#==============================================================================class Game_Enemy < Game_Battlerattr_accessor :hp_meter_active#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_enemy_hp_initialize initializedef initialize(index, enemy_id)mog_enemy_hp_initialize(index, enemy_id)hide = enemy.note =~ //i ? true : false@hp_meter_active = [false,hide]endend#==============================================================================# ■Game_Battler#==============================================================================class Game_Battler < Game_BattlerBase#--------------------------------------------------------------------------# ◠Item Apply#--------------------------------------------------------------------------alias mog_enemy_hp_item_apply item_applydef item_apply(user, item)mog_enemy_hp_item_apply(user, item)if self.is_a?(Game_Enemy)self.hp_meter_active[0] = true if @result.hp_damage != 0endend#--------------------------------------------------------------------------# ◠Regenerate HP#--------------------------------------------------------------------------alias mog_enemy_hp_regenerate_hp regenerate_hpdef regenerate_hpmog_enemy_hp_regenerate_hpif self.is_a?(Game_Enemy)self.hp_meter_active[0] = true if @result.hp_damage != 0endendend#==============================================================================# ■Game Temp#==============================================================================class Game_Tempattr_accessor :cache_enemy_hp#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_enemy_hp_initialize initializedef initializemog_enemy_hp_initializecache_ehpend#--------------------------------------------------------------------------# ◠Cache EHP#--------------------------------------------------------------------------def cache_ehp@cache_enemy_hp = []@cache_enemy_hp.push(Cache.system("Battle_Enemy_HP_Layout"))@cache_enemy_hp.push(Cache.system("Battle_Enemy_HP_Meter"))endend#==============================================================================# ■Battle_Hud#==============================================================================class Enemy_HPinclude MOG_ENEMY_HP#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------def initialize(viewport = nil,enemy)dispose@enemy = enemy@fade_time = -1create_layoutcreate_hp_meterb_pos = [enemy.screen_x - (@layout.width / 2) + POSITION_CORRECTION[0], enemy.screen_y + POSITION_CORRECTION[1] - (@layout.height / 2)]@layout.opacity = 0@org_pos1 = [b_pos[0],b_pos[1]]@layout.x = @org_pos1[0]@layout.y = @org_pos1[1]@layout.visible = false@layout.viewport = viewport@hp_meter.opacity = 0@hp_meter.visible = false@org_pos2 = [b_pos[0] + HP_METER_POSITION[0], b_pos[1] + HP_METER_POSITION[1]]@hp_meter.x = @org_pos2[0]@hp_meter.y = @org_pos2[1]@hp_meter.z = PRIORITY_Z@hp_meter.viewport = viewport@layout.z = PRIORITY_Z@enemy.hp_meter_active[0] = false@hide = @enemy.hp_meter_active[1]end#--------------------------------------------------------------------------# ◠Create HP Meter#--------------------------------------------------------------------------def create_layout@layout = Sprite.new@layout.bitmap = $game_temp.cache_enemy_hp[0]end#--------------------------------------------------------------------------# ◠Create HP Meter#--------------------------------------------------------------------------def create_hp_meter@meter_image = $game_temp.cache_enemy_hp[1]@meter_cw = @meter_image.width@meter_ch = @meter_image.height / 2@hp_meter = Sprite.new@hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)@hp_width_old = @meter_cw * @enemy.hp / @enemy.mhpend#--------------------------------------------------------------------------# ◠Hp Flow Update#--------------------------------------------------------------------------def update_hp_flowreturn if !@layout.visiblehp_width = @meter_cw * @enemy.hp / @enemy.mhp@hp_meter.bitmap.clearexecute_damage_flow(hp_width)hp_src_rect = Rect.new(0, 0,hp_width, @meter_ch)@hp_meter.bitmap.blt(0,0, @meter_image, hp_src_rect)end#--------------------------------------------------------------------------# ◠Execute Damage Flow#--------------------------------------------------------------------------def execute_damage_flow(hp_width)n = (@hp_width_old - hp_width).abs * 3 / 100damage_flow = [[n, 2].min,0.5].max@hp_width_old -= damage_flow@hp_width_old = hp_width if @hp_width_old <= hp_widthsrc_rect_old = Rect.new(0,@meter_ch,@hp_width_old, @meter_ch)@hp_meter.bitmap.blt(0,0, @meter_image, src_rect_old)end#--------------------------------------------------------------------------# ◠Dispose#--------------------------------------------------------------------------def disposereturn if @layout == nil@layout.dispose@hp_meter.bitmap.dispose@hp_meter.dispose@layout = nilend#--------------------------------------------------------------------------# ◠Update#--------------------------------------------------------------------------def updatereturn if @meter_image == nilreturn if @hideupdate_fadeupdate_visibleupdate_hp_flowrefresh if @enemy.hp_meter_active[0]end#--------------------------------------------------------------------------# ◠Update Fade#--------------------------------------------------------------------------def update_fade@fade_time -= 1 if @fade_time > 0return if @fade_time != 0@layout.opacity -= 10@hp_meter.opacity -= 10@layout.x += 1@hp_meter.x += 1@fade_time = -1 if @layout.opacity == 0end#--------------------------------------------------------------------------# ◠Update Visible#--------------------------------------------------------------------------def update_visiblereturn if !@layout.visiblevis = can_visible?@layout.visible = vis@hp_meter.visible = visend#--------------------------------------------------------------------------# ◠Refresh#--------------------------------------------------------------------------def refresh@enemy.hp_meter_active[0] = false@layout.opacity = 255@hp_meter.opacity = 255@layout.visible = true@hp_meter.visible = true@fade_time = 60@layout.x = @org_pos1[0]@layout.y = @org_pos1[1]@hp_meter.x = @org_pos2[0]@hp_meter.y = @org_pos2[1]hp_width = @meter_cw * @enemy.hp / @enemy.mhp@hp_width_old = hp_width if @hp_width_old < hp_widthupdate_hp_flowend#--------------------------------------------------------------------------# ◠Can Visible?#--------------------------------------------------------------------------def can_visible?return false if @layout.opacity == 0return trueendend#==============================================================================# ■Spriteset Battle#==============================================================================class Spriteset_Battle#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_enemy_hp_initialize initializedef initializemog_enemy_hp_initializecreate_enemy_hpend#--------------------------------------------------------------------------# ◠Create Battle Hud#--------------------------------------------------------------------------def create_enemy_hpdispose_enemy_hp@enemy_hp = []for i in $game_troop.members@enemy_hp.push(Enemy_HP.new(@viewport1,i))endend#--------------------------------------------------------------------------# ◠Dispose#--------------------------------------------------------------------------alias mog_enemy_hp_dispose disposedef disposedispose_enemy_hpmog_enemy_hp_disposeend#--------------------------------------------------------------------------# ◠Dispose Enemy HP#--------------------------------------------------------------------------def dispose_enemy_hpreturn if @enemy_hp == nil@enemy_hp.each {|sprite| sprite.dispose }@enemy_hp.clear@enemy_hp = nilend#--------------------------------------------------------------------------# ◠Update#--------------------------------------------------------------------------alias mog_enemy_hp_update updatedef updatemog_enemy_hp_updateupdate_enemy_hpend#--------------------------------------------------------------------------# ◠Update Enemy HP#--------------------------------------------------------------------------def update_enemy_hpreturn if @enemy_hp == nil@enemy_hp.each {|sprite| sprite.update }endend $mog_rgss3_enemy_hp_meter = true Then, MOG - Boss HP Meter #==============================================================================# +++ MOG - Boss HP Meter (V1.2) +++#==============================================================================# By Moghunter# http://www.atelier-rgss.com#==============================================================================# Apresenta um medidor animado com o HP do inimigo.##==============================================================================# UTILIZAÇÃO#==============================================================================# Coloque o seguinte comentário na caixa de notas do inimigo.## ## Caso desejar ocultar o valor numérico do HP use o código abaixo.## ##==============================================================================# Caso precisar mudar a posição do medidor no meio do jogo use o código abaixo## boss_hp_position(X,Y)##==============================================================================# Serão necessários as imagens.## Battle_Boss_Meter.png# Battle_Boss_Meter_Layout.png#==============================================================================# FACES (Opcional)#==============================================================================# Nomeie o arquivo da face da seguinte maneira. (Graphics/Faces/)## Enemy_Name + _F.png (Slime_F.png)##==============================================================================# Definindo o LEVEL (Opcional)#==============================================================================# Coloque o seguinte comentário na caixa de notas do inimigo.## ##==============================================================================#==============================================================================# ◠Histórico (Version History)#==============================================================================# v 1.2 - Melhoria na performance.# - Não é mais necessário o script Enemy HP.#==============================================================================module MOG_BOSS_HP_METER#Posição geral do layout.LAYOUT_POSITION = [100,35]#Posição do medidor.METER_POSITION = [3,3]#Posição do nome do inimigo.NAME_POSITION = [16,8]#Posição da face.FACE_POSITION = [0,-30]#Posição do level do inimigo.LEVEL_POSITION = [150, -24]#[290, 0]#Posição do numero de HPHP_NUMBER_POSITION = [230, 5]#Definição do espaço da palavra HP e o valor de numérico.HP_STRING_SPACE = 36#HP_NUMBER_WAVE_EFFECT = true#Definição da palavra Level.LEVEL_WORD = "Level "#Velocidade de animação do medidorMETER_ANIMATION_SPEED = 10#Definição do nome da fonte.FONT_NAME = "Georgia"#Definição do tamanho da fonte.FONT_SIZE = 16#Ativar contorno na fonte.FONT_BOLD = true#Fonte em itálico.FONT_ITALIC = true#Definição da cor da fonte.FONT_COLOR = Color.new(255,255,255)#Definição da prioridade da HUD.PRIORITY_Z = 101end#==============================================================================# ■Game System#==============================================================================class Game_Systemattr_accessor :boss_hp_meter#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_boss_hp_meter_initialize initializedef initializeix = MOG_BOSS_HP_METER::LAYOUT_POSITION[0]iy = MOG_BOSS_HP_METER::LAYOUT_POSITION[1]@boss_hp_meter = [ix,iy,false,"",0,1,0,nil,0,false]mog_boss_hp_meter_initializeendend#==============================================================================# ■Game Enemy#==============================================================================class Game_Enemy < Game_Battlerattr_accessor :boss_hp_meterattr_accessor :boss_hp_numberattr_accessor :level#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_boss_hp_meter_initialize initializedef initialize(index, enemy_id)mog_boss_hp_meter_initialize(index, enemy_id)@boss_hp_meter = enemy.note =~ // ? true : false@boss_hp_number = enemy.note =~ // ? false : true@level = enemy.note =~ //i ? $1 : nilendend#==============================================================================# ■Game Temp#==============================================================================class Game_Tempattr_accessor :battle_end#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_boss_hp_meter_initialize initializedef initialize@battle_end = falsemog_boss_hp_meter_initializeendend#==============================================================================# ■Game Interpreter#==============================================================================class Game_Interpreter#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------def boss_hp_position(x = 0,y = 0)$game_system.boss_hp_meter[0] = x$game_system.boss_hp_meter[1] = yendend#==============================================================================# ■Game Temp#==============================================================================class Game_Tempattr_accessor :cache_boss_hp#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_boss_hp_initialize initializedef initializemog_boss_hp_initializecache_bosshpend#--------------------------------------------------------------------------# ◠Cache Bosshp#--------------------------------------------------------------------------def cache_bosshp@cache_boss_hp = []@cache_boss_hp.push(Cache.system("Battle_Boss_Meter_Layout"))@cache_boss_hp.push(Cache.system("Battle_Boss_Meter"))@cache_boss_hp.push(Cache.system("Battle_Boss_Number"))endend#==============================================================================# ■Boss HP Meter#==============================================================================class Boss_HP_Meterinclude MOG_BOSS_HP_METER#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------def initialize(viewport = nil)clear_enemy_setup@hp_vieport = viewportcheck_boss_avaliableend#--------------------------------------------------------------------------# ◠Clear Enemy Setup#--------------------------------------------------------------------------def clear_enemy_setup@name = ""@hp = 0@hp2 = 0@hp3 = 0@maxhp = 0@hp_old = 0@level = nil$game_system.boss_hp_meter[2] = false$game_system.boss_hp_meter[3] = ""$game_system.boss_hp_meter[4] = 0$game_system.boss_hp_meter[5] = 1$game_system.boss_hp_meter[7] = nil$game_system.boss_hp_meter[8] = 0$game_system.boss_hp_meter[9] = trueend#--------------------------------------------------------------------------# ◠Check Boss Avaliable#--------------------------------------------------------------------------def check_boss_avaliablereturn if $game_troop.all_dead?for i in $game_troop.membersif i.boss_hp_meter and !i.hidden? and i.hp > 0create_boss_hp_meter(i)breakendendend#--------------------------------------------------------------------------# ◠Create Boss HP Meter#--------------------------------------------------------------------------def create_boss_hp_meter(i)$game_system.boss_hp_meter[2] = true$game_system.boss_hp_meter[3] = i.name$game_system.boss_hp_meter[4] = i.hp$game_system.boss_hp_meter[5] = i.mhp$game_system.boss_hp_meter[6] = i.hp$game_system.boss_hp_meter[7] = i.level rescue nil$game_system.boss_hp_meter[8] = 0$game_system.boss_hp_meter[9] = i.boss_hp_numberrefresh_hp_metercreate_layoutcreate_metercreate_namecreate_facecreate_levelcreate_hp_numberend#--------------------------------------------------------------------------# ◠Create Layout#--------------------------------------------------------------------------def create_layoutreturn if @layout != nil@layout = Sprite.new@layout.bitmap = $game_temp.cache_boss_hp[0]@layout.x = $game_system.boss_hp_meter[0]@layout.y = $game_system.boss_hp_meter[1]@layout.viewport = @hp_vieport@layout.z = PRIORITY_Zend#--------------------------------------------------------------------------# ◠Create Meter#--------------------------------------------------------------------------def create_meterreturn if @meter_image != nilhp_setup@meter_image = $game_temp.cache_boss_hp[1]@meter_cw = @meter_image.width / 3@meter_ch = @meter_image.height / 2@meter = Sprite.new@meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)@meter.z = @layout.z + 1@meter.x = @layout.x + METER_POSITION[0]@meter.y = @layout.y + METER_POSITION[1]@meter.viewport = @hp_vieport@hp_flow = 0@hp_flow_max = @meter_cw * 2update_hp_meterend#--------------------------------------------------------------------------# ◠Create Name#--------------------------------------------------------------------------def create_name@name_sprite = Sprite.new@name_sprite.bitmap = Bitmap.new(200,32)@name_sprite.z = @layout.z + 2@name_sprite.x = @layout.x + NAME_POSITION[0]@name_sprite.y = @layout.y + NAME_POSITION[1]@name_sprite.bitmap.font.name = FONT_NAME@name_sprite.bitmap.font.size = FONT_SIZE@name_sprite.bitmap.font.bold = FONT_BOLD@name_sprite.bitmap.font.italic = FONT_ITALIC@name_sprite.bitmap.font.color = FONT_COLOR@name_sprite.viewport = @hp_vieportrefresh_nameend#--------------------------------------------------------------------------# ◠Create Face#--------------------------------------------------------------------------def create_face@face_sprite = Sprite.new@face_sprite.x = @layout.x + FACE_POSITION[0]@face_sprite.y = @layout.y + FACE_POSITION[1]@face_sprite.z = @layout.z + 2@face_sprite.viewport = @hp_vieportrefresh_faceend#--------------------------------------------------------------------------# ◠Create Level#--------------------------------------------------------------------------def create_level@level_sprite = Sprite.new@level_sprite.bitmap = Bitmap.new(120,32)@level_sprite.z = @layout.z + 2@level_sprite.x = @layout.x + LEVEL_POSITION[0]@level_sprite.y = @layout.y + LEVEL_POSITION[1]@level_sprite.bitmap.font.name = FONT_NAME@level_sprite.bitmap.font.size = FONT_SIZE@level_sprite.bitmap.font.bold = FONT_BOLD@level_sprite.bitmap.font.italic = FONT_ITALIC@level_sprite.bitmap.font.color = FONT_COLOR@level_sprite.viewport = @hp_vieportrefresh_levelend#--------------------------------------------------------------------------# ◠Create HP Number#--------------------------------------------------------------------------def create_hp_number@hp2 = $game_system.boss_hp_meter[4]@hp3 = @hp2@hp_old2 = @hp2@hp_ref = @hp_old2@hp_refresh = false@hp_number_image = $game_temp.cache_boss_hp[2]@hp_cw = @hp_number_image.width / 10@hp_ch = @hp_number_image.height / 2@hp_ch2 = 0@hp_ch_range = HP_NUMBER_WAVE_EFFECT == true ? @hp_ch / 3 : 0@hp_number_sprite = Sprite.new@hp_number_sprite.bitmap = Bitmap.new(@hp_number_image.width, @hp_ch * 2)@hp_number_sprite.z = @layout.z + 2@hp_number_sprite.x = @layout.x + HP_NUMBER_POSITION[0]@hp_number_sprite.y = @layout.y + HP_NUMBER_POSITION[1]@hp_number_sprite.viewport = @hp_vieport@hp_number_sprite.visible = $game_system.boss_hp_meter[9]refresh_hp_numberend#--------------------------------------------------------------------------# ◠update_hp_number#--------------------------------------------------------------------------def update_hp_numberreturn if @hp_number_sprite == nil@hp_number_sprite.visible = $game_system.boss_hp_meter[9]if @hp_old2 < $game_system.boss_hp_meter[4]number_refresh_speed@hp2 += @hp_refreset_hp_number if @hp2 >= $game_system.boss_hp_meter[4]elsif @hp_old2 > $game_system.boss_hp_meter[4]number_refresh_speed@hp2 -= @hp_refreset_hp_number if @hp2 <= $game_system.boss_hp_meter[4]endend#--------------------------------------------------------------------------# ◠Number Refresh Speed#--------------------------------------------------------------------------def number_refresh_speed@hp_refresh = true@hp_ref = (3 * (@hp_old2 - $game_system.boss_hp_meter[4]).abs / 100) rescue nil@hp_ref = 1 if @hp_ref == nil or @hp_ref < 1end#--------------------------------------------------------------------------# ◠Refresh HP Number#--------------------------------------------------------------------------def refresh_hp_numberreturn if @hp_number_sprite == nil@hp_refresh = false@hp_number_sprite.bitmap.clearnumber = @hp2.abs.to_s.split(//)@hp_ch2 = 0for r in 0..number.size - 1number_abs = number[r].to_insrc_rect = Rect.new(@hp_cw * number_abs, 0, @hp_cw, @hp_ch)@hp_ch2 = @hp_ch2 == @hp_ch_range ? 0 : @hp_ch_range@hp_number_sprite.bitmap.blt(HP_STRING_SPACE + (@hp_cw * r), @hp_ch2, @hp_number_image, nsrc_rect)endnsrc_rect = Rect.new(0, @hp_ch, @hp_number_image.width, @hp_ch)@hp_number_sprite.bitmap.blt(0, 0, @hp_number_image, nsrc_rect)end#--------------------------------------------------------------------------# ◠Reset HP Number#--------------------------------------------------------------------------def reset_hp_number@hp_refresh = true@hp_old2 = $game_system.boss_hp_meter[4]@hp2 = $game_system.boss_hp_meter[4]@hp_ref = 0refresh_hp_numberend#--------------------------------------------------------------------------# ◠Refresh Level#--------------------------------------------------------------------------def refresh_levelreturn if @level_sprite == nil@level_sprite.bitmap.clear@level = $game_system.boss_hp_meter[7]return if @level == nillevel_text = LEVEL_WORD + @level.to_s@level_sprite.bitmap.draw_text(0,0,120,32,level_text.to_s)end#--------------------------------------------------------------------------# ◠Refresh Face#--------------------------------------------------------------------------def refresh_facereturn if @face_sprite == nildispose_bitmap_face@face_sprite.bitmap = Cache.face(@name + "_f") rescue nil@face_sprite.bitmap = Cache.face("") if @face_sprite.bitmap == nilend#--------------------------------------------------------------------------# ◠Refresh Name#--------------------------------------------------------------------------def refresh_namereturn if @name_sprite == nil@name = $game_system.boss_hp_meter[3]@name_sprite.bitmap.clear@name_sprite.bitmap.draw_text(0,0,190,32,@name.to_s)refresh_facerefresh_levelreset_hp_number@hp_old = @meter_cw * @hp / @maxhpend#--------------------------------------------------------------------------# ◠HP Setup#--------------------------------------------------------------------------def hp_setup@hp = $game_system.boss_hp_meter[4]@maxhp = $game_system.boss_hp_meter[5]end#--------------------------------------------------------------------------# ◠Dispose#--------------------------------------------------------------------------def disposedispose_layoutdispose_meterdispose_namedispose_facedispose_leveldispose_hp_number@hp_vieport.disposeend#--------------------------------------------------------------------------# ◠Dispose Name#--------------------------------------------------------------------------def dispose_namereturn if @name_sprite == nil@name_sprite.bitmap.dispose@name_sprite.dispose@name_sprite = nilend#--------------------------------------------------------------------------# ◠Dispose Layout#--------------------------------------------------------------------------def dispose_layoutreturn if @layout == nil@layout.dispose@layout = nilend#--------------------------------------------------------------------------# ◠Dispose Meter#--------------------------------------------------------------------------def dispose_meterreturn if @meter == nil@meter.bitmap.dispose@meter.dispose@meter = nilend#--------------------------------------------------------------------------# ◠Dispose Face#--------------------------------------------------------------------------def dispose_facereturn if @face_sprite == nildispose_bitmap_face@face_sprite.dispose@face_sprite = nilend#--------------------------------------------------------------------------# ◠Dispose Bitmap Face#--------------------------------------------------------------------------def dispose_bitmap_facereturn if @face_sprite == nilreturn if @face_sprite.bitmap == nil@face_sprite.bitmap.dispose rescue nil@face_sprite.bitmap = nilend#--------------------------------------------------------------------------# ◠Dispose Level#--------------------------------------------------------------------------def dispose_levelreturn if @level_sprite == nil@level_sprite.bitmap.dispose@level_sprite.dispose@level_sprite = nilend#--------------------------------------------------------------------------# ◠Dispose HP Number#--------------------------------------------------------------------------def dispose_hp_numberreturn if @hp_number_sprite == nil@hp_number_sprite.bitmap.dispose@hp_number_sprite.disposeend#--------------------------------------------------------------------------# ◠Update#--------------------------------------------------------------------------def updaterefresh_hp_meterrefresh_hp_number if @hp_refreshupdate_hp_meterupdate_hp_numberupdate_fade_endend#--------------------------------------------------------------------------# ◠Update Fade End#--------------------------------------------------------------------------def update_fade_endreturn if !$game_temp.battle_endreturn if @meter_image == nil@layout.opacity -= 5@meter.opacity -= 5@name_sprite.opacity -= 5@face_sprite.opacity -= 5@level_sprite.opacity -= 5@hp_number_sprite.opacity -= 5end#--------------------------------------------------------------------------# ◠Refresh HP Meter#--------------------------------------------------------------------------def refresh_hp_meterreturn if !$game_system.boss_hp_meter[2]$game_system.boss_hp_meter[2] = falsehp_setuprefresh_name if @name != $game_system.boss_hp_meter[3]end#--------------------------------------------------------------------------# ◠Update HP Meter#--------------------------------------------------------------------------def update_hp_meterreturn if @meter_image == nil@meter.bitmap.clearhp_width = @meter_cw * @hp / @maxhpexecute_damage_flow(hp_width)hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch)@meter.bitmap.blt(0,0, @meter_image, hp_src_rect)@hp_flow += METER_ANIMATION_SPEED@hp_flow = 0 if @hp_flow >= @hp_flow_maxend#--------------------------------------------------------------------------# ◠Execute Damage Flow#--------------------------------------------------------------------------def execute_damage_flow(hp_width)return if @hp_old == hp_widthn = (@hp_old - hp_width).abs * 3 / 100damage_flow = [[n, 2].min,0.5].max@hp_old -= damage_flow@hp_old = hp_width if @hp_old <= hp_widthsrc_rect_old = Rect.new(0,@meter_ch, @hp_old, @meter_ch)@meter.bitmap.blt(0,0, @meter_image, src_rect_old)endend#==============================================================================# ■Spriteset Battle#==============================================================================class Spriteset_Battle#--------------------------------------------------------------------------# ◠Initialize#--------------------------------------------------------------------------alias mog_enemy_bhp_initialize initializedef initializemog_enemy_bhp_initializecreate_boss_hp_meterend#--------------------------------------------------------------------------# ◠Create Boss HP Meter#--------------------------------------------------------------------------def create_boss_hp_meter@boss_hp_meter = Boss_HP_Meter.new(@viewport1)end#--------------------------------------------------------------------------# ◠Dispose#--------------------------------------------------------------------------alias mog_enemy_bhp_dispose disposedef disposedispose_boss_hp_metermog_enemy_bhp_disposeend#--------------------------------------------------------------------------# ◠Dispose Boss HP Meter#--------------------------------------------------------------------------def dispose_boss_hp_meterreturn if @boss_hp_meter == nil@boss_hp_meter.dispose@boss_hp_meter = nilend#--------------------------------------------------------------------------# ◠Update#--------------------------------------------------------------------------alias mog_enemy_bhp_update updatedef updatemog_enemy_bhp_updateupdate_boss_hp_meterend#--------------------------------------------------------------------------# ◠Update Boss HP Meter#--------------------------------------------------------------------------def update_boss_hp_meterreturn if @boss_hp_meter == nil@boss_hp_meter.updateendend#==============================================================================# ■Game_Battler#==============================================================================class Game_Battler < Game_BattlerBase#--------------------------------------------------------------------------# ◠Item Apply#--------------------------------------------------------------------------alias mog_boss_hp_item_apply item_applydef item_apply(user, item)check_boss_hp_beforemog_boss_hp_item_apply(user, item)check_boss_hp_afterend#--------------------------------------------------------------------------# ◠Regenerate HP#--------------------------------------------------------------------------alias mog_boss_hp_regenerate_hp regenerate_hpdef regenerate_hpcheck_boss_hp_beforemog_boss_hp_regenerate_hpcheck_boss_hp_afterend#--------------------------------------------------------------------------# ◠Check Boss HP Before#--------------------------------------------------------------------------def check_boss_hp_beforereturn if self.is_a?(Game_Actor)return if !self.boss_hp_meter$game_system.boss_hp_meter[6] = self.hpend#--------------------------------------------------------------------------# ◠Check Boss HP After#--------------------------------------------------------------------------def check_boss_hp_afterreturn if self.is_a?(Game_Actor)return if !self.boss_hp_meter$game_system.boss_hp_meter[2] = true$game_system.boss_hp_meter[3] = self.name$game_system.boss_hp_meter[4] = self.hp$game_system.boss_hp_meter[5] = self.mhp$game_system.boss_hp_meter[7] = self.level rescue nil$game_system.boss_hp_meter[9] = self.boss_hp_numberendend#==============================================================================# ■Game_Interpreter#==============================================================================class Game_Interpreter#--------------------------------------------------------------------------# ◠Check Boss Meter#--------------------------------------------------------------------------def check_boss_meterreturn if !SceneManager.scene_is?(Scene_Battle)iterate_enemy_index(@params[0]) do |enemy|if enemy.boss_hp_meter$game_system.boss_hp_meter[2] = true$game_system.boss_hp_meter[3] = enemy.name$game_system.boss_hp_meter[4] = enemy.hp$game_system.boss_hp_meter[5] = enemy.mhp$game_system.boss_hp_meter[6] = enemy.hp$game_system.boss_hp_meter[7] = enemy.level rescue nil$game_system.boss_hp_meter[9] = enemy.boss_hp_numberendendend#--------------------------------------------------------------------------# ◠Command 331#--------------------------------------------------------------------------alias mog_boss_meter_command_331 command_331def command_331mog_boss_meter_command_331check_boss_meterend#--------------------------------------------------------------------------# ◠Command 334#--------------------------------------------------------------------------alias mog_boss_meter_command_334 command_334def command_334mog_boss_meter_command_334check_boss_meterendend#==============================================================================# ■BattleManager#==============================================================================class << BattleManager#--------------------------------------------------------------------------# ◠Init Members#--------------------------------------------------------------------------alias mog_boss_meter_init_members init_membersdef init_members$game_temp.battle_end = falsemog_boss_meter_init_membersend#--------------------------------------------------------------------------# ◠Process Victory#--------------------------------------------------------------------------alias mog_boss_meter_process_victory process_victorydef process_victory$game_temp.battle_end = truemog_boss_meter_process_victoryend#--------------------------------------------------------------------------# ◠Process Abort#--------------------------------------------------------------------------alias mog_boss_meter_process_abort process_abortdef process_abort$game_temp.battle_end = truemog_boss_meter_process_abortend#--------------------------------------------------------------------------# ◠Process Defeat#--------------------------------------------------------------------------alias mog_boss_meter_process_defeat process_defeatdef process_defeat$game_temp.battle_end = truemog_boss_meter_process_defeatendend$mog_rgss3_boss_hp_meter = true And, Finally, Yanfly Engine Ace - Ace Battle Engine, yet i believe part of it changes the HP bar that matters. So it must be something like this #==============================================================================# ■Window_BattleStatus#==============================================================================class Window_BattleStatus < Window_Selectable#--------------------------------------------------------------------------# overwrite method: initialize#--------------------------------------------------------------------------def initializesuper(0, 20, window_width , window_height+48+8)#(0, 20, window_width + 96, window_height+48+24 )self.openness = 0self.opacity = 0 ###@party = $game_party.battle_members.cloneend#--------------------------------------------------------------------------# overwrite method: col_max#--------------------------------------------------------------------------def col_max; return $game_party.max_battle_members; end#--------------------------------------------------------------------------# new method: battle_members#--------------------------------------------------------------------------def battle_members; return $game_party.battle_members; end#--------------------------------------------------------------------------# new method: actor#--------------------------------------------------------------------------def actor; return battle_members[@index]; end#--------------------------------------------------------------------------# overwrite method: update#--------------------------------------------------------------------------def updatesuperreturn if @party == $game_party.battle_members@party = $game_party.battle_members.clonerefreshenddef refreshcontents.cleardraw_all_itemsend#--------------------------------------------------------------------------# ☆ actor faces#--------------------------------------------------------------------------def draw_actor_face(actor, x, y, enabled = true)bitmap = Cache.face("bf"+actor.id.to_s+".png")rect = Rect.new(0,0,bitmap.width, bitmap.height)contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)bitmap.disposeend#--------------------------------------------------------------------------# overwrite method: draw_item#--------------------------------------------------------------------------def draw_item(index)return if index.nil?clear_item(index)actor = battle_members[index]rect = item_rect(index)item_x = rect.x + 6return if actor.nil?draw_actor_face(actor, item_x - 8, rect.y - 1, actor.alive?)#draw_actor_name(actor, item_x, rect.y, rect.width-8)draw_actor_action(actor, item_x + 80, rect.y - 2)draw_actor_icons(actor, rect.x, line_height*3, rect.width+48 )#draw_actor_icons(actor, item_x + 12, rect.y + 134, rect.width)gx = YEA::BATTLE::BATTLESTATUS_HPGAUGE_Y_PLUSyadj = 10contents.font.size = YEA::BATTLE::BATTLESTATUS_TEXT_FONT_SIZEdraw_actor_hp(actor, item_x - 7, line_height*2+gx, rect.width-4-17)draw_actor_mp(actor, item_x - 2, line_height*3+gx-yadj+1, rect.width-4-17)draw_actor_tp(actor, rect.x+22, line_height*2+4+22, rect.width-4-17)#draw_actor_tp(actor, item_x + 3, line_height*3+gx-yadj+16, rect.width-4-17)#endend#--------------------------------------------------------------------------# overwrite method: item_rect#--------------------------------------------------------------------------def item_rect(index)rect = Rect.newrect.width = contents.width / $game_party.max_battle_members - 4rect.height = contents.height - 12 - 24rect.x = index * rect.widthif YEA::BATTLE::BATTLESTATUS_CENTER_FACESrect.x += (contents.width - $game_party.members.size * rect.width) / 2endrect.y = 0return rectend#--------------------------------------------------------------------------# overwrite method: draw_face#--------------------------------------------------------------------------def draw_face(face_name, face_index, dx, dy, enabled = true)bitmap = Cache.face(face_name)fx = [(96 - item_rect(0).width + 1) / 2, 0].maxfy = face_index / 4 * 96 + 2fw = [item_rect(0).width - 4, 92].minrect = Rect.new(fx, fy, fw, 92)rect = Rect.new(face_index % 4 * 96 + fx, fy, fw, 92)contents.blt(dx, dy, bitmap, rect, enabled ? 255 : translucent_alpha)bitmap.disposeend#--------------------------------------------------------------------------# overwrite method: draw_actor_name#--------------------------------------------------------------------------def draw_actor_name(actor, dx, dy, dw = 112)reset_font_settingscontents.font.size = YEA::BATTLE::BATTLESTATUS_NAME_FONT_SIZEchange_color(hp_color(actor))draw_text(dx+24, dy, dw-24, line_height, actor.name)end#--------------------------------------------------------------------------# new method: draw_actor_action#--------------------------------------------------------------------------def draw_actor_action(actor, dx, dy)draw_icon(action_icon(actor), dx, dy)end#--------------------------------------------------------------------------# new method: action_icon#--------------------------------------------------------------------------def action_icon(actor)return Icon.no_action if actor.current_action.nil?return Icon.no_action if actor.current_action.item.nil?return actor.current_action.item.icon_indexend#--------------------------------------------------------------------------# new method: draw_tp?#--------------------------------------------------------------------------def draw_tp?(actor)return actor.draw_tp?end#--------------------------------------------------------------------------# new method: draw_mp?#--------------------------------------------------------------------------def draw_mp?(actor)return actor.draw_mp?end#--------------------------------------------------------------------------# overwrite method: draw_current_and_max_values#--------------------------------------------------------------------------def draw_current_and_max_values(dx, dy, dw, current, max, color1, color2)change_color(color1)draw_text(dx, dy, dw, line_height, current.group, 2)end#--------------------------------------------------------------------------# overwrite method: draw_actor_hp#--------------------------------------------------------------------------def draw_actor_hp(actor, dx, dy, width = 20)draw_gauge(dx+8, dy+18, width-20, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)change_color(system_color)cy = (Font.default_size - contents.font.size) / 2 + 18draw_text(dx+2, dy+cy, 30, line_height, Vocab::hp_a)draw_current_and_max_values(dx, dy+cy, width, actor.hp, actor.mhp,hp_color(actor), normal_color)end#--------------------------------------------------------------------------# overwrite method: draw_actor_mp#--------------------------------------------------------------------------def draw_actor_mp(actor, dx, dy, width = 20)draw_gauge(dx+12, dy+24, width-20, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)change_color(system_color)cy = (Font.default_size - contents.font.size) / 2 + 24draw_text(dx+2, dy+cy, 30, line_height, Vocab::mp_a)draw_current_and_max_values(dx, dy+cy, width, actor.mp, actor.mmp,mp_color(actor), normal_color)end#--------------------------------------------------------------------------# overwrite method: draw_actor_tp#--------------------------------------------------------------------------def draw_actor_tp(actor, dx, dy, width = 120)cy = (Font.default_size - contents.font.size) / 2 + 6san = text_size("0000%").widthchange_color(Color.new(128,128,128))agg_tot = 0contents.font.bold = truechange_color(Color.new(128,128,128))atp = actor.tp.to_istr = ""str = "0" if atp < 100str = "00" if atp < 10draw_text(dx+12+san, dy+cy, 42, line_height, str)change_color(tp_color(actor, actor.tp.to_i))draw_text(dx+12+san+text_size(str).width, dy+cy, 42, line_height, atp.to_s + "%")contents.font.bold = falsechange_color(system_color)contents.font.size = 15draw_text(dx+8, dy+cy, 60, line_height, " faith")enddef tp_color(actor, hard = 100)return Color.new(255,215-(125-hard),200-(125-hard),255) if hard < 100return Color.new(255,235,55,255) # REVERSEendend # Window_BattleStatus Share this post Link to post Share on other sites
Bunni89 85 Posted July 18, 2014 YESSS! I've always wanted to see something like this appear in more games. It seems like it was totally wasted in Mabinogi since it could be so cool in a turn-based battle too. Can't wait to try this out~! Share this post Link to post Share on other sites
Ventwig 26 Posted July 18, 2014 @bloodyliao I'll try to make a patch for YEA in the next week as I am busy this weekend. However, mog's scripts draw hp by using pictures, and that's something I have no idea how to do. They're way too complex for me to patch up at my current ability. You could try asking someone in the script requests or script help boards. My only consolation would be that you could switch to my own hp bars, though they are nowhere near as flashy as mog's is. Though I am glad you're interested in this script! @bunni hmm, I've never actually played mabinogi. I based this one off of Final Fantasy XII-2 but I also thought the same thing. It's a cool idea for a turn-based game! Bosses could end up very difficult. Share this post Link to post Share on other sites
Bunni89 85 Posted July 18, 2014 Ah, I didn't know that FFXII-2 uses it too! Its such a rare status effect, there's only a handful of games that've ever used it >_< I think either FF8 or FF9 had something similar too but the visualization was different, it was like a poison status that kept ticking down and then your HP would immediately be locked, over and over and over every few seconds. Called "venom" status if I recall correctly? It was immensely cruel and un-fun, so I'm glad you didn't do that version XD Share this post Link to post Share on other sites
Ventwig 26 Posted July 18, 2014 Ah, I didn't know that FFXII-2 uses it too! Its such a rare status effect, there's only a handful of games that've ever used it >_< I think either FF8 or FF9 had something similar too but the visualization was different, it was like a poison status that kept ticking down and then your HP would immediately be locked, over and over and over every few seconds. Called "venom" status if I recall correctly? It was immensely cruel and un-fun, so I'm glad you didn't do that version XD oh whoops i meant XIII-2. roman numerals make it easy to miss an I lol And that would be a pretty cool idea. Maybe I'll add a "wound poison" tag for states if I'm bored and want an update Share this post Link to post Share on other sites
Ventwig 26 Posted July 22, 2014 (edited) EDIT: YEA patch has been fixed and is now in the main script. There is also a patch for Syvkal's menu bars Edited July 25, 2014 by Ventwig Share this post Link to post Share on other sites
witx0brujx 0 Posted August 21, 2014 I'm using this in a little project I'm working on, and I had it set to where the wound damage doesn't disappear after battle (that way I could make use of Inns and bedrest). But "Recovery All" doesn't affect wound damage. I was wondering if the was anyway to make it so that it will heal wounds? I would greatly appreciate any help you could give me. Share this post Link to post Share on other sites
Amber 1 Posted August 25, 2014 I using woud damage + yanfly battle engine. When either the player or enemy uses <would_only> skills, I don't see popup damage and I got NULL but the defender loses HP naturally. Maybe I do something wrong Share this post Link to post Share on other sites