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

Project1

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

[已经解决] ACE有地图掉血提示脚本么?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
212 小时
注册时间
2012-3-5
帖子
228
跳转到指定楼层
1
发表于 2012-9-20 22:08:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 布兰度西特 于 2012-10-12 15:09 编辑

就是跟ARPG一样的受到伤害或治疗角色身上会跳出相关数字。

@迷糊的安安
把“harinlen”的脚本177 178行改成下面的就可以用了。不过事件调用的 $game_player.damage_popup(-9999) 括号里的字符串可以改成变量么?因为每次都是随机的伤害值感觉好点。

user.damage.push([@result.hp_drain,"HP",@result.critical]) if @result.hp_drain != 0
user.damage.push([@result.mp_drain,"MP",@result.critical]) if @result.mp_drain != 0

Lv3.寻梦者

梦石
0
星屑
1093
在线时间
409 小时
注册时间
2012-8-7
帖子
1536
2
发表于 2012-9-20 22:23:55 | 只看该作者
事件调用代码:
RUBY 代码复制
  1. $game_player.damage_popup(-9999)

主体代码:
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - DAMAGEPOPUP  (v2.0) +++
  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. #==============================================================================
  13. # DAMAGE POPUP ON CHARACTERS (Events)
  14. #==============================================================================
  15. # Basta usar o código abaixo para apresentar o dano nos eventos.
  16. #
  17. # damage_popup(STRING)
  18. #
  19. # STRING = valor do dano (Texto).
  20. #
  21. #
  22. # Para ativar o dano no jogador use o código abaixo
  23. #
  24. # $game_player.damage_popup(STRING)
  25. #
  26. #==============================================================================
  27.  
  28. #==============================================================================
  29. # ● Histórico (Version History)
  30. #==============================================================================
  31. # v 2.0 - Apresentar o texto de recuperar nos efeitos de regenerar.
  32. # v 1.9 - Corrigido o erro de apresentar as condições sendo removidas quando a
  33. #         batalha termina.
  34. #       - Corrigido a centralização da string em danos do tipo texto.
  35. #       - Corrigido o "erro" de apresentar a condição de Death.
  36. # v 1.8 - Corrigido o erro de apresentar os textos das condições (Status) quando
  37. #         o battler estiver morto.
  38. # v 1.7 - Melhor codificação e compatibilidade.
  39. # v 1.6 - Corrigido o erro da opacidade do dano em EXP e GOLD.
  40. # v 1.5 - Possibilidade de ativar o dano nos eventos no mapa.
  41. # v 1.4 - Corrigido o erro do efeito drain.
  42. # v 1.3 - Corrigido o erro de crash randômico. (relativo a dispose de imagem.)
  43. # v 1.2 - Corrigido o limite do tamanho da string em palavras longas.
  44. # v 1.1 - Opção de definir a prioridade do dano.
  45. # v 1.0 - Primeiro lançamento.
  46. #==============================================================================
  47.  
  48. module MOG_DAMAGEPOP
  49.   #Definição do espaço entre a palavra MP/TP e o numero de dano.
  50.   MP_TP_STRING_SPACE = 32
  51.   #Correção da posição do dano.
  52.   DAMAGE_POSITION_CORRECTION = [0 ,0]
  53.   #Apresentar a exp e ouro do inimigo.
  54.   EXP_POPUP = true
  55.   #Definição da prioridade do dano na tela.
  56.   DAMAGE_Z = 60
  57. end
  58.  
  59. #==============================================================================
  60. # ■ Game_Battler
  61. #==============================================================================
  62. class Game_Battler < Game_BattlerBase
  63.  
  64.   attr_accessor :damage
  65.  
  66.   #--------------------------------------------------------------------------
  67.   # ● Initialize
  68.   #--------------------------------------------------------------------------         
  69.   alias mog_damage_sprite_initialize initialize
  70.   def initialize      
  71.       @damage = []
  72.       mog_damage_sprite_initialize
  73.   end  
  74.  
  75.   #--------------------------------------------------------------------------
  76.   # ● Item Apply
  77.   #--------------------------------------------------------------------------  
  78.    alias mog_damage_pop_item_apply item_apply
  79.    def item_apply(user, item)
  80.        mog_damage_pop_item_apply(user, item)
  81.        if @result.missed
  82.           self.damage.push(["Missed","Missed"]) if self.hp > 0
  83.        elsif @result.evaded
  84.           self.damage.push(["Evaded","Evaded"]) if self.hp > 0
  85.        end  
  86.    end
  87.  
  88.   #--------------------------------------------------------------------------
  89.   # ● Regenerate HP
  90.   #--------------------------------------------------------------------------
  91.   alias mog_damage_pop_regenerate_hp regenerate_hp
  92.   def regenerate_hp
  93.       mog_damage_pop_regenerate_hp
  94.       self.damage.push(["Regenerate",""]) if @result.hp_damage < 0  
  95.       self.damage.push([@result.hp_damage,"HP"]) if @result.hp_damage != 0      
  96.   end
  97.  
  98.   #--------------------------------------------------------------------------
  99.   # ● Regenerate MP
  100.   #--------------------------------------------------------------------------
  101.   alias mog_damage_pop_regenerate_mp regenerate_mp
  102.   def regenerate_mp
  103.       mog_damage_pop_regenerate_mp
  104. #      self.damage.push(["Regenerate",""]) if @result.mp_damage < 0  
  105.       self.damage.push([@result.mp_damage,"MP"]) if @result.mp_damage != 0
  106.   end
  107.  
  108.   #--------------------------------------------------------------------------
  109.   # ● Regenerate TP
  110.   #--------------------------------------------------------------------------
  111.   alias mog_damage_pop_regenerate_tp regenerate_tp
  112.   def regenerate_tp
  113.       mog_damage_pop_regenerate_tp
  114.       tp_damage = 100 * trg
  115.       self.damage.push([tp_damage,"TP"]) if tp_damage != 0
  116.   end
  117.  
  118.   #--------------------------------------------------------------------------
  119.   # ● Added New State
  120.   #--------------------------------------------------------------------------  
  121.   alias mog_damage_pop_add_new_state add_new_state
  122.   def add_new_state(state_id)
  123.       mog_damage_pop_add_new_state(state_id)
  124. #     unless guard_feature?(state_id)
  125.       st = $data_states[state_id]
  126.       self.damage.push([st.name.to_s,"States Plus",false,st.icon_index]) if self.hp > 0
  127. #     end   
  128.   end
  129.  
  130.   #--------------------------------------------------------------------------
  131.   # ● Guard Feature?
  132.   #--------------------------------------------------------------------------   
  133.   def guard_feature?(state_id)
  134.       st = $data_states[state_id]
  135.       for i in st.features
  136.           return true if i.code == 62 and i.data_id == 1
  137.       end
  138.       return false
  139.   end
  140.  
  141.   #--------------------------------------------------------------------------
  142.   # ● Remove State
  143.   #--------------------------------------------------------------------------  
  144.   alias mog_damage_pop_remove_state remove_state
  145.   def remove_state(state_id)
  146.       if state?(state_id)
  147.          unless BattleManager.escape?
  148.             st = $data_states[state_id]
  149.             self.damage.push([st.name.to_s,"States Minus",false,st.icon_index])  if self.hp > 0
  150.          end   
  151.       end
  152.       mog_damage_pop_remove_state(state_id)
  153.   end      
  154.  
  155.   #--------------------------------------------------------------------------
  156.   # ● Update State Turns
  157.   #--------------------------------------------------------------------------  
  158.   alias mog_damage_popup_update_state_turns update_state_turns
  159.   def update_state_turns
  160.       mog_damage_popup_update_state_turns
  161.       states.each do |state|
  162.         for features in state.features
  163.             if features.data_id == 7 or features.data_id == 8 or
  164.                features.data_id == 9               
  165.           #     self.damage.push([state.name.to_s + " Effect","States Effect"]) if self.hp > 0
  166.             end  
  167.         end
  168.       end  
  169.   end   
  170.  
  171.   #--------------------------------------------------------------------------
  172.   # ● Execute Damage
  173.   #--------------------------------------------------------------------------   
  174.   alias mog_damage_pop_execute_damage execute_damage
  175.   def execute_damage(user)
  176.       mog_damage_pop_execute_damage(user)
  177.       user.damage.push([[email]-@result.hp_drain[/email],"HP",@result.critical]) if @result.hp_drain != 0
  178.       user.damage.push([[email]-@result.mp_drain[/email],"MP",@result.critical]) if @result.mp_drain != 0
  179.   end  
  180.  
  181. end
  182.  
  183. #==============================================================================
  184. # ■ BattleManager
  185. #==============================================================================
  186. module BattleManager
  187.  
  188.   #--------------------------------------------------------------------------
  189.   # ● Escape?
  190.   #--------------------------------------------------------------------------
  191.   def self.escape?
  192.       @phase == nil
  193.   end
  194.  
  195. end  
  196. #==============================================================================
  197. # ■ Game_ActionResult
  198. #==============================================================================
  199. class Game_ActionResult
  200.  
  201.   #--------------------------------------------------------------------------
  202.   # ● HP Damage Text
  203.   #--------------------------------------------------------------------------
  204.   alias mog_damage_pop_hp_damage_text hp_damage_text
  205.   def hp_damage_text
  206.       if @hp_drain > 0
  207.          @battler.damage.push([@hp_drain,"HP",@critical])
  208.       elsif @hp_damage >= 0
  209.          @battler.damage.push([@hp_damage,"HP",@critical])
  210.       elsif @hp_damage < 0
  211.          @battler.damage.push([@hp_damage,"HP",@critical])
  212.       end   
  213.       mog_damage_pop_hp_damage_text     
  214.   end
  215.  
  216.   #--------------------------------------------------------------------------
  217.   # ● MP Damage Text
  218.   #--------------------------------------------------------------------------
  219.   alias mog_damage_pop_mp_damage_text mp_damage_text
  220.   def mp_damage_text
  221.       if @mp_drain > 0
  222.          @battler.damage.push([@mp_drain,"MP",@critical])
  223.       elsif @mp_damage > 0
  224.          @battler.damage.push([@mp_damage,"MP",@critical])
  225.       elsif @mp_damage < 0   
  226.          @battler.damage.push([@mp_damage,"MP",@critical])
  227.       end   
  228.       mog_damage_pop_mp_damage_text
  229.   end
  230.  
  231.   #--------------------------------------------------------------------------
  232.   # ● TP Damage Text
  233.   #--------------------------------------------------------------------------
  234.   alias mog_damage_pop_tp_damage_text tp_damage_text
  235.   def tp_damage_text
  236.       if @tp_damage > 0
  237.          @battler.damage.push([@tp_damage,"TP",@critical])
  238.       elsif @tp_damage < 0
  239.          @battler.damage.push([@tp_damage,"TP",@critical])
  240.       end   
  241.       mog_damage_pop_tp_damage_text
  242.   end
  243. end
  244.  
  245. #==============================================================================
  246. # ■ Game Actor
  247. #==============================================================================
  248. class Game_Actor < Game_Battler
  249.  
  250.   #--------------------------------------------------------------------------
  251.   # ● Level UP
  252.   #--------------------------------------------------------------------------         
  253.    alias mog_damage_pop_level_up level_up
  254.    def level_up
  255.        mog_damage_pop_level_up
  256.        @damage.push(["Level UP","Level_UP"])      
  257.    end
  258. end   
  259.  
  260. #==============================================================================
  261. # ■ Scene_Battle
  262. #==============================================================================
  263. class Scene_Battle < Scene_Base  
  264.  
  265.   #--------------------------------------------------------------------------
  266.   # ● Invoke Counter Attack
  267.   #--------------------------------------------------------------------------        
  268.   alias mog_damage_popup_invoke_counter_attack invoke_counter_attack
  269.   def invoke_counter_attack(target, item)
  270.       mog_damage_popup_invoke_counter_attack(target, item)
  271.       target.damage.push(["Counter","Counter"])
  272.   end  
  273.  
  274.   #--------------------------------------------------------------------------
  275.   # ● Invoke Counter Attack
  276.   #--------------------------------------------------------------------------        
  277.   alias mog_damage_popup_invoke_magic_reflection invoke_magic_reflection
  278.   def invoke_magic_reflection(target, item)
  279.       mog_damage_popup_invoke_magic_reflection(target, item)
  280.       target.damage.push(["Reflection","Reflection"])
  281.   end  
  282.  
  283. end
  284.  
  285. #==============================================================================
  286. # ■ Damage Sprite
  287. #==============================================================================
  288. class Damage_Sprite < Sprite
  289.    include MOG_DAMAGEPOP
  290.    attr_accessor :duration
  291.  
  292.   #--------------------------------------------------------------------------
  293.   # ● Initialize
  294.   #--------------------------------------------------------------------------      
  295.   def initialize(viewport = nil,x = 0,y = 0,value = 0,index)
  296.       super(viewport)
  297.       dispose
  298.       @image = Cache.system("Damage_Number")      
  299.       @x = x
  300.       @y = y
  301.       @value = value[0]
  302.       @type = value[1]
  303.       @critical = (value[2] and @value.to_i >= 0) ? true : false
  304.       @state_index = value[3]
  305.       @duration = 80 + (10 * index)
  306.       @cw = @image.width / 10
  307.       @ch = @image.height / 7
  308.       @center_x = 0
  309.       @mp_space = (@type == "MP" or @type == "TP") ? MP_TP_STRING_SPACE : 0      
  310.       if @value.is_a?(Numeric)
  311.          create_damage_number
  312.       elsif @value == "Missed" or  @value == "Evaded"  
  313.          create_damage_miss
  314.       else   
  315.          create_damage_string
  316.       end
  317.       self.x =  @x - (@center_x * (@cw / 2)) + DAMAGE_POSITION_CORRECTION[0]
  318.       self.y = @y + DAMAGE_POSITION_CORRECTION[1]
  319.       self.opacity = 1
  320.       zx = self.viewport != nil ? self.viewport.z : 0
  321.       self.z = DAMAGE_Z + zx
  322.       self.visible = false
  323.       damage_dir = rand(2)
  324.       @speed_x = straight_pop? ? 0 : damage_dir == 1 ? -rand(2) : rand(2)
  325.       @speed_y = 0
  326.   end
  327.  
  328.   #--------------------------------------------------------------------------
  329.   # ● Straight Pop
  330.   #--------------------------------------------------------------------------               
  331.   def straight_pop?
  332.       case @type
  333.          when "Gold";        return true
  334.          when "Exp";         return true
  335.          when "Level_UP";    return true
  336.       end
  337.       return false
  338.   end  
  339.  
  340.   #--------------------------------------------------------------------------
  341.   # ● Create Damage Number
  342.   #--------------------------------------------------------------------------            
  343.   def create_damage_miss
  344.       dam = @value == "Missed" ? 5 : 6
  345.       self.bitmap = Bitmap.new(@cw * 5, @ch)  
  346.       src_rect = Rect.new(0, dam * @ch,  @cw * 10, @ch)
  347.       self.bitmap.blt(0, 0, @image, src_rect)
  348.       @center_x += 5
  349.   end
  350.  
  351.   #--------------------------------------------------------------------------
  352.   # ● Create Damage Number
  353.   #--------------------------------------------------------------------------           
  354.   def create_damage_number
  355.       dam = @critical ? @ch * 2 : @value >= 0 ? 0 : @ch
  356.       f = @value >= 0 ? 0 : 1
  357.       number_value = @value.to_s.split(//)
  358.       self.bitmap = Bitmap.new(@mp_space + (@cw * number_value.size),@ch * 4)     
  359.       for r in f...number_value.size        
  360.          number_value_abs = number_value[r].to_i
  361.          src_rect = Rect.new(@cw * number_value_abs, dam, @cw, @ch)
  362.          self.bitmap.blt(@mp_space + (@cw *  r), 0, @image, src_rect)
  363.          @center_x += 1
  364.       end
  365.       if @type == "MP" or @type == "TP"
  366.          ty = @type == "MP" ? 3 : 4
  367.          src_rect = Rect.new(0, @ch * ty, @cw * 10, @ch)
  368.          self.bitmap.blt(0, 0, @image, src_rect)         
  369.          @center_x += 2
  370.       end
  371.       @center_x += 1 if @value < 0
  372.   end  
  373.  
  374.   #--------------------------------------------------------------------------
  375.   # ● Create Damage String
  376.   #--------------------------------------------------------------------------            
  377.   def create_damage_string
  378.       string_size = @value.to_s.split(//)
  379.       @stg_size = string_size.size > 0 ? ((1 + string_size.size) * 24) : 32      
  380.       self.bitmap = Bitmap.new(@stg_size,32)
  381.       self.bitmap.font.size = 28
  382.       self.bitmap.font.bold = true
  383.       @center_x = 2 + (string_size.size / 2)
  384.       if @state_index != nil
  385.          draw_states
  386.        else
  387.          execute_font_color
  388.          damage_string = @value.to_s         
  389.          self.bitmap.draw_text(0, 0, @stg_size, 32, damage_string,0)
  390.       end
  391.   end  
  392.  
  393.   #--------------------------------------------------------------------------
  394.   # ● Execute Font Color
  395.   #--------------------------------------------------------------------------               
  396.   def execute_font_color
  397.       case @type
  398.            when "Gold"
  399.                @duration = 160
  400.                self.bitmap.font.color = Color.new(255,255,100)
  401.            when "Exp"
  402.                @duration = 120
  403.                self.bitmap.font.color = Color.new(0,255,100)
  404.            when "Level_UP"   
  405.                self.bitmap.font.color = Color.new(50,155,255)  
  406.            else  
  407.                self.bitmap.font.color = Color.new(255,255,255)
  408.       end
  409.   end
  410.  
  411.   #--------------------------------------------------------------------------
  412.   # ● Draw States
  413.   #--------------------------------------------------------------------------               
  414.   def draw_states
  415.       icon_image = Cache.system("Iconset")
  416.       if @type == "States Plus"
  417.          self.bitmap.font.color = Color.new(200,150,50)
  418.          damage_string = "+ " + @value.to_s
  419.       elsif @type == "States Minus"
  420.           self.bitmap.font.color = Color.new(100,100,100)   
  421.          damage_string = "- " + @value.to_s
  422.       end        
  423.       rect = Rect.new(@state_index % 16 * 24, @state_index / 16 * 24, 24, 24)
  424.       self.bitmap.blt(0, 0, icon_image, rect)  
  425.       self.bitmap.draw_text(26, 0, @stg_size - 24, 32, damage_string,0)
  426.       @center_x += 5
  427.       icon_image.dispose
  428.       icon_image = nil
  429.   end  
  430.  
  431.   #--------------------------------------------------------------------------
  432.   # ● Dispose
  433.   #--------------------------------------------------------------------------         
  434.   def dispose
  435.       return if @image == nil
  436.       @image.dispose
  437.       @image = nil
  438.       self.bitmap.dispose
  439.       self.bitmap = nil
  440.       @duration = -1
  441.   end  
  442.  
  443.   #--------------------------------------------------------------------------
  444.   # ● Update
  445.   #--------------------------------------------------------------------------         
  446.   def update
  447.       return if self.bitmap == nil   
  448.       @duration -= 1 if @duration > 0
  449.       self.visible = @duration > 80 ? false : true
  450.       case @duration
  451.          when 65..80
  452.             self.opacity += 5
  453.             self.x += @speed_x
  454.             self.y -= 5
  455.             critical_effect(0.05)
  456.          when 50..65  
  457.              self.opacity = 255
  458.              self.y -= 3
  459.              self.x += @speed_x
  460.              critical_effect(0.05)
  461.          when 35..50
  462.              self.opacity = 255
  463.              self.y += 3
  464.              critical_effect(-0.05)
  465.          when 0..35  
  466.              self.opacity -= 7
  467.              self.y -= 1
  468.              critical_effect(-0.05)
  469.       end
  470.       dispose if self.opacity <= 0  
  471.   end
  472.  
  473.   #--------------------------------------------------------------------------
  474.   # ● Critical Effect
  475.   #--------------------------------------------------------------------------           
  476.   def critical_effect(value)
  477.       return if !@critical
  478.       self.zoom_x += value
  479.       self.zoom_y = self.zoom_x      
  480.   end
  481.  
  482. end
  483.  
  484. #==============================================================================
  485. # ■ Sprite Battle
  486. #==============================================================================
  487. class Sprite_Battler < Sprite_Base
  488.  
  489.   #--------------------------------------------------------------------------
  490.   # ● Initialize
  491.   #--------------------------------------------------------------------------
  492.   alias mog_damagepop_initialize initialize
  493.   def initialize(viewport, battler = nil)
  494.       mog_damagepop_initialize(viewport, battler)
  495.       create_damage_sprite
  496.   end  
  497.  
  498.   #--------------------------------------------------------------------------
  499.   # ● Create Damage Sprite
  500.   #--------------------------------------------------------------------------           
  501.   def create_damage_sprite
  502.       dispose_damage_sprite
  503.       @damage_sprites = []
  504.   end
  505.  
  506.   #--------------------------------------------------------------------------
  507.   # ● Dispose
  508.   #--------------------------------------------------------------------------            
  509.   alias mog_damge_sprite_dispose dispose
  510.   def dispose
  511.       mog_damge_sprite_dispose
  512.       dispose_damage_sprite
  513.   end  
  514.  
  515.   #--------------------------------------------------------------------------
  516.   # ● Dispose Damage Sprite
  517.   #--------------------------------------------------------------------------               
  518.   def dispose_damage_sprite
  519.       return if @damage_sprites == nil
  520.       @damage_sprites.each {|sprite| sprite.dispose }
  521.       @damage_sprites.clear
  522.       @battler.damage.clear if @battler != nil
  523.   end  
  524.  
  525.   #--------------------------------------------------------------------------
  526.   # ● Update
  527.   #--------------------------------------------------------------------------                 
  528.   alias mog_damage_sprite_update update
  529.   def update
  530.       mog_damage_sprite_update
  531.       update_damage_sprite
  532.   end
  533.  
  534.   #--------------------------------------------------------------------------
  535.   # ● Create Damage
  536.   #--------------------------------------------------------------------------                    
  537.   def create_damage
  538.       return if !@battler.use_sprite?
  539.       index = 0
  540.       sx = @battler.screen_x != nil ? @battler.screen_x : self.x
  541.       sy = @battler.screen_y != nil ? @battler.screen_y : self.y
  542.       @damage_sprites = [] if @damage_sprites == nil
  543.       for i in @battler.damage
  544.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  545.           index += 1
  546.       end
  547.       @battler.damage.clear
  548.   end
  549.  
  550.   #--------------------------------------------------------------------------
  551.   # ● Update Damage Sprite
  552.   #--------------------------------------------------------------------------                  
  553.   def update_damage_sprite
  554.       return if @damage_sprites == nil or @battler == nil
  555.       if @initial_damage == nil
  556.          @initial_damage = true
  557.          @battler.damage.clear
  558.          return
  559.       end      
  560.       create_damage if !@battler.damage.empty?
  561.       if !@damage_sprites.empty?
  562.           clear = 0
  563.           for sprite in @damage_sprites
  564.               sprite.update
  565.               if sprite.duration == 0
  566.                  sprite.dispose
  567.               end   
  568.               clear += 1 if sprite.duration > 0
  569.           end
  570.           clear_damage if clear == 0
  571.       end
  572.   end  
  573.  
  574.   #--------------------------------------------------------------------------
  575.   # ● Update Damage Sprite
  576.   #--------------------------------------------------------------------------                     
  577.   def clear_damage
  578.       @damage_sprites.each {|sprite| sprite.dispose }
  579.       @damage_sprites.clear
  580.   end  
  581.  
  582.   #--------------------------------------------------------------------------
  583.   # ● Update Collapse
  584.   #--------------------------------------------------------------------------  
  585.   alias mog_damage_pop_update_collapse update_collapse
  586.   def update_collapse
  587.       mog_damage_pop_update_collapse
  588.       execute_exp_pop
  589.   end
  590.  
  591.   #--------------------------------------------------------------------------
  592.   # ● Update Instant Collapse
  593.   #--------------------------------------------------------------------------  
  594.   alias mog_damage_pop_update_instant_collapse update_instant_collapse
  595.   def update_instant_collapse
  596.       mog_damage_pop_update_instant_collapse
  597.       execute_exp_pop
  598.   end   
  599.  
  600.   #--------------------------------------------------------------------------
  601.   # ● Update Boss Collapse
  602.   #--------------------------------------------------------------------------  
  603.   alias mog_damage_pop_update_boss_collapse update_boss_collapse
  604.   def update_boss_collapse
  605.       mog_damage_pop_update_boss_collapse
  606.       execute_exp_pop
  607.   end
  608.  
  609.   #--------------------------------------------------------------------------
  610.   # ● Execute Exp Pop
  611.   #--------------------------------------------------------------------------  
  612.   def execute_exp_pop
  613.       return if @dam_exp != nil
  614.       return if !MOG_DAMAGEPOP::EXP_POPUP
  615.       return if @battler.is_a?(Game_Actor)
  616.       @dam_exp = true
  617.       @battler.damage.push(["EXP " + @battler.exp.to_s,"Exp"]) if @battler.exp > 0
  618.       @battler.damage.push([Vocab::currency_unit + " " + @battler.gold.to_s,"Gold"]) if @battler.gold > 0
  619.     end  
  620.  
  621. end
  622.  
  623.  
  624. #==============================================================================
  625. # ■ Game Interpreter
  626. #==============================================================================
  627. class Game_Interpreter
  628.  
  629.   #--------------------------------------------------------------------------
  630.   # ● damage Popup
  631.   #--------------------------------------------------------------------------      
  632.   def damage_popup(value,type = nil, critical = false)
  633.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  634.       $game_map.events[@event_id].damage.push([value,type,critical]) if same_map? && @event_id > 0
  635.   end  
  636.  
  637. end  
  638.  
  639. #==============================================================================
  640. # ■ Game Character
  641. #==============================================================================
  642. class Game_CharacterBase
  643.  
  644.   attr_accessor :damage
  645.  
  646.   #--------------------------------------------------------------------------
  647.   # ● Initialize
  648.   #--------------------------------------------------------------------------   
  649.   alias mog_damage_popup_initialize initialize
  650.   def initialize
  651.       @damage = []
  652.       mog_damage_popup_initialize
  653.   end
  654.  
  655.   #--------------------------------------------------------------------------
  656.   # ● damage Popup
  657.   #--------------------------------------------------------------------------      
  658.   def damage_popup(value,type = nil, critical = false)
  659.       type = (type == nil and value.is_a?(Numeric)) ? "HP" : type
  660.       @damage.push([value,type,critical])
  661.   end
  662.  
  663. end  
  664.  
  665. #==============================================================================
  666. # ■ Sprite Character
  667. #==============================================================================
  668. class Sprite_Character < Sprite_Base
  669.  
  670.   #--------------------------------------------------------------------------
  671.   # ● Initialize
  672.   #--------------------------------------------------------------------------  
  673.   alias mog_damage_popup_initialize initialize
  674.   def initialize(viewport, character = nil)
  675.       mog_damage_popup_initialize(viewport, character)
  676.       create_damage_sprite
  677.   end
  678.  
  679.   #--------------------------------------------------------------------------
  680.   # ● Create Damage Sprite
  681.   #--------------------------------------------------------------------------           
  682.   def create_damage_sprite
  683.       dispose_damage_sprite
  684.       @damage_sprites = []
  685.   end
  686.  
  687.   #--------------------------------------------------------------------------
  688.   # ● Dispose
  689.   #--------------------------------------------------------------------------
  690.   alias mog_damage_popup_dispose dispose
  691.   def dispose
  692.       mog_damage_popup_dispose
  693.       dispose_damage_sprite
  694.   end  
  695.  
  696.   #--------------------------------------------------------------------------
  697.   # ● Dispose Damage Sprite
  698.   #--------------------------------------------------------------------------               
  699.   def dispose_damage_sprite
  700.       return if @damage_sprites == nil
  701.       @damage_sprites.each {|sprite| sprite.dispose }
  702.       @damage_sprites.clear
  703.       @character.damage.clear
  704.       $game_temp.dispose_damage_sprite = false
  705.   end   
  706.  
  707.   #--------------------------------------------------------------------------
  708.   # ● Update
  709.   #--------------------------------------------------------------------------  
  710.   alias mog_damage_popup_update update
  711.   def update
  712.       mog_damage_popup_update
  713.       update_damage_sprite
  714.   end
  715.  
  716.   #--------------------------------------------------------------------------
  717.   # ● Create Damage
  718.   #--------------------------------------------------------------------------                    
  719.   def create_damage
  720.       index = 0
  721.       sx = self.x
  722.       sy = self.y + @ch
  723.       @damage_sprites = [] if @damage_sprites == nil
  724.       for i in @character.damage
  725.           @damage_sprites.push(Damage_Sprite.new(nil,sx,sy,i,index))
  726.           index += 1
  727.       end
  728.       @character.damage.clear
  729.   end
  730.  
  731.   #--------------------------------------------------------------------------
  732.   # ● Update Damage Sprite
  733.   #--------------------------------------------------------------------------                  
  734.   def update_damage_sprite
  735.       return if @damage_sprites == nil
  736.       if @initial_damage == nil
  737.          @initial_damage = true
  738.          @character.damage.clear
  739.          return
  740.       end      
  741.       create_damage if !@character.damage.empty?
  742.       if !@damage_sprites.empty?
  743.           clear = 0
  744.           for sprite in @damage_sprites
  745.               sprite.update
  746.               if sprite.duration == 0
  747.                  sprite.dispose
  748.               end   
  749.               clear += 1 if sprite.duration > 0
  750.           end
  751.           clear_damage if clear == 0
  752.       end
  753.   end   
  754.  
  755.   #--------------------------------------------------------------------------
  756.   # ● Update Damage Sprite
  757.   #--------------------------------------------------------------------------                     
  758.   def clear_damage
  759.       @damage_sprites.each {|sprite| sprite.dispose }
  760.       @damage_sprites.clear
  761.       @character.damage.clear
  762.   end   
  763.  
  764. end
  765.  
  766. #=============================================================================
  767. # ■ Game_Temp
  768. #=============================================================================
  769. class Game_Temp
  770.  
  771.   attr_accessor :dispose_damage_sprite
  772.  
  773.   #--------------------------------------------------------------------------
  774.   # ● Initialize
  775.   #--------------------------------------------------------------------------           
  776.   alias mog_dispose_damage_initialize initialize
  777.   def initialize
  778.       @dispose_damage_sprite = true
  779.       mog_dispose_damage_initialize
  780.   end
  781.  
  782. end
  783.  
  784. #=============================================================================
  785. # ■ Scene Manager
  786. #=============================================================================
  787. class << SceneManager
  788.  
  789.   #--------------------------------------------------------------------------
  790.   # ● Call
  791.   #--------------------------------------------------------------------------         
  792.   alias mog_damage_pop_call call
  793.   def call(scene_class)
  794.       $game_temp.dispose_damage_sprite = true
  795.       mog_damage_pop_call(scene_class)
  796.   end
  797.  
  798. end
  799.  
  800. #=============================================================================
  801. # ■ Scene Map
  802. #=============================================================================
  803. class Scene_Map < Scene_Base
  804.  
  805.   #--------------------------------------------------------------------------
  806.   # ● Update Scene
  807.   #--------------------------------------------------------------------------           
  808.   alias mog_dispose_damage_sprites_update update_scene
  809.   def update_scene
  810.       @spriteset.dispose_damage_sprites
  811.       mog_dispose_damage_sprites_update
  812.   end
  813.  
  814. end
  815.  
  816. #=============================================================================
  817. # ■ Spriteset Map
  818. #=============================================================================
  819. class Spriteset_Map
  820.  
  821.   #--------------------------------------------------------------------------
  822.   # ● Dispose Damage Sprites
  823.   #--------------------------------------------------------------------------            
  824.   def dispose_damage_sprites
  825.       return if !$game_temp.dispose_damage_sprite   
  826.       return if @character_sprites == nil
  827.       @character_sprites.each {|sprite| sprite.dispose_damage_sprite }
  828.       $game_temp.dispose_damage_sprite = false
  829.   end
  830.  
  831. end
  832.  
  833. #=============================================================================
  834. # ■ Scene Battle
  835. #=============================================================================
  836. class Scene_Battle < Scene_Base
  837.  
  838.   #--------------------------------------------------------------------------
  839.   # ● Update
  840.   #--------------------------------------------------------------------------               
  841.   alias mog_damage_popup_dispose_sprite_update update  
  842.   def update
  843.       @spriteset.dispose_damage_sprites
  844.       mog_damage_popup_dispose_sprite_update
  845.   end  
  846.  
  847. end
  848.  
  849. #=============================================================================
  850. # ■ Spriteset Battle
  851. #=============================================================================
  852. class Spriteset_Battle  
  853.  
  854.   #--------------------------------------------------------------------------
  855.   # ● Dispose Damage Sprites
  856.   #--------------------------------------------------------------------------            
  857.   def dispose_damage_sprites
  858.       return if !$game_temp.dispose_damage_sprite   
  859.       battler_sprites.each {|sprite| sprite.dispose_damage_sprite }
  860.       $game_temp.dispose_damage_sprite = false
  861.   end  
  862.  
  863. end
  864.  
  865. $mog_rgss3_damage_pop = true

评分

参与人数 1梦石 +2 收起 理由
迷糊的安安 + 2 认可答案 附赠66RPG提供的精美好人卡一张^^.

查看全部评分



回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
212 小时
注册时间
2012-3-5
帖子
228
3
 楼主| 发表于 2012-9-22 17:09:14 | 只看该作者
还有弱弱的问下 事件调用代码 是写到任务备注里么?


‘‘──布兰度西特于2012-9-22 17:10补充以下内容:

报错鸟~
’’

QQ截图20120922170749.jpg (20.75 KB, 下载次数: 14)

QQ截图20120922170749.jpg

点评

如何改?  发表于 2012-9-25 10:44
↓↓ 我汗了……178行是6R的@符号自动变成email地址的功能……= =  发表于 2012-9-24 18:58
呃~我添加的脚本是相当的多~  发表于 2012-9-24 14:15
君是不是添加了其它的脚本了- -  发表于 2012-9-24 12:49
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1093
在线时间
409 小时
注册时间
2012-8-7
帖子
1536
4
发表于 2012-9-24 08:40:31 | 只看该作者
布兰度西特 发表于 2012-9-22 17:09
还有弱弱的问下 事件调用代码 是写到任务备注里么?

不是,事件里脚本添加


回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 16:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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