Este é um script para o RPG Maker XP que, ao ser instalado no jogo/projeto, mostra dados dos inimigos durante as batalhas.
Os dados ficam constantemente acima de cada monstro na batalha, sendo seu HP, SP e nome.
O script é de fácil instalação, e é personalizável. Porém, como não tem-se os comentários, não pude identificar nem como personalizar nem o autor.
Para instalar, basta inserir o código abaixo acima do Main:
#============================================================================== # ?????www.66RPG.com,??????????? #============================================================================== # ¦ ????HP&SP(ver 0.98) # ? ?????????? #============================================================================== module PLAN_HPSP_DRAW FONT_NAME = ["Arial"] # ???? FONT_SIZE = 18 # ??????? FONT_BOLD = true # ?? FONT_ITALIC = true # ?? DRAW_NAME = true # ????? DRAW_HP = true # HP ??? DRAW_SP = true # SP ??? DRAW_WIDTH = 80 # ??? DRAW_HEIGHT = 3 * 32 # ???? DRAW_SPACE = 0 # ?? DRAW_Y = 24 # Y ????? end #============================================================================== # ¦ Sprite_Battler #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_initialize initialize def initialize(viewport, battler = nil) # ????????? plan_enemy_hpsp_draw_initialize(viewport, battler) # ??????? if @battler.is_a?(Game_Enemy) width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32 height = PLAN_HPSP_DRAW::DRAW_HEIGHT + 32 x = @battler.screen_x - width / 2 y = @battler.screen_y - height + 32 + PLAN_HPSP_DRAW::DRAW_Y @enemy_hpsp_window = Window_Base.new(x, y, width, height) @enemy_hpsp_window.contents = Bitmap.new(width - 32, height - 32) @enemy_hpsp_window.contents.font.name = PLAN_HPSP_DRAW::FONT_NAME @enemy_hpsp_window.contents.font.size = PLAN_HPSP_DRAW::FONT_SIZE @enemy_hpsp_window.contents.font.bold = PLAN_HPSP_DRAW::FONT_BOLD @enemy_hpsp_window.contents.font.italic = PLAN_HPSP_DRAW::FONT_ITALIC y = 0 @old_enemy_hpsp = [] one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100 if PLAN_HPSP_DRAW::DRAW_NAME @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32) y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE @old_enemy_hpsp.push(@battler.name) end if PLAN_HPSP_DRAW::DRAW_HP @enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32) y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE @old_enemy_hpsp.push(@battler.hp) end if PLAN_HPSP_DRAW::DRAW_SP @enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32) @old_enemy_hpsp.push(@battler.sp) end @enemy_hpsp_window.opacity = 0 @enemy_hpsp_window.contents_opacity = 0 @enemy_hpsp_window.z = -2 end end #-------------------------------------------------------------------------- # ? ?? #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_dispose dispose def dispose # ??????? if @battler.is_a?(Game_Enemy) @enemy_hpsp_window.dispose end # ????????? plan_enemy_hpsp_draw_dispose end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_update update def update # ????????? plan_enemy_hpsp_draw_update # ??????? if @battler.is_a?(Game_Enemy) @enemy_hpsp_window.visible = @battler_visible # ??????????? width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32 @enemy_hpsp_window.x = self.x - width / 2 @now_enemy_hpsp = [] if PLAN_HPSP_DRAW::DRAW_NAME @now_enemy_hpsp.push(@battler.name) end if PLAN_HPSP_DRAW::DRAW_HP @now_enemy_hpsp.push(@battler.hp) end if PLAN_HPSP_DRAW::DRAW_SP @now_enemy_hpsp.push(@battler.sp) end if @old_enemy_hpsp != @now_enemy_hpsp and $game_temp.enemy_hpsp_refresh @old_enemy_hpsp = @now_enemy_hpsp @enemy_hpsp_window.contents.clear y = 0 width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32 one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100 if PLAN_HPSP_DRAW::DRAW_NAME @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32) y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE end if PLAN_HPSP_DRAW::DRAW_HP @enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32) y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE end if PLAN_HPSP_DRAW::DRAW_SP @enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32) end Graphics.frame_reset end end end #-------------------------------------------------------------------------- # ? visible ??? #-------------------------------------------------------------------------- if !method_defined?("plan_enemy_hpsp_draw_visible=") alias plan_enemy_hpsp_draw_visible= visible= end def visible=(bool) # ??????? if @battler.is_a?(Game_Enemy) @enemy_hpsp_window.visible = bool end # ????????? self.plan_enemy_hpsp_draw_visible=(bool) end #-------------------------------------------------------------------------- # ? ??????? #-------------------------------------------------------------------------- if !method_defined?("plan_enemy_hpsp_draw_opacity=") alias plan_enemy_hpsp_draw_opacity= opacity= end def opacity=(n) # ????????? self.plan_enemy_hpsp_draw_opacity=(n) # ??????? if @battler.is_a?(Game_Enemy) @enemy_hpsp_window.contents_opacity = n end end #-------------------------------------------------------------------------- # ? ???? #-------------------------------------------------------------------------- def damage(value, critical) super(value, critical) bitmap = @_damage_sprite.bitmap @_damage_sprite.dispose @_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480)) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - self.oy / 2 @_damage_sprite.viewport.z = self.viewport.z + 1 @_damage_sprite.z = 3000 @_damage_duration = 40 end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def dispose_damage if @_damage_sprite != nil @_damage_sprite.viewport.dispose end super end end #============================================================================== # ¦ Game_Temp #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_accessor :enemy_hpsp_refresh #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_initialize initialize def initialize # ????????? plan_enemy_hpsp_draw_initialize @enemy_hpsp_refresh = false end end #============================================================================== # ¦ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ? ??????????? (?????+????????) #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_start_phase1 start_phase1 def start_phase1 $game_temp.enemy_hpsp_refresh = true # ????????? plan_enemy_hpsp_draw_start_phase1 end #-------------------------------------------------------------------------- # ? ?????????????? (?????+????????) #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_start_phase2 start_phase2 def start_phase2 $game_temp.enemy_hpsp_refresh = false # ????????? plan_enemy_hpsp_draw_start_phase2 end #-------------------------------------------------------------------------- # ? ?????? (??????? ???? 5 : ??????) #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_update_phase4_step5 update_phase4_step5 def update_phase4_step5 # ????????? plan_enemy_hpsp_draw_update_phase4_step5 $game_temp.enemy_hpsp_refresh = true end #-------------------------------------------------------------------------- # ? ?????? (??????? ???? 6 : ??????) #-------------------------------------------------------------------------- alias plan_enemy_hpsp_draw_update_phase4_step6 update_phase4_step6 def update_phase4_step6 # ????????? plan_enemy_hpsp_draw_update_phase4_step6 $game_temp.enemy_hpsp_refresh = false end end #============================================================================== # ¦ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ? ????? #-------------------------------------------------------------------------- def draw_actor_name(actor, x, y, width = 220, align = 0) if $scene.is_a?(Scene_Battle) flag = actor.name.sub!(/\*f/, '').nil? ? false : true self.contents.font.color = Color.new(0, 0, 0, 192) self.contents.draw_text(x+1, y, width, 32, actor.name, align) self.contents.draw_text(x, y+1, width, 32, actor.name, align) end self.contents.font.color = normal_color self.contents.draw_text(x, y, width, 32, actor.name, align) end alias draw_actor_hp_original draw_actor_hp def draw_actor_hp(actor, x, y, width = 144) # Calculate if there is draw space for MaxHP if width - 32 >= 108 hp_x = x + width - 108 flag = true elsif width - 32 >= 48 hp_x = x + width - 48 flag = false end # Draw Shadow Effects for Battles if $scene.is_a?(Scene_Battle) self.contents.font.color = Color.new(0, 0, 0, 192) self.contents.draw_text(x, y+1, 32, 32, $data_system.words.hp) self.contents.draw_text(x+1, y, 32, 32, $data_system.words.hp) self.contents.draw_text(hp_x, y+1, 48, 32, actor.hp.to_s, 2) self.contents.draw_text(hp_x+1, y, 48, 32, actor.hp.to_s, 2) if flag self.contents.draw_text(hp_x + 49, y, 12, 32, "/", 1) self.contents.draw_text(hp_x + 48, y+1, 12, 32, "/", 1) self.contents.draw_text(hp_x + 60, y+1, 48, 32, actor.maxhp.to_s) self.contents.draw_text(hp_x + 61, y, 48, 32, actor.maxhp.to_s) end end # Draw "HP" text string self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.hp) # Draw HP self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2) # Draw MaxHP if flag self.contents.font.color = normal_color self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s) end end alias draw_actor_sp_original draw_actor_sp def draw_actor_sp(actor, x, y, width = 144) # Calculate if there is draw space for MaxHP if width - 32 >= 108 sp_x = x + width - 108 flag = true elsif width - 32 >= 48 sp_x = x + width - 48 flag = false end # Draw Shadow Effects for Battles if $scene.is_a?(Scene_Battle) self.contents.font.color = Color.new(0, 0, 0, 192) self.contents.draw_text(x, y+1, 32, 32, $data_system.words.sp) self.contents.draw_text(x+1, y, 32, 32, $data_system.words.sp) self.contents.draw_text(sp_x, y+1, 48, 32, actor.sp.to_s, 2) self.contents.draw_text(sp_x+1, y, 48, 32, actor.sp.to_s, 2) if flag self.contents.draw_text(hp_x + 49, y, 12, 32, "/", 1) self.contents.draw_text(hp_x + 48, y+1, 12, 32, "/", 1) self.contents.draw_text(hp_x + 60, y+1, 48, 32, actor.maxsp.to_s) self.contents.draw_text(hp_x + 61, y, 48, 32, actor.maxsp.to_s) end end # Draw "SP" text string self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.sp) # Draw SP self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2) # Draw MaxSP if flag self.contents.font.color = normal_color self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s) end end #-------------------------------------------------------------------------- # ? ??????? #-------------------------------------------------------------------------- def draw_actor_state(actor, x, y, width = 120) # ????????? text = make_battler_state_text(actor, width, true) self.contents.draw_text(x, y, width, 32, text, 1) end end
Dados Do Inimigo Na Batalha
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!