Project1
标题: 请高手帮助我修改一下脚本 [打印本页]
作者: 吸血鬼之妻 时间: 2012-9-2 19:50
标题: 请高手帮助我修改一下脚本
把这个脚本变成也能显示敌人的伤害数值- #==============================================================================
- # MOG VX - Combo Display V1.2
- #==============================================================================
- # By Moghunter
- # http://www.atelier-rgss.com/
- #
- # ■ Apresenta a quantidade de acertos no alvo e o dano maximo.
- # ---------------------------------------------------------------------------
- # é necessário ter os arquivos imagens na pasta Graphics/Systems.
- # Combo_Damage.png
- # Combo_Hud.png
- # Combo_Number.png
- # ---------------------------------------------------------------------------
- module MOG
- #Ativar tempo para fazer combo.
- TIME_COUNT = true
- # Tempo para fazer um combo. (60 = 1s) #180
- COMBO_TIME = 300
- # Cancelar a contagem de Combo caso o inimigo acertar o herói.
- ENEMY_CANCEL_COMBO = true
- # Posi??o geral das imagens. X Y
- COMBO_POSITION = [350,20]
- # Posi??o do número de HITS. X Y
- HIT_POSITION = [15,23]
- # Posi??o do número de dano. X Y
- TOTAL_POSITION = [60,-17]
- end
- #===============================================================================
- # ■ Game_Temp
- #===============================================================================
- class Game_Temp
- attr_accessor :combo_hit
- attr_accessor :max_damage
- attr_accessor :combo_time
- #--------------------------------------------------------------------------
- # ● initialize
- #--------------------------------------------------------------------------
- alias mog_combo_display_initialize initialize
- def initialize
- @combo_hit = 0
- @max_damage = 0
- @combo_time = 0
- mog_combo_display_initialize
- end
- end
- #===============================================================================
- # ■ Game_Battler
- #===============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● execute_damage
- #--------------------------------------------------------------------------
- alias mog_combo_display_execute_damage execute_damage
- def execute_damage(user)
- mog_combo_display_execute_damage(user)
- if @hp_damage > 0
- if user.is_a?(Game_Actor)
- $game_temp.combo_hit += 1
- $game_temp.max_damage += @hp_damage
- $game_temp.combo_time = MOG::COMBO_TIME
- else
- $game_temp.combo_hit += 1
- $game_temp.max_damage += @hp_damage
- $game_temp.combo_time = MOG::COMBO_TIME
- $game_temp.combo_time = 0 if MOG::ENEMY_CANCEL_COMBO == true
- end
- end
- end
- end
- #===============================================================================
- # Combo_Sprite_Hud
- #===============================================================================
- class Combo_Sprite_Hud < Sprite
- attr_accessor :combo_wait
- include MOG
- #--------------------------------------------------------------------------
- # Initialize
- #--------------------------------------------------------------------------
- def initialize
- super
- @combo_wait = false
- $game_temp.combo_time = 0
- $game_temp.combo_hit = 0
- $game_temp.max_damage = 0
- @combo_hit_old = 0
- @animation_speed = 0
- @pos_x = COMBO_POSITION[0]
- @pos_x_fix = 0
- @pos_y = COMBO_POSITION[1]
- create_combo_sprite
- create_total_damage_sprite
- create_hud_sprite
- end
- #--------------------------------------------------------------------------
- # create_hud_sprite
- #--------------------------------------------------------------------------
- def create_hud_sprite
- @hud = Sprite.new
- @hud.bitmap = Cache.system("Combo_HUD")
- @hud.z = 108
- @hud.x = COMBO_POSITION[0]
- @hud.y = COMBO_POSITION[1]
- @hud.opacity = 250
- @hud.visible = false
- end
- #--------------------------------------------------------------------------
- # create_total_damage_sprite
- #--------------------------------------------------------------------------
- def create_total_damage_sprite
- @total_image = Cache.system("Combo_damage")
- @total_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
- @total = Sprite.new
- @total.bitmap = @total_bitmap
- @total_im_cw = @total_image.width / 10
- @total_im_ch = @total_image.height+100
- @total_number_text = $game_temp.max_damage.abs.to_s.split(//)
- for r in 0..@total_number_text.size - 1
- @total_number_abs = @total_number_text[r].to_i
- @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
- @total_bitmap.blt(40 + ((@total_im_cw - 12) * r), 0, @total_image, @total_src_rect)
- end
- @total.z = 109
- @total_orig_x = COMBO_POSITION[0] + TOTAL_POSITION[0]
- @total_orig_y = COMBO_POSITION[1] + TOTAL_POSITION[1]
- @total.x = @total_orig_x
- @total.y = @total_orig_y
- @total.zoom_x = 1.00
- @total.zoom_y = 1.00
- @total.opacity = 250
- @total.visible = false
- end
- #--------------------------------------------------------------------------
- # create_combo_number
- #--------------------------------------------------------------------------
- def create_combo_sprite
- @combo_image = Cache.system("Combo_Number")
- @combo_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
- @combo = Sprite.new
- @combo.bitmap = @combo_bitmap
- @combo_im_cw = @combo_image.width / 10
- @combo_im_ch = @combo_image.height
- @combo_number_text = $game_temp.combo_hit.abs.to_s.split(//)
- for r in 0..@combo_number_text.size - 1
- @combo_number_abs = @combo_number_text[r].to_i
- @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
- @combo_bitmap.blt(40 + ((@combo_im_cw - 12) * r), 0, @combo_image, @combo_src_rect)
- end
- @combo.z = 109
- @combo_orig_x = COMBO_POSITION[0] + HIT_POSITION[0]
- @combo_orig_y = COMBO_POSITION[1] + HIT_POSITION[1]
- @pos_x_fix = (@combo_im_cw / 2 * @combo_number_text.size)
- @combo.x = @combo_orig_x - @pos_x_fix
- @combo.y = @combo_orig_y
- @combo.zoom_x = 1.00
- @combo.zoom_y = 1.00
- @combo.opacity = 250
- @combo.visible = false
- end
- #--------------------------------------------------------------------------
- # Dispose
- #--------------------------------------------------------------------------
- def dispose
- @combo_bitmap.dispose
- @combo.bitmap.dispose
- @combo.dispose
- @hud.bitmap.dispose
- @hud.dispose
- @total_bitmap.dispose
- @total.bitmap.dispose
- @total.dispose
- super
- end
- #--------------------------------------------------------------------------
- # Refresh
- #--------------------------------------------------------------------------
- def refresh
- @combo_hit_old = $game_temp.combo_hit
- @combo.bitmap.clear
- @total.bitmap.clear
- @combo_number_text = $game_temp.combo_hit.abs.to_s.split(//)
- for r in 0..@combo_number_text.size - 1
- @combo_number_abs = @combo_number_text[r].to_i
- @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
- @combo_bitmap.blt(40 + ((@combo_im_cw - 12) * r), 0, @combo_image, @combo_src_rect)
- end
- @total_number_text = $game_temp.max_damage.abs.to_s.split(//)
- for r in 0..@total_number_text.size - 1
- @total_number_abs = @total_number_text[r].to_i
- @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
- @total_bitmap.blt(40 + ((@total_im_cw - 12) * r), 20, @total_image, @total_src_rect)
- end
- #Combo Position
- @pos_x_fix = (@combo_im_cw / 2 * @combo_number_text.size)
- @combo.x = @combo_orig_x - @pos_x_fix
- @combo.y = @combo_orig_y
- @combo.zoom_x = 2
- @combo.zoom_y = 2
- @combo.opacity = 70
- @combo.visible = true
- #Total Position
- @total.x = @total_orig_x + 20
- @total.y = @total_orig_y
- @total.opacity = 100
- @total.visible = true
- #Hud Position
- @hud.x = COMBO_POSITION[0]
- @hud.y = COMBO_POSITION[1]
- @hud.opacity = 255
- @hud.visible = true
- end
- #--------------------------------------------------------------------------
- # Slide Update
- #--------------------------------------------------------------------------
- def slide_update
- return if @combo.visible == false
- if $game_temp.combo_time > 0 and @combo_wait == false
- $game_temp.combo_time -= 1 if TIME_COUNT == true
- end
- if $game_temp.combo_time > 0 and $game_temp.combo_hit > 0
- #Total Damage
- if @total.x > @total_orig_x
- @total.x -= 1
- @total.opacity += 8
- else
- @total.x = @total_orig_x
- @total.opacity = 255
- end
- #Combo
- if @combo.zoom_x > 1.00
- @combo.zoom_x -= 0.05
- @combo.zoom_y -= 0.05
- @combo.opacity += 8
- else
- @combo.zoom_x = 1
- @combo.zoom_y = 1
- @combo.opacity = 255
- @combo.x = @combo_orig_x - @pos_x_fix
- @combo.y = @combo_orig_y
- end
- elsif $game_temp.combo_time == 0 and @combo.visible == true
- @combo.x -= 5
- @combo.opacity -= 10
- @total.x -= 3
- @total.opacity -= 10
- @hud.x += 5
- @hud.opacity -= 10
- $game_temp.combo_hit = 0
- @combo_hit_old = $game_temp.combo_hit
- $game_temp.max_damage = 0
- if @combo.opacity <= 0
- @combo.visible = false
- @total.visible = false
- @hud.visible = false
- end
- end
- end
- #--------------------------------------------------------------------------
- # Cancel
- #--------------------------------------------------------------------------
- def cancel
- $game_temp.combo_hit = 0
- $game_temp.max_damage = 0
- $game_temp.combo_time = 0
- @combo_hit_old = $game_temp.combo_hit
- end
- #--------------------------------------------------------------------------
- # Clear
- #--------------------------------------------------------------------------
- def clear
- $game_temp.combo_time = 0
- end
- #--------------------------------------------------------------------------
- # Update
- #--------------------------------------------------------------------------
- def update
- super
- refresh if $game_temp.combo_hit != @combo_hit_old
- slide_update
- end
- end
- #===============================================================================
- # Scene_Battle
- #===============================================================================
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # ● start
- #--------------------------------------------------------------------------
- alias mog_combo_start start
- def start
- create_cb_sprite
- mog_combo_start
- end
- #--------------------------------------------------------------------------
- # ● create_cb_sprite
- #--------------------------------------------------------------------------
- def create_cb_sprite
- @combo_sprite = Combo_Sprite_Hud.new
- end
- #--------------------------------------------------------------------------
- # ● dispose_info_viewport
- #--------------------------------------------------------------------------
- alias mog_combo_dispose_info_viewport dispose_info_viewport
- def dispose_info_viewport
- mog_combo_dispose_info_viewport
- @combo_sprite.dispose
- end
- #--------------------------------------------------------------------------
- # ● update_basic
- #--------------------------------------------------------------------------
- alias mog_combo_update_basic update_basic
- def update_basic(main = false)
- mog_combo_update_basic(main)
- @combo_sprite.update
- end
- #--------------------------------------------------------------------------
- # ● wait_for_animation
- #--------------------------------------------------------------------------
- alias mog_combo_wait_for_animation wait_for_animation
- def wait_for_animation
- mog_combo_wait_for_animation
- while @spriteset.animation?
- @combo_sprite.combo_wait = true
- end
- @combo_sprite.combo_wait = false
- end
- #--------------------------------------------------------------------------
- # ● mog_combo_process_victory
- #--------------------------------------------------------------------------
- alias mog_combo_process_victory process_victory
- def process_victory
- @combo_sprite.clear
- mog_combo_process_victory
- end
- end
- $mog_rgssvx_combo_display = true
复制代码