赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 29472 |
最后登录 | 2017-9-25 |
在线时间 | 572 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 53
- 在线时间
- 572 小时
- 注册时间
- 2011-4-1
- 帖子
- 749
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 hcm 于 2013-5-10 12:51 编辑
是Yanfly的连击脚本:(我不会贴脚本)
不过放脚本之前先说明白——
因为想到了这样一个系统,就是通过连击脚本实现“剑法(或枪法、弓法、棍法,最少五式,最多十式)”从一式到五式的转变,但是,想到十式剑法时,不知道如何添加,所以特来问一下!
好的,放脚本!- #==============================================================================
- #
- # ▼ Yanfly Engine Ace - Input Combo Skills v1.01
- # -- Last Updated: 2011.12.26
- # -- Level: Hard
- # -- Requires: n/a
- #
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported["YEA-InputComboSkills"] = true
- #==============================================================================
- # ▼ Updates
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # 2011.12.26 - Bug Fix: Crash when no action is performed.
- # 2011.12.22 - Started Script and Finished.
- #
- #==============================================================================
- # ▼ Introduction
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # This script enables the usage of Input Combo Skills. When an Input Combo
- # Skill is activated by an actor, a list of the potential input attacks appears
- # on the side of the screen. The player then presses the various buttons listed
- # in the window and attacks will occur in a combo fashion. If a particular
- # attack combination is met, a special attack will occur.
- #
- #==============================================================================
- # ▼ Instructions
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # To install this script, open up your script editor and copy/paste this script
- # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
- #
- # -----------------------------------------------------------------------------
- # Skill Notetags - These notetags go in the skill notebox in the database.
- # -----------------------------------------------------------------------------
- # <combo skill L: x>
- # <combo skill R: x>
- # <combo skill X: x>
- # <combo skill Y: x>
- # <combo skill Z: x>
- # Makes the skill with these notetags to become potentially comboable. Replace
- # x with the ID of the skill you want the button to cause the skill to combo.
- # The combo skill will be usable even if the user has not learned the skill.
- # However, if the user is unable to use the skill due to a lack of resources,
- # then the skill will be greyed out. The skill can be inputted, but if the user
- # lacks the resources, it will not perform and the skill combo will break.
- #
- # <combo max: x>
- # Sets the maximum number of inputs the player can use for this skill. If this
- # tag is not present, it will use the default number of maximum inputs that's
- # pre-defined by the module.
- #
- # <combo special string: x>
- # If the player inputs a sequence that matches the string (any combination of
- # L, R, X, Y, Z), then the special skill x will be performed. If a combination
- # is met, then the combo chain will end prematurely even if there are more
- # inputs left. If the user does not know skill x, then the special combo skill
- # x will not be performed.
- #
- # <combo only>
- # This makes a skill only usable in a combo and cannot be directly used from a
- # skill menu. This effect does not affect monsters. Combo skills will still be
- # unusable if the user does not meet the skill's other requirements (such as a
- # lack of MP or TP).
- #
- #==============================================================================
- # ▼ Compatibility
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
- # it will run with RPG Maker VX without adjusting.
- #
- # While this script doesn't interfere with Active Chain Skills, it will most
- # likely be unable to used in conjunction with Active Chain Skills. I will not
- # provide support for any errors that may occur from this, nor will I be
- # responsible for any damage doing this may cause your game.
- #
- #==============================================================================
- module YEA
- module INPUT_COMBO
-
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Combo Skill Settings -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # These settings adjust the sound effect played when a skill is selected,
- # what the minimum time windows are.
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # This will be the sound effect played whenever an active combo skill has
- # been selected for comboing.
- INPUT_COMBO_SOUND = RPG::SE.new("Skill2", 80, 100)
-
- # This will be the sound effect played when an input combo matches and
- # activates a specialized combo.
- ACHIEVED_COMBO_SOUND = RPG::SE.new("Skill3", 90, 100)
-
- # How many frames minimum for combo allowance. Sometimes the battlelog
- # window will move too fast for the player to be able to combo. This sets
- # a minimum timer for how long the combo window will stay open.
- MINIMUM_TIME = 90
-
- # This is the bonus number of frames of leeway that the player gets for
- # a larger input sequence. This is because the battlelog window may move
- # too fast for the player to be able to combo. This adds to the minimum
- # timer for how long the combo window will stay open.
- TIME_PER_INPUT = 30
-
- # This sets the default number of inputs that a combo skill can have at
- # maximum. If you wish to exceed this amount or to have lower than this
- # amount, use a notetag to change the skill's max combo amount.
- DEFAULT_MAX_INPUT = 5
-
- # This will be the "Window" colour used for a special skill in the display.
- SPECIAL_SKILL_COLOUR = 17
-
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Combo Skill Text -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # This section adjusts the text that appears for the combo skills. Adjust
- # the text to appear as you see fit. Note that the vocab other than the
- # title can use text codes.
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- COMBO_TITLE = "Input Combo Attacks"
- TITLE_SIZE = 20
- L_SKILL_ON = "\eC[17]Q\eC[0]: "
- L_SKILL_OFF = "\eC[7]Q: "
- R_SKILL_ON = "\eC[17]W\eC[0]: "
- R_SKILL_OFF = "\eC[7]W: "
- X_SKILL_ON = "\eC[17]A\eC[0]: "
- X_SKILL_OFF = "\eC[7]A: "
- Y_SKILL_ON = "\eC[17]S\eC[0]: "
- Y_SKILL_OFF = "\eC[7]S: "
- Z_SKILL_ON = "\eC[17]D\eC[0]: "
- Z_SKILL_OFF = "\eC[7]D: "
-
- end # INPUT_COMBO
- end # YEA
- #==============================================================================
- # ▼ Editting anything past this point may potentially result in causing
- # computer damage, incontinence, explosion of user's head, coma, death, and/or
- # halitosis so edit at your own risk.
- #==============================================================================
- module YEA
- module REGEXP
- module SKILL
-
- COMBO_MAX = /<(?:COMBO_MAX|combo max):[ ](\d+)>/i
- COMBO_ONLY = /<(?:COMBO_ONLY|combo only)>/i
- COMBO_SKILL = /<(?:COMBO_SKILL|combo skill)[ ]([LRXYZ]):[ ](\d+)>/i
- COMBO_SPECIAL = /<(?:COMBO_SPECIAL|combo special)[ ](.*):[ ](\d+)>/i
-
- end # SKILL
- end # REGEXP
- end # YEA
- #==============================================================================
- # ■ DataManager
- #==============================================================================
- module DataManager
-
- #--------------------------------------------------------------------------
- # alias method: load_database
- #--------------------------------------------------------------------------
- class <<self; alias load_database_ics load_database; end
- def self.load_database
- load_database_ics
- load_notetags_ics
- end
-
- #--------------------------------------------------------------------------
- # new method: load_notetags_ics
- #--------------------------------------------------------------------------
- def self.load_notetags_ics
- for skill in $data_skills
- next if skill.nil?
- skill.load_notetags_ics
- end
- end
-
- end # DataManager
- #==============================================================================
- # ■ RPG::Skill
- #==============================================================================
- class RPG::Skill < RPG::UsableItem
-
- #--------------------------------------------------------------------------
- # public instance variables
- #--------------------------------------------------------------------------
- attr_accessor :combo_only
- attr_accessor :combo_skill
- attr_accessor :combo_max
- attr_accessor :combo_special
-
- #--------------------------------------------------------------------------
- # common cache: load_notetags_ics
- #--------------------------------------------------------------------------
- def load_notetags_ics
- @combo_only = false
- @combo_skill = {}
- @combo_special = {}
- @combo_max = YEA::INPUT_COMBO::DEFAULT_MAX_INPUT
- #---
- self.note.split(/[\r\n]+/).each { |line|
- case line
- #---
- when YEA::REGEXP::SKILL::COMBO_ONLY
- @combo_only = true
- when YEA::REGEXP::SKILL::COMBO_SKILL
- case $1.upcase
- when "L"; @combo_skill[:L] = $2.to_i
- when "R"; @combo_skill[:R] = $2.to_i
- when "X"; @combo_skill[:X] = $2.to_i
- when "Y"; @combo_skill[:Y] = $2.to_i
- when "Z"; @combo_skill[:Z] = $2.to_i
- else; next
- end
- when YEA::REGEXP::SKILL::COMBO_MAX
- @combo_max = $1.to_i
- when YEA::REGEXP::SKILL::COMBO_SPECIAL
- @combo_special[$1.to_s.upcase] = $2.to_i
- #---
- end
- } # self.note.split
- #---
- end
-
- end # RPG::UsableItem
- #==============================================================================
- # ■ Game_Action
- #==============================================================================
- class Game_Action
-
- #--------------------------------------------------------------------------
- # new method: set_input_combo_skill
- #--------------------------------------------------------------------------
- def set_input_combo_skill(skill_id)
- set_skill(skill_id)
- @target_index = subject.current_action.target_index
- @input_combo_skill = true
- end
-
- #--------------------------------------------------------------------------
- # alias method: valid?
- #--------------------------------------------------------------------------
- alias game_action_valid_ics valid?
- def valid?
- subject.enable_input_combo(true) if @input_combo_skill
- result = game_action_valid_ics
- subject.enable_input_combo(false) if @input_combo_skill
- return result
- end
-
- end # Game_Action
- #==============================================================================
- # ■ Game_BattlerBase
- #==============================================================================
- class Game_BattlerBase
-
- #--------------------------------------------------------------------------
- # alias method: skill_conditions_met?
- #--------------------------------------------------------------------------
- alias game_battlerbase_skill_conditions_met_ics skill_conditions_met?
- def skill_conditions_met?(skill)
- return false if combo_skill_restriction?(skill)
- return game_battlerbase_skill_conditions_met_ics(skill)
- end
-
- #--------------------------------------------------------------------------
- # new method: combo_skill_restriction?
- #--------------------------------------------------------------------------
- def combo_skill_restriction?(skill)
- return false unless actor?
- return false unless $game_party.in_battle
- return false unless skill.combo_only
- return !@input_combo_enabled
- end
-
- #--------------------------------------------------------------------------
- # alias method: hp=
- #--------------------------------------------------------------------------
- alias game_battlerbase_hpequals_ics hp=
- def hp=(value)
- game_battlerbase_hpequals_ics(value)
- return unless SceneManager.scene_is?(Scene_Battle)
- return unless actor?
- return if value == 0
- SceneManager.scene.refresh_input_combo_skill_window(self)
- end
-
- #--------------------------------------------------------------------------
- # alias method: mp=
- #--------------------------------------------------------------------------
- alias game_battlerbase_mpequals_ics mp=
- def mp=(value)
- game_battlerbase_mpequals_ics(value)
- return unless SceneManager.scene_is?(Scene_Battle)
- return unless actor?
- return if value == 0
- SceneManager.scene.refresh_input_combo_skill_window(self)
- end
-
- #--------------------------------------------------------------------------
- # alias method: tp=
- #--------------------------------------------------------------------------
- alias game_battlerbase_tpequals_ics tp=
- def tp=(value)
- game_battlerbase_tpequals_ics(value)
- return unless SceneManager.scene_is?(Scene_Battle)
- return unless actor?
- return if value == 0
- SceneManager.scene.refresh_input_combo_skill_window(self)
- end
-
- end # Game_BattlerBase
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler < Game_BattlerBase
-
- #--------------------------------------------------------------------------
- # alias method: on_battle_start
- #--------------------------------------------------------------------------
- alias game_battler_on_battle_start_ics on_battle_start
- def on_battle_start
- game_battler_on_battle_start_ics
- @input_combo_enabled = false
- end
-
- #--------------------------------------------------------------------------
- # alias method: on_battle_end
- #--------------------------------------------------------------------------
- alias game_battler_on_battle_end_ics on_battle_end
- def on_battle_end
- game_battler_on_battle_end_ics
- @input_combo_enabled = false
- end
-
- #--------------------------------------------------------------------------
- # new method: enable_input_combo
- #--------------------------------------------------------------------------
- def enable_input_combo(active)
- return unless actor?
- @input_combo_enabled = active
- end
-
- end # Game_Battler
- #==============================================================================
- # ■ Window_ComboSkillList
- #==============================================================================
- class Window_ComboSkillList < Window_Base
-
- #--------------------------------------------------------------------------
- # initialize
- #--------------------------------------------------------------------------
- def initialize
- dw = [Graphics.width/2, 320].max
- super(-12, 0, dw, fitting_height(7))
- self.z = 200
- self.opacity = 0
- hide
- end
-
- #--------------------------------------------------------------------------
- # reveal
- #--------------------------------------------------------------------------
- def reveal(battler, skill)
- [url=home.php?mod=space&uid=133701]@battler[/url] = battler
- [url=home.php?mod=space&uid=260100]@skill[/url] = skill
- @combo_skills = []
- for key in skill.combo_skill
- next if key[1].nil?
- next if $data_skills[key[1]].nil?
- @combo_skills.push($data_skills[key[1]])
- end
- return if @combo_skills == []
- self.y = Graphics.height - fitting_height(4)
- self.y -= fitting_height(@combo_skills.size + 2)
- show
- activate
- refresh
- end
-
- #--------------------------------------------------------------------------
- # refresh_check
- #--------------------------------------------------------------------------
- def refresh_check(battler)
- return if [url=home.php?mod=space&uid=133701]@battler[/url] != battler
- refresh
- end
-
- #--------------------------------------------------------------------------
- # refresh
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- draw_background_colour
- draw_horz_line(0)
- draw_combo_title
- draw_horz_line(@combo_skills.size * line_height)
- draw_combo_skills
- end
-
- #--------------------------------------------------------------------------
- # draw_background_colour
- #--------------------------------------------------------------------------
- def draw_background_colour
- dh = line_height * (@combo_skills.size + 2)
- rect = Rect.new(0, 0, contents.width, dh)
- back_colour1 = Color.new(0, 0, 0, 192)
- back_colour2 = Color.new(0, 0, 0, 0)
- contents.gradient_fill_rect(rect, back_colour1, back_colour2)
- end
-
- #--------------------------------------------------------------------------
- # draw_horz_line
- #--------------------------------------------------------------------------
- def draw_horz_line(dy)
- line_y = dy + line_height - 2
- line_colour = normal_color
- line_colour.alpha = 48
- contents.fill_rect(0, line_y, contents.width, 2, line_colour)
- end
-
- #--------------------------------------------------------------------------
- # draw_combo_title
- #--------------------------------------------------------------------------
- def draw_combo_title
- reset_font_settings
- text = YEA::INPUT_COMBO::COMBO_TITLE
- contents.font.size = YEA::INPUT_COMBO::TITLE_SIZE
- contents.font.bold = true
- contents.font.italic = true
- draw_text(12, 0, contents.width - 12, line_height, text)
- reset_font_settings
- end
-
- #--------------------------------------------------------------------------
- # draw_combo_skills
- #--------------------------------------------------------------------------
- def draw_combo_skills
- button_array = [:L, :R, :X, :Y, :Z]
- dx = 24
- dy = line_height
- for button in button_array
- next if @skill.combo_skill[button].nil?
- combo_skill = $data_skills[@skill.combo_skill[button]]
- text = text_setting(button, combo_skill)
- text += sprintf("\eI[%d]", combo_skill.icon_index)
- text += combo_skill.name
- draw_text_ex(dx, dy, text)
- dy += line_height
- end
- end
-
- #--------------------------------------------------------------------------
- # text_setting
- #--------------------------------------------------------------------------
- def text_setting(button, skill)
- text = ""
- case button
- when :L
- if @battler.usable?(skill)
- text = YEA::INPUT_COMBO::L_SKILL_ON
- else
- text = YEA::INPUT_COMBO::L_SKILL_OFF
- end
- when :R
- if @battler.usable?(skill)
- text = YEA::INPUT_COMBO::R_SKILL_ON
- else
- text = YEA::INPUT_COMBO::R_SKILL_OFF
- end
- when :X
- if @battler.usable?(skill)
- text = YEA::INPUT_COMBO::X_SKILL_ON
- else
- text = YEA::INPUT_COMBO::X_SKILL_OFF
- end
- when :Y
- if @battler.usable?(skill)
- text = YEA::INPUT_COMBO::Y_SKILL_ON
- else
- text = YEA::INPUT_COMBO::Y_SKILL_OFF
- end
- when :Z
- if @battler.usable?(skill)
- text = YEA::INPUT_COMBO::Z_SKILL_ON
- else
- text = YEA::INPUT_COMBO::Z_SKILL_OFF
- end
- end
- return text
- end
-
- end # Window_ComboSkillList
- #==============================================================================
- # ■ Window_ComboInfo
- #==============================================================================
- class Window_ComboInfo < Window_Base
-
- #--------------------------------------------------------------------------
- # initialize
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, Graphics.width, fitting_height(1))
- self.y = Graphics.height - fitting_height(4) - fitting_height(1)
- self.opacity = 0
- self.z = 200
- @combos = []
- @special = nil
- hide
- end
-
- #--------------------------------------------------------------------------
- # reveal
- #--------------------------------------------------------------------------
- def reveal
- @combos = []
- @special = nil
- refresh
- show
- end
-
- #--------------------------------------------------------------------------
- # refresh
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- dx = draw_combo_icons
- draw_special(dx)
- end
-
- #--------------------------------------------------------------------------
- # add_combo
- #--------------------------------------------------------------------------
- def add_combo(icon, special = nil)
- @combos.push(icon)
- @special = special
- refresh
- end
-
- #--------------------------------------------------------------------------
- # draw_combo_icons
- #--------------------------------------------------------------------------
- def draw_combo_icons
- dx = 0
- for icon in @combos
- draw_icon(icon, dx, 0)
- dx += 24
- end
- return dx
- end
-
- #--------------------------------------------------------------------------
- # draw_special
- #--------------------------------------------------------------------------
- def draw_special(dx)
- return if @special.nil?
- draw_icon(@special.icon_index, dx + 12, 0)
- colour = text_color(YEA::INPUT_COMBO::SPECIAL_SKILL_COLOUR)
- change_color(colour)
- draw_text(dx + 36, 0, contents.width, line_height, @special.name)
- end
-
- end # Window_ComboInfo
- #==============================================================================
- # ■ Scene_Battle
- #==============================================================================
- class Scene_Battle < Scene_Base
-
- #--------------------------------------------------------------------------
- # alias method: create_all_windows
- #--------------------------------------------------------------------------
- alias scene_battle_create_all_windows_ics create_all_windows
- def create_all_windows
- scene_battle_create_all_windows_ics
- create_combo_skill_window
- end
-
- #--------------------------------------------------------------------------
- # new method: create_combo_skill_window
- #--------------------------------------------------------------------------
- def create_combo_skill_window
- @input_combo_skill_window = Window_ComboSkillList.new
- @input_combo_info_window = Window_ComboInfo.new
- @input_combo_skill_counter = 0
- end
-
- #--------------------------------------------------------------------------
- # alias method: use_item
- #--------------------------------------------------------------------------
- alias scene_battle_use_item_ics use_item
- def use_item
- @subject.enable_input_combo(true)
- item = @subject.current_action.item
- combo_skill_list_appear(true, item)
- start_input_combo_skill_counter(item)
- scene_battle_use_item_ics
- loop do
- break if break_input_combo?(item)
- update_basic
- update_combo_skill_queue
- end
- combo_skill_list_appear(false, item)
- @subject.enable_input_combo(false)
- end
-
- #--------------------------------------------------------------------------
- # new method: combo_skill_list_appear
- #--------------------------------------------------------------------------
- def combo_skill_list_appear(visible, skill)
- return if @subject.nil?
- return unless @subject.actor?
- return unless skill.is_a?(RPG::Skill)
- return if visible && @input_combo_skill_window.visible
- if visible
- @break_combo = false
- @current_combo_skill = skill
- @total_combo_skills = 0
- @combo_skill_queue = []
- @combo_skill_string = ""
- @input_combo_skill_window.reveal(@subject, skill)
- @input_combo_info_window.reveal
- else
- @input_combo_skill_window.hide
- @input_combo_info_window.hide
- return if @subject.current_action.nil?
- @subject.current_action.set_skill(@current_combo_skill.id)
- end
- end
-
- #--------------------------------------------------------------------------
- # new method: refresh_input_combo_skill_window
- #--------------------------------------------------------------------------
- def refresh_input_combo_skill_window(battler)
- return unless @input_combo_skill_window.visible
- @input_combo_skill_window.refresh_check(battler)
- end
-
- #--------------------------------------------------------------------------
- # new method: start_input_combo_skill_counter
- #--------------------------------------------------------------------------
- def start_input_combo_skill_counter(skill)
- return unless @input_combo_skill_window.visible
- @input_combo_skill_counter = YEA::INPUT_COMBO::MINIMUM_TIME
- bonus_time = skill.combo_max * YEA::INPUT_COMBO::TIME_PER_INPUT
- @input_combo_skill_counter += bonus_time
- end
-
- #--------------------------------------------------------------------------
- # new method: break_input_combo?
- #--------------------------------------------------------------------------
- def break_input_combo?(item)
- return true if @break_combo
- return true if @current_combo_skill.nil?
- return true if @current_combo_skill.combo_skill == {}
- return false if @combo_skill_queue != []
- return true if @total_combo_skills == @current_combo_skill.combo_max
- return @input_combo_skill_counter <= 0
- end
-
- #--------------------------------------------------------------------------
- # new method: update_combo_skill_queue
- #--------------------------------------------------------------------------
- def update_combo_skill_queue
- return if @combo_skill_queue == []
- action = @combo_skill_queue.shift
- if [email protected]?(action)
- @break_combo = true
- return
- end
- @subject.current_action.set_input_combo_skill(action.id)
- @log_window.clear
- execute_action
- end
-
- #--------------------------------------------------------------------------
- # alias method: update_basic
- #--------------------------------------------------------------------------
- alias scene_battle_update_basic_ics update_basic
- def update_basic
- scene_battle_update_basic_ics
- update_input_combo_skill_counter
- update_input_combo_skill_select
- end
-
- #--------------------------------------------------------------------------
- # new method: update_input_combo_skill_counter
- #--------------------------------------------------------------------------
- def update_input_combo_skill_counter
- return if @input_combo_skill_counter == 0
- @input_combo_skill_counter -= 1
- end
-
- #--------------------------------------------------------------------------
- # new method: update_input_combo_skill_select
- #--------------------------------------------------------------------------
- def update_input_combo_skill_select
- return unless @input_combo_skill_window.visible
- return if @total_combo_skills >= @current_combo_skill.combo_max
- if Input.trigger?(:L)
- check_input_combo_skill(:L)
- elsif Input.trigger?(:R)
- check_input_combo_skill(:R)
- elsif Input.trigger?(:X)
- check_input_combo_skill(:X)
- elsif Input.trigger?(:Y)
- check_input_combo_skill(:Y)
- elsif Input.trigger?(:Z)
- check_input_combo_skill(:Z)
- end
- end
-
- #--------------------------------------------------------------------------
- # new method: check_input_combo_skill
- #--------------------------------------------------------------------------
- def check_input_combo_skill(button)
- skill_id = @current_combo_skill.combo_skill[button]
- return if skill_id.nil?
- return if $data_skills[skill_id].nil?
- case button
- when :L; @combo_skill_string += "L"
- when :R; @combo_skill_string += "R"
- when :X; @combo_skill_string += "X"
- when :Y; @combo_skill_string += "Y"
- when :Z; @combo_skill_string += "Z"
- end
- if special_input_combo?
- icon = $data_skills[skill_id].icon_index
- @combo_skill_queue.push($data_skills[skill_id])
- skill_id = @current_combo_skill.combo_special[@combo_skill_string]
- combo_skill = $data_skills[skill_id]
- @input_combo_info_window.add_combo(icon, combo_skill)
- YEA::INPUT_COMBO::ACHIEVED_COMBO_SOUND.play
- @total_combo_skills = @current_combo_skill.combo_max
- else
- YEA::INPUT_COMBO::INPUT_COMBO_SOUND.play
- combo_skill = $data_skills[skill_id]
- @input_combo_info_window.add_combo(combo_skill.icon_index)
- @total_combo_skills += 1
- end
- @combo_skill_queue.push(combo_skill)
- return unless @total_combo_skills == @current_combo_skill.combo_max
- @input_combo_skill_counter = 0
- end
-
- #--------------------------------------------------------------------------
- # new method: special_input_combo?
- #--------------------------------------------------------------------------
- def special_input_combo?
- combo_hash = @current_combo_skill.combo_special
- return false unless combo_hash.include?(@combo_skill_string)
- skill = $data_skills[combo_hash[@combo_skill_string]]
- return @subject.skills.include?(skill)
- end
-
- end # Scene_Battle
- #==============================================================================
- #
- # ▼ End of File
- #
- #==============================================================================
复制代码 |
|