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

Project1

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

[已经解决] 菜鳥問 KGC 破限 問題

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3141
在线时间
654 小时
注册时间
2009-1-21
帖子
273
跳转到指定楼层
1
发表于 2010-12-13 18:45:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

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[1] = 999

  43.   

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

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

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

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

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

  72.   # ◆ アイテム所持数上限
  73.   ITEM_NUMBER_LIMIT = 999

  74.   module_function
  75.   #--------------------------------------------------------------------------
  76.   # ○ 敵能力値直接指定
  77.   #     ここで、敵の MaxHP などを直接指定することができます。
  78.   #     データベースに入りきらない数値を指定する場合に使用してください。
  79.   #--------------------------------------------------------------------------
  80.   def set_enemy_parameters
  81.     #  <例> ID:10 の敵の MaxHP を 2000000 にする場合
  82.     # $data_enemies[10].maxhp = 2000000
  83.     #  <例> ID:16 の敵の攻撃力を 5000 にする場合
  84.     # $data_enemies[16].atk = 5000
  85.     #  <例> ID:20 の敵の防御力を2倍にする場合
  86.     # $data_enemies[20].def *= 2
  87.   end
  88. end
  89. end

  90. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

  93. module KGC::LimitBreak
  94.   # 正規表現を定義
  95.   module Regexp
  96.     # ベースアイテム
  97.     module BaseItem
  98.       # 所持数上限
  99.       NUMBER_LIMIT = /^<(?:NUMBER_LIMIT|所持数上限)[ ]*(\d+)>/i
  100.     end
  101.   end

  102.   module_function
  103.   #--------------------------------------------------------------------------
  104.   # ○ 敵の能力補正を適用
  105.   #--------------------------------------------------------------------------
  106.   def revise_enemy_parameters
  107.     (1...$data_enemies.size).each { |i|
  108.       enemy = $data_enemies[i]
  109.       enemy.maxhp = enemy.maxhp * ENEMY_MAXHP_RATE / 100
  110.       enemy.maxmp = enemy.maxmp * ENEMY_MAXMP_RATE / 100
  111.       enemy.atk = enemy.atk * ENEMY_ATK_RATE / 100
  112.       enemy.def = enemy.def * ENEMY_DEF_RATE / 100
  113.       enemy.spi = enemy.spi * ENEMY_SPI_RATE / 100
  114.       enemy.agi = enemy.agi * ENEMY_AGI_RATE / 100
  115.     }
  116.   end
  117. end

  118. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  119. #==============================================================================
  120. # ■ RPG::BaseItem
  121. #==============================================================================

  122. class RPG::BaseItem
  123.   #--------------------------------------------------------------------------
  124.   # ○ 限界突破のキャッシュ生成
  125.   #--------------------------------------------------------------------------
  126.   def create_limit_break_cache
  127.     @__number_limit = KGC::LimitBreak::ITEM_NUMBER_LIMIT

  128.     @note.split(/[\r\n]+/).each { |line|
  129.       if line =~ KGC::LimitBreak::Regexp::BaseItem::NUMBER_LIMIT
  130.         # 所持数上限
  131.         @__number_limit = $1.to_i
  132.       end
  133.     }
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ○ 所持数上限取得
  137.   #--------------------------------------------------------------------------
  138.   def number_limit
  139.     create_limit_break_cache if @__number_limit == nil
  140.     return @__number_limit
  141.   end
  142. end

  143. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  144. #==============================================================================
  145. # ■ Game_Battler
  146. #==============================================================================

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

  259. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  260. #==============================================================================
  261. # ■ Game_Actor
  262. #==============================================================================

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

  410. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  411. #==============================================================================
  412. # ■ Game_Party
  413. #==============================================================================

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

  455. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  456. #==============================================================================
  457. # ■ Window_ShopBuy
  458. #==============================================================================

  459. class Window_ShopBuy < Window_Selectable
  460.   #--------------------------------------------------------------------------
  461.   # ● 項目の描画
  462.   #     index : 項目番号
  463.   #--------------------------------------------------------------------------
  464.   def draw_item(index)
  465.     item = @data[index]
  466.     number = $game_party.item_number(item)
  467.     enabled = (item.price <= $game_party.gold && number < item.number_limit)
  468.     rect = item_rect(index)
  469.     self.contents.clear_rect(rect)
  470.     draw_item_name(item, rect.x, rect.y, enabled)
  471.     rect.width -= 4
  472.     self.contents.draw_text(rect, item.price, 2)
  473.   end
  474. end

  475. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  476. #==============================================================================
  477. # ■ Scene_Title
  478. #==============================================================================

  479. class Scene_Title < Scene_Base
  480.   #--------------------------------------------------------------------------
  481.   # ● データベースのロード
  482.   #--------------------------------------------------------------------------
  483.   alias load_database_KGC_LimitBreak load_database
  484.   def load_database
  485.     load_database_KGC_LimitBreak

  486.     set_enemy_parameters
  487.   end
  488.   #--------------------------------------------------------------------------
  489.   # ● 戦闘テスト用データベースのロード
  490.   #--------------------------------------------------------------------------
  491.   alias load_bt_database_KGC_LimitBreak load_bt_database
  492.   def load_bt_database
  493.     load_bt_database_KGC_LimitBreak

  494.     set_enemy_parameters
  495.   end
  496.   #--------------------------------------------------------------------------
  497.   # ○ エネミーの能力値を設定
  498.   #--------------------------------------------------------------------------
  499.   def set_enemy_parameters
  500.     KGC::LimitBreak.revise_enemy_parameters
  501.     KGC::LimitBreak.set_enemy_parameters
  502.   end
  503. end

  504. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  505. #==============================================================================
  506. # ■ Scene_File
  507. #==============================================================================

  508. class Scene_File < Scene_Base
  509.   #--------------------------------------------------------------------------
  510.   # ● セーブデータの読み込み
  511.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  512.   #--------------------------------------------------------------------------
  513.   alias read_save_data_KGC_LimitBreak read_save_data
  514.   def read_save_data(file)
  515.     read_save_data_KGC_LimitBreak(file)

  516.     (1...$data_actors.size).each { |i|
  517.       actor = $game_actors[i]
  518.       actor.make_exp_list
  519.       # レベル上限チェック
  520.       if actor.level > actor.final_level
  521.         while actor.level > actor.final_level
  522.           actor.level_down
  523.         end
  524.         # 減少した HP などを反映させるためのおまじない
  525.         actor.change_level(actor.final_level, false)
  526.       end
  527.     }
  528.   end
  529. end

  530. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  531. #==============================================================================
  532. # ■ Scene_Shop
  533. #==============================================================================

  534. class Scene_Shop < Scene_Base
  535.   #--------------------------------------------------------------------------
  536.   # ● 購入アイテム選択の更新
  537.   #--------------------------------------------------------------------------
  538.   def update_buy_selection
  539.     @status_window.item = @buy_window.item
  540.     if Input.trigger?(Input::B)
  541.       Sound.play_cancel
  542.       @command_window.active = true
  543.       @dummy_window.visible = true
  544.       @buy_window.active = false
  545.       @buy_window.visible = false
  546.       @status_window.visible = false
  547.       @status_window.item = nil
  548.       @help_window.set_text("")
  549.       return
  550.     end
  551.     if Input.trigger?(Input::C)
  552.       @item = @buy_window.item
  553.       number = $game_party.item_number(@item)
  554.       if @item == nil || @item.price > $game_party.gold ||
  555.           number == @item.number_limit
  556.         Sound.play_buzzer
  557.       else
  558.         Sound.play_decision
  559.         max = (@item.price == 0 ?
  560.           @item.number_limit : $game_party.gold / @item.price)
  561.         max = [max, @item.number_limit - number].min
  562.         @buy_window.active = false
  563.         @buy_window.visible = false
  564.         @number_window.set(@item, max, @item.price)
  565.         @number_window.active = true
  566.         @number_window.visible = true
  567.       end
  568.     end
  569.   end
  570. end
