Project1

标题: [XAS][强化]COMBO插件增强版--阶段连击(紧急修正.) [打印本页]

作者: 47731089    时间: 2013-6-11 16:07
标题: [XAS][强化]COMBO插件增强版--阶段连击(紧急修正.)
本帖最后由 47731089 于 2013-6-11 19:20 编辑






如图,实现上述的分阶段连击,达到一阶段增加<STRONG>提示音</STRONG>。
(默认是6个阶段:20 40 60 80 100 120 的连击数,可以按照需要改动)
总之不是很难啦,很简单的东西。
如果需要,咩还可以修改其他的连击脚本=.=


发现BUG了,打开关闭菜单时...图片会还原掉,现在已经修复,原来的几位..重新用新版本吧

[line]2[/line]
  1. #==============================================================================#
  2. # MOG_XAS 动画连击V 2.49ws.                                                        #
  3. #==============================================================================#                                            #
  4. #==============================================================================#
  5. #                                   描述                                       #
  6. #==============================================================================#
  7. # 显示对一个怪物的造成的连击数和总伤害。                                       #
  8. # 如果想用特定的TOOL来显示的话,检查SKILL表格中的HIT项目。                     #
  9. #==============================================================================#
  10. #                                                                              #
  11. # 需要的图片:                                                                  #
  12. #                                                                              #
  13. # Combo_Damage                                                                 #
  14. # Combo_Hud   
  15. # Combo_Hud1~6
  16. # Combo_Number   
  17. # Combo_Number1~6
  18. #               $game_temp.xascombo调用数                                                               #
  19. # 所有图片请务必放在Windowskins文件夹中.                                       #
  20. #  20130611.Ws.sheep
  21. # 修正了一个BUG,打开关闭菜单等操作时,会被还原为原图片。                                                                    #
  22. #==============================================================================#
  23. #==============================================================================#

  24. module MOG
  25. # 信息在屏幕上显示的时间.................................................[秒数]
  26.   XASCOMBO_TIME = 7
  27. # 连击显示窗口的位置 [X, Y]......................................[动态窗口位置]
  28.   CSTRIKE_POSITION = [590, 90]  
  29.    #修改BY WS.sheep 对应等级的COMBO提示音和数量(=.= 顺序可不能反唉)
  30.     C6_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE06_AMAZING", 100, 100)
  31.     COC_6 = 120
  32.    C5_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE05_EXCELLENT", 100, 100)
  33.    COC_5 = 100
  34.    C4_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE04_CLAZY", 100, 100)
  35.    COC_4 = 80
  36.    C3_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE03_GREAT", 100, 100)
  37.    COC_3 = 60
  38.    C2_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE02_COOL", 100, 100)
  39.    COC_2 = 40
  40.    C1_SE = RPG::AudioFile.new("[SYSTEM]_COMBO_SE01_NICE", 100, 100)
  41.    COC_1 = 20
  42.   
  43. end

  44. #==============================================================================
  45. # Game_Temp
  46. #==============================================================================
  47. class Game_Temp
  48.     attr_accessor :xascombo   
  49.     attr_accessor :xascombotime
  50.     attr_accessor :xascombotime2
  51.     attr_accessor :xascombowin_x
  52.     attr_accessor :xascombowin_y
  53.     attr_accessor :xascomboopa
  54.     attr_accessor :xas_hit
  55.     attr_accessor :xas_max_damage
  56.     attr_accessor :xashitwin_x
  57.     attr_accessor :xashitwin_y
  58.     attr_accessor :xashitwin_opa
  59.     attr_accessor :xashitwin_zoom_x
  60.     attr_accessor :xashitwin_zoom_y
  61.     attr_accessor :xasdamwin_x
  62.     attr_accessor :xasdamwin_y
  63.     attr_accessor :xasdamwin_opa
  64.     attr_accessor :xasdamwin_zoom_x
  65.     attr_accessor :xasdamwin_zoom_y   
  66.     attr_accessor :xashudwin_x
  67.     attr_accessor :xashudwin_y
  68.     attr_accessor :xashudwin_opa   

  69. #--------------------------------------------------------------------------
  70. # 初始化
  71. #--------------------------------------------------------------------------
  72.   alias mog_xascombo_initialize initialize
  73.   def initialize
  74.       mog_xascombo_initialize
  75.       @xascombo = 0
  76.       @xascombotime = 0
  77.       @xascombotime2 = 0
  78.       @xascombowin_x = -200
  79.       @xascombowin_y = 0
  80.       @xascomboopa = 0
  81.       @xas_hit = 0
  82.       $xas_comse = 0 # #修改BY WS.sheep
  83.       @xas_max_damage = 0
  84.       @xashitwin_x = 0
  85.       @xashitwin_y = 0
  86.       @xashitwin_opa = 0
  87.       @xashitwin_zoom_x = 1
  88.       @xashitwin_zoom_y = 1
  89.       @xashudwin_x = 0
  90.       @xashudwin_y = 0
  91.       @xashudwin_opa = 0
  92.       @xasdamwin_x = 0
  93.       @xasdamwin_y = 0
  94.       @xasdamwin_opa = 0
  95.       @xasdamwin_zoom_x = 1
  96.       @xasdamwin_zoom_y = 1      
  97.     end  
  98. end
  99.   
  100. #==============================================================================
  101. # Game_Battler
  102. #==============================================================================
  103. class Game_Battler
  104.   
  105. #--------------------------------------------------------------------------
  106. # 技能效果
  107. #--------------------------------------------------------------------------
  108.   alias mog_xascombo_skill_effect skill_effect
  109.     def skill_effect(user, skill)
  110.       mog_xascombo_skill_effect(user, skill)
  111.       if skill.element_set.include?($data_system.elements.index("HIT")) and
  112.          user.is_a?(Game_Actor) and self.is_a?(Game_Enemy) and
  113.          self.damage.to_i > 0
  114.           unless  XAS_BA_ENEMY::ITEM_ENEMY.include?(self.id)  
  115.             $game_temp.xascombo += 1
  116.             $game_temp.xascombotime = 3
  117.             $game_temp.xascombotime2 = 40 * MOG::XASCOMBO_TIME
  118.           end        
  119.       end
  120.    end
  121. end

  122. #===============================================================================
  123. # XRXS_BattlerAttachment
  124. #===============================================================================
  125. module XRXS_BattlerAttachment

  126. #--------------------------------------------------------------------------
  127. # 动作效果
  128. #--------------------------------------------------------------------------
  129.   alias mog_xas_max_damage_action_effect action_effect
  130.     def action_effect(bullet, action_id)
  131.     mog_xas_max_damage_action_effect(bullet, action_id)  
  132.     user = bullet.action.user
  133.       if self.battler.is_a?(Game_Enemy) and user.battler.is_a?(Game_Actor) and
  134.          self.battler.damage.to_i > 0 and not
  135.          XAS_BA_ENEMY::ITEM_ENEMY.include?(self.battler.id)  
  136.         $game_temp.xas_max_damage += self.battler.damage
  137.       end
  138.     end   
  139. end
  140.   
  141. #===============================================================================
  142. # Combo_Sprite_Hud
  143. #===============================================================================
  144. class Combo_Sprite_Hud < Sprite
  145.   include MOG
  146.   
  147. #--------------------------------------------------------------------------
  148. # 初始化
  149. #--------------------------------------------------------------------------
  150.   def initialize
  151.      @viewport = Viewport.new(0, 0, 640, 480)
  152.      @viewport.z = 9999     
  153.      super(@viewport)
  154.      @combo_hit = $game_temp.xascombo
  155.      @combo_image = RPG::Cache.windowskin("Combo_Number")
  156.      @combo_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
  157.      @combo = Sprite.new
  158.      @combo.bitmap = @combo_bitmap
  159.      @combo_im_cw = @combo_image.width / 10
  160.      @combo_im_ch = @combo_image.height     
  161.      @combo_number_text = @combo_hit.abs.to_s.split(//)
  162.      for r in 0..@combo_number_text.size - 1
  163.        @combo_number_abs = @combo_number_text[r].to_i
  164.        @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
  165.        @combo_bitmap.blt(100 + ((@combo_im_cw - 12) *  r), 0, @combo_image, @combo_src_rect)        
  166.      end      
  167.      @combo.z = 5009
  168.      @combo.ox = $game_temp.xashitwin_x
  169.      @combo.oy = $game_temp.xashitwin_y
  170.      @combo.zoom_x = $game_temp.xashitwin_zoom_x
  171.      @combo.zoom_y = $game_temp.xashitwin_zoom_y
  172.      @combo.opacity = $game_temp.xashitwin_opa  
  173.      @total_image = RPG::Cache.windowskin("Combo_damage")
  174.      @total_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
  175.      @total = Sprite.new
  176.      @total.bitmap = @total_bitmap
  177.      @total_im_cw = @total_image.width / 10
  178.      @total_im_ch = @total_image.height     
  179.      @total_number_text = $game_temp.xas_max_damage.abs.to_s.split(//)
  180.      for r in 0..@total_number_text.size - 1
  181.        @total_number_abs = @total_number_text[r].to_i
  182.        @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
  183.        @total_bitmap.blt(100 + ((@total_im_cw - 12) *  r), 0, @total_image, @total_src_rect)        
  184.      end      
  185.      @total.z = 5009
  186.      @total.ox = $game_temp.xasdamwin_x
  187.      @total.oy = $game_temp.xasdamwin_y
  188.      @total.zoom_x = $game_temp.xasdamwin_zoom_x
  189.      @total.zoom_y = $game_temp.xasdamwin_zoom_y
  190.      @total.opacity = $game_temp.xasdamwin_opa      
  191.      @hud = Sprite.new
  192.     @hud.bitmap = RPG::Cache.windowskin("Combo_HUD")
  193.      @hud.z = 5008
  194.      @hud.ox = $game_temp.xashudwin_x
  195.      @hud.oy = $game_temp.xashudwin_y
  196.      @hud.opacity = $game_temp.xashudwin_opa  
  197.            if  $xas_comse  ==6
  198.           @hud.bitmap = RPG::Cache.windowskin("Combo_HUD6")
  199.               @combo_image = RPG::Cache.windowskin("Combo_Number6")
  200.           elsif  $xas_comse ==5
  201.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD5")
  202.                 @combo_image = RPG::Cache.windowskin("Combo_Number5")
  203.           elsif  $xas_comse ==4
  204.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD4")
  205.                 @combo_image = RPG::Cache.windowskin("Combo_Number4")
  206.           elsif  $xas_comse ==3
  207.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD3")
  208.                 @combo_image = RPG::Cache.windowskin("Combo_Number3")
  209.           elsif  $xas_comse ==2
  210.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD2")
  211.                 @combo_image = RPG::Cache.windowskin("Combo_Number2")
  212.           elsif $xas_comse ==1
  213.             @combo_image = RPG::Cache.windowskin("Combo_Number1")
  214.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD1")
  215.              elsif $game_temp.xascombo == 0 and $xas_comse ==0
  216.                @hud.bitmap = RPG::Cache.windowskin("Combo_HUD")
  217.                @combo_image = RPG::Cache.windowskin("Combo_Number")
  218.             end
  219.      if @combo_hit <= 0
  220.          $xas_comse = 0 #修改BU WS.sheep
  221.        @combo.opacity = 0
  222.        @combo.visible = false  
  223.        @hud.visible = false  
  224.        @total.visible = false
  225.      else
  226.        @combo.visible = true
  227.        @hud.visible = true  
  228.        @total.visible = true
  229.      end  
  230.    end   
  231.    
  232. #--------------------------------------------------------------------------
  233. # 释放
  234. #--------------------------------------------------------------------------
  235.    def dispose
  236.         @combo_bitmap.dispose
  237.         @combo_bitmap = nil
  238.         @combo.bitmap.dispose
  239.         @combo.bitmap = nil
  240.         @combo.dispose
  241.         @combo = nil
  242.         @hud.bitmap.dispose
  243.         @hud.bitmap = nil
  244.         @hud.dispose
  245.         @hud = nil         
  246.         @total_bitmap.dispose
  247.         @total_bitmap = nil
  248.         @total.bitmap.dispose
  249.         @total.bitmap = nil
  250.         @total.dispose
  251.         @total = nil     
  252.         @viewport.dispose
  253.         @viewport = nil         
  254.    end
  255.    
  256. #--------------------------------------------------------------------------
  257. # 刷新
  258. #--------------------------------------------------------------------------
  259.    def refresh
  260.      @combo_hit = $game_temp.xascombo
  261.      combo_strike_valor = 0.1 *@combo_hit / 10
  262.      $game_temp.xashitwin_zoom_x = 2
  263.      $game_temp.xashitwin_zoom_y = 2  
  264.      $game_temp.xashitwin_opa = 70
  265.      $game_temp.xashitwin_x = 15
  266.      $game_temp.xashitwin_y = -10  
  267.      $game_temp.xashudwin_x = 0
  268.      $game_temp.xashudwin_y = -100
  269.      $game_temp.xashudwin_opa = 255   
  270.      $game_temp.xasdamwin_zoom_x = 1
  271.      $game_temp.xasdamwin_zoom_y = 1
  272.      $game_temp.xasdamwin_opa = 100
  273.      $game_temp.xasdamwin_x = -85
  274.      $game_temp.xasdamwin_y = -80     
  275.      @combo.bitmap.clear     
  276.      @combo_number_text = @combo_hit.abs.to_s.split(//)
  277.      for r in 0..@combo_number_text.size - 1
  278.        @combo_number_abs = @combo_number_text[r].to_i
  279.        @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
  280.        @combo_bitmap.blt(80 + ((@combo_im_cw - 8) *  r), 2, @combo_image, @combo_src_rect)        
  281.      end            
  282.      @total.bitmap.clear
  283.      @total_number_text = $game_temp.xas_max_damage.abs.to_s.split(//)
  284.      for r in 0..@total_number_text.size - 1
  285.        @total_number_abs = @total_number_text[r].to_i
  286.        @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
  287.        @total_bitmap.blt(100 + ((@total_im_cw - 12) *  r), 20, @total_image, @total_src_rect)        
  288.      end               
  289.        hud_pos_update
  290.        @combo.visible = true
  291.        @hud.visible = true  
  292.        @total.visible = true     
  293.   end
  294.      
  295. #--------------------------------------------------------------------------
  296. # 动态显示窗口位置刷新
  297. #--------------------------------------------------------------------------
  298.   def hud_pos_update     
  299.      @combo.ox = $game_temp.xashitwin_x
  300.      @combo.oy = $game_temp.xashitwin_y
  301.      @combo.zoom_x = $game_temp.xashitwin_zoom_x
  302.      @combo.zoom_y = $game_temp.xashitwin_zoom_y
  303.      @combo.opacity = $game_temp.xashitwin_opa
  304.      @hud.ox = $game_temp.xashudwin_x
  305.      @hud.oy = $game_temp.xashudwin_y  
  306.      @hud.opacity = $game_temp.xashudwin_opa  
  307.      @total.ox = $game_temp.xasdamwin_x
  308.      @total.oy = $game_temp.xasdamwin_y
  309.      @total.zoom_x = $game_temp.xasdamwin_zoom_x
  310.      @total.zoom_y = $game_temp.xasdamwin_zoom_y
  311.      @total.opacity = $game_temp.xasdamwin_opa  
  312.   end
  313.    
  314. #--------------------------------------------------------------------------
  315. # 滑动刷新
  316. #--------------------------------------------------------------------------
  317.   def slide_update
  318.          ################################修改BY WS.sheep
  319.       if $game_temp.xascombo >= COC_6 and $xas_comse  ==5
  320.           $game_system.se_play(MOG::C6_SE)
  321.           @hud.bitmap = RPG::Cache.windowskin("Combo_HUD6")
  322.               @combo_image = RPG::Cache.windowskin("Combo_Number6")
  323.                       $xas_comse +=1
  324.           elsif $game_temp.xascombo >= COC_5 and $xas_comse ==4
  325.             $game_system.se_play(MOG::C5_SE)
  326.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD5")
  327.                 @combo_image = RPG::Cache.windowskin("Combo_Number5")
  328.                        $xas_comse +=1
  329.           elsif $game_temp.xascombo >= COC_4 and $xas_comse ==3
  330.             $game_system.se_play(MOG::C4_SE)
  331.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD4")
  332.                 @combo_image = RPG::Cache.windowskin("Combo_Number4")
  333.                        $xas_comse +=1
  334.           elsif $game_temp.xascombo >= COC_3 and $xas_comse ==2
  335.             $game_system.se_play(MOG::C3_SE)
  336.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD3")
  337.                 @combo_image = RPG::Cache.windowskin("Combo_Number3")
  338.                         $xas_comse +=1
  339.           elsif $game_temp.xascombo >= COC_2 and $xas_comse ==1
  340.             $game_system.se_play(MOG::C2_SE)
  341.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD2")
  342.                 @combo_image = RPG::Cache.windowskin("Combo_Number2")
  343.                         $xas_comse +=1
  344.           elsif $game_temp.xascombo >= COC_1 and $xas_comse ==0
  345.             $game_system.se_play(MOG::C1_SE)
  346.             @combo_image = RPG::Cache.windowskin("Combo_Number1")
  347.             @hud.bitmap = RPG::Cache.windowskin("Combo_HUD1")
  348.                $xas_comse +=1
  349.              elsif $game_temp.xascombo == 0 and $xas_comse ==0
  350.                @hud.bitmap = RPG::Cache.windowskin("Combo_HUD")
  351.                @combo_image = RPG::Cache.windowskin("Combo_Number")
  352.             end
  353.             ######################################
  354.     if $game_temp.xascombotime > 0 and
  355.         $game_temp.xascombo > 0        
  356.      if $game_temp.xasdamwin_x < -65
  357.         $game_temp.xasdamwin_x += 1
  358.         $game_temp.xasdamwin_opa += 8        
  359.      elsif $game_temp.xasdamwin_x <= -65
  360.          $game_temp.xasdamwin_x = -65
  361.          $game_temp.xasdamwin_opa = 255
  362.      end              
  363.      if $game_temp.xascombotime > 0.1  
  364.         $game_temp.xashitwin_zoom_x -= 0.05
  365.         $game_temp.xashitwin_zoom_y -= 0.05      
  366.         $game_temp.xashitwin_opa += 8
  367.      elsif $game_temp.xascombotime <= 0.1 and
  368.         $game_temp.xascombo > 0
  369.         $game_temp.xashitwin_zoom_x = 1
  370.         $game_temp.xashitwin_zoom_y = 1
  371.         $game_temp.xashitwin_opa= 255
  372.         $game_temp.xashitwin_x = 10
  373.         $game_temp.xashitwin_y= -115
  374.      end           
  375.      if $game_temp.xashitwin_x > 25
  376.         $game_temp.xashitwin_x -= 5
  377.      end     
  378.      if $game_temp.xashitwin_y > -105
  379.         $game_temp.xashitwin_y -= 5
  380.      end           
  381.      elsif @combo.visible == true and
  382.        $game_temp.xascombotime2 < 80
  383.        $game_temp.xashitwin_x -= 5
  384.        $game_temp.xashitwin_opa -= 10
  385.        $game_temp.xasdamwin_x -= 3
  386.        $game_temp.xasdamwin_opa -= 10
  387.        $game_temp.xashudwin_x += 5
  388.        $game_temp.xashudwin_opa -= 10     
  389.        $game_temp.xascombo = 0
  390.        $game_temp.xas_max_damage = 0
  391.        @combo_hit = $game_temp.xascombo
  392.      end   
  393.   end
  394.   
  395. #--------------------------------------------------------------------------
  396. # 刷新
  397. #--------------------------------------------------------------------------
  398.   def update
  399.    if @combo.opacity <= 0
  400.        @combo.visible = false
  401.        @hud.visible = false  
  402.        @total.visible = false
  403.        $xas_comse = 0
  404.    end  
  405.     hud_pos_update         
  406.    if $game_temp.xascombo == 0
  407.      @combo_hit = $game_temp.xascombo  
  408.    end   
  409.     slide_update   
  410.    if @combo_hit != $game_temp.xascombo and
  411.       $game_temp.xascombo != 0
  412.       refresh
  413.     end     
  414.   end   
  415. end

  416. #===============================================================================
  417. # Scene_Map
  418. #===============================================================================
  419. class Scene_Map  
  420.   
  421. #--------------------------------------------------------------------------
  422. # Main
  423. #--------------------------------------------------------------------------
  424.   alias xascombo_main main
  425.   def main
  426.     @combosprite_hud = Combo_Sprite_Hud.new
  427.     xascombo_main
  428.     @combosprite_hud.dispose
  429.     @combosprite_hud = nil
  430.   end  
  431.   
  432. #--------------------------------------------------------------------------
  433. # 刷新
  434. #--------------------------------------------------------------------------
  435.   alias xascombo_update update
  436.   def update
  437.     xascombo_update   
  438.     $game_temp.xascombotime -= 0.15
  439.     $game_temp.xascombotime2 -= 1
  440.     @combosprite_hud.update
  441.   end  
  442. end

  443. $mog_rgss_xas_animated_combo_hit = true

复制代码

SE.zip

424.94 KB, 下载次数: 105

Windowskins.zip

343.33 KB, 下载次数: 117


作者: 小路比仔    时间: 2013-6-11 16:25
真不错的说……可惜的是我连XAS都没会用
作者: 47731089    时间: 2013-6-11 17:31
小路比仔 发表于 2013-6-11 16:25
真不错的说……可惜的是我连XAS都没会用

有其他的连击脚本也可以拿来改改的=w=等我去找一个..
作者: 小路比仔    时间: 2013-6-11 17:36
47731089 发表于 2013-6-11 17:31
有其他的连击脚本也可以拿来改改的=w=等我去找一个..

真有干劲的说~
作者: 47731089    时间: 2013-6-11 19:25
本帖最后由 47731089 于 2013-6-11 19:29 编辑

@107325420   
@小夏坑面包   
monster37
发现BUG,已更新(打开菜单关闭后COM的图案会还原,已经修复。)

作者: 1733450036    时间: 2013-6-11 23:48
不错啊,能不能做个xas的菜单啊,要华丽一点的,刚要回来xas的的制作中
作者: A龙之翱翔A    时间: 2013-6-12 19:40
看看再说。
作者: 47731089    时间: 2013-6-12 19:46
1733450036 发表于 2013-6-11 23:48
不错啊,能不能做个xas的菜单啊,要华丽一点的,刚要回来xas的的制作中 ...

话说XAS的菜单,那个快速菜单不就可以用吗?
只要再快速菜单添加一个绘制底图功能就行了,
菜单华丽的主要原因不是脚本或者功能多,果然美工很重要+.+
(PS:假期结束..有事烧纸)
作者: T君的暴走    时间: 2013-6-12 20:32
嗯……其实这个绘图自认为有些粗糙……
作者: 47731089    时间: 2013-6-12 20:47
T君的暴走 发表于 2013-6-12 20:32
嗯……其实这个绘图自认为有些粗糙……

素材背景不是关键=.=可以自己替换嘛
作者: 越前リョーマ    时间: 2013-6-13 07:14
实用性很好,会想到彩虹岛里跳那些话的时候就想多连一些,给人动力




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