查看: 4746|回复: 12

[已经解决] 如何更改HP最大值

[复制链接]
梦石
0
星屑
735
在线时间
208 小时
注册时间
2013-9-5
回帖
54
发表于 2014-7-11 11:25:40 | 显示全部楼层 |阅读模式

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

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

×
  我找不到教程,麻烦领路,谢谢!

点评

下次提问最好把问题说清楚,这样才能更快地得到你想要的解答,不是么?  发表于 2014-7-12 09:05
这5天有点事,不上来,5天后见
梦石
0
星屑
703
在线时间
313 小时
注册时间
2013-6-1
回帖
125
发表于 2014-7-12 08:49:04 | 显示全部楼层
a1670770233 发表于 2014-7-12 00:19
不好意思,我没说明白,我的意思是破限,hp可以改到999999999吗?谢谢》


如果是HP突破9999  數據庫是不能  不過腳本可以辦的到..
[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]

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2014-7-12 15:31:12 | 显示全部楼层
  1. class Game_Actor
  2.   def maxhp
  3.     n = [[base_maxhp + @maxhp_plus, 1].max, 9999].min
  4.     for i in @states
  5.       n *= $data_states[i].maxhp_rate / 100.0
  6.     end
  7.     n = [[Integer(n), 1].max, 9999].min
  8.     return n
  9.   end
  10. end
复制代码
把9999改成更大即可。

点评

好吧,我犯二了,两个脚本一起用可以了。无视我下面那条吧  发表于 2014-7-12 17:00
那個是腳本 數據庫當然不能設定超過9999 在遊戲中就會生效了的說= =  发表于 2014-7-12 16:39
可是数据库还是只能设置9999以下的啊  发表于 2014-7-12 15:34

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

回复

使用道具 举报

老黄鸡

梦石
4
星屑
45714
在线时间
7951 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-7-11 11:43:56 | 显示全部楼层
普通的数据库里不是有设置吗,如果实在没弄明白,事件里有一个更变成员能力值的按钮,也可以改变maxhp

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
735
在线时间
208 小时
注册时间
2013-9-5
回帖
54
 楼主| 发表于 2014-7-12 00:19:29 | 显示全部楼层
fux2 发表于 2014-7-11 11:43
普通的数据库里不是有设置吗,如果实在没弄明白,事件里有一个更变成员能力值的按钮,也可以改变maxhp ...

不好意思,我没说明白,我的意思是破限,hp可以改到999999999吗?谢谢》
这5天有点事,不上来,5天后见
回复

使用道具 举报

梦石
0
星屑
60
在线时间
26 小时
注册时间
2010-7-30
回帖
12
发表于 2014-7-12 08:33:49 | 显示全部楼层
a1670770233 发表于 2014-7-12 00:19
不好意思,我没说明白,我的意思是破限,hp可以改到999999999吗?谢谢》

貌似不行。。。。?而且这种数据没有意义,在系统允许的范围内的最大值已经足够了吧
回复

使用道具 举报

梦石
0
星屑
735
在线时间
208 小时
注册时间
2013-9-5
回帖
54
 楼主| 发表于 2014-7-12 10:16:23 | 显示全部楼层
e900003 发表于 2014-7-12 08:49
如果是HP突破9999  數據庫是不能  不過腳本可以辦的到..
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ ...

谢谢,但貌似没用啊!

点评

插入腳本之後 在遊戲中就有效果了 如果還是沒用的話 一定有什麼腳本衝突到 導致沒效果....  发表于 2014-7-12 16:38
这5天有点事,不上来,5天后见
回复

使用道具 举报

