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

Project1

 找回密码
 注册会员
搜索
查看: 69|回复: 2

[有事请教] 求问破限脚本如何使用

[复制链接]

Lv2.观梦者

梦石
0
星屑
738
在线时间
10 小时
注册时间
2016-8-6
帖子
2
发表于 2020-2-8 01:40:41 | 显示全部楼层 |阅读模式

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

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

x
渣新,使用了这个脚本,我完全不会代码,自己摆弄了很久也搜了好几圈,硬是没搞懂怎么用xx。直接改ACTOR_MAXHP_LIMIT  = 99999这些数字没有效果,中间加编号也会错误,整个拖到翻译器里也没明白什么x
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 限界突破 - KGC_LimitBreak ◆ VX ◆
  3. #_/    ◇ Last update : 2008/01/09 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  ゲーム中の各種上限値を変更します。
  6. #_/============================================================================
  7. #_/  再定義が多いので、「素材」の最上部に導入してください。
  8. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  9. #==============================================================================
  10. # ★ カスタマイズ項目 - Customize ★
  11. #==============================================================================

  12. module KGC
  13. module LimitBreak
  14.   # ◆ 能力値算出方式
  15.   #   0..データベース通り。
  16.   #      (100以降は計算式として PARAMETER_CALC_EXP を使用)
  17.   #
  18.   #   1..データベースを用いた2次関数。
  19.   #        a:レベル1の値  b:レベル2の値  c:レベル3の値  x:現レベル
  20.   #      として、
  21.   #        ax^2 + bx + c
  22.   #      を用いて能力値を算出。
  23.   #
  24.   #   2..データベースを用いた1次関数。
  25.   #        b:レベル2の値  c:レベル3の値  x:現レベル
  26.   #      として、
  27.   #        bx + c
  28.   #      を用いて能力値を算出。
  29.   #      (レベル 2 と 3 の値を使うのは、2次関数方式との使い分けを楽にするため)
  30.   PARAMETER_CALC_METHOD = 0

  31.   # ◆ レベル 100 以降の能力値計算式
  32.   #  PARAMETER_CALC_METHOD = 0 のときに使用します。
  33.   #  【 level..現レベル  param[x]..レベル x の能力値 】
  34.   #  この計算結果をレベル 99 の能力値に加算します。
  35.   PARAMETER_CALC_EXP = "(param[99] - param[98]) * (level - 99)"

  36.   # ◆ アクターのレベル上限
  37.   ACTOR_FINAL_LEVEL = []  # ← これは消さないこと!
  38.   # ここから下に、アクターごとの最終レベルを
  39.   #   ACTOR_FINAL_LEVEL[アクターID] = 最終レベル
  40.   # という形式で設定します。
  41.   # <例> ↓ アクター 1 の最終レベル 999
  42.   ACTOR_FINAL_LEVEL[2] = 999

  43.   # ◆ アクターのレベル上限 (デフォルト)
  44.   #  上限を指定しなかった場合は、この値を最終レベルとして使用します。
  45.   ACTOR_FINAL_LEVEL_DEFAULT = 999
  46.   # ◆ アクターの経験値上限
  47.   ACTOR_EXP_LIMIT  = 99999999

  48.   # ◆ アクターの MaxHP 上限
  49.   ACTOR_MAXHP_LIMIT  = 999999
  50.   # ◆ アクターの MaxMP 上限
  51.   ACTOR_MAXMP_LIMIT  = 99999
  52.   # ◆ アクターの攻撃力、防御力、精神力、敏捷性上限
  53.   ACTOR_PARAMETER_LIMIT  = 9999

  54.   # ◆ エネミーの MaxHP 上限
  55.   ENEMY_MAXHP_LIMIT     = 999999
  56.   # ◆ エネミーの MaxMP 上限
  57.   ENEMY_MAXMP_LIMIT     = 99999
  58.   # ◆ エネミーの攻撃力、防御力、精神力、敏捷性上限
  59.   ENEMY_PARAMETER_LIMIT = 999999

  60.   # ◆ エネミーの能力値補正
  61.   #  エネミーの各種能力値をデータベースの ○% にします。
  62.   #  データベース通りにする場合は 100 にしてください。
  63.   ENEMY_MAXHP_RATE = 100  # MaxHP
  64.   ENEMY_MAXMP_RATE = 100  # MaxMP
  65.   ENEMY_ATK_RATE   = 100  # 攻撃力
  66.   ENEMY_DEF_RATE   = 100  # 防御力
  67.   ENEMY_SPI_RATE   = 100  # 精神力
  68.   ENEMY_AGI_RATE   = 100  # 敏捷性

  69.   # ◆ 所持金上限
  70.   GOLD_LIMIT = 99999999

  71.   # ◆ アイテム所持数上限
  72.   ITEM_NUMBER_LIMIT = 99

  73.   module_function
  74.   #--------------------------------------------------------------------------
  75.   # ○ 敵能力値直接指定
  76.   #     ここで、敵の MaxHP などを直接指定することができます。
  77.   #     データベースに入りきらない数値を指定する場合に使用してください。
  78.   #--------------------------------------------------------------------------
  79.   def set_enemy_parameters
  80.     #  <例> ID:10 の敵の MaxHP を 2000000 にする場合
  81.     # $data_enemies[10].maxhp = 2000000
  82.     #  <例> ID:16 の敵の攻撃力を 5000 にする場合
  83.     # $data_enemies[16].atk = 5000
  84.     #  <例> ID:20 の敵の防御力を2倍にする場合
  85.     # $data_enemies[20].def *= 2
  86.     $data_enemies[74].atk = 730
  87.     $data_enemies[75].atk = 760
  88.     $data_enemies[76].atk = 790
  89.     $data_enemies[77].atk = 810
  90.     $data_enemies[78].atk = 830
  91.     $data_enemies[79].atk = 870
  92.     $data_enemies[80].atk = 900
  93.     $data_enemies[81].atk = 1000
  94.     $data_enemies[82].atk = 1050
  95.     $data_enemies[85].atk = 1200
  96.     $data_enemies[86].atk = 1800
  97.     $data_enemies[86].def *= 3
  98.   end
  99. end
  100. end

  101. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

  104. module KGC::LimitBreak
  105.   # 正規表現を定義
  106.   module Regexp
  107.     # ベースアイテム
  108.     module BaseItem
  109.       # 所持数上限
  110.       NUMBER_LIMIT = /<(?:NUMBER_LIMIT|所持数上限)[ ]*(\d+)>/i
  111.     end
  112.   end

  113.   module_function
  114.   #--------------------------------------------------------------------------
  115.   # ○ 敵の能力補正を適用
  116.   #--------------------------------------------------------------------------
  117.   def revise_enemy_parameters
  118.     (1...$data_enemies.size).each { |i|
  119.       enemy = $data_enemies[i]
  120.       enemy.maxhp = enemy.maxhp * ENEMY_MAXHP_RATE / 100
  121.       enemy.maxmp = enemy.maxmp * ENEMY_MAXMP_RATE / 100
  122.       enemy.atk = enemy.atk * ENEMY_ATK_RATE / 100
  123.       enemy.def = enemy.def * ENEMY_DEF_RATE / 100
  124.       enemy.spi = enemy.spi * ENEMY_SPI_RATE / 100
  125.       enemy.agi = enemy.agi * ENEMY_AGI_RATE / 100
  126.     }
  127.   end
  128. end

  129. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  130. #==============================================================================
  131. # ■ RPG::BaseItem
  132. #==============================================================================

  133. class RPG::BaseItem
  134.   #--------------------------------------------------------------------------
  135.   # ○ 限界突破のキャッシュ生成
  136.   #--------------------------------------------------------------------------
  137.   def create_limit_break_cache
  138.     @__number_limit = KGC::LimitBreak::ITEM_NUMBER_LIMIT

  139.     self.note.split(/[\r\n]+/).each { |line|
  140.       if line =~ KGC::LimitBreak::Regexp::BaseItem::NUMBER_LIMIT
  141.         # 所持数上限
  142.         @__number_limit = $1.to_i
  143.       end
  144.     }
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ○ 所持数上限取得
  148.   #--------------------------------------------------------------------------
  149.   def number_limit
  150.     create_limit_break_cache if @__number_limit == nil
  151.     return @__number_limit
  152.   end
  153. end

  154. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  155. #==============================================================================
  156. # ■ Game_Battler
  157. #==============================================================================

  158. class Game_Battler
  159.   #--------------------------------------------------------------------------
  160.   # ● MaxHP の制限値取得
  161.   #--------------------------------------------------------------------------
  162.   def maxhp_limit
  163.     return KGC::LimitBreak::ENEMY_MAXHP_LIMIT
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ○ MaxMP の制限値取得
  167.   #--------------------------------------------------------------------------
  168.   def maxmp_limit
  169.     return KGC::LimitBreak::ENEMY_MAXMP_LIMIT
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● MaxMP の取得
  173.   #--------------------------------------------------------------------------
  174.   def maxmp
  175.     return [[base_maxmp + @maxmp_plus, 0].max, maxmp_limit].min
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ 各種パラメータの制限値取得
  179.   #--------------------------------------------------------------------------
  180.   def parameter_limit
  181.     return KGC::LimitBreak::ENEMY_PARAMETER_LIMIT
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 攻撃力の取得
  185.   #--------------------------------------------------------------------------
  186.   def atk
  187.     n = [base_atk + @atk_plus, 1].max
  188.     states.each { |state| n *= state.atk_rate / 100.0 }
  189.     n = [[Integer(n), 1].max, parameter_limit].min
  190.     return n
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 防御力の取得
  194.   #--------------------------------------------------------------------------
  195.   def def
  196.     n = [base_def + @def_plus, 1].max
  197.     states.each { |state| n *= state.def_rate / 100.0 }
  198.     n = [[Integer(n), 1].max, parameter_limit].min
  199.     return n
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● 精神力の取得
  203.   #--------------------------------------------------------------------------
  204.   def spi
  205.     n = [base_spi + @spi_plus, 1].max
  206.     states.each { |state| n *= state.spi_rate / 100.0 }
  207.     n = [[Integer(n), 1].max, parameter_limit].min
  208.     return n
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ● 敏捷性の取得
  212.   #--------------------------------------------------------------------------
  213.   def agi
  214.     n = [base_agi + @agi_plus, 1].max
  215.     states.each { |state| n *= state.agi_rate / 100.0 }
  216.     n = [[Integer(n), 1].max, parameter_limit].min
  217.     return n
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● MaxHP の設定
  221.   #     new_maxhp : 新しい MaxHP
  222.   #--------------------------------------------------------------------------
  223.   def maxhp=(new_maxhp)
  224.     @maxhp_plus += new_maxhp - self.maxhp
  225.     @maxhp_plus = [[@maxhp_plus, -maxhp_limit].max, maxhp_limit].min
  226.     @hp = [@hp, self.maxhp].min
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● MaxMP の設定
  230.   #     new_maxmp : 新しい MaxMP
  231.   #--------------------------------------------------------------------------
  232.   def maxmp=(new_maxmp)
  233.     @maxmp_plus += new_maxmp - self.maxmp
  234.     @maxmp_plus = [[@maxmp_plus, -maxmp_limit].max, maxmp_limit].min
  235.     @mp = [@mp, self.maxmp].min
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 攻撃力の設定
  239.   #     new_atk : 新しい攻撃力
  240.   #--------------------------------------------------------------------------
  241.   def atk=(new_atk)
  242.     @atk_plus += new_atk - self.atk
  243.     @atk_plus = [[@atk_plus, -parameter_limit].max, parameter_limit].min
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 防御力の設定
  247.   #     new_def : 新しい防御力
  248.   #--------------------------------------------------------------------------
  249.   def def=(new_def)
  250.     @def_plus += new_def - self.def
  251.     @def_plus = [[@def_plus, -parameter_limit].max, parameter_limit].min
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 精神力の設定
  255.   #     new_spi : 新しい精神力
  256.   #--------------------------------------------------------------------------
  257.   def spi=(new_spi)
  258.     @spi_plus += new_spi - self.spi
  259.     @spi_plus = [[@spi_plus, -parameter_limit].max, parameter_limit].min
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 敏捷性の設定
  263.   #     agi : 新しい敏捷性
  264.   #--------------------------------------------------------------------------
  265.   def agi=(new_agi)
  266.     @agi_plus += new_agi - self.agi
  267.     @agi_plus = [[@agi_plus, -parameter_limit].max, parameter_limit].min
  268.   end
  269. end

  270. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  271. #==============================================================================
  272. # ■ Game_Actor
  273. #==============================================================================

  274. class Game_Actor < Game_Battler
  275.   #--------------------------------------------------------------------------
  276.   # ● 経験値計算
  277.   #--------------------------------------------------------------------------
  278.   def make_exp_list
  279.     @exp_list = Array.new(final_level + 2)
  280.     @exp_list[1] = @exp_list[final_level + 1] = 0
  281.     m = actor.exp_basis
  282.     n = 0.75 + actor.exp_inflation / 200.0
  283.     (2..final_level).each { |i|
  284.       @exp_list[i] = @exp_list[i-1] + Integer(m)
  285.       m *= 1 + n
  286.       n *= 0.9
  287.     }
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ○ 最終レベルの取得
  291.   #--------------------------------------------------------------------------
  292.   def final_level
  293.     n = KGC::LimitBreak::ACTOR_FINAL_LEVEL[self.id]
  294.     return (n != nil ? n : KGC::LimitBreak::ACTOR_FINAL_LEVEL_DEFAULT)
  295.   end
  296.   #--------------------------------------------------------------------------
  297.   # ● MaxHP の制限値取得
  298.   #--------------------------------------------------------------------------
  299.   def maxhp_limit
  300.     return KGC::LimitBreak::ACTOR_MAXHP_LIMIT
  301.   end
  302.   #--------------------------------------------------------------------------
  303.   # ○ MaxMP の制限値取得
  304.   #--------------------------------------------------------------------------
  305.   def maxmp_limit
  306.     return KGC::LimitBreak::ACTOR_MAXMP_LIMIT
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # ○ 各種パラメータの制限値取得
  310.   #--------------------------------------------------------------------------
  311.   def parameter_limit
  312.     return KGC::LimitBreak::ACTOR_PARAMETER_LIMIT
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ○ 経験値の制限値取得
  316.   #--------------------------------------------------------------------------
  317.   def exp_limit
  318.     return KGC::LimitBreak::ACTOR_EXP_LIMIT
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ● 経験値の変更
  322.   #     exp  : 新しい経験値
  323.   #     show : レベルアップ表示フラグ
  324.   #--------------------------------------------------------------------------
  325.   def change_exp(exp, show)
  326.     last_level = @level
  327.     last_skills = skills
  328.     @exp = [[exp, exp_limit].min, 0].max
  329.     while @exp >= @exp_list[@level+1] && @exp_list[@level+1] > 0
  330.       level_up
  331.     end
  332.     while @exp < @exp_list[@level]
  333.       level_down
  334.     end
  335.     @hp = [@hp, maxhp].min
  336.     @mp = [@mp, maxmp].min
  337.     if show && @level > last_level
  338.       display_level_up(skills - last_skills)
  339.     end
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ● レベルの変更
  343.   #     level : 新しいレベル
  344.   #     show  : レベルアップ表示フラグ
  345.   #--------------------------------------------------------------------------
  346.   def change_level(level, show)
  347.     level = [[level, final_level].min, 1].max
  348.     change_exp(@exp_list[level], show)
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ○ 基本パラメータの取得
  352.   #--------------------------------------------------------------------------
  353.   def base_parameter(type)
  354.     case KGC::LimitBreak::PARAMETER_CALC_METHOD
  355.     when 0  # 数式定義
  356.       if @level >= 100
  357.         calc_text = KGC::LimitBreak::PARAMETER_CALC_EXP.dup
  358.         calc_text.gsub!(/level/i) { "@level" }
  359.         calc_text.gsub!(/param\[(\d+)\]/i) {
  360.           "actor.parameters[type, #{$1.to_i}]"
  361.         }
  362.         return actor.parameters[type, 99] + eval(calc_text)
  363.       end
  364.     when 1  # 二次関数
  365.       a = actor.parameters[type, 1]
  366.       b = actor.parameters[type, 2]
  367.       c = actor.parameters[type, 3]
  368.       return ((a * @level + b) * @level + c)
  369.     when 2  # 一次関数
  370.       b = actor.parameters[type, 2]
  371.       c = actor.parameters[type, 3]
  372.       return (b * @level + c)
  373.     end
  374.     return actor.parameters[type, @level]
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ● 基本 MaxHP の取得
  378.   #--------------------------------------------------------------------------
  379.   def base_maxhp
  380.     return base_parameter(0)
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ● 基本 MaxMP の取得
  384.   #--------------------------------------------------------------------------
  385.   def base_maxmp
  386.     return base_parameter(1)
  387.   end
  388.   #--------------------------------------------------------------------------
  389.   # ● 基本攻撃力の取得
  390.   #--------------------------------------------------------------------------
  391.   def base_atk
  392.     n = base_parameter(2)
  393.     equips.compact.each { |item| n += item.atk }
  394.     return n
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # ● 基本防御力の取得
  398.   #--------------------------------------------------------------------------
  399.   def base_def
  400.     n = base_parameter(3)
  401.     equips.compact.each { |item| n += item.def }
  402.     return n
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 基本精神力の取得
  406.   #--------------------------------------------------------------------------
  407.   def base_spi
  408.     n = base_parameter(4)
  409.     equips.compact.each { |item| n += item.spi }
  410.     return n
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ● 基本敏捷性の取得
  414.   #--------------------------------------------------------------------------
  415.   def base_agi
  416.     n = base_parameter(5)
  417.     equips.compact.each { |item| n += item.agi }
  418.     return n
  419.   end
  420. end

  421. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  422. #==============================================================================
  423. # ■ Game_Party
  424. #==============================================================================

  425. class Game_Party < Game_Unit
  426.   #--------------------------------------------------------------------------
  427.   # ○ 所持金の制限値取得
  428.   #--------------------------------------------------------------------------
  429.   def gold_limit
  430.     return KGC::LimitBreak::GOLD_LIMIT
  431.   end
  432.   #--------------------------------------------------------------------------
  433.   # ● ゴールドの増加 (減少)
  434.   #     n : 金額
  435.   #--------------------------------------------------------------------------
  436.   def gain_gold(n)
  437.     @gold = [[@gold + n, 0].max, gold_limit].min
  438.   end
  439.   #--------------------------------------------------------------------------
  440.   # ● アイテムの増加 (減少)
  441.   #     item          : アイテム
  442.   #     n             : 個数
  443.   #     include_equip : 装備品も含める
  444.   #--------------------------------------------------------------------------
  445.   def gain_item(item, n, include_equip = false)
  446.     number = item_number(item)
  447.     case item
  448.     when RPG::Item
  449.       @items[item.id] = [[number + n, 0].max, item.number_limit].min
  450.     when RPG::Weapon
  451.       @weapons[item.id] = [[number + n, 0].max, item.number_limit].min
  452.     when RPG::Armor
  453.       @armors[item.id] = [[number + n, 0].max, item.number_limit].min
  454.     end
  455.     n += number
  456.     if include_equip && n < 0
  457.       members.each { |actor|
  458.         while n < 0 && actor.equips.include?(item)
  459.           actor.discard_equip(item)
  460.           n += 1
  461.         end
  462.       }
  463.     end
  464.   end
  465. end

  466. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  467. #==============================================================================
  468. # ■ Window_ShopBuy
  469. #==============================================================================

  470. class Window_ShopBuy < Window_Selectable
  471.   #--------------------------------------------------------------------------
  472.   # ● 項目の描画
  473.   #     index : 項目番号
  474.   #--------------------------------------------------------------------------
  475.   def draw_item(index)
  476.     item = @data[index]
  477.     number = $game_party.item_number(item)
  478.     enabled = (item.price <= $game_party.gold && number < item.number_limit)
  479.     rect = item_rect(index)
  480.     self.contents.clear_rect(rect)
  481.     draw_item_name(item, rect.x, rect.y, enabled)
  482.     rect.width -= 4
  483.     self.contents.draw_text(rect, item.price, 2)
  484.   end
  485. end

  486. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  487. #==============================================================================
  488. # ■ Scene_Title
  489. #==============================================================================

  490. class Scene_Title < Scene_Base
  491.   #--------------------------------------------------------------------------
  492.   # ● データベースのロード
  493.   #--------------------------------------------------------------------------
  494.   alias load_database_KGC_LimitBreak load_database
  495.   def load_database
  496.     load_database_KGC_LimitBreak

  497.     set_enemy_parameters
  498.   end
  499.   #--------------------------------------------------------------------------
  500.   # ● 戦闘テスト用データベースのロード
  501.   #--------------------------------------------------------------------------
  502.   alias load_bt_database_KGC_LimitBreak load_bt_database
  503.   def load_bt_database
  504.     load_bt_database_KGC_LimitBreak

  505.     set_enemy_parameters
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # ○ エネミーの能力値を設定
  509.   #--------------------------------------------------------------------------
  510.   def set_enemy_parameters
  511.     KGC::LimitBreak.revise_enemy_parameters
  512.     KGC::LimitBreak.set_enemy_parameters
  513.   end
  514. end

  515. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  516. #==============================================================================
  517. # ■ Scene_File
  518. #==============================================================================

  519. class Scene_File < Scene_Base
  520.   #--------------------------------------------------------------------------
  521.   # ● セーブデータの読み込み
  522.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  523.   #--------------------------------------------------------------------------
  524.   alias read_save_data_KGC_LimitBreak read_save_data
  525.   def read_save_data(file)
  526.     read_save_data_KGC_LimitBreak(file)

  527.     (1...$data_actors.size).each { |i|
  528.       actor = $game_actors[i]
  529.       actor.make_exp_list
  530.       # レベル上限チェック
  531.       if actor.level > actor.final_level
  532.         while actor.level > actor.final_level
  533.           actor.level_down
  534.         end
  535.         # 減少した HP などを反映させるためのおまじない
  536.         actor.change_level(actor.final_level, false)
  537.       end
  538.     }
  539.   end
  540. end

  541. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  542. #==============================================================================
  543. # ■ Scene_Shop
  544. #==============================================================================

  545. class Scene_Shop < Scene_Base
  546.   #--------------------------------------------------------------------------
  547.   # ● 購入アイテム選択の更新
  548.   #--------------------------------------------------------------------------
  549.   def update_buy_selection
  550.     @status_window.item = @buy_window.item
  551.     if Input.trigger?(Input::B)
  552.       Sound.play_cancel
  553.       @command_window.active = true
  554.       @dummy_window.visible = true
  555.       @buy_window.active = false
  556.       @buy_window.visible = false
  557.       @status_window.visible = false
  558.       @status_window.item = nil
  559.       @help_window.set_text("")
  560.       return
  561.     end
  562.     if Input.trigger?(Input::C)
  563.       @item = @buy_window.item
  564.       number = $game_party.item_number(@item)
  565.       if @item == nil || @item.price > $game_party.gold ||
  566.           number == @item.number_limit
  567.         Sound.play_buzzer
  568.       else
  569.         Sound.play_decision
  570.         max = (@item.price == 0 ?
  571.           @item.number_limit : $game_party.gold / @item.price)
  572.         max = [max, @item.number_limit - number].min
  573.         @buy_window.active = false
  574.         @buy_window.visible = false
  575.         @number_window.set(@item, max, @item.price)
  576.         @number_window.active = true
  577.         @number_window.visible = true
  578.       end
  579.     end
  580.   end
  581. end
