查看: 1579|回复: 7

[胡扯] 感概,我跑了如此大的远圈子

  [复制链接]
梦石
0
星屑
50
在线时间
336 小时
注册时间
2010-8-26
回帖
386
发表于 2010-11-20 23:56:42 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
今天才发现KGC有个可以追加特殊能力的脚本,我前前前还一直在努力在原本的game  actor等等等等地方在改啊改啊改,还BUG多多,今天企鹅达达给的脚本让我把以前 的努力全白费了,竟然有现有的还如此简单的脚本,我还。。。。。,它如果是中文的我肯定早看见了
[

巫女会长

梦石
0
星屑
60
在线时间
1028 小时
注册时间
2009-10-24
回帖
3425

贵宾

发表于 2010-11-21 00:08:15 | 显示全部楼层
特殊能力是指?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
336 小时
注册时间
2010-8-26
回帖
386
 楼主| 发表于 2010-11-21 00:24:11 | 显示全部楼层
回复 dukesward 的帖子

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ パッシブスキル - KGC_PassiveSkill ◆ VX ◆
#_/    ◇ Last update : 2008/11/16 ◇
#_/----------------------------------------------------------------------------
#_/  習得するだけで能力値上昇効果を発揮するスキルを作成します。
#_/============================================================================
#_/ 【基本機能】?200x/XP 機能再現? より下に導入してください。
#_/ 【装備】?装備品オプション追加? より下に導入してください。
#_/ 【装備】?装備拡張? より下に導入してください。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

$imported = {} if $imported == nil
$imported["PassiveSkill"] = true

module KGC
module PassiveSkill
  # パッシブスキル用パラメータリスト
  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

      # パラメータ修正
      #  MAXHP +20  など
      PASSIVE_PARAMS = /^\s*([^:\+\-\d\s]+)\s*([\+\-]\d+)([%%])?\s*$/
      # 属性?ステートリスト
      #  攻撃属性 1,2,3  など
      PASSIVE_ARRAYS = /^\s*([^:\+\-\d\s]+)\s*(\d+(?:\s*,\s*\d+)*)\s*$/
      # 耐性
      PASSIVE_RESISTANCES = /^\s*([^:\+\-\d\s]+)\s(\d+):(\-?\d+)[%%]?\s*$/
      # 特殊効果
      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
      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_params = {}
    @__passive_params_rate = {}
    @__passive_arrays = {}
    @__passive_resistances = {}
    @__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
      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
  #--------------------------------------------------------------------------
  # ○ パッシブスキルの能力値修正を適用
  #     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
  #--------------------------------------------------------------------------
  # ○ パッシブスキルの能力値修正 (即値)
  #--------------------------------------------------------------------------
  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  # パッシブスキル用装備テストフラグ
  #--------------------------------------------------------------------------
  # ● セットアップ
  #     actor_id : アクター ID
  #--------------------------------------------------------------------------
  alias setup_KGC_PassiveSkill setup
  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_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

    # 修正前の値を保持
    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_resistances.each { |k, v|
        v.each_with_index { |n, i|
          next if n == nil
          @passive_resistances[k] = 100 if @passive_resistances[k] == nil
          @passive_resistances[k] += 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
  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
  #--------------------------------------------------------------------------
  # ● 装備の変更 (オブジェクトで指定)
  #     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

  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)
    }
    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)
  #--------------------------------------------------------------------------
  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
  def read_save_data(file)
    read_save_data_KGC_PassiveSkill(file)

    KGC::Commands.restore_passive_rev
    Graphics.frame_reset
  end
end
是这些2倍经验这样 的,技能增加暴击这样的,这脚本直接能改,我在actor里胡闹
[
回复

使用道具 举报

巫女会长

梦石
0
星屑
60
在线时间
1028 小时
注册时间
2009-10-24
回帖
3425

贵宾

发表于 2010-11-21 00:28:32 | 显示全部楼层
本帖最后由 dukesward 于 2010-11-21 00:33 编辑

对LZ毅力表示钦佩。。。
不过话说咱也干过。。 囧.jpg

点评

传说中的坑化惊萤闪..  发表于 2010-11-21 05:12
夏季冰川 = =  发表于 2010-11-21 02:08
回复

使用道具 举报

乌有君
乌有君  发表于 2010-11-21 00:30:43
本帖最后由 匿名 于 2010-11-21 03:07 编辑

论坛转义美

↓于是果断躲起来,小旅喵学坏了>.<

评分

参与人数 1星屑 -2 收起 理由
「旅」 -2 不匿名的话我可以欺负哟~~~

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
回帖
1047
发表于 2010-11-21 00:38:36 | 显示全部楼层
在下制作游戏一段时间后会稍微觉得有点闷,于是出来看看别的网站,
看看有什么新脚本……有什么好素材……(然后搜刮下载!)
动力就回来了,现在什么都不缺了……(因为脚本与素材占了10GB)
不过一段时间后又闷了~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-7-3
回帖
635
发表于 2010-11-21 03:36:35 | 显示全部楼层
这个脚本那些表情可爱死了~
琥太哥你别哭了,我受不了了!
回复

使用道具 举报

梦石
0
星屑
79
在线时间
261 小时
注册时间
2010-9-17
回帖
686
发表于 2010-11-21 08:59:26 | 显示全部楼层
善用搜索有好处么?
别再扣我分啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部