梦石
0
星屑
134
在线时间
66 小时
注册时间
2013-2-20
回帖
28
发表于 2014-7-15 17:14:17 | 显示全部楼层
脚本中Game_Actor的177行和181行中的9999改为更大数字即可
[
回复

使用道具 举报

梦石
0
星屑
735
在线时间
208 小时
注册时间
2013-9-5
回帖
54
 楼主| 发表于 2014-7-16 15:50:06 | 显示全部楼层
为什么不早说 发表于 2014-7-15 17:14
脚本中Game_Actor的177行和181行中的9999改为更大数字即可

不行啊!不用说在数据库中改,就是在事件中也不行 啊

点评

在脚本中改啊  发表于 2014-7-16 16:34
这5天有点事,不上来,5天后见
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-7-19 22:35:53 | 显示全部楼层
  1. class Game_Actor
  2.   def maxhp
  3.     n = [[base_maxhp + @maxhp_plus, 1].max, 9999].min
  4.     for i in @states
  5.       n *= $data_states[i].maxhp_rate / 100.0
  6.     end
  7.     n = [[Integer(n), 1].max, 9999].min
  8.     return n
  9.   end
  10. end
复制代码
把里面的9999改成更大的数值,或者用一个全局变量定义一个数,再把9999改成那个全局变量

比如
  1. $maxhp=99999999999999999999999999999999999999999999999999999999999999999999
  2. class Game_Actor
  3.   def maxhp
  4.     n = [[base_maxhp + @maxhp_plus, 1].max, $max].min
  5.     for i in @states
  6.       n *= $data_states[i].maxhp_rate / 100.0
  7.     end
  8.     n = [[Integer(n), 1].max, $max].min
  9.     return n
  10.   end
  11. end
复制代码
没记错的话在game_batter1里面还可以修改敌人的能力上限
  1. #==============================================================================
  2. # ■ Game_Battler (分割定义 1)
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  5. # 超级类来使用。
  6. #==============================================================================

  7. class Game_Battler
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :battler_name             # 战斗者 文件名
  12.   attr_reader   :battler_hue              # 战斗者 色相
  13.   attr_reader   :hp                       # HP
  14.   attr_reader   :sp                       # SP
  15.   attr_reader   :states                   # 状态
  16.   attr_accessor :hidden                   # 隐藏标志
  17.   attr_accessor :immortal                 # 不死身标志
  18.   attr_accessor :damage_pop               # 显示伤害标志
  19.   attr_accessor :damage                   # 伤害值
  20.   attr_accessor :critical                 # 会心一击标志
  21.   attr_accessor :animation_id             # 动画 ID
  22.   attr_accessor :animation_hit            # 动画 击中标志
  23.   attr_accessor :white_flash              # 白色屏幕闪烁标志
  24.   attr_accessor :blink                    # 闪烁标志
  25.   #--------------------------------------------------------------------------
  26.   # ● 初始化对像
  27.   #--------------------------------------------------------------------------
  28.   def initialize
  29.     @battler_name = ""
  30.     @battler_hue = 0
  31.     @hp = 0
  32.     @sp = 0
  33.     @states = []
  34.     @states_turn = {}
  35.     @maxhp_plus = 0
  36.     @maxsp_plus = 0
  37.     @str_plus = 0
  38.     @dex_plus = 0
  39.     @agi_plus = 0
  40.     @int_plus = 0
  41.     [url=home.php?mod=space&uid=292300]@Hidden[/url] = false
  42.     @immortal = false
  43.     @damage_pop = false
  44.     @damage = nil
  45.     @critical = false
  46.     @animation_id = 0
  47.     @animation_hit = false
  48.     @white_flash = false
  49.     @blink = false
  50.     @current_action = Game_BattleAction.new
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 获取 MaxHP
  54.   #--------------------------------------------------------------------------
  55.   def maxhp
  56.     n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
  57.     for i in @states
  58.       n *= $data_states[i].maxhp_rate / 100.0
  59.     end
  60.     n = [[Integer(n), 1].max, 999999].min
  61.     return n
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 获取 MaxSP
  65.   #--------------------------------------------------------------------------
  66.   def maxsp
  67.     n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min
  68.     for i in @states
  69.       n *= $data_states[i].maxsp_rate / 100.0
  70.     end
  71.     n = [[Integer(n), 0].max, 9999].min
  72.     return n
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 获取力量
  76.   #--------------------------------------------------------------------------
  77.   def str
  78.     n = [[base_str + @str_plus, 1].max, 999].min
  79.     for i in @states
  80.       n *= $data_states[i].str_rate / 100.0
  81.     end
  82.     n = [[Integer(n), 1].max, 999].min
  83.     return n
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 获取灵巧
  87.   #--------------------------------------------------------------------------
  88.   def dex
  89.     n = [[base_dex + @dex_plus, 1].max, 999].min
  90.     for i in @states
  91.       n *= $data_states[i].dex_rate / 100.0
  92.     end
  93.     n = [[Integer(n), 1].max, 999].min
  94.     return n
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 获取速度
  98.   #--------------------------------------------------------------------------
  99.   def agi
  100.     n = [[base_agi + @agi_plus, 1].max, 999].min
  101.     for i in @states
  102.       n *= $data_states[i].agi_rate / 100.0
  103.     end
  104.     n = [[Integer(n), 1].max, 999].min
  105.     return n
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 获取魔力
  109.   #--------------------------------------------------------------------------
  110.   def int
  111.     n = [[base_int + @int_plus, 1].max, 999].min
  112.     for i in @states
  113.       n *= $data_states[i].int_rate / 100.0
  114.     end
  115.     n = [[Integer(n), 1].max, 999].min
  116.     return n
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 设置 MaxHP
  120.   #     maxhp : 新的 MaxHP
  121.   #--------------------------------------------------------------------------
  122.   def maxhp=(maxhp)
  123.     @maxhp_plus += maxhp - self.maxhp
  124.     @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
  125.     @hp = [@hp, self.maxhp].min
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 设置 MaxSP
  129.   #     maxsp : 新的 MaxSP
  130.   #--------------------------------------------------------------------------
  131.   def maxsp=(maxsp)
  132.     @maxsp_plus += maxsp - self.maxsp
  133.     @maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min
  134.     @sp = [@sp, self.maxsp].min
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 设置力量
  138.   #     str : 新的力量
  139.   #--------------------------------------------------------------------------
  140.   def str=(str)
  141.     @str_plus += str - self.str
  142.     @str_plus = [[@str_plus, -999].max, 999].min
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 设置灵巧
  146.   #     dex : 新的灵巧
  147.   #--------------------------------------------------------------------------
  148.   def dex=(dex)
  149.     @dex_plus += dex - self.dex
  150.     @dex_plus = [[@dex_plus, -999].max, 999].min
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 设置速度
  154.   #     agi : 新的速度
  155.   #--------------------------------------------------------------------------
  156.   def agi=(agi)
  157.     @agi_plus += agi - self.agi
  158.     @agi_plus = [[@agi_plus, -999].max, 999].min
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● 设置魔力
  162.   #     int : 新的魔力
  163.   #--------------------------------------------------------------------------
  164.   def int=(int)
  165.     @int_plus += int - self.int
  166.     @int_plus = [[@int_plus, -999].max, 999].min
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 获取命中率
  170.   #--------------------------------------------------------------------------
  171.   def hit
  172.     n = 100
  173.     for i in @states
  174.       n *= $data_states[i].hit_rate / 100.0
  175.     end
  176.     return Integer(n)
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● 获取攻击力
  180.   #--------------------------------------------------------------------------
  181.   def atk
  182.     n = base_atk
  183.     for i in @states
  184.       n *= $data_states[i].atk_rate / 100.0
  185.     end
  186.     return Integer(n)
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 获取物理防御
  190.   #--------------------------------------------------------------------------
  191.   def pdef
  192.     n = base_pdef
  193.     for i in @states
  194.       n *= $data_states[i].pdef_rate / 100.0
  195.     end
  196.     return Integer(n)
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 获取魔法防御
  200.   #--------------------------------------------------------------------------
  201.   def mdef
  202.     n = base_mdef
  203.     for i in @states
  204.       n *= $data_states[i].mdef_rate / 100.0
  205.     end
  206.     return Integer(n)
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 获取回避修正
  210.   #--------------------------------------------------------------------------
  211.   def eva
  212.     n = base_eva
  213.     for i in @states
  214.       n += $data_states[i].eva
  215.     end
  216.     return n
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 更改 HP
  220.   #     hp : 新的 HP
  221.   #--------------------------------------------------------------------------
  222.   def hp=(hp)
  223.     @hp = [[hp, maxhp].min, 0].max
  224.     # 解除附加的战斗不能状态
  225.     for i in 1...$data_states.size
  226.       if $data_states[i].zero_hp
  227.         if self.dead?
  228.           add_state(i)
  229.         else
  230.           remove_state(i)
  231.         end
  232.       end
  233.     end
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 更改 SP
  237.   #     sp : 新的 SP
  238.   #--------------------------------------------------------------------------
  239.   def sp=(sp)
  240.     @sp = [[sp, maxsp].min, 0].max
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● 全回复
  244.   #--------------------------------------------------------------------------
  245.   def recover_all
  246.     @hp = maxhp
  247.     @sp = maxsp
  248.     for i in @states.clone
  249.       remove_state(i)
  250.     end
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   # ● 获取当前的动作
  254.   #--------------------------------------------------------------------------
  255.   def current_action
  256.     return @current_action
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ● 确定动作速度
  260.   #--------------------------------------------------------------------------
  261.   def make_action_speed
  262.     @current_action.speed = agi + rand(10 + agi / 4)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● 战斗不能判定
  266.   #--------------------------------------------------------------------------
  267.   def dead?
  268.     return (@hp == 0 and not @immortal)
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 存在判定
  272.   #--------------------------------------------------------------------------
  273.   def exist?
  274.     return (not @hidden and (@hp > 0 or @immortal))
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● HP 0 判定
  278.   #--------------------------------------------------------------------------
  279.   def hp0?
  280.     return (not @hidden and @hp == 0)
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● 可以输入命令判定
  284.   #--------------------------------------------------------------------------
  285.   def inputable?
  286.     return (not @hidden and restriction <= 1)
  287.   end
  288.   #--------------------------------------------------------------------------
  289.   # ● 可以行动判定
  290.   #--------------------------------------------------------------------------
  291.   def movable?
  292.     return (not @hidden and restriction < 4)
  293.   end
  294.   #--------------------------------------------------------------------------
  295.   # ● 防御中判定
  296.   #--------------------------------------------------------------------------
  297.   def guarding?
  298.     return (@current_action.kind == 0 and @current_action.basic == 1)
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● 休止中判定
  302.   #--------------------------------------------------------------------------
  303.   def resting?
  304.     return (@current_action.kind == 0 and @current_action.basic == 3)
  305.   end
  306. end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部