Project1

标题: 给这个脚本添加开关 [打印本页]

作者: 秋寒    时间: 2013-6-18 13:47
标题: 给这个脚本添加开关
本帖最后由 1426 于 2013-6-18 18:30 编辑

这个是国外的地图显示血量脚本,想在事件标题的时候关掉,谁能帮忙加个开关


RUBY 代码复制
  1. ==============================================================================#
  2. # MOG - Active Hud 2.0                                                         #
  3. #==============================================================================#
  4. # By Moghunter                                                                 #
  5. # [url]http://www.atelier-rgss.com[/url]                                                  #
  6. #==============================================================================#
  7. # Translated by Calvin624                                                      #
  8. # [url]http://www.xasabs.wordpress.com[/url]                                              #
  9. #==============================================================================#
  10. ###############################-DESCRIPTION-####################################
  11. #==============================================================================#
  12. # HUD stands for Heads-Up Display. It is a method used in most games to        #
  13. # visually converse with the player.                                           #
  14. #==============================================================================#
  15. # Animated HUD System, featuring faces that change according to the action     #
  16. # of the hero.                                                                 #
  17. #==============================================================================#
  18. #                                                                              #
  19. # Graphics required:                                                           #
  20. #                                                                              #
  21. # Hud_Exp_Meter.png                                                            #
  22. # Hud_Exp_Number                                                               #
  23. # Hud_Face                                                                     #
  24. # Hud_HP_Meter                                                                 #
  25. # Hud_HP_Number                                                                #
  26. # Hud_Layout                                                                   #
  27. # Hud_SP_Meter                                                                 #
  28. # Hud_SP_Number                                                                #
  29. #                                                                              #
  30. # All images must be in the Windowskin folder.                                 #
  31. #                                                                              #
  32. #==============================================================================#
  33. # FACES ANIMATIONS INFO:                                                       #
  34. # It takes a picture with the name "Hud_Face.png" and splits it into 5.        #
  35. # Displayed in the following order:                                            #
  36. #   1 - Normal 2 - Happy 3 - Sad 4 - Action 5 - Tired.                         #
  37. #==============================================================================#
  38. module MOG_ACTIVE_HUD
  39. # Position of the HUD on the X and Y axis......................[HUD_POSITIONING]  
  40.   HUD_POS = [5,410]
  41. # Position of the HP meter on the X and Y axis.................[HUD_POSITIONING]
  42.   HP_METER_POS = [68,32]
  43. # Position of the HP number on the X and Y axis................[HUD_POSITIONING]
  44.   HP_NUMBER_POS = [90,20]
  45. # Position of the SP meter on the X and Y axis.................[HUD_POSITIONING]
  46.   SP_METER_POS = [28,54]
  47. # Position of the SP number on the X and Y axis................[HUD_POSITIONING]
  48.   SP_NUMBER_POS = [50,43]
  49. # Position of the EXP meter on the X and Y axis................[HUD_POSITIONING]
  50.   EXP_METER_POS = [55,16]
  51. # Position of the LV number on the X and Y axis................[HUD_POSITIONING]
  52.   EXP_NUMBER_POS = [55,-5]
  53. # Position of the Face Graphic on the X  and Y axis............[HUD_POSITIONING]
  54.   FACE_POS = [0,0]
  55. # Position of Conditions on the X and Y axis...................[HUD_POSITIONING]
  56.   STATES_POS = [145,40]
  57. # Fade Effect.......................................................[TRUE/FALSE]
  58.   HUD_FADE = true  
  59. # Size of the Active HUD. This influences when the FADE mechanic is turned on.
  60.   HUD_SIZE = [180,100]
  61. # Enable position of states in relation to character?...............[TRUE/FALSE]
  62.   STATES_POS_CHARACTER = false
  63. # Display the states with the levitation effect?....................[TRUE/FALSE]
  64.   FLOAT_STATES = true
  65. # Percentage at which your HP is deemed low.............................[DAMAGE]
  66.   LOWHP = 30
  67. # Switch ID to disable the HUD..........................................[SWITCH]
  68.   DISABLE_HUD_SWITCH = 50
  69.   # Priority of Hud. (Z)  
  70.   HUD_Z_PRIORITY = 5000
  71. end
  72.  
  73. #==============================================================================
  74. # ** Game_Actor
  75. #==============================================================================
  76. class Game_Actor < Game_Battler
  77.  
  78. #--------------------------------------------------------------------------
  79. # * Now Exp
  80. #--------------------------------------------------------------------------
  81. def now_exp
  82.     return [url=home.php?mod=space&uid=13302]@exp[/url] - @exp_list[@level]
  83. end
  84.  
  85. #--------------------------------------------------------------------------
  86. # * Next Exp
  87. #--------------------------------------------------------------------------
  88. def next_exp
  89.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  90.     end
  91. end
  92. #==============================================================================
  93. # ** Game_Temp
  94. #==============================================================================
  95. class Game_Temp
  96.   attr_accessor :hud_face_type
  97.   attr_accessor :hud_face_time
  98.   attr_accessor :hud_face_time2
  99.   attr_accessor :hud_face_refresh
  100.  
  101. #--------------------------------------------------------------------------
  102. # * Initialize
  103. #--------------------------------------------------------------------------
  104.   alias active_hud_initialize initialize
  105.   def initialize
  106.     active_hud_initialize
  107.     @hud_face_type = 0
  108.     @hud_face_time = 0
  109.     @hud_face_time2 = 0
  110.     @hud_face_refresh = false
  111.   end   
  112. end
  113.  
  114. #==============================================================================
  115. # ** Active_Hud
  116. #==============================================================================
  117. class Active_Hud < Sprite  
  118.   include MOG_ACTIVE_HUD
  119.   #--------------------------------------------------------------------------
  120.   # * Initialize
  121.   #--------------------------------------------------------------------------
  122.   def initialize(viewport)
  123.       super(viewport)
  124.       [url=home.php?mod=space&uid=95897]@actor[/url] = $game_party.actors[0]
  125.       return if [url=home.php?mod=space&uid=95897]@actor[/url] == nil
  126.       setup   
  127.       create_layout
  128.       create_face
  129.       create_state   
  130.       create_hp_number
  131.       create_hp_meter
  132.       create_sp_number
  133.       create_sp_meter
  134.       create_level_number
  135.       create_level_meter
  136.       update_visible
  137.   end
  138.  
  139.   #--------------------------------------------------------------------------
  140.   # * Setup
  141.   #--------------------------------------------------------------------------        
  142.   def setup
  143.       @low_sp = LOWHP
  144.       @low_hp = LOWHP
  145.       @hp = @actor.hp
  146.       @sp = @actor.sp
  147.       [url=home.php?mod=space&uid=13302]@exp[/url] = @actor.exp
  148.       [url=home.php?mod=space&uid=22147]@level[/url] = @actor.level
  149.       @hp_old = @actor.hp
  150.       @hp_ref = @hp_old
  151.       @hp_refresh = false
  152.       @sp_old = @actor.sp
  153.       @sp_ref = @sp_old
  154.       @sp_refresh = false
  155.       hud_size_x = HUD_SIZE[0]
  156.       hud_size_y = HUD_SIZE[1]
  157.       @oc_range_x = hud_size_x + HUD_POS[0]
  158.       @oc_range_y = hud_size_y + HUD_POS[1]     
  159.   end  
  160.  
  161.   #--------------------------------------------------------------------------
  162.   # * Create Layout
  163.   #--------------------------------------------------------------------------      
  164.   def create_layout
  165.       @layout_sprite = Sprite.new
  166.       @layout_sprite.bitmap = RPG::Cache.windowskin("Hud_Layout")
  167.       @layout_sprite.z = HUD_Z_PRIORITY
  168.       @layout_sprite.x = HUD_POS[0]
  169.       @layout_sprite.y = HUD_POS[1]
  170.   end   
  171.  
  172.   #--------------------------------------------------------------------------
  173.   # * Create Face
  174.   #--------------------------------------------------------------------------      
  175.   def create_face
  176.       @face_image = RPG::Cache.windowskin("Hud_Face")
  177.       @face_bitmap = Bitmap.new(@face_image.width,@face_image.height)
  178.       @face_sprite = Sprite.new
  179.       @face_sprite.bitmap = @face_bitmap
  180.       @face_cw = @face_bitmap.width / 5
  181.       @face_ch = @face_bitmap.height
  182.       @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
  183.       @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)      
  184.       @face_sprite.z = 1 + HUD_Z_PRIORITY
  185.       @face_sprite.x = HUD_POS[0] + FACE_POS[0]
  186.       @face_sprite.y = HUD_POS[1] + FACE_POS[1]        
  187.       if @actor.hp < @actor.maxhp * @low_hp / 100
  188.          $game_temp.hud_face_type = 4              
  189.       else
  190.          $game_temp.hud_face_type = 0
  191.       end            
  192.       $game_temp.hud_face_time = 10   
  193.   end
  194.  
  195.   #--------------------------------------------------------------------------
  196.   # * Create State
  197.   #--------------------------------------------------------------------------        
  198.   def create_state
  199.       @states_max = 0
  200.       @states = Sprite.new
  201.       @states.bitmap = Bitmap.new(104,24)
  202.       @states_x = @actor.states.size
  203.       @states_y = 0
  204.       @states_f = false
  205.       sta = []
  206.       for i in @actor.states
  207.          unless @states_max > 3
  208.             sta.push($data_states[i].name)
  209.             image = RPG::Cache.icon(sta[@states_max])
  210.             cw = image.width
  211.             ch = image.height
  212.             @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
  213.             @states_max += 1
  214.          end
  215.       end  
  216.       if STATES_POS_CHARACTER == true  
  217.          @states.x = 5 -(13 * @states_x) + $game_player.screen_x
  218.          @states.y = @states_y + $game_player.screen_y
  219.       else
  220.          @states.x = HUD_POS[0] + STATES_POS[0]
  221.          @states.y = @states_y + HUD_POS[1] + STATES_POS[1]
  222.       end
  223.       @states.z = 1 + HUD_Z_PRIORITY  
  224.   end
  225.  
  226.   #--------------------------------------------------------------------------
  227.   # * Create HP Number
  228.   #--------------------------------------------------------------------------         
  229.   def create_hp_number
  230.       @hp_number_image = RPG::Cache.windowskin("Hud_HP_Number")
  231.       @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height)
  232.       @hp_number_sprite = Sprite.new
  233.       @hp_number_sprite.bitmap = @hp_number_bitmap
  234.       @hp_number_sprite.z = 2 + HUD_Z_PRIORITY  
  235.       @hp_number_sprite.x = HUD_POS[0] + HP_NUMBER_POS[0]
  236.       @hp_number_sprite.y = HUD_POS[1] + HP_NUMBER_POS[1]
  237.       @im_cw = @hp_number_image.width / 10
  238.       @im_ch = @hp_number_image.height / 2   
  239.       @hp_src_rect = Rect.new(@im_cw,0, @im_cw, @im_ch)
  240.       @hp_number_text = @actor.hp.abs.to_s.split(//)
  241.       lowhp2 = @actor.maxhp * 30 / 100
  242.       if @actor.hp < lowhp2
  243.          @health2 = @im_ch
  244.       else
  245.          @health2 = 0
  246.       end
  247.       @hp_health = @health2
  248.       for r in [email]0..@hp_number_text.size[/email] - 1         
  249.           @hp_number_abs = @hp_number_text[r].to_i
  250.           @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
  251.           @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)        
  252.       end  
  253.       hp_number_refresh  
  254.   end
  255.  
  256.   #--------------------------------------------------------------------------
  257.   # * Create HP Meter
  258.   #--------------------------------------------------------------------------            
  259.   def create_hp_meter
  260.       @hp_flow = 0
  261.       @hp_damage_flow = 0
  262.       @hp_image = RPG::Cache.windowskin("Hud_HP_Meter")
  263.       @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
  264.       @hp_range = @hp_image.width / 3
  265.       @hp_width = @hp_range  * @actor.hp / @actor.maxhp  
  266.       @hp_height = @hp_image.height / 2
  267.       @hp_width_old = @hp_width
  268.       @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
  269.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
  270.       @hp_sprite = Sprite.new
  271.       @hp_sprite.bitmap = @hp_bitmap
  272.       @hp_sprite.z = 1 + HUD_Z_PRIORITY
  273.       @hp_sprite.x = HUD_POS[0] + HP_METER_POS[0]
  274.       @hp_sprite.y = HUD_POS[1] + HP_METER_POS[1]
  275.       hp_flow_update  
  276.   end
  277.  
  278.   #--------------------------------------------------------------------------
  279.   # * Create SP Number
  280.   #--------------------------------------------------------------------------              
  281.   def create_sp_number
  282.       @sp_number_image = RPG::Cache.windowskin("Hud_SP_Number")
  283.       @sp_number_bitmap = Bitmap.new(@sp_number_image.width,@sp_number_image.height)
  284.       @sp_number_sprite = Sprite.new
  285.       @sp_number_sprite.bitmap = @sp_number_bitmap
  286.       @sp_number_sprite.z = 2 + HUD_Z_PRIORITY
  287.       @sp_number_sprite.x = HUD_POS[0] + SP_NUMBER_POS[0]
  288.       @sp_number_sprite.y = HUD_POS[1] + SP_NUMBER_POS[1]
  289.       @sp_im_cw = @sp_number_image.width / 10
  290.       @sp_im_ch = @sp_number_image.height / 2   
  291.       @sp_src_rect = Rect.new(@sp_im_cw,0, @sp_im_cw, @sp_im_ch)
  292.       @sp_number_text = @actor.sp.abs.to_s.split(//)
  293.       for r in [email]0..@sp_number_text.size[/email] - 1
  294.          @sp_number_abs = @sp_number_text[r].to_i
  295.          @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
  296.          @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)        
  297.       end         
  298.       sp_number_refresh
  299.   end
  300.  
  301.   #--------------------------------------------------------------------------
  302.   # * Create SP Meter
  303.   #--------------------------------------------------------------------------               
  304.   def create_sp_meter
  305.       @sp_flow = 0
  306.       @sp_damage_flow = 0
  307.       @sp_image = RPG::Cache.windowskin("Hud_SP_Meter")
  308.       @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
  309.       @sp_range = @sp_image.width / 3
  310.       @sp_width = @sp_range  * @actor.sp / @actor.maxsp  
  311.       @sp_height = @sp_image.height / 2
  312.       @sp_width_old = @sp_width
  313.       @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
  314.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
  315.       @sp_sprite = Sprite.new
  316.       @sp_sprite.bitmap = @sp_bitmap
  317.       @sp_sprite.z = 1 + HUD_Z_PRIORITY
  318.       @sp_sprite.x = HUD_POS[0] + SP_METER_POS[0]
  319.       @sp_sprite.y = HUD_POS[1] + SP_METER_POS[1]
  320.       sp_flow_update      
  321.   end
  322.  
  323.   #--------------------------------------------------------------------------
  324.   # * Create Level Number
  325.   #--------------------------------------------------------------------------                    
  326.   def create_level_number
  327.       @level_number_image = RPG::Cache.windowskin("Hud_Exp_Number")
  328.       @level_number_bitmap = Bitmap.new(@level_number_image.width,@level_number_image.height)
  329.       @level_number_sprite = Sprite.new
  330.       @level_number_sprite.bitmap = @level_number_bitmap
  331.       @level_number_sprite.z = 2 + HUD_Z_PRIORITY
  332.       @level_number_sprite.x = HUD_POS[0] + EXP_NUMBER_POS[0]
  333.       @level_number_sprite.y = HUD_POS[1] + EXP_NUMBER_POS[1]
  334.       @level_im_cw = @level_number_image.width / 10
  335.       @level_im_ch = @level_number_image.height     
  336.       @level_number_text = @actor.level.abs.to_s.split(//)
  337.       for r in [email]0..@level_number_text.size[/email] - 1
  338.            @level_number_abs = @level_number_text[r].to_i
  339.            @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
  340.            @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)        
  341.       end   
  342.   end
  343.  
  344.   #--------------------------------------------------------------------------
  345.   # * Create Level Meter
  346.   #--------------------------------------------------------------------------                  
  347.   def create_level_meter
  348.       @level_image = RPG::Cache.windowskin("Hud_Exp_Meter")
  349.       @level_bitmap = Bitmap.new(@level_image.width,@level_image.height)
  350.       @level_sprite = Sprite.new   
  351.       rate = @actor.now_exp.to_f / @actor.next_exp
  352.       rate = 1 if @actor.next_exp == 0
  353.       @level_cw = @level_image.width * rate
  354.       #@level_cw = @level_image.width if @actor.level == 99
  355.       @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
  356.       @level_bitmap.blt(0,0, @level_image, @level_src_rect_back)
  357.       @level_sprite.bitmap = @level_bitmap
  358.       @level_sprite.z = 1 + HUD_Z_PRIORITY
  359.       @level_sprite.x = HUD_POS[0] + EXP_METER_POS[0]
  360.       @level_sprite.y = HUD_POS[1] + EXP_METER_POS[1]      
  361.   end
  362.  
  363.   #--------------------------------------------------------------------------
  364.   # * Dispose
  365.   #--------------------------------------------------------------------------
  366.   def dispose
  367.     return if @actor == nil
  368.     #Hp Number Dispose
  369.     @hp_number_sprite.bitmap.dispose
  370.     @hp_number_sprite.dispose
  371.     @hp_number_bitmap.dispose
  372.     #HP Meter Dispose
  373.     @hp_sprite.bitmap.dispose
  374.     @hp_sprite.dispose
  375.     @hp_bitmap.dispose
  376.     #SP Number Dispose
  377.     @sp_number_sprite.bitmap.dispose
  378.     @sp_number_sprite.dispose
  379.     @sp_number_bitmap.dispose
  380.     #SP Meter Dispose
  381.     @sp_sprite.bitmap.dispose
  382.     @sp_sprite.dispose
  383.     @sp_bitmap.dispose
  384.     #States Dispose
  385.     @states.bitmap.dispose
  386.     @states.dispose
  387.     #Level Meter Dispose
  388.     @level_sprite.bitmap.dispose
  389.     @level_sprite.dispose
  390.     @level_bitmap.dispose
  391.     #Level Number Dispose
  392.     @level_number_sprite.bitmap.dispose
  393.     @level_number_sprite.dispose
  394.     @level_number_bitmap.dispose
  395.     #Layout Dispose
  396.     @layout_sprite.bitmap.dispose
  397.     @layout_sprite.dispose
  398.     #Face Dispose
  399.     @face_sprite.bitmap.dispose
  400.     @face_sprite.dispose
  401.     @face_bitmap.dispose
  402.     super
  403.   end
  404.  
  405.   #--------------------------------------------------------------------------
  406.   # * Update Visible
  407.   #--------------------------------------------------------------------------
  408.   def update_visible
  409.       if $game_switches[DISABLE_HUD_SWITCH] == true
  410.          hud_visible = false
  411.       else
  412.          hud_visible = true
  413.       end  
  414.       @hp_number_sprite.visible = hud_visible
  415.       @hp_sprite.visible = hud_visible
  416.       @sp_number_sprite.visible = hud_visible
  417.       @sp_sprite.visible = hud_visible
  418.       @states.visible = hud_visible
  419.       @level_sprite.visible = hud_visible
  420.       @level_number_sprite.visible = hud_visible
  421.       @layout_sprite.visible = hud_visible
  422.       @face_sprite.visible = hud_visible      
  423.   end
  424.  
  425.   #--------------------------------------------------------------------------
  426.   # * Updade
  427.   #--------------------------------------------------------------------------
  428.   def update
  429.      super
  430.      return if @actor == nil
  431.      update_visible
  432.      hp_number_update if @hp_old != @actor.hp
  433.      hp_number_refresh if @hp_refresh == true or @actor.hp == 0
  434.      sp_number_update if @sp_old != @actor.sp
  435.      sp_number_refresh if @sp_refresh == true
  436.      level_update if @level != @actor.level
  437.      level_up_effect if @level_number_sprite.zoom_x > 1.00  
  438.      exp_update if @exp != @actor.exp
  439.      states_effect if @states.zoom_x > 1.00  
  440.      face_refresh if $game_temp.hud_face_refresh == true or $game_temp.hud_face_time == 1
  441.      face_normal if $game_temp.hud_face_time2 == 1
  442.      face_effect
  443.      states_update
  444.      hp_flow_update
  445.      sp_flow_update
  446.      fade_update if HUD_FADE == true
  447.      $game_temp.hud_face_time -= 1 if $game_temp.hud_face_time > 0
  448.      $game_temp.hud_face_time2 -= 1 if $game_temp.hud_face_time2 > 0
  449.    end
  450.  
  451.   #--------------------------------------------------------------------------
  452.   # fade_update
  453.   #--------------------------------------------------------------------------
  454.   def fade_update
  455.       x = ($game_player.real_x - $game_map.display_x) / 4
  456.       y = ($game_player.real_y - $game_map.display_y) / 4
  457.       if x < @oc_range_x and x > HUD_POS[0] - 5 and
  458.          y > HUD_POS[1] and y < @oc_range_y and @hp_number_sprite.opacity > 120
  459.            @hp_number_sprite.opacity -= 10
  460.            @hp_sprite.opacity -= 10
  461.            @sp_number_sprite.opacity -= 10
  462.            @sp_sprite.opacity -= 10
  463.            @states.opacity -= 10
  464.            @level_sprite.opacity -= 10
  465.            @level_number_sprite.opacity -= 10
  466.            @layout_sprite.opacity -= 10
  467.            @face_sprite.opacity -= 10     
  468.       elsif @hp_number_sprite.opacity < 255
  469.            @hp_number_sprite.opacity += 10
  470.            @hp_sprite.opacity += 10
  471.            @sp_number_sprite.opacity += 10
  472.            @sp_sprite.opacity += 10
  473.            @states.opacity += 10
  474.            @level_sprite.opacity += 10
  475.            @level_number_sprite.opacity += 10
  476.            @layout_sprite.opacity += 10
  477.            @face_sprite.opacity += 10           
  478.       end
  479.   end
  480.  
  481.   #--------------------------------------------------------------------------
  482.   # * face_normal
  483.   #--------------------------------------------------------------------------
  484.   def face_normal
  485.     $game_temp.hud_face_refresh = false
  486.     if @actor.hp < @actor.maxhp * @low_hp / 100
  487.        $game_temp.hud_face_type = 4
  488.     else  
  489.        $game_temp.hud_face_type = 0
  490.     end
  491.     $game_temp.hud_face_time2 = 0
  492.     @face_sprite.bitmap.clear
  493.     @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
  494.     @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)   
  495.     @face_sprite.x = HUD_POS[0] + FACE_POS[0]
  496.   end  
  497.  
  498.   #--------------------------------------------------------------------------
  499.   # * Face Refresh
  500.   #--------------------------------------------------------------------------
  501.    def face_refresh     
  502.        $game_temp.hud_face_refresh = false
  503.        @face_sprite.bitmap.clear
  504.        @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
  505.        @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)
  506.        @face_sprite.x = HUD_POS[0] + FACE_POS[0]
  507.    end
  508.  
  509.   #--------------------------------------------------------------------------
  510.   # * Face Effect
  511.   #--------------------------------------------------------------------------
  512.   def face_effect
  513.     if $game_temp.hud_face_type == 2
  514.        @face_sprite.x = HUD_POS[0] + FACE_POS[0] + rand(10)
  515.        if $game_temp.hud_face_time == 2
  516.          if @actor.hp < @actor.maxhp * @low_hp / 100
  517.             $game_temp.hud_face_type = 4
  518.          else            
  519.             $game_temp.hud_face_type = 0
  520.          end
  521.        end
  522.     end
  523.   end  
  524.  
  525.   #--------------------------------------------------------------------------
  526.   # * States_Update
  527.   #--------------------------------------------------------------------------
  528.   def states_update
  529.     if STATES_POS_CHARACTER == true  
  530.        @states.x = 5 -(13 * @states_x) + $game_player.screen_x
  531.        @states.y = @states_y + $game_player.screen_y
  532.     else
  533.        @states.x = HUD_POS[0] + STATES_POS[0]
  534.        @states.y = @states_y + HUD_POS[1] + STATES_POS[1]
  535.     end
  536.     if FLOAT_STATES == true
  537.        if @states_f == false
  538.           @states_y += 1
  539.           @states_f = true if @states_y > 10
  540.        else   
  541.           @states_y -= 1
  542.           @states_f = false if @states_y < -10               
  543.         end  
  544.      end
  545.      @states.opacity = 155 + rand(100)
  546.      if @states_x != @actor.states.size
  547.         @states_x = @actor.states.size
  548.         @states.bitmap.clear
  549.         @states_max = 0
  550.         sta = []
  551.         for i in @actor.states
  552.            unless @states_max > 3
  553.              sta.push($data_states[i].name)
  554.              image = RPG::Cache.icon(sta[@states_max])
  555.              cw = image.width
  556.              ch = image.height
  557.              @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
  558.              @states_max += 1
  559.            end
  560.          end  
  561.        sta = nil
  562.        @states.zoom_x = 2
  563.        @states.zoom_y = 2
  564.      end
  565.    end
  566.  
  567.   #--------------------------------------------------------------------------
  568.   # * States_Effect
  569.   #--------------------------------------------------------------------------
  570.    def states_effect
  571.        @states.zoom_x -= 0.02
  572.        @states.zoom_y -= 0.02
  573.     if @states.zoom_x <= 1.00     
  574.        @states.zoom_x = 1.00
  575.        @states.zoom_y = 1.00
  576.     end  
  577.    end
  578.  
  579.   #--------------------------------------------------------------------------
  580.   # * hp_number_update
  581.   #--------------------------------------------------------------------------
  582.   def hp_number_update
  583.        @hp_refresh = true
  584.        if @hp_old < @actor.hp
  585.            @hp_ref = 5 * (@actor.hp - @hp_old) / 100
  586.            @hp_ref = 1 if @hp_ref < 1
  587.            @hp += @hp_ref     
  588.            if $game_temp.hud_face_type != 1
  589.               $game_temp.hud_face_type = 1
  590.               $game_temp.hud_face_refresh = true
  591.               @face_sprite.x = HUD_POS[0] + FACE_POS[0]
  592.            end           
  593.            if @hp >= @actor.hp
  594.               @hp_old = @actor.hp
  595.               @hp = @actor.hp   
  596.               @hp_ref = 0
  597.              if @actor.hp < @actor.maxhp * @low_hp / 100 and
  598.                 $game_temp.hud_face_type != 4
  599.                 $game_temp.hud_face_type = 4
  600.                 $game_temp.hud_face_time = 30               
  601.              elsif $game_temp.hud_face_type != 0
  602.                 $game_temp.hud_face_type = 0
  603.                 $game_temp.hud_face_time = 30
  604.              end   
  605.            end  
  606.  
  607.         elsif @hp_old > @actor.hp   
  608.            @hp_refresh = true
  609.            @hp_ref = 5 * (@hp_old - @actor.hp) / 100
  610.            @hp_ref = 1 if @hp_ref < 1
  611.            @hp -= @hp_ref               
  612.            if $game_temp.hud_face_type != 2
  613.               $game_temp.hud_face_type = 2
  614.               $game_temp.hud_face_refresh = true              
  615.            end
  616.            if @hp <= @actor.hp
  617.               @hp_old = @actor.hp
  618.               @hp = @actor.hp   
  619.               @hp_ref = 0
  620.             if $game_temp.hud_face_type != 0
  621.                 $game_temp.hud_face_time = 30
  622.              end   
  623.            end            
  624.         end  
  625.    end  
  626.  
  627.   #--------------------------------------------------------------------------
  628.   # * hp_number_refresh
  629.   #--------------------------------------------------------------------------
  630.   def hp_number_refresh
  631.       @hp_number_sprite.bitmap.clear
  632.       @hp = 0 if @actor.hp == 0
  633.       @hp_number_text = @hp.abs.to_s.split(//)
  634.       lowhp2 = @actor.maxhp * @low_hp / 100
  635.       if @actor.hp < lowhp2
  636.          @health2 = @im_ch
  637.       else
  638.          @health2 = 0
  639.       end
  640.       @hp_health = @health2
  641.       for r in [email]0..@hp_number_text.size[/email] - 1         
  642.            @hp_number_abs = @hp_number_text[r].to_i
  643.            @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
  644.            @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)        
  645.        end  
  646.        @hp_refresh = false if @hp == @actor.hp
  647.   end
  648.  
  649.   #--------------------------------------------------------------------------
  650.   # * Hp Flow Update
  651.   #--------------------------------------------------------------------------
  652.   def hp_flow_update
  653.       @hp_sprite.bitmap.clear
  654.       @hp_width = @hp_range  * @actor.hp / @actor.maxhp
  655.  
  656.           #HP Damage---------------------------------
  657.           valor = (@hp_width_old - @hp_width) * 3 / 100
  658.           valor = 0.5 if valor < 1         
  659.           if @hp_width_old != @hp_width
  660.           @hp_width_old -= valor if @hp_width_old > @hp_width  
  661.           if @hp_width_old < @hp_width
  662.              @hp_width_old = @hp_width
  663.           end      
  664.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
  665.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
  666.           end
  667.  
  668.       #HP Real------------------------------------
  669.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
  670.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
  671.  
  672.       @hp_flow += 5  
  673.       if @hp_flow >= @hp_image.width - @hp_range
  674.          @hp_flow = 0  
  675.       end
  676.   end     
  677.  
  678.   #--------------------------------------------------------------------------
  679.   # * Sp_number_update
  680.   #--------------------------------------------------------------------------
  681.   def sp_number_update
  682.     @sp_refresh = true
  683.     if @sp_old < @actor.sp
  684.        @sp_refresh = true
  685.        @sp_ref = 5 * (@actor.sp - @sp_old) / 100
  686.        @sp_ref = 1 if @sp_ref < 1
  687.        @sp += @sp_ref  
  688.            if $game_temp.hud_face_type != 1
  689.               $game_temp.hud_face_type = 1
  690.               $game_temp.hud_face_refresh = true
  691.               @face_sprite.x = HUD_POS[0] + FACE_POS[0]
  692.            end           
  693.        if @sp >= @actor.sp
  694.           @sp_old = @actor.sp
  695.           @sp = @actor.sp   
  696.           @sp_ref = 0
  697.              if @actor.hp < @actor.maxhp * @low_hp / 100 and
  698.                 $game_temp.hud_face_type != 4
  699.                 $game_temp.hud_face_type = 4
  700.                 $game_temp.hud_face_time = 30               
  701.              elsif $game_temp.hud_face_type != 0
  702.                 $game_temp.hud_face_type = 0
  703.                 $game_temp.hud_face_time = 30
  704.              end           
  705.        end  
  706.     elsif @sp_old >= @actor.sp   
  707.        @sp_ref = 5 * (@sp_old - @actor.sp) / 100
  708.        @sp_ref = 1 if @sp_ref < 1
  709.        @sp -= @sp_ref     
  710.            if $game_temp.hud_face_type != 3
  711.               $game_temp.hud_face_type = 3
  712.               $game_temp.hud_face_refresh = true
  713.            end      
  714.        if @sp <= @actor.sp
  715.           @sp_old = @actor.sp
  716.           @sp = @actor.sp   
  717.           @sp_ref = 0
  718.              if @actor.hp < @actor.maxhp * @low_hp / 100 and
  719.                 $game_temp.hud_face_type != 4
  720.                 $game_temp.hud_face_type = 4
  721.                 $game_temp.hud_face_time = 35               
  722.              elsif $game_temp.hud_face_type != 0
  723.                 $game_temp.hud_face_type = 0
  724.                 $game_temp.hud_face_time = 35
  725.              end              
  726.         end         
  727.     end     
  728.   end  
  729.  
  730.   #--------------------------------------------------------------------------
  731.   # * sp_number_refresh
  732.   #--------------------------------------------------------------------------
  733.   def sp_number_refresh
  734.     @sp_number_sprite.bitmap.clear
  735.     @s = @actor.sp * 100 / @actor.maxsp
  736.     @sp_number_text = @sp.abs.to_s.split(//)
  737.       for r in [email]0..@sp_number_text.size[/email] - 1         
  738.          @sp_number_abs = @sp_number_text[r].to_i
  739.          if @actor.sp <= @actor.maxsp * @low_sp / 100
  740.             @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, @sp_im_ch, @sp_im_cw, @sp_im_ch)  
  741.          else  
  742.             @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
  743.          end
  744.        @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)        
  745.      end  
  746.      @sp_refresh = false if @sp == @actor.sp
  747.   end      
  748.  
  749.   #--------------------------------------------------------------------------
  750.   # * Sp Flow Update
  751.   #--------------------------------------------------------------------------
  752.   def sp_flow_update
  753.       @sp_sprite.bitmap.clear
  754.       @sp_width = @sp_range  * @actor.sp / @actor.maxsp
  755.           #SP Damage---------------------------------
  756.           if @sp_width_old != @sp_width
  757.               valor = (@sp_width_old - @sp_width) * 3 / 100
  758.               valor = 0.5 if valor < 1              
  759.               @sp_width_old -= valor if @sp_width_old > @sp_width  
  760.               if @sp_width_old < @sp_width
  761.                  @sp_width_old = @sp_width
  762.               end      
  763.               @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
  764.               @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
  765.           end
  766.       #SP Real------------------------------------
  767.       @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
  768.       @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
  769.       @sp_flow += 5  
  770.       if @sp_flow >= @sp_image.width - @sp_range
  771.          @sp_flow = 0  
  772.       end
  773.     end  
  774.  
  775.   #--------------------------------------------------------------------------
  776.   # * level_update
  777.   #--------------------------------------------------------------------------
  778.   def level_update
  779.     @level_number_sprite.bitmap.clear
  780.     @level_number_text = @actor.level.abs.to_s.split(//)
  781.     for r in [email]0..@level_number_text.size[/email] - 1
  782.        @level_number_abs = @level_number_text[r].to_i
  783.        @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
  784.        @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)        
  785.     end      
  786.     @level = @actor.level
  787.     @level_number_sprite.zoom_x = 2
  788.     @level_number_sprite.zoom_y = 2
  789.   end
  790.  
  791.   #--------------------------------------------------------------------------
  792.   # * level_update
  793.   #--------------------------------------------------------------------------
  794.   def level_up_effect
  795.     @level_number_sprite.zoom_x -= 0.02
  796.     @level_number_sprite.zoom_y -= 0.02
  797.     if @level_number_sprite.zoom_x <= 1.00     
  798.        @level_number_sprite.zoom_x = 1.00
  799.        @level_number_sprite.zoom_y = 1.00
  800.     end
  801.   end  
  802.  
  803.   #--------------------------------------------------------------------------
  804.   # * exp_update
  805.   #--------------------------------------------------------------------------
  806.   def exp_update
  807.     @level_sprite.bitmap.clear   
  808.     rate = @actor.now_exp.to_f / @actor.next_exp
  809.     rate = 1 if @actor.next_exp == 0
  810.     @level_cw = @level_image.width * rate
  811.     #@level_cw = @level_image.width if @actor.level == 99      
  812.     @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
  813.     @level_bitmap.blt(0,0, @level_image, @level_src_rect_back)  
  814.     @exp = @actor.exp
  815.   end  
  816. end
  817.  
  818. #===============================================================================
  819. # ** Spriteset_Map
  820. #===============================================================================
  821. class Spriteset_Map
  822.   #--------------------------------------------------------------------------
  823.   # * initialize
  824.   #--------------------------------------------------------------------------
  825.   alias mog_achud_initialize initialize
  826.   def initialize
  827.       @acthud = Active_Hud.new(@viewport3)   
  828.       mog_achud_initialize
  829.   end
  830.  
  831.   #--------------------------------------------------------------------------
  832.   # * Dispose
  833.   #--------------------------------------------------------------------------
  834.   alias mog_achud_dispose dispose
  835.   def dispose
  836.       mog_achud_dispose
  837.       @acthud.dispose
  838.   end  
  839.  
  840.   #--------------------------------------------------------------------------
  841.   # * Frame Update
  842.   #--------------------------------------------------------------------------
  843.   alias mog_achud_update update
  844.   def update
  845.       mog_achud_update
  846.       @acthud.update
  847.   end      
  848. end   
  849.  
  850. $mog_rgss_active_hud = true
  
作者: 弗雷德    时间: 2013-6-18 13:50
68行DISABLE_HUD_SWITCH = 50
这里已经有设定开关了,默认是50号开关。
作者: 亿万星辰    时间: 2013-6-18 14:11
# Switch ID to disable the HUD..........................................[SWITCH]


亲,从来都不看自带说明书的么?
作者: wwwcctvty    时间: 2013-6-18 17:30
看不懂鸟语的路过、、、、、、




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1