赞 | 0 |
VIP | 0 |
好人卡 | 3 |
积分 | 1 |
经验 | 1064 |
最后登录 | 2013-5-16 |
在线时间 | 518 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 518 小时
- 注册时间
- 2010-6-16
- 帖子
- 1073
|
伸手会扣分的~不过还是帮忙吧~- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #_/ ◆ パッシブスキル - KGC_PassiveSkill ◆ VX ◆
- #_/ ◇ Last update : 2009/11/01 ◇
- #_/----------------------------------------------------------------------------
- #_/ 習得するだけで能力値上昇効果を発揮するスキルを作成します。
- #_/============================================================================
- #_/ 【基本機能】≪200x/XP 機能再現≫ より下に導入してください。
- #_/ 【装備】≪装備品オプション追加≫ より下に導入してください。
- #_/ 【装備】≪装備拡張≫ より下に導入してください。
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- $imported = {} if $imported == nil
- $imported["PassiveSkill"] = true
- module KGC
- module PassiveSkill
- # パッシブスキル用条件リスト
- CONDITIONS = {
- :weapon => "WEAPON|武器",
- :armor => "ARMOR|防具",
- :armor_set => "ARMOR_SET|防具セット",
- :state => "STATE|ステート",
- }
- # パッシブスキル用パラメータリスト
- PARAMS = {
- :maxhp => "MAXHP|最大HP",
- :maxmp => "MAXMP|最大MP",
- :atk => "ATK|攻撃力",
- :def => "DEF|防御力",
- :spi => "SPI|精神力",
- :agi => "AGI|敏捷性",
- :hit => "HIT|命中率",
- :eva => "EVA|回避率",
- :cri => "CRI|クリティカル率",
- :odds => "ODDS|狙われやすさ",
- }
- # パッシブスキル用属性・ステートリスト
- ARRAYS = {
- :attack_element => "ATTACK_ELEMENT|攻撃属性",
- :plus_state => "PLUS_STATE|付加ステート",
- :invalid_state => "INVALID_STATE|無効化ステート",
- :auto_state => "AUTO_STATE|オートステート",
- }
- # パッシブスキル用耐性リスト
- RESISTANCES = {
- # ≪装備品オプション追加≫
- :element => "ELEMENT_RESISTANCE|属性耐性",
- :state => "STATE_RESISTANCE|ステート耐性",
- }
- # パッシブスキル用特殊効果リスト
- EFFECTS = {
- # デフォ
- :two_swords_style => "TWO_SWORDS_STYLE|二刀流",
- :auto_battle => "AUTO_BATTLE|自動戦闘",
- :super_guard => "SUPER_GUARD|強力防御",
- :pharmacology => "PHARMACOLOGY|薬の知識",
- :fast_attack => "FAST_ATTACK|ターン内先制",
- :dual_attack => "DUAL_ATTACK|連続攻撃",
- :critical_bonus => "CRITICAL_BONUS|クリティカル頻発",
- :prevent_critical => "PREVENT_CRITICAL|クリティカル防止",
- :half_mp_cost => "HALF_MP_COST|消費MP半分",
- :double_exp_gain => "DOUBLE_EXP_GAIN|取得経験値[22]倍",
- # ≪200x/XP 機能再現≫
- :whole_attack => "WHOLE_ATTACK|全体攻撃",
- :ignore_eva => "IGNORE_EVA|回避率?無視",
- # ≪装備品オプション追加≫
- :multi_attack_count => '(\d+)\s*(?:TIMES_ATTACK|回攻撃)',
- }
- module Regexp
- module Skill
- # パッシブスキル開始
- BEGIN_PASSIVE = /<(?:PASSIVE_SKILL|パッシブスキル)>/i
- # パッシブスキル終了
- END_PASSIVE = /<\/(?:PASSIVE_SKILL|パッシブスキル)>/i
- # 発動条件
- PASSIVE_CONDITIONS =
- /^\s*条件\s*([^:\+\-\d\s]+)\s*([\-\d]+(?:\s*,\s*[\-\d]+)*)\s*$/i
- # パラメータ修正
- # MAXHP +20 など
- PASSIVE_PARAMS = /^\s*([^:\+\-\d\s]+)\s*([\+\-]\d+)([%%])?\s*$/i
- # 属性・ステートリスト
- # 攻撃属性 1,2,3 など
- PASSIVE_ARRAYS = /^\s*([^:\+\-\d\s]+)\s*(\d+(?:\s*,\s*\d+)*)\s*$/i
- # 耐性
- PASSIVE_RESISTANCES = /^\s*([^:\+\-\d\s]+)\s(\d+):(\-?\d+)[%%]?\s*$/i
- # 特殊効果
- PASSIVE_EFFECTS = /^\s*([^:\+\-\d\s]+)/i
- 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
- class Game_Interpreter
- include KGC::Commands
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ RPG::Skill
- #==============================================================================
- class RPG::Skill < RPG::UsableItem
- #--------------------------------------------------------------------------
- # ○ パッシブスキルのキャッシュを生成
- #--------------------------------------------------------------------------
- def create_passive_skill_cache
- @__passive = false
- @__passive_conditions = {}
- @__passive_params = {}
- @__passive_params_rate = {}
- @__passive_arrays = {}
- @__passive_resistances = {}
- @__passive_effects = { :multi_attack_count => 1 }
- KGC::PassiveSkill::CONDITIONS.each_key { |k|
- @__passive_conditions[k] = []
- }
- 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_CONDITIONS
- # 発動条件
- if passive_flag
- apply_passive_conditions($1, $2)
- end
- 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
- when KGC::PassiveSkill::Regexp::Skill::PASSIVE_RESISTANCES
- # 耐性
- if passive_flag
- apply_passive_resistances($1, $2.to_i, $3.to_i)
- end
- else
- # 特殊効果
- if passive_flag
- apply_passive_effects(line)
- end
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの発動条件を適用
- # cond : 条件
- # values : 条件値
- #--------------------------------------------------------------------------
- def apply_passive_conditions(cond, values)
- KGC::PassiveSkill::CONDITIONS.each { |k, v|
- if cond =~ /(?:#{v})/i
- cond = k
- break
- end
- }
- return unless cond.is_a?(Symbol)
- @__passive_conditions[cond] = [] if @__passive_conditions[cond] == nil
- values.scan(/[\-\d]+/).each { |v|
- case v
- when /^(\d+)\-(\d+)$/ # 範囲
- @__passive_conditions[cond] += ( ($1.to_i)..($2.to_i) ).to_a
- when /^\d+$/ # 単一
- @__passive_conditions[cond] << v.to_i
- end
- }
- @__passive_conditions[cond].uniq!
- 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
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの耐性を適用
- # param : 対象パラメータ
- # id : 属性・ステート ID
- # rate : 変動率
- #--------------------------------------------------------------------------
- def apply_passive_resistances(param, id, rate)
- KGC::PassiveSkill::RESISTANCES.each { |k, v|
- if param =~ /(?:#{v})/i
- if @__passive_resistances[k] == nil
- @__passive_resistances[k] = []
- end
- n = @__passive_resistances[k][id]
- n = 100 if n == nil
- @__passive_resistances[k][id] = n + rate - 100
- break
- end
- }
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの特殊効果を適用
- # effect : 対象効果
- #--------------------------------------------------------------------------
- def apply_passive_effects(effect)
- KGC::PassiveSkill::EFFECTS.each { |k, v|
- if effect =~ /^\s*(#{v})/i
- case k
- when :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
- alias passive? passive
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの発動条件
- #--------------------------------------------------------------------------
- def passive_conditions
- create_passive_skill_cache if @__passive_conditions == nil
- return @__passive_conditions
- 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_resistances
- create_passive_skill_cache if @__passive_resistances == nil
- return @__passive_resistances
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの特殊効果リスト
- #--------------------------------------------------------------------------
- def passive_effects
- create_passive_skill_cache if @__passive_effects == nil
- return @__passive_effects
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ○ クラス変数
- #--------------------------------------------------------------------------
- @@passive_equip_test = false # パッシブスキル用装備テストフラグ
- #--------------------------------------------------------------------------
- # ○ 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_accessor :passive_dummy_flag # パッシブスキル発動条件無効化
- #--------------------------------------------------------------------------
- # ● セットアップ
- # actor_id : アクター ID
- #--------------------------------------------------------------------------
- alias setup_KGC_PassiveSkill setup
- def setup(actor_id)
- reset_passive_rev
- @__passive_rev_restoring = true
- setup_KGC_PassiveSkill(actor_id)
- @__passive_rev_restoring = nil
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルの修正値を初期化
- #--------------------------------------------------------------------------
- def reset_passive_rev
- @passive_params = {}
- @passive_params_rate = {}
- @passive_arrays = {}
- @passive_resistances = {}
- @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::RESISTANCES.each_key { |k|
- @passive_resistances[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
- # ダミー生成
- unless @passive_dummy_flag
- dummy = Marshal.load(Marshal.dump(self))
- dummy.passive_dummy_flag = true
- dummy.restore_passive_rev
- end
- # 修正前の値を保持
- 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 passive_skill_valid?(skill, dummy)
- 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_resistances.each { |k, v|
- v.each_with_index { |n, i|
- next if n == nil
- @passive_resistances[k][i] = 100 if @passive_resistances[k][i] == nil
- @passive_resistances[k][i] += n - 100
- }
- }
- skill.passive_effects.each { |k, v|
- case k
- when :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 !two_swords_style_KGC_PassiveSkill &&
- 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, @@passive_equip_test)
- @__one_time_two_swords_style = nil
- end
- @__passive_rev_restoring = nil
- dummy = nil
- Graphics.frame_reset
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキル有効判定
- #--------------------------------------------------------------------------
- def passive_skill_valid?(skill, dummy)
- return false unless skill.passive
- return true if @passive_dummy_flag
- # 発動条件
- skill.passive_conditions.each { |k, v|
- next if v.empty?
- ids = []
- case k
- when :weapon
- dummy.weapons.compact.each { |w| ids << w.id }
- return false if (v & ids).empty? # 必要武器を未装備
- when :armor
- dummy.armors.compact.each { |a| ids << a.id }
- return false if (v & ids).empty? # 必要防具を未装備
- when :state
- dummy.states.compact.each { |s| ids << s.id }
- return false if (v & ids).empty? # 必要ステートでない
- end
- }
- return true
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキル発動条件
- #--------------------------------------------------------------------------
- def passive_conditions
- restore_passive_rev if @passive_conditions == nil
- return @passive_conditions
- 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_resistances
- restore_passive_rev if @passive_resistances == nil
- return @passive_resistances
- end
- #--------------------------------------------------------------------------
- # ○ パッシブスキルによる特殊効果
- #--------------------------------------------------------------------------
- def passive_effects
- restore_passive_rev if @passive_effects == nil
- return @passive_effects
- end
- #--------------------------------------------------------------------------
- # ● ステートの付加
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- unless method_defined?(:add_state_KGC_PassiveSkill)
- alias add_state_KGC_PassiveSkill add_state
- end
- def add_state(state_id)
- add_state_KGC_PassiveSkill(state_id)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● ステートの解除
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- unless method_defined?(:remove_state_KGC_PassiveSkill)
- alias remove_state_KGC_PassiveSkill remove_state
- end
- def remove_state(state_id)
- remove_state_KGC_PassiveSkill(state_id)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● 装備の変更 (オブジェクトで指定)
- # equip_type : 装備部位 (0..4)
- # item : 武器 or 防具 (nil なら装備解除)
- # test : テストフラグ (戦闘テスト、または装備画面での一時装備)
- #--------------------------------------------------------------------------
- alias change_equip_KGC_PassiveSkill change_equip
- def change_equip(equip_type, item, test = false)
- @@passive_equip_test = test
- change_equip_KGC_PassiveSkill(equip_type, item, test)
- restore_passive_rev
- @@passive_equip_test = false
- end
- #--------------------------------------------------------------------------
- # ● 装備の破棄
- # item : 破棄する武器 or 防具
- # 武器/防具の増減で「装備品も含める」のとき使用する。
- #--------------------------------------------------------------------------
- alias discard_equip_KGC_PassiveSkill discard_equip
- def discard_equip(item)
- discard_equip_KGC_PassiveSkill(item)
- restore_passive_rev
- end
- #--------------------------------------------------------------------------
- # ● 経験値の変更
- # exp : 新しい経験値
- # show : レベルアップ表示フラグ
- #--------------------------------------------------------------------------
- alias change_exp_KGC_PassiveSkill change_exp
- def change_exp(exp, show)
- @__passive_rev_restoring = true
- change_exp_KGC_PassiveSkill(exp, show)
- @__passive_rev_restoring = nil
- restore_passive_rev
- end
- if $imported["AddEquipmentOptions"]
- #--------------------------------------------------------------------------
- # ○ 属性耐性の取得
- # element_id : 属性 ID
- #--------------------------------------------------------------------------
- alias element_resistance_KGC_PassiveSkill element_resistance
- def element_resistance(element_id)
- n = element_resistance_KGC_PassiveSkill(element_id)
- rate = passive_resistances[:element][element_id]
- n += (rate == nil ? 100 : rate) - 100
- return n
- end
- #--------------------------------------------------------------------------
- # ○ ステート耐性の取得
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- alias state_resistance_KGC_PassiveSkill state_resistance
- def state_resistance(state_id)
- n = state_resistance_KGC_PassiveSkill(state_id)
- rate = passive_resistances[:state][state_id]
- n += (rate == nil ? 100 : rate) - 100
- return [n, 0].max
- end
- end # <-- if $imported["AddEquipmentOptions"]
- #--------------------------------------------------------------------------
- # ● ステート無効化判定
- # state_id : ステート ID
- #--------------------------------------------------------------------------
- alias state_resist_KGC_PassiveSkill? state_resist?
- 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
- def element_set
- return (element_set_KGC_PassiveSkill | passive_arrays[:attack_element])
- end
- #--------------------------------------------------------------------------
- # ● 通常攻撃の追加効果 (ステート変化) 取得
- #--------------------------------------------------------------------------
- alias plus_state_set_KGC_PassiveSkill plus_state_set
- def plus_state_set
- return (plus_state_set_KGC_PassiveSkill | passive_arrays[:plus_state])
- end
- #--------------------------------------------------------------------------
- # ● 基本 MaxHP の取得
- #--------------------------------------------------------------------------
- alias base_maxhp_KGC_PassiveSkill base_maxhp
- 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
- 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
- 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
- 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
- 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
- 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
- def hit
- n = hit_KGC_PassiveSkill + passive_params[:hit]
- n = n * passive_params_rate[:hit] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● 回避率の取得
- #--------------------------------------------------------------------------
- alias eva_KGC_PassiveSkill eva
- def eva
- n = eva_KGC_PassiveSkill + passive_params[:eva]
- n = n * passive_params_rate[:eva] / 100
- return n
- end
- #--------------------------------------------------------------------------
- # ● クリティカル率の取得
- #--------------------------------------------------------------------------
- alias cri_KGC_PassiveSkill cri
- 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
- 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
- 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
- def auto_battle
- return (auto_battle_KGC_PassiveSkill || passive_effects[:auto_battle])
- end
- #--------------------------------------------------------------------------
- # ● オプション [強力防御] の取得
- #--------------------------------------------------------------------------
- alias super_guard_KGC_PassiveSkill super_guard
- def super_guard
- return (super_guard_KGC_PassiveSkill || passive_effects[:super_guard])
- end
- #--------------------------------------------------------------------------
- # ● オプション [薬の知識] の取得
- #--------------------------------------------------------------------------
- alias pharmacology_KGC_PassiveSkill pharmacology
- def pharmacology
- return (pharmacology_KGC_PassiveSkill || passive_effects[:pharmacology])
- end
- #--------------------------------------------------------------------------
- # ● 武器オプション [ターン内先制] の取得
- #--------------------------------------------------------------------------
- alias fast_attack_KGC_PassiveSkill fast_attack
- def fast_attack
- return (fast_attack_KGC_PassiveSkill || passive_effects[:fast_attack])
- end
- #--------------------------------------------------------------------------
- # ● 武器オプション [連続攻撃] の取得
- #--------------------------------------------------------------------------
- alias dual_attack_KGC_PassiveSkill dual_attack
- 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
- def prevent_critical
- return (prevent_critical_KGC_PassiveSkill ||
- passive_effects[:prevent_critical])
- end
- #--------------------------------------------------------------------------
- # ● 防具オプション [消費 MP 半分] の取得
- #--------------------------------------------------------------------------
- alias half_mp_cost_KGC_KGC_PassiveSkill half_mp_cost
- 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
- 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
- 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
- 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
- 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
- def whole_attack
- return (whole_attack_KGC_PassiveSkill || passive_effects[:whole_attack])
- end
- #--------------------------------------------------------------------------
- # ○ 装備オプション [回避無視] の取得
- #--------------------------------------------------------------------------
- alias ignore_eva_KGC_PassiveSkill ignore_eva
- 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
- 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)
- #--------------------------------------------------------------------------
- unless private_method_defined?(:initialize_KGC_PassiveSkill)
- alias initialize_KGC_PassiveSkill initialize
- end
- 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
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- unless method_defined?(:refresh_KGC_PassiveSkill)
- alias refresh_KGC_PassiveSkill refresh
- end
- 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
- def read_save_data(file)
- read_save_data_KGC_PassiveSkill(file)
- KGC::Commands.restore_passive_rev
- Graphics.frame_reset
- end
- end
复制代码 |
评分
-
查看全部评分
|