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

Project1

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

[已经过期] 防禦時CP條不動

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
12 小时
注册时间
2008-8-25
帖子
31
跳转到指定楼层
1
发表于 2013-8-7 13:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我用的CP戰鬥是沒有防禦的設定,現在我把防禦加入戰鬥後,使用防禦不會令CP條重新計算,只會停在滿CP的時候,請問如何修改腳本?
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - AT System  (v0.7 Beta) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  6. #==============================================================================
  7. # Sistema de batalha de turnos em tempo real.
  8. #==============================================================================
  9.  
  10. #==============================================================================
  11. # ● Histórico (Version History)
  12. #==============================================================================
  13. # v 0.7 - Melhoria na performance.
  14. # v 0.6 - Corrigido o bug de ações forçadas consecutivas.
  15. #       - Corrigido o bug de contagem de turnos das condições. (Stop / Sleep)
  16. #       - Corrigido o bug de resetar o AT quando o battler recebe qualquer
  17. #         tipo de status que não tenham o  efeito Stop / Sleep.
  18. # v 0.5 - Corrigido o bug da contagem de turnos nas condições. (States)
  19. # v 0.4 - Corrigido o bug de crash randômico. (relativo a dispose de imagem.)
  20. #       - Corrigido o bug de crash randômico. (relativo ao turno.)
  21. #       - Corrigido o bug de travar a tela na execução da mensagem de batalha.
  22. # v 0.3 - Corrigido o Bug da janela de comando ao apertar a tecla Cancel.
  23. #       - Corrigido o Bug de não apresentar a janela de status no começo.
  24. #       - Melhor codificação para aumentar a compatibilidade.
  25. #       - Opção de definir a posição do medidor de AT pelo X&Y do battler.
  26. # v 0.2 - Corrigido o bug da seleção do alvo para ações de cast time.
  27. # v 0.1 - Primeiro lançamento.
  28. #==============================================================================
  29.  
  30. #==============================================================================
  31. # ● Imagens Necessárias
  32. #==============================================================================
  33. # Serão necessários as imagens:
  34. #
  35. # Battle_AT_Layout.png
  36. # Battle_AT_Meter.png
  37. #
  38. # Na pasta GRAPHICS/SYSTEM/
  39. #
  40. #==============================================================================
  41. # ● AT SYSTEM
  42. #==============================================================================
  43. # A velocidade de AT é baseaddo na agilidade do Battler.
  44. # Em caso de batalhas preventivas (Preemptive) os aliados começarão com AT em
  45. # 80% e os inimigos começarão com AT em 0 (Zero)
  46. # Em batalhas surpresas (Surprise) é o inverso das batalhas preventivas.
  47. # Em batalhas normais todos os battlers começarão com AT em 40%.
  48. #==============================================================================
  49. # ● CAST TIME
  50. #==============================================================================
  51. # Para definir uma habilidade ou item com a função de Cast Time basta definir
  52. # o valor da velocidade (Speed) diferente de 0 (Zero).
  53. #
  54. # NOTA - Não é possível ativar 2 ou mais habilidades com a função Cast Time no
  55. # mesmo turno. (Caso você esteja usando características de Multi Action em
  56. # seu projeto.)
  57. #==============================================================================
  58. module MOG_AT_SYSTEM
  59.   # Tipo de posicionamento da Hud.
  60.   # 0 - Posição fixa.
  61.   # 1 - Posição baseado no valor X e Y do battler.
  62.   HUD_POSITION_TYPE = 0
  63.   #Posição geral (Inicial) da Hud.
  64.   HUD_POSITION = [25,400]
  65.   #Posição do medidor de AT
  66.   AT_METER_POSITION = [29,1]
  67.   #Definição da posição do espaço da HUD entre os membros do grupo.
  68.   #
  69.   #MEMBERS_SPACE = [Horizontal ,Vertical]
  70.   #
  71.   MEMBERS_SPACE = [136,0]
  72.   #Velocidade de animação do medidor de at, defina 0 se não quiser a animação.
  73.   AT_METER_FLOW_SPEED = 3
  74.   #Prioridade da Hud.
  75.   BATTLE_HUD_Z = 0
  76.   #Som quando o sistema AT estiver no maximo
  77.   SE_ACTIVE = "Decision2"
  78.   #Definição do valor de AT para ativar a ação.(Gauge Meter).
  79.   AT_GAUGE_METER = 5000
  80.   # Definição do tipo de duração (Contagem/formula) de um turno.
  81.   # Essa definição influência na ativação dos eventos de batalha.
  82.   # (BATTLE EVENTS)
  83.   #
  84.   # 0 - Duração de um turno é um valor fixo.
  85.   # 1 - Duração de um turno é multiplicado pela quantidade de batllers.
  86.   # 2 - Duração de um turno é baseado na média de agilidade dos battlers.
  87.   #
  88.   TURN_DURATION_TYPE = 2
  89.   # Definição de valor usado para calcular a duração de um turno.
  90.   TURN_DURATION = 60
  91.   # Definição da animação quando o battler usa habilidades de carregamento.
  92.   CAST_ANIMATION = 49
  93.   # Ativar a janela de LOG, deixe desativado se desejar uma batalha mais
  94.   # dinâmica.
  95.   WAIT_LOG_WINDOW = false
  96.   # Ativar a mensagem inicial com os nomes dos inimigos.
  97.   MESSAGE_ENEMY_APPEAR = false
  98.   # Definição da posição da janela de mensagem.
  99.   # 0 - Superior
  100.   # 1 - Centro
  101.   # 2 - Inferior  
  102.   MESSAGE_POSITION = 0
  103. end
  104.  
  105. #==============================================================================
  106. # ■ Game_System
  107. #==============================================================================
  108. class Game_System
  109.  
  110.   attr_accessor :at_max
  111.  
  112.   #--------------------------------------------------------------------------
  113.   # ● Initialize
  114.   #--------------------------------------------------------------------------         
  115.   alias mog_at_system_initialize initialize
  116.   def initialize
  117.       @at_max = [[MOG_AT_SYSTEM::AT_GAUGE_METER, 999999].min, 100].max
  118.       mog_at_system_initialize
  119.   end
  120.  
  121. end
  122.  
  123. #==============================================================================
  124. # ■ BattleManager
  125. #==============================================================================
  126. module BattleManager
  127.  
  128.   #--------------------------------------------------------------------------
  129.   # ● Battle Start
  130.   #--------------------------------------------------------------------------  
  131.   def self.battle_start
  132.       $game_system.battle_count += 1
  133.       $game_party.on_battle_start
  134.       $game_troop.on_battle_start
  135.       if MOG_AT_SYSTEM::MESSAGE_ENEMY_APPEAR
  136.          $game_troop.enemy_names.each do |name|
  137.          $game_message.add(sprintf(Vocab::Emerge, name))
  138.          end
  139.       end
  140.       if @preemptive
  141.          $game_message.add(sprintf(Vocab::Preemptive, $game_party.name))
  142.       elsif @surprise
  143.          $game_message.add(sprintf(Vocab::Surprise, $game_party.name))
  144.       end
  145.       wait_for_message
  146.   end
  147.  
  148.   #--------------------------------------------------------------------------
  149.   # ● Input Start
  150.   #--------------------------------------------------------------------------
  151.   def self.input_start_at(battler)
  152.       if @phase != :input
  153.          @phase = :input
  154.          battler.make_actions
  155.          clear_actor
  156.       end
  157.       return !@surprise && battler.inputable?
  158.   end
  159.  
  160.   #--------------------------------------------------------------------------
  161.   # ● Turn Start
  162.   #--------------------------------------------------------------------------
  163.   def self.turn_start
  164.       @phase = :turn
  165.       clear_actor
  166.       make_action_orders
  167.   end  
  168.  
  169.   #--------------------------------------------------------------------------
  170.   # ● Preemtive Attack
  171.   #--------------------------------------------------------------------------  
  172.   def self.preemptive_attack
  173.       @preemptive
  174.   end  
  175.  
  176.   #--------------------------------------------------------------------------
  177.   # ● Suprise Attack
  178.   #--------------------------------------------------------------------------   
  179.   def self.surprise_attack
  180.       @surprise
  181.   end   
  182.  
  183. end  
  184.  
  185. #==============================================================================
  186. # ■ Game Action
  187. #==============================================================================
  188. class Game_Action  
  189.  
  190.   #--------------------------------------------------------------------------
  191.   # ● Prepare
  192.   #--------------------------------------------------------------------------            
  193.   alias mog_at_system_prepare prepare
  194.   def prepare
  195.       mog_at_system_prepare
  196.       set_cast_action
  197.   end
  198.  
  199.   #--------------------------------------------------------------------------
  200.   # ● Set Cast Action
  201.   #--------------------------------------------------------------------------               
  202.   def set_cast_action
  203.       return if forcing
  204.       if @item.object != nil and @item.object.speed != 0 and @subject.at_cast.empty?
  205.          @subject.at_cast = [@item.object,@item.object.speed.abs,@target_index]
  206.          @item.object = nil
  207.          @subject.animation_id = MOG_AT_SYSTEM::CAST_ANIMATION
  208.          @subject.at = 0
  209.          BattleManager.turn_end if @subject.auto_battle?
  210.       elsif !@subject.at_cast.empty?
  211.          if @subject.at_cast[1] == 0
  212.             @item.object = @subject.at_cast[0]
  213.             @target_index = @subject.at_cast[2]            
  214.             @subject.at_cast.clear
  215.          else   
  216.             @item.object = nil
  217.          end
  218.       end  
  219.   end  
  220.  
  221. end
  222.  
  223.  
  224. #==============================================================================
  225. # ■ Game Battler Base
  226. #==============================================================================
  227. class Game_BattlerBase  
  228.  
  229.   #--------------------------------------------------------------------------
  230.   # ● Inputable?
  231.   #--------------------------------------------------------------------------            
  232.   def inputable?
  233.       normal? && !auto_battle? && self.at == $game_system.at_max
  234.   end
  235.  
  236. end
  237.  
  238. #==============================================================================
  239. # ■ Game_Battler
  240. #==============================================================================
  241. class Game_Battler < Game_BattlerBase
  242.  
  243.    attr_accessor :at
  244.    attr_accessor :at_cast
  245.    attr_accessor :at_turn_duration
  246.  
  247.   #--------------------------------------------------------------------------
  248.   # ● Initialize
  249.   #--------------------------------------------------------------------------      
  250.    alias mog_at_system_initialize initialize
  251.    def initialize
  252.        mog_at_system_initialize
  253.        @at = 0
  254.        @at_cast = []
  255.        @at_cast_selectable = true
  256.        @at_turn_duration = 0
  257.    end
  258.  
  259.   #--------------------------------------------------------------------------
  260.   # ● At
  261.   #--------------------------------------------------------------------------         
  262.    def at
  263.        n = at_active? ? $game_system.at_max : 0
  264.        return [[@at, n].min, 0].max
  265.    end  
  266.  
  267.   #--------------------------------------------------------------------------
  268.   # ● At Active
  269.   #--------------------------------------------------------------------------            
  270.    def at_active?
  271.        return false if restriction >= 4
  272.        return false if self.hp == 0
  273.        return true
  274.    end  
  275.  
  276.   #--------------------------------------------------------------------------
  277.   # ● Added New State
  278.   #--------------------------------------------------------------------------  
  279.   alias mog_at_system_add_new_state add_new_state
  280.   def add_new_state(state_id)
  281.       mog_at_system_add_new_state(state_id)
  282.       if restriction >= 4
  283.          self.at_cast.clear
  284.          self.at = 0
  285.       end   
  286.   end   
  287.  
  288. end
  289.  
  290. #==============================================================================
  291. # ■ Game Enemy
  292. #==============================================================================
  293. class Game_Enemy < Game_Battler
  294.  
  295.   #--------------------------------------------------------------------------
  296.   # ● Tranform
  297.   #--------------------------------------------------------------------------  
  298.    alias mog_at_system_transform transform
  299.    def transform(enemy_id)
  300.        mog_at_system_transform(enemy_id)
  301.        self.at = 0
  302.        self.at_cast.clear
  303.    end
  304. end   
  305.  
  306. if !MOG_AT_SYSTEM::WAIT_LOG_WINDOW
  307. #==============================================================================
  308. # ■ BattleManager
  309. #==============================================================================
  310. class Window_BattleLog < Window_Selectable
  311.  
  312.   #--------------------------------------------------------------------------
  313.   # ● Refresh
  314.   #--------------------------------------------------------------------------   
  315.   def refresh
  316.   end  
  317.  
  318.   #--------------------------------------------------------------------------
  319.   # ● Message Speed
  320.   #--------------------------------------------------------------------------   
  321.   def message_speed
  322.       return 5
  323.   end
  324.  
  325. end
  326. end
  327.  
  328. #==============================================================================
  329. # ■ Scene Battle
  330. #==============================================================================
  331. class Scene_Battle < Scene_Base
  332.   include MOG_AT_SYSTEM
  333.  
  334.   #--------------------------------------------------------------------------
  335.   # ● AT Wait
  336.   #--------------------------------------------------------------------------         
  337.   alias mog_at_system_start start
  338.   def start
  339.       reset_at_parameter  
  340.       mog_at_system_start
  341.   end  
  342.  
  343.   #--------------------------------------------------------------------------
  344.   # ● Battle Start
  345.   #--------------------------------------------------------------------------
  346.   def battle_start
  347.       BattleManager.battle_start
  348.       process_event
  349.       set_turn_duration
  350.   end
  351.  
  352.   #--------------------------------------------------------------------------
  353.   # ● Reset AT Parameter
  354.   #--------------------------------------------------------------------------  
  355.   def reset_at_parameter
  356.       return if @at_phase != nil
  357.       @at_phase = 0
  358.       n_at = $game_system.at_max * 40 / 100
  359.       p_at = $game_system.at_max * 90 / 100
  360.       s_at = 0
  361.       all_battle_members.each do |battler|
  362.           if BattleManager.preemptive_attack
  363.              battler.at = p_at if battler.is_a?(Game_Actor)
  364.              battler.at = s_at if battler.is_a?(Game_Enemy)
  365.           elsif BattleManager.surprise_attack   
  366.              battler.at = p_at if battler.is_a?(Game_Enemy)
  367.              battler.at = s_at if battler.is_a?(Game_Actor)
  368.           else   
  369.              battler.at = n_at
  370.           end
  371.           if battler.at >= $game_system.at_max
  372.              battler.at = $game_system.at_max - 1
  373.           end
  374.           battler.at = 0 if battler.at < 0  
  375.           battler.at_cast.clear
  376.         end
  377.   end
  378.  
  379.   #--------------------------------------------------------------------------
  380.   # ● Set Turn Duration
  381.   #--------------------------------------------------------------------------
  382.   def set_turn_duration
  383.       max_battlers = all_battle_members.size > 0 ? all_battle_members.size : 1
  384.       case TURN_DURATION_TYPE
  385.         when 1
  386.            n  = TURN_DURATION * max_battlers
  387.         when 2
  388.            turn_sp = 0
  389.            all_battle_members.each do |battler|
  390.                turn_sp += battler.agi
  391.            end  
  392.            n = TURN_DURATION + (turn_sp / max_battlers)
  393.         else
  394.            n = TURN_DURATION
  395.       end
  396.       turn_time_max = [[n, 9999].min, 120].max
  397.       @turn_duration = [0, turn_time_max]
  398.       if @status_window != nil
  399.          @status_window.open
  400.       end   
  401.   end   
  402.  
  403.   #--------------------------------------------------------------------------
  404.   # ● Turn End
  405.   #--------------------------------------------------------------------------
  406.   def turn_end
  407.       @at_phase = 0
  408.       all_battle_members.each do |battler|
  409.          if battler.at >= $game_system.at_max
  410.             battler.at = 0
  411.             refresh_status
  412.             @log_window.display_auto_affected_status(battler)
  413.             @log_window.wait_and_clear
  414.          end
  415.       end
  416.       BattleManager.turn_end
  417.   end
  418.  
  419.   #--------------------------------------------------------------------------
  420.   # ● Update Turn Duration
  421.   #--------------------------------------------------------------------------            
  422.   def update_turn_duration
  423.       return if @turn_duration == nil or @turn_duration[0] == nil
  424.       @turn_duration[0] += 1
  425.       if @turn_duration[0] >= @turn_duration[1]
  426.          @turn_duration[0] = 0
  427.          $game_troop.increase_turn
  428.          process_event
  429.          check_states_effect_turn
  430.       end  
  431.   end
  432.  
  433.   #--------------------------------------------------------------------------
  434.   # ● Check States Effect Turn
  435.   #--------------------------------------------------------------------------               
  436.   def check_states_effect_turn
  437.       all_battle_members.each do |battler|  
  438.           battler.on_turn_end if battler.restriction >= 4
  439.       end  
  440.   end  
  441.  
  442.   #--------------------------------------------------------------------------
  443.   # ● Update AT System
  444.   #--------------------------------------------------------------------------           
  445.   def update_at_system      
  446.       reset_at_parameter if @at_phase == nil
  447.       set_turn_duration if @turn_duration == nil
  448.       return if !can_update_at?
  449.       update_turn_duration
  450.       all_battle_members.each do |battler|
  451.           update_battler_turn_duration(battler)
  452.           if !battler.at_cast.empty?
  453.              battler.at_cast[1] -= 1
  454.              if battler.at_cast[1] <= 0
  455.                 execute_at_cast(battler)
  456.                 break
  457.              end
  458.           else
  459.              battler.at += battler.agi
  460.           end   
  461.           if battler.at >= $game_system.at_max
  462.              battler.on_turn_end
  463.              update_at_actor(battler)
  464.              update_at_enemy(battler)
  465.              battler.current_action.prepare if battler.current_action
  466.              if battler.at_cast.empty?
  467.                 @at_phase = 1
  468.                 turn_start if battler.is_a?(Game_Enemy)
  469.              end            
  470.              break
  471.           end   
  472.       end  
  473.   end
  474.  
  475.   #--------------------------------------------------------------------------
  476.   # ● Update Battler Turn Duration
  477.   #--------------------------------------------------------------------------            
  478.   def update_battler_turn_duration(battler)
  479.       if battler.restriction >= 4
  480.          battler.at_turn_duration += 1
  481.          if battler.at_turn_duration >= $game_system.at_max
  482.             battler.on_turn_end
  483.             battler.at_turn_duration = 0
  484.          end   
  485.       else   
  486.          battler.at_turn_duration = 0
  487.       end  
  488.   end  
  489.  
  490.   #--------------------------------------------------------------------------
  491.   # ● Execute AT CAST
  492.   #--------------------------------------------------------------------------            
  493.   def execute_at_cast(battler)
  494.       @subject = battler
  495.       battler.make_actions  
  496.       turn_start
  497.   end  
  498.  
  499.   #--------------------------------------------------------------------------
  500.   # ● Update AT Actor
  501.   #--------------------------------------------------------------------------            
  502.   def update_at_actor(battler)   
  503.       return if !battler.is_a?(Game_Actor)
  504.       Audio.se_play("Audio/SE/" + SE_ACTIVE,100,100)  
  505.       start_party_command_selection_at(battler)
  506.   end
  507.  
  508.   #--------------------------------------------------------------------------
  509.   # ● Update AT Enemy
  510.   #--------------------------------------------------------------------------            
  511.   def update_at_enemy(battler)   
  512.       return if !battler.is_a?(Game_Enemy)
  513.       battler.make_actions
  514.   end   
  515.  
  516.   #--------------------------------------------------------------------------
  517.   # ● Can Update AT
  518.   #--------------------------------------------------------------------------            
  519.   def can_update_at?
  520.       return false if $game_troop.interpreter.running?
  521.       return false if BattleManager.action_forced?
  522.       return false if @at_phase != 0
  523.       return false if $game_message.visible
  524.       return false if BattleManager.in_turn?
  525.       return true
  526.   end   
  527.  
  528.   #--------------------------------------------------------------------------
  529.   # ● Star Party Command Selection at
  530.   #--------------------------------------------------------------------------
  531.   def start_party_command_selection_at(battler)
  532.       unless scene_changing?
  533.          refresh_status
  534.          @status_window.unselect
  535.          @status_window.open
  536.          if BattleManager.input_start_at(battler)
  537.             @actor_command_window.close
  538.             next_command
  539.          else
  540.            turn_start
  541.          end
  542.       end
  543.   end  
  544.  
  545.   #--------------------------------------------------------------------------
  546.   # ● Update Basic
  547.   #--------------------------------------------------------------------------        
  548.   alias mog_at_system_update_basic update_basic
  549.   def update_basic
  550.       mog_at_system_update_basic
  551.       update_at_system
  552.       update_party_command
  553.       $game_message.position = MESSAGE_POSITION
  554.   end
  555.  
  556.   #--------------------------------------------------------------------------
  557.   # ● Update Party Command
  558.   #--------------------------------------------------------------------------      
  559.   def update_party_command
  560.       return if !@party_command_window.active
  561.       return if !@actor_command_window.visible
  562.       return if $game_message.visible
  563.       if Input.trigger?(:B)
  564.          next_command
  565.          Sound.play_cancel
  566.          @party_command_window.active = false
  567.       end  
  568.   end
  569.  
  570. end
  571.  
  572. #==============================================================================
  573. # ■ AT Meter
  574. #==============================================================================
  575. class AT_Meter
  576.  
  577.   include MOG_AT_SYSTEM
  578.  
  579.   #--------------------------------------------------------------------------
  580.   # ● Initialize
  581.   #--------------------------------------------------------------------------   
  582.   def initialize(actor)
  583.       dispose
  584.       [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  585.       if HUD_POSITION_TYPE == 1 and @actor.use_sprite?
  586.          @x = HUD_POSITION[0] +  @actor.screen_x rescue 0
  587.          @y = HUD_POSITION[1] +  @actor.screnn_y rescue 0
  588.       else   
  589.          @x = HUD_POSITION[0] + (MEMBERS_SPACE[0] * @actor.index)
  590.          @y = HUD_POSITION[1] + (MEMBERS_SPACE[1] * @actor.index)        
  591.       end
  592.       pre_cache
  593.       create_layout
  594.       create_at_meter
  595.   end
  596.  
  597.   #--------------------------------------------------------------------------
  598.   # ● Pre Cache
  599.   #--------------------------------------------------------------------------      
  600.   def pre_cache
  601.       @meter = Cache.system("Battle_AT_Meter")   
  602.       @meter_cw = @meter.width / 3
  603.       @meter_ch = @meter.height / 3
  604.   end
  605.  
  606.   #--------------------------------------------------------------------------
  607.   # ● Create Layout
  608.   #--------------------------------------------------------------------------      
  609.   def create_layout
  610.       @layout = Sprite.new
  611.       @layout.bitmap = Cache.system("Battle_AT_Layout")
  612.       @layout.z = BATTLE_HUD_Z
  613.       @layout.x = @x
  614.       @layout.y = @y
  615.   end
  616.  
  617.   #--------------------------------------------------------------------------
  618.   # ● Create AT Meter
  619.   #--------------------------------------------------------------------------      
  620.   def create_at_meter
  621.       @at_meter = Sprite.new
  622.       @at_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  623.       @at_meter.z =  BATTLE_HUD_Z + 50
  624.       @at_meter.x = @x + AT_METER_POSITION[0]
  625.       @at_meter.y = @y + AT_METER_POSITION[1]
  626.       @at_flow = rand(@meter_cw * 2)
  627.       at_flow_update
  628.   end  
  629.  
  630.   #--------------------------------------------------------------------------
  631.   # ● Dispose
  632.   #--------------------------------------------------------------------------   
  633.   def dispose
  634.       return if @layout == nil
  635.       @layout.bitmap.dispose
  636.       @layout.dispose
  637.       @layout = nil
  638.       @at_meter.bitmap.dispose
  639.       @at_meter.dispose
  640.   end  
  641.  
  642.   #--------------------------------------------------------------------------
  643.   # ● Update
  644.   #--------------------------------------------------------------------------  
  645.   def update
  646.       return if @layout == nil
  647.       at_position
  648.       at_flow_update
  649.   end
  650.  
  651.   #--------------------------------------------------------------------------
  652.   # ● Update
  653.   #--------------------------------------------------------------------------   
  654.   def at_position
  655.       return unless HUD_POSITION_TYPE == 1 and @actor.use_sprite?
  656.       @x = HUD_POSITION[0] +  @actor.screen_x rescue 0
  657.       @y = HUD_POSITION[1] +  @actor.screnn_y rescue 0
  658.       @layout.x = @x
  659.       @layout.y = @y
  660.       @at_meter.x = @x + AT_METER_POSITION[0]
  661.       @at_meter.y = @y + AT_METER_POSITION[1]
  662.   end
  663.  
  664.   #--------------------------------------------------------------------------
  665.   # ● AT Flow Update
  666.   #--------------------------------------------------------------------------
  667.   def at_flow_update
  668.       @at_meter.bitmap.clear
  669.       if !@actor.at_cast.empty?
  670.          max_cast = @actor.at_cast[0].speed.abs != 0 ? @actor.at_cast[0].speed.abs : 1
  671.          at_width = @meter_cw * @actor.at_cast[1] / max_cast
  672.          ch = @meter_ch * 2
  673.       else
  674.          at_width = @meter_cw * @actor.at / $game_system.at_max
  675.          ch = @actor.at < $game_system.at_max ? 0 : @meter_ch
  676.       end  
  677.       src_rect = Rect.new(@at_flow, ch,at_width, @meter_ch)
  678.       @at_meter.bitmap.blt(0,0, @meter, src_rect)
  679.       @at_flow += AT_METER_FLOW_SPEED
  680.       @at_flow = 0 if @at_flow >=  @meter_cw * 2      
  681.   end   
  682.  
  683. end  
  684.  
  685. #==============================================================================
  686. # ■ Spriteset Battle
  687. #==============================================================================
  688. class Spriteset_Battle
  689.  
  690.   #--------------------------------------------------------------------------
  691.   # ● Initialize
  692.   #--------------------------------------------------------------------------           
  693.   alias mog_at_system_initialize initialize
  694.   def initialize
  695.       mog_at_system_initialize
  696.       create_at_meter
  697.   end  
  698.  
  699.   #--------------------------------------------------------------------------
  700.   # ● Create AT Meter
  701.   #--------------------------------------------------------------------------            
  702.   def create_at_meter
  703.       dispose_at_meter
  704.       @at_meter = []
  705.       index = 0
  706.       for i in $game_party.members
  707.           @at_meter.push(AT_Meter.new(i))
  708.           index += 1
  709.           break if index >= $game_party.max_battle_members
  710.       end      
  711.   end  
  712.  
  713.   #--------------------------------------------------------------------------
  714.   # ● Dispose
  715.   #--------------------------------------------------------------------------      
  716.   alias mog_at_system_dispose dispose
  717.   def dispose
  718.       mog_at_system_dispose
  719.       dispose_at_meter
  720.   end
  721.  
  722.   #--------------------------------------------------------------------------
  723.   # ● Dispose AT Meter
  724.   #--------------------------------------------------------------------------        
  725.   def dispose_at_meter
  726.       return if @at_meter == nil
  727.       @at_meter.each {|sprite| sprite.dispose }
  728.       @at_meter.clear
  729.       @at_meter = nil
  730.   end  
  731.  
  732.   #--------------------------------------------------------------------------
  733.   # ● Update
  734.   #--------------------------------------------------------------------------        
  735.   alias mog_at_system_update update
  736.   def update
  737.       mog_at_system_update
  738.       update_at_meter
  739.   end  
  740.  
  741.   #--------------------------------------------------------------------------
  742.   # ● Update AT Meter
  743.   #--------------------------------------------------------------------------         
  744.   def update_at_meter
  745.       return if @at_meter == nil
  746.       @at_meter.each {|sprite| sprite.update }
  747.   end  
  748.  
  749. end
  750.  
  751. $mog_rgss3_at_system = true

Lv1.梦旅人

梦石
0
星屑
60
在线时间
12 小时
注册时间
2008-8-25
帖子
31
2
 楼主| 发表于 2013-8-11 17:10:26 | 只看该作者
求好心人幫助
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
49
在线时间
219 小时
注册时间
2012-2-10
帖子
190
3
发表于 2013-8-11 19:56:57 | 只看该作者
你在技能设置里把“防御”的速度修正改成0就好了
一个用数年青春做数十小时独立游戏的男人
一个不懂绘画美工不会原创音乐不能自写脚本的男人
一个每天坚持填一点坑的男人
一个只为童年中二的梦想做游戏的男人
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 00:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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