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

Project1

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

[已经过期] 關於KGC的裝備品改造腳本的問題

[复制链接]

Lv2.观梦者

梦石
0
星屑
358
在线时间
296 小时
注册时间
2013-6-1
帖子
121
跳转到指定楼层
1
发表于 2013-9-6 19:58:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 e900003 于 2013-9-6 20:22 编辑

如題
這個腳本要怎麼設定
因為全都是日文  看過說明我根本看不懂設定內容...

另外我給個原腳本網址  
點我

RUBY 代码复制
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 装備品改造 - KGC_AlterEquipment ◆
  3. #_/    ◇ Last update : 2008/01/12 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  装備品を改造し、特殊効果を付加する機能を追加します。
  6. #_/============================================================================
  7. #_/ ≪戦闘難易度[BattleDifficulty]≫より上
  8. #_/ ≪装備拡張[EquipExtension]≫より下
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  10.  
  11. $data_states = load_data("Data/States.rxdata") if $data_states == nil
  12.  
  13. #==============================================================================
  14. # ★ カスタマイズ項目 ★
  15. #==============================================================================
  16.  
  17. module KGC
  18.   # ◆改造武器最大数
  19.   #  多すぎると動作やセーブファイルが重くなります。(300 以下を推奨)
  20.   AEQ_WEAPON_MAX = 100
  21.   # ◆改造防具最大数
  22.   AEQ_ARMOR_MAX = 100
  23.   # ◆改造回数を付加
  24.   #  true を指定すると、名称の末尾に +1 等が付く。
  25.   AEQ_SHOW_ALTER_COUNT = true
  26.   # ◆改造回数の書式
  27.   #  【{n}…改造回数】
  28.   AEQ_ALTER_COUNT_FORMAT = "+{n}"
  29.  
  30.   # ◆装備名変更に使用するアクターのID(名前入力バッファ)
  31.   AEQ_RENAME_ACTOR_ID = 13
  32.   # ◆装備名の最大文字数(MAX:16)
  33.   AEQ_RENAME_MAX_LENGTH = 16
  34.   # ◆装備名変更画面に移行するボタン
  35.   #  (A,X,Y,Z を推奨。nil にすると装備名変更機能無し)
  36.   AEQ_RENAME_BUTTON = Input::A
  37.  
  38.   # ◆改造可能回数
  39.   #  武器名の [ALT{n}] を省略した場合に使用。
  40.   #  負数を指定すると何度でも改造可能。
  41.   AEQ_ALTERABLE_COUNT = -1
  42.   # ◆除外装備タイプ
  43.   #  改造不可能にする装備タイプ配列(≪装備拡張≫に対応)
  44.   AEQ_EXCLUDE_EQUIP_TYPE = [4]
  45.   # ◆除外武器
  46.   #  改造不可能にする武器ID配列
  47.   AEQ_EXCLUDE_WEAPONS = []
  48.   # ◆除外防具
  49.   #  改造不可能にする防具ID配列
  50.   AEQ_EXCLUDE_ARMORS = []
  51.  
  52.   # ◆武器ファクター一覧
  53.   #  ≪"名称", "ヘルプ", [[タイプ, ID], ...], 費用, [使用アイテムID, 個数], ...≫
  54.   #  【タイプ】0..攻撃属性  1..ステート[+]  2..ステート[-]  3..能力値強化
  55.   #  【  ID  】改造時に使用する属性/ステートのID
  56.   #  【 費用 】改造費用。武器の価格に対する割合(%)
  57.   #  配列なので、忘れずに末尾に , を付けてください。
  58.   #  (最後の項目だけは付けても付けなくても良い)
  59.   AEQ_WEAPON_FACTORS = [
  60.     # 属性
  61.     ["[炎]攻撃", "武器に炎属性を付加します。", [[0, 1]], 10, [13, 1]],
  62.     ["[氷]攻撃", "武器に氷属性を付加します。", [[0, 2]], 10, [14, 1]],
  63.     ["[雷]攻撃", "武器に雷属性を付加します。", [[0, 3]], 10, [15, 1]],
  64.     ["[水]攻撃", "武器に水属性を付加します。", [[0, 4]], 10, [15, 1]],
  65.     ["[土]攻撃", "武器に土属性を付加します。", [[0, 5]], 10, [13, 1]],
  66.     ["[風]攻撃", "武器に風属性を付加します。", [[0, 6]], 10, [16, 1]],
  67.     ["[光]攻撃", "武器に光属性を付加します。", [[0, 7]], 10, [14, 1]],
  68.     ["[闇]攻撃", "武器に闇属性を付加します。", [[0, 8]], 10, [16, 1]],
  69.     # ステート
  70.     ["[即死]攻撃", "武器に即死効果を付加します。", [[1, 1]], 20, [10, 1], [13, 1]],
  71.     # 能力値強化
  72.     ["[攻撃力]上昇", "武器の攻撃力を5%上げます。", [[3, 27]], 10, [13, 1]],
  73.   ]  # ←この ] は消さないこと
  74.  
  75.   # ◆防具ファクター一覧
  76.   #  ≪"名称", "ヘルプ", [[タイプ, ID], ...], 費用, [使用アイテムID, 個数], ...≫
  77.   #  【タイプ】0..防御属性  1..防御ステート  2..能力値強化
  78.   #  【  ID  】改造時に使用する属性/ステートのID
  79.   #  【 費用 】改造費用。防具の価格に対する割合(%)
  80.   AEQ_ARMOR_FACTORS = [
  81.     # 属性
  82.     ["[炎]防御", "防具に炎耐性を付加します。", [[0, 1]], 10, [13, 1]],
  83.     ["[氷]防御", "防具に氷耐性を付加します。", [[0, 2]], 10, [14, 1]],
  84.     ["[雷]防御", "防具に雷耐性を付加します。", [[0, 3]], 10, [15, 1]],
  85.     ["[水]防御", "防具に水耐性を付加します。", [[0, 4]], 10, [15, 1]],
  86.     ["[土]防御", "防具に土耐性を付加します。", [[0, 5]], 10, [13, 1]],
  87.     ["[風]防御", "防具に風耐性を付加します。", [[0, 6]], 10, [16, 1]],
  88.     ["[光]防御", "防具に光耐性を付加します。", [[0, 7]], 10, [14, 1]],
  89.     ["[闇]防御", "防具に闇耐性を付加します。", [[0, 8]], 10, [16, 1]],
  90.     # ステート
  91.     ["[即死]防御", "防具に即死耐性を付加します。", [[1, 1]], 20, [10, 1], [13, 1]],
  92.     # 能力値強化
  93.     ["[物理攻撃力]+20",  "防具の物理攻撃力を 20 上げます。", [[2, 30]], 10, [13, 1]],
  94.     ["[物理防御力]上昇", "防具の物理防御力を5%上げます。", [[2, 28]], 10, [14, 1]],
  95.   ]  # ←この ] は消さないこと
  96.  
  97.   # ◆価格 0 の武器価格計算式
  98.   #  【 atk…攻撃力  pdef…物理防御  mdef…魔法防御  str_p…腕力+
  99.   #     dex_p…器用さ+  agi_p…素早さ+  int_p…魔力+ 】
  100.   #  改造費用算出に使用。(売却することはできない)
  101.   AEQ_WEAPON_PRICE_FORMULA =
  102.     "(atk + pdef + mdef + (str_p + dex_p + agi_p + int_p).abs) * 30"
  103.   # ◆価格 0 の防具価格計算式
  104.   #  【 pdef…物理防御  mdef…魔法防御  eva…回避修正  str_p…腕力+
  105.   #     dex_p…器用さ+  agi_p…素早さ+  int_p…魔力+ 】
  106.   AEQ_ARMOR_PRICE_FORMULA =
  107.     "(pdef + mdef + (eva + str_p + dex_p + agi_p + int_p).abs) * 30"
  108.  
  109.   # ◆改造画面背景透過
  110.   AEQ_BACK_TRANSPARENT = true
  111.  
  112.   # ◆「武器改造」名称
  113.   AEQ_COMMAND_WEAPON_ALTER   = "武器改造"
  114.   # ◆「改造装備破棄」名称
  115.   AEQ_COMMAND_WEAPON_DISPOSE = "改造装備破棄"
  116.   # ◆「防具改造」名称
  117.   AEQ_COMMAND_ARMOR_ALTER    = "防具改造"
  118.   # ◆「改造防具破棄」名称
  119.   AEQ_COMMAND_ARMOR_DISPOSE  = "改造防具破棄"
  120.  
  121.   # ◆「武器改造」ヘルプ
  122.   AEQ_HELP_WEAPON_ALTER   = "所持している武器を改造します。"
  123.   # ◆「改造装備破棄」ヘルプ
  124.   AEQ_HELP_WEAPON_DISPOSE = "改造した武器を破棄します。"
  125.   # ◆「防具改造」ヘルプ
  126.   AEQ_HELP_ARMOR_ALTER    = "所持している防具を改造します。"
  127.   # ◆「改造防具破棄」ヘルプ
  128.   AEQ_HELP_ARMOR_DISPOSE  = "改造した防具を破棄します。"
  129.  
  130.   # ◆改造武器リスト空欄の表示文字列
  131.   AEQ_TEXT_NO_WEAPON = "- No weapon -"
  132.   # ◆改造防具リスト空欄の表示文字列
  133.   AEQ_TEXT_NO_ARMOR  = "- No armor -"
  134.  
  135.   # ◆付加属性を表示する範囲
  136.   #  ([Integer][Range]クラスの配列)
  137.   AEQ_ELEMENT_RANGE = [1..8]
  138.   # ◆付加/解除ステートを表示する範囲
  139.   #  (指定方法は AEQ_ELEMENT_RANGE と同様)
  140.   AEQ_STATE_RANGE = [1...$data_states.size]
  141.  
  142.   # ◆武器改造確認コマンド
  143.   AEQ_ALTER_COMMAND   = ["改造する", "やめる"]
  144.   # ◆武器破棄確認コマンド
  145.   AEQ_DISPOSE_COMMAND = ["破棄する", "やめる"]
  146.   # ◆ファクター付加確認コマンド
  147.   AEQ_FACTOR_COMMAND  = ["付加する", "やめる"]
  148.   #  ※↑3項目は、コマンド数を変更するとバグります。
  149. end
  150.  
  151. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  152.  
  153. $imported = {} if $imported == nil
  154. $imported["AlterEquipment"] = true
  155.  
  156. #--------------------------------------------------------------------------
  157. # ○ 装備品改造画面呼び出し
  158. #--------------------------------------------------------------------------
  159. def call_equip_alter
  160.   # プレイヤーの姿勢を矯正
  161.   $game_player.straighten
  162.   # 装備品改造画面に切り替え
  163.   $scene = Scene_AlterEquipment.new
  164. end
  165.  
  166. module AlteredEquipment
  167.   #--------------------------------------------------------------------------
  168.   # ○ 改造武器破棄
  169.   #     index : 改造武器番号 (1~AEQ_WEAPON_MAX)
  170.   #--------------------------------------------------------------------------
  171.   def self.dispose_weapon(index)
  172.     # 破棄できない場合は戻る
  173.     if index < 1 || index > KGC::AEQ_WEAPON_MAX ||
  174.         $game_party.alter_weapons[index - 1] == nil
  175.       return
  176.     end
  177.     # 指定武器を破棄
  178.     id = $game_party.alter_weapons[index - 1].id
  179.     $game_party.alter_weapons[index - 1] = nil
  180.     $data_weapons[id] = RPG::Weapon2.new
  181.     $game_party.lose_weapon(id, 99)
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ○ 改造防具破棄
  185.   #     index : 改造防具番号 (1~AEQ_ARMOR_MAX)
  186.   #--------------------------------------------------------------------------
  187.   def self.dispose_armor(index)
  188.     # 破棄できない場合は戻る
  189.     if index < 1 || index > KGC::AEQ_ARMOR_MAX ||
  190.         $game_party.alter_armors[index - 1] == nil
  191.       return
  192.     end
  193.     # 指定防具を破棄
  194.     id = $game_party.alter_armors[index - 1].id
  195.     $game_party.alter_armors[index - 1] = nil
  196.     $data_armors[id] = RPG::Armor2.new
  197.     $game_party.lose_armor(id, 99)
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ○ 指定IDの武器と、それを改造した武器をすべて破棄
  201.   #     id : 武器ID
  202.   #--------------------------------------------------------------------------
  203.   def self.dispose_all_weapon(id)
  204.     weapons = $game_party.alter_weapons.find_all { |w|
  205.       w != nil && w.original_id == id
  206.     }
  207.     weapons.each { |w|
  208.       index = $game_party.alter_weapons.index(w) + 1
  209.       dispose_weapon(index)
  210.     }
  211.     $game_party.lose_weapon(id, 99)
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ○ 指定IDの防具と、それを改造した防具をすべて破棄
  215.   #     id : 防具ID
  216.   #--------------------------------------------------------------------------
  217.   def self.dispose_all_armor(id)
  218.     armors = $game_party.alter_armors.find_all { |a|
  219.       a != nil && a.original_id == id
  220.     }
  221.     armors.each { |a|
  222.       index = $game_party.alter_armors.index(a) + 1
  223.       dispose_armor(index)
  224.     }
  225.     $game_party.lose_armor(id, 99)
  226.   end
  227. end
  228.  
  229. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  230.  
  231. #==============================================================================
  232. # □ 武器・防具 共用モジュール
  233. #==============================================================================
  234.  
  235. module KGC_AlterEquipment_WA
  236.   #--------------------------------------------------------------------------
  237.   # ○ オリジナル名取得
  238.   #--------------------------------------------------------------------------
  239.   def original_name
  240.     return @name
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ○ 改造可能回数取得
  244.   #--------------------------------------------------------------------------
  245.   def alterable_count
  246.     return original_name =~ /\[ALT[ ]*(\d+)\]/i ? $1.to_i : KGC::AEQ_ALTERABLE_COUNT
  247.   end
  248. end
  249.  
  250. module KGC_AlterEquipment_WA2
  251.   attr_writer :change_name
  252.   #--------------------------------------------------------------------------
  253.   # ○ 改造回数を除去した名称取得
  254.   #--------------------------------------------------------------------------
  255.   def plain_name
  256.     if KGC::AEQ_SHOW_ALTER_COUNT
  257.       rg = (KGC::AEQ_ALTER_COUNT_FORMAT.gsub(/(.*){n}/i) {
  258.         "[#{$1}]{#{$1.scan(/./).size}}\\d+"
  259.       }).gsub(/\-/) {"\-"}
  260.       return name.gsub(%r(#{rg}$)i) {""}
  261.     else
  262.       return name
  263.     end
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ○ 残り改造可能回数取得
  267.   #--------------------------------------------------------------------------
  268.   def alterable_count
  269.     return (@name =~ /\[ALT[ ]*(\d+)\]/i ? $1.to_i : KGC::AEQ_ALTERABLE_COUNT) - @alter_count
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ○ オリジナルID取得
  273.   #--------------------------------------------------------------------------
  274.   def original_id
  275.     return @original_id
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ○ 改造回数取得
  279.   #--------------------------------------------------------------------------
  280.   def alter_count
  281.     @alter_count = 0 if @alter_count == nil
  282.     return @alter_count
  283.   end
  284.   #--------------------------------------------------------------------------
  285.   # ○ 改造回数加算
  286.   #--------------------------------------------------------------------------
  287.   def add_alter_count
  288.     @alter_count = 0 if @alter_count == nil
  289.     @alter_count += 1
  290.     self.show_alter_count
  291.   end
  292. end
  293.  
  294. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  295.  
  296. #==============================================================================
  297. # ■ RPG::Weapon
  298. #==============================================================================
  299.  
  300. class RPG::Weapon
  301.   include KGC_AlterEquipment_WA
  302.   #--------------------------------------------------------------------------
  303.   # ● 名称取得
  304.   #--------------------------------------------------------------------------
  305.   def name
  306.     return @name.gsub(/\[.*\]/) {""}
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # ○ 回避修正
  310.   #--------------------------------------------------------------------------
  311.   def eva
  312.     return 0
  313.   end
  314. end
  315.  
  316. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  317.  
  318. #==============================================================================
  319. # ■ RPG::Armor
  320. #==============================================================================
  321.  
  322. class RPG::Armor
  323.   include KGC_AlterEquipment_WA
  324.   #--------------------------------------------------------------------------
  325.   # ● 名称取得
  326.   #--------------------------------------------------------------------------
  327.   def name
  328.     return @name.gsub(/\[.*\]/) {""}
  329.   end
  330.   #--------------------------------------------------------------------------
  331.   # ○ 攻撃力
  332.   #--------------------------------------------------------------------------
  333.   def atk
  334.     return 0
  335.   end
  336. end
  337.  
  338. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  339.  
  340. #==============================================================================
  341. # □ RPG::Weapon2
  342. #==============================================================================
  343.  
  344. class RPG::Weapon2 < RPG::Weapon
  345.   include KGC_AlterEquipment_WA2
  346.   #--------------------------------------------------------------------------
  347.   # ● オブジェクト初期化
  348.   #--------------------------------------------------------------------------
  349.   def initialize
  350.     super
  351.     [url=home.php?mod=space&uid=284635]@eva[/url] = 0
  352.  
  353.     @original_id = 0
  354.     @original_price = 0
  355.     @alter_count = 0
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● 名称取得
  359.   #--------------------------------------------------------------------------
  360.   def name
  361.     return @name.gsub(/\[.*\]/) {""}
  362.   end
  363.   #--------------------------------------------------------------------------
  364.   # ○ 回避修正
  365.   #--------------------------------------------------------------------------
  366.   def eva
  367.     [url=home.php?mod=space&uid=284635]@eva[/url] = 0 if @eva == nil
  368.     return @eva
  369.   end
  370.   #--------------------------------------------------------------------------
  371.   # ○ 改造費用算出
  372.   #--------------------------------------------------------------------------
  373.   def alter_cost(factor)
  374.     if @original_price == 0
  375.       formula = KGC::AEQ_WEAPON_PRICE_FORMULA.dup
  376.       formula.gsub!(/atk/i)   {"@atk"}
  377.       formula.gsub!(/pdef/i)  {"@pdef"}
  378.       formula.gsub!(/mdef/i)  {"@mdef"}
  379.       formula.gsub!(/eva/i)   {""}
  380.       formula.gsub!(/str_p/i) {"@str_plus"}
  381.       formula.gsub!(/dex_p/i) {"@dex_plus"}
  382.       formula.gsub!(/agi_p/i) {"@agi_plus"}
  383.       formula.gsub!(/int_p/i) {"@int_plus"}
  384.       cost = eval(formula)
  385.     else
  386.       cost = @original_price
  387.     end
  388.     cost = cost * factor[3] / 100
  389.     return Integer(cost)
  390.   end
  391.   #--------------------------------------------------------------------------
  392.   # ○ ファクター付加可否
  393.   #--------------------------------------------------------------------------
  394.   def can_add_factor?(factor)
  395.     # 価格判定
  396.     if $game_party.gold < self.alter_cost(factor)
  397.       return false
  398.     end
  399.     # アイテム所持判定
  400.     (4...factor.size).each { |i|
  401.       if $game_party.item_number(factor[i][0]) < factor[i][1]
  402.         return false
  403.       end
  404.     }
  405.     (0...factor[2].size).each { |i|
  406.       # 付加済み判定
  407.       case factor[2][i][0]
  408.       when 0  # 属性
  409.         if @element_set.include?(factor[2][i][1])
  410.           return false
  411.         end
  412.       when 1  # ステート付加
  413.         if @plus_state_set.include?(factor[2][i][1])
  414.           return false
  415.         end
  416.       when 2  # ステート解除
  417.         if @minus_state_set.include?(factor[2][i][1])
  418.           return false
  419.         end
  420.       end
  421.     }
  422.     return true
  423.   end
  424.   #--------------------------------------------------------------------------
  425.   # ○ ファクター付加
  426.   #--------------------------------------------------------------------------
  427.   def add_factor(factor)
  428.     (0...factor[2].size).each { |i|
  429.       # ファクターを付加
  430.       case factor[2][i][0]
  431.       when 0  # 属性
  432.         @element_set.push(factor[2][i][1])
  433.         @element_set.sort!
  434.       when 1  # ステート付加
  435.         @plus_state_set.push(factor[2][i][1])
  436.         @plus_state_set.sort!
  437.       when 2  # ステート解除
  438.         @minus_state_set.push(factor[2][i][1])
  439.         @minus_state_set.sort!
  440.       when 3  # 能力値
  441.         return if (state = $data_states[factor[2][i][1]]) == nil
  442.         if state.original_name =~ /\[EQAL[ ]*(?:%|%)\]/i
  443.           [url=home.php?mod=space&uid=101599]@atk[/url] += [url=home.php?mod=space&uid=101599]@atk[/url] * state.atk_rate / 100
  444.           @pdef += @pdef * state.pdef_rate / 100
  445.           @mdef += @mdef * state.mdef_rate / 100
  446.           @eva += @eva * state.eva / 100
  447.           @str_plus += @str_plus * state.str_rate / 100
  448.           @dex_plus += @dex_plus * state.dex_rate / 100
  449.           @agi_plus += @agi_plus * state.agi_rate / 100
  450.           @int_plus += @int_plus * state.int_rate / 100
  451.         else
  452.           @atk += state.atk_rate
  453.           @pdef += state.pdef_rate
  454.           @mdef += state.mdef_rate
  455.           @eva += state.eva
  456.           @str_plus += state.str_rate
  457.           @dex_plus += state.dex_rate
  458.           @agi_plus += state.agi_rate
  459.           @int_plus += state.int_rate
  460.         end
  461.       end
  462.     }
  463.     # 金消費
  464.     $game_party.lose_gold(self.alter_cost(factor))
  465.     # アイテム消費
  466.     (4...factor.size).each { |i|
  467.       $game_party.lose_item(factor[i][0], factor[i][1])
  468.     }
  469.     # 改造回数加算
  470.     self.add_alter_count
  471.   end
  472.   #--------------------------------------------------------------------------
  473.   # ○ 武器情報をコピー
  474.   #--------------------------------------------------------------------------
  475.   def copy_weapon(id)
  476.     weapon = $data_weapons[id]
  477.     @original_id = id
  478.     @change_name = nil
  479.     self.show_alter_count
  480.     @icon_name = weapon.icon_name.dup
  481.     @description = weapon.description.dup
  482.     @animation1_id = weapon.animation1_id
  483.     @animation2_id = weapon.animation2_id
  484.     @price = 0
  485.     @original_price = weapon.price
  486.     @atk = weapon.atk
  487.     @pdef = weapon.pdef
  488.     @mdef = weapon.mdef
  489.     @eva = 0
  490.     @str_plus = weapon.str_plus
  491.     @dex_plus = weapon.dex_plus
  492.     @agi_plus = weapon.agi_plus
  493.     @int_plus = weapon.int_plus
  494.     @element_set = weapon.element_set.dup
  495.     @plus_state_set = weapon.plus_state_set.dup
  496.     @minus_state_set = weapon.minus_state_set.dup
  497.     # 装備可能者を設定
  498.     (1...$data_classes.size).each { |i|
  499.       actor_class = $data_classes[i]
  500.       # 改造対象の武器を装備できるクラスの場合
  501.       if actor_class.weapon_set.include?(id)
  502.         # 装備可能武器に追加
  503.         actor_class.weapon_set.push(@id)
  504.       else
  505.         # 装備できない場合は装備可能武器から削除
  506.         actor_class.weapon_set.delete(@id)
  507.       end
  508.     }
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ○ 改造回数表示
  512.   #--------------------------------------------------------------------------
  513.   def show_alter_count
  514.     @name = (@change_name != nil ? @change_name :
  515.       $data_weapons[@original_id].original_name).dup
  516.     if KGC::AEQ_SHOW_ALTER_COUNT
  517.       @name += KGC::AEQ_ALTER_COUNT_FORMAT.gsub(/{n}/i) {"#{@alter_count}"}
  518.     end
  519.   end
  520. end
  521.  
  522. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  523.  
  524. #==============================================================================
  525. # □ RPG::Armor2
  526. #==============================================================================
  527.  
  528. class RPG::Armor2 < RPG::Armor
  529.   include KGC_AlterEquipment_WA2
  530.   #--------------------------------------------------------------------------
  531.   # ● オブジェクト初期化
  532.   #--------------------------------------------------------------------------
  533.   def initialize
  534.     super
  535.     @atk = 0
  536.  
  537.     @original_id = 0
  538.     @original_price = 0
  539.     @alter_count = 0
  540.   end
  541.   #--------------------------------------------------------------------------
  542.   # ● 名称取得
  543.   #--------------------------------------------------------------------------
  544.   def name
  545.     return @name.gsub(/\[.*\]/) {""}
  546.   end
  547.   #--------------------------------------------------------------------------
  548.   # ○ 攻撃力
  549.   #--------------------------------------------------------------------------
  550.   def atk
  551.     @atk = 0 if @atk == nil
  552.     return @atk
  553.   end
  554.   #--------------------------------------------------------------------------
  555.   # ○ 改造費用算出
  556.   #--------------------------------------------------------------------------
  557.   def alter_cost(factor)
  558.     if @original_price == 0
  559.       formula = KGC::AEQ_ARMOR_PRICE_FORMULA.dup
  560.       formula.gsub!(/atk/i)   {""}
  561.       formula.gsub!(/pdef/i)  {"@pdef"}
  562.       formula.gsub!(/mdef/i)  {"@mdef"}
  563.       formula.gsub!(/eva/i)   {"@eva"}
  564.       formula.gsub!(/str_p/i) {"@str_plus"}
  565.       formula.gsub!(/dex_p/i) {"@dex_plus"}
  566.       formula.gsub!(/agi_p/i) {"@agi_plus"}
  567.       formula.gsub!(/int_p/i) {"@int_plus"}
  568.       cost = eval(formula)
  569.     else
  570.       cost = @original_price
  571.     end
  572.     cost = cost * factor[3] / 100
  573.     return Integer(cost)
  574.   end
  575.   #--------------------------------------------------------------------------
  576.   # ○ ファクター付加可否
  577.   #--------------------------------------------------------------------------
  578.   def can_add_factor?(factor)
  579.     # 価格判定
  580.     if $game_party.gold < self.alter_cost(factor)
  581.       return false
  582.     end
  583.     # アイテム所持判定
  584.     (4...factor.size).each { |i|
  585.       if $game_party.item_number(factor[i][0]) < factor[i][1]
  586.         return false
  587.       end
  588.     }
  589.     (0...factor[2].size).each { |i|
  590.       # 付加済み判定
  591.       case factor[2][i][0]
  592.       when 0  # 防御属性
  593.         if @guard_element_set.include?(factor[2][i][1])
  594.           return false
  595.         end
  596.       when 1  # 防御ステート
  597.         if @guard_state_set.include?(factor[2][i][1])
  598.           return false
  599.         end
  600.       end
  601.     }
  602.     return true
  603.   end
  604.   #--------------------------------------------------------------------------
  605.   # ○ ファクター付加
  606.   #--------------------------------------------------------------------------
  607.   def add_factor(factor)
  608.     # 金消費
  609.     $game_party.lose_gold(self.alter_cost(factor))
  610.     # アイテム消費
  611.     (4...factor.size).each { |i|
  612.       $game_party.lose_item(factor[i][0], factor[i][1])
  613.     }
  614.     (0...factor[2].size).each { |i|
  615.       # ファクターを付加
  616.       case factor[2][i][0]
  617.       when 0  # 防御属性
  618.         @guard_element_set.push(factor[2][i][1])
  619.         @guard_element_set.sort!
  620.       when 1  # 防御ステート
  621.         @guard_state_set.push(factor[2][i][1])
  622.         @guard_state_set.sort!
  623.       when 2  # 能力値
  624.         return if (state = $data_states[factor[2][i][1]]) == nil
  625.         if state.original_name =~ /\[EQAL[ ]*(?:%|%)\]/i
  626.           @atk += @atk * state.atk_rate / 100
  627.           @pdef += @pdef * state.pdef_rate / 100
  628.           @mdef += @mdef * state.mdef_rate / 100
  629.           @eva += @eva * state.eva / 100
  630.           @str_plus += @str_plus * state.str_rate / 100
  631.           @dex_plus += @dex_plus * state.dex_rate / 100
  632.           @agi_plus += @agi_plus * state.agi_rate / 100
  633.           @int_plus += @int_plus * state.int_rate / 100
  634.         else
  635.           @atk += state.atk_rate
  636.           @pdef += state.pdef_rate
  637.           @mdef += state.mdef_rate
  638.           @eva += state.eva
  639.           @str_plus += state.str_rate
  640.           @dex_plus += state.dex_rate
  641.           @agi_plus += state.agi_rate
  642.           @int_plus += state.int_rate
  643.         end
  644.       end
  645.     }
  646.     # 改造回数加算
  647.     self.add_alter_count
  648.   end
  649.   #--------------------------------------------------------------------------
  650.   # ○ 防具情報をコピー
  651.   #--------------------------------------------------------------------------
  652.   def copy_armor(id)
  653.     armor = $data_armors[id]
  654.     @original_id = id
  655.     @change_name = nil
  656.     self.show_alter_count
  657.     @icon_name = armor.icon_name.dup
  658.     @description = armor.description.dup
  659.     @kind = armor.kind
  660.     @auto_state_id = armor.auto_state_id
  661.     @price = 0
  662.     @original_price = armor.price
  663.     @atk = 0
  664.     @pdef = armor.pdef
  665.     @mdef = armor.mdef
  666.     @eva = armor.eva
  667.     @str_plus = armor.str_plus
  668.     @dex_plus = armor.dex_plus
  669.     @agi_plus = armor.agi_plus
  670.     @int_plus = armor.int_plus
  671.     @guard_element_set = armor.guard_element_set.dup
  672.     @guard_state_set = armor.guard_state_set.dup
  673.     # 装備可能者を設定
  674.     (1...$data_classes.size).each { |i|
  675.       actor_class = $data_classes[i]
  676.       # 改造対象の武器を装備できるクラスの場合
  677.       if actor_class.armor_set.include?(id)
  678.         # 装備可能武器に追加
  679.         actor_class.armor_set.push(@id)
  680.       else
  681.         # 装備できない場合は装備可能武器から削除
  682.         actor_class.armor_set.delete(@id)
  683.       end
  684.     }
  685.   end
  686.   #--------------------------------------------------------------------------
  687.   # ○ 改造回数表示
  688.   #--------------------------------------------------------------------------
  689.   def show_alter_count
  690.     @name = (@change_name != nil ? @change_name :
  691.       $data_armors[@original_id].original_name).dup
  692.     if KGC::AEQ_SHOW_ALTER_COUNT
  693.       @name += KGC::AEQ_ALTER_COUNT_FORMAT.gsub(/{n}/i) {"#{@alter_count}"}
  694.     end
  695.   end
  696. end
  697.  
  698. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  699.  
  700. #==============================================================================
  701. # ■ RPG::State
  702. #==============================================================================
  703.  
  704. class RPG::State
  705.   #--------------------------------------------------------------------------
  706.   # ● 名前の取得
  707.   #--------------------------------------------------------------------------
  708.   def name
  709.     return @name.gsub(/\[.*\]/) {""}
  710.   end
  711.   #--------------------------------------------------------------------------
  712.   # ○ オリジナル名取得
  713.   #--------------------------------------------------------------------------
  714.   def original_name
  715.     return @name
  716.   end
  717. end
  718.  
  719. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  720.  
  721. #==============================================================================
  722. # ■ Game_Temp
  723. #==============================================================================
  724.  
  725. class Game_Temp
  726.   #--------------------------------------------------------------------------
  727.   # ● 公開インスタンス変数
  728.   #--------------------------------------------------------------------------
  729.   attr_accessor :equipment_alter_rename
  730.   attr_accessor :equipment_alter_rename_type
  731.   attr_accessor :equipment_alter_rename_id
  732.   #--------------------------------------------------------------------------
  733.   # ● オブジェクト初期化
  734.   #--------------------------------------------------------------------------
  735.   alias initialize_KGC_AlterEquipment initialize
  736.   def initialize
  737.     initialize_KGC_AlterEquipment
  738.  
  739.     @equipment_alter_rename = false
  740.     @equipment_alter_rename_type = 0
  741.     @equipment_alter_rename_id = 0
  742.   end
  743. end
  744.  
  745. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  746.  
  747. #==============================================================================
  748. # ■ Game_Battler
  749. #==============================================================================
  750.  
  751. class Game_Battler
  752.   #--------------------------------------------------------------------------
  753.   # ● 回避修正の取得
  754.   #--------------------------------------------------------------------------
  755.   alias eva_KGC_AlterEquipment eva
  756.   def eva
  757.     n = eva_KGC_AlterEquipment
  758.     if self.is_a?(Game_Actor)
  759.       # 改造した武器の回避修正を加算
  760.       equip_weapon_list.each { |weapon| n += weapon.eva }
  761.     end
  762.     return n
  763.   end
  764. end
  765.  
  766. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  767.  
  768. #==============================================================================
  769. # ■ Game_Actor
  770. #==============================================================================
  771.  
  772. class Game_Actor < Game_Battler
  773.   #--------------------------------------------------------------------------
  774.   # ● 基本攻撃力の取得
  775.   #--------------------------------------------------------------------------
  776.   alias base_atk_KGC_AlterEquipment base_atk
  777.   def base_atk
  778.     n = base_atk_KGC_AlterEquipment
  779.  
  780.     # 改造した防具の攻撃力を加算
  781.     equip_armor_list.each { |armor| n += armor.atk }
  782.     return n
  783.   end
  784.  
  785.   unless $imported["EquipExtension"]
  786.   #--------------------------------------------------------------------------
  787.   # ○ 装備武器リストの取得
  788.   #--------------------------------------------------------------------------
  789.   def equip_weapon_list
  790.     result = [$data_weapons[@weapon_id]]
  791.     return result.compact
  792.   end
  793.   #--------------------------------------------------------------------------
  794.   # ○ 装備防具リストの取得
  795.   #--------------------------------------------------------------------------
  796.   def equip_armor_list
  797.     result = []
  798.     (1..4).each { |i| result << $data_armors[eval("@armor#{i}_id")] }
  799.     return result.compact
  800.   end
  801.   end
  802. end
  803.  
  804. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  805.  
  806. #==============================================================================
  807. # ■ Game_Party
  808. #==============================================================================
  809.  
  810. class Game_Party
  811.   #--------------------------------------------------------------------------
  812.   # ● オブジェクト初期化
  813.   #--------------------------------------------------------------------------
  814.   alias initialize_KGC_AlterEquipment initialize
  815.   def initialize
  816.     initialize_KGC_AlterEquipment
  817.  
  818.     @alter_weapons = []
  819.     @alter_armors = []
  820.   end
  821.   #--------------------------------------------------------------------------
  822.   # ○ 改造装備取得
  823.   #--------------------------------------------------------------------------
  824.   def alter_weapons
  825.     @alter_weapons = [] if @alter_weapons == nil
  826.     return @alter_weapons
  827.   end
  828.   #--------------------------------------------------------------------------
  829.   # ○ 改造装備設定
  830.   #--------------------------------------------------------------------------
  831.   def alter_weapons=(ary)
  832.     @alter_weapons = [] if @alter_weapons == nil
  833.     @alter_weapons = ary
  834.   end
  835.   #--------------------------------------------------------------------------
  836.   # ○ 改造防具取得
  837.   #--------------------------------------------------------------------------
  838.   def alter_armors
  839.     @alter_armors = [] if @alter_armors == nil
  840.     return @alter_armors
  841.   end
  842.   #--------------------------------------------------------------------------
  843.   # ○ 改造防具設定
  844.   #--------------------------------------------------------------------------
  845.   def alter_armors=(ary)
  846.     @alter_armors = [] if @alter_armors == nil
  847.     @alter_armors = ary
  848.   end
  849. end
  850.  
  851. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  852.  
  853. #==============================================================================
  854. # □ Window_AlterEquipmentCommand
  855. #------------------------------------------------------------------------------
  856. #  装備改造画面で、操作を選択するウィンドウです。
  857. #==============================================================================
  858.  
  859. class Window_AlterEquipmentCommand < Window_Selectable
  860.   #--------------------------------------------------------------------------
  861.   # ● オブジェクト初期化
  862.   #--------------------------------------------------------------------------
  863.   def initialize
  864.     super(0, 64, 640, 64)
  865.     self.contents = Bitmap.new(width - 32, height - 32)
  866.     @commands = [KGC::AEQ_COMMAND_WEAPON_ALTER, KGC::AEQ_COMMAND_WEAPON_DISPOSE,
  867.       KGC::AEQ_COMMAND_ARMOR_ALTER, KGC::AEQ_COMMAND_ARMOR_DISPOSE]
  868.     @item_max = @commands.size
  869.     @column_max = @commands.size
  870.     @item_width = (width - 32) / @commands.size
  871.     self.z = 1000
  872.     self.index = 0
  873.     refresh
  874.   end
  875.   #--------------------------------------------------------------------------
  876.   # ● リフレッシュ
  877.   #--------------------------------------------------------------------------
  878.   def refresh
  879.     for i in [email]0...@commands.size[/email]
  880.       rect = Rect.new(@item_width * i, 0, @item_width, 32)
  881.       self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  882.       self.contents.font.color = system_color
  883.       self.contents.draw_text(rect, @commands[i], 1)
  884.     end
  885.   end
  886.   #--------------------------------------------------------------------------
  887.   # ● カーソルの矩形更新
  888.   #--------------------------------------------------------------------------
  889.   def update_cursor_rect
  890.     if index != -1
  891.       self.cursor_rect.set(@item_width * index, 0, @item_width, 32)
  892.     end
  893.   end
  894.   #--------------------------------------------------------------------------
  895.   # ● ヘルプテキスト更新
  896.   #--------------------------------------------------------------------------
  897.   def update_help
  898.     case self.index
  899.     when 0
  900.       @help_window.set_text(KGC::AEQ_HELP_WEAPON_ALTER)
  901.     when 1
  902.       @help_window.set_text(KGC::AEQ_HELP_WEAPON_DISPOSE)
  903.     when 2
  904.       @help_window.set_text(KGC::AEQ_HELP_ARMOR_ALTER)
  905.     when 3
  906.       @help_window.set_text(KGC::AEQ_HELP_ARMOR_DISPOSE)
  907.     end
  908.   end
  909. end
  910.  
  911. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  912.  
  913. #==============================================================================
  914. # □ Window_AlterEquipmentLeft
  915. #------------------------------------------------------------------------------
  916. #  装備改造画面で、改造する装備スロットの一覧を表示するウィンドウです。
  917. #==============================================================================
  918.  
  919. class Window_AlterEquipmentLeft < Window_Selectable
  920.   #--------------------------------------------------------------------------
  921.   # ● オブジェクト初期化
  922.   #--------------------------------------------------------------------------
  923.   def initialize
  924.     super(0, 128, 320, 352)
  925.     self.active = false
  926.     self.index = -1
  927.     self.back_opacity = 160 if KGC::AEQ_BACK_TRANSPARENT
  928.     @column_max = 1
  929.     refresh
  930.   end
  931.   #--------------------------------------------------------------------------
  932.   # ○ 装備の取得
  933.   #--------------------------------------------------------------------------
  934.   def item
  935.     return @data[self.index]
  936.   end
  937.   #--------------------------------------------------------------------------
  938.   # ● リフレッシュ
  939.   #--------------------------------------------------------------------------
  940.   def refresh(type = 0)
  941.     if self.contents != nil
  942.       self.contents.dispose
  943.       self.contents = nil
  944.     end
  945.     @data = []
  946.     # スロット一覧を作成
  947.     case type
  948.     when 0
  949.       for i in 0...KGC::AEQ_WEAPON_MAX
  950.         weapon = $game_party.alter_weapons[i]
  951.         @data.push(weapon)
  952.       end
  953.     when 1
  954.       for i in 0...KGC::AEQ_ARMOR_MAX
  955.         armor = $game_party.alter_armors[i]
  956.         @data.push(armor)
  957.       end
  958.     end
  959.     # ビットマップを作成し、全項目を描画
  960.     @item_max = @data.size
  961.     self.contents = Bitmap.new(width - 32, row_max * 32)
  962.     for i in 0...@item_max
  963.       draw_item(i, type)
  964.     end
  965.   end
  966.   #--------------------------------------------------------------------------
  967.   # ● 項目の描画
  968.   #--------------------------------------------------------------------------
  969.   def draw_item(index, type)
  970.     item = @data[index]
  971.     x = 36
  972.     y = index * 32
  973.     self.contents.font.color = text_color(6)
  974.     self.contents.draw_text(x - 32, y, 32, 32, (index + 1).to_s, 1)
  975.     if item != nil
  976.       case type
  977.       when 0
  978.         number = $game_party.weapon_number(item.id)
  979.       when 1
  980.         number = $game_party.armor_number(item.id)
  981.       end
  982.       ac = item.alterable_count
  983.       if number > 0 && ac != 0
  984.         self.contents.font.color = normal_color
  985.         opacity = 255
  986.       else
  987.         self.contents.font.color = disabled_color
  988.         opacity = ac != 0 ? 255 : 160
  989.       end
  990.       icon = RPG::Cache.icon(item.icon_name)
  991.       self.contents.blt(x, y + 4, icon, icon.rect, opacity)
  992.       self.contents.draw_text(x + 28, y, 224, 32, item.name)
  993.     else
  994.       self.contents.font.color = disabled_color
  995.       case type
  996.       when 0
  997.         self.contents.draw_text(x, y, 256, 32, KGC::AEQ_TEXT_NO_WEAPON, 1)
  998.       when 1
  999.         self.contents.draw_text(x, y, 256, 32, KGC::AEQ_TEXT_NO_ARMOR, 1)
  1000.       end
  1001.     end
  1002.   end
  1003.   #--------------------------------------------------------------------------
  1004.   # ○ 項目の再描画
  1005.   #--------------------------------------------------------------------------
  1006.   def redraw_item(index, type)
  1007.     case type
  1008.     when 0
  1009.       @data[index] = $game_party.alter_weapons[index]
  1010.     when 1
  1011.       @data[index] = $game_party.alter_armors[index]
  1012.     end
  1013.     self.contents.fill_rect(0, index * 32, 288, 32, Color.new(0, 0, 0, 0))
  1014.     self.draw_item(index, type)
  1015.   end
  1016.   #--------------------------------------------------------------------------
  1017.   # ● ヘルプテキスト更新
  1018.   #--------------------------------------------------------------------------
  1019.   def update_help
  1020.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  1021.   end
  1022. end
  1023.  
  1024. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1025.  
  1026. #==============================================================================
  1027. # □ Window_AlterEquipmentRight
  1028. #------------------------------------------------------------------------------
  1029. #  装備改造画面で、所持している装備一覧を表示するウィンドウです。
  1030. #==============================================================================
  1031.  
  1032. class Window_AlterEquipmentRight < Window_Selectable
  1033.   #--------------------------------------------------------------------------
  1034.   # ● オブジェクト初期化
  1035.   #--------------------------------------------------------------------------
  1036.   def initialize
  1037.     super(320, 128, 320, 352)
  1038.     self.active = false
  1039.     self.visible = false
  1040.     self.index = 0
  1041.     self.back_opacity = 160 if KGC::AEQ_BACK_TRANSPARENT
  1042.     @column_max = 1
  1043.     refresh
  1044.   end
  1045.   #--------------------------------------------------------------------------
  1046.   # ○ 装備の取得
  1047.   #--------------------------------------------------------------------------
  1048.   def item
  1049.     return @data[self.index]
  1050.   end
  1051.   #--------------------------------------------------------------------------
  1052.   # ● リフレッシュ
  1053.   #--------------------------------------------------------------------------
  1054.   def refresh(type = 0)
  1055.     if self.contents != nil
  1056.       self.contents.dispose
  1057.       self.contents = nil
  1058.     end
  1059.     @data = []
  1060.     case type
  1061.     when 0
  1062.       unless KGC::AEQ_EXCLUDE_EQUIP_TYPE.include?(0)
  1063.         # 所持している武器を追加
  1064.         (1...$alter_weapon_start).each { |i|
  1065.           if $game_party.weapon_number(i) > 0 &&
  1066.               $data_weapons[i].alterable_count != 0 &&
  1067.               !KGC::AEQ_EXCLUDE_WEAPONS.include?(i)
  1068.             @data << $data_weapons[i]
  1069.           end
  1070.         }
  1071.       end
  1072.     when 1
  1073.       # 所持している防具を追加
  1074.       (1...$alter_armor_start).each { |i|
  1075.         if $game_party.armor_number(i) > 0 &&
  1076.             $data_armors[i].alterable_count != 0 &&
  1077.             !KGC::AEQ_EXCLUDE_ARMORS.include?(i) &&
  1078.             !KGC::AEQ_EXCLUDE_EQUIP_TYPE.include?($data_armors[i].kind + 1)
  1079.           @data << $data_armors[i]
  1080.         end
  1081.       }
  1082.     end
  1083.     # 個数が 0 の場合は nil を追加
  1084.     @data.push(nil) if @data.size == 0
  1085.     # ビットマップを作成し、全項目を描画
  1086.     @item_max = @data.size
  1087.     self.contents = Bitmap.new(width - 32, row_max * 32)
  1088.     for i in 0...@item_max
  1089.       draw_item(i, type)
  1090.     end
  1091.   end
  1092.   #--------------------------------------------------------------------------
  1093.   # ● 項目の描画
  1094.   #--------------------------------------------------------------------------
  1095.   def draw_item(index, type)
  1096.     item = @data[index]
  1097.     return if item == nil
  1098.     x = 4
  1099.     y = index * 32
  1100.     icon = RPG::Cache.icon(item.icon_name)
  1101.     self.contents.blt(x, y + 4, icon, icon.rect)
  1102.     self.contents.font.color = normal_color
  1103.     self.contents.draw_text(x + 28, y, 216, 32, item.name)
  1104.     case type
  1105.     when 0
  1106.       number = $game_party.weapon_number(item.id)
  1107.     when 1
  1108.       number = $game_party.armor_number(item.id)
  1109.     end
  1110.     self.contents.draw_text(x + 244, y, 16, 32, ":", 1)
  1111.     self.contents.draw_text(x + 260, y, 24, 32, number.to_s, 2)
  1112.   end
  1113.   #--------------------------------------------------------------------------
  1114.   # ● ヘルプテキスト更新
  1115.   #--------------------------------------------------------------------------
  1116.   def update_help
  1117.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  1118.   end
  1119. end
  1120.  
  1121. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1122.  
  1123. #==============================================================================
  1124. # □ Window_AlterEquipmentStatus
  1125. #------------------------------------------------------------------------------
  1126. #  装備改造画面で、選択した装備の能力を表示するウィンドウです。
  1127. #==============================================================================
  1128.  
  1129. class Window_AlterEquipmentStatus < Window_Base
  1130.   #--------------------------------------------------------------------------
  1131.   # ● オブジェクト初期化
  1132.   #--------------------------------------------------------------------------
  1133.   def initialize
  1134.     super(320, 128, 320, 352)
  1135.     self.contents = Bitmap.new(width - 32, height - 32)
  1136.     self.back_opacity = 160 if KGC::AEQ_BACK_TRANSPARENT
  1137.     self.z = 500
  1138.     refresh(nil)
  1139.   end
  1140.   #--------------------------------------------------------------------------
  1141.   # ● リフレッシュ
  1142.   #--------------------------------------------------------------------------
  1143.   def refresh(item, factor = nil)
  1144.     self.contents.clear
  1145.     if factor == nil  # アイテムステータス
  1146.       return if item == nil || item.name == ""
  1147.       draw_parameter(item, factor)
  1148.       draw_element(item, factor)
  1149.       draw_state(item, factor)
  1150.     else  # 素材アイテム数
  1151.       return if factor == nil
  1152.       draw_material(item, factor)
  1153.     end
  1154.   end
  1155.   #--------------------------------------------------------------------------
  1156.   # ○ パラメータ描画
  1157.   #--------------------------------------------------------------------------
  1158.   def draw_parameter(item, factor)
  1159.     self.contents.font.size = 20
  1160.     self.contents.font.color = system_color
  1161.     self.contents.draw_text(4,    0, 80, 32, $data_system.words.atk)
  1162.     self.contents.draw_text(148,  0, 80, 32, $data_system.words.pdef)
  1163.     self.contents.draw_text(4,   32, 80, 32, $data_system.words.mdef)
  1164.     self.contents.draw_text(148, 32, 80, 32, "回避修正")
  1165.     self.contents.draw_text(4,   64, 80, 32, $data_system.words.str)
  1166.     self.contents.draw_text(148, 64, 80, 32, $data_system.words.dex)
  1167.     self.contents.draw_text(4,   96, 80, 32, $data_system.words.agi)
  1168.     self.contents.draw_text(148, 96, 80, 32, $data_system.words.int)
  1169.  
  1170.     self.contents.font.color = normal_color
  1171.     self.contents.draw_text(84,   0, 48, 32, item.atk.to_s, 2)
  1172.     self.contents.draw_text(228,  0, 48, 32, item.pdef.to_s, 2)
  1173.     self.contents.draw_text(84,  32, 48, 32, item.mdef.to_s, 2)
  1174.     self.contents.draw_text(228, 32, 48, 32, item.eva.to_s, 2)
  1175.     self.contents.draw_text(84,  64, 48, 32, item.str_plus.to_s, 2)
  1176.     self.contents.draw_text(228, 64, 48, 32, item.dex_plus.to_s, 2)
  1177.     self.contents.draw_text(84,  96, 48, 32, item.agi_plus.to_s, 2)
  1178.     self.contents.draw_text(228, 96, 48, 32, item.int_plus.to_s, 2)
  1179.   end
  1180.   #--------------------------------------------------------------------------
  1181.   # ○ 属性描画
  1182.   #--------------------------------------------------------------------------
  1183.   def draw_element(item, factor)
  1184.     ix = 4
  1185.     iy = 148
  1186.     self.contents.font.size = 18
  1187.     self.contents.font.color = system_color
  1188.     case item
  1189.     when RPG::Weapon
  1190.       self.contents.draw_text(32, 128, 160, 20, "攻撃属性")
  1191.       elements = item.element_set.dup
  1192.     when RPG::Armor
  1193.       self.contents.draw_text(32, 128, 160, 20, "防御属性")
  1194.       elements = item.guard_element_set.dup
  1195.     end
  1196.     self.contents.font.color = normal_color
  1197.     skip = true
  1198.     elements.each { |element|
  1199.       KGC::AEQ_ELEMENT_RANGE.each { |rng|
  1200.         case rng
  1201.         when Integer
  1202.           skip = element != rng
  1203.         when Range
  1204.           skip = !rng.member?(element)
  1205.         end
  1206.       }
  1207.       next if skip
  1208.       text = "[#{$data_system.elements[element]}]"
  1209.       cx = self.contents.text_size(text).width
  1210.       self.contents.draw_text(ix, iy, cx + 8, 20, text)
  1211.       ix += cx
  1212.       if ix >= 264
  1213.         ix = 4
  1214.         iy += 20
  1215.         if iy >= 192
  1216.           break
  1217.         end
  1218.       end
  1219.     }
  1220.   end
  1221.   #--------------------------------------------------------------------------
  1222.   # ○ ステート性描画
  1223.   #--------------------------------------------------------------------------
  1224.   def draw_state(item, factor)
  1225.     # 付加/防御ステート描画
  1226.     ix = 4
  1227.     iy = 212
  1228.     self.contents.font.color = system_color
  1229.     case item
  1230.     when RPG::Weapon
  1231.       self.contents.draw_text(32, 192, 160, 20, "付加ステート")
  1232.       states = item.plus_state_set.dup
  1233.     when RPG::Armor
  1234.       self.contents.draw_text(32, 192, 160, 20, "防御ステート")
  1235.       states = item.guard_state_set.dup
  1236.     end
  1237.     self.contents.font.color = normal_color
  1238.     self.contents.font.size = 18
  1239.     skip = true
  1240.     states.each { |state|
  1241.       KGC::AEQ_STATE_RANGE.each { |rng|
  1242.         case rng
  1243.         when Integer
  1244.           skip = state != rng
  1245.         when Range
  1246.           skip = !rng.member?(state)
  1247.         end
  1248.       }
  1249.       next if skip
  1250.       text = "[#{$data_states[state].name}]"
  1251.       cx = self.contents.text_size(text).width
  1252.       self.contents.draw_text(ix, iy, cx + 8, 20, text)
  1253.       ix += cx
  1254.       if ix >= 264
  1255.         ix = 4
  1256.         iy += 24
  1257.         if iy >= 256
  1258.           break
  1259.         end
  1260.       end
  1261.     }
  1262.     return if item.is_a?(RPG::Armor)
  1263.     # 解除ステート描画
  1264.     ix = 4
  1265.     iy = 276
  1266.     self.contents.font.color = system_color
  1267.     self.contents.draw_text(32, 256, 160, 20, "解除ステート")
  1268.     self.contents.font.color = normal_color
  1269.     self.contents.font.size = 18
  1270.     skip = true
  1271.     item.minus_state_set.each { |state|
  1272.       KGC::AEQ_STATE_RANGE.each { |rng|
  1273.         case rng
  1274.         when Integer
  1275.           skip = state != rng
  1276.         when Range
  1277.           skip = !rng.member?(state)
  1278.         end
  1279.       }
  1280.       next if skip
  1281.       text = "[#{$data_states[state].name}]"
  1282.       cx = self.contents.text_size(text).width
  1283.       self.contents.draw_text(ix, iy, cx + 8, 20, text)
  1284.       ix += cx
  1285.       if ix >= 264
  1286.         ix = 4
  1287.         iy += 24
  1288.         if iy >= 320
  1289.           break
  1290.         end
  1291.       end
  1292.     }
  1293.   end
  1294.   #--------------------------------------------------------------------------
  1295.   # ○ 素材描画
  1296.   #--------------------------------------------------------------------------
  1297.   def draw_material(item, factor)
  1298.     self.contents.font.size = 22
  1299.     self.contents.font.color = system_color
  1300.     self.contents.draw_text(4, 0, 128, 32, "改造費用")
  1301.     self.contents.draw_text(232, 0, 48, 32, $data_system.words.gold)
  1302.     self.contents.font.color = normal_color
  1303.     self.contents.draw_text(104, 0, 128, 32, item.alter_cost(factor).to_s, 2)
  1304.     self.contents.font.color = system_color
  1305.     self.contents.draw_text(4, 32, 128, 32, "所持金")
  1306.     self.contents.draw_text(232, 32, 48, 32, $data_system.words.gold)
  1307.     self.contents.font.color = normal_color
  1308.     self.contents.draw_text(104, 32, 128, 32, $game_party.gold.to_s, 2)
  1309.     self.contents.font.color = system_color
  1310.     self.contents.draw_text(4, 64, 128, 32, "消費アイテム")
  1311.     for i in 4...factor.size
  1312.       self.contents.font.color = system_color
  1313.       self.contents.draw_text(4, 128 + (i - 4) * 64, 80, 32, "必要数")
  1314.       self.contents.draw_text(144, 128 + (i - 4) * 64, 80, 32, "所持数")
  1315.       self.contents.font.color = normal_color
  1316.       text = $data_items[factor[i][0]].name
  1317.       icon = RPG::Cache.icon($data_items[factor[i][0]].icon_name)
  1318.       self.contents.blt(4, 100 + (i - 4) * 64, icon, icon.rect)
  1319.       self.contents.draw_text(32, 96 + (i - 4) * 64, 256, 32, text)
  1320.       self.contents.draw_text(84, 128 + (i - 4) * 64, 48, 32, factor[i][1].to_s, 2)
  1321.       self.contents.draw_text(224, 128 + (i - 4) * 64, 48, 32, $game_party.item_number(factor[i][0]).to_s, 2)
  1322.     end
  1323.   end
  1324. end
  1325.  
  1326. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1327.  
  1328. #==============================================================================
  1329. # □ Window_AlterEquipmentFactor
  1330. #------------------------------------------------------------------------------
  1331. #  装備改造画面で、付加要素一覧を表示するウィンドウです。
  1332. #==============================================================================
  1333.  
  1334. class Window_AlterEquipmentFactor < Window_Selectable
  1335.   #--------------------------------------------------------------------------
  1336.   # ● オブジェクト初期化
  1337.   #--------------------------------------------------------------------------
  1338.   def initialize
  1339.     super(320, 128, 320, 352)
  1340.     @column_max = 1
  1341.     self.active = false
  1342.     self.visible = false
  1343.     self.index = 0
  1344.     self.back_opacity = 160 if KGC::AEQ_BACK_TRANSPARENT
  1345.   end
  1346.   #--------------------------------------------------------------------------
  1347.   # ○ ファクターの取得
  1348.   #--------------------------------------------------------------------------
  1349.   def factor
  1350.     return @data[self.index]
  1351.   end
  1352.   #--------------------------------------------------------------------------
  1353.   # ● リフレッシュ
  1354.   #--------------------------------------------------------------------------
  1355.   def refresh(item)
  1356.     if self.contents != nil
  1357.       self.contents.dispose
  1358.       self.contents = nil
  1359.     end
  1360.     @item = item
  1361.     @data = []
  1362.     # 付加できるファクターを追加
  1363.     case item
  1364.     when RPG::Weapon
  1365.       factors = KGC::AEQ_WEAPON_FACTORS
  1366.     when RPG::Armor
  1367.       factors = KGC::AEQ_ARMOR_FACTORS
  1368.     end
  1369.     for i in 0...factors.size
  1370.       factor = factors[i]
  1371.       next if factor == nil
  1372.       @data.push(factor)
  1373.     end
  1374.     # 個数が 0 の場合は nil を追加
  1375.     @data.push(nil) if @data.size == 0
  1376.     # ビットマップを作成し、全項目を描画
  1377.     @item_max = @data.size
  1378.     self.contents = Bitmap.new(width - 32, row_max * 32)
  1379.     for i in 0...@item_max
  1380.       draw_item(i)
  1381.     end
  1382.   end
  1383.   #--------------------------------------------------------------------------
  1384.   # ● 項目の描画
  1385.   #--------------------------------------------------------------------------
  1386.   def draw_item(index)
  1387.     factor = @data[index]
  1388.     return if factor == nil
  1389.     x = 4
  1390.     y = index * 32
  1391.     if @item.can_add_factor?(factor)
  1392.       self.contents.font.color = normal_color
  1393.     else
  1394.       self.contents.font.color = disabled_color
  1395.     end
  1396.     self.contents.draw_text(x, y, 280, 32, factor[0], 0)
  1397.   end
  1398.   #--------------------------------------------------------------------------
  1399.   # ● ヘルプテキスト更新
  1400.   #--------------------------------------------------------------------------
  1401.   def update_help
  1402.     @help_window.set_text(self.factor == nil ? "" : self.factor[1])
  1403.   end
  1404. end
  1405.  
  1406. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1407.  
  1408. #==============================================================================
  1409. # ■ Scene_Title
  1410. #==============================================================================
  1411.  
  1412. class Scene_Title
  1413.   #--------------------------------------------------------------------------
  1414.   # ● コマンド : ニューゲーム
  1415.   #--------------------------------------------------------------------------
  1416.   alias command_new_game_KGC_AlterEquipment command_new_game
  1417.   def command_new_game
  1418.     # 元の処理を実行
  1419.     command_new_game_KGC_AlterEquipment
  1420.  
  1421.     # 改造装備を初期化
  1422.     $alter_weapon_start = $data_weapons.size
  1423.     for i in 0...KGC::AEQ_WEAPON_MAX
  1424.       $data_weapons[$alter_weapon_start + i] = RPG::Weapon2.new
  1425.     end
  1426.     $alter_armor_start = $data_armors.size
  1427.     for i in 0...KGC::AEQ_ARMOR_MAX
  1428.       $data_armors[$alter_armor_start + i] = RPG::Armor2.new
  1429.     end
  1430.   end
  1431. end
  1432.  
  1433. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1434.  
  1435. #==============================================================================
  1436. # ■ Scene_Load
  1437. #==============================================================================
  1438.  
  1439. class Scene_Load < Scene_File
  1440.   #--------------------------------------------------------------------------
  1441.   # ● 決定時の処理
  1442.   #--------------------------------------------------------------------------
  1443.   alias on_decision_KGC_AlterEquipment on_decision
  1444.   def on_decision(filename)
  1445.     on_decision_KGC_AlterEquipment(filename)
  1446.  
  1447.     return unless FileTest.exist?(filename)  # ファイルが存在しない場合は戻る
  1448.     restore_altered_equipment
  1449.   end
  1450.   #--------------------------------------------------------------------------
  1451.   # ○ 改造装備を復元
  1452.   #--------------------------------------------------------------------------
  1453.   def restore_altered_equipment
  1454.     # 改造装備を取得
  1455.     $alter_weapon_start = $data_weapons.size
  1456.     for i in 0...KGC::AEQ_WEAPON_MAX
  1457.       if $game_party.alter_weapons[i] == nil
  1458.         $data_weapons[$alter_weapon_start + i] = RPG::Weapon2.new
  1459.       else
  1460.         $data_weapons[$alter_weapon_start + i] = $game_party.alter_weapons[i]
  1461.         weapon = $game_party.alter_weapons[i]
  1462.         weapon.show_alter_count
  1463.         # 装備可能者を設定
  1464.         for i in 1...$data_classes.size
  1465.           actor_class = $data_classes[i]
  1466.           # 改造対象の武器を装備できるクラスの場合
  1467.           if actor_class.weapon_set.include?(weapon.original_id)
  1468.             # 装備可能武器に追加
  1469.             actor_class.weapon_set.push(weapon.id)
  1470.           else
  1471.             # 装備できない場合は装備可能武器から削除
  1472.             actor_class.weapon_set.delete(weapon.id)
  1473.           end
  1474.         end
  1475.       end
  1476.     end
  1477.     $alter_armor_start = $data_armors.size
  1478.     for i in 0...KGC::AEQ_ARMOR_MAX
  1479.       if $game_party.alter_armors[i] == nil
  1480.         $data_armors[$alter_armor_start + i] = RPG::Armor2.new
  1481.       else
  1482.         $data_armors[$alter_armor_start + i] = $game_party.alter_armors[i]
  1483.         armor = $game_party.alter_armors[i]
  1484.         armor.show_alter_count
  1485.         # 装備可能者を設定
  1486.         for i in 1...$data_classes.size
  1487.           actor_class = $data_classes[i]
  1488.           # 改造対象の武器を装備できるクラスの場合
  1489.           if actor_class.armor_set.include?(armor.original_id)
  1490.             # 装備可能武器に追加
  1491.             actor_class.armor_set.push(armor.id)
  1492.           else
  1493.             # 装備できない場合は装備可能武器から削除
  1494.             actor_class.armor_set.delete(armor.id)
  1495.           end
  1496.         end
  1497.       end
  1498.     end
  1499.   end
  1500. end
  1501.  
  1502. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1503.  
  1504. #==============================================================================
  1505. # ■ Scene_Name
  1506. #==============================================================================
  1507.  
  1508. class Scene_Name
  1509.   #--------------------------------------------------------------------------
  1510.   # ● メイン処理
  1511.   #--------------------------------------------------------------------------
  1512.   alias main_KGC_AlterEquipment main
  1513.   def main
  1514.     # 元の処理を実行
  1515.     main_KGC_AlterEquipment
  1516.  
  1517.     # 装備名変更の場合
  1518.     if $game_temp.equipment_alter_rename
  1519.       case $game_temp.equipment_alter_rename_type
  1520.       when 0
  1521.         type = "weapon"
  1522.       when 1
  1523.         type = "armor"
  1524.       end
  1525.       equip = eval("$data_#{type}s[$game_temp.equipment_alter_rename_id]")
  1526.       equip.change_name = @actor.name.dup
  1527.       equip.show_alter_count
  1528.       $game_temp.equipment_alter_rename_type = 0
  1529.       $game_temp.equipment_alter_rename_id = 0
  1530.       $game_temp.equipment_alter_rename = false
  1531.       # 装備品改造画面に切り替え
  1532.       $scene = Scene_AlterEquipment.new
  1533.     end
  1534.   end
  1535. end
  1536.  
  1537. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  1538.  
  1539. #==============================================================================
  1540. # □ Scene_AlterEquipment
  1541. #------------------------------------------------------------------------------
  1542. #  装備改造画面の処理を行うクラスです。
  1543. #==============================================================================
  1544.  
  1545. class Scene_AlterEquipment
  1546.   #--------------------------------------------------------------------------
  1547.   # ○ メイン処理
  1548.   #--------------------------------------------------------------------------
  1549.   def main
  1550.     @spriteset = Spriteset_Map.new if KGC::AEQ_BACK_TRANSPARENT
  1551.     # ウィンドウを作成
  1552.     if $imported["HelpExtension"]
  1553.       @help_window = Window_HelpExtension.new
  1554.     else
  1555.       @help_window = Window_Help.new
  1556.     end
  1557.     @help_window.back_opacity = 160 if KGC::AEQ_BACK_TRANSPARENT
  1558.     @command_window = Window_AlterEquipmentCommand.new
  1559.     @left_window = Window_AlterEquipmentLeft.new
  1560.     @right_window = Window_AlterEquipmentRight.new
  1561.     @factor_window = Window_AlterEquipmentFactor.new
  1562.     @status_window = Window_AlterEquipmentStatus.new
  1563.     # ヘルプウィンドウを関連付け
  1564.     @command_window.help_window = @help_window
  1565.     @left_window.help_window = @help_window
  1566.     @right_window.help_window = @help_window
  1567.     @factor_window.help_window = @help_window
  1568.     # カーソル位置を設定
  1569.     @left_window.index = 0
  1570.     @status_window.refresh(@left_window.item)
  1571.     # トランジション実行
  1572.     Graphics.transition
  1573.     # メインループ
  1574.     loop do
  1575.       # ゲーム画面を更新
  1576.       Graphics.update
  1577.       # 入力情報を更新
  1578.       Input.update
  1579.       # フレーム更新
  1580.       update
  1581.       # 画面が切り替わったらループを中断
  1582.       if $scene != self
  1583.         break
  1584.       end
  1585.     end
  1586.     # トランジション準備
  1587.     Graphics.freeze
  1588.     # ウィンドウを解放
  1589.     @help_window.dispose
  1590.     @command_window.dispose
  1591.     @left_window.dispose
  1592.     @right_window.dispose
  1593.     @factor_window.dispose
  1594.     @status_window.dispose
  1595.     @left_command_window.dispose if @left_command_window != nil
  1596.     @right_command_window.dispose if @right_command_window != nil
  1597.     @factor_command_window.dispose if @factor_command_window != nil
  1598.     @spriteset.dispose if KGC::AEQ_BACK_TRANSPARENT
  1599.   end
  1600.   #--------------------------------------------------------------------------
  1601.   # ○ リフレッシュ
  1602.   #--------------------------------------------------------------------------
  1603.   def refresh
  1604.     @command_window.refresh
  1605.     @left_window.refresh
  1606.     @right_window.refresh
  1607.     @factor_window.refresh(nil)
  1608.     @status_window.refresh(nil)
  1609.   end
  1610.   #--------------------------------------------------------------------------
  1611.   # ○ フレーム更新
  1612.   #--------------------------------------------------------------------------
  1613.   def update
  1614.     # ウィンドウを更新
  1615.     @command_window.update
  1616.     @left_window.update
  1617.     @right_window.update
  1618.     @factor_window.update
  1619.     # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
  1620.     if @command_window.active
  1621.       update_command
  1622.       return
  1623.     end
  1624.     # レフトウィンドウがアクティブの場合: update_left を呼ぶ
  1625.     if @left_window.active
  1626.       @status_window.x = 320
  1627.       update_left
  1628.       return
  1629.     end
  1630.     # ライトウィンドウがアクティブの場合: update_right を呼ぶ
  1631.     if @right_window.active
  1632.       @status_window.x = 0
  1633.       update_right
  1634.       return
  1635.     end
  1636.     # ファクター追加ウィンドウがアクティブの場合: update_factor を呼ぶ
  1637.     if @factor_window.active
  1638.       @status_window.x = 0
  1639.       update_factor
  1640.       return
  1641.     end
  1642.     # レフトコマンドウィンドウがアクティブの場合: update_left_command を呼ぶ
  1643.     if @left_command_window != nil && @left_command_window.active
  1644.       update_left_command
  1645.       return
  1646.     end
  1647.     # ライトコマンドウィンドウがアクティブの場合: update_right_command を呼ぶ
  1648.     if @right_command_window != nil && @right_command_window.active
  1649.       update_right_command
  1650.       return
  1651.     end
  1652.     # ファクターコマンドウィンドウがアクティブの場合: update_factor_command を呼ぶ
  1653.     if @factor_command_window != nil && @factor_command_window.active
  1654.       update_factor_command
  1655.       return
  1656.     end
  1657.   end
  1658.   #--------------------------------------------------------------------------
  1659.   # ○ フレーム更新 (コマンドウィンドウがアクティブの場合)
  1660.   #--------------------------------------------------------------------------
  1661.   def update_command
  1662.     # B ボタンが押された場合
  1663.     if Input.trigger?(Input::B)
  1664.       # キャンセル SE を演奏
  1665.       $game_system.se_play($data_system.cancel_se)
  1666.       # マップ画面に切り替え
  1667.       $scene = Scene_Map.new
  1668.       return
  1669.     end
  1670.     # C ボタンが押された場合
  1671.     if Input.trigger?(Input::C)
  1672.       # 決定 SE を演奏
  1673.       $game_system.se_play($data_system.decision_se)
  1674.       # レフトウィンドウに切り替え
  1675.       case @command_window.index
  1676.       when 0..1
  1677.         @type = 0
  1678.       when 2..3
  1679.         @type = 1
  1680.       end
  1681.       @command_window.active = false
  1682.       @command_window.visible = false
  1683.       @left_window.refresh(@type)
  1684.       @left_window.active = true
  1685.       return
  1686.     end
  1687.   end
  1688.   #--------------------------------------------------------------------------
  1689.   # ○ フレーム更新 (レフトウィンドウがアクティブの場合)
  1690.   #--------------------------------------------------------------------------
  1691.   def update_left
  1692.     # 選択項目が変更された場合
  1693.     if @now_sel_left != @left_window.index
  1694.       # ステータスウィンドウをリフレッシュ
  1695.       @status_window.refresh(@left_window.item)
  1696.       @now_sel_left = @left_window.index
  1697.     end
  1698.     # B ボタンが押された場合
  1699.     if Input.trigger?(Input::B)
  1700.       # キャンセル SE を演奏
  1701.       $game_system.se_play($data_system.cancel_se)
  1702.       # コマンドウィンドウに切り替え
  1703.       @command_window.active = true
  1704.       @command_window.visible = true
  1705.       @left_window.active = false
  1706.       @now_sel_left = nil
  1707.       return
  1708.     end
  1709.     # C ボタンが押された場合
  1710.     if Input.trigger?(Input::C)
  1711.       # コマンドウィンドウの選択肢で分岐
  1712.       case @command_window.index
  1713.       when 0, 2  # 装備改造の場合
  1714.         # 既に改造装備がある場合
  1715.         if @left_window.item != nil
  1716.           # これ以上改造できない場合
  1717.           if @left_window.item.alterable_count == 0
  1718.             # ブザー SE を演奏
  1719.             $game_system.se_play($data_system.buzzer_se)
  1720.             return
  1721.           end
  1722.           # 決定 SE を演奏
  1723.           $game_system.se_play($data_system.decision_se)
  1724.           # ファクター追加ウィンドウをリフレッシュ
  1725.           @factor_window.refresh(@left_window.item)
  1726.           # ファクター追加ウィンドウに切り替え
  1727.           @left_window.active = false
  1728.           @factor_window.active = true
  1729.           @factor_window.visible = true
  1730.         else
  1731.           # 決定 SE を演奏
  1732.           $game_system.se_play($data_system.decision_se)
  1733.           # ステータスウィンドウをリフレッシュ
  1734.           @status_window.refresh(@right_window.item)
  1735.           # ライトウィンドウに切り替え
  1736.           @left_window.active = false
  1737.           @right_window.refresh(@type)
  1738.           @right_window.active = true
  1739.           @right_window.visible = true
  1740.         end
  1741.         @now_sel_left = nil
  1742.       when 1, 3  # 改造装備破棄の場合
  1743.         # 既に改造装備がある場合
  1744.         if @left_window.item != nil &&
  1745.             ((@type == 0 && $game_party.weapon_number(@left_window.item.id) >= 1) ||
  1746.             (@type == 1 && $game_party.armor_number(@left_window.item.id) >= 1))
  1747.           # 決定 SE を演奏
  1748.           $game_system.se_play($data_system.decision_se)
  1749.           # レフトコマンドウィンドウ作成
  1750.           @left_command_window = Window_Command.new(256, KGC::AEQ_DISPOSE_COMMAND)
  1751.           @left_command_window.back_opacity = 160
  1752.           @left_command_window.x = 320 - @left_command_window.width / 2
  1753.           @left_command_window.y = 240 - @left_command_window.height / 2
  1754.           @left_command_window.z = 1000
  1755.           @left_command_window.index = 1
  1756.           # レフトコマンドウィンドウに切り替え
  1757.           @left_command_window.active = true
  1758.           @left_window.active = false
  1759.           @now_sel_left = nil
  1760.         else
  1761.           # ブザー SE を演奏
  1762.           $game_system.se_play($data_system.buzzer_se)
  1763.         end
  1764.       end
  1765.       return
  1766.     end
  1767.     # 装備名変更ボタンが押された場合
  1768.     if KGC::AEQ_RENAME_BUTTON != nil && Input.trigger?(KGC::AEQ_RENAME_BUTTON)
  1769.       item = @left_window.item
  1770.       # 既に改造装備がある場合
  1771.       if item != nil &&
  1772.           ((@type == 0 && $game_party.weapon_number(item.id) >= 1) ||
  1773.           (@type == 1 && $game_party.armor_number(item.id) >= 1))
  1774.         # 決定 SE を演奏
  1775.         $game_system.se_play($data_system.decision_se)
  1776.         # 名前変更画面に切り替え
  1777.         $game_actors[KGC::AEQ_RENAME_ACTOR_ID].name = item.plain_name
  1778.         $game_temp.name_actor_id = KGC::AEQ_RENAME_ACTOR_ID
  1779.         $game_temp.name_max_char = KGC::AEQ_RENAME_MAX_LENGTH
  1780.         $game_temp.equipment_alter_rename_type = @type
  1781.         $game_temp.equipment_alter_rename_id = item.id
  1782.         $game_temp.equipment_alter_rename = true
  1783.         $scene = Scene_Name.new
  1784.       else
  1785.         # ブザー SE を演奏
  1786.         $game_system.se_play($data_system.buzzer_se)
  1787.       end
  1788.       return
  1789.     end
  1790.   end
  1791.   #--------------------------------------------------------------------------
  1792.   # ○ フレーム更新 (ライトウィンドウがアクティブの場合)
  1793.   #--------------------------------------------------------------------------
  1794.   def update_right
  1795.     # 選択項目が変更された場合
  1796.     if @now_sel_right != @right_window.index
  1797.       # ステータスウィンドウをリフレッシュ
  1798.       @status_window.refresh(@right_window.item)
  1799.       @now_sel_right = @right_window.index
  1800.     end
  1801.     # B ボタンが押された場合
  1802.     if Input.trigger?(Input::B)
  1803.       # キャンセル SE を演奏
  1804.       $game_system.se_play($data_system.cancel_se)
  1805.       # ステータスウィンドウをリフレッシュ
  1806.       @status_window.refresh(@left_window.item)
  1807.       # レフトウィンドウに切り替え
  1808.       @left_window.active = true
  1809.       @right_window.active = false
  1810.       @right_window.visible = false
  1811.       @right_window.index = 0
  1812.       @now_sel_right = nil
  1813.       # ヘルプウィンドウ文字列を消去
  1814.       @help_window.set_text("")
  1815.       return
  1816.     end
  1817.     # C ボタンが押された場合
  1818.     if Input.trigger?(Input::C)
  1819.       # 空欄を選択した場合
  1820.       if @right_window.item == nil
  1821.         # ブザー SE を演奏
  1822.         $game_system.se_play($data_system.buzzer_se)
  1823.         return
  1824.       end
  1825.       # 決定 SE を演奏
  1826.       $game_system.se_play($data_system.decision_se)
  1827.       # ライトコマンドウィンドウ作成
  1828.       @right_command_window = Window_Command.new(256, KGC::AEQ_ALTER_COMMAND)
  1829.       @right_command_window.back_opacity = 160
  1830.       @right_command_window.x = 320 - @right_command_window.width / 2
  1831.       @right_command_window.y = 240 - @right_command_window.height / 2
  1832.       @right_command_window.z = 1000
  1833.       # ライトコマンドウィンドウに切り替え
  1834.       @right_command_window.active = true
  1835.       @right_window.active = false
  1836.       @now_sel_right = nil
  1837.       return
  1838.     end
  1839.   end
  1840.   #--------------------------------------------------------------------------
  1841.   # ○ フレーム更新 (ファクター追加ウィンドウがアクティブの場合)
  1842.   #--------------------------------------------------------------------------
  1843.   def update_factor
  1844.     # 選択項目が変更された場合
  1845.     if @now_sel_factor != @factor_window.index
  1846.       # ステータスウィンドウをリフレッシュ
  1847.       @status_window.refresh(@left_window.item, @factor_window.factor)
  1848.       @now_sel_factor = @factor_window.index
  1849.     end
  1850.     # B ボタンが押された場合
  1851.     if Input.trigger?(Input::B)
  1852.       # キャンセル SE を演奏
  1853.       $game_system.se_play($data_system.cancel_se)
  1854.       # ステータスウィンドウをリフレッシュ
  1855.       @status_window.refresh(@left_window.item)
  1856.       # レフトウィンドウに切り替え
  1857.       @left_window.active = true
  1858.       @factor_window.active = false
  1859.       @factor_window.visible = false
  1860.       @factor_window.index = 0
  1861.       @now_sel_factor = nil
  1862.       return
  1863.     end
  1864.     # C ボタンが押された場合
  1865.     if Input.trigger?(Input::C)
  1866.       factor = @factor_window.factor
  1867.       # nil チェック
  1868.       impossible = factor == nil
  1869.       # ファクター付加判定
  1870.       impossible |= !@left_window.item.can_add_factor?(factor)
  1871.       # 付加できない場合
  1872.       if impossible
  1873.         # ブザー SE を演奏
  1874.         $game_system.se_play($data_system.buzzer_se)
  1875.         return
  1876.       end
  1877.       # 決定 SE を演奏
  1878.       $game_system.se_play($data_system.decision_se)
  1879.       # ファクターコマンドウィンドウ作成
  1880.       @factor_command_window = Window_Command.new(256, KGC::AEQ_FACTOR_COMMAND)
  1881.       @factor_command_window.back_opacity = 160
  1882.       @factor_command_window.x = 320 - @factor_command_window.width / 2
  1883.       @factor_command_window.y = 240 - @factor_command_window.height / 2
  1884.       @factor_command_window.z = 1000
  1885.       @factor_command_window.index = 1
  1886.       # ファクターコマンドウィンドウに切り替え
  1887.       @factor_command_window.active = true
  1888.       @factor_window.active = false
  1889.       @now_sel_factor = nil
  1890.       return
  1891.     end
  1892.   end
  1893.   #--------------------------------------------------------------------------
  1894.   # ○ フレーム更新 (レフトコマンドウィンドウがアクティブの場合)
  1895.   #--------------------------------------------------------------------------
  1896.   def update_left_command
  1897.     @left_command_window.update
  1898.     # B ボタンが押された場合
  1899.     if Input.trigger?(Input::B)
  1900.       # キャンセル SE を演奏
  1901.       $game_system.se_play($data_system.cancel_se)
  1902.       # レフトウィンドウに切り替え
  1903.       @left_command_window.dispose
  1904.       @left_command_window = nil
  1905.       @left_window.active = true
  1906.       return
  1907.     end
  1908.     # C ボタンが押された場合
  1909.     if Input.trigger?(Input::C)
  1910.       case @left_command_window.index
  1911.       when 0
  1912.         # 装備 SE を演奏
  1913.         $game_system.se_play($data_system.equip_se)
  1914.         # 選択した改造装備を削除
  1915.         id = @left_window.item.id
  1916.         case @type
  1917.         when 0
  1918.           $game_party.alter_weapons[@left_window.index] = nil
  1919.           $data_weapons[id] = RPG::Weapon2.new
  1920.           $game_party.lose_weapon(id, 99)
  1921.         when 1
  1922.           $game_party.alter_armors[@left_window.index] = nil
  1923.           $data_armors[id] = RPG::Armor2.new
  1924.           $game_party.lose_armor(id, 99)
  1925.         end
  1926.         # 再描画
  1927.         @left_window.redraw_item(@left_window.index, @type)
  1928.         # レフトウィンドウに切り替え
  1929.         @left_command_window.dispose
  1930.         @left_command_window = nil
  1931.         @left_window.active = true
  1932.       when 1
  1933.         # 決定 SE を演奏
  1934.         $game_system.se_play($data_system.decision_se)
  1935.         # レフトウィンドウに切り替え
  1936.         @left_command_window.dispose
  1937.         @left_command_window = nil
  1938.         @left_window.active = true
  1939.       end
  1940.       return
  1941.     end
  1942.   end
  1943.   #--------------------------------------------------------------------------
  1944.   # ○ フレーム更新 (ライトコマンドウィンドウがアクティブの場合)
  1945.   #--------------------------------------------------------------------------
  1946.   def update_right_command
  1947.     @right_command_window.update
  1948.     # B ボタンが押された場合
  1949.     if Input.trigger?(Input::B)
  1950.       # キャンセル SE を演奏
  1951.       $game_system.se_play($data_system.cancel_se)
  1952.       # ライトウィンドウに切り替え
  1953.       @right_command_window.dispose
  1954.       @right_command_window = nil
  1955.       @right_window.active = true
  1956.       return
  1957.     end
  1958.     # C ボタンが押された場合
  1959.     if Input.trigger?(Input::C)
  1960.       case @right_command_window.index
  1961.       when 0
  1962.         # 装備 SE を演奏
  1963.         $game_system.se_play($data_system.equip_se)
  1964.         case @type
  1965.         when 0
  1966.           # 改造する武器を設定
  1967.           id = @left_window.index + $alter_weapon_start
  1968.           # 武器の内容を設定
  1969.           $game_party.alter_weapons[@left_window.index] = RPG::Weapon2.new
  1970.           weapon = $game_party.alter_weapons[@left_window.index]
  1971.           weapon.id = id
  1972.           weapon.copy_weapon(@right_window.item.id)
  1973.           $data_weapons[id] = $game_party.alter_weapons[@left_window.index]
  1974.           # 改造装備を 1 個取得
  1975.           $game_party.gain_weapon(id, 1)
  1976.           # 改造対象の武器を削除
  1977.           $game_party.lose_weapon(@right_window.item.id, 1)
  1978.         when 1
  1979.           # 改造する防具を設定
  1980.           id = @left_window.index + $alter_armor_start
  1981.           # 防具の内容を設定
  1982.           $game_party.alter_armors[@left_window.index] = RPG::Armor2.new
  1983.           armor = $game_party.alter_armors[@left_window.index]
  1984.           armor.id = id
  1985.           armor.copy_armor(@right_window.item.id)
  1986.           $data_armors[id] = $game_party.alter_armors[@left_window.index]
  1987.           # 改造装備を 1 個取得
  1988.           $game_party.gain_armor(id, 1)
  1989.           # 改造対象の防具を削除
  1990.           $game_party.lose_armor(@right_window.item.id, 1)
  1991.         end
  1992.         # ウィンドウをリフレッシュ
  1993.         @left_window.redraw_item(@left_window.index, @type)
  1994.         @right_window.refresh(@type)
  1995.         @status_window.refresh(@left_window.item)
  1996.         # レフトウィンドウに切り替え
  1997.         @right_command_window.dispose
  1998.         @right_command_window = nil
  1999.         @left_window.active = true
  2000.         @right_window.active = false
  2001.         @right_window.visible = false
  2002.         @right_window.index = 0
  2003.         # ヘルプウィンドウ文字列を消去
  2004.         @help_window.set_text("")
  2005.       when 1
  2006.         # 決定 SE を演奏
  2007.         $game_system.se_play($data_system.decision_se)
  2008.         # ライトウィンドウに切り替え
  2009.         @right_command_window.dispose
  2010.         @right_command_window = nil
  2011.         @right_window.active = true
  2012.       end
  2013.       return
  2014.     end
  2015.   end
  2016.   #--------------------------------------------------------------------------
  2017.   # ○ フレーム更新 (ファクターコマンドウィンドウがアクティブの場合)
  2018.   #--------------------------------------------------------------------------
  2019.   def update_factor_command
  2020.     @factor_command_window.update
  2021.     # B ボタンが押された場合
  2022.     if Input.trigger?(Input::B)
  2023.       # キャンセル SE を演奏
  2024.       $game_system.se_play($data_system.cancel_se)
  2025.       # ファクターウィンドウに切り替え
  2026.       @factor_command_window.dispose
  2027.       @factor_command_window = nil
  2028.       @factor_window.active = true
  2029.       return
  2030.     end
  2031.     # C ボタンが押された場合
  2032.     if Input.trigger?(Input::C)
  2033.       case @factor_command_window.index
  2034.       when 0
  2035.         # 装備 SE を演奏
  2036.         $game_system.se_play($data_system.equip_se)
  2037.         # 装備を改造
  2038.         case @type
  2039.         when 0
  2040.           $game_party.alter_weapons[@left_window.index].add_factor(@factor_window.factor)
  2041.         when 1
  2042.           $game_party.alter_armors[@left_window.index].add_factor(@factor_window.factor)
  2043.         end
  2044.         # ウィンドウをリフレッシュ
  2045.         @left_window.redraw_item(@left_window.index, @type)
  2046.         @status_window.refresh(@left_window.item)
  2047.         # レフトウィンドウに切り替え
  2048.         @factor_command_window.dispose
  2049.         @factor_command_window = nil
  2050.         @left_window.active = true
  2051.         @factor_window.active = false
  2052.         @factor_window.visible = false
  2053.         @factor_window.index = 0
  2054.         # ヘルプウィンドウ文字列を消去
  2055.         @help_window.set_text("")
  2056.       when 1
  2057.         # 決定 SE を演奏
  2058.         $game_system.se_play($data_system.decision_se)
  2059.         # ファクターウィンドウに切り替え
  2060.         @factor_command_window.dispose
  2061.         @factor_command_window = nil
  2062.         @factor_window.active = true
  2063.       end
  2064.       return
  2065.     end
  2066.   end
  2067. end

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

本版积分规则

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

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

GMT+8, 2024-11-17 17:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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