查看: 2465|回复: 3

[已经解决] 求能力破限的脚本

[复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-8-22
回帖
16
发表于 2014-8-26 09:32:48 | 显示全部楼层 |阅读模式

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

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

×
RT 顺便问一下,使用了这个脚本后,如何设置使敌方hp突破9999

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
回帖
6325
发表于 2014-8-26 10:07:46 | 显示全部楼层
敌人的Hp 9999?默认不是999999?
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-8-22
回帖
16
 楼主| 发表于 2014-8-26 13:03:48 | 显示全部楼层
上贺茂润 发表于 2014-8-26 10:07
敌人的Hp 9999?默认不是999999?

额,数据库设置敌人的hp的时候,不是不能超过9999的么?

点评

。。。额,好吧,是我蠢了。不过,如果我想让自己设置的角色hp成长超过9999怎么设置?  发表于 2014-8-27 10:28
没测试就来问真的大丈夫?  发表于 2014-8-26 23:19
回复

使用道具 举报

梦石
0
星屑
703
在线时间
313 小时
注册时间
2013-6-1
回帖
125
发表于 2014-8-28 20:07:45 | 显示全部楼层
本帖最后由 e900003 于 2014-8-28 20:13 编辑

能力破限腳本的部分
[pre lang="ruby" line="1"]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 限界突破 - KGC_LimitBreak ◆
#_/    ◇ Last update : 2008/01/10 ◇
#_/----------------------------------------------------------------------------
#_/  各種設定値の上限を変更します。
#_/============================================================================
#_/  なるべく [Scene_Debug] のすぐ下に導入してください。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

module KGC
module LimitBreak
  # ◆能力値算出方式
  #   0..データベース通り。
  #      (100以降は計算式として ACTOR_LV100_CALC を使用)
  #
  #   1..データベースを用いた2次関数。
  #        a:レベル1の値  b:レベル2の値  c:レベル3の値  x:現レベル
  #      として、
  #        ax^2 + bx + c
  #      を用いて能力値を算出。
  #
  #   2..データベースを用いた1次関数。
  #        b:レベル2の値  c:レベル3の値  x:現レベル
  #      として、
  #        bx + c
  #      を用いて能力値を算出。
  #      (レベル2,3の値を使うのは、2次関数方式との使い分けを楽にするため)
  CALC_PARAMETER_METHOD = 0

  # ◆レベル 100 以降の能力値計算式
  #  (CALC_PARAMETER_METHOD が 0 のときに使用)
  #  【lv..現レベル  p[x]..レベル x の能力値】
  #  この計算結果をレベル 99 の能力値に加算。
  ACTOR_LV100_CALC = "(p[99] - p[98]) * (lv - 99)"

  # ◆アクターのレベル上限
  #  アクターID順に配列に格納(最初は nil)
  ACTOR_LV_LIMIT = [nil]
  # ◆上限未指定アクターのレベル上限
  #  上限未指定(nil)のアクターはこの値を使用。
  ACTOR_LV_LIMIT_DEFAULT = 999
  $actover = ACTOR_LV_LIMIT_DEFAULT + 1
  # ◆アクターの経験値上限
  ACTOR_EXP_LIMIT = 99999999999
  # ◆アクターのHP上限
  ACTOR_HP_LIMIT  = 99999
  # ◆アクターのSP上限
  ACTOR_SP_LIMIT  = 99999
  # ◆アクターの「腕力, 器用さ, 素早さ, 魔力」上限
  ACTOR_ETC_LIMIT = 9999

  # ◆敵のHP上限
  ENEMY_HP_LIMIT  = 9999999
  # ◆敵のSP上限
  ENEMY_SP_LIMIT  = 99999
  # ◆敵の「腕力, 器用さ, 素早さ, 魔力」上限
  ENEMY_ETC_LIMIT = 9999

  # ◆アクター能力値修正値(百分率)
  #  アクターの能力値がデータベースの設定値の○%になる。
  #  (上限値が高い場合に使用。データベースの値を使う場合は 100)
  ACTOR_MAXHP_REVISE = 100  # MAXHP
  ACTOR_MAXSP_REVISE = 100  # MAXSP
  ACTOR_STR_REVISE   = 100  # 腕力
  ACTOR_DEX_REVISE   = 100  # 器用さ
  ACTOR_AGI_REVISE   = 100  # 素早さ
  ACTOR_INT_REVISE   = 100  # 魔力

  # ◆敵能力値修正値(百分率)
  #  敵の能力値がデータベースの設定値の○%になる。
  ENEMY_MAXHP_REVISE = 100  # MAXHP
  ENEMY_MAXSP_REVISE = 100  # MAXSP
  ENEMY_STR_REVISE   = 100  # 腕力
  ENEMY_DEX_REVISE   = 100  # 器用さ
  ENEMY_AGI_REVISE   = 100  # 素早さ
  ENEMY_INT_REVISE   = 100  # 魔力
  ENEMY_ATK_REVISE   = 100  # 攻撃力
  ENEMY_PDEF_REVISE  = 100  # 物理防御
  ENEMY_MDEF_REVISE  = 100  # 魔法防御

  # ◆所持金上限
  GOLD_LIMIT = 99999999

  # ◆アイテム所持数上限
  ITEM_LIMIT = []  # ← これは消さないこと!
  # この下に、アイテム所持数の上限を
  #   ITEM_LIMIT[アイテムID] = 所持数上限
  # という書式で設定。
  #  <例> アイテム 1 は 99 個所持可能
  #  ITEM_LIMIT[1] = 99

  # ◆武器所持数上限
  #  指定方法はアイテムと同じ。
  WEAPON_LIMIT = []  # ← これは消さないこと!
  # ◆防具所持数上限
  #  指定方法はアイテムと同じ。
  ARMOR_LIMIT = []  # ← これは消さないこと!

  # ◆アイテム所持数上限 (デフォルト)
  #  上限を指定しなかったアイテム、武器、防具はこの値を上限として使用。
  ITEM_LIMIT_DEFAULT = 99

  module_function
  #--------------------------------------------------------------------------
  # ○ 敵能力値直接指定
  #     ここで、敵の最大HPなどを直接指定することができます。
  #     データベースに入りきらない数値を指定する場合に使用してください。
  #--------------------------------------------------------------------------
  def set_enemy_status
    #  <例> ID:10 の敵のHPを 2000000 にする場合
    # $data_enemies[10].maxhp = 2000000
    #  <例> ID:16 の敵の攻撃力を 5000 にする場合
    # $data_enemies[16].atk = 5000
  end
end
end

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

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

if $game_special_elements == nil
  $game_special_elements = {}
  $data_system = load_data("Data/System.rxdata")
end

module KGC::LimitBreak
  module_function
  #--------------------------------------------------------------------------
  # ● 敵の能力補正を適用
  #--------------------------------------------------------------------------
  def revise_enemy_parameters
    (1...$data_enemies.size).each { |i|
      enemy = $data_enemies
      enemy.maxhp = enemy.maxhp * ENEMY_MAXHP_REVISE / 100
      enemy.maxsp = enemy.maxsp * ENEMY_MAXSP_REVISE / 100
      enemy.str = enemy.str * ENEMY_STR_REVISE / 100
      enemy.dex = enemy.dex * ENEMY_DEX_REVISE / 100
      enemy.agi = enemy.agi * ENEMY_AGI_REVISE / 100
      enemy.int = enemy.int * ENEMY_INT_REVISE / 100
      enemy.atk = enemy.atk * ENEMY_ATK_REVISE / 100
      enemy.pdef = enemy.pdef * ENEMY_PDEF_REVISE / 100
      enemy.mdef = enemy.mdef * ENEMY_MDEF_REVISE / 100
    }
  end
end

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

#==============================================================================
# ■ RPG::Item
#==============================================================================

class RPG::Item
  #--------------------------------------------------------------------------
  # ● 所持数上限
  #--------------------------------------------------------------------------
  def number_limit
    if KGC::LimitBreak::ITEM_LIMIT[self.id] != nil
      return KGC::LimitBreak::ITEM_LIMIT[self.id]
    else
      return KGC::LimitBreak::ITEM_LIMIT_DEFAULT
    end
  end
end

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

#==============================================================================
# ■ RPG::Weapon
#==============================================================================

class RPG::Weapon
  #--------------------------------------------------------------------------
  # ● 所持数上限
  #--------------------------------------------------------------------------
  def number_limit
    if KGC::LimitBreak::WEAPON_LIMIT[self.id] != nil
      return KGC::LimitBreak::WEAPON_LIMIT[self.id]
    else
      return KGC::LimitBreak::ITEM_LIMIT_DEFAULT
    end
  end
end

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

#==============================================================================
# ■ RPG::Armor
#==============================================================================

class RPG::Armor
  #--------------------------------------------------------------------------
  # ● 所持数上限
  #--------------------------------------------------------------------------
  def number_limit
    if KGC::LimitBreak::ARMOR_LIMIT[self.id] != nil
      return KGC::LimitBreak::ARMOR_LIMIT[self.id]
    else
      return KGC::LimitBreak::ITEM_LIMIT_DEFAULT
    end
  end
end

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

#==============================================================================
# ■ Game_Battler (分割定義 1)
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● MaxHP の取得
  #--------------------------------------------------------------------------
  def maxhp
    n = [base_maxhp + @maxhp_plus, 1].max
    @states.each { |i| n *= $data_states.maxhp_rate / 100.0 }
    n = [[Integer(n), 1].max, maxhp_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● MaxSP の取得
  #--------------------------------------------------------------------------
  def maxsp
    n = [base_maxsp + @maxsp_plus, 0].max
    @states.each { |i| n *= $data_states.maxsp_rate / 100.0 }
    n = [[Integer(n), 0].max, maxsp_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 腕力の取得
  #--------------------------------------------------------------------------
  def str
    n = [base_str + @str_plus, 1].max
    @states.each { |i| n *= $data_states.str_rate / 100.0 }
    n = [[Integer(n), 1].max, parameter_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 器用さの取得
  #--------------------------------------------------------------------------
  def dex
    n = [base_dex + @dex_plus, 1].max
    @states.each { |i| n *= $data_states.dex_rate / 100.0 }
    n = [[Integer(n), 1].max, parameter_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 素早さの取得
  #--------------------------------------------------------------------------
  def agi
    n = [base_agi + @agi_plus, 1].max
    @states.each { |i| n *= $data_states.agi_rate / 100.0 }
    n = [[Integer(n), 1].max, parameter_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 魔力の取得
  #--------------------------------------------------------------------------
  def int
    n = [base_int + @int_plus, 1].max
    @states.each { |i| n *= $data_states.int_rate / 100.0 }
    n = [[Integer(n), 1].max, parameter_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● MaxHP の設定
  #     maxhp : 新しい MaxHP
  #--------------------------------------------------------------------------
  def maxhp=(maxhp)
    @maxhp_plus += maxhp - self.maxhp
    @maxhp_plus = [[@maxhp_plus, -maxhp_limit].max, maxhp_limit].min
    @hp = [@hp, self.maxhp].min
  end
  #--------------------------------------------------------------------------
  # ● MaxSP の設定
  #     maxsp : 新しい MaxSP
  #--------------------------------------------------------------------------
  def maxsp=(maxsp)
    @maxsp_plus += maxsp - self.maxsp
    @maxsp_plus = [[@maxsp_plus, -maxsp_limit].max, maxsp_limit].min
    @sp = [@sp, self.maxsp].min
  end
  #--------------------------------------------------------------------------
  # ● 腕力の設定
  #     str : 新しい腕力
  #--------------------------------------------------------------------------
  def str=(str)
    @str_plus += str - self.str
    @str_plus = [[@str_plus, -parameter_limit].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 器用さの設定
  #     dex : 新しい器用さ
  #--------------------------------------------------------------------------
  def dex=(dex)
    @dex_plus += dex - self.dex
    @dex_plus = [[@dex_plus, -parameter_limit].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 素早さの設定
  #     agi : 新しい素早さ
  #--------------------------------------------------------------------------
  def agi=(agi)
    @agi_plus += agi - self.agi
    @agi_plus = [[@agi_plus, -parameter_limit].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 魔力の設定
  #     int : 新しい魔力
  #--------------------------------------------------------------------------
  def int=(int)
    @int_plus += int - self.int
    @int_plus = [[@int_plus, -parameter_limit].max, parameter_limit].min
  end
end

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

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

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● EXP 計算
  #--------------------------------------------------------------------------
  def make_exp_list
    actor = $data_actors[@actor_id]
    @exp_list[1] = 0
    pow_i = 2.4 + actor.exp_inflation / 100.0
    (2..(self.final_level + 1)).each { |i|
      if i > self.final_level
        @exp_list = 0
      else
        n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
        @exp_list = @exp_list[i-1] + Integer(n)
      end
    }
  end
  #--------------------------------------------------------------------------
  # ● EXP の変更
  #     exp : 新しい EXP
  #--------------------------------------------------------------------------
  def exp=(exp)
    if $imported["ExpGoldIncrease"]
      rate = calc_exp_increase_rate(KGC::EXPGLD_INC_PERMIT_DOUBLE)
      exp = @exp + (exp - @exp) * rate / 100
    end
    @exp = [[exp, KGC::LimitBreak::ACTOR_EXP_LIMIT].min, 0].max
    # レベルアップ
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @level += 1
      # スキル習得
      $data_classes[@class_id].learnings.each { |j|
        if j.level == @level
          learn_skill(j.skill_id)
        end
      }
    end
    # レベルダウン
    while @exp < @exp_list[@level]
      @level -= 1
    end
    # 現在の HP と SP が最大値を超えていたら修正
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
  #--------------------------------------------------------------------------
  # ○ パラメータの取得
  #--------------------------------------------------------------------------
  if KGC::LimitBreak::CALC_PARAMETER_METHOD == 0
    def parameter(type)
      if @level >= 100
        calc_text = KGC::LimitBreak::ACTOR_LV100_CALC.dup
        calc_text.gsub!(/lv/i) { "@level" }
        calc_text.gsub!(/p\[(\d+)\]/i) {
          "$data_actors[@actor_id].parameters[type, #{$1.to_i}]"
        }
        return $data_actors[@actor_id].parameters[type, 99] + eval(calc_text)
      else
        return $data_actors[@actor_id].parameters[type, @level]
      end
    end
  elsif KGC::LimitBreak::CALC_PARAMETER_METHOD == 1
    def parameter(type)
      a = $data_actors[@actor_id].parameters[type, 1]
      b = $data_actors[@actor_id].parameters[type, 2]
      c = $data_actors[@actor_id].parameters[type, 3]
      return a * @level * @level + b * @level + c
    end
  elsif KGC::LimitBreak::CALC_PARAMETER_METHOD == 2
    def parameter(type)
      b = $data_actors[@actor_id].parameters[type, 2]
      c = $data_actors[@actor_id].parameters[type, 3]
      return b * @level + c
    end
  end
  #--------------------------------------------------------------------------
  # ● 基本 MaxHP の取得
  #--------------------------------------------------------------------------
  def base_maxhp
    n = self.parameter(0)
    return n * KGC::LimitBreak::ACTOR_MAXHP_REVISE / 100
  end
  #--------------------------------------------------------------------------
  # ● MaxHP の取得
  #--------------------------------------------------------------------------
  def maxhp
    n = [base_maxhp + @maxhp_plus, 1].max
    @states.each { |i| n *= $data_states.maxhp_rate / 100.0 }
    n = [[Integer(n), 1].max, maxhp_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 基本 MaxSP の取得
  #--------------------------------------------------------------------------
  def base_maxsp
    n = self.parameter(1)
    return n * KGC::LimitBreak::ACTOR_MAXSP_REVISE / 100
  end
  #--------------------------------------------------------------------------
  # ● MaxSP の取得
  #--------------------------------------------------------------------------
  def maxsp
    n = [base_maxsp + @maxsp_plus, 0].max
    @states.each { |i| n *= $data_states.maxsp_rate / 100.0 }
    n = [[Integer(n), 0].max, maxsp_limit].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 基本腕力の取得
  #--------------------------------------------------------------------------
  def base_str
    n = self.parameter(2)
    if $imported["EquipExtension"]
      n += equipment_parameter(2)
    else
      equip_item_list.each { |item| n += (item != nil ? item.str_plus : 0) }
    end
    return [[n * KGC::LimitBreak::ACTOR_STR_REVISE / 100, 1].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 基本器用さの取得
  #--------------------------------------------------------------------------
  def base_dex
    n = self.parameter(3)
    if $imported["EquipExtension"]
      n += equipment_parameter(3)
    else
      equip_item_list.each { |item| n += (item != nil ? item.dex_plus : 0) }
    end
    return [[n * KGC::LimitBreak::ACTOR_DEX_REVISE / 100, 1].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 基本素早さの取得
  #--------------------------------------------------------------------------
  def base_agi
    n = self.parameter(4)
    if $imported["EquipExtension"]
      n += equipment_parameter(4)
    else
      equip_item_list.each { |item| n += (item != nil ? item.agi_plus : 0) }
    end
    return [[n * KGC::LimitBreak::ACTOR_AGI_REVISE / 100, 1].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● 基本魔力の取得
  #--------------------------------------------------------------------------
  def base_int
    n = self.parameter(5)
    if $imported["EquipExtension"]
      n += equipment_parameter(5)
    else
      equip_item_list.each { |item| n += (item != nil ? item.int_plus : 0) }
    end
    return [[n * KGC::LimitBreak::ACTOR_INT_REVISE / 100, 1].max, parameter_limit].min
  end
  #--------------------------------------------------------------------------
  # ● レベルの変更
  #     level : 新しいレベル
  #--------------------------------------------------------------------------
  def level=(level)
    # 上下限チェック
    level = [[level, self.final_level].min, 1].max
    # EXP を変更
    self.exp = @exp_list[level]
  end
  #--------------------------------------------------------------------------
  # ● 最終レベルの取得
  #--------------------------------------------------------------------------
  def final_level
    return (KGC::LimitBreak::ACTOR_LV_LIMIT[@actor_id] != nil ?
      KGC::LimitBreak::ACTOR_LV_LIMIT[@actor_id] : KGC::LimitBreak::ACTOR_LV_LIMIT_DEFAULT)
  end
  #--------------------------------------------------------------------------
  # ○ MaxHP 限界値の取得
  #--------------------------------------------------------------------------
  def maxhp_limit
    return KGC::LimitBreak::ACTOR_HP_LIMIT
  end
  #--------------------------------------------------------------------------
  # ○ MaxSP 限界値の取得
  #--------------------------------------------------------------------------
  def maxsp_limit
    return KGC::LimitBreak::ACTOR_SP_LIMIT
  end
  #--------------------------------------------------------------------------
  # ○ パラメータ限界値の取得
  #--------------------------------------------------------------------------
  def parameter_limit
    return KGC::LimitBreak::ACTOR_ETC_LIMIT
  end
  #--------------------------------------------------------------------------
  # ○ 装備武器リストの取得
  #--------------------------------------------------------------------------
  def equip_weapon_list
    result = [$data_weapons[@weapon_id]]
    return result.compact
  end
  #--------------------------------------------------------------------------
  # ○ 装備防具リストの取得
  #--------------------------------------------------------------------------
  def equip_armor_list
    result = []
    (1..4).each { |i| result << $data_armors[eval("@armor#{i}_id")] }
    return result.compact
  end
  #--------------------------------------------------------------------------
  # ○ 装備品リストの取得
  #--------------------------------------------------------------------------
  def equip_item_list
    return equip_weapon_list + equip_armor_list
  end
end

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

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ○ MaxHP 限界値の取得
  #--------------------------------------------------------------------------
  def maxhp_limit
    return KGC::LimitBreak::ENEMY_HP_LIMIT
  end
  #--------------------------------------------------------------------------
  # ○ MaxSP 限界値の取得
  #--------------------------------------------------------------------------
  def maxsp_limit
    return KGC::LimitBreak::ENEMY_SP_LIMIT
  end
  #--------------------------------------------------------------------------
  # ○ パラメータ限界値の取得
  #--------------------------------------------------------------------------
  def parameter_limit
    return KGC::LimitBreak::ENEMY_ETC_LIMIT
  end
end

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

#==============================================================================
# ■ Game_Party
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # ● ゴールドの増加 (減少)
  #     n : 金額
  #--------------------------------------------------------------------------
  def gain_gold(n)
    # 所持金の限界値変更
    @gold = [[@gold + n, 0].max, KGC::LimitBreak::GOLD_LIMIT].min
  end
  #--------------------------------------------------------------------------
  # ● アイテムの増加 (減少)
  #     item_id : アイテム ID
  #     n       : 個数
  #--------------------------------------------------------------------------
  def gain_item(item_id, n)
    # ハッシュの個数データを更新
    if item_id > 0
      limit = $data_items[item_id].number_limit
      @items[item_id] = [[item_number(item_id) + n, 0].max, limit].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 武器の増加 (減少)
  #     weapon_id : 武器 ID
  #     n         : 個数
  #--------------------------------------------------------------------------
  def gain_weapon(weapon_id, n)
    # ハッシュの個数データを更新
    if weapon_id > 0
      limit = $data_weapons[weapon_id].number_limit
      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, limit].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 防具の増加 (減少)
  #     armor_id : 防具 ID
  #     n        : 個数
  #--------------------------------------------------------------------------
  def gain_armor(armor_id, n)
    # ハッシュの個数データを更新
    if armor_id > 0
      limit = $data_armors[armor_id].number_limit
      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, limit].min
    end
  end
end

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

#==============================================================================
# ■ Window_ShopBuy
#==============================================================================

class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #     index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    # アイテムの所持数を取得
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    # 価格が所持金以下、かつ所持数が上限でなければ通常文字色に、
    # そうでなければ無効文字色に設定
    if item.price <= $game_party.gold && number < item.number_limit
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4
    y = index * 32
    rect = Rect.new(x, y, self.width - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)
  end
end

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

#==============================================================================
# ■ Scene_Title
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # ● コマンド : ニューゲーム
  #--------------------------------------------------------------------------
  alias command_new_game_KGC_LimitBreak command_new_game
  def command_new_game
    command_new_game_KGC_LimitBreak

    KGC::LimitBreak.revise_enemy_parameters
    KGC::LimitBreak.set_enemy_status
  end
  #--------------------------------------------------------------------------
  # ● コマンド : コンティニュー
  #--------------------------------------------------------------------------
  alias command_continue_KGC_LimitBreak command_continue
  def command_continue
    command_continue_KGC_LimitBreak

    KGC::LimitBreak.revise_enemy_parameters
    KGC::LimitBreak.set_enemy_status
  end
  #--------------------------------------------------------------------------
  # ● 戦闘テスト
  #--------------------------------------------------------------------------
  alias battle_test_KGC_LimitBreak battle_test
  def battle_test
    battle_test_KGC_LimitBreak

    KGC::LimitBreak.revise_enemy_parameters
    KGC::LimitBreak.set_enemy_status
  end
end

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

#==============================================================================
# ■ Scene_Shop
#==============================================================================

class Scene_Shop
  #--------------------------------------------------------------------------
  # ● フレーム更新 (購入ウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_buy
    # ステータスウィンドウのアイテムを設定
    @status_window.item = @buy_window.item
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # ウィンドウの状態を初期モードへ
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      # ヘルプテキストを消去
      @help_window.set_text("")
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # アイテムを取得
      @item = @buy_window.item
      # アイテムが無効の場合、または価格が所持金より上の場合
      if @item == nil or @item.price > $game_party.gold
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # アイテムの所持数を取得
      case @item
      when RPG::Item
        number = $game_party.item_number(@item.id)
      when RPG::Weapon
        number = $game_party.weapon_number(@item.id)
      when RPG::Armor
        number = $game_party.armor_number(@item.id)
      end
      # すでに上限まで個所持している場合
      limit = @item.number_limit
      if number >= limit
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      # 最大購入可能個数を計算
      max = (@item.price == 0 ? limit : $game_party.gold / @item.price)
      max = [max, limit - number].min
      # ウィンドウの状態を個数入力モードへ
      @buy_window.active = false
      @buy_window.visible = false
      @number_window.set(@item, max, @item.price)
      @number_window.active = true
      @number_window.visible = true
    end
  end
end[/pre]

敵人HP突破上限的部分  安裝此腳本之後再來設定敵人HP之後就生效了~~~

至於方法  請參照腳本114行的內容~~~

点评

Thanks  发表于 2014-8-28 21:41

评分

参与人数 1梦石 +1 收起 理由
︶ㄣ牛排ぶ + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部