Project1

标题: 求教一个VA版 “龙虎乱舞" [打印本页]

作者: 玄机子    时间: 2012-2-13 10:06
标题: 求教一个VA版 “龙虎乱舞"
求教一个VA版 “龙虎乱舞" 脚本或范例,就是按键后再发动技能的东东~ 拜托拜托鸟~
作者: 杂兵天下    时间: 2012-2-13 11:46
你说的是按键连技么?
或许在XP年代这个东西叫做龙虎乱舞。。。
  1. #==============================================================================
  2. #
  3. # ▼ Yanfly Engine Ace - Active Chain Skills v1.01
  4. # -- Last Updated: 2011.12.22
  5. # -- Level: Hard
  6. # -- Requires: n/a
  7. #
  8. #==============================================================================

  9. $imported = {} if $imported.nil?
  10. $imported["YEA-ActiveChainSkills"] = true

  11. #==============================================================================
  12. # ▼ Updates
  13. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  14. # 2011.12.22 - Better updating speed for window.
  15. # 2011.12.18 - Started Script and Finished.
  16. #
  17. #==============================================================================
  18. # ▼ Introduction
  19. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  20. # This script enables the usage of Active Chain Skills. When a skill with any
  21. # potential chain skill occurs, potentially chainable skills will be listed on
  22. # the side of the screen and if the player presses the right button to trigger
  23. # that chain skill, the battler's next action will lead into the next chain
  24. # skill. Chain skills can only be used by actors and can be endlessly chained
  25. # until either the actor runs out of skill cost resources or until the actor
  26. # performs a chained skill without any skills to chain off of.
  27. #
  28. #==============================================================================
  29. # ▼ Instructions
  30. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  31. # To install this script, open up your script editor and copy/paste this script
  32. # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
  33. #
  34. # -----------------------------------------------------------------------------
  35. # Skill Notetags - These notetags go in the skill notebox in the database.
  36. # -----------------------------------------------------------------------------
  37. # <chain skill L: x>
  38. # <chain skill R: x>
  39. # <chain skill X: x>
  40. # <chain skill Y: x>
  41. # <chain skill Z: x>
  42. # Makes the skill with these notetags to become potentially chainable. Replace
  43. # x with the ID of the skill you want the button to cause the skill to chain.
  44. # Note that if the actor has not learned the chain skill, the chain skill will
  45. # not be listed. If the actor has learned the chain skill but lacks resources
  46. # to use it, it will be greyed out.
  47. #
  48. # <chain only>
  49. # This makes the skill usable only if it's used in a chain. This effect does
  50. # not affect monsters. Chain only skills can still be unusable if the user does
  51. # not meet the skill's other requirements. This means that the skill will be
  52. # disabled in the skill window when you try to actively use it from the window.
  53. #
  54. #==============================================================================
  55. # ▼ Compatibility
  56. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  57. # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
  58. # it will run with RPG Maker VX without adjusting.
  59. #
  60. # While this script doesn't interfere with Input Combo Skills, it will most
  61. # likely be unable to used in conjunction with Input Combo Skills. I will not
  62. # provide support for any errors that may occur from this, nor will I be
  63. # responsible for any damage doing this may cause your game.
  64. #
  65. #==============================================================================

  66. module YEA
  67.   module ACTIVE_CHAIN
  68.    
  69.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  70.     # - Chain Skill Settings -
  71.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  72.     # Adjust general settings here. These settings adjust the sound effect
  73.     # played when an active skill is selected and what the minimum time window
  74.     # is for an active chain skill.
  75.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  76.     # This will be the sound effect played whenever an active chain skill has
  77.     # been selected for chaining.
  78.     ACTIVE_SKILL_SOUND = RPG::SE.new("Skill2", 80, 100)
  79.    
  80.     # How many frames minimum for chain allowance. Sometimes the battlelog
  81.     # window will move too fast for the player to be able to chain. This sets
  82.     # a minimum timer for how long the chain window will stay open.
  83.     MINIMUM_TIME = 120
  84.    
  85.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  86.     # - Chain Skill Text -
  87.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  88.     # This section adjusts the text that appears for the chain skills. Adjust
  89.     # the text to appear as you see fit. Note that the vocab other than the
  90.     # title can use text codes.
  91.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  92.     CHAIN_TITLE  = "Active Chain Skills"
  93.     TITLE_SIZE   = 20
  94.     L_SKILL_ON   = "\eC[17]Q\eC[0]Chain: "
  95.     L_SKILL_OFF  = "\eC[7]QChain: "
  96.     L_SKILL_ACT  = "\eC[17]QChain: "
  97.     R_SKILL_ON   = "\eC[17]W\eC[0]Chain: "
  98.     R_SKILL_OFF  = "\eC[7]WChain: "
  99.     R_SKILL_ACT  = "\eC[17]WChain: "
  100.     X_SKILL_ON   = "\eC[17]A\eC[0]ttack: "
  101.     X_SKILL_OFF  = "\eC[7]Attack: "
  102.     X_SKILL_ACT  = "\eC[17]Attack: "
  103.     Y_SKILL_ON   = "\eC[17]S\eC[0]trike: "
  104.     Y_SKILL_OFF  = "\eC[7]Strike: "
  105.     Y_SKILL_ACT  = "\eC[17]Strike: "
  106.     Z_SKILL_ON   = "\eC[17]D\eC[0]efend: "
  107.     Z_SKILL_OFF  = "\eC[7]Defend: "
  108.     Z_SKILL_ACT  = "\eC[17]Defend: "
  109.    
  110.   end # ACTIVE_CHAIN
  111. end # YEA

  112. #==============================================================================
  113. # ▼ Editting anything past this point may potentially result in causing
  114. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  115. # halitosis so edit at your own risk.
  116. #==============================================================================

  117. module YEA
  118.   module REGEXP
  119.   module SKILL
  120.    
  121.     CHAIN_ONLY  = /<(?:CHAIN_ONLY|chain only)>/i
  122.     CHAIN_SKILL = /<(?:CHAIN_SKILL|chain skill)[ ]([LRXYZ]):[ ](\d+)>/i
  123.    
  124.   end # SKILL
  125.   end # REGEXP
  126. end # YEA

  127. #==============================================================================
  128. # ■ DataManager
  129. #==============================================================================

  130. module DataManager
  131.   
  132.   #--------------------------------------------------------------------------
  133.   # alias method: load_database
  134.   #--------------------------------------------------------------------------
  135.   class <<self; alias load_database_acs load_database; end
  136.   def self.load_database
  137.     load_database_acs
  138.     load_notetags_acs
  139.   end
  140.   
  141.   #--------------------------------------------------------------------------
  142.   # new method: load_notetags_acs
  143.   #--------------------------------------------------------------------------
  144.   def self.load_notetags_acs
  145.     for skill in $data_skills
  146.       next if skill.nil?
  147.       skill.load_notetags_acs
  148.     end
  149.   end
  150.   
  151. end # DataManager

  152. #==============================================================================
  153. # ■ RPG::Skill
  154. #==============================================================================

  155. class RPG::Skill < RPG::UsableItem
  156.   
  157.   #--------------------------------------------------------------------------
  158.   # public instance variables
  159.   #--------------------------------------------------------------------------
  160.   attr_accessor :chain_only
  161.   attr_accessor :chain_skill
  162.   
  163.   #--------------------------------------------------------------------------
  164.   # common cache: load_notetags_acs
  165.   #--------------------------------------------------------------------------
  166.   def load_notetags_acs
  167.     @chain_only = false
  168.     @chain_skill = {}
  169.     #---
  170.     self.note.split(/[\r\n]+/).each { |line|
  171.       case line
  172.       #---
  173.       when YEA::REGEXP::SKILL::CHAIN_ONLY
  174.         @chain_only = true
  175.       when YEA::REGEXP::SKILL::CHAIN_SKILL
  176.         case $1.upcase
  177.         when "L"; @chain_skill[:L] = $2.to_i
  178.         when "R"; @chain_skill[:R] = $2.to_i
  179.         when "X"; @chain_skill[:X] = $2.to_i
  180.         when "Y"; @chain_skill[:Y] = $2.to_i
  181.         when "Z"; @chain_skill[:Z] = $2.to_i
  182.         else; next
  183.         end
  184.       #---
  185.       end
  186.     } # self.note.split
  187.     #---
  188.   end
  189.   
  190. end # RPG::UsableItem

  191. #==============================================================================
  192. # ■ Game_Action
  193. #==============================================================================

  194. class Game_Action
  195.   
  196.   #--------------------------------------------------------------------------
  197.   # new method: set_active_chain_skill
  198.   #--------------------------------------------------------------------------
  199.   def set_active_chain_skill(skill_id)
  200.     set_skill(skill_id)
  201.     @target_index = subject.current_action.target_index
  202.     @active_chain_skill = true
  203.   end
  204.   
  205.   #--------------------------------------------------------------------------
  206.   # alias method: valid?
  207.   #--------------------------------------------------------------------------
  208.   alias game_action_valid_acs valid?
  209.   def valid?
  210.     subject.enable_active_chain(true) if @active_chain_skill
  211.     result = game_action_valid_acs
  212.     subject.enable_active_chain(false) if @active_chain_skill
  213.     return result
  214.   end
  215.   
  216. end # Game_Action

  217. #==============================================================================
  218. # ■ Game_BattlerBase
  219. #==============================================================================

  220. class Game_BattlerBase
  221.   
  222.   #--------------------------------------------------------------------------
  223.   # alias method: skill_conditions_met?
  224.   #--------------------------------------------------------------------------
  225.   alias game_battlerbase_skill_conditions_met_acs skill_conditions_met?
  226.   def skill_conditions_met?(skill)
  227.     return false if chain_skill_restriction?(skill)
  228.     return game_battlerbase_skill_conditions_met_acs(skill)
  229.   end
  230.   
  231.   #--------------------------------------------------------------------------
  232.   # new method: chain_skill_restriction?
  233.   #--------------------------------------------------------------------------
  234.   def chain_skill_restriction?(skill)
  235.     return false unless actor?
  236.     return false unless $game_party.in_battle
  237.     return false unless skill.chain_only
  238.     return !@active_chain_enabled
  239.   end
  240.   
  241.   #--------------------------------------------------------------------------
  242.   # alias method: hp=
  243.   #--------------------------------------------------------------------------
  244.   alias game_battlerbase_hpequals_acs hp=
  245.   def hp=(value)
  246.     game_battlerbase_hpequals_acs(value)
  247.     return unless SceneManager.scene_is?(Scene_Battle)
  248.     return unless actor?
  249.     return if value == 0
  250.     SceneManager.scene.refresh_active_chain_skill_window(self)
  251.   end
  252.   
  253.   #--------------------------------------------------------------------------
  254.   # alias method: mp=
  255.   #--------------------------------------------------------------------------
  256.   alias game_battlerbase_mpequals_acs mp=
  257.   def mp=(value)
  258.     game_battlerbase_mpequals_acs(value)
  259.     return unless SceneManager.scene_is?(Scene_Battle)
  260.     return unless actor?
  261.     return if value == 0
  262.     SceneManager.scene.refresh_active_chain_skill_window(self)
  263.   end
  264.   
  265.   #--------------------------------------------------------------------------
  266.   # alias method: tp=
  267.   #--------------------------------------------------------------------------
  268.   alias game_battlerbase_tpequals_acs tp=
  269.   def tp=(value)
  270.     game_battlerbase_tpequals_acs(value)
  271.     return unless SceneManager.scene_is?(Scene_Battle)
  272.     return unless actor?
  273.     return if value == 0
  274.     SceneManager.scene.refresh_active_chain_skill_window(self)
  275.   end
  276.   
  277. end # Game_BattlerBase

  278. #==============================================================================
  279. # ■ Game_Battler
  280. #==============================================================================

  281. class Game_Battler < Game_BattlerBase
  282.   
  283.   #--------------------------------------------------------------------------
  284.   # alias method: on_battle_start
  285.   #--------------------------------------------------------------------------
  286.   alias game_battler_on_battle_start_acs on_battle_start
  287.   def on_battle_start
  288.     game_battler_on_battle_start_acs
  289.     @active_chain_enabled = false
  290.   end
  291.   
  292.   #--------------------------------------------------------------------------
  293.   # alias method: on_battle_end
  294.   #--------------------------------------------------------------------------
  295.   alias game_battler_on_battle_end_acs on_battle_end
  296.   def on_battle_end
  297.     game_battler_on_battle_end_acs
  298.     @active_chain_enabled = false
  299.   end
  300.   
  301.   #--------------------------------------------------------------------------
  302.   # new method: enable_active_chain
  303.   #--------------------------------------------------------------------------
  304.   def enable_active_chain(active)
  305.     return unless actor?
  306.     @active_chain_enabled = active
  307.   end
  308.   
  309.   #--------------------------------------------------------------------------
  310.   # new method: add_active_skill_chain
  311.   #--------------------------------------------------------------------------
  312.   def add_active_skill_chain(skill_id)
  313.     chain_skill = Game_Action.new(self)
  314.     chain_skill.set_active_chain_skill(skill_id)
  315.     @actions.insert(1, chain_skill)
  316.   end
  317.   
  318. end # Game_Battler

  319. #==============================================================================
  320. # ■ Window_ChainSkillList
  321. #==============================================================================

  322. class Window_ChainSkillList < Window_Base
  323.   
  324.   #--------------------------------------------------------------------------
  325.   # initialize
  326.   #--------------------------------------------------------------------------
  327.   def initialize
  328.     dw = [Graphics.width/2, 320].max
  329.     super(-standard_padding, 0, dw, fitting_height(6))
  330.     self.z = 200
  331.     self.opacity = 0
  332.     hide
  333.   end
  334.   
  335.   #--------------------------------------------------------------------------
  336.   # reveal
  337.   #--------------------------------------------------------------------------
  338.   def reveal(battler, skill)
  339.     @battler = battler
  340.     @skill = skill
  341.     @chain_skills = []
  342.     for key in skill.chain_skill
  343.       next if key[1].nil?
  344.       next if $data_skills[key[1]].nil?
  345.       next unless @battler.skills.include?($data_skills[key[1]])
  346.       @chain_skills.push($data_skills[key[1]])
  347.     end
  348.     return if @chain_skills == []
  349.     self.y = Graphics.height - fitting_height(4)
  350.     self.y -= fitting_height(@chain_skills.size + 1)
  351.     show
  352.     activate
  353.     @enabled = true
  354.     refresh
  355.   end
  356.   
  357.   #--------------------------------------------------------------------------
  358.   # button=
  359.   #--------------------------------------------------------------------------
  360.   def button=(button)
  361.     @button = button
  362.     @enabled = false
  363.     refresh unless @button.nil?
  364.   end
  365.   
  366.   #--------------------------------------------------------------------------
  367.   # refresh_check
  368.   #--------------------------------------------------------------------------
  369.   def refresh_check(battler)
  370.     return if @battler != battler
  371.     refresh
  372.   end
  373.   
  374.   #--------------------------------------------------------------------------
  375.   # refresh
  376.   #--------------------------------------------------------------------------
  377.   def refresh
  378.     @button = nil if @enabled
  379.     contents.clear
  380.     draw_background_colour
  381.     draw_horz_line(0)
  382.     draw_combo_title
  383.     draw_chain_skills
  384.   end
  385.   
  386.   #--------------------------------------------------------------------------
  387.   # draw_background_colour
  388.   #--------------------------------------------------------------------------
  389.   def draw_background_colour
  390.     dh = line_height * (@chain_skills.size + 1)
  391.     rect = Rect.new(0, 0, contents.width, dh)
  392.     back_colour1 = Color.new(0, 0, 0, 192)
  393.     back_colour2 = Color.new(0, 0, 0, 0)
  394.     contents.gradient_fill_rect(rect, back_colour1, back_colour2)
  395.   end
  396.   
  397.   #--------------------------------------------------------------------------
  398.   # draw_horz_line
  399.   #--------------------------------------------------------------------------
  400.   def draw_horz_line(dy)
  401.     line_y = dy + line_height - 2
  402.     line_colour = normal_color
  403.     line_colour.alpha = 48
  404.     contents.fill_rect(0, line_y, contents.width, 2, line_colour)
  405.   end
  406.   
  407.   #--------------------------------------------------------------------------
  408.   # draw_combo_title
  409.   #--------------------------------------------------------------------------
  410.   def draw_combo_title
  411.     reset_font_settings
  412.     text = YEA::ACTIVE_CHAIN::CHAIN_TITLE
  413.     contents.font.size = YEA::ACTIVE_CHAIN::TITLE_SIZE
  414.     contents.font.bold = true
  415.     contents.font.italic = true
  416.     draw_text(12, 0, contents.width - 12, line_height, text)
  417.     reset_font_settings
  418.   end
  419.   
  420.   #--------------------------------------------------------------------------
  421.   # draw_chain_skills
  422.   #--------------------------------------------------------------------------
  423.   def draw_chain_skills
  424.     button_array = [:L, :R, :X, :Y, :Z]
  425.     dx = 24
  426.     dy = line_height
  427.     for button in button_array
  428.       next if @skill.chain_skill[button].nil?
  429.       chain_skill = $data_skills[@skill.chain_skill[button]]
  430.       next unless @battler.skills.include?(chain_skill)
  431.       text = text_setting(button, chain_skill)
  432.       text += sprintf("\eI[%d]", chain_skill.icon_index)
  433.       text += chain_skill.name
  434.       draw_text_ex(dx, dy, text)
  435.       dy += line_height
  436.     end
  437.   end
  438.   
  439.   #--------------------------------------------------------------------------
  440.   # text_setting
  441.   #--------------------------------------------------------------------------
  442.   def text_setting(button, skill)
  443.     active = button == @button
  444.     text = ""
  445.     case button
  446.     when :L
  447.       if @enabled && @battler.usable?(skill)
  448.         text = YEA::ACTIVE_CHAIN::L_SKILL_ON
  449.       elsif !@enabled && active
  450.         text = YEA::ACTIVE_CHAIN::L_SKILL_ACT
  451.       else
  452.         text = YEA::ACTIVE_CHAIN::L_SKILL_OFF
  453.       end
  454.     when :R
  455.       if @enabled && @battler.usable?(skill)
  456.         text = YEA::ACTIVE_CHAIN::R_SKILL_ON
  457.       elsif !@enabled && active
  458.         text = YEA::ACTIVE_CHAIN::R_SKILL_ACT
  459.       else
  460.         text = YEA::ACTIVE_CHAIN::R_SKILL_OFF
  461.       end
  462.     when :X
  463.       if @enabled && @battler.usable?(skill)
  464.         text = YEA::ACTIVE_CHAIN::X_SKILL_ON
  465.       elsif !@enabled && active
  466.         text = YEA::ACTIVE_CHAIN::X_SKILL_ACT
  467.       else
  468.         text = YEA::ACTIVE_CHAIN::X_SKILL_OFF
  469.       end
  470.     when :Y
  471.       if @enabled && @battler.usable?(skill)
  472.         text = YEA::ACTIVE_CHAIN::Y_SKILL_ON
  473.       elsif !@enabled && active
  474.         text = YEA::ACTIVE_CHAIN::Y_SKILL_ACT
  475.       else
  476.         text = YEA::ACTIVE_CHAIN::Y_SKILL_OFF
  477.       end
  478.     when :Z
  479.       if @enabled && @battler.usable?(skill)
  480.         text = YEA::ACTIVE_CHAIN::Z_SKILL_ON
  481.       elsif !@enabled && active
  482.         text = YEA::ACTIVE_CHAIN::Z_SKILL_ACT
  483.       else
  484.         text = YEA::ACTIVE_CHAIN::Z_SKILL_OFF
  485.       end
  486.     end
  487.     return text
  488.   end
  489.   
  490. end # Window_ChainSkillList

  491. #==============================================================================
  492. # ■ Scene_Battle
  493. #==============================================================================

  494. class Scene_Battle < Scene_Base
  495.   
  496.   #--------------------------------------------------------------------------
  497.   # alias method: create_all_windows
  498.   #--------------------------------------------------------------------------
  499.   alias scene_battle_create_all_windows_acs create_all_windows
  500.   def create_all_windows
  501.     scene_battle_create_all_windows_acs
  502.     create_chain_skill_window
  503.   end
  504.   
  505.   #--------------------------------------------------------------------------
  506.   # new method: create_chain_skill_window
  507.   #--------------------------------------------------------------------------
  508.   def create_chain_skill_window
  509.     @active_chain_skill_window = Window_ChainSkillList.new
  510.     @active_chain_skill_counter = 0
  511.   end
  512.   
  513.   #--------------------------------------------------------------------------
  514.   # alias method: use_item
  515.   #--------------------------------------------------------------------------
  516.   alias scene_battle_use_item_acs use_item
  517.   def use_item
  518.     @subject.enable_active_chain(true)
  519.     item = @subject.current_action.item
  520.     chain_skill_list_appear(true, item)
  521.     start_active_skill_counter(item)
  522.     scene_battle_use_item_acs
  523.     wait_active_skill_counter
  524.     chain_skill_list_appear(false, item)
  525.     @subject.enable_active_chain(false)
  526.   end
  527.   
  528.   #--------------------------------------------------------------------------
  529.   # new method: chain_skill_list_appear
  530.   #--------------------------------------------------------------------------
  531.   def chain_skill_list_appear(visible, skill)
  532.     return if @subject.nil?
  533.     return unless @subject.actor?
  534.     return unless skill.is_a?(RPG::Skill)
  535.     @active_chain_skill = 0
  536.     @current_chain_skill = skill
  537.     @active_chain_skill_window.reveal(@subject, skill) if visible
  538.     @active_chain_skill_window.hide unless visible
  539.   end
  540.   
  541.   #--------------------------------------------------------------------------
  542.   # new method: refresh_active_chain_skill_window
  543.   #--------------------------------------------------------------------------
  544.   def refresh_active_chain_skill_window(battler)
  545.     return unless @active_chain_skill_window.visible
  546.     @active_chain_skill_window.refresh_check(battler)
  547.   end
  548.   
  549.   #--------------------------------------------------------------------------
  550.   # new method: start_active_skill_counter
  551.   #--------------------------------------------------------------------------
  552.   def start_active_skill_counter(skill)
  553.     return unless @active_chain_skill_window.visible
  554.     @active_chain_skill_counter = YEA::ACTIVE_CHAIN::MINIMUM_TIME
  555.   end
  556.   
  557.   #--------------------------------------------------------------------------
  558.   # new method: wait_active_skill_counter
  559.   #--------------------------------------------------------------------------
  560.   def wait_active_skill_counter
  561.     return unless @active_chain_skill_window.visible
  562.     wait(@active_chain_skill_counter)
  563.   end
  564.   
  565.   #--------------------------------------------------------------------------
  566.   # new method: update_active_chain_skill_counter
  567.   #--------------------------------------------------------------------------
  568.   def update_active_chain_skill_counter
  569.     return if @active_chain_skill_counter == 0
  570.     @active_chain_skill_counter -= 1
  571.   end
  572.   
  573.   #--------------------------------------------------------------------------
  574.   # alias method: update_basic
  575.   #--------------------------------------------------------------------------
  576.   alias scene_battle_update_basic_acs update_basic
  577.   def update_basic
  578.     scene_battle_update_basic_acs
  579.     update_active_chain_skill_counter
  580.     update_active_chain_skill_select
  581.   end
  582.   
  583.   #--------------------------------------------------------------------------
  584.   # new method: update_active_chain_skill_select
  585.   #--------------------------------------------------------------------------
  586.   def update_active_chain_skill_select
  587.     return unless @active_chain_skill_window.visible
  588.     return if @active_chain_skill > 0
  589.     if Input.press?(:L)
  590.       check_active_chain_skill(:L)
  591.     elsif Input.press?(:R)
  592.       check_active_chain_skill(:R)
  593.     elsif Input.press?(:X)
  594.       check_active_chain_skill(:X)
  595.     elsif Input.press?(:Y)
  596.       check_active_chain_skill(:Y)
  597.     elsif Input.press?(:Z)
  598.       check_active_chain_skill(:Z)
  599.     end
  600.   end
  601.   
  602.   #--------------------------------------------------------------------------
  603.   # new method: check_active_chain_skill
  604.   #--------------------------------------------------------------------------
  605.   def check_active_chain_skill(button)
  606.     skill_id = @current_chain_skill.chain_skill[button]
  607.     return if skill_id.nil?
  608.     return if $data_skills[skill_id].nil?
  609.     chain_skill = $data_skills[skill_id]
  610.     return unless @subject.usable?(chain_skill)
  611.     return unless @subject.skills.include?(chain_skill)
  612.     @active_chain_skill_counter = 12
  613.     @active_chain_skill = skill_id
  614.     @active_chain_skill_window.button = button
  615.     YEA::ACTIVE_CHAIN::ACTIVE_SKILL_SOUND.play
  616.     @subject.add_active_skill_chain(skill_id)
  617.   end
  618.   
  619. end # Scene_Battle

  620. #==============================================================================
  621. #
  622. # ▼ End of File
  623. #
  624. #==============================================================================
复制代码

作者: 玄机子    时间: 2012-2-13 12:51
杂兵天下 发表于 2012-2-13 11:46
你说的是按键连技么?
或许在XP年代这个东西叫做龙虎乱舞。。。

呃~ 灰常灰常感谢你的回复,但是您发的这个东东...完全看不懂 .而且该怎么用呢 .TVT
作者: 杂兵天下    时间: 2012-2-13 15:02
玄机子 发表于 2012-2-13 12:51
呃~ 灰常灰常感谢你的回复,但是您发的这个东东...完全看不懂 .而且该怎么用呢 .TVT  ...

有英语提示的。
连技发动后有lrxyz五种按键连技方式。把
<chain skill L: x>
<chain skill R: x>
<chain skill X: x>
<chain skill Y: x>
<chain skill Z: x>
放在技能注释里
来设置连技。
必须学会要连的技能才能连技。
如果技能注释里有<CHAIN_ONLY>
则这个技能只能用连技方式打出,
不能正常使用。
作者: 玄机子    时间: 2012-2-13 18:44
本帖最后由 玄机子 于 2012-2-13 18:45 编辑
杂兵天下 发表于 2012-2-13 15:02
有英语提示的。
连技发动后有lrxyz五种按键连技方式。把




非常感谢,(不过试了多次还是....) 好像有点不一样~ 希望要的是这种http://rpg.blue/forum.php?mod=viewthread&tid=104941  的VA版

这是效果图




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