Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #_/ ◆ Passive Skills - KGC_PassiveSkill ◆ VX ◆
- #_/ ◇ Last Update: 2008/09/13 ◇
- #_/ ◆ Translation by Mr. Anonymous ◆
- #_/ ◆ KGC Site: ◆
- #_/ ◆ http://f44.aaa.livedoor.jp/~ytomy/ ◆
- #_/ ◆ Translator's Blog: ◆
- #_/ ◆ http://mraprojects.wordpress.com ◆
- #_/-----------------------------------------------------------------------------
- #_/ This script allows the designer to create "passive" skills, which may
- #_/ augment a character's abilities, rather than simple attacks.
- #_/=============================================================================
- #_/ ◆ Instructions For Usage ◆
- #_/ To assign a skill as passive, the following must be added into the skill's
- #_/ "Notes" box:
- #_/
- #_/ <PASSIVE_SKILL> Attribute Modifier Rate </PASSIVE_SKILL>
- #_/
- #_/ Example:
- #_/
- #_/ <PASSIVE_SKILL> ATK +5 </PASSIVE_SKILL>
- #_/ (Increase the character's attack by 5.)
- #_/
- #_/ You can have an unlimited amount of attribute settings within the passive
- #_/ skill tags. Percentiles and other mathematical expressions can also be used
- #_/ as demonstrated:
- #_/
- #_/ <PASSIVE_SKILL> MAXHP +20% MAXMP -20% DEF +5 SPI -5 </PASSIVE_SKILL>
- #_/ (Increase the character's maximum HP by 20 percent, decrease maximum MP by
- #_/ 20 percent. increase defense by 5, and decrease "spirit" by 5)
- #_/
- #_/ Also, you can assign other attributes to a character, such as adding the
- #_/ fire element to their basic attack function, state changes, such as adding
- #_/ stun to their basic attack, or adding resistance to states, such as making
- #_/ a character immune to being blinded. Using the default terminology setup:
- #_/
- #_/ ATTACK_ELEMENT = Adds an element to the character's basic attack
- #_/ PLUS_STATE = Adds a state change to an attack (State change affects target)
- #_/ INVALID_STATE = Adds a resistance to specified state changes to a character
- #_/ The modifiers for these are the Element ID#s and State ID#s, respectively.
- #_/ You can assign multiple values to each parameter. IE: 1,2,3, etc
- #_/
- #_/ FAST_ATTACK = Grants the actor automatic preemptive attacks.
- #_/ DUAL_ATTACK = The actor attacks twice in a row when attacking.
- #_/ CRITICAL_BONUS = Increases the actor's critical hit percentile.
- #_/ PREVENT_CRITICAL = Eliminate the chance of taking a critical hit from foe.
- #_/ HALF_MP_COST = MP cost for skills is halved.
- #_/ DOUBLE_EXP_GAIN = Doubles the experience points gained.
- #_/
- #_/ * The following tags require KCG_ReproduceFunctions *
- #_/ WHOLE_ATTACK = Actor attacks all enemies on-screen.
- #_/ IGNORE_EVA = Actor's attacks completely ignore the foe's evasion.
- #_/
- #_/ * The following tag requires KCG_AddEquipmentOptions *
- #_/ n TIMES_ATTACK = (Where n = Number) Normal attack strikes multiple times.
- #_/
- #_/ * The following tag requires KGC_EquipExtension *
- #_/ TWO_SWORDS_STYLE = Grants the two-weapon fighting ability.
- #_/ AUTO_BATTLE = Makes the actor preform actions automatically in battle.
- #_/ SUPER_GUARD = Reduces damage to 1/4 when using the defend command.
- #_/ PHARMACOLOGY = Doubles the healing effect for items.
- #_/
- #_/ Example:
- #_/
- #_/ <PASSIVE_SKILL> ATTACK_ELEMENT 8,9 PLUS_STATE 8 INVALID_STATE 6 </PASSIVE_SKILL>
- #_/ (Add Fire and Ice element to attack, add Stun state to attack, add
- #_/ resistance to Sleep state to character.)
- #_/
- #_/ You can also combine the use of stat increases/decreases and element/state
- #_/ changes into a single <PASSIVE_SKILL> statement.
- #_/
- #_/ One last note: When entering these values into the Skill's "Notes",
- #_/ each line needs to be separated by pressing enter. So, in our final example
- #_/ your setup should look something like this:
- #_/
- #_/ <PASSIVE_SKILL>
- #_/ MAXHP +20%
- #_/ MAXMP -20%
- #_/ ATTACK_ELEMENT 8,9
- #_/ PLUS_STATE 8
- #_/ </PASSIVE_SKILL>
- #_/=============================================================================
- #_/ Install: Insert below KCG_ReproduceFunctions, KCG_AddEquipmentOptions,
- #_/ and KGC_EquipExtension
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
- #=================================================#
- # IMPORT #
- #=================================================#
- $imported = {} if $imported == nil
- $imported["PassiveSkill"] = true
- #=================================================#
- #==============================================================================
- # □ KGC::PassiveSkill
- #==============================================================================
- # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
- # Note Field Tag Strings #
- # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
- # Whatever word(s) are after the separator ( | ) in the following lines are
- # what are used to determine what is searched for in the "Note" section of
- # a skill.
- module KGC
- module PassiveSkill
- # ◆ Passive Skill State Change Parameters ◆
- # These can be changed to fit your own purposes. (For memorization.)
- # The (obvious) setup is OriginalString|PersonalAbbreviation
- # These are what you'll use to set up the actual attribute bonus
- # that the skill provides. (IE. MAXHP +10%)
- # (ATTACK_ELEMENT 1,2 ) same as (atkelem 1,2)
- PARAMS = {
- :maxhp => "MAXHP|maximum_hp", # Maximum Hit Points
- :maxmp => "MAXMP|maximum_mp", # Maximum Magic Points
- :atk => "ATK|attack", # Attack
- :def => "DEF|defense", # Defense
- :spi => "SPI|spirit", # AKA "INT|Intelligence"
- :agi => "AGI|agility", # Agility
- :hit => "HIT|hit_ratio", # AKA "ACU|Accuracy"
- :eva => "EVA|evasion", # Evasion Ratio
- :cri => "CRI|critial", # Critial Ratio
- :odds => "LCK|luck", # Luck (See below)
- } # Affects the likelyhood of being targetted
- # ◆ Attribute State List ◆
- ARRAYS = {
- :attack_element => "ATTACK_ELEMENT|attack_element",
- :plus_state => "PLUS_STATE|plus_state",
- :invalid_state => "INVALID_STATE|invalid_state",
- :auto_state => "AUTO_STATE|auto_state",
- }
- # ◆ Passive Skill Special Effects ◆
- EFFECTS = {
- :two_swords_style => "TWO_SWORDS_STYLE|two_swords_style",
- :auto_battle => "AUTO_BATTLE|auto_battle",
- :super_guard => "SUPER_GUARD|super_guard",
- :pharmacology => "PHARMACOLOGY|pharmacology",
- :fast_attack => "FAST_ATTACK|fast_attack",
- :dual_attack => "DUAL_ATTACK|dual_attack",
- :critical_bonus => "CRITICAL_BONUS|critical_bonus",
- :prevent_critical => "PREVENT_CRITICAL|prevent_critical",
- :half_mp_cost => "HALF_MP_COST|half_mp_cost",
- :double_exp_gain => "DOUBLE_EXP_GAIN|double_exp_gain",
- # From KGC_ReproduceFunctions
- :whole_attack => "WHOLE_ATTACK|target_all",
- :ignore_eva => "IGNORE_EVA|ignore_evasion",
- # From KGC_AddEquipmentOptions
- :multi_attack_count => '(\d+)\s*(?:TIMES_ATTACK|multi_attack_count)',
- }
- #==============================================================================
- # □ KGC::EquipExtension::Regexp
- #==============================================================================
- # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
- # Note Field Tag Strings #
- # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
- # Whatever word(s) are after the separator ( | ) in the following lines are
- # what are used to determine what is searched for in the "Note" section of
- # a skill.
- # Regular Expression Definition
- module Regexp
- # Base Skill Module
- module Skill
- # Passive Skill Tag begin
- BEGIN_PASSIVE = /<(?:PASSIVE_SKILL|passive_skill)>/i
- # Passive Skill Tag end
- END_PASSIVE = /<\/(?:PASSIVE_SKILL|passive_skill)>/i
- # Parameter Tag Additions
- PASSIVE_PARAMS = /^\s*([^:\+\-\d\s]+)\s*([\+\-]\d+)([%%])?/
- # Passive arrays
- # Attack Element 1,2,3 etc
- PASSIVE_ARRAYS = /^\s*([^:\+\-\d\s]+)\s*(\d+(?:\s*,\s*\d+)*)/
- # Passive effects
- PASSIVE_EFFECTS = /^\s*([^:\+\-\d\s]+)/
- end
- end
- end
- end
- #=================================================#
- #==============================================================================
- # □ KGC::Commands
- #==============================================================================
- module KGC
- module Commands
- module_function
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの修正値を再設定
- #--------------------------------------------------------------------------
- def restore_passive_rev
- (1...$data_actors.size).each { |i|
- actor = $game_actors[i]
- actor.restore_passive_rev
- }
- end
- end
- end
- #=================================================#
- # INCLUDE COMMANDS #
- #=================================================#
- # Include KGC::Commands in Game_Interpreter #
- #=================================================#
- class Game_Interpreter
- include KGC::Commands
- end
- #=================================================#
- #==============================================================================
- # ■ RPG::Skill
- #==============================================================================
- class RPG::Skill < RPG::UsableItem
- #--------------------------------------------------------------------------
- # ○ パッシブスキルのキャッシュを生成
- #--------------------------------------------------------------------------
- def create_passive_skill_cache
- @__passive = false
- @__passive_params = {}
- @__passive_params_rate = {}
- @__passive_arrays = {}
- @__passive_effects = { :multi_attack_count => 1 }
- passive_flag = false
- self.note.each_line { |line|
- case line
- when KGC::PassiveSkill::Regexp::Skill::BEGIN_PASSIVE
- # パッシブスキル定義開始
- passive_flag = true
- @__passive = true
- when KGC::PassiveSkill::Regexp::Skill::END_PASSIVE
- # パッシブスキル定義終了
- passive_flag = false
- when KGC::PassiveSkill::Regexp::Skill::PASSIVE_PARAMS
- # 能力値修正
- if passive_flag
- apply_passive_params($1, $2.to_i, $3 != nil)
- end
- when KGC::PassiveSkill::Regexp::Skill::PASSIVE_ARRAYS
- # 属性・ステート
- if passive_flag
- apply_passive_arrays($1, $2.scan(/\d+/))
- end
- else
- # 特殊効果
- if passive_flag
- apply_passive_effects(line)
- end
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの能力値修正を適用
- # param : 対象パラメータ
- # value : 修正値
- # rate : true なら % 指定
- #--------------------------------------------------------------------------
- def apply_passive_params(param, value, rate)
- KGC::PassiveSkill::PARAMS.each { |k, v|
- if param =~ /(?:#{v})/i
- if rate
- @__passive_params_rate[k] = 0 if @__passive_params_rate[k] == nil
- @__passive_params_rate[k] += value
- else
- @__passive_params[k] = 0 if @__passive_params[k] == nil
- @__passive_params[k] += value
- end
- break
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの追加属性・ステートを適用
- # param : 対象パラメータ
- # list : 属性・ステート一覧
- #--------------------------------------------------------------------------
- def apply_passive_arrays(param, list)
- KGC::PassiveSkill::ARRAYS.each { |k, v|
- if param =~ /(?:#{v})/i
- values = []
- list.each { |num| values << num.to_i }
- @__passive_arrays[k] = [] if @__passive_arrays[k] == nil
- @__passive_arrays[k] |= values
- break
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの特殊効果を適用
- # effect : 対象効果
- #--------------------------------------------------------------------------
- def apply_passive_effects(effect)
- KGC::PassiveSkill::EFFECTS.each { |k, v|
- if effect =~ /^\s*(#{v})/i
- if k == :multi_attack_count
- $1 =~ /#{v}/i
- @__passive_effects[k] = [ $1.to_i, @__passive_effects[k] ].max
- else
- @__passive_effects[k] = true
- end
- break
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルであるか
- #--------------------------------------------------------------------------
- def passive
- create_passive_skill_cache if @__passive == nil
- return @__passive
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの能力値修正 (即値)
- #--------------------------------------------------------------------------
- def passive_params
- create_passive_skill_cache if @__passive_params == nil
- return @__passive_params
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの能力値修正 (割合)
- #--------------------------------------------------------------------------
- def passive_params_rate
- create_passive_skill_cache if @__passive_params_rate == nil
- return @__passive_params_rate
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの属性・ステートリスト
- #--------------------------------------------------------------------------
- def passive_arrays
- create_passive_skill_cache if @__passive_arrays == nil
- return @__passive_arrays
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの特殊効果リスト
- #--------------------------------------------------------------------------
- def passive_effects
- create_passive_skill_cache if @__passive_effects == nil
- return @__passive_effects
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● セットアップ
- # actor_id : アクター ID
- #--------------------------------------------------------------------------
- alias setup_KGC_PassiveSkill setup unless $@
- def setup(actor_id)
- reset_passive_rev
- setup_KGC_PassiveSkill(actor_id)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの修正値を初期化
- #--------------------------------------------------------------------------
- def reset_passive_rev
- @passive_params = {}
- @passive_params_rate = {}
- @passive_arrays = {}
- @passive_effects = {}
- KGC::PassiveSkill::PARAMS.each_key { |k|
- @passive_params[k] = 0
- @passive_params_rate[k] = 100
- }
- KGC::PassiveSkill::ARRAYS.each_key { |k| @passive_arrays[k] = [] }
- KGC::PassiveSkill::EFFECTS.each_key { |k| @passive_effects[k] = false }
- @passive_effects[:multi_attack_count] = 1
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの修正値を再設定
- #--------------------------------------------------------------------------
- def restore_passive_rev
- return if @__passive_rev_restoring
- # 修正前の値を保持
- last_effects = @passive_effects.clone if @passive_effects != nil
- reset_passive_rev
- # ≪スキルCP制≫ の併用を考慮し、戦闘中フラグを一時的にオン
- last_in_battle = $game_temp.in_battle
- $game_temp.in_battle = true
- # 修正値を取得
- self.skills.each { |skill|
- next unless skill.passive
- skill.passive_params.each { |k, v| @passive_params[k] += v }
- skill.passive_params_rate.each { |k, v| @passive_params_rate[k] += v }
- skill.passive_arrays.each { |k, v| @passive_arrays[k] |= v }
- skill.passive_effects.each { |k, v|
- if k == :multi_attack_count
- @passive_effects[k] = [ v, @passive_effects[k] ].max
- else
- @passive_effects[k] |= v
- end
- }
- }
- $game_temp.in_battle = last_in_battle
- @__passive_rev_restoring = true
- # HP/MP を修正
- self.hp = self.hp
- self.mp = self.mp
- # 二刀流違反を修正
- # if last_effects[:two_swords_style] != nil &&
- # last_effects[:two_swords_style] != two_swords_style
- # @__one_time_two_swords_style = last_effects[:two_swords_style]
- # change_equip(1, nil)
- # @__one_time_two_swords_style = nil
- # end
- @__passive_rev_restoring = nil
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルによるパラメータ修正値 (即値)
- #--------------------------------------------------------------------------
- def passive_params
- restore_passive_rev if @passive_params == nil
- return @passive_params
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルによるパラメータ修正値 (割合)
- #--------------------------------------------------------------------------
- def passive_params_rate
- restore_passive_rev if @passive_params_rate == nil
- return @passive_params_rate
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルによる追加属性・ステート
- #--------------------------------------------------------------------------
- def passive_arrays
- restore_passive_rev if @passive_arrays == nil
- return @passive_arrays
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルによる特殊効果
- #--------------------------------------------------------------------------
- def passive_effects
- restore_passive_rev if @passive_effects == nil
- return @passive_effects
- end
- #--------------------------------------------------------------------------
- # ● 装備の変更 (オブジェクトで指定)
- # equip_type : 装備部位 (0..4)
- # item : 武器 or 防具 (nil なら装備解除)
- # test : テストフラグ (戦闘テスト、または装備画面での一時装備)
- #--------------------------------------------------------------------------
- alias change_equip_KGC_PassiveSkill change_equip unless $@
- def change_equip(equip_type, item, test = false)
- change_equip_KGC_PassiveSkill(equip_type, item, test)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● 装備の破棄
- # item : 破棄する武器 or 防具
- # 武器/防具の増減で「装備品も含める」のとき使用する。
- #--------------------------------------------------------------------------
- alias discard_equip_KGC_PassiveSkill discard_equip unless $@
- def discard_equip(item)
- discard_equip_KGC_PassiveSkill(item)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● ステート無効化判定
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- alias state_resist_KGC_PassiveSkill? state_resist? unless $@
- def state_resist?(state_id)
- return true if passive_arrays[:invalid_state].include?(state_id)
- return state_resist_KGC_PassiveSkill?(state_id)
- end
- #--------------------------------------------------------------------------
- # ● 通常攻撃の属性取得
- #--------------------------------------------------------------------------
- alias element_set_KGC_PassiveSkill element_set unless $@
- def element_set
- return (element_set_KGC_PassiveSkill | passive_arrays[:attack_element])
- end
- #--------------------------------------------------------------------------
- # ● 通常攻撃の追加効果 (ステート変化) 取得
- #--------------------------------------------------------------------------
- alias plus_state_set_KGC_PassiveSkill plus_state_set unless $@
- def plus_state_set
- return (plus_state_set_KGC_PassiveSkill | passive_arrays[:plus_state])
- end
- #--------------------------------------------------------------------------
- # ● 基本 MaxHP の取得
- #--------------------------------------------------------------------------
- alias base_maxhp_KGC_PassiveSkill base_maxhp unless $@
- def base_maxhp
- n = base_maxhp_KGC_PassiveSkill + passive_params[:maxhp]
- n = n * passive_params_rate[:maxhp] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本 MaxMP の取得
- #--------------------------------------------------------------------------
- alias base_maxmp_KGC_PassiveSkill base_maxmp unless $@
- def base_maxmp
- n = base_maxmp_KGC_PassiveSkill + passive_params[:maxmp]
- n = n * passive_params_rate[:maxmp] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本攻撃力の取得
- #--------------------------------------------------------------------------
- alias base_atk_KGC_PassiveSkill base_atk unless $@
- def base_atk
- n = base_atk_KGC_PassiveSkill + passive_params[:atk]
- n = n * passive_params_rate[:atk] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本防御力の取得
- #--------------------------------------------------------------------------
- alias base_def_KGC_PassiveSkill base_def unless $@
- def base_def
- n = base_def_KGC_PassiveSkill + passive_params[:def]
- n = n * passive_params_rate[:def] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本精神力の取得
- #--------------------------------------------------------------------------
- alias base_spi_KGC_PassiveSkill base_spi unless $@
- def base_spi
- n = base_spi_KGC_PassiveSkill + passive_params[:spi]
- n = n * passive_params_rate[:spi] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本敏捷性の取得
- #--------------------------------------------------------------------------
- alias base_agi_KGC_PassiveSkill base_agi unless $@
- def base_agi
- n = base_agi_KGC_PassiveSkill + passive_params[:agi]
- n = n * passive_params_rate[:agi] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 命中率の取得
- #--------------------------------------------------------------------------
- alias hit_KGC_PassiveSkill hit unless $@
- def hit
- n = hit_KGC_PassiveSkill + passive_params[:hit]
- n = n * passive_params_rate[:hit] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 回避率の取得
- #--------------------------------------------------------------------------
- alias eva_KGC_PassiveSkill eva unless $@
- def eva
- n = eva_KGC_PassiveSkill + passive_params[:eva]
- n = n * passive_params_rate[:eva] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● クリティカル率の取得
- #--------------------------------------------------------------------------
- alias cri_KGC_PassiveSkill cri unless $@
- def cri
- n = cri_KGC_PassiveSkill + passive_params[:cri]
- n = n * passive_params_rate[:cri] / 100
- n += 4 if passive_effects[:critical_bonus]
- return n
- end
- #--------------------------------------------------------------------------
- # ● 狙われやすさの取得
- #--------------------------------------------------------------------------
- alias odds_KGC_PassiveSkill odds unless $@
- def odds
- n = odds_KGC_PassiveSkill + passive_params[:odds]
- n = n * passive_params_rate[:odds] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● オプション [二刀流] の取得
- #--------------------------------------------------------------------------
- alias two_swords_style_KGC_PassiveSkill two_swords_style unless $@
- def two_swords_style
- return @__one_time_two_swords_style if @__one_time_two_swords_style != nil
- return (two_swords_style_KGC_PassiveSkill ||
- passive_effects[:two_swords_style])
- end
- #--------------------------------------------------------------------------
- # ● オプション [自動戦闘] の取得
- #--------------------------------------------------------------------------
- alias auto_battle_KGC_PassiveSkill auto_battle unless $@
- def auto_battle
- return (auto_battle_KGC_PassiveSkill || passive_effects[:auto_battle])
- end
- #--------------------------------------------------------------------------
- # ● オプション [強力防御] の取得
- #--------------------------------------------------------------------------
- alias super_guard_KGC_PassiveSkill super_guard unless $@
- def super_guard
- return (super_guard_KGC_PassiveSkill || passive_effects[:super_guard])
- end
- #--------------------------------------------------------------------------
- # ● オプション [薬の知識] の取得
- #--------------------------------------------------------------------------
- alias pharmacology_KGC_PassiveSkill pharmacology unless $@
- def pharmacology
- return (pharmacology_KGC_PassiveSkill || passive_effects[:pharmacology])
- end
- #--------------------------------------------------------------------------
- # ● 武器オプション [ターン内先制] の取得
- #--------------------------------------------------------------------------
- alias fast_attack_KGC_PassiveSkill fast_attack unless $@
- def fast_attack
- return (fast_attack_KGC_PassiveSkill || passive_effects[:fast_attack])
- end
- #--------------------------------------------------------------------------
- # ● 武器オプション [連続攻撃] の取得
- #--------------------------------------------------------------------------
- alias dual_attack_KGC_PassiveSkill dual_attack unless $@
- def dual_attack
- if $imported["AddEquipmentOptions"]
- # 2回攻撃以上なら無視
- return false if passive_effects[:multi_attack_count] >= 2
- end
- return (dual_attack_KGC_PassiveSkill || passive_effects[:dual_attack])
- end
- #--------------------------------------------------------------------------
- # ● 防具オプション [クリティカル防止] の取得
- #--------------------------------------------------------------------------
- alias prevent_critical_KGC_PassiveSkill prevent_critical unless $@
- def prevent_critical
- return (prevent_critical_KGC_PassiveSkill ||
- passive_effects[:prevent_critical])
- end
- #--------------------------------------------------------------------------
- # ● 防具オプション [消費 MP 半分] の取得
- #--------------------------------------------------------------------------
- alias half_mp_cost_KGC_KGC_PassiveSkill half_mp_cost unless $@
- def half_mp_cost
- return (half_mp_cost_KGC_KGC_PassiveSkill ||
- passive_effects[:half_mp_cost])
- end
- #--------------------------------------------------------------------------
- # ● 防具オプション [取得経験値 2 倍] の取得
- #--------------------------------------------------------------------------
- alias double_exp_gain_KGC_PassiveSkill double_exp_gain unless $@
- def double_exp_gain
- return (double_exp_gain_KGC_PassiveSkill ||
- passive_effects[:double_exp_gain])
- end
- #--------------------------------------------------------------------------
- # ● スキルを覚える
- # skill_id : スキル ID
- #--------------------------------------------------------------------------
- alias learn_skill_KGC_PassiveSkill learn_skill unless $@
- def learn_skill(skill_id)
- learn_skill_KGC_PassiveSkill(skill_id)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● スキルを忘れる
- # skill_id : スキル ID
- #--------------------------------------------------------------------------
- alias forget_skill_KGC_PassiveSkill forget_skill unless $@
- def forget_skill(skill_id)
- forget_skill_KGC_PassiveSkill(skill_id)
- restore_passive_rev
- end
- if $imported["ReproduceFunctions"]
- #--------------------------------------------------------------------------
- # ○ オートステートの配列を取得
- # id_only : ID のみを取得
- #--------------------------------------------------------------------------
- alias auto_states_KGC_PassiveSkill auto_states unless $@
- def auto_states(id_only = false)
- result = auto_states_KGC_PassiveSkill(id_only)
- passive_arrays[:auto_state].each { |i|
- result << (id_only ? i : $data_states[i])
- }
- result.uniq!
- return result
- end
- #--------------------------------------------------------------------------
- # ○ 装備オプション [全体攻撃] の取得
- #--------------------------------------------------------------------------
- alias whole_attack_KGC_PassiveSkill whole_attack unless $@
- def whole_attack
- return (whole_attack_KGC_PassiveSkill || passive_effects[:whole_attack])
- end
- #--------------------------------------------------------------------------
- # ○ 装備オプション [回避無視] の取得
- #--------------------------------------------------------------------------
- alias ignore_eva_KGC_PassiveSkill ignore_eva unless $@
- def ignore_eva
- return (ignore_eva_KGC_PassiveSkill || passive_effects[:ignore_eva])
- end
- end # <-- if $imported["ReproduceFunctions"]
- if $imported["AddEquipmentOptions"]
- #--------------------------------------------------------------------------
- # ○ 攻撃回数の取得
- #--------------------------------------------------------------------------
- alias multi_attack_count_KGC_PassiveSkill multi_attack_count unless $@
- def multi_attack_count
- n = multi_attack_count_KGC_PassiveSkill
- return [ n, passive_effects[:multi_attack_count] ].max
- end
- end # <-- if $imported["AddEquipmentOptions"]
- end # <-- class
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Window_EquipItem
- #==============================================================================
- class Window_EquipItem < Window_Item
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # x : ウィンドウの X 座標
- # y : ウィンドウの Y 座標
- # width : ウィンドウの幅
- # height : ウィンドウの高さ
- # actor : アクター
- # equip_type : 装備部位 (0~4)
- #--------------------------------------------------------------------------
- alias initialize_KGC_PassiveSkill initialize unless $@
- def initialize(x, y, width, height, actor, equip_type)
- @original_equip_type = equip_type
- initialize_KGC_PassiveSkill(x, y, width, height, actor, equip_type)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- alias refresh_KGC_PassiveSkill refresh unless $@
- def refresh
- if @original_equip_type == 1
- @equip_type = (@actor.two_swords_style ? 0 : 1)
- end
- refresh_KGC_PassiveSkill
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_File
- #==============================================================================
- class Scene_File < Scene_Base
- #--------------------------------------------------------------------------
- # ● セーブデータの読み込み
- # file : 読み込み用ファイルオブジェクト (オープン済み)
- #--------------------------------------------------------------------------
- alias read_save_data_KGC_PassiveSkill read_save_data unless $@
- def read_save_data(file)
- read_save_data_KGC_PassiveSkill(file)
- KGC::Commands.restore_passive_rev
- Graphics.frame_reset
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment