Share Pastebin
Guest
Public paste!

RPG script 2

By: a guest | Mar 20th, 2010 | Syntax: Ruby | Size: 5.69 KB | Hits: 53 | Expires: Never
Copy text to clipboard
  1. #==============================================================================
  2. # Window Hud
  3. #==============================================================================
  4. module Crissaegrim_Hud
  5.  
  6. Background = "HUD-Background" # Imagem de fundo da hud
  7.  
  8. HP_Bar = "HP-Bar" # Imagem da barra de HP
  9.  
  10. MP_Bar = "MP-Bar" # Imagem da barra de MP
  11.  
  12. Base = "Bars-Base" # Imagm do fundo das barras
  13.  
  14. OnOff_Hud_Switch = 30 # Switch que ativa / desativa a HUD
  15.  
  16. Show_Hide_Button = Input::Tab # Tecla que mostra / esconde a HUD
  17.  
  18. end
  19. #------------------------------------------------------------------------------
  20. class Game_Map
  21. attr_reader   :map_id  
  22.   def mpname
  23.     $mpname = load_data("Data/MapInfos.rvdata")
  24.     $mpname[@map_id].name
  25.   end
  26. end
  27. class Location_Hud < Window_Base
  28.   def initialize
  29.     super (395,0,150,60)
  30.     self.contents.font.size = 20
  31.   end
  32.   def update
  33.     self.contents.clear
  34.     refresh
  35.   end
  36.   def refresh
  37.     self.contents.font.bold = false        
  38.     self.contents.font.color = text_color(12)
  39.     self.contents.draw_text(0, -12, 120, 32, "Location:", 4)
  40.     self.contents.font.color = normal_color
  41.     self.contents.draw_text(10, 3, 120, 32, $game_map.mpname.to_s, 4)    
  42.   end
  43. end
  44. class Time_Hud < Window_Base
  45.   def initialize
  46.     super (395,61,150,60)
  47.     self.contents.font.size = 20    
  48.     self.contents.font.bold = false
  49.   end
  50.   def refresh
  51.     self.contents.draw_text(-50, -10, 120, 32, $kts.getDayName, 2)
  52.     self.contents.draw_text(-50, 5, 120, 32, $kts.getTime, 2)
  53.   end
  54.   def update
  55.     self.contents.clear
  56.     refresh
  57.   end
  58. end
  59.  
  60. class Window_CrissaegrimHud < Window_Base
  61.   def initialize
  62.     super(0,0,544,416)
  63.     self.opacity = 0    
  64.     self.contents.font.size = 20    
  65.   end
  66.   def update
  67.     self.contents.clear
  68.     refresh
  69.   end
  70.   def refresh
  71.     t = 0
  72.     for members in $game_party.members
  73.       @actor = members
  74.       y = (t * 48)
  75.       self.contents.font.bold = true  
  76.       draw_actor_name(@actor, 0, y -5)
  77.       self.contents.font.bold = false    
  78.       self.contents.draw_text(70, y - 5, 36, 24, "LVL:", 2)          
  79.       self.contents.draw_text(85, y - 5, 36, 24, @actor.level.to_s, 2)    
  80.       draw_char(@actor.character_name,@actor.character_index,15,y + 50)      
  81.       draw_hp(members, 30, y + 11)
  82.       draw_mp(@actor, 30, y + 26)
  83.       #show_state(@actor, 130, members.id * 11)
  84.       t += 1
  85.     end
  86.   end
  87.   def draw_char(character_name, character_index, x, y)
  88.     return if character_name == nil
  89.     bitmap = Cache.character(character_name)
  90.     sign = character_name[/^[\!\$]./]
  91.     if sign != nil and sign.include?('$')
  92.       cw = bitmap.width / 3
  93.       ch = bitmap.height / 4
  94.     else
  95.       cw = bitmap.width / 12
  96.       ch = bitmap.height / 8
  97.     end
  98.     n = character_index
  99.     src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch-10)
  100.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  101.   end  
  102.   def show_state(actor, x, y)
  103.     count = 0
  104.     for state in actor.states
  105.       draw_icon(state.icon_index, x, y + 24 * count)
  106.       count += 1
  107.       break if (24 * count > 76)
  108.     end
  109.   end
  110.   def show_icon(item, x, y)
  111.     if item != nil
  112.       draw_icon(item.icon_index, x, y)
  113.     end
  114.   end
  115.   def draw_hp(actor, x, y)
  116.     back = Cache.system(Crissaegrim_Hud::Base)
  117.     cw = back.width
  118.     ch = back.height
  119.     src_rect = Rect.new(0, 0, cw , ch)
  120.     self.contents.blt(x, y-ch+24, back, src_rect)
  121.     meter = Cache.system(Crissaegrim_Hud::HP_Bar)    
  122.     cw = (meter.width - 26)  * actor.hp / actor.maxhp
  123.     ch = meter.height
  124.     src_rect = Rect.new(0, 0, cw, ch)
  125.     self.contents.blt(x+5, y-ch+17, meter, src_rect)
  126.     self.contents.font.color = text_color(15)
  127.     self.contents.draw_text(21, y - 1, 44, WLH, actor.hp, 2)
  128.     self.contents.draw_text(65, y - 1, 11, WLH, "/", 2)
  129.     self.contents.draw_text(76, y - 1, 44, WLH, actor.maxhp, 2)
  130.   end  
  131.   def draw_mp(actor, x, y)
  132.     back = Cache.system(Crissaegrim_Hud::Base)    
  133.     cw = back.width
  134.     ch = back.height
  135.     src_rect = Rect.new(0, 0, cw, ch)    
  136.     self.contents.blt(x, y-ch+24, back, src_rect)
  137.     meter = Cache.system(Crissaegrim_Hud::MP_Bar)    
  138.     cw = (meter.width - 26)  * actor.mp / actor.maxmp
  139.     ch = meter.height
  140.     src_rect = Rect.new(0, 0, cw, ch)
  141.     self.contents.blt(x+5, y-ch+17, meter, src_rect)
  142.     self.contents.draw_text(21, y -1, 44, WLH, actor.mp, 2)
  143.     self.contents.draw_text(65, y -1, 11, WLH, "/", 2)
  144.     self.contents.draw_text(76, y -1, 44, WLH, actor.maxmp, 2)
  145.     self.contents.font.color = normal_color
  146.   end
  147. end
  148.  
  149. #------------------------------------------------------------------------------
  150. class Scene_Map
  151.   alias crissaegrim_abs_hud_start start
  152.   alias crissaegrim_abs_hud_update update
  153.   alias crissaegrim_abs_hud_terminate terminate
  154.   def start
  155.     crissaegrim_abs_hud_start
  156.     @location = Location_Hud.new
  157.     @kts_window = Time_Hud.new  
  158.     showing_hud
  159.     @show = true
  160.   end
  161.   def update
  162.     crissaegrim_abs_hud_update
  163.     @location.update
  164.     @kts_window.update
  165.     showing_hud
  166.   end
  167.   def terminate
  168.     crissaegrim_abs_hud_terminate
  169.     @location.dispose
  170.     @kts_window.dispose
  171.   end
  172.   def showing_hud
  173.     if Input.trigger?(Crissaegrim_Hud::Show_Hide_Button)
  174.       if @show == true
  175.         @show = false
  176.       else
  177.         @show = true
  178.       end
  179.     end
  180.     if Crissaegrim_Hud::OnOff_Hud_Switch == 31 or $game_switches[Crissaegrim_Hud::OnOff_Hud_Switch] == true
  181.       if @show == true
  182.         @location.visible = true
  183.         @kts_window.visible = true
  184.       elsif @show == false
  185.         @location.visible = false
  186.         @kts_window.visible = false
  187.       end
  188.      else
  189.        @location.visible = false
  190.        @kts_window.visible = false
  191.     end
  192.   end
  193. end