复制代码

Lv3.寻梦者

梦石
0
星屑
1522
在线时间
448 小时
注册时间
2019-1-20
帖子
91
发表于 2020-2-8 20:53:06 | 显示全部楼层
RUBY 代码复制打印
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2.  
  3. #_/    ◆ 限界突破 - KGC_LimitBreak ◆ VX ◆
  4.  
  5. #_/    ◇ Last update : 2008/01/09 ◇
  6.  
  7. #_/----------------------------------------------------------------------------
  8.  
  9. #_/  ゲーム中の各種上限値を変更します。
  10.  
  11. #_/============================================================================
  12.  
  13. #_/  再定義が多いので、「素材」の最上部に導入してください。
  14.  
  15. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  16.  
  17.  
  18. #==============================================================================
  19.  
  20. # ★ カスタマイズ項目 - Customize ★
  21.  
  22. #==============================================================================
  23.  
  24.  
  25. module KGC
  26.  
  27. module LimitBreak
  28. =begin
  29. 使用 有道翻译+脑补修正
  30. 机翻效果还不错,不过部分英文会变化大小写,所以不要把全部脚本拖进去翻译,只要日文说明的部分
  31.  
  32. 能力值计算方式
  33. 0 按照数据库 等级100以后的能力值计算公式使用 下面那个 parameter_calc_exp
  34. 1 使用数据库的二次函数。a:等级1的值b:等级2的值c:等级3的值x:当前等级    ax ^ 2 + bx + c  
  35. 2 使用数据库的1次函数。 b:等级2的值c:等级3的值x:当前等级   bx + c
  36. #(使用等级2和3的值是为了方便与二次函数方式的区分)
  37. =end
  38.   PARAMETER_CALC_METHOD = 0 #能力値的计算公式类型
  39.  
  40. #上面的 parameter_calc_method = 0时使用的 等级100以后的能力值计算公式
  41. #level 当前等级  param[x] 等级x时的能力值   将这个计算结果加到等级99的能力值。
  42.   PARAMETER_CALC_EXP = "(param[99] - param[98]) * (level - 99)"
  43.  
  44. #角色的等级上限
  45. ACTOR_FINAL_LEVEL = []  #←不要抹去!
  46. #从这里往下,把每个角色的最终等级以
  47. # ACTOR_FINAL_LEVEL[角色ID] =最终等级
  48. #的形式设定。
  49. # <例>↓角色2的最终等级999     比下面的 角色的等级上限(默认)  大会报错
  50. ACTOR_FINAL_LEVEL[2] = 999
  51.  
  52. #角色的等级上限(默认)
  53. #没有指定上限的情况下,使用这个值作为最终等级。
  54.   ACTOR_FINAL_LEVEL_DEFAULT = 999
  55.  
  56.   #角色的经验上限  设定过低的话达到经验上限后就不能升级了
  57.   ACTOR_EXP_LIMIT  = 99999999
  58.  
  59.   #角色的MaxHP 上限
  60.   ACTOR_MAXHP_LIMIT  = 999999
  61.  
  62.   #角色的MaxMP 上限
  63.   ACTOR_MAXMP_LIMIT  = 99999
  64.  
  65.   #角色的攻撃力、防御力、精神力、敏捷性上限
  66.   ACTOR_PARAMETER_LIMIT  = 9999
  67.  
  68.  
  69.   #敌人的 MaxHP 上限
  70.   ENEMY_MAXHP_LIMIT     = 999999
  71.  
  72.   #敌人的 MaxMP 上限
  73.   ENEMY_MAXMP_LIMIT     = 99999
  74.  
  75.   #敌人的攻撃力、防御力、精神力、敏捷性上限
  76.   ENEMY_PARAMETER_LIMIT = 999999
  77.  
  78. #敌人的能力值校正
  79. #把敌人的各种能力值设为数据库的%。按照数据库默认的话请设为100。
  80.   ENEMY_MAXHP_RATE = 100  # MaxHP
  81.   ENEMY_MAXMP_RATE = 100  # MaxMP
  82.   ENEMY_ATK_RATE   = 100  # 攻撃力
  83.   ENEMY_DEF_RATE   = 100  # 防御力
  84.   ENEMY_SPI_RATE   = 100  # 精神力
  85.   ENEMY_AGI_RATE   = 100  # 敏捷性
  86.  
  87.   #金钱上限
  88.   GOLD_LIMIT = 99999999
  89.  
  90.   #物品持有数上限
  91.   ITEM_NUMBER_LIMIT = 99
  92.  
  93.   module_function
  94. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  95. #在这里,可以直接指定敌人的MaxHP等。
  96. #请在无法使用数据库更改数值的情况下才使用。
  97. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  98.   def set_enemy_parameters
  99.  
  100.   # <例> ID:10敌人的MaxHP为2000000时
  101.   # $data_enemies[10].maxhp = 2000000
  102.   # <例> ID:16敌人的攻击力为5000时
  103.   # $data_enemies[16].atk = 5000
  104.   # <例> ID:20的敌人防御力加倍的情况
  105.   # $data_enemies[20].def *= 2
  106.  
  107. #如果数据库的敌人种类上限数小于id会出错,嗯-我就是,所以范例的几个删除了
  108.  
  109.   end
  110.  
  111. end
  112.  
  113. end
  114.  
  115.  
  116. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  117.  
  118.  
  119. $imported = {} if $imported == nil
  120.  
  121. $imported["LimitBreak"] = true
  122.  
  123.  
  124. module KGC::LimitBreak
  125.  
  126.   # 正規表現を定義
  127.  
  128.   module Regexp
  129.  
  130.     # ベースアイテム
  131.  
  132.     module BaseItem
  133.  
  134.       # 所持数上限
  135.  
  136.       NUMBER_LIMIT = /<(?:NUMBER_LIMIT|所持数上限)[ ]*(\d+)>/i
  137.  
  138.     end
  139.  
  140.   end
  141.  
  142.  
  143.   module_function
  144.  
  145.   #--------------------------------------------------------------------------
  146.  
  147.   # ○ 敵の能力補正を適用
  148.  
  149.   #--------------------------------------------------------------------------
  150.  
  151.   def revise_enemy_parameters
  152.  
  153.     (1...$data_enemies.size).each { |i|
  154.  
  155.       enemy = $data_enemies[i]
  156.  
  157.       enemy.maxhp = enemy.maxhp * ENEMY_MAXHP_RATE / 100
  158.  
  159.       enemy.maxmp = enemy.maxmp * ENEMY_MAXMP_RATE / 100
  160.  
  161.       enemy.atk = enemy.atk * ENEMY_ATK_RATE / 100
  162.  
  163.       enemy.def = enemy.def * ENEMY_DEF_RATE / 100
  164.  
  165.       enemy.spi = enemy.spi * ENEMY_SPI_RATE / 100
  166.  
  167.       enemy.agi = enemy.agi * ENEMY_AGI_RATE / 100
  168.  
  169.     }
  170.  
  171.   end
  172.  
  173. end
  174.  
  175.  
  176. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  177.  
  178.  
  179. #==============================================================================
  180.  
  181. # ■ RPG::BaseItem
  182.  
  183. #==============================================================================
  184.  
  185.  
  186. class RPG::BaseItem
  187.  
  188.   #--------------------------------------------------------------------------
  189.  
  190.   # ○ 限界突破のキャッシュ生成
  191.  
  192.   #--------------------------------------------------------------------------
  193.  
  194.   def create_limit_break_cache
  195.  
  196.     @__number_limit = KGC::LimitBreak::ITEM_NUMBER_LIMIT
  197.  
  198.  
  199.     self.note.split(/[\r\n]+/).each { |line|
  200.  
  201.       if line =~ KGC::LimitBreak::Regexp::BaseItem::NUMBER_LIMIT
  202.  
  203.         # 所持数上限
  204.  
  205.         @__number_limit = $1.to_i
  206.  
  207.       end
  208.  
  209.     }
  210.  
  211.   end
  212.  
  213.   #--------------------------------------------------------------------------
  214.  
  215.   # ○ 所持数上限取得
  216.  
  217.   #--------------------------------------------------------------------------
  218.  
  219.   def number_limit
  220.  
  221.     create_limit_break_cache if @__number_limit == nil
  222.  
  223.     return @__number_limit
  224.  
  225.   end
  226.  
  227. end
  228.  
  229.  
  230. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  231.  
  232.  
  233. #==============================================================================
  234.  
  235. # ■ Game_Battler
  236.  
  237. #==============================================================================
  238.  
  239.  
  240. class Game_Battler
  241.  
  242.   #--------------------------------------------------------------------------
  243.  
  244.   # ● MaxHP の制限値取得
  245.  
  246.   #--------------------------------------------------------------------------
  247.  
  248.   def maxhp_limit
  249.  
  250.     return KGC::LimitBreak::ENEMY_MAXHP_LIMIT
  251.  
  252.   end
  253.  
  254.   #--------------------------------------------------------------------------
  255.  
  256.   # ○ MaxMP の制限値取得
  257.  
  258.   #--------------------------------------------------------------------------
  259.  
  260.   def maxmp_limit
  261.  
  262.     return KGC::LimitBreak::ENEMY_MAXMP_LIMIT
  263.  
  264.   end
  265.  
  266.   #--------------------------------------------------------------------------
  267.  
  268.   # ● MaxMP の取得
  269.  
  270.   #--------------------------------------------------------------------------
  271.  
  272.   def maxmp
  273.  
  274.     return [[base_maxmp + @maxmp_plus, 0].max, maxmp_limit].min
  275.  
  276.   end
  277.  
  278.   #--------------------------------------------------------------------------
  279.  
  280.   # ○ 各種パラメータの制限値取得
  281.  
  282.   #--------------------------------------------------------------------------
  283.  
  284.   def parameter_limit
  285.  
  286.     return KGC::LimitBreak::ENEMY_PARAMETER_LIMIT
  287.  
  288.   end
  289.  
  290.   #--------------------------------------------------------------------------
  291.  
  292.   # ● 攻撃力の取得
  293.  
  294.   #--------------------------------------------------------------------------
  295.  
  296.   def atk
  297.  
  298.     n = [base_atk + @atk_plus, 1].max
  299.  
  300.     states.each { |state| n *= state.atk_rate / 100.0 }
  301.  
  302.     n = [[Integer(n), 1].max, parameter_limit].min
  303.  
  304.     return n
  305.  
  306.   end
  307.  
  308.   #--------------------------------------------------------------------------
  309.  
  310.   # ● 防御力の取得
  311.  
  312.   #--------------------------------------------------------------------------
  313.  
  314.   def def
  315.  
  316.     n = [base_def + @def_plus, 1].max
  317.  
  318.     states.each { |state| n *= state.def_rate / 100.0 }
  319.  
  320.     n = [[Integer(n), 1].max, parameter_limit].min
  321.  
  322.     return n
  323.  
  324.   end
  325.  
  326.   #--------------------------------------------------------------------------
  327.  
  328.   # ● 精神力の取得
  329.  
  330.   #--------------------------------------------------------------------------
  331.  
  332.   def spi
  333.  
  334.     n = [base_spi + @spi_plus, 1].max
  335.  
  336.     states.each { |state| n *= state.spi_rate / 100.0 }
  337.  
  338.     n = [[Integer(n), 1].max, parameter_limit].min
  339.  
  340.     return n
  341.  
  342.   end
  343.  
  344.   #--------------------------------------------------------------------------
  345.  
  346.   # ● 敏捷性の取得
  347.  
  348.   #--------------------------------------------------------------------------
  349.  
  350.   def agi
  351.  
  352.     n = [base_agi + @agi_plus, 1].max
  353.  
  354.     states.each { |state| n *= state.agi_rate / 100.0 }
  355.  
  356.     n = [[Integer(n), 1].max, parameter_limit].min
  357.  
  358.     return n
  359.  
  360.   end
  361.  
  362.   #--------------------------------------------------------------------------
  363.  
  364.   # ● MaxHP の設定
  365.  
  366.   #     new_maxhp : 新しい MaxHP
  367.  
  368.   #--------------------------------------------------------------------------
  369.  
  370.   def maxhp=(new_maxhp)
  371.  
  372.     @maxhp_plus += new_maxhp - self.maxhp
  373.  
  374.     @maxhp_plus = [[@maxhp_plus, -maxhp_limit].max, maxhp_limit].min
  375.  
  376.     @hp = [@hp, self.maxhp].min
  377.  
  378.   end
  379.  
  380.   #--------------------------------------------------------------------------
  381.  
  382.   # ● MaxMP の設定
  383.  
  384.   #     new_maxmp : 新しい MaxMP
  385.  
  386.   #--------------------------------------------------------------------------
  387.  
  388.   def maxmp=(new_maxmp)
  389.  
  390.     @maxmp_plus += new_maxmp - self.maxmp
  391.  
  392.     @maxmp_plus = [[@maxmp_plus, -maxmp_limit].max, maxmp_limit].min
  393.  
  394.     @mp = [@mp, self.maxmp].min
  395.  
  396.   end
  397.  
  398.   #--------------------------------------------------------------------------
  399.  
  400.   # ● 攻撃力の設定
  401.  
  402.   #     new_atk : 新しい攻撃力
  403.  
  404.   #--------------------------------------------------------------------------
  405.  
  406.   def atk=(new_atk)
  407.  
  408.     @atk_plus += new_atk - self.atk
  409.  
  410.     @atk_plus = [[@atk_plus, -parameter_limit].max, parameter_limit].min
  411.  
  412.   end
  413.  
  414.   #--------------------------------------------------------------------------
  415.  
  416.   # ● 防御力の設定
  417.  
  418.   #     new_def : 新しい防御力
  419.  
  420.   #--------------------------------------------------------------------------
  421.  
  422.   def def=(new_def)
  423.  
  424.     @def_plus += new_def - self.def
  425.  
  426.     @def_plus = [[@def_plus, -parameter_limit].max, parameter_limit].min
  427.  
  428.   end
  429.  
  430.   #--------------------------------------------------------------------------
  431.  
  432.   # ● 精神力の設定
  433.  
  434.   #     new_spi : 新しい精神力
  435.  
  436.   #--------------------------------------------------------------------------
  437.  
  438.   def spi=(new_spi)
  439.  
  440.     @spi_plus += new_spi - self.spi
  441.  
  442.     @spi_plus = [[@spi_plus, -parameter_limit].max, parameter_limit].min
  443.  
  444.   end
  445.  
  446.   #--------------------------------------------------------------------------
  447.  
  448.   # ● 敏捷性の設定
  449.  
  450.   #     agi : 新しい敏捷性
  451.  
  452.   #--------------------------------------------------------------------------
  453.  
  454.   def agi=(new_agi)
  455.  
  456.     @agi_plus += new_agi - self.agi
  457.  
  458.     @agi_plus = [[@agi_plus, -parameter_limit].max, parameter_limit].min
  459.  
  460.   end
  461.  
  462. end
  463.  
  464.  
  465. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  466.  
  467.  
  468. #==============================================================================
  469.  
  470. # ■ Game_Actor
  471.  
  472. #==============================================================================
  473.  
  474.  
  475. class Game_Actor < Game_Battler
  476.  
  477.   #--------------------------------------------------------------------------
  478.  
  479.   # ● 経験値計算
  480.  
  481.   #--------------------------------------------------------------------------
  482.  
  483.   def make_exp_list
  484.  
  485.     @exp_list = Array.new(final_level + 2)
  486.  
  487.     @exp_list[1] = @exp_list[final_level + 1] = 0
  488.  
  489.     m = actor.exp_basis
  490.  
  491.     n = 0.75 + actor.exp_inflation / 200.0
  492.  
  493.     (2..final_level).each { |i|
  494.  
  495.       @exp_list[i] = @exp_list[i-1] + Integer(m)
  496.  
  497.       m *= 1 + n
  498.  
  499.       n *= 0.9
  500.  
  501.     }
  502.  
  503.   end
  504.  
  505.   #--------------------------------------------------------------------------
  506.  
  507.   # ○ 最終レベルの取得
  508.  
  509.   #--------------------------------------------------------------------------
  510.  
  511.   def final_level
  512.  
  513.     n = KGC::LimitBreak::ACTOR_FINAL_LEVEL[self.id]
  514.  
  515.     return (n != nil ? n : KGC::LimitBreak::ACTOR_FINAL_LEVEL_DEFAULT)
  516.  
  517.   end
  518.  
  519.   #--------------------------------------------------------------------------
  520.  
  521.   # ● MaxHP の制限値取得
  522.  
  523.   #--------------------------------------------------------------------------
  524.  
  525.   def maxhp_limit
  526.  
  527.     return KGC::LimitBreak::ACTOR_MAXHP_LIMIT
  528.  
  529.   end
  530.  
  531.   #--------------------------------------------------------------------------
  532.  
  533.   # ○ MaxMP の制限値取得
  534.  
  535.   #--------------------------------------------------------------------------
  536.  
  537.   def maxmp_limit
  538.  
  539.     return KGC::LimitBreak::ACTOR_MAXMP_LIMIT
  540.  
  541.   end
  542.  
  543.   #--------------------------------------------------------------------------
  544.  
  545.   # ○ 各種パラメータの制限値取得
  546.  
  547.   #--------------------------------------------------------------------------
  548.  
  549.   def parameter_limit
  550.  
  551.     return KGC::LimitBreak::ACTOR_PARAMETER_LIMIT
  552.  
  553.   end
  554.  
  555.   #--------------------------------------------------------------------------
  556.  
  557.   # ○ 経験値の制限値取得
  558.  
  559.   #--------------------------------------------------------------------------
  560.  
  561.   def exp_limit
  562.  
  563.     return KGC::LimitBreak::ACTOR_EXP_LIMIT
  564.  
  565.   end
  566.  
  567.   #--------------------------------------------------------------------------
  568.  
  569.   # ● 経験値の変更
  570.  
  571.   #     exp  : 新しい経験値
  572.  
  573.   #     show : レベルアップ表示フラグ
  574.  
  575.   #--------------------------------------------------------------------------
  576.  
  577.   def change_exp(exp, show)
  578.  
  579.     last_level = @level
  580.  
  581.     last_skills = skills
  582.  
  583.     @exp = [[exp, exp_limit].min, 0].max
  584.  
  585.     while @exp >= @exp_list[@level+1] && @exp_list[@level+1] > 0
  586.  
  587.       level_up
  588.  
  589.     end
  590.  
  591.     while @exp < @exp_list[@level]
  592.  
  593.       level_down
  594.  
  595.     end
  596.  
  597.     @hp = [@hp, maxhp].min
  598.  
  599.     @mp = [@mp, maxmp].min
  600.  
  601.     if show && @level > last_level
  602.  
  603.       display_level_up(skills - last_skills)
  604.  
  605.     end
  606.  
  607.   end
  608.  
  609.   #--------------------------------------------------------------------------
  610.  
  611.   # ● レベルの変更
  612.  
  613.   #     level : 新しいレベル
  614.  
  615.   #     show  : レベルアップ表示フラグ
  616.  
  617.   #--------------------------------------------------------------------------
  618.  
  619.   def change_level(level, show)
  620.  
  621.     level = [[level, final_level].min, 1].max
  622.  
  623.     change_exp(@exp_list[level], show)
  624.  
  625.   end
  626.  
  627.   #--------------------------------------------------------------------------
  628.  
  629.   # ○ 基本パラメータの取得
  630.  
  631.   #--------------------------------------------------------------------------
  632.  
  633.   def base_parameter(type)
  634.  
  635.     case KGC::LimitBreak::PARAMETER_CALC_METHOD
  636.  
  637.     when 0  # 数式定義
  638.  
  639.       if @level >= 100
  640.  
  641.         calc_text = KGC::LimitBreak::PARAMETER_CALC_EXP.dup
  642.  
  643.         calc_text.gsub!(/level/i) { "@level" }
  644.  
  645.         calc_text.gsub!(/param\[(\d+)\]/i) {
  646.  
  647.           "actor.parameters[type, #{$1.to_i}]"
  648.  
  649.         }
  650.  
  651.         return actor.parameters[type, 99] + eval(calc_text)
  652.  
  653.       end
  654.  
  655.     when 1  # 二次関数
  656.  
  657.       a = actor.parameters[type, 1]
  658.  
  659.       b = actor.parameters[type, 2]
  660.  
  661.       c = actor.parameters[type, 3]
  662.  
  663.       return ((a * @level + b) * @level + c)
  664.  
  665.     when 2  # 一次関数
  666.  
  667.       b = actor.parameters[type, 2]
  668.  
  669.       c = actor.parameters[type, 3]
  670.  
  671.       return (b * @level + c)
  672.  
  673.     end
  674.  
  675.     return actor.parameters[type, @level]
  676.  
  677.   end
  678.  
  679.   #--------------------------------------------------------------------------
  680.  
  681.   # ● 基本 MaxHP の取得
  682.  
  683.   #--------------------------------------------------------------------------
  684.  
  685.   def base_maxhp
  686.  
  687.     return base_parameter(0)
  688.  
  689.   end
  690.  
  691.   #--------------------------------------------------------------------------
  692.  
  693.   # ● 基本 MaxMP の取得
  694.  
  695.   #--------------------------------------------------------------------------
  696.  
  697.   def base_maxmp
  698.  
  699.     return base_parameter(1)
  700.  
  701.   end
  702.  
  703.   #--------------------------------------------------------------------------
  704.  
  705.   # ● 基本攻撃力の取得
  706.  
  707.   #--------------------------------------------------------------------------
  708.  
  709.   def base_atk
  710.  
  711.     n = base_parameter(2)
  712.  
  713.     equips.compact.each { |item| n += item.atk }
  714.  
  715.     return n
  716.  
  717.   end
  718.  
  719.   #--------------------------------------------------------------------------
  720.  
  721.   # ● 基本防御力の取得
  722.  
  723.   #--------------------------------------------------------------------------
  724.  
  725.   def base_def
  726.  
  727.     n = base_parameter(3)
  728.  
  729.     equips.compact.each { |item| n += item.def }
  730.  
  731.     return n
  732.  
  733.   end
  734.  
  735.   #--------------------------------------------------------------------------
  736.  
  737.   # ● 基本精神力の取得
  738.  
  739.   #--------------------------------------------------------------------------
  740.  
  741.   def base_spi
  742.  
  743.     n = base_parameter(4)
  744.  
  745.     equips.compact.each { |item| n += item.spi }
  746.  
  747.     return n
  748.  
  749.   end
  750.  
  751.   #--------------------------------------------------------------------------
  752.  
  753.   # ● 基本敏捷性の取得
  754.  
  755.   #--------------------------------------------------------------------------
  756.  
  757.   def base_agi
  758.  
  759.     n = base_parameter(5)
  760.  
  761.     equips.compact.each { |item| n += item.agi }
  762.  
  763.     return n
  764.  
  765.   end
  766.  
  767. end
  768.  
  769.  
  770. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  771.  
  772.  
  773. #==============================================================================
  774.  
  775. # ■ Game_Party
  776.  
  777. #==============================================================================
  778.  
  779.  
  780. class Game_Party < Game_Unit
  781.  
  782.   #--------------------------------------------------------------------------
  783.  
  784.   # ○ 所持金の制限値取得
  785.  
  786.   #--------------------------------------------------------------------------
  787.  
  788.   def gold_limit
  789.  
  790.     return KGC::LimitBreak::GOLD_LIMIT
  791.  
  792.   end
  793.  
  794.   #--------------------------------------------------------------------------
  795.  
  796.   # ● ゴールドの増加 (減少)
  797.  
  798.   #     n : 金額
  799.  
  800.   #--------------------------------------------------------------------------
  801.  
  802.   def gain_gold(n)
  803.  
  804.     @gold = [[@gold + n, 0].max, gold_limit].min
  805.  
  806.   end
  807.  
  808.   #--------------------------------------------------------------------------
  809.  
  810.   # ● アイテムの増加 (減少)
  811.  
  812.   #     item          : アイテム
  813.  
  814.   #     n             : 個数
  815.  
  816.   #     include_equip : 装備品も含める
  817.  
  818.   #--------------------------------------------------------------------------
  819.  
  820.   def gain_item(item, n, include_equip = false)
  821.  
  822.     number = item_number(item)
  823.  
  824.     case item
  825.  
  826.     when RPG::Item
  827.  
  828.       @items[item.id] = [[number + n, 0].max, item.number_limit].min
  829.  
  830.     when RPG::Weapon
  831.  
  832.       @weapons[item.id] = [[number + n, 0].max, item.number_limit].min
  833.  
  834.     when RPG::Armor
  835.  
  836.       @armors[item.id] = [[number + n, 0].max, item.number_limit].min
  837.  
  838.     end
  839.  
  840.     n += number
  841.  
  842.     if include_equip && n < 0
  843.  
  844.       members.each { |actor|
  845.  
  846.         while n < 0 && actor.equips.include?(item)
  847.  
  848.           actor.discard_equip(item)
  849.  
  850.           n += 1
  851.  
  852.         end
  853.  
  854.       }
  855.  
  856.     end
  857.  
  858.   end
  859.  
  860. end
  861.  
  862.  
  863. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  864.  
  865.  
  866. #==============================================================================
  867.  
  868. # ■ Window_ShopBuy
  869.  
  870. #==============================================================================
  871.  
  872.  
  873. class Window_ShopBuy < Window_Selectable
  874.  
  875.   #--------------------------------------------------------------------------
  876.  
  877.   # ● 項目の描画
  878.  
  879.   #     index : 項目番号
  880.  
  881.   #--------------------------------------------------------------------------
  882.  
  883.   def draw_item(index)
  884.  
  885.     item = @data[index]
  886.  
  887.     number = $game_party.item_number(item)
  888.  
  889.     enabled = (item.price <= $game_party.gold && number < item.number_limit)
  890.  
  891.     rect = item_rect(index)
  892.  
  893.     self.contents.clear_rect(rect)
  894.  
  895.     draw_item_name(item, rect.x, rect.y, enabled)
  896.  
  897.     rect.width -= 4
  898.  
  899.     self.contents.draw_text(rect, item.price, 2)
  900.  
  901.   end
  902.  
  903. end
  904.  
  905.  
  906. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  907.  
  908.  
  909. #==============================================================================
  910.  
  911. # ■ Scene_Title
  912.  
  913. #==============================================================================
  914.  
  915.  
  916. class Scene_Title < Scene_Base
  917.  
  918.   #--------------------------------------------------------------------------
  919.  
  920.   # ● データベースのロード
  921.  
  922.   #--------------------------------------------------------------------------
  923.  
  924.   alias load_database_KGC_LimitBreak load_database
  925.  
  926.   def load_database
  927.  
  928.     load_database_KGC_LimitBreak
  929.  
  930.  
  931.     set_enemy_parameters
  932.  
  933.   end
  934.  
  935.   #--------------------------------------------------------------------------
  936.  
  937.   # ● 戦闘テスト用データベースのロード
  938.  
  939.   #--------------------------------------------------------------------------
  940.  
  941.   alias load_bt_database_KGC_LimitBreak load_bt_database
  942.  
  943.   def load_bt_database
  944.  
  945.     load_bt_database_KGC_LimitBreak
  946.  
  947.  
  948.     set_enemy_parameters
  949.  
  950.   end
  951.  
  952.   #--------------------------------------------------------------------------
  953.  
  954.   # ○ エネミーの能力値を設定
  955.  
  956.   #--------------------------------------------------------------------------
  957.  
  958.   def set_enemy_parameters
  959.  
  960.     KGC::LimitBreak.revise_enemy_parameters
  961.  
  962.     KGC::LimitBreak.set_enemy_parameters
  963.  
  964.   end
  965.  
  966. end
  967.  
  968.  
  969. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  970.  
  971.  
  972. #==============================================================================
  973.  
  974. # ■ Scene_File
  975.  
  976. #==============================================================================
  977.  
  978.  
  979. class Scene_File < Scene_Base
  980.  
  981.   #--------------------------------------------------------------------------
  982.  
  983.   # ● セーブデータの読み込み
  984.  
  985.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  986.  
  987.   #--------------------------------------------------------------------------
  988.  
  989.   alias read_save_data_KGC_LimitBreak read_save_data
  990.  
  991.   def read_save_data(file)
  992.  
  993.     read_save_data_KGC_LimitBreak(file)
  994.  
  995.  
  996.     (1...$data_actors.size).each { |i|
  997.  
  998.       actor = $game_actors[i]
  999.  
  1000.       actor.make_exp_list
  1001.  
  1002.       # レベル上限チェック
  1003.  
  1004.       if actor.level > actor.final_level
  1005.  
  1006.         while actor.level > actor.final_level
  1007.  
  1008.           actor.level_down
  1009.  
  1010.         end
  1011.  
  1012.         # 減少した HP などを反映させるためのおまじない
  1013.  
  1014.         actor.change_level(actor.final_level, false)
  1015.  
  1016.       end
  1017.  
  1018.     }
  1019.  
  1020.   end
  1021.  
  1022. end
  1023.  
  1024.  
  1025. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1026.  
  1027.  
  1028. #==============================================================================
  1029.  
  1030. # ■ Scene_Shop
  1031.  
  1032. #==============================================================================
  1033.  
  1034.  
  1035. class Scene_Shop < Scene_Base
  1036.  
  1037.   #--------------------------------------------------------------------------
  1038.  
  1039.   # ● 購入アイテム選択の更新
  1040.  
  1041.   #--------------------------------------------------------------------------
  1042.  
  1043.   def update_buy_selection
  1044.  
  1045.     @status_window.item = @buy_window.item
  1046.  
  1047.     if Input.trigger?(Input::B)
  1048.  
  1049.       Sound.play_cancel
  1050.  
  1051.       @command_window.active = true
  1052.  
  1053.       @dummy_window.visible = true
  1054.  
  1055.       @buy_window.active = false
  1056.  
  1057.       @buy_window.visible = false
  1058.  
  1059.       @status_window.visible = false
  1060.  
  1061.       @status_window.item = nil
  1062.  
  1063.       @help_window.set_text("")
  1064.  
  1065.       return
  1066.  
  1067.     end
  1068.  
  1069.     if Input.trigger?(Input::C)
  1070.  
  1071.       @item = @buy_window.item
  1072.  
  1073.       number = $game_party.item_number(@item)
  1074.  
  1075.       if @item == nil || @item.price > $game_party.gold ||
  1076.  
  1077.           number == @item.number_limit
  1078.  
  1079.         Sound.play_buzzer
  1080.  
  1081.       else
  1082.  
  1083.         Sound.play_decision
  1084.  
  1085.         max = (@item.price == 0 ?
  1086.  
  1087.           @item.number_limit : $game_party.gold / @item.price)
  1088.  
  1089.         max = [max, @item.number_limit - number].min
  1090.  
  1091.         @buy_window.active = false
  1092.  
  1093.         @buy_window.visible = false
  1094.  
  1095.         @number_window.set(@item, max, @item.price)
  1096.  
  1097.         @number_window.active = true
  1098.  
  1099.         @number_window.visible = true
  1100.  
  1101.       end
  1102.  
  1103.     end
  1104.  
  1105.   end
  1106.  
  1107. end
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
738
在线时间
10 小时
注册时间
2016-8-6
帖子
2
 楼主| 发表于 2020-2-9 20:32:09 | 显示全部楼层
srwjrevenger 发表于 2020-2-8 20:53
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#_/    ◆ 限界突 ...

哦哦哦原来是要用公式,谢谢!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2020-2-29 02:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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