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

Project1

 找回密码
 注册会员
搜索

MOG的伤害弹出脚本MOG_Damage_Popup报错

查看数: 1637 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-6-26 21:00

正文摘要:

脚本如下RUBY 代码复制#==============================================================================# +++ MOG - DAMAGEPOPUP  (v2.3) +++#============================== ...

回复

hegg3ro4 发表于 2013-7-12 19:26:09
billyxiang123 发表于 2013-7-12 14:54
你是不是用的没加此脚本前的存档啊,把游戏从都开始测试试试

从头到尾的用过了{:2_272:}
billyxiang123 发表于 2013-7-12 14:54:16
你是不是用的没加此脚本前的存档啊,把游戏从都开始测试试试
熊喵酱 发表于 2013-6-27 10:56:12
這樣試試看
  1. #==============================================================================
  2. # +++ MOG - DAMAGEPOPUP  (v2.3) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  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 = false
  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.   attr_accessor :damage

  61.   #--------------------------------------------------------------------------
  62.   # ● Initialize
  63.   #--------------------------------------------------------------------------         
  64.   alias mog_damage_sprite_initialize initialize
  65.   def initialize      
  66.       @damage = []
  67.       mog_damage_sprite_initialize
  68.   end  

  69.   #--------------------------------------------------------------------------
  70.   # ● Item Apply
  71.   #--------------------------------------------------------------------------  
  72.    alias mog_damage_pop_item_apply item_apply
  73.    def item_apply(user, item)
  74.        mog_damage_pop_item_apply(user, item)
  75.        if @result.missed
  76.           self.damage.push(["Missed","Missed"]) if self.hp > 0
  77.        elsif @result.evaded
  78.           self.damage.push(["Evaded","Evaded"]) if self.hp > 0
  79.        end  
  80.    end

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

  90.   #--------------------------------------------------------------------------
  91.   # ● Regenerate MP
  92.   #--------------------------------------------------------------------------
  93.   alias mog_damage_pop_regenerate_mp regenerate_mp
  94.   def regenerate_mp
  95.       mog_damage_pop_regenerate_mp
  96. #      self.damage.push(["Regenerate",""]) if @result.mp_damage < 0  
  97.       self.damage.push([@result.mp_damage,"MP"]) if @result.mp_damage != 0
  98.   end

  99.   #--------------------------------------------------------------------------
  100.   # ● Regenerate TP
  101.   #--------------------------------------------------------------------------
  102.   alias mog_damage_pop_regenerate_tp regenerate_tp
  103.   def regenerate_tp
  104.       mog_damage_pop_regenerate_tp
  105.       tp_damage = 100 * trg
  106.       self.damage.push([tp_damage,"TP"]) if tp_damage != 0
  107.   end

  108.   #--------------------------------------------------------------------------
  109.   # ● Added New State
  110.   #--------------------------------------------------------------------------  
  111.   alias mog_damage_pop_add_new_state add_new_state
  112.   def add_new_state(state_id)
  113.       mog_damage_pop_add_new_state(state_id)
  114. #      unless guard_feature?(state_id)
  115.          st = $data_states[state_id]
  116.          self.damage.push([st.name.to_s,"States Plus",false,st.icon_index]) if self.hp > 0
  117. #    end   
  118.   end

  119.   #--------------------------------------------------------------------------
  120.   # ● Guard Feature?
  121.   #--------------------------------------------------------------------------   
  122.   def guard_feature?(state_id)
  123.       st = $data_states[state_id]
  124.       for i in st.features
  125.           return true if i.code == 62 and i.data_id == 1
  126.       end
  127.       return false
  128.   end

  129.   #--------------------------------------------------------------------------
  130.   # ● Remove State
  131.   #--------------------------------------------------------------------------  
  132.   alias mog_damage_pop_remove_state remove_state
  133.   def remove_state(state_id)
  134.       if state?(state_id)
  135.          unless BattleManager.escape?
  136.             st = $data_states[state_id]
  137.             self.damage.push([st.name.to_s,"States Minus",false,st.icon_index])  if self.hp > 0
  138.          end   
  139.       end
  140.       mog_damage_pop_remove_state(state_id)
  141.   end      

  142.   #--------------------------------------------------------------------------
  143.   # ● Update State Turns
  144.   #--------------------------------------------------------------------------  
  145.   alias mog_damage_popup_update_state_turns update_state_turns
  146.   def update_state_turns
  147.       mog_damage_popup_update_state_turns
  148.       states.each do |state|
  149.         for features in state.features
  150.             if features.data_id == 7 or features.data_id == 8 or
  151.                features.data_id == 9               
  152.           #     self.damage.push([state.name.to_s + " Effect","States Effect"]) if self.hp > 0
  153.             end  
  154.         end
  155.       end  
  156.   end   

  157.   #--------------------------------------------------------------------------
  158.   # ● Execute Damage
  159.   #--------------------------------------------------------------------------   
  160.   alias mog_damage_pop_execute_damage execute_damage
  161.   def execute_damage(user)
  162.       mog_damage_pop_execute_damage(user)
  163.       user.damage.push([[email][email protected]_drain,"HP",@result.critical]) if @result.hp_drain != 0
  164.       user.damage.push([[email][email protected]_drain,"MP",@result.critical]) if @result.mp_drain != 0
  165.   end  

  166. end

  167. #==============================================================================
  168. # ■ BattleManager
  169. #==============================================================================
  170. module BattleManager

  171.   #--------------------------------------------------------------------------
  172.   # ● Escape?
  173.   #--------------------------------------------------------------------------
  174.   def self.escape?
  175.       @phase == nil
  176.   end

  177. end  
  178. #==============================================================================
  179. # ■ Game_ActionResult
  180. #==============================================================================
  181. class Game_ActionResult
  182.   #--------------------------------------------------------------------------
  183.   # ● HP Damage Text
  184.   #--------------------------------------------------------------------------
  185.   alias mog_damage_pop_hp_damage_text hp_damage_text
  186.   def hp_damage_text
  187.       if @hp_drain > 0
  188.          @battler.damage.push([@hp_drain,"HP",@critical])
  189.       elsif @hp_damage >= 0
  190.          @battler.damage.push([@hp_damage,"HP",@critical])
  191.       elsif @hp_damage < 0
  192.          @battler.damage.push([@hp_damage,"HP",@critical])
  193.       end   
  194.       mog_damage_pop_hp_damage_text     
  195.   end

  196.   #--------------------------------------------------------------------------
  197.   # ● MP Damage Text
  198.   #--------------------------------------------------------------------------
  199.   alias mog_damage_pop_mp_damage_text mp_damage_text
  200.   def mp_damage_text
  201.       if @mp_drain > 0
  202.          @battler.damage.push([@mp_drain,"MP",@critical])
  203.       elsif @mp_damage > 0
  204.          @battler.damage.push([@mp_damage,"MP",@critical])
  205.       elsif @mp_damage < 0   
  206.          @battler.damage.push([@mp_damage,"MP",@critical])
  207.       end   
  208.       mog_damage_pop_mp_damage_text
  209.   end

  210.   #--------------------------------------------------------------------------
  211.   # ● TP Damage Text
  212.   #--------------------------------------------------------------------------
  213.   alias mog_damage_pop_tp_damage_text tp_damage_text
  214.   def tp_damage_text
  215.       if @tp_damage > 0
  216.          @battler.damage.push([@tp_damage,"TP",@critical])
  217.       elsif @tp_damage < 0
  218.          @battler.damage.push([@tp_damage,"TP",@critical])
  219.       end   
  220.       mog_damage_pop_tp_damage_text
  221.   end
  222. end

  223. #==============================================================================
  224. # ■ Game Actor
  225. #==============================================================================
  226. class Game_Actor < Game_Battler

  227.   #--------------------------------------------------------------------------
  228.   # ● Level UP
  229.   #--------------------------------------------------------------------------         
  230.    alias mog_damage_pop_level_up level_up
  231.    def level_up
  232.        mog_damage_pop_level_up
  233.        @damage.push(["Level UP","Level_UP"])# unless @damage[0].include?("Level UP")#unless $mog_battle_result != nil      
  234.    end
  235. end   

  236. #==============================================================================
  237. # ■ Scene_Battle
  238. #==============================================================================
  239. class Scene_Battle < Scene_Base  

  240.   #--------------------------------------------------------------------------
  241.   # ● Invoke Counter Attack
  242.   #--------------------------------------------------------------------------        
  243.   alias mog_damage_popup_invoke_counter_attack invoke_counter_attack
  244.   def invoke_counter_attack(target, item)
  245.       mog_damage_popup_invoke_counter_attack(target, item)
  246.       target.damage.push(["Counter","Counter"])
  247.   end  

  248.   #--------------------------------------------------------------------------
  249.   # ● Invoke Counter Attack
  250.   #--------------------------------------------------------------------------        
  251.   alias mog_damage_popup_invoke_magic_reflection invoke_magic_reflection
  252.   def invoke_magic_reflection(target, item)
  253.       mog_damage_popup_invoke_magic_reflection(target, item)
  254.       target.damage.push(["Reflection","Reflection"])
  255.   end  

  256. end

  257. #==============================================================================
  258. # ■ Damage Sprite
  259. #==============================================================================
  260. class Damage_Sprite < Sprite
  261.    include MOG_DAMAGEPOP
  262.    attr_accessor :duration

  263.   #--------------------------------------------------------------------------
  264.   # ● Initialize
  265.   #--------------------------------------------------------------------------      
  266.   def initialize(viewport = nil,x = 0,y = 0,value = 0,index)
  267.       super(viewport)
  268.       dispose
  269.       @image = Cache.system("Damage_Number")      
  270.       @x = x
  271.       @y = y
  272.       @value = value[0]
  273.       @type = value[1]
  274.       @critical = (value[2] and @value.to_i >= 0) ? true : false
  275.       @state_index = value[3]
  276.       @duration = 80 + (10 * index)
  277.       @cw = @image.width / 10
  278.       @ch = @image.height / 7
  279.       @center_x = 0
  280.       @mp_space = (@type == "MP" or @type == "TP") ? MP_TP_STRING_SPACE : 0      
  281.       if @value.is_a?(Numeric)
  282.          create_damage_number
  283.       elsif @value == "Missed" or  @value == "Evaded"  
  284.          create_damage_miss
  285.       else   
  286.          create_damage_string
  287.       end
  288.       self.x =  @x - (@center_x * (@cw / 2)) + DAMAGE_POSITION_CORRECTION[0]
  289.       self.y = @y + DAMAGE_POSITION_CORRECTION[1]
  290.       self.opacity = 1
  291.       zx = self.viewport != nil ? self.viewport.z : 0
  292.       self.z = DAMAGE_Z + zx
  293.       self.visible = false
  294.       damage_dir = rand(2)
  295.       @speed_x = straight_pop? ? 0 : damage_dir == 1 ? -rand(2) : rand(2)
  296.       @speed_y = 0
  297.   end

  298.   #--------------------------------------------------------------------------
  299.   # ● Straight Pop
  300.   #--------------------------------------------------------------------------               
  301.   def straight_pop?
  302.       case @type
  303.          when "Gold";        return true
  304.          when "Exp";         return true
  305.          when "Level_UP";    return true
  306.       end
  307.       return false
  308.   end  

  309.   #--------------------------------------------------------------------------
  310.   # ● Create Damage Number
  311.   #--------------------------------------------------------------------------            
  312.   def create_damage_miss
  313.       dam = @value == "Missed" ? 5 : 6
  314.       self.bitmap = Bitmap.new(@cw * 5, @ch)  
  315.       src_rect = Rect.new(0, dam * @ch,  @cw * 10, @ch)
  316.       self.bitmap.blt(0, 0, @image, src_rect)
  317.       @center_x += 5
  318.   end

  319.   #--------------------------------------------------------------------------
  320.   # ● Create Damage Number
  321.   #--------------------------------------------------------------------------           
  322.   def create_damage_number
  323.       dam = @critical ? @ch * 2 : @value >= 0 ? 0 : @ch
  324.       f = @value >= 0 ? 0 : 1
  325.       ve = @value >= 0 ? 10 : 0
  326.       number_value = @value.to_s.split(//)
  327.       self.bitmap = Bitmap.new(@mp_space + (@cw * number_value.size + 16),@ch * 4)     
  328.       for r in f...number_value.size        
  329.          number_value_abs = number_value[r].to_i
  330.          src_rect = Rect.new(@cw * number_value_abs, dam, @cw, @ch)
  331.          self.bitmap.blt(@mp_space + ve + (@cw *  r), 0, @image, src_rect)
  332.          @center_x += 1
  333.       end
  334.       if @type == "MP" or @type == "TP"
  335.          ty = @type == "MP" ? 3 : 4
  336.          src_rect = Rect.new(0, @ch * ty, @cw * 10, @ch)
  337.          self.bitmap.blt(0, 0, @image, src_rect)         
  338.          @center_x += 2
  339.       end
  340.       @center_x += 1 if @value < 0
  341.   end  

  342.   #--------------------------------------------------------------------------
  343.   # ● Create Damage String
  344.   #--------------------------------------------------------------------------            
  345.   def create_damage_string
  346.       string_size = @value.to_s.split(//)
  347.       @stg_size = string_size.size > 0 ? ((1 + string_size.size) * 24) : 32      
  348.       self.bitmap = Bitmap.new(@stg_size,32)
  349.       self.bitmap.font.size = 28
  350.       self.bitmap.font.bold = true
  351.       @center_x = 2 + (string_size.size / 2)
  352.       if @state_index != nil
  353.          draw_states
  354.        else
  355.          execute_font_color
  356.          damage_string = @value.to_s         
  357.          self.bitmap.draw_text(0, 0, @stg_size, 32, damage_string,0)
  358.       end
  359.   end  

  360.   #--------------------------------------------------------------------------
  361.   # ● Execute Font Color
  362.   #--------------------------------------------------------------------------               
  363.   def execute_font_color
  364.       case @type
  365.            when "Gold"
  366.                @duration = 160
  367.                self.bitmap.font.color = Color.new(255,255,100)
  368.            when "Exp"
  369.                @duration = 120
  370.                self.bitmap.font.color = Color.new(0,255,100)
  371.            when "Level_UP"   
  372.                self.bitmap.font.color = Color.new(50,155,255)  
  373.            else  
  374.                self.bitmap.font.color = Color.new(255,255,255)
  375.       end
  376.   end

  377.   #--------------------------------------------------------------------------
  378.   # ● Draw States
  379.   #--------------------------------------------------------------------------               
  380.   def draw_states
  381.       icon_image = Cache.system("Iconset")
  382.       if @type == "States Plus"
  383.          self.bitmap.font.color = Color.new(200,150,50)
  384.          damage_string = "+ " + @value.to_s
  385.       elsif @type == "States Minus"
  386.           self.bitmap.font.color = Color.new(100,100,100)   
  387.          damage_string = "- " + @value.to_s
  388.       end        
  389.       rect = Rect.new(@state_index % 16 * 24, @state_index / 16 * 24, 24, 24)
  390.       self.bitmap.blt(0, 0, icon_image, rect)  
  391.       self.bitmap.draw_text(26, 0, @stg_size - 24, 32, damage_string,0)
  392.       @center_x += 5
  393.       icon_image.dispose
  394.       icon_image = nil
  395.   end  

  396.   #--------------------------------------------------------------------------
  397.   # ● Dispose
  398.   #--------------------------------------------------------------------------         
  399.   def dispose
  400.       return if @image == nil
  401.       @image.dispose
  402.       @image = nil
  403.       self.bitmap.dispose
  404.       self.bitmap = nil
  405.       @duration = -1
  406.   end  

  407.   #--------------------------------------------------------------------------
  408.   # ● Update
  409.   #--------------------------------------------------------------------------         
  410.   def update
  411.       return if self.bitmap == nil   
  412.       @duration -= 1 if @duration > 0
  413.       self.visible = @duration > 80 ? false : true
  414.       case @duration
  415.          when 65..80
  416.             self.opacity += 5
  417.             self.x += @speed_x
  418.             self.y -= 5
  419.             critical_effect(0.05)
  420.          when 50..65  
  421.              self.opacity = 255
  422.              self.y -= 3
  423.              self.x += @speed_x
  424.              critical_effect(0.05)
  425.          when 35..50
  426.              self.opacity = 255
  427.              self.y += 3
  428.              critical_effect(-0.05)
  429.          when 0..35  
  430.              self.opacity -= 7
  431.              self.y -= 1
  432.              critical_effect(-0.05)
  433.       end
  434.       dispose if self.opacity <= 0  
  435.   end

  436.   #--------------------------------------------------------------------------
  437.   # ● Critical Effect
  438.   #--------------------------------------------------------------------------           
  439.   def critical_effect(value)
  440.       return if !@critical
  441.       self.zoom_x += value
  442.       self.zoom_y = self.zoom_x      
  443.   end

  444. end

  445. #==============================================================================
  446. # ■ Sprite Battle
  447. #==============================================================================
  448. class Sprite_Battler < Sprite_Base

  449.   #--------------------------------------------------------------------------
  450.   # ● Initialize
  451.   #--------------------------------------------------------------------------
  452.   alias mog_damagepop_initialize initialize
  453.   def initialize(viewport, battler = nil)
  454.       mog_damagepop_initialize(viewport, battler)
  455.       create_damage_sprite
  456.   end  

  457.   #--------------------------------------------------------------------------
  458.   # ● Create Damage Sprite
  459.   #--------------------------------------------------------------------------           
  460.   def create_damage_sprite
  461.       dispose_damage_sprite
  462.       @damage_sprites = []
  463.   end

  464.   #--------------------------------------------------------------------------
  465.   # ● Dispose
  466.   #--------------------------------------------------------------------------            
  467.   alias mog_damge_sprite_dispose dispose
  468.   def dispose
  469.       mog_damge_sprite_dispose
  470.       dispose_damage_sprite
  471.   end  

  472.   #--------------------------------------------------------------------------
  473.   # ● Dispose Damage Sprite
  474.   #--------------------------------------------------------------------------               
  475.   def dispose_damage_sprite
  476.       return if @damage_sprites == nil
  477.       @damage_sprites.each {|sprite| sprite.dispose }
  478.       @damage_sprites.clear
  479.       @battler.damage.clear if @battler!= nil
  480.   end  

  481.   #--------------------------------------------------------------------------
  482.   # ● Update
  483.   #--------------------------------------------------------------------------                 
  484.   alias mog_damage_sprite_update update
  485.   def update
  486.       mog_damage_sprite_update
  487.       update_damage_sprite
  488.   end

  489.   #--------------------------------------------------------------------------
  490.   # ● Create Damage
  491.   #--------------------------------------------------------------------------                    
  492.   def create_damage
  493.       return if [email protected]_sprite?
  494.       index = 0
  495.       sx = @battler.screen_x != nil ? @battler.screen_x : self.x
  496.       sy = @battler.screen_y != nil ? @battler.screen_y : self.y
  497.       @damage_sprites = [] if @damage_sprites == nil
  498.       for i in @battler.damage
  499.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  500.           index += 1
  501.       end
  502.       @battler.damage.clear
  503.   end

  504.   #--------------------------------------------------------------------------
  505.   # ● Update Damage Sprite
  506.   #--------------------------------------------------------------------------                  
  507.   def update_damage_sprite
  508.       return if @damage_sprites == nil or [url=home.php?mod=space&uid=133701]@battler[/url] == nil
  509.       if @initial_damage == nil
  510.          @initial_damage = true
  511.          @battler.damage.clear
  512.          return
  513.       end      
  514.       create_damage if [email protected]?
  515.       if !@damage_sprites.empty?
  516.           clear = 0
  517.           for sprite in @damage_sprites
  518.               sprite.update
  519.               if sprite.duration == 0
  520.                  sprite.dispose
  521.               end   
  522.               clear += 1 if sprite.duration > 0
  523.           end
  524.           clear_damage if clear == 0
  525.       end
  526.   end  

  527.   #--------------------------------------------------------------------------
  528.   # ● Update Damage Sprite
  529.   #--------------------------------------------------------------------------                     
  530.   def clear_damage
  531.       @damage_sprites.each {|sprite| sprite.dispose }
  532.       @damage_sprites.clear
  533.   end  

  534.   #--------------------------------------------------------------------------
  535.   # ● Update Collapse
  536.   #--------------------------------------------------------------------------  
  537.   alias mog_damage_pop_update_collapse update_collapse
  538.   def update_collapse
  539.       mog_damage_pop_update_collapse
  540.       execute_exp_pop
  541.   end

  542.   #--------------------------------------------------------------------------
  543.   # ● Update Instant Collapse
  544.   #--------------------------------------------------------------------------  
  545.   alias mog_damage_pop_update_instant_collapse update_instant_collapse
  546.   def update_instant_collapse
  547.       mog_damage_pop_update_instant_collapse
  548.       execute_exp_pop
  549.   end   

  550.   #--------------------------------------------------------------------------
  551.   # ● Update Boss Collapse
  552.   #--------------------------------------------------------------------------  
  553.   alias mog_damage_pop_update_boss_collapse update_boss_collapse
  554.   def update_boss_collapse
  555.       mog_damage_pop_update_boss_collapse
  556.       execute_exp_pop
  557.   end

  558.   #--------------------------------------------------------------------------
  559.   # ● Execute Exp Pop
  560.   #--------------------------------------------------------------------------  
  561.   def execute_exp_pop
  562.       return if @dam_exp != nil
  563.       return if !MOG_DAMAGEPOP::EXP_POPUP
  564.       return if @battler.is_a?(Game_Actor)
  565.       @dam_exp = true
  566.       if $mog_rgss3_active_bonus_gauge != nil
  567.          if bonus_exp?
  568.             real_exp = @battler.exp * 2
  569.          else
  570.             real_exp = @battler.exp
  571.          end
  572.          if bonus_gold?
  573.             real_gold = @battler.gold * 2
  574.          else
  575.             real_gold = @battler.gold
  576.          end                    
  577.       else
  578.         real_exp = @battler.exp
  579.         real_gold = @battler.gold
  580.       end
  581.       @battler.damage.push(["EXP " + real_exp.to_s,"Exp"]) if @battler.exp > 0
  582.       @battler.damage.push([Vocab::currency_unit + " " + real_gold.to_s,"Gold"]) if @battler.gold > 0
  583.   end  

  584.   if $mog_rgss3_active_bonus_gauge != nil  
  585.   #--------------------------------------------------------------------------
  586.   # ● Bonus Gold
  587.   #--------------------------------------------------------------------------  
  588.   def bonus_gold?
  589.       $game_system.bonus_gauge[3] and $game_system.bonus_gauge[2] == 3
  590.   end

  591.   #--------------------------------------------------------------------------
  592.   # ● Bonus Exp
  593.   #--------------------------------------------------------------------------  
  594.   def bonus_exp?
  595.       $game_system.bonus_gauge[3] and $game_system.bonus_gauge[2] == 2      
  596.   end      
  597.   end

  598. end


  599. #==============================================================================
  600. # ■ Game Interpreter
  601. #==============================================================================
  602. class Game_Interpreter

  603.   #--------------------------------------------------------------------------
  604.   # ● Damage Popup
  605.   #--------------------------------------------------------------------------      
  606.   def damage_popup(value,type = nil, critical = false)
  607.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  608.       $game_map.events[@event_id].damage.push([value,type,critical]) if same_map? && @event_id > 0
  609.   end  

  610. end  

  611. #==============================================================================
  612. # ■ Game Character
  613. #==============================================================================
  614. class Game_CharacterBase

  615.   attr_accessor :damage

  616.   #--------------------------------------------------------------------------
  617.   # ● Initialize
  618.   #--------------------------------------------------------------------------   
  619.   alias mog_damage_popup_initialize initialize
  620.   def initialize
  621.       @damage = []
  622.       mog_damage_popup_initialize
  623.   end

  624.   #--------------------------------------------------------------------------
  625.   # ● damage Popup
  626.   #--------------------------------------------------------------------------      
  627.   def damage_popup(value,type = nil, critical = false)
  628.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  629.       @damage.push([value,type,critical])
  630.   end

  631. end  

  632. #==============================================================================
  633. # ■ Sprite Character
  634. #==============================================================================
  635. class Sprite_Character < Sprite_Base

  636.   #--------------------------------------------------------------------------
  637.   # ● Initialize
  638.   #--------------------------------------------------------------------------  
  639.   alias mog_damage_popup_initialize initialize
  640.   def initialize(viewport, character = nil)
  641.       mog_damage_popup_initialize(viewport, character)
  642.       create_damage_sprite
  643.   end

  644.   #--------------------------------------------------------------------------
  645.   # ● Create Damage Sprite
  646.   #--------------------------------------------------------------------------           
  647.   def create_damage_sprite
  648.       dispose_damage_sprite
  649.       @damage_sprites = []
  650.   end

  651.   #--------------------------------------------------------------------------
  652.   # ● Dispose
  653.   #--------------------------------------------------------------------------
  654.   alias mog_damage_popup_dispose dispose
  655.   def dispose
  656.       mog_damage_popup_dispose
  657.       dispose_damage_sprite
  658.   end  

  659.   #--------------------------------------------------------------------------
  660.   # ● Dispose Damage Sprite
  661.   #--------------------------------------------------------------------------               
  662.   def dispose_damage_sprite
  663.       return if @damage_sprites == nil
  664.       @damage_sprites.each {|sprite| sprite.dispose }
  665.       @damage_sprites.clear
  666.       @character.damage.clear
  667.       $game_temp.dispose_damage_sprite = false
  668.   end   

  669.   #--------------------------------------------------------------------------
  670.   # ● Update
  671.   #--------------------------------------------------------------------------  
  672.   alias mog_damage_popup_update update
  673.   def update
  674.       mog_damage_popup_update
  675.       update_damage_sprite
  676.   end

  677.   #--------------------------------------------------------------------------
  678.   # ● Create Damage
  679.   #--------------------------------------------------------------------------                    
  680.   def create_damage
  681.       index = 0
  682.       sx = self.x
  683.       sy = self.y + @ch
  684.       @damage_sprites = [] if @damage_sprites == nil
  685.       for i in @character.damage
  686.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  687.           index += 1
  688.       end
  689.       @character.damage.clear
  690.   end

  691.   #--------------------------------------------------------------------------
  692.   # ● Update Damage Sprite
  693.   #--------------------------------------------------------------------------                  
  694.   def update_damage_sprite
  695.       return if @damage_sprites == nil
  696.       if @initial_damage == nil
  697.          @initial_damage = true
  698.          @character.damage.clear
  699.          return
  700.       end      
  701.       create_damage if [email protected]?
  702.       if !@damage_sprites.empty?
  703.           clear = 0
  704.           for sprite in @damage_sprites
  705.               sprite.update
  706.               if sprite.duration == 0
  707.                  sprite.dispose
  708.               end   
  709.               clear += 1 if sprite.duration > 0
  710.           end
  711.           clear_damage if clear == 0
  712.       end
  713.   end   

  714.   #--------------------------------------------------------------------------
  715.   # ● Update Damage Sprite
  716.   #--------------------------------------------------------------------------                     
  717.   def clear_damage
  718.       @damage_sprites.each {|sprite| sprite.dispose }
  719.       @damage_sprites.clear
  720.       @character.damage.clear
  721.   end   

  722. end

  723. #=============================================================================
  724. # ■ Game_Temp
  725. #=============================================================================
  726. class Game_Temp

  727.   attr_accessor :dispose_damage_sprite

  728.   #--------------------------------------------------------------------------
  729.   # ● Initialize
  730.   #--------------------------------------------------------------------------           
  731.   alias mog_dispose_damage_initialize initialize
  732.   def initialize
  733.       @dispose_damage_sprite = true
  734.       mog_dispose_damage_initialize
  735.   end

  736. end

  737. #=============================================================================
  738. # ■ Scene Manager
  739. #=============================================================================
  740. class << SceneManager

  741.   #--------------------------------------------------------------------------
  742.   # ● Call
  743.   #--------------------------------------------------------------------------         
  744.   alias mog_damage_pop_call call
  745.   def call(scene_class)
  746.       $game_temp.dispose_damage_sprite = true
  747.       mog_damage_pop_call(scene_class)
  748.   end

  749. end

  750. #=============================================================================
  751. # ■ Scene Map
  752. #=============================================================================
  753. class Scene_Map < Scene_Base

  754.   #--------------------------------------------------------------------------
  755.   # ● Update Scene
  756.   #--------------------------------------------------------------------------           
  757.   alias mog_dispose_damage_sprites_update update_scene
  758.   def update_scene
  759.       @spriteset.dispose_damage_sprites
  760.       mog_dispose_damage_sprites_update
  761.   end

  762. end

  763. #=============================================================================
  764. # ■ Spriteset Map
  765. #=============================================================================
  766. class Spriteset_Map

  767.   #--------------------------------------------------------------------------
  768.   # ● Dispose Damage Sprites
  769.   #--------------------------------------------------------------------------            
  770.   def dispose_damage_sprites
  771.       return if !$game_temp.dispose_damage_sprite   
  772.       return if @character_sprites == nil
  773.       @character_sprites.each {|sprite| sprite.dispose_damage_sprite }
  774.       $game_temp.dispose_damage_sprite = false
  775.   end

  776. end

  777. #=============================================================================
  778. # ■ Scene Battle
  779. #=============================================================================
  780. class Scene_Battle < Scene_Base

  781.   #--------------------------------------------------------------------------
  782.   # ● Update
  783.   #--------------------------------------------------------------------------               
  784.   alias mog_damage_popup_dispose_sprite_update update  
  785.   def update
  786.       @spriteset.dispose_damage_sprites
  787.       mog_damage_popup_dispose_sprite_update
  788.   end  

  789. end

  790. #=============================================================================
  791. # ■ Spriteset Battle
  792. #=============================================================================
  793. class Spriteset_Battle  

  794.   #--------------------------------------------------------------------------
  795.   # ● Dispose Damage Sprites
  796.   #--------------------------------------------------------------------------            
  797.   def dispose_damage_sprites
  798.       return if !$game_temp.dispose_damage_sprite   
  799.       battler_sprites.each {|sprite| sprite.dispose_damage_sprite }
  800.       $game_temp.dispose_damage_sprite = false
  801.   end  

  802. end

  803. $mog_rgss3_damage_pop = true
复制代码
因為你发的內含被论彈代碼隱響到的句子 所以可能是之前就會 或是這次发上來才產生的
不過75%是之前就有  因為你有用代碼框起來
總之試試看用這個吧
對了  出錯訊息是什么? 缺少素材就去補吧~

点评

url已去,还是不行……  发表于 2013-6-27 12:11
还是不行……去掉代码跟原脚本报一样的错  发表于 2013-6-27 12:03
對不起 出錯訊息我沒看到 不是缺少素材 不過這試試看吧  发表于 2013-6-27 10:57

评分

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

查看全部评分

hegg3ro4 发表于 2013-6-27 07:51:16
Ceopal 发表于 2013-6-27 00:33
此脚本也我也报错过,原因是和新加入的脚本有冲突

额……是和哪个脚本呢{:2_276:}

点评

拿出来才知道  发表于 2013-6-27 09:20
Ceopal 发表于 2013-6-27 00:33:00
此脚本也我也报错过,原因是和新加入的脚本有冲突
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-10-31 00:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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