设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1815|回复: 4
打印 上一主题 下一主题

[已经解决] VA如何像XP一样在战斗时显示伤害、恢复的数值?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
168
在线时间
45 小时
注册时间
2012-9-4
帖子
30
跳转到指定楼层
1
发表于 2013-7-10 20:13:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我想在攻击敌人时敌人图像上出现数字……怎么弄

Lv1.梦旅人

梦石
0
星屑
50
在线时间
73 小时
注册时间
2013-2-18
帖子
56
2
发表于 2013-7-12 14:44:40 | 只看该作者
  1. #==============================================================================
  2. # +++ MOG - DAMAGEPOPUP  (v2.3) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com/
  6. #==============================================================================
  7. # Apresenta danos dos alvos em imagens.
  8. #==============================================================================
  9. # Será necessário ter a imagem Damage_Number.png na pasta /GRAPHICS/SYSTEM/
  10. #==============================================================================

  11. #==============================================================================
  12. # DAMAGE POPUP ON CHARACTERS (Events)
  13. #==============================================================================
  14. # Basta usar o código abaixo para apresentar o dano nos eventos.
  15. #
  16. # damage_popup(STRING)
  17. #
  18. # STRING = valor do dano (Texto).
  19. #
  20. # Para ativar o dano no jogador use o código abaixo
  21. #
  22. # $game_player.damage_popup(STRING)
  23. #
  24. #==============================================================================

  25. #==============================================================================
  26. # ● Histórico (Version History)
  27. #==============================================================================
  28. # v 2.3 - Corrigido o erro de posição nos danos de MP.
  29. # v 2.2 - Compatibilidade com o script Active Bonus Gauge.
  30. # v 2.0 - Apresentar o texto de recuperar nos efeitos de regenerar.
  31. # v 1.9 - Corrigido o erro de apresentar as condições sendo removidas quando a
  32. #         batalha termina.
  33. #       - Corrigido a centralização da string em danos do tipo texto.
  34. #       - Corrigido o "erro" de apresentar a condição de Death.
  35. # v 1.8 - Corrigido o erro de apresentar os textos das condições (Status) quando
  36. #         o battler estiver morto.
  37. # v 1.7 - Melhor codificação e compatibilidade.
  38. # v 1.6 - Corrigido o erro da opacidade do dano em EXP e GOLD.
  39. # v 1.5 - Possibilidade de ativar o dano nos eventos no mapa.
  40. # v 1.4 - Corrigido o erro do efeito drain.
  41. # v 1.3 - Corrigido o erro de crash randômico. (relativo a dispose de imagem.)
  42. # v 1.2 - Corrigido o limite do tamanho da string em palavras longas.
  43. # v 1.1 - Opção de definir a prioridade do dano.
  44. # v 1.0 - Primeiro lançamento.
  45. #==============================================================================

  46. module MOG_DAMAGEPOP
  47.   #Definição do espaço entre a palavra MP/TP e o numero de dano.
  48.   MP_TP_STRING_SPACE = 32
  49.   #Correção da posição do dano.
  50.   DAMAGE_POSITION_CORRECTION = [0 ,0]
  51.   #Apresentar a exp e ouro do inimigo.
  52.   EXP_POPUP = true
  53.   #Definição da prioridade do dano na tela.
  54.   DAMAGE_Z = 60
  55. end

  56. #==============================================================================
  57. # ■ Game_Battler
  58. #==============================================================================
  59. class Game_Battler < Game_BattlerBase
  60.   
  61.   attr_accessor :damage
  62.   
  63.   #--------------------------------------------------------------------------
  64.   # ● Initialize
  65.   #--------------------------------------------------------------------------         
  66.   alias mog_damage_sprite_initialize initialize
  67.   def initialize      
  68.       @damage = []
  69.       mog_damage_sprite_initialize
  70.   end  
  71.    
  72.   #--------------------------------------------------------------------------
  73.   # ● Item Apply
  74.   #--------------------------------------------------------------------------  
  75.    alias mog_damage_pop_item_apply item_apply
  76.    def item_apply(user, item)
  77.        mog_damage_pop_item_apply(user, item)
  78.        if @result.missed
  79.           self.damage.push(["Missed","Missed"]) if self.hp > 0
  80.        elsif @result.evaded
  81.           self.damage.push(["Evaded","Evaded"]) if self.hp > 0
  82.        end  
  83.    end

  84.   #--------------------------------------------------------------------------
  85.   # ● Regenerate HP
  86.   #--------------------------------------------------------------------------
  87.   alias mog_damage_pop_regenerate_hp regenerate_hp
  88.   def regenerate_hp
  89.       mog_damage_pop_regenerate_hp
  90.       self.damage.push(["Regenerate",""]) if @result.hp_damage < 0  
  91.       self.damage.push([@result.hp_damage,"HP"]) if @result.hp_damage != 0      
  92.   end

  93.   #--------------------------------------------------------------------------
  94.   # ● Regenerate MP
  95.   #--------------------------------------------------------------------------
  96.   alias mog_damage_pop_regenerate_mp regenerate_mp
  97.   def regenerate_mp
  98.       mog_damage_pop_regenerate_mp
  99. #      self.damage.push(["Regenerate",""]) if @result.mp_damage < 0  
  100.       self.damage.push([@result.mp_damage,"MP"]) if @result.mp_damage != 0
  101.   end
  102.   
  103.   #--------------------------------------------------------------------------
  104.   # ● Regenerate TP
  105.   #--------------------------------------------------------------------------
  106.   alias mog_damage_pop_regenerate_tp regenerate_tp
  107.   def regenerate_tp
  108.       mog_damage_pop_regenerate_tp
  109.       tp_damage = 100 * trg
  110.       self.damage.push([tp_damage,"TP"]) if tp_damage != 0
  111.   end

  112.   #--------------------------------------------------------------------------
  113.   # ● Added New State
  114.   #--------------------------------------------------------------------------  
  115.   alias mog_damage_pop_add_new_state add_new_state
  116.   def add_new_state(state_id)
  117.       mog_damage_pop_add_new_state(state_id)
  118. #      unless guard_feature?(state_id)
  119.          st = $data_states[state_id]
  120.          self.damage.push([st.name.to_s,"States Plus",false,st.icon_index]) if self.hp > 0
  121. #    end   
  122.   end
  123.   
  124.   #--------------------------------------------------------------------------
  125.   # ● Guard Feature?
  126.   #--------------------------------------------------------------------------   
  127.   def guard_feature?(state_id)
  128.       st = $data_states[state_id]
  129.       for i in st.features
  130.           return true if i.code == 62 and i.data_id == 1
  131.       end
  132.       return false
  133.   end
  134.    
  135.   #--------------------------------------------------------------------------
  136.   # ● Remove State
  137.   #--------------------------------------------------------------------------  
  138.   alias mog_damage_pop_remove_state remove_state
  139.   def remove_state(state_id)
  140.       if state?(state_id)
  141.          unless BattleManager.escape?
  142.             st = $data_states[state_id]
  143.             self.damage.push([st.name.to_s,"States Minus",false,st.icon_index])  if self.hp > 0
  144.          end   
  145.       end
  146.       mog_damage_pop_remove_state(state_id)
  147.   end      
  148.   
  149.   #--------------------------------------------------------------------------
  150.   # ● Update State Turns
  151.   #--------------------------------------------------------------------------  
  152.   alias mog_damage_popup_update_state_turns update_state_turns
  153.   def update_state_turns
  154.       mog_damage_popup_update_state_turns
  155.       states.each do |state|
  156.         for features in state.features
  157.             if features.data_id == 7 or features.data_id == 8 or
  158.                features.data_id == 9               
  159.           #     self.damage.push([state.name.to_s + " Effect","States Effect"]) if self.hp > 0
  160.             end  
  161.         end
  162.       end  
  163.   end   
  164.   
  165.   #--------------------------------------------------------------------------
  166.   # ● Execute Damage
  167.   #--------------------------------------------------------------------------   
  168.   alias mog_damage_pop_execute_damage execute_damage
  169.   def execute_damage(user)
  170.       mog_damage_pop_execute_damage(user)
  171.       user.damage.push([[email protected]_drain,"HP",@result.critical]) if @result.hp_drain != 0
  172.       user.damage.push([[email protected]_drain,"MP",@result.critical]) if @result.mp_drain != 0
  173.   end  
  174.   
  175. end

  176. #==============================================================================
  177. # ■ BattleManager
  178. #==============================================================================
  179. module BattleManager

  180.   #--------------------------------------------------------------------------
  181.   # ● Escape?
  182.   #--------------------------------------------------------------------------
  183.   def self.escape?
  184.       @phase == nil
  185.   end
  186.   
  187. end  
  188. #==============================================================================
  189. # ■ Game_ActionResult
  190. #==============================================================================
  191. class Game_ActionResult
  192.   #--------------------------------------------------------------------------
  193.   # ● HP Damage Text
  194.   #--------------------------------------------------------------------------
  195.   alias mog_damage_pop_hp_damage_text hp_damage_text
  196.   def hp_damage_text
  197.       if @hp_drain > 0
  198.          @battler.damage.push([@hp_drain,"HP",@critical])
  199.       elsif @hp_damage >= 0
  200.          @battler.damage.push([@hp_damage,"HP",@critical])
  201.       elsif @hp_damage < 0
  202.          @battler.damage.push([@hp_damage,"HP",@critical])
  203.       end   
  204.       mog_damage_pop_hp_damage_text     
  205.   end
  206.   
  207.   #--------------------------------------------------------------------------
  208.   # ● MP Damage Text
  209.   #--------------------------------------------------------------------------
  210.   alias mog_damage_pop_mp_damage_text mp_damage_text
  211.   def mp_damage_text
  212.       if @mp_drain > 0
  213.          @battler.damage.push([@mp_drain,"MP",@critical])
  214.       elsif @mp_damage > 0
  215.          @battler.damage.push([@mp_damage,"MP",@critical])
  216.       elsif @mp_damage < 0   
  217.          @battler.damage.push([@mp_damage,"MP",@critical])
  218.       end   
  219.       mog_damage_pop_mp_damage_text
  220.   end

  221.   #--------------------------------------------------------------------------
  222.   # ● TP Damage Text
  223.   #--------------------------------------------------------------------------
  224.   alias mog_damage_pop_tp_damage_text tp_damage_text
  225.   def tp_damage_text
  226.       if @tp_damage > 0
  227.          @battler.damage.push([@tp_damage,"TP",@critical])
  228.       elsif @tp_damage < 0
  229.          @battler.damage.push([@tp_damage,"TP",@critical])
  230.       end   
  231.       mog_damage_pop_tp_damage_text
  232.   end
  233. end

  234. #==============================================================================
  235. # ■ Game Actor
  236. #==============================================================================
  237. class Game_Actor < Game_Battler
  238.    
  239.   #--------------------------------------------------------------------------
  240.   # ● Level UP
  241.   #--------------------------------------------------------------------------         
  242.    alias mog_damage_pop_level_up level_up
  243.    def level_up
  244.        mog_damage_pop_level_up
  245.        @damage.push(["Level UP","Level_UP"])# unless @damage[0].include?("Level UP")#unless $mog_battle_result != nil      
  246.    end
  247. end   

  248. #==============================================================================
  249. # ■ Scene_Battle
  250. #==============================================================================
  251. class Scene_Battle < Scene_Base  
  252.   
  253.   #--------------------------------------------------------------------------
  254.   # ● Invoke Counter Attack
  255.   #--------------------------------------------------------------------------        
  256.   alias mog_damage_popup_invoke_counter_attack invoke_counter_attack
  257.   def invoke_counter_attack(target, item)
  258.       mog_damage_popup_invoke_counter_attack(target, item)
  259.       target.damage.push(["Counter","Counter"])
  260.   end  
  261.   
  262.   #--------------------------------------------------------------------------
  263.   # ● Invoke Counter Attack
  264.   #--------------------------------------------------------------------------        
  265.   alias mog_damage_popup_invoke_magic_reflection invoke_magic_reflection
  266.   def invoke_magic_reflection(target, item)
  267.       mog_damage_popup_invoke_magic_reflection(target, item)
  268.       target.damage.push(["Reflection","Reflection"])
  269.   end  
  270.   
  271. end

  272. #==============================================================================
  273. # ■ Damage Sprite
  274. #==============================================================================
  275. class Damage_Sprite < Sprite
  276.    include MOG_DAMAGEPOP
  277.    attr_accessor :duration
  278.   
  279.   #--------------------------------------------------------------------------
  280.   # ● Initialize
  281.   #--------------------------------------------------------------------------      
  282.   def initialize(viewport = nil,x = 0,y = 0,value = 0,index)
  283.       super(viewport)
  284.       dispose
  285.       @image = Cache.system("Damage_Number")      
  286.       @x = x
  287.       @y = y
  288.       @value = value[0]
  289.       @type = value[1]
  290.       @critical = (value[2] and @value.to_i >= 0) ? true : false
  291.       @state_index = value[3]
  292.       @duration = 80 + (10 * index)
  293.       @cw = @image.width / 10
  294.       @ch = @image.height / 7
  295.       @center_x = 0
  296.       @mp_space = (@type == "MP" or @type == "TP") ? MP_TP_STRING_SPACE : 0      
  297.       if @value.is_a?(Numeric)
  298.          create_damage_number
  299.       elsif @value == "Missed" or  @value == "Evaded"  
  300.          create_damage_miss
  301.       else   
  302.          create_damage_string
  303.       end
  304.       self.x =  @x - (@center_x * (@cw / 2)) + DAMAGE_POSITION_CORRECTION[0]
  305.       self.y = @y + DAMAGE_POSITION_CORRECTION[1]
  306.       self.opacity = 1
  307.       zx = self.viewport != nil ? self.viewport.z : 0
  308.       self.z = DAMAGE_Z + zx
  309.       self.visible = false
  310.       damage_dir = rand(2)
  311.       @speed_x = straight_pop? ? 0 : damage_dir == 1 ? -rand(2) : rand(2)
  312.       @speed_y = 0
  313.   end
  314.   
  315.   #--------------------------------------------------------------------------
  316.   # ● Straight Pop
  317.   #--------------------------------------------------------------------------               
  318.   def straight_pop?
  319.       case @type
  320.          when "Gold";        return true
  321.          when "Exp";         return true
  322.          when "Level_UP";    return true
  323.       end
  324.       return false
  325.   end  
  326.   
  327.   #--------------------------------------------------------------------------
  328.   # ● Create Damage Number
  329.   #--------------------------------------------------------------------------            
  330.   def create_damage_miss
  331.       dam = @value == "Missed" ? 5 : 6
  332.       self.bitmap = Bitmap.new(@cw * 5, @ch)  
  333.       src_rect = Rect.new(0, dam * @ch,  @cw * 10, @ch)
  334.       self.bitmap.blt(0, 0, @image, src_rect)
  335.       @center_x += 5
  336.   end
  337.   
  338.   #--------------------------------------------------------------------------
  339.   # ● Create Damage Number
  340.   #--------------------------------------------------------------------------           
  341.   def create_damage_number
  342.       dam = @critical ? @ch * 2 : @value >= 0 ? 0 : @ch
  343.       f = @value >= 0 ? 0 : 1
  344.       ve = @value >= 0 ? 10 : 0
  345.       number_value = @value.to_s.split(//)
  346.       self.bitmap = Bitmap.new(@mp_space + (@cw * number_value.size + 16),@ch * 4)     
  347.       for r in f...number_value.size        
  348.          number_value_abs = number_value[r].to_i
  349.          src_rect = Rect.new(@cw * number_value_abs, dam, @cw, @ch)
  350.          self.bitmap.blt(@mp_space + ve + (@cw *  r), 0, @image, src_rect)
  351.          @center_x += 1
  352.       end
  353.       if @type == "MP" or @type == "TP"
  354.          ty = @type == "MP" ? 3 : 4
  355.          src_rect = Rect.new(0, @ch * ty, @cw * 10, @ch)
  356.          self.bitmap.blt(0, 0, @image, src_rect)         
  357.          @center_x += 2
  358.       end
  359.       @center_x += 1 if @value < 0
  360.   end  
  361.   
  362.   #--------------------------------------------------------------------------
  363.   # ● Create Damage String
  364.   #--------------------------------------------------------------------------            
  365.   def create_damage_string
  366.       string_size = @value.to_s.split(//)
  367.       @stg_size = string_size.size > 0 ? ((1 + string_size.size) * 24) : 32      
  368.       self.bitmap = Bitmap.new(@stg_size,32)
  369.       self.bitmap.font.size = 28
  370.       self.bitmap.font.bold = true
  371.       @center_x = 2 + (string_size.size / 2)
  372.       if @state_index != nil
  373.          draw_states
  374.        else
  375.          execute_font_color
  376.          damage_string = @value.to_s         
  377.          self.bitmap.draw_text(0, 0, @stg_size, 32, damage_string,0)
  378.       end
  379.   end  
  380.   
  381.   #--------------------------------------------------------------------------
  382.   # ● Execute Font Color
  383.   #--------------------------------------------------------------------------               
  384.   def execute_font_color
  385.       case @type
  386.            when "Gold"
  387.                @duration = 160
  388.                self.bitmap.font.color = Color.new(255,255,100)
  389.            when "Exp"
  390.                @duration = 120
  391.                self.bitmap.font.color = Color.new(0,255,100)
  392.            when "Level_UP"   
  393.                self.bitmap.font.color = Color.new(50,155,255)  
  394.            else  
  395.                self.bitmap.font.color = Color.new(255,255,255)
  396.       end
  397.   end
  398.   
  399.   #--------------------------------------------------------------------------
  400.   # ● Draw States
  401.   #--------------------------------------------------------------------------               
  402.   def draw_states
  403.       icon_image = Cache.system("Iconset")
  404.       if @type == "States Plus"
  405.          self.bitmap.font.color = Color.new(200,150,50)
  406.          damage_string = "+ " + @value.to_s
  407.       elsif @type == "States Minus"
  408.           self.bitmap.font.color = Color.new(100,100,100)   
  409.          damage_string = "- " + @value.to_s
  410.       end        
  411.       rect = Rect.new(@state_index % 16 * 24, @state_index / 16 * 24, 24, 24)
  412.       self.bitmap.blt(0, 0, icon_image, rect)  
  413.       self.bitmap.draw_text(26, 0, @stg_size - 24, 32, damage_string,0)
  414.       @center_x += 5
  415.       icon_image.dispose
  416.       icon_image = nil
  417.   end  
  418.   
  419.   #--------------------------------------------------------------------------
  420.   # ● Dispose
  421.   #--------------------------------------------------------------------------         
  422.   def dispose
  423.       return if @image == nil
  424.       @image.dispose
  425.       @image = nil
  426.       self.bitmap.dispose
  427.       self.bitmap = nil
  428.       @duration = -1
  429.   end  
  430.   
  431.   #--------------------------------------------------------------------------
  432.   # ● Update
  433.   #--------------------------------------------------------------------------         
  434.   def update
  435.       return if self.bitmap == nil   
  436.       @duration -= 1 if @duration > 0
  437.       self.visible = @duration > 80 ? false : true
  438.       case @duration
  439.          when 65..80
  440.             self.opacity += 5
  441.             self.x += @speed_x
  442.             self.y -= 5
  443.             critical_effect(0.05)
  444.          when 50..65  
  445.              self.opacity = 255
  446.              self.y -= 3
  447.              self.x += @speed_x
  448.              critical_effect(0.05)
  449.          when 35..50
  450.              self.opacity = 255
  451.              self.y += 3
  452.              critical_effect(-0.05)
  453.          when 0..35  
  454.              self.opacity -= 7
  455.              self.y -= 1
  456.              critical_effect(-0.05)
  457.       end
  458.       dispose if self.opacity <= 0  
  459.   end
  460.    
  461.   #--------------------------------------------------------------------------
  462.   # ● Critical Effect
  463.   #--------------------------------------------------------------------------           
  464.   def critical_effect(value)
  465.       return if !@critical
  466.       self.zoom_x += value
  467.       self.zoom_y = self.zoom_x      
  468.   end
  469.   
  470. end

  471. #==============================================================================
  472. # ■ Sprite Battle
  473. #==============================================================================
  474. class Sprite_Battler < Sprite_Base
  475.   
  476.   #--------------------------------------------------------------------------
  477.   # ● Initialize
  478.   #--------------------------------------------------------------------------
  479.   alias mog_damagepop_initialize initialize
  480.   def initialize(viewport, battler = nil)
  481.       mog_damagepop_initialize(viewport, battler)
  482.       create_damage_sprite
  483.   end  
  484.    
  485.   #--------------------------------------------------------------------------
  486.   # ● Create Damage Sprite
  487.   #--------------------------------------------------------------------------           
  488.   def create_damage_sprite
  489.       dispose_damage_sprite
  490.       @damage_sprites = []
  491.   end
  492.   
  493.   #--------------------------------------------------------------------------
  494.   # ● Dispose
  495.   #--------------------------------------------------------------------------            
  496.   alias mog_damge_sprite_dispose dispose
  497.   def dispose
  498.       mog_damge_sprite_dispose
  499.       dispose_damage_sprite
  500.   end  
  501.   
  502.   #--------------------------------------------------------------------------
  503.   # ● Dispose Damage Sprite
  504.   #--------------------------------------------------------------------------               
  505.   def dispose_damage_sprite
  506.       return if @damage_sprites == nil
  507.       @damage_sprites.each {|sprite| sprite.dispose }
  508.       @damage_sprites.clear
  509.       @battler.damage.clear if [url=home.php?mod=space&uid=133701]@battler[/url] != nil
  510.   end  
  511.   
  512.   #--------------------------------------------------------------------------
  513.   # ● Update
  514.   #--------------------------------------------------------------------------                 
  515.   alias mog_damage_sprite_update update
  516.   def update
  517.       mog_damage_sprite_update
  518.       update_damage_sprite
  519.   end
  520.    
  521.   #--------------------------------------------------------------------------
  522.   # ● Create Damage
  523.   #--------------------------------------------------------------------------                    
  524.   def create_damage
  525.       return if [email protected]_sprite?
  526.       index = 0
  527.       sx = @battler.screen_x != nil ? @battler.screen_x : self.x
  528.       sy = @battler.screen_y != nil ? @battler.screen_y : self.y
  529.       @damage_sprites = [] if @damage_sprites == nil
  530.       for i in @battler.damage
  531.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  532.           index += 1
  533.       end
  534.       @battler.damage.clear
  535.   end
  536.   
  537.   #--------------------------------------------------------------------------
  538.   # ● Update Damage Sprite
  539.   #--------------------------------------------------------------------------                  
  540.   def update_damage_sprite
  541.       return if @damage_sprites == nil or @battler == nil
  542.       if @initial_damage == nil
  543.          @initial_damage = true
  544.          @battler.damage.clear
  545.          return
  546.       end      
  547.       create_damage if [email protected]?
  548.       if !@damage_sprites.empty?
  549.           clear = 0
  550.           for sprite in @damage_sprites
  551.               sprite.update
  552.               if sprite.duration == 0
  553.                  sprite.dispose
  554.               end   
  555.               clear += 1 if sprite.duration > 0
  556.           end
  557.           clear_damage if clear == 0
  558.       end
  559.   end  
  560.   
  561.   #--------------------------------------------------------------------------
  562.   # ● Update Damage Sprite
  563.   #--------------------------------------------------------------------------                     
  564.   def clear_damage
  565.       @damage_sprites.each {|sprite| sprite.dispose }
  566.       @damage_sprites.clear
  567.   end  
  568.   
  569.   #--------------------------------------------------------------------------
  570.   # ● Update Collapse
  571.   #--------------------------------------------------------------------------  
  572.   alias mog_damage_pop_update_collapse update_collapse
  573.   def update_collapse
  574.       mog_damage_pop_update_collapse
  575.       execute_exp_pop
  576.   end
  577.   
  578.   #--------------------------------------------------------------------------
  579.   # ● Update Instant Collapse
  580.   #--------------------------------------------------------------------------  
  581.   alias mog_damage_pop_update_instant_collapse update_instant_collapse
  582.   def update_instant_collapse
  583.       mog_damage_pop_update_instant_collapse
  584.       execute_exp_pop
  585.   end   
  586.   
  587.   #--------------------------------------------------------------------------
  588.   # ● Update Boss Collapse
  589.   #--------------------------------------------------------------------------  
  590.   alias mog_damage_pop_update_boss_collapse update_boss_collapse
  591.   def update_boss_collapse
  592.       mog_damage_pop_update_boss_collapse
  593.       execute_exp_pop
  594.   end
  595.   
  596.   #--------------------------------------------------------------------------
  597.   # ● Execute Exp Pop
  598.   #--------------------------------------------------------------------------  
  599.   def execute_exp_pop
  600.       return if @dam_exp != nil
  601.       return if !MOG_DAMAGEPOP::EXP_POPUP
  602.       return if @battler.is_a?(Game_Actor)
  603.       @dam_exp = true
  604.       if $mog_rgss3_active_bonus_gauge != nil
  605.          if bonus_exp?
  606.             real_exp = @battler.exp * 2
  607.          else
  608.             real_exp = @battler.exp
  609.          end
  610.          if bonus_gold?
  611.             real_gold = @battler.gold * 2
  612.          else
  613.             real_gold = @battler.gold
  614.          end                    
  615.       else
  616.         real_exp = @battler.exp
  617.         real_gold = @battler.gold
  618.       end
  619.       @battler.damage.push(["EXP " + real_exp.to_s,"Exp"]) if @battler.exp > 0
  620.       @battler.damage.push([Vocab::currency_unit + " " + real_gold.to_s,"Gold"]) if @battler.gold > 0
  621.   end  
  622.   
  623.   if $mog_rgss3_active_bonus_gauge != nil  
  624.   #--------------------------------------------------------------------------
  625.   # ● Bonus Gold
  626.   #--------------------------------------------------------------------------  
  627.   def bonus_gold?
  628.       $game_system.bonus_gauge[3] and $game_system.bonus_gauge[2] == 3
  629.   end
  630.    
  631.   #--------------------------------------------------------------------------
  632.   # ● Bonus Exp
  633.   #--------------------------------------------------------------------------  
  634.   def bonus_exp?
  635.       $game_system.bonus_gauge[3] and $game_system.bonus_gauge[2] == 2      
  636.   end      
  637.   end
  638.   
  639. end


  640. #==============================================================================
  641. # ■ Game Interpreter
  642. #==============================================================================
  643. class Game_Interpreter
  644.   
  645.   #--------------------------------------------------------------------------
  646.   # ● Damage Popup
  647.   #--------------------------------------------------------------------------      
  648.   def damage_popup(value,type = nil, critical = false)
  649.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  650.       $game_map.events[@event_id].damage.push([value,type,critical]) if same_map? && @event_id > 0
  651.   end  
  652.   
  653. end  

  654. #==============================================================================
  655. # ■ Game Character
  656. #==============================================================================
  657. class Game_CharacterBase
  658.   
  659.   attr_accessor :damage
  660.   
  661.   #--------------------------------------------------------------------------
  662.   # ● Initialize
  663.   #--------------------------------------------------------------------------   
  664.   alias mog_damage_popup_initialize initialize
  665.   def initialize
  666.       @damage = []
  667.       mog_damage_popup_initialize
  668.   end
  669.   
  670.   #--------------------------------------------------------------------------
  671.   # ● damage Popup
  672.   #--------------------------------------------------------------------------      
  673.   def damage_popup(value,type = nil, critical = false)
  674.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  675.       @damage.push([value,type,critical])
  676.   end
  677.   
  678. end  

  679. #==============================================================================
  680. # ■ Sprite Character
  681. #==============================================================================
  682. class Sprite_Character < Sprite_Base

  683.   #--------------------------------------------------------------------------
  684.   # ● Initialize
  685.   #--------------------------------------------------------------------------  
  686.   alias mog_damage_popup_initialize initialize
  687.   def initialize(viewport, character = nil)
  688.       mog_damage_popup_initialize(viewport, character)
  689.       create_damage_sprite
  690.   end

  691.   #--------------------------------------------------------------------------
  692.   # ● Create Damage Sprite
  693.   #--------------------------------------------------------------------------           
  694.   def create_damage_sprite
  695.       dispose_damage_sprite
  696.       @damage_sprites = []
  697.   end
  698.   
  699.   #--------------------------------------------------------------------------
  700.   # ● Dispose
  701.   #--------------------------------------------------------------------------
  702.   alias mog_damage_popup_dispose dispose
  703.   def dispose
  704.       mog_damage_popup_dispose
  705.       dispose_damage_sprite
  706.   end  
  707.   
  708.   #--------------------------------------------------------------------------
  709.   # ● Dispose Damage Sprite
  710.   #--------------------------------------------------------------------------               
  711.   def dispose_damage_sprite
  712.       return if @damage_sprites == nil
  713.       @damage_sprites.each {|sprite| sprite.dispose }
  714.       @damage_sprites.clear
  715.       @character.damage.clear
  716.       $game_temp.dispose_damage_sprite = false
  717.   end   
  718.   
  719.   #--------------------------------------------------------------------------
  720.   # ● Update
  721.   #--------------------------------------------------------------------------  
  722.   alias mog_damage_popup_update update
  723.   def update
  724.       mog_damage_popup_update
  725.       update_damage_sprite
  726.   end
  727.   
  728.   #--------------------------------------------------------------------------
  729.   # ● Create Damage
  730.   #--------------------------------------------------------------------------                    
  731.   def create_damage
  732.       index = 0
  733.       sx = self.x
  734.       sy = self.y + @ch
  735.       @damage_sprites = [] if @damage_sprites == nil
  736.       for i in @character.damage
  737.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  738.           index += 1
  739.       end
  740.       @character.damage.clear
  741.   end
  742.   
  743.   #--------------------------------------------------------------------------
  744.   # ● Update Damage Sprite
  745.   #--------------------------------------------------------------------------                  
  746.   def update_damage_sprite
  747.       return if @damage_sprites == nil
  748.       if @initial_damage == nil
  749.          @initial_damage = true
  750.          @character.damage.clear
  751.          return
  752.       end      
  753.       create_damage if [email protected]?
  754.       if !@damage_sprites.empty?
  755.           clear = 0
  756.           for sprite in @damage_sprites
  757.               sprite.update
  758.               if sprite.duration == 0
  759.                  sprite.dispose
  760.               end   
  761.               clear += 1 if sprite.duration > 0
  762.           end
  763.           clear_damage if clear == 0
  764.       end
  765.   end   
  766.   
  767.   #--------------------------------------------------------------------------
  768.   # ● Update Damage Sprite
  769.   #--------------------------------------------------------------------------                     
  770.   def clear_damage
  771.       @damage_sprites.each {|sprite| sprite.dispose }
  772.       @damage_sprites.clear
  773.       @character.damage.clear
  774.   end   
  775.   
  776. end

  777. #=============================================================================
  778. # ■ Game_Temp
  779. #=============================================================================
  780. class Game_Temp
  781.   
  782.   attr_accessor :dispose_damage_sprite
  783.   
  784.   #--------------------------------------------------------------------------
  785.   # ● Initialize
  786.   #--------------------------------------------------------------------------           
  787.   alias mog_dispose_damage_initialize initialize
  788.   def initialize
  789.       @dispose_damage_sprite = true
  790.       mog_dispose_damage_initialize
  791.   end
  792.    
  793. end

  794. #=============================================================================
  795. # ■ Scene Manager
  796. #=============================================================================
  797. class << SceneManager
  798.   
  799.   #--------------------------------------------------------------------------
  800.   # ● Call
  801.   #--------------------------------------------------------------------------         
  802.   alias mog_damage_pop_call call
  803.   def call(scene_class)
  804.       $game_temp.dispose_damage_sprite = true
  805.       mog_damage_pop_call(scene_class)
  806.   end
  807.   
  808. end

  809. #=============================================================================
  810. # ■ Scene Map
  811. #=============================================================================
  812. class Scene_Map < Scene_Base

  813.   #--------------------------------------------------------------------------
  814.   # ● Update Scene
  815.   #--------------------------------------------------------------------------           
  816.   alias mog_dispose_damage_sprites_update update_scene
  817.   def update_scene
  818.       @spriteset.dispose_damage_sprites
  819.       mog_dispose_damage_sprites_update
  820.   end

  821. end

  822. #=============================================================================
  823. # ■ Spriteset Map
  824. #=============================================================================
  825. class Spriteset_Map
  826.   
  827.   #--------------------------------------------------------------------------
  828.   # ● Dispose Damage Sprites
  829.   #--------------------------------------------------------------------------            
  830.   def dispose_damage_sprites
  831.       return if !$game_temp.dispose_damage_sprite   
  832.       return if @character_sprites == nil
  833.       @character_sprites.each {|sprite| sprite.dispose_damage_sprite }
  834.       $game_temp.dispose_damage_sprite = false
  835.   end
  836.   
  837. end

  838. #=============================================================================
  839. # ■ Scene Battle
  840. #=============================================================================
  841. class Scene_Battle < Scene_Base
  842.   
  843.   #--------------------------------------------------------------------------
  844.   # ● Update
  845.   #--------------------------------------------------------------------------               
  846.   alias mog_damage_popup_dispose_sprite_update update  
  847.   def update
  848.       @spriteset.dispose_damage_sprites
  849.       mog_damage_popup_dispose_sprite_update
  850.   end  

  851. end

  852. #=============================================================================
  853. # ■ Spriteset Battle
  854. #=============================================================================
  855. class Spriteset_Battle  
  856.   
  857.   #--------------------------------------------------------------------------
  858.   # ● Dispose Damage Sprites
  859.   #--------------------------------------------------------------------------            
  860.   def dispose_damage_sprites
  861.       return if !$game_temp.dispose_damage_sprite   
  862.       battler_sprites.each {|sprite| sprite.dispose_damage_sprite }
  863.       $game_temp.dispose_damage_sprite = false
  864.   end  
  865.   
  866. end

  867. $mog_rgss3_damage_pop = true
复制代码
此脚本

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
168
在线时间
45 小时
注册时间
2012-9-4
帖子
30
3
 楼主| 发表于 2013-7-12 15:13:31 | 只看该作者
好像使用后有点错误啊……第523行开始后面不太对。
回复 支持 反对

使用道具 举报

david_ng223 该用户已被删除
4
发表于 2013-7-12 16:02:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 06:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表