赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2824 |
最后登录 | 2014-1-13 |
在线时间 | 76 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 76 小时
- 注册时间
- 2009-10-24
- 帖子
- 172
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #_/ ◆ パッシブスキル - 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
复制代码 就是这个脚本我只知道怎么用技能增加属性值但是其他的怎么用有什么用呢???
求人告下 |
|