设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1295|回复: 4
打印 上一主题 下一主题

[已经过期] 用道具增加KGC的技能CP習得装備點數問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
163 小时
注册时间
2012-3-3
帖子
58
跳转到指定楼层
1
发表于 2013-3-19 22:51:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 米血 于 2013-3-19 22:54 编辑

我找到KGC的技能CP習得装備
但是它的cp增加方式是"等級 * 0.8 + 2.0"這種公式
我想要用道具方式讓它能額外增加cp點
請問有辦法嗎
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ スキルCP制 - KGC_SkillCPSystem ◆ VX ◆
#_/    ◇ Last update : 2009/09/13 ◇
#_/----------------------------------------------------------------------------
#_/  戦闘中に使用可能なスキルを限定する機能を追加します。
#_/============================================================================
#_/ 【装備】≪スキル習得装備≫ より下に導入してください。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ カスタマイズ項目 - Customize ★
#==============================================================================

module KGC
module SkillCPSystem
  # ◆ 登録スキル最大数
  MAX_SKILLS = 9
  # ◆ CP の名称
  VOCAB_CP   = "CP"
  # ◆ CP の名称 (略)
  VOCAB_CP_A = "C"
  # ◆ ステータス画面に CP を表示する
  SHOW_STATUS_CP = true

  # ◆ 消費 CP 既定値
  #  消費 CP 未指定のスキルで使用。
  DEFAULT_CP_COST = 1
  # ◆ CP 上限
  #  (固有 CP などを除いた) 素の状態での CP 上限。
  CP_MAX = 15
  # ◆ CP 下限
  CP_MIN = 1
  # ◆ 補正後の CP 上限
  #  固有 CP や装備品による変動を含めた上限。
  REVISED_CP_MAX = 50
  # ◆ 補正後の CP 下限
  REVISED_CP_MIN = 0
  # ◆ 最大 CP 算出式
  #   level..現在のレベル
  #  自動的に整数変換するので、結果が小数になってもOK。
  CP_CALC_EXP = "level * 0.6 + 1.0"
  # ◆ アクター毎の最大 CP 算出式
  PERSONAL_CP_CALC_EXP = []
  #  ここから下に、アクターごとの最大 CP を
  #   PERSONAL_CP_CALC_EXP[アクター ID] = "計算式"
  #  という書式で指定。
  #  計算式は CP_CALC_EXP と同様の書式。
  #  指定しなかったアクターは CP_CALC_EXP を使用。
  #   <例> ラルフだけ優遇
  # PERSONAL_CP_CALC_EXP[1] = "level * 0.8 + 2.0"

  # ◆ 戦闘テスト時は無効化
  #  true  : 戦闘テスト時は全スキルを使用可能。
  #  false : 戦闘テスト時は (セットしない限り) 使用不可。
  DISABLE_IN_BATTLETEST  = true
  # ◆ 使用不可スキルもセット可能
  SHOW_UNUSABLE_SKILL    = true
  # ◆ 消費 CP 0 のスキルはセットしなくても使用可能
  USABLE_COST_ZERO_SKILL = true
  # ◆ パッシブスキルはセットしないと効果なし
  #  ≪パッシブスキル≫ 導入時のみ有効。
  PASSIVE_NEED_TO_SET    = true
  # ◆ 新規習得スキルを自動的にセット
  #  true  : 習得したスキルを空きスロットにセット。
  #           ※ ≪スキル習得装備≫ で習得したスキルは無効。
  #  false : 習得しただけではセットされない (手動でセット)。
  AUTO_SET_NEW_SKILL     = true
  # ◆ 消費 CP 0 の場合も消費 CP を表示する
  #  true  : 消費 CP 0 でも表示
  #  false : 消費 CP 1 以上の場合のみ表示
  SHOW_ZERO_COST         = false

  # ◆ CP ゲージの色
  #  数値  : \C[n] と同じ色。
  #  Color : 指定した色。 ( Color.new(255, 128, 128) など )
  GAUGE_START_COLOR = 13  # 開始色
  GAUGE_END_COLOR   =  5  # 終了色

  # ◆ CP ゲージに汎用ゲージを使用する
  #  ≪汎用ゲージ描画≫ 導入時のみ有効。
  ENABLE_GENERIC_GAUGE = true
  # ◆ CP ゲージ設定
  #  画像は "Graphics/System" から読み込む。
  GAUGE_IMAGE  = "GaugeCP"  # 画像
  GAUGE_OFFSET = [-23, -2]  # 位置補正 [x, y]
  GAUGE_LENGTH = -4         # 長さ補正
  GAUGE_SLOPE  = 30         # 傾き (-89 ~ 89)

  # ◆ メニュー画面に「スキル設定」コマンドを追加する
  #  追加する場所は、メニューコマンドの最下部です。
  #  他の部分に追加したければ、≪カスタムメニューコマンド≫ をご利用ください。
  USE_MENU_SET_SKILL_COMMAND = true
  # ◆ メニュー画面の「スキル設定」コマンドの名称
  VOCAB_MENU_SET_SKILL       = "スキル設定"

  # ◆ 未設定項目の表示文字列
  BLANK_TEXT   = "-  EMPTY  -"
  # ◆ 設定解除の表示文字列
  RELEASE_TEXT = "( 設定解除 )"
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

