| Assunto: VXAce HUD Designer Sex Set 07, 2012 4:22 pm | |
| VXAceHUD Designer por Cidiomar R. Dias Jr
Introdução O VXAce HUD Designer é um utilitário totalmente online feito por Cidiomar Jr. Ele lhe permite criar suas próprias HUDs sem precisar mexer um pingo com programação. A interface é bem intuitiva e drag'n'drop; ou seja, você constrói sua HUD apenas arrastando elementos com o mouse e posicionando-os onde deverão ficar. O VXAce HUD Designer traz dezenas de ferramentas que possibilitam a criação de HUDs completas e personalizadas de um modo realmente fácil. Quando terminar, basta gerar o script e colá-lo no Editor de Scritps do seu projeto. É possível adicionar imagens padrão ou próprias (a partir de uma URL), barras de HP, MP e EXP, contador de dinheiro, textos diversos (como indicador de status, armas e skills equipadas etc.), ícones e tudo mais que você imaginar que uma boa HUD precisa ter. A imaginação é seu limite. Screenshots - Spoiler:
Como exemplo do que o VXAce HUD Designer é capaz de fazer, o próprio criador remontou a ReinoRPG HUD Ace. Abaixo, você confere screens da HUD (notando que ela ficou idêntica ao original), o script para utilizá-la em seu projeto e onde conseguir as imagens necessárias para que ela funcione corretamente. [center] Screenshoots[center] Como utilizarCole este script acima do Main: - Código:
-
module HUDWidgets #---------- class WidgetBase < Sprite def initialize(name, x, y, z) super() @name = name self.x, self.y, self.z = x, y, z end def z=(v) super(v + 60) end def z return super() - 60 end def name @name.dup end end #---------- class ImageWidget < WidgetBase def initialize(name, x, y, z, w, h, a, param, text, idx) super(name, x, y, z) @iw, @ih = w, h self.opacity = a @param, @text, @idx = param, text, idx if param == 0 bmp = self.bitmap = Cache.picture(@text) self.zoom_x, self.zoom_y = @iw.to_f / bmp.width, @ih.to_f / bmp.height elsif param == 1 update_char elsif param == 2 update_face else self.bitmap = Cache.system('Iconset') self.src_rect = Rect.new(0, 0, 24, 24) update_icon end self.zoom_x = @iw.to_f / self.src_rect.width self.zoom_y = @ih.to_f / self.src_rect.height end def update_char return unless @param == 1 actor = $game_party.leader bmp = self.bitmap = Cache.character(actor.character_name) sign = actor.character_name[/^[!$]./] #----- if sign and sign.include?('$') cw, ch = bmp.width / 3, bmp.height / 4 else cw, ch = bmp.width / 12, bmp.height / 8 end n = actor.character_index self.src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) self end def update_face return unless @param == 2 actor = $game_party.leader bmp = self.bitmap = Cache.face(actor.face_name) self.src_rect = Rect.new(actor.face_index % 4 * 96, actor.face_index / 4 * 96, 96, 96) end def update_icon return unless @param >= 3 actor = $game_party.leader i_idx = 0 case @param when 3 i_idx = @idx when 16 i_idx = $game_variables[@idx] || 0 when 17 i_idx = ($data_items[@idx].icon_index rescue 0) when 4 i_idx = ($data_weapons[@idx].icon_index rescue 0) when 5 .. 8 i_idx = ($data_armors[@idx].icon_index rescue 0) when 9 i_idx = ($data_skills[@idx].icon_index rescue 0) when 10 i_idx = ($data_states[@idx].icon_index rescue 0) when 11 i_idx = (actor.weapons.first.icon_index rescue 0) when 12 if actor.dual_wield? i_idx = (actor.weapons.first.icon_index rescue 0) else i_idx = (actor.equips[1].icon_index rescue 0) end when 13 i_idx = (actor.equips[2].icon_index rescue 0) when 14 i_idx = (actor.equips[3].icon_index rescue 0) when 15 i_idx = (actor.equips[4].icon_index rescue 0) else i_idx = 0 end self.src_rect = Rect.new(i_idx % 16 * 24, i_idx / 16 * 24, 24, 24) end end #---------- class TextWidget < WidgetBase def initialize(name, x, y, z, param, text, id, fname, fsize, fbold, fitalic, fshadow, fcolor, foutline, foutline_color, tw, th) super(name, x, y, z) #----- @fsize = fsize #----- @font = Font.new(fname, fsize) @font.bold = fbold @font.italic = fitalic @font.shadow = fshadow @font.outline = foutline @font.out_color = foutline_color @fbmp = Bitmap.new(1, 1) @fbmp.font = @font #----- @param, @text, @id = param, text, id @tw, @th = tw, th #----- r = @fbmp.text_size('Text') @font.size *= (@tw.to_f / r.width) #----- @fbmp.font = @font #----- self.oy = (((r.height * (@tw.to_f / r.width)) * (1.0 - (r.width / @tw.to_f))) * 0.5).ceil #----- update end def update actor = $game_party.leader case @param when 0 # Text str = @text when 1 # HP str = (@text % actor.hp) rescue actor.hp.to_s when 2 # Max HP str = (@text % actor.mhp) rescue actor.mhp.to_s when 3 # HP/Max HP str = (@text % [actor.hp, actor.mhp]) rescue (actor.hp + '/' + actor.mhp) when 4 # MP str = (@text % actor.mp) rescue actor.mp.to_s when 5 # Max MP str = (@text % actor.mmp) rescue actor.mmp.to_s when 6 # MP/Max MP str = (@text % [actor.mp, actor.mmp]) rescue (actor.mp + '/' + actor.mmp) when 7 # EXP str = (@text % actor.exp) rescue actor.exp.to_s when 8 # Next Level EXP str = (@text % actor.next_level_exp) rescue actor.next_level_exp.to_s when 9 # EXP/Next Level EXP str = (@text % [actor.exp, actor.next_level_exp]) rescue (actor.exp + '/' + actor.next_level_exp) when 10 # LVL str = (@text % actor.level) rescue actor.level.to_s when 11 # Map Name p $game_map.display_name str = (@text % $game_map.display_name) rescue '' when 12 # Actor's Name str = (@text % actor.name) rescue '' when 13 # Actor's Class str = (@text % actor.class.name) rescue '' when 14 # Gold Amount str = (@text % $game_party.gold) rescue '0' when 15 # Actor's Weapon str = (@text % actor.weapons.first.name) rescue '' when 16 # Actor's Shield str = (@text % actor.equips[1].name) rescue '' when 17 # Actor's Helm str = (@text % actor.equips[2].name) rescue '' when 18 # Actor's Armor str = (@text % actor.equips[3].name) rescue '' when 19 # Actor's Accessory str = (@text % actor.equips[4].name) rescue '' when 20 # Variable str = (@text % $game_variables[@id]) rescue '0' else return end #----- return if str.empty? self.bitmap.dispose if self.bitmap and not self.bitmap.disposed? #----- r = @fbmp.text_size(str) bmp = self.bitmap = Bitmap.new(r.width + 32, r.height) bmp.font = @font bmp.draw_text(bmp.rect, str, 0) end end #---------- end class Scene_Map < Scene_Base #---------- alias :hud_alias_start :start alias :hud_alias_update :update alias :hud_alias_p_term :terminate #---------- def start hud_alias_start start_hud end #----- def start_hud @actor_info_cache, @var_info_cache, @hud_widgets = {}, {}, {} @hud_widgets[1] = HUDWidgets::ImageWidget.new('Object1', 97, 315, 0, 350, 95, 255, 0, 'Back.png', 1) @hud_widgets[2] = HUDWidgets::ImageWidget.new('Object2', 189, 357, 1, 134, 8, 255, 0, 'HP.png', 1) @hud_widgets[3] = HUDWidgets::ImageWidget.new('Object3', 189, 374, 2, 134, 8, 255, 0, 'MP.png', 1) @hud_widgets[4] = HUDWidgets::ImageWidget.new('Object4', 123, 340, 3, 32, 32, 255, 1, '', 0) @hud_widgets[5] = HUDWidgets::TextWidget.new('Object5', 186, 338, 4, 12, '%s', 0, 'Georgia', 12, true, false, true, Color.new(255, 255, 255, 255), false, Color.new(0, 0, 0, 255), 34, 12) @hud_widgets[6] = HUDWidgets::TextWidget.new('Object6', 304, 338, 5, 13, '%s', 0, 'Georgia', 12, true, false, true, Color.new(255, 255, 255, 255), false, Color.new(0, 0, 0, 255), 34, 12) @hud_widgets[7] = HUDWidgets::TextWidget.new('Object7', 343, 363, 6, 10, '%d', 0, 'Arial', 16, true, false, true, Color.new(255, 255, 255, 255), false, Color.new(0, 0, 0, 255), 40, 16) @hud_widgets[8] = HUDWidgets::TextWidget.new('Object8', 388, 352, 7, 14, '%d', 0, 'Arial', 12, true, false, true, Color.new(255, 255, 255, 255), false, Color.new(0, 0, 0, 255), 29, 12) @hud_widgets[9] = HUDWidgets::TextWidget.new('Object9', 385, 368, 8, 0, 'Gold', 0, 'Arial', 12, true, false, true, Color.new(255, 255, 255, 255), false, Color.new(0, 0, 0, 255), 29, 12) update_hud end #---------- def update hud_alias_update update_hud end #----- def update_hud actor = $game_party.leader wid = @hud_widgets[2] if (@actor_info_cache[:char_hp] != actor.hp or @actor_info_cache[:char_mhp] != actor.mhp) wid.zoom_x = (actor.hp.to_f / actor.mhp) end wid = @hud_widgets[3] if (@actor_info_cache[:char_mp] != actor.mp or @actor_info_cache[:char_mmp] != actor.mmp) wid.zoom_x = (actor.mp.to_f / actor.mmp) end wid = @hud_widgets[4] if (@actor_info_cache[:char_name] != actor.character_name) or (@actor_info_cache[:char_idx] != actor.character_index) wid.update_char end wid = @hud_widgets[5] if (@actor_info_cache[:char_name] != actor.name) wid.update end wid = @hud_widgets[6] if (@actor_info_cache[:char_class] != actor.class.name) wid.update end wid = @hud_widgets[7] if (@actor_info_cache[:char_level] != actor.level) wid.update end wid = @hud_widgets[8] if (@actor_info_cache[:party_gold] != $game_party.gold) wid.update end @actor_info_cache[:char_hp], @actor_info_cache[:char_mhp] = actor.hp, actor.mhp @actor_info_cache[:char_mp], @actor_info_cache[:char_mmp] = actor.mp, actor.mmp @actor_info_cache[:char_name] = actor.character_name @actor_info_cache[:char_idx] = actor.character_index @actor_info_cache[:char_name] = actor.name @actor_info_cache[:char_class] = actor.class.name @actor_info_cache[:char_level] = actor.level @actor_info_cache[:party_gold] = $game_party.gold end #---------- def terminate hud_alias_p_term hud_dispose end #----- def hud_dispose @hud_widgets.each_value {|hw| hw.dispose } end #---------- end E ponha as imagens do link na pasta Pictures de seu projeto: http://forums.rpgmakerweb.com/index.php?/topic/1142-reinorpg-hud-ace/Créditos e AgradecimentosFeito por Cidiomar Jr. Tópico Original : RA(in) S3xyVampS |
|