MOG - I Hud 1.0 é um script criado pelo Moghunter para ser usado em um game ou projeto do RPG Maker XP que implementa um sistema de HUD que apresenta o HP e SP em ícones.
MOG – I Hud 1.0 é um script criado pelo Moghunter para ser usado em um game ou projeto do RPG Maker XP que implementa um sistema de HUD que apresenta o HP e SP em ícones.
Este sistema de HUD é no estilo de games como Alundra ou Soul Blazer, jogos no estilo action role-playing game.
O MOG – I Hud 1.0 é uma alternativa similar e mais moderna ao MOG MPW Icon v1.0, que publicamos aqui, mas não conta com a demo nem as figuras prontas para usar.
Convém baixar o minigame que já possui todas as imagens exemplos e o script.
Note que as imagens devem ser deixadas na pasta Windowskins
.
O script abaixo vai acima do “Main”, na sua parte de scripts do projeto:
#_______________________________________________________________________________ # MOG - I Hud 1.0 #_______________________________________________________________________________ # By Moghunter # http://www.atelier-rgss.com #_______________________________________________________________________________ # - Apresenta o HP e SP em icones. # # ARQUIVOS NECESSÁRIOS # # IHud_HP.png # IHud_Layout.png # Ihud_Number.png # IHud_SP.png # # Deixe as imagens na pasta Windowskins # # NOTA # A imagem do ícone sempre será dividido por 2, independente # do tamanho da imagem. #_______________________________________________________________________________ module MOG #Posição geral do HUD. IHUD_X = 230 IHUD_Y = 10 #Switch que desativa a HUD. DISABLE_IHUD_SWITCH_ID = 5 #Posição do Layout IHUD_LAYOUT_X = -15 IHUD_LAYOUT_Y = 0 #HP ------------------------------------ #Posição do ícone de HP. HP_ICON_X = 30 HP_ICON_Y = 0 #Posição do numero de HP. H_NUMBER_X = 0 H_NUMBER_Y = 0 #Quantidade maxima de icones de HP. ICON_HP_MAX = 10 #Espaço entre um icone e o outro. ICON_HP_SPACE = 14 #Apresentar o HP em numero. HP_NUMBER_ENABLE = true #SP ------------------------------------- #Posição do ícone de SP. SP_ICON_X = 50 SP_ICON_Y = 32 #Posição do numero de SP. S_NUMBER_X = 30 S_NUMBER_Y = 32 #Quantidade maxima de icones de SP. ICON_SP_MAX = 10 #Espaço entre um icone e o outro. ICON_SP_SPACE = 14 #Apresentar o SP em numero. SP_NUMBER_ENABLE = true end #============================================================================== # Ihud #============================================================================== class Ihud < Sprite include MOG #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(viewport) super(viewport) @actor = $game_party.actors[0] return if @actor == nil # Initialize ------------------------------------------------------------- @hp = @actor.hp @maxhp = @actor.maxhp @hp_maxicon = ICON_HP_MAX @hp_iconmax = ICON_HP_MAX @hp_iconmax = 1 if @hp_iconmax <= 0 @hp2 = @actor.hp / @hp_iconmax @sp = @actor.sp @maxsp = @actor.maxsp @sp_maxicon = ICON_SP_MAX @sp_iconmax = ICON_SP_MAX @sp_iconmax = 1 if @sp_iconmax <= 0 @sp2 = @actor.sp / @sp_iconmax # Layout ------------------------------------------------------------------- @layout_image = RPG::Cache.windowskin("IHud_Layout") @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height) @layout_sprite = Sprite.new @layout_sprite.bitmap = @layout_bitmap @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height) @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back) @layout_sprite.z = 5001 @layout_sprite.x = IHUD_LAYOUT_X + IHUD_X @layout_sprite.y = IHUD_LAYOUT_Y + IHUD_Y # HP --------------------------------------------------------------------- @hp_icon_image = RPG::Cache.windowskin("IHud_HP") @hp_icon_cw = @hp_icon_image.width / 2 @hp_icon_ch = @hp_icon_image.height b_width = @hp_icon_cw * @hp_iconmax @hp_bitmap = Bitmap.new(b_width,@hp_icon_ch) @hp_icon_sprite = Sprite.new @hp_icon_sprite.bitmap = @hp_bitmap @hp_icon_sprite.z = 5002 @hp_icon_sprite.x = HP_ICON_X + IHUD_X @hp_icon_sprite.y = HP_ICON_Y + IHUD_Y # HP Number --------------------------------------------------------------------- @hp_number_image = RPG::Cache.windowskin("Ihud_Number") @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height) @im_cw = @hp_number_image.width / 10 @im_ch = @hp_number_image.height / 2 @hp_number_sprite = Sprite.new @hp_number_sprite.bitmap = @hp_number_bitmap @hp_number_sprite.z = 5003 @hp_number_sprite.x = H_NUMBER_X + IHUD_X @hp_number_sprite.y = H_NUMBER_Y + IHUD_Y # SP --------------------------------------------------------------------- @sp_icon_image = RPG::Cache.windowskin("IHud_SP") @sp_icon_cw = @sp_icon_image.width / 2 @sp_icon_ch = @sp_icon_image.height bs_width = @sp_icon_cw * @sp_iconmax @sp_bitmap = Bitmap.new(bs_width,@sp_icon_ch) @sp_icon_sprite = Sprite.new @sp_icon_sprite.bitmap = @sp_bitmap @sp_icon_sprite.z = 5002 @sp_icon_sprite.x = SP_ICON_X + IHUD_X @sp_icon_sprite.y = SP_ICON_Y + IHUD_Y # SP Number --------------------------------------------------------------------- @sp_number_image = RPG::Cache.windowskin("Ihud_Number") @sp_number_bitmap = Bitmap.new(@sp_number_image.width,@sp_number_image.height) @ims_cw = @sp_number_image.width / 10 @ims_ch = @sp_number_image.height / 2 @sp_number_sprite = Sprite.new @sp_number_sprite.bitmap = @sp_number_bitmap @sp_number_sprite.z = 5003 @sp_number_sprite.x = S_NUMBER_X + IHUD_X @sp_number_sprite.y = S_NUMBER_Y + IHUD_Y hp_refresh sp_refresh visible_update end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose return if @actor == nil #Layout Dispose @layout_bitmap.dispose @layout_bitmap = nil @layout_sprite.bitmap.dispose @layout_sprite.bitmap = nil @layout_sprite.dispose @layout_sprite = nil #HP Icon Dispose @hp_bitmap.dispose @hp_bitmap = nil @hp_icon_sprite.dispose @hp_icon_sprite = nil #Hp Number Dispose @hp_number_bitmap.dispose @hp_number_bitmap = nil @hp_number_sprite.bitmap.dispose @hp_number_sprite.bitmap = nil @hp_number_sprite.dispose @hp_number_sprite = nil #SP Icon Dispose @sp_bitmap.dispose @sp_bitmap = nil @sp_icon_sprite.dispose @sp_icon_sprite = nil #Sp Number Dispose @sp_number_sprite.bitmap.dispose @sp_number_sprite.bitmap = nil @sp_number_sprite.dispose @sp_number_sprite = nil @sp_number_bitmap.dispose @sp_number_bitmap = nil end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update return if @actor == nil if @hp != @actor.hp or @maxhp != @actor.maxhp hp_refresh end if @sp != @actor.sp or @maxsp != @actor.maxsp sp_refresh end visible_update end #-------------------------------------------------------------------------- # * Visible_on #-------------------------------------------------------------------------- def visible_update return if @actor == nil if $game_switches[MOG::DISABLE_IHUD_SWITCH_ID] == true @layout_sprite.visible = false @hp_icon_sprite.visible = false @hp_number_sprite.visible = false @sp_icon_sprite.visible = false @sp_number_sprite.visible = false else @hp_icon_sprite.visible = true @sp_icon_sprite.visible = true @layout_sprite.visible = true if HP_NUMBER_ENABLE == true @hp_number_sprite.visible = true else @hp_number_sprite.visible = false end if SP_NUMBER_ENABLE == true @sp_number_sprite.visible = true else @sp_number_sprite.visible = false end end end #-------------------------------------------------------------------------- # * HP Refresh #-------------------------------------------------------------------------- def hp_refresh return if @actor == nil @hp_icon_sprite.bitmap.clear @hp_number_sprite.bitmap.clear @hp = @actor.hp @maxhp = @actor.maxhp @hp_iconmax = ICON_HP_MAX @hp_iconmax = 1 if @hp_iconmax <= 0 @hp2 = @actor.hp / @hp_iconmax @hp3 = @actor.hp - (@hp2 * @hp_iconmax) #HP Icon ----------------------- for i in 0...@hp_iconmax @hp_icon_src_rect = Rect.new(0,0, @hp_icon_cw, @hp_icon_ch) @hp_bitmap.blt(i * ICON_HP_SPACE , 0, @hp_icon_image, @hp_icon_src_rect) end @hp2 = @hp2 - 1 if @hp3 == 0 and @actor.hp > 0 @hp3 = @hp_iconmax if @hp3 == 0 and @actor.hp > 0 for i in 0...@hp3 @hp_icon_src_rect = Rect.new(@hp_icon_cw,0, @hp_icon_cw, @hp_icon_ch) @hp_bitmap.blt(i * ICON_HP_SPACE , 0, @hp_icon_image, @hp_icon_src_rect) end #HP Number ------------------ @hp_number_text = @hp2.abs.to_s.split(//) for r in 0..@hp_number_text.size - 1 @hp_number_abs = @hp_number_text[r].to_i @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, 0, @im_cw, @im_ch) @hp_number_bitmap.blt(20 * r, 0, @hp_number_image, @hp_src_rect) end end #-------------------------------------------------------------------------- # * SP Refresh #-------------------------------------------------------------------------- def sp_refresh return if @actor == nil @sp_icon_sprite.bitmap.clear @sp_number_sprite.bitmap.clear @sp = @actor.sp @maxsp = @actor.maxsp @sp_iconmax = ICON_SP_MAX @sp_iconmax = 1 if @sp_iconmax <= 0 @sp2 = @actor.sp / @sp_iconmax @sp3 = @actor.sp - (@sp2 * @sp_iconmax) #SP Icon ----------------------- for i in 0...@sp_iconmax @sp_icon_src_rect = Rect.new(0,0, @sp_icon_cw, @sp_icon_ch) @sp_bitmap.blt(i * ICON_SP_SPACE , 0, @sp_icon_image, @sp_icon_src_rect) end @sp2 = @sp2 - 1 if @sp3 == 0 and @actor.sp > 0 @sp3 = @sp_iconmax if @sp3 == 0 and @actor.sp > 0 for i in 0...@sp3 @sp_icon_src_rect = Rect.new(@sp_icon_cw,0, @sp_icon_cw, @sp_icon_ch) @sp_bitmap.blt(i * ICON_SP_SPACE , 0, @sp_icon_image, @sp_icon_src_rect) end #SP Number ------------------ @sp_number_text = @sp2.abs.to_s.split(//) for r in 0..@sp_number_text.size - 1 @sp_number_abs = @sp_number_text[r].to_i @sp_src_rect = Rect.new(@im_cw * @sp_number_abs, @ims_ch, @ims_cw, @ims_ch) @sp_number_bitmap.blt(15 * r, 0, @sp_number_image, @sp_src_rect) end end end #=============================================================================== # Scene_Map #=============================================================================== class Scene_Map alias ihud_main main #-------------------------------------------------------------------------- # Main #-------------------------------------------------------------------------- def main @ic_viewport = Viewport.new(0, 0, 640, 480) @ic_viewport.z = 9999 @i_hud = Ihud.new(@ic_viewport) ihud_main @i_hud.dispose @i_hud = nil @ic_viewport.dispose @ic_viewport = nil end #-------------------------------------------------------------------------- # Update #-------------------------------------------------------------------------- alias ihud_update update def update ihud_update @i_hud.update end end $mog_rgss_ihud = true
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!
Você pode acompanhar os comentários desse post através do feed RSS 2.0.
Você pode criticar, elogiar, corrigir, complementar, reportar links quebrados (o que é muito importante) etc. Você pode até xingar a gente de palavrão se quiser, mas como não queremos ofender as crianças que nos visitam (e evitar choradeira dos frescos de plantão) não aprovaremos comentários com palavras chulas e/ou de baixo calão. Também não aprovaremos spam ou conteúdos ofensivos a outras partes. O seu link só será aprovado se for de algum site que esteja funcionando e não seja spam nem enganação. Dados pessoais não serão publicados. O conteúdo dos comentários é de inteira responsabilidade de seus autores.