module KGC::SkillCPSystem
  module Regexp
    module BaseItem
      # 最大 CP
      MAXCP_PLUS = /<(?:MAX|最大)CP\s*([\-\+]?\d+)>/
      # 登録スキル数
      BATTLE_SKILL_MAX = /<(?:BATTLE_SKILL_MAX|登録スキル数)\s*([\-\+]?\d+)>/i
    end

    module Skill
      # 消費 CP
      CP_COST = /<CP\s*(\d+)>/i
      # 同時セット不可
      EXCLUDE = /<(?:EXCLUDE|同時セット不可)\s*(\d+(?:\s*,\s*\d+)*)>/
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC
module Commands
  module_function
  #--------------------------------------------------------------------------
  # ○ MaxCP 補正値の取得
  #     actor_id    : アクター ID
  #     variable_id : 取得した値を代入する変数の ID
  #--------------------------------------------------------------------------
  def get_actor_own_cp(actor_id, variable_id = 0)
    value = $game_actors[actor_id].maxcp_plus
    $game_variables[variable_id] = value if variable_id > 0
    return value
  end
  alias get_own_cp get_actor_own_cp
  #--------------------------------------------------------------------------
  # ○ MaxCP 補正値の変更
  #     actor_id : アクター ID
  #     value    : MaxCP 補正値
  #--------------------------------------------------------------------------
  def set_actor_own_cp(actor_id, value)
    $game_actors[actor_id].maxcp_plus = value
  end
  alias set_own_cp set_actor_own_cp
  #--------------------------------------------------------------------------
  # ○ アクターの MaxCP 補正値の増加
  #     actor_id : アクター ID
  #     value    : 増加量
  #--------------------------------------------------------------------------
  def gain_actor_cp(actor_id, value)
    $game_actors[actor_id].maxcp_plus += value
  end
  #--------------------------------------------------------------------------
  # ○ 登録スキル最大数の取得
  #     actor_id : アクター ID
  #     variable_id : 取得した値を代入する変数の ID
  #--------------------------------------------------------------------------
  def get_battle_skill_max(actor_id, variable_id = 0)
    value = $game_actors[actor_id].battle_skill_max
    $game_variables[variable_id] = value if variable_id > 0
    return value
  end
  #--------------------------------------------------------------------------
  # ○ 登録スキル最大数の変更
  #     actor_id : アクター ID
  #     value    : 登録可能数
  #--------------------------------------------------------------------------
  def set_battle_skill_max(actor_id, value = -1)
    $game_actors[actor_id].battle_skill_max = value
  end
  #--------------------------------------------------------------------------
  # ○ スキルが登録されているか
  #     actor_id : アクター ID
  #     skill_id : 確認するスキル ID
  #--------------------------------------------------------------------------
  def battle_skill_set?(actor_id, skill_id)
    return $game_actors[actor_id].battle_skill_ids.include?(skill_id)
  end
  #--------------------------------------------------------------------------
  # ○ スキルの登録
  #     actor_id : アクター ID
  #     index    : 登録箇所
  #     skill_id : 登録するスキル ID (nil で解除)
  #--------------------------------------------------------------------------
  def set_battle_skill(actor_id, index, skill_id = nil)
    actor = $game_actors[actor_id]
    if skill_id.is_a?(Integer)
      # 登録
      skill = $data_skills[skill_id]
      return unless actor.battle_skill_settable?(index, skill)  # セット不可

      actor.set_battle_skill(index, skill)
      actor.restore_battle_skill
    else
      # 解除
      actor.remove_battle_skill(index)
    end
  end
  #--------------------------------------------------------------------------
  # ○ スキルの追加登録
  #     actor_id : アクター ID
  #     skill_id : 登録するスキル ID
  #--------------------------------------------------------------------------
  def add_battle_skill(actor_id, skill_id)
    actor = $game_actors[actor_id]
    skill = $data_skills[skill_id]
    return if actor == nil || skill == nil

    actor.add_battle_skill(skill)
  end
  #--------------------------------------------------------------------------
  # ○ スキルの全解除
  #     actor_id : アクター ID
  #--------------------------------------------------------------------------
  def clear_battle_skill(actor_id)
    $game_actors[actor_id].clear_battle_skill
  end
  #--------------------------------------------------------------------------
  # ○ スキル設定画面の呼び出し
  #     actor_index : アクターインデックス
  #--------------------------------------------------------------------------
  def call_set_battle_skill(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :set_battle_skill
    $game_temp.next_scene_actor_index = actor_index
  end
end
end

class Game_Interpreter
  include KGC::Commands
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Vocab
#==============================================================================

module Vocab
  # CP
  def self.cp
    return KGC::SkillCPSystem::VOCAB_CP
  end

  # CP (略)
  def self.cp_a
    return KGC::SkillCPSystem::VOCAB_CP_A
  end

  # スキル設定
  def self.set_battle_skill
    return KGC::SkillCPSystem::VOCAB_MENU_SET_SKILL
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ スキルCP制のキャッシュを生成
  #--------------------------------------------------------------------------
  def create_skill_cp_system_cache
    @__maxcp_plus = 0
    @__battle_skill_max_plus = 0

    self.note.each_line { |line|
      case line
      when KGC::SkillCPSystem::Regexp::BaseItem::MAXCP_PLUS
        # 最大 CP
        @__maxcp_plus += $1.to_i
      when KGC::SkillCPSystem::Regexp::BaseItem::BATTLE_SKILL_MAX
        # 登録スキル数
        @__battle_skill_max_plus += $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 最大 CP 補正
  #--------------------------------------------------------------------------
  def maxcp_plus
    create_skill_cp_system_cache if @__maxcp_plus == nil
    return @__maxcp_plus
  end
  #--------------------------------------------------------------------------
  # ○ 登録スキル数補正
  #--------------------------------------------------------------------------
  def battle_skill_max_plus
    create_skill_cp_system_cache if @__battle_skill_max_plus == nil
    return @__battle_skill_max_plus
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ○ スキルCP制のキャッシュを生成
  #--------------------------------------------------------------------------
  def create_skill_cp_system_cache
    @__cp_cost = KGC::SkillCPSystem::DEFAULT_CP_COST
    @__excluded_skills = []

    self.note.each_line { |line|
      case line
      when KGC::SkillCPSystem::Regexp::Skill::CP_COST
        # 消費 CP
        @__cp_cost = $1.to_i
      when KGC::SkillCPSystem::Regexp::Skill::EXCLUDE
        # 同時セット不可
        $1.scan(/\d+/).each { |num| @__excluded_skills << num.to_i }
        @__excluded_skills.uniq!
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 消費 CP
  #--------------------------------------------------------------------------
  def cp_cost
    create_skill_cp_system_cache if @__cp_cost == nil
    return @__cp_cost
  end
  #--------------------------------------------------------------------------
  # ○ 同時セット不可
  #--------------------------------------------------------------------------
  def excluded_skills
    create_skill_cp_system_cache if @__excluded_skills == nil
    return @__excluded_skills
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキルセット済み判定
  #     skill : スキル
  #--------------------------------------------------------------------------
  def battle_skill_set?(skill)
    return true
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_writer   :maxcp_plus               # MaxCP 補正値
  #--------------------------------------------------------------------------
  # ○ MaxCP 取得
  #--------------------------------------------------------------------------
  def maxcp
    calc_exp = KGC::SkillCPSystem::PERSONAL_CP_CALC_EXP[self.id]
    if calc_exp == nil
      calc_exp = KGC::SkillCPSystem::CP_CALC_EXP
    end
    n = Integer(eval(calc_exp))
    n = [[n, cp_limit].min, KGC::SkillCPSystem::CP_MIN].max
    n += maxcp_plus + maxcp_plus_equip
    return [[n, revised_cp_limit].min, KGC::SkillCPSystem::REVISED_CP_MIN].max
  end
  #--------------------------------------------------------------------------
  # ○ CP 取得
  #--------------------------------------------------------------------------
  def cp
    return [maxcp - consumed_cp, 0].max
  end
  #--------------------------------------------------------------------------
  # ○ CP 消費量取得
  #--------------------------------------------------------------------------
  def consumed_cp
    n = 0
    battle_skills.compact.each { |skill| n += skill.cp_cost }
    return n
  end
  #--------------------------------------------------------------------------
  # ○ CP 上限取得
  #--------------------------------------------------------------------------
  def cp_limit
    return KGC::SkillCPSystem::CP_MAX
  end
  #--------------------------------------------------------------------------
  # ○ 補正後の CP 上限取得
  #--------------------------------------------------------------------------
  def revised_cp_limit
    return KGC::SkillCPSystem::REVISED_CP_MAX
  end
  #--------------------------------------------------------------------------
  # ○ MaxCP 補正値取得
  #--------------------------------------------------------------------------
  def maxcp_plus
    if @maxcp_plus == nil
      if @own_cp != nil
        @maxcp_plus = @own_cp
        @own_cp = nil
      else
        @maxcp_plus = 0
      end
    end
    return @maxcp_plus
  end
  #--------------------------------------------------------------------------
  # ○ 装備品による MaxCP 補正値取得
  #--------------------------------------------------------------------------
  def maxcp_plus_equip
    n = 0
    equips.compact.each { |item| n += item.maxcp_plus }
    return n
  end
  #--------------------------------------------------------------------------
  # ● スキル取得
  #--------------------------------------------------------------------------
  alias skills_KGC_SkillCPSystem skills
  def skills
    return (skill_cp_restrict? ? restricted_skills : skills_KGC_SkillCPSystem)
  end
  #--------------------------------------------------------------------------
  # ○ スキルを制限するか
  #--------------------------------------------------------------------------
  def skill_cp_restrict?
    if $game_temp.in_battle
      # 戦闘テストでないか、戦闘テストでも制限する場合
      return true unless $BTEST && KGC::SkillCPSystem::DISABLE_IN_BATTLETEST
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ○ スキルを制限
  #--------------------------------------------------------------------------
  def restricted_skills
    result = all_skills
    result.each_with_index { |skill, i|
      # 消費 CP > 0 のスキルを除外
      if !KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL || skill.cp_cost > 0
        result = nil
      end
      # パッシブスキルを除外
      if $imported["PassiveSkill"] && KGC::SkillCPSystem::PASSIVE_NEED_TO_SET
        if skill.passive &&
            (!KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL || skill.cp_cost > 0)
          result = nil
        end
      end
    }
    result.compact!
    # 戦闘スキルを追加
    result |= battle_skills
    result.sort! { |a, b| a.id <=> b.id }
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 全スキル取得
  #--------------------------------------------------------------------------
  def all_skills
    # 一時的に非戦闘中にする
    last_in_battle = $game_temp.in_battle
    $game_temp.in_battle = false

    result = skills_KGC_SkillCPSystem
    if $imported["EquipLearnSkill"]
      result |= (equipment_skills | full_ap_skills)
      result.sort! { |a, b| a.id <=> b.id }
    end

    # 戦闘中フラグを戻す
    $game_temp.in_battle = last_in_battle

    return result
  end
  #--------------------------------------------------------------------------
  # ○ 登録スキル最大数取得
  #--------------------------------------------------------------------------
  def battle_skill_max
    @battle_skill_max = -1 if @battle_skill_max == nil
    n = (@battle_skill_max < 0 ?
      KGC::SkillCPSystem::MAX_SKILLS : @battle_skill_max)
    n += equipment_battle_skill_max_plus
    return [n, 0].max
  end
  #--------------------------------------------------------------------------
  # ○ 装備品による登録スキル数補正
  #--------------------------------------------------------------------------
  def equipment_battle_skill_max_plus
    n = 0
    equips.compact.each { |item| n += item.battle_skill_max_plus }
    return n
  end
  #--------------------------------------------------------------------------
  # ○ 登録スキル最大数設定
  #--------------------------------------------------------------------------
  def battle_skill_max=(value)
    @battle_skill_max = value
    if @battle_skills == nil
      @battle_skills = []
    else
      @battle_skills = @battle_skills[0...value]
    end
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル ID 取得
  #--------------------------------------------------------------------------
  def battle_skill_ids
    @battle_skills = [] if @battle_skills == nil
    return @battle_skills
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル取得
  #--------------------------------------------------------------------------
  def battle_skills
    result = []
    battle_skill_ids.each { |i|
      next if i == nil           # 無効なスキルは無視
      result << $data_skills
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル登録
  #     index : 位置
  #     skill : スキル (nil で解除)
  #--------------------------------------------------------------------------
  def set_battle_skill(index, skill)
    if skill == nil
      @battle_skills[index] = nil
    else
      return unless skill.is_a?(RPG::Skill)  # スキル以外
      return if cp < skill.cp_cost           # CP 不足
      return if KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL && skill.cp_cost == 0

      @battle_skills[index] = skill.id
    end
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル追加登録
  #     skill : スキル
  #--------------------------------------------------------------------------
  def add_battle_skill(skill)
    return unless skill.is_a?(RPG::Skill)  # スキル以外
    skills = battle_skill_ids
    return if skills.include?(skill.id)    # 登録済み
    return if cp < skill.cp_cost           # CP 不足
    return if KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL && skill.cp_cost == 0

    battle_skill_max.times { |i|
      # 空きがあれば登録
      if skills == nil
        set_battle_skill(i, skill)
        break
      end
    }
    restore_battle_skill
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル解除
  #     index : 位置
  #--------------------------------------------------------------------------
  def remove_battle_skill(index)
    @battle_skills[index] = nil
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキル全解除
  #--------------------------------------------------------------------------
  def clear_battle_skill
    @battle_skills = []
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキルセット可否判定
  #     index : 位置
  #     skill : スキル
  #--------------------------------------------------------------------------
  def battle_skill_settable?(index, skill)
    return false if battle_skill_max <= index  # 範囲外
    return true  if skill == nil               # nil は解除なので OK

    return false if battle_skill_ids.include?(skill.id)  # セット済み

    curr_skill_id = battle_skill_ids[index]
    curr_skill    = (curr_skill_id != nil ? $data_skills[curr_skill_id] : nil)

    # 同時セット不可
    excluded  = excluded_battle_skill_ids
    excluded -= curr_skill.excluded_skills if curr_skill != nil
    return false if excluded.include?(skill.id)

    offset = (curr_skill != nil ? curr_skill.cp_cost : 0)
    return false if self.cp < (skill.cp_cost - offset)  # CP 不足

    return true
  end
  #--------------------------------------------------------------------------
  # ○ Exclude スキル ID 取得
  #--------------------------------------------------------------------------
  def excluded_battle_skill_ids
    result = []
    battle_skills.each { |skill| result |= skill.excluded_skills }
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキルを修復
  #--------------------------------------------------------------------------
  def restore_battle_skill
    result = battle_skill_ids.clone
    usable_skills = all_skills

    result.each_with_index { |n, i|
      next if n == nil
      # 未修得の場合は解除
      if (usable_skills.find { |s| s.id == n }) == nil
        result = nil
      end
    }
    @battle_skills = result[0...battle_skill_max]
    # CP 不足のスキルを下から順に外す
    (battle_skill_max - 1).downto(0) { |i|
      @battle_skills = nil if maxcp - consumed_cp < 0
    }
  end
  #--------------------------------------------------------------------------
  # ● 装備の変更 (オブジェクトで指定)
  #     equip_type : 装備部位 (0..4)
  #     item       : 武器 or 防具 (nil なら装備解除)
  #     test       : テストフラグ (戦闘テスト、または装備画面での一時装備)
  #--------------------------------------------------------------------------
  alias change_equip_KGC_SkillCPSystem change_equip
  def change_equip(equip_type, item, test = false)
    change_equip_KGC_SkillCPSystem(equip_type, item, test)

    unless test
      restore_battle_skill
      restore_passive_rev if $imported["PassiveSkill"]
    end
  end
  #--------------------------------------------------------------------------
  # ● 装備の破棄
  #     item : 破棄する武器 or 防具
  #    武器/防具の増減で「装備品も含める」のとき使用する。
  #--------------------------------------------------------------------------
  alias discard_equip_KGC_SkillCPSystem discard_equip
  def discard_equip(item)
    discard_equip_KGC_SkillCPSystem(item)

    restore_battle_skill
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ● 経験値の変更
  #     exp  : 新しい経験値
  #     show : レベルアップ表示フラグ
  #--------------------------------------------------------------------------
  alias change_exp_KGC_SkillCPSystem change_exp
  def change_exp(exp, show)
    # 習得したスキルを表示するため、戦闘中フラグを一時的に解除
    last_in_battle = $game_temp.in_battle
    $game_temp.in_battle = false

    change_exp_KGC_SkillCPSystem(exp, show)

    $game_temp.in_battle = last_in_battle
  end

  if KGC::SkillCPSystem::AUTO_SET_NEW_SKILL
  #--------------------------------------------------------------------------
  # ● スキルを覚える
  #     skill_id : スキル ID
  #--------------------------------------------------------------------------
  alias learn_skill_KGC_SkillCPSystem learn_skill
  def learn_skill(skill_id)
    learn_skill_KGC_SkillCPSystem(skill_id)

    add_battle_skill($data_skills[skill_id])
  end
  end  # <- if KGC::SkillCPSystem::AUTO_SET_NEW_SKILL

  #--------------------------------------------------------------------------
  # ● スキルを忘れる
  #     skill_id : スキル ID
  #--------------------------------------------------------------------------
  alias forget_skill_KGC_SkillCPSystem forget_skill
  def forget_skill(skill_id)
    # 忘れるスキルを戦闘用スキルから削除
    battle_skill_ids.each_with_index { |s, i|
      remove_battle_skill(i) if s == skill_id
    }

    forget_skill_KGC_SkillCPSystem(skill_id)
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘用スキルセット済み判定
  #     skill : スキル
  #--------------------------------------------------------------------------
  def battle_skill_set?(skill)
    return false unless skill.is_a?(RPG::Skill)  # スキル以外

    return battle_skill_ids.include?(skill.id)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ○ CP の文字色を取得
  #     actor : アクター
  #--------------------------------------------------------------------------
  def cp_color(actor)
    return knockout_color if actor.maxcp > 0 && actor.cp == 0
    return normal_color
  end
  #--------------------------------------------------------------------------
  # ○ CP ゲージの色 1 の取得
  #--------------------------------------------------------------------------
  def cp_gauge_color1
    color = KGC::SkillCPSystem::GAUGE_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ CP ゲージの色 2 の取得
  #--------------------------------------------------------------------------
  def cp_gauge_color2
    color = KGC::SkillCPSystem::GAUGE_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ CP の描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_cp(actor, x, y, width = 120)
    draw_actor_cp_gauge(actor, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::cp_a)
    self.contents.font.color = cp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.cp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.cp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxcp, 2)
    end
    self.contents.font.color = normal_color
  end
  #--------------------------------------------------------------------------
  # ○ CP ゲージの描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_cp_gauge(actor, x, y, width = 120)
    if KGC::SkillCPSystem::ENABLE_GENERIC_GAUGE && $imported["GenericGauge"]
      # 汎用ゲージ
      draw_gauge(KGC::SkillCPSystem::GAUGE_IMAGE,
        x, y, width, actor.cp, [actor.maxcp, 1].max,
        KGC::SkillCPSystem::GAUGE_OFFSET,
        KGC::SkillCPSystem::GAUGE_LENGTH,
        KGC::SkillCPSystem::GAUGE_SLOPE)
    else
      # デフォルトゲージ
      gw = width * actor.cp / [actor.maxcp, 1].max
      gc1 = cp_gauge_color1
      gc2 = cp_gauge_color2
      self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
      self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
  unless method_defined?(:add_command)
  #--------------------------------------------------------------------------
  # ○ コマンドを追加
  #    追加した位置を返す
  #--------------------------------------------------------------------------
  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end
  #--------------------------------------------------------------------------
  # ○ コマンドをリフレッシュ
  #--------------------------------------------------------------------------
  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end
  #--------------------------------------------------------------------------
  # ○ コマンドを挿入
  #--------------------------------------------------------------------------
  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end
  #--------------------------------------------------------------------------
  # ○ コマンドを削除
  #--------------------------------------------------------------------------
  def remove_command(command)
    @commands.delete(command)
    @item_max = @commands.size
    refresh
  end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_Status
#==============================================================================

if KGC::SkillCPSystem::SHOW_STATUS_CP
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ● 基本情報の描画
  #     x : 描画先 X 座標
  #     y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  alias draw_basic_info_KGC_SkillCPSystem draw_basic_info
  def draw_basic_info(x, y)
    draw_basic_info_KGC_SkillCPSystem(x, y)

    draw_actor_cp(@actor, x, y + WLH * 4)
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ Window_BattleSkillStatus
#------------------------------------------------------------------------------
#   戦闘スキル設定画面で、設定者のステータスを表示するウィンドウです。
#==============================================================================

class Window_BattleSkillStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     x     : ウィンドウの X 座標
  #     y     : ウィンドウの Y 座標
  #     actor : アクター
  #--------------------------------------------------------------------------
  def initialize(x, y, actor)
    super(x, y, Graphics.width, WLH + 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_level(@actor, 140, 0)
    draw_actor_cp(@actor, 240, 0)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ Window_BattleSkillSlot
#------------------------------------------------------------------------------
#   戦闘スキル選択画面で、設定したスキルの一覧を表示するウィンドウです。
#==============================================================================

class Window_BattleSkillSlot < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     x      : ウィンドウの X 座標
  #     y      : ウィンドウの Y 座標
  #     width  : ウィンドウの幅
  #     height : ウィンドウの高さ
  #     actor  : アクター
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    self.index = 0
    self.active = false
    refresh
  end
  #--------------------------------------------------------------------------
  # ○ スキルの取得
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    skill_ids = @actor.battle_skill_ids
    @actor.battle_skill_max.times { |i|
      if skill_ids != nil
        @data << $data_skills[skill_ids]
      else
        @data << nil
      end
    }
    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ○ 消費 CP 描画判定
  #--------------------------------------------------------------------------
  def cp_cost_show?(skill)
    return true if KGC::SkillCPSystem::SHOW_ZERO_COST

    return (skill.cp_cost > 0)
  end
  #--------------------------------------------------------------------------
  # ○ 項目の描画
  #     index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      draw_item_name(skill, rect.x, rect.y)
      self.contents.draw_text(rect, skill.cp_cost, 2) if cp_cost_show?(skill)
    else
      self.contents.draw_text(rect, KGC::SkillCPSystem::BLANK_TEXT, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ● カーソルを 1 ページ後ろに移動
  #--------------------------------------------------------------------------
  def cursor_pagedown
    return if Input.repeat?(Input::R)
    super
  end
  #--------------------------------------------------------------------------
  # ● カーソルを 1 ページ前に移動
  #--------------------------------------------------------------------------
  def cursor_pageup
    return if Input.repeat?(Input::L)
    super
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      Sound.play_cursor
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      Sound.play_cursor
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ Window_BattleSkillList
#------------------------------------------------------------------------------
#   戦闘スキル選択画面で、設定できるスキルの一覧を表示するウィンドウです。
#==============================================================================

class Window_BattleSkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :slot_index               # スロット番号
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     x      : ウィンドウの X 座標
  #     y      : ウィンドウの Y 座標
  #     width  : ウィンドウの幅
  #     height : ウィンドウの高さ
  #     actor  : アクター
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    @slot_index = 0
    self.index = 0
    self.active = false
    refresh
  end
  #--------------------------------------------------------------------------
  # ○ スキルの取得
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    @data = [nil]
    # 選択可能なスキルのみを取得
    @actor.all_skills.each { |skill|
      @data.push(skill) if selectable?(skill)
    }

    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ○ スキル選択可否判定
  #     skill : スキル
  #--------------------------------------------------------------------------
  def selectable?(skill)
    return false if skill == nil

    # 消費 CP 0 なら常に使用可能な場合
    if KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL && skill.cp_cost == 0
      return false
    end
    # 戦闘時に使用可能ならOK
    return true if skill.battle_ok?
    # 使用不可でもセット可能な場合
    if KGC::SkillCPSystem::SHOW_UNUSABLE_SKILL && skill.occasion == 3
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ○ 消費 CP 描画判定
  #--------------------------------------------------------------------------
  def cp_cost_show?(skill)
    return true if KGC::SkillCPSystem::SHOW_ZERO_COST

    return (skill.cp_cost > 0)
  end
  #--------------------------------------------------------------------------
  # ○ 項目の描画
  #     index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.battle_skill_settable?(@slot_index, skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      self.contents.draw_text(rect, skill.cp_cost, 2) if cp_cost_show?(skill)
    else
      self.contents.draw_text(rect, KGC::SkillCPSystem::RELEASE_TEXT, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● 画面切り替えの実行
  #--------------------------------------------------------------------------
  alias update_scene_change_KGC_SkillCPSystem update_scene_change
  def update_scene_change
    return if $game_player.moving?    # プレイヤーの移動中?

    if $game_temp.next_scene == :set_battle_skill
      call_set_battle_skill
      return
    end

    update_scene_change_KGC_SkillCPSystem
  end
  #--------------------------------------------------------------------------
  # ○ スキル設定画面への切り替え
  #--------------------------------------------------------------------------
  def call_set_battle_skill
    $game_temp.next_scene = nil
    $scene = Scene_SetBattleSkill.new(
      $game_temp.next_scene_actor_index,
      0,
      Scene_SetBattleSkill::HOST_MAP)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  if KGC::SkillCPSystem::USE_MENU_SET_SKILL_COMMAND
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  alias create_command_window_KGC_SkillCPSystem create_command_window
  def create_command_window
    create_command_window_KGC_SkillCPSystem

    return if $imported["CustomMenuCommand"]

    @__command_set_battle_skill_index =
      @command_window.add_command(Vocab.set_battle_skill)
    if @command_window.oy > 0
      @command_window.oy -= Window_Base::WLH
    end
    @command_window.index = @menu_index
  end
  end
  #--------------------------------------------------------------------------
  # ● コマンド選択の更新
  #--------------------------------------------------------------------------
  alias update_command_selection_KGC_SkillCPSystem update_command_selection
  def update_command_selection
    call_set_battle_skill_flag = false
    if Input.trigger?(Input::C)
      case @command_window.index
      when @__command_set_battle_skill_index  # スキル設定
        call_set_battle_skill_flag = true
      end
    end

    # スキル設定画面に移行
    if call_set_battle_skill_flag
      if $game_party.members.size == 0
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      start_actor_selection
      return
    end

    update_command_selection_KGC_SkillCPSystem
  end
  #--------------------------------------------------------------------------
  # ● アクター選択の更新
  #--------------------------------------------------------------------------
  alias update_actor_selection_KGC_SkillCPSystem update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when @__command_set_battle_skill_index  # スキル設定
        $scene = Scene_SetBattleSkill.new(
          @status_window.index,
          @__command_set_battle_skill_index,
          Scene_SetBattleSkill::HOST_MENU)
        return
      end
    end

    update_actor_selection_KGC_SkillCPSystem
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ Scene_SetBattleSkill
#------------------------------------------------------------------------------
#   戦闘スキル設定画面の処理を行うクラスです。
#==============================================================================

class Scene_SetBattleSkill < Scene_Base
  #--------------------------------------------------------------------------
  # ○ 定数
  #--------------------------------------------------------------------------
  HOST_MENU   = 0  # 呼び出し元 : メニュー
  HOST_MAP    = 1  # 呼び出し元 : マップ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     actor_index : アクターインデックス
  #     menu_index  : コマンドのカーソル初期位置
  #     host_scene  : 呼び出し元 (0..メニュー  1..マップ)
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
    @actor_index = actor_index
    @menu_index = menu_index
    @host_scene = host_scene
  end
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background

    @actor = $game_party.members[@actor_index]
    create_windows
  end
  #--------------------------------------------------------------------------
  # ○ ウィンドウ作成
  #--------------------------------------------------------------------------
  def create_windows
    @help_window = Window_Help.new
    if $imported["HelpExtension"]
      @help_window.row_max = KGC::HelpExtension::ROW_MAX
    end

    dy = @help_window.height
    @status_window = Window_BattleSkillStatus.new(0, dy, @actor)

    dy += @status_window.height
    @slot_window = Window_BattleSkillSlot.new(
      0,
      dy,
      Graphics.width / 2,
      Graphics.height - dy,
      @actor)
    @slot_window.active = true
    @slot_window.help_window = @help_window

    @list_window = Window_BattleSkillList.new(
      Graphics.width - @slot_window.width,
      dy,
      Graphics.width - @slot_window.width,
      Graphics.height - dy,
      @actor)
    @list_window.help_window = @help_window
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @status_window.dispose
    @slot_window.dispose
    @list_window.dispose
  end
  #--------------------------------------------------------------------------
  # ○ 元の画面へ戻る
  #--------------------------------------------------------------------------
  def return_scene
    case @host_scene
    when HOST_MENU
      $scene = Scene_Menu.new(@menu_index)
    when HOST_MAP
      $scene = Scene_Map.new
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    update_window
    if @slot_window.active
      update_slot
    elsif @list_window.active
      update_list
    end
  end
  #--------------------------------------------------------------------------
  # ○ ウィンドウ更新
  #--------------------------------------------------------------------------
  def update_window
    @help_window.update
    @status_window.update
    @slot_window.update
    @list_window.update
  end
  #--------------------------------------------------------------------------
  # ○ ウィンドウ再描画
  #--------------------------------------------------------------------------
  def refresh_window
    @status_window.refresh
    @slot_window.refresh
    @list_window.refresh
  end
  #--------------------------------------------------------------------------
  # ○ 次のアクターの画面に切り替え
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_SetBattleSkill.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ○ 前のアクターの画面に切り替え
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_SetBattleSkill.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ○ フレーム更新 (スロットウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_slot
    # 選択項目が変化した場合
    if @last_slot_index != @slot_window.index
      @list_window.slot_index = @slot_window.index
      @list_window.refresh
      @last_slot_index = @slot_window.index
    end

    if Input.trigger?(Input::A)
      Sound.play_decision
      # 選択しているスキルを外す
      @actor.remove_battle_skill(@slot_window.index)
      refresh_window
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      # リストウィンドウに切り替え
      @slot_window.active = false
      @list_window.active = true
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    end
  end
  #--------------------------------------------------------------------------
  # ○ フレーム更新 (リストウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_list
    if Input.trigger?(Input::B)
      Sound.play_cancel
      # スロットウィンドウに切り替え
      @slot_window.active = true
      @list_window.active = false
    elsif Input.trigger?(Input::C)
      skill = @list_window.skill
      # セットできない場合
      unless @actor.battle_skill_settable?(@slot_window.index, skill)
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      set_skill(@slot_window.index, skill)
      # スロットウィンドウに切り替え
      @slot_window.active = true
      @list_window.active = false
    end
  end
  #--------------------------------------------------------------------------
  # ○ スキル設定
  #     index : 設定する場所
  #     skill : 設定するスキル
  #--------------------------------------------------------------------------
  def set_skill(index, skill)
    @actor.remove_battle_skill(index)
    if skill != nil
      @actor.set_battle_skill(index, skill)
    end
    refresh_window
  end
end

评分

参与人数 1星屑 -5 收起 理由
怪蜀黍 -5 未使用脚本框

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2013-3-19
帖子
22
2
发表于 2013-3-19 23:20:25 | 只看该作者
试试用这一句代码
  1. $game_actors[1].maxcp_plus += 10
复制代码
放到物品的公共事件里。

点评

我这边会出错,无法测试。  发表于 2013-3-19 23:22
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
163 小时
注册时间
2012-3-3
帖子
58
3
 楼主| 发表于 2013-3-20 18:53:20 | 只看该作者


只要能使用道具修改增加C10/15的最大值
或是2號框起來的CP數量也可以

我看2號框的腳本是
  # ◆ 登録スキル最大数
  MAX_SKILLS = 3(數量依據增減裝放數量)


回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
163 小时
注册时间
2012-3-3
帖子
58
4
 楼主| 发表于 2013-3-23 10:08:35 | 只看该作者
我換個方式問問

RUBY 代码复制
  1. # ◆ 最大 CP 算出式
  2.   #   level..現在のレベル
  3.   #  自動的に整数変換するので、結果が小数になってもOK。
  4.   [color=Red]CP_CALC_EXP = "level * 0.6 + 1.0"[/color]



有高手能多寫出變數量的腳本嗎
我在想如果將它的公式增加變數量.這樣應該就能增加它的CPmax量了吧??

点评

2L不是已经说了怎么做?阁下没有试吗?还是说不行?无论行不行阁下难道都不应该回个帖?  发表于 2013-3-23 11:43
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
163 小时
注册时间
2012-3-3
帖子
58
5
 楼主| 发表于 2013-3-23 12:24:38 | 只看该作者
抱歉!
2L方法不行
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-23 19:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表