复制代码
這一個 腳本

等級  方面

1號人物可以用

但是2號人物不行

其他屬性 都有效

就只是等級不行

上面的敘述
  1.   # ◆ アクターのレベル上限
  2.   ACTOR_FINAL_LEVEL = []  # ← これは消さないこと!
  3.   # ここから下に、アクターごとの最終レベルを
  4.   #   ACTOR_FINAL_LEVEL[アクターID] = 最終レベル
  5.   # という形式で設定します。
  6.   # <例> ↓ アクター 1 の最終レベル 999
  7.   ACTOR_FINAL_LEVEL[1] = 999
复制代码
似乎是 ACTOR_FINAL_LEVEL[ 人物 號碼  ] = 上限等級

應該是這意思吧?!

我打成

ACTOR_FINAL_LEVEL[1] = 999
ACTOR_FINAL_LEVEL[2] = 999


還是沒有用


直接改成

ACTOR_FINAL_LEVEL[2] = 999

也還是只有1號人物等級可以破限



要怎麼做呢!?

才能讓自己的4個人物破限

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
4
发表于 2010-12-15 00:54:20 | 只看该作者
本帖最后由 Rion幻音 于 2010-12-15 00:56 编辑

  # ◆ エネミーの MaxHP 上限
  ENEMY_MAXHP_LIMIT     = 9999999
  # ◆ エネミーの MaxMP 上限
  ENEMY_MAXMP_LIMIT     = 9999999
  # ◆ エネミーの攻撃力、防御力、精神力、敏捷性上限
  ENEMY_PARAMETER_LIMIT = 9999

这些的确是更改怪兽的属性,但只修改默认~所以要在这里修改好默认的属性然后再修改下面的~


至于怪兽属性破限这不必再数据库更改怪兽的任何一个属性,只要在数据库创建个新的怪兽,
比如ID31号加入了新怪物,生命为一百万!但默认怪物最高生命为10万~
只要在def set_enemy_parameters下加入
$data_enemies[31].maxhp = 1000000   #31为数据中的ID31的怪物~
这就行了~
但又要设定攻击为一千五,极限为999
又在下面加入
$data_enemies[31].atk = 1500
这就行了,更改$data_enemies[ID].后的语句就能了~
$data_enemies[ID].maxhp 这是更改生命
$data_enemies[ID].maxmp 这是更改魔力
$data_enemies[ID].atk 这是更改攻击力
$data_enemies[ID].def 这是更改防守力
$data_enemies[ID].agi 这是更改敏捷度
$data_enemies[ID].spi 这是更改精神力
$data_enemies[ID].hit 这是更改命中率
$data_enemies[ID].eva 这是更改回避率
$data_enemies[ID].exp 这是更改敌人掉落经验
$data_enemies[ID].gold 这是更改敌人掉落金钱


顺道告诉个小秘诀~
$game_variables[]是事件中的变量~
我们可以把怪兽的生命用变量来控制~
$data_enemies[31].maxhp = $game_variables[1]   
1号变量已经变成31号敌人的生命了~所以游戏时都可以更改31号敌人的生命了~

评分

参与人数 3星屑 +522 收起 理由
一瞬间的幻觉 + 20 这也是我想要知道的!谢谢
小幽的马甲 + 500 认可答案
御之嵐 + 2 感謝幫忙~~!!

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3141
在线时间
654 小时
注册时间
2009-1-21
帖子
273
3
 楼主| 发表于 2010-12-15 00:14:05 | 只看该作者
本帖最后由 御之嵐 于 2010-12-15 00:16 编辑

再來一問
  1.   # ◆ エネミーの MaxHP 上限
  2.   ENEMY_MAXHP_LIMIT     = 9999999
  3.   # ◆ エネミーの MaxMP 上限
  4.   ENEMY_MAXMP_LIMIT     = 9999999
  5.   # ◆ エネミーの攻撃力、防御力、精神力、敏捷性上限
  6.   ENEMY_PARAMETER_LIMIT = 9999
复制代码
這邊是敵人的設定嗎?!

如果是

它上面是  

HP   MP     上限 9999999

能力   上限 9999


在資料庫裡面

HP  MP  上限  999999

能力 上限 999   

沒辦法在上去


那要在哪裡調整 這些能力和HP、MP  才能有破現效果?!



是在這邊嗎?!

看不太懂說...
  1.   #--------------------------------------------------------------------------
  2.   # ○ 敵能力値直接指定
  3.   #     ここで、敵の MaxHP などを直接指定することができます。
  4.   #     データベースに入りきらない数値を指定する場合に使用してください。
  5.   #--------------------------------------------------------------------------
  6.   def set_enemy_parameters
  7.     #  <例> ID:10 の敵の MaxHP を 2000000 にする場合
  8.     # $data_enemies[10].maxhp = 2000000
  9.     #  <例> ID:16 の敵の攻撃力を 5000 にする場合
  10.     # $data_enemies[16].atk = 5000
  11.     #  <例> ID:20 の敵の防御力を2倍にする場合
  12.     # $data_enemies[20].def *= 2
复制代码
有大大能舉個例子給我看嗎  @口@"?!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
2
发表于 2010-12-14 10:02:27 | 只看该作者
如果是要全体角色最高等级都相同的话只要修改脚本里的这句就行了……
  ACTOR_FINAL_LEVEL_DEFAULT =
这句是全体角色的最高等级……

评分

参与人数 1星屑 +2 收起 理由
御之嵐 + 2 噢@@&quot; 謝謝

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 12:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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