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

Project1

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

[已经过期] 如何在状态栏显示新增加装备

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

跳转到指定楼层
1
发表于 2016-10-11 00:33:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何在状态栏显示新增加装备,俺是脚本瞎一抓一把瞎 现在已经搞不懂了 求求大神大触有空帮忙看看一下好吗?
我已经上传脚本文件了

360截图20161011002916551.jpg (35.25 KB, 下载次数: 2)

360截图20161011002916551.jpg

如何显示装备.zip

947.97 KB, 下载次数: 9

如何在状态栏显示新增加装备

点评

比方说 鞋子 首饰 徽章 如何显示在上图里面 O(∩_∩)O谢谢 1000经验 求帮助  发表于 2016-10-11 00:36
------落尽红樱君不见,轻绘梨花泪沾衣。~~~

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

2
发表于 2016-10-11 03:01:03 | 只看该作者
本帖最后由 yang1zhi 于 2016-10-11 11:03 编辑

   def refresh
    self.contents.clear
    draw_actor_graphic(@actor, 40, 112)
    draw_actor_name(@actor, 4, 0)
    draw_actor_class(@actor, 4 + 144, 0)
    draw_actor_level(@actor, 96, 32)
    draw_actor_state(@actor, 96, 64)
    draw_actor_hp(@actor, 96, 112, 172)
    draw_actor_sp(@actor, 96, 144, 172)
    draw_actor_parameter(@actor, 96, 192, 0)
    draw_actor_parameter(@actor, 96, 224, 1)
    draw_actor_parameter(@actor, 96, 256, 2)
    draw_actor_parameter(@actor, 96, 304, 3)
    draw_actor_parameter(@actor, 96, 336, 4)
    draw_actor_parameter(@actor, 96, 368, 5)
    draw_actor_parameter(@actor, 96, 400, 6)
    self.contents.font.color = system_color
    self.contents.draw_text(320, 48, 80, 32, "EXP")
    self.contents.draw_text(320, 80, 80, 32, "NEXT")
    self.contents.font.color = normal_color
    self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
    self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(320, 160, 96, 32, "装备")
    draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)
    draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)
    draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)
    draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)
    draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)
  end

这一段按规则添加。
self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
这是说320, 112这个坐标,96, 32尺寸,数据库内设置的武器用语
draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
这是说320 + 24, 400这个坐标,$data_armors这是指数据库内的防具,@actor.armor4_id这是指第4号防具ID

点评

是能显示了 不过 大触你仔细看看 是不是有什么不对、。。。  发表于 2016-10-11 14:49
你找到class Window_Status < Window_Base然后在 def refresh添加draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)  发表于 2016-10-11 11:01
不可能一个都不显示的啊,你是不是把上面那段给改了啊,不是要你改,是叫你添加  发表于 2016-10-11 10:59
◆ 装備拡張 - KGC_EquipExtension ◆ 这是装备开展 脚本  发表于 2016-10-11 10:35
没有用,按你指定使用 一个装备都不显示了 大触 你打开脚本研究一下肿么样  发表于 2016-10-11 10:34

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

3
 楼主| 发表于 2016-10-11 14:40:58 | 只看该作者
本帖最后由 j296196585 于 2016-10-11 14:50 编辑

O(∩_∩)O谢谢@yang1zhi大触你看看是不是有什么不对{:2_286:}

360截图20161011144035015.jpg (41.04 KB, 下载次数: 1)

360截图20161011144035015.jpg

点评

就是不行  发表于 2016-10-13 15:24
你可以试试@actor.armor5_id,6,7,8,或许写脚本的人会用也说不定。你可以把脚本贴出来  发表于 2016-10-12 02:29
谢谢帮忙 ID一直不能兼容 所有我才全网求帮忙呢  发表于 2016-10-12 00:36
默认脚本是@actor.weapon_id是武器ID,@actor.armor1_id是防具1号也就是盾ID,2是头部,3是身体,4是饰品  发表于 2016-10-11 18:33
这是你写的ID不对,你要写你对应的位置的ID,你要看你的装备脚本  发表于 2016-10-11 18:31
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

4
 楼主| 发表于 2016-10-13 15:25:49 | 只看该作者
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 装備拡張 - KGC_EquipExtension ◆
  3. #_/    ◇ Last update : 2008/01/10 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  装備関連の機能を拡張します。
  6. #_/============================================================================
  7. #_/ ≪装備品設定詳細化[EquipDetailSetting]≫より上
  8. #_/ ≪クラス設定詳細化[ClassDetailSetting]≫より上
  9. #_/ ≪装備画面改造[EquipAlter]≫より下
  10. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

  15. #==============================================================================
  16. # ★ カスタマイズ項目 ★
  17. #==============================================================================

  18. module KGC
  19.   # ◆拡張装備タイプ定義
  20.   #  配列の最初がタイプ 5 に相当。以降 6,7,8,... と続く。
  21.   EEX_EQUIP_TYPE_EXT = ["鞋子", "首饰", "徽章", "称号", "法宝"]

  22.   # ◆装備品のタイプ(1:盾  2:頭  3:身体  4:装飾品  5以降:↑で定義)
  23.   #  ※どのように指定しても、必ず最初は武器になります。
  24.   EEX_EQUIP_TYPE = [1, 2, 3, 4, 5, 6, 6, 6, 7, 8, 9]
  25.   # ◆二刀流時の武器数
  26.   #  二刀流時は↑の先頭から (EEX_TS_NUMBER - 1) 個を武器に置き換える
  27.   EEX_TS_NUMBER = 2

  28.   # ◆装備欄の名前
  29.   #  増加した装備タイプの名称もここで指定。
  30.   EEX_EQUIP_NAME = [
  31.     $data_system.words.weapon,  # 武器
  32.     $data_system.words.armor1,  # タイプ 1(盾)
  33.     $data_system.words.armor2,  # タイプ 2(頭)
  34.     $data_system.words.armor3,  # タイプ 3(身体)
  35.     $data_system.words.armor4,  # タイプ 4(装飾品)
  36.     EEX_EQUIP_TYPE_EXT[0],  # タイプ 5
  37.     EEX_EQUIP_TYPE_EXT[1]   # タイプ 6
  38. #    EEX_EQUIP_TYPE_EXT[2]   # タイプ 7   
  39. #    EEX_EQUIP_TYPE_EXT[3]   # タイプ 8
  40. #    EEX_EQUIP_TYPE_EXT[4]   # タイプ 9
  41.   ]  # ←この ] は消さないこと

  42.   # ◆最強装備から除外する装備タイプ
  43.   #  除外する装備タイプを格納。
  44.   #  ≪装備画面改造≫と併用した場合はこちらを優先。
  45.   EEX_IGNORE_STRONGEST_TYPE = []

  46.   # ◆拡張装備画面に表示する装備欄開始番号
  47.   #  武器を 0 、最初の防具を 1 とした番号(インデックス)。
  48.   EEX_EQUIP_EX_INDEX = 0
  49.   # ◆拡張装備画面背景透過
  50.   EEX_EQUIP_EX_BACK_TRANSPARENT = true

  51.   # ◆拡張装備画面「装備変更」名称
  52.   EEX_EQUIP_EX_COMMAND_EQUIP = "装備変更"
  53.   # ◆拡張装備画面「最強装備」名称
  54.   EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP = "最強装備"
  55.   # ◆拡張装備画面「全解除」名称
  56.   EEX_EQUIP_EX_COMMAND_ALL_RELEASE = "全解除"

  57.   # ◆拡張装備画面「装備変更」ヘルプ
  58.   EEX_EQUIP_EX_HELP_EQUIP = "装備を変更します。"
  59.   # ◆拡張装備画面「最強装備」ヘルプ
  60.   EEX_EQUIP_EX_HELP_STRONGEST_EQUIP = "最も強力な武具を装備します。"
  61.   # ◆拡張装備画面「全解除」ヘルプ
  62.   EEX_EQUIP_EX_HELP_ALL_RELEASE = "全ての装備品を外します。"

  63.   # ◆EP(Equip Point)制を使用する
  64.   EEX_USE_EP = true

  65.   # ◆消費EP既定値
  66.   #  消費EPが指定されていない装備品で使用
  67.   EEX_EP_COST_DEFAULT = 1
  68.   # ◆EP上限値
  69.   EEX_EP_MAX = 15
  70.   # ◆EP下限値
  71.   EEX_EP_MIN = 1
  72.   # ◆最大EP算出式
  73.   #  【lv…レベル】
  74.   #  自動的に整数変換されるので、結果が小数になってもOK。
  75.   EEX_EP_FORMULA = "lv * 0.6"

  76.   # ◆「EP」の名称
  77.   EEX_EP_NAME = "EP"
  78.   # ◆装備画面のEP最大値描画
  79.   #  名前が隠れたりする場合は false にしてください。
  80.   EEX_DRAW_EP_MAX = true
  81.   # ◆消費EP値の色(アイテム名の末尾に付く数値)
  82.   EEX_EP_COLOR = Color.new(128, 255, 255)
  83. end

  84. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  85. $imported = {} if $imported == nil
  86. $imported["EquipExtension"] = true

  87. # 両手持ち属性
  88. $game_special_elements["two_handed"] = $data_system.elements.index("両手持ち")

  89. if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  90.   for element in KGC::EEX_EQUIP_TYPE_EXT.compact
  91.     $game_special_elements["EEX_#{element}"] = $data_system.elements.index(element)
  92.   end
  93. end

  94. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  95. #--------------------------------------------------------------------------
  96. # ● 拡張装備画面呼び出し
  97. #     actor_index : アクターINDEX
  98. #--------------------------------------------------------------------------
  99. def call_equip_extend(actor_index = 0)
  100.   # プレイヤーの姿勢を矯正
  101.   $game_player.straighten
  102.   # 拡張装備画面に切り替え
  103.   $scene = Scene_EquipExtend.new(actor_index)
  104. end

  105. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  106. #==============================================================================
  107. # ■ RPG::Weapon
  108. #==============================================================================

  109. class RPG::Weapon
  110.   #--------------------------------------------------------------------------
  111.   # ● 名前取得
  112.   #--------------------------------------------------------------------------
  113.   def name
  114.     return @name.gsub(/\[.*\]/) {""}
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ○ オリジナル名取得
  118.   #--------------------------------------------------------------------------
  119.   def original_name
  120.     return @name
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ○ 消費EP取得
  124.   #--------------------------------------------------------------------------
  125.   def ep_cost
  126.     return @name =~ /\[EP[ ]*(\d+)\]/i ? $1.to_i : KGC::EEX_EP_COST_DEFAULT
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ○ 装備タイプ取得
  130.   #--------------------------------------------------------------------------
  131.   def equip_type
  132.     if @name =~ /\[ET[ ]*([0-9,]+)\]/i
  133.       type = $1.split(/[,]/).compact
  134.       for i in 0...type.size
  135.         type[i] = type[i].to_i
  136.       end
  137.       type.insert(0, 0) if type[0] != 0
  138.       return type
  139.     else
  140.       return nil
  141.     end
  142.   end
  143. end

  144. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  145. #==============================================================================
  146. # ■ RPG::Armor
  147. #==============================================================================

  148. class RPG::Armor
  149.   #--------------------------------------------------------------------------
  150.   # ● 名前取得
  151.   #--------------------------------------------------------------------------
  152.   def name
  153.     return @name.gsub(/\[.*\]/) {""}
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ○ オリジナル名取得
  157.   #--------------------------------------------------------------------------
  158.   def original_name
  159.     return @name
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ○ 消費EP取得
  163.   #--------------------------------------------------------------------------
  164.   def ep_cost
  165.     return @name =~ /\[EP[ ]*(\d+)\]/i ? $1.to_i : KGC::EEX_EP_COST_DEFAULT
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ○ 種類取得
  169.   #--------------------------------------------------------------------------
  170.   def kind
  171.     if @guard_element_set.size > 0
  172.       @guard_element_set.compact.each { |element|
  173.         (0...KGC::EEX_EQUIP_TYPE_EXT.size).each { |i|
  174.           if element == $game_special_elements["EEX_#{KGC::EEX_EQUIP_TYPE_EXT[i]}"]
  175.             return i + 4
  176.           end
  177.         }
  178.       }
  179.     end
  180.     return @kind
  181.   end
  182. end

  183. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  184. #==============================================================================
  185. # ■ Game_Actor
  186. #==============================================================================

  187. class Game_Actor < Game_Battler
  188.   #--------------------------------------------------------------------------
  189.   # ● 公開インスタンス変数
  190.   #--------------------------------------------------------------------------
  191.   attr_accessor :weapon_fix               # 武器固定
  192.   attr_accessor :armor_id                 # 防具 ID
  193.   attr_accessor :armor_fix                # 防具固定
  194.   #--------------------------------------------------------------------------
  195.   # ● セットアップ
  196.   #     actor_id : アクター ID
  197.   #--------------------------------------------------------------------------
  198.   alias setup_KGC_EquipExtension setup
  199.   def setup(actor_id)
  200.     actor = $data_actors[actor_id]
  201.     @weapons = [actor.weapon_id]
  202.     (1...KGC::EEX_TS_NUMBER).each { |i|
  203.       @weapons << 0
  204.     }
  205.     @armor1_id = @armor2_id = @armor3_id = @armor4_id = 0
  206.     @weapon_fix = [actor.weapon_fix]
  207.     (1...KGC::EEX_TS_NUMBER).each { |i|
  208.       @weapon_fix << false
  209.     }
  210.     # 防具固定状態を設定
  211.     @armor_fix = [false, false, false, false, false]
  212.     (1..4).each { |i|
  213.       if (index = KGC::EEX_EQUIP_TYPE.index(i)) != nil
  214.         @armor_fix[index] = eval("actor.armor#{i}_fix")
  215.       end
  216.     }
  217.     if self.equip_type.size > 5
  218.       (5...self.equip_type.size).each { |i|
  219.         @armor_fix[i] = false
  220.       }
  221.     end

  222.     # 防具を設定
  223.     @armor_id = [0, 0, 0, 0, 0]
  224.     if (index = KGC::EEX_EQUIP_TYPE.index(1)) != nil &&
  225.         ( @weapons[0] == 0 ||
  226.           !$data_weapons[@weapons[0]].element_set.include?(
  227.             $game_special_elements["two_handed"]) )
  228.       @armor_id[index] = actor.armor1_id
  229.     else
  230.       @armor_id[1] = 0
  231.     end
  232.     (2..4).each { |i|
  233.       if (index = KGC::EEX_EQUIP_TYPE.index(i)) != nil
  234.         @armor_id[index] = eval("actor.armor#{i}_id")
  235.       end
  236.     }
  237.     if self.equip_type.size > 5
  238.       (5...self.equip_type.size).each { |i|
  239.         @armor_id[i] = 0
  240.       }
  241.     end

  242.     setup_KGC_EquipExtension(actor_id)

  243.     @equip_type = nil
  244.     @equip_type_weapon = nil
  245.     @two_swords = false
  246.     @two_handed = false
  247.     @ts_number = nil
  248.     @attack_count = 0
  249.     if KGC::EEX_EQUIP_TYPE.size > 5
  250.       (5...KGC::EEX_EQUIP_TYPE.size).each { |i|
  251.         # 防具ID, 固定フラグを初期化
  252.         @armor_id[i] = 0
  253.         @armor_fix[i] = false
  254.         # オートステートを更新
  255.         update_auto_state(nil, $data_armors[self.armor_id[i]])
  256.       }
  257.     end
  258.   end
  259.   #--------------------------------------------------------------------------
  260.   # ○ パラメータの取得
  261.   #--------------------------------------------------------------------------
  262.   unless $imported["LimitBreak"]
  263.   def parameter(type)
  264.     return $data_actors[@actor_id].parameters[type, @level]
  265.   end
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # ○ 装備タイプ取得
  269.   #--------------------------------------------------------------------------
  270.   def equip_type
  271.     type = (@equip_type_weapon != nil && @equip_type_weapon != []) ?
  272.       @equip_type_weapon : (@equip_type != nil && @equip_type != []) ?
  273.       @equip_type : KGC::EEX_EQUIP_TYPE
  274.     if type[0] != 0
  275.       type.insert(0, 0)
  276.     end
  277.     return type
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ○ 装備タイプ設定
  281.   #--------------------------------------------------------------------------
  282.   def equip_type=(type)
  283.     @equip_type = type
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ○ 装備品タイプ変更適用
  287.   #--------------------------------------------------------------------------
  288.   def equip_type_apply
  289.     last_equip_type = self.equip_type.dup
  290.     if self.weapon_id > 0
  291.       @equip_type_weapon = $data_weapons[self.weapon_id].equip_type
  292.     else
  293.       @equip_type_weapon = nil
  294.     end
  295.     # 装備不可能になったものは外す
  296.     for i in (self.two_swords? ? self.ts_number : 1)...last_equip_type.size
  297.       next if @armor_id[i] == nil
  298.       if (armor = $data_armors[@armor_id[i]]) != nil &&
  299.           self.equip_type[i] != armor.kind + 1
  300.         self.equip(i, 0)
  301.       end
  302.     end
  303.     @armor_id = @armor_id[0...self.equip_type.size]
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ○ 最大EP取得
  307.   #--------------------------------------------------------------------------
  308.   def max_ep
  309.     formula = KGC::EEX_EP_FORMULA.gsub(/lv/i) {"@level"}
  310.     return [[Integer(eval(formula)), KGC::EEX_EP_MIN].max, KGC::EEX_EP_MAX].min
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ○ EP取得
  314.   #--------------------------------------------------------------------------
  315.   def ep
  316.     n = 0
  317.     equip_item_list.each { |item| n += item.ep_cost }
  318.     return self.max_ep - n
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ○ 二刀流状態取得
  322.   #--------------------------------------------------------------------------
  323.   def two_swords?
  324.     return @two_swords
  325.   end
  326.   #--------------------------------------------------------------------------
  327.   # ○ 二刀流設定
  328.   #--------------------------------------------------------------------------
  329.   def two_swords=(value)
  330.     # 二刀流になった場合
  331.     if value && !@two_swords
  332.       # 両手持ちを解除
  333.       self.two_handed = false
  334.       # 二刀流で装備不可能になる防具を外す
  335.       for i in 1...self.ts_number
  336.         self.equip(i, 0)
  337.       end
  338.     # 二刀流が解除された場合
  339.     elsif !value && @two_swords
  340.       # 元々防具であった部分の武器を外す
  341.       for i in 1...self.ts_number
  342.         self.equip(i, 0)
  343.         @weapons[i] = 0
  344.         @weapon_fix[i] = false
  345.       end
  346.     end
  347.     @two_swords = value
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ○ 二刀流武器数取得
  351.   #--------------------------------------------------------------------------
  352.   def ts_number
  353.     return @ts_number != nil ? @ts_number : KGC::EEX_TS_NUMBER
  354.   end
  355.   #--------------------------------------------------------------------------
  356.   # ○ 二刀流武器数設定
  357.   #--------------------------------------------------------------------------
  358.   def ts_number=(number)
  359.     @ts_number = number
  360.   end
  361.   #--------------------------------------------------------------------------
  362.   # ○ 両手持ち状態取得
  363.   #--------------------------------------------------------------------------
  364.   def two_handed?
  365.     return @two_handed
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ○ 両手持ち設定
  369.   #--------------------------------------------------------------------------
  370.   def two_handed=(value)
  371.     # 両手持ちになった場合
  372.     if value && !@two_handed
  373.       # 二刀流を解除
  374.       self.two_swords = false
  375.       # 最初の防具を外す
  376.       self.equip(1, 0)
  377.       # 最初の防具を固定
  378.       @armor_fix[1] = true
  379.     # 両手持ちが解除された場合
  380.     elsif !value && @two_handed
  381.       # 最初の防具固定を解除
  382.       @armor_fix[1] = false
  383.     end
  384.     @two_handed = value
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ○ 攻撃回数取得
  388.   #--------------------------------------------------------------------------
  389.   def attack_count
  390.     @attack_count = 0 if @attack_count == nil
  391.     return @attack_count
  392.   end
  393.   #--------------------------------------------------------------------------
  394.   # ○ 攻撃回数設定
  395.   #--------------------------------------------------------------------------
  396.   def attack_count=(value)
  397.     @attack_count = value
  398.   end
  399.   #--------------------------------------------------------------------------
  400.   # ● 武器ID の取得
  401.   #--------------------------------------------------------------------------
  402.   def weapon_id(type = 0)
  403.     @weapons[type] = 0 if @weapons[type] == nil
  404.     return @weapons[type]
  405.   end
  406.   #--------------------------------------------------------------------------
  407.   # ● 武器ID の設定
  408.   #--------------------------------------------------------------------------
  409.   def weapon_id=(n)
  410.     @weapons[0] = n
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ○ 武器ID の設定(二刀流用)
  414.   #--------------------------------------------------------------------------
  415.   def set_weapon(type, n)
  416.     @weapons[type] = n
  417.   end
  418.   #--------------------------------------------------------------------------
  419.   # ○ 武器リスト取得
  420.   #--------------------------------------------------------------------------
  421.   def equip_weapon_list
  422.     weapons = []
  423.     if two_swords?
  424.       (0...ts_number).each { |i|
  425.         weapons << $data_weapons[weapon_id(i)]
  426.       }
  427.     else
  428.       weapons << $data_weapons[weapon_id]
  429.     end
  430.     return weapons.compact
  431.   end
  432.   #--------------------------------------------------------------------------
  433.   # ○ 防具リスト取得
  434.   #--------------------------------------------------------------------------
  435.   def equip_armor_list
  436.     armors = []
  437.     (1...equip_type.size).each { |i|
  438.       armors << $data_armors[armor_id[i]]
  439.     }
  440.     return armors.compact
  441.   end
  442.   #--------------------------------------------------------------------------
  443.   # ○ 装備品リストの取得
  444.   #--------------------------------------------------------------------------
  445.   def equip_item_list
  446.     return equip_weapon_list + equip_armor_list
  447.   end
  448.   #--------------------------------------------------------------------------
  449.   # ○ 防具ID の取得
  450.   #--------------------------------------------------------------------------
  451.   def armor_id
  452.     type = equip_type.dup
  453.     for i in 1...type.size
  454.       if @armor_id[i] == nil
  455.         @armor_id[i] = 0
  456.       end
  457.     end
  458.     return @armor_id
  459.   end
  460.   #--------------------------------------------------------------------------
  461.   # ● 防具ID 1 の取得(互換用)
  462.   #--------------------------------------------------------------------------
  463.   def armor1_id
  464.     return armor_id[1]
  465.   end
  466.   #--------------------------------------------------------------------------
  467.   # ● 防具ID 1 の設定(互換用)
  468.   #--------------------------------------------------------------------------
  469.   def armor1_id=(id)
  470.     @armor_id[1] = id
  471.   end
  472.   #--------------------------------------------------------------------------
  473.   # ● 防具ID 2 の取得(互換用)
  474.   #--------------------------------------------------------------------------
  475.   def armor2_id
  476.     return armor_id[2]
  477.   end
  478.   #--------------------------------------------------------------------------
  479.   # ● 防具ID 2 の設定(互換用)
  480.   #--------------------------------------------------------------------------
  481.   def armor2_id=(id)
  482.     @armor_id[2] = id
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ● 防具ID 3 の取得(互換用)
  486.   #--------------------------------------------------------------------------
  487.   def armor3_id
  488.     return armor_id[3]
  489.   end
  490.   #--------------------------------------------------------------------------
  491.   # ● 防具ID 3 の設定(互換用)
  492.   #--------------------------------------------------------------------------
  493.   def armor3_id=(id)
  494.     @armor_id[3] = id
  495.   end
  496.   #--------------------------------------------------------------------------
  497.   # ● 防具ID 4 の取得(互換用)
  498.   #--------------------------------------------------------------------------
  499.   def armor4_id
  500.     return armor_id[4]
  501.   end
  502.   #--------------------------------------------------------------------------
  503.   # ● 防具ID 4 の設定(互換用)
  504.   #--------------------------------------------------------------------------
  505.   def armor4_id=(id)
  506.     @armor_id[4] = id
  507.   end
  508.   #--------------------------------------------------------------------------
  509.   # ● 基本攻撃力の取得
  510.   #--------------------------------------------------------------------------
  511.   def base_atk
  512.     n = 0
  513.     if $game_temp.in_battle
  514.       if self.two_swords?  # 二刀流
  515.         if @current_action.kind == 1  # スキルなら全武器の合計
  516.           equip_weapon_list.each { |weapon| n += weapon.atk }
  517.         else                          # スキル以外なら攻撃回数で変化
  518.           weapon = $data_weapons[self.weapon_id(@attack_count)]
  519.           n = weapon != nil ? weapon.atk : 0
  520.         end
  521.       else                 # 通常
  522.         weapon = $data_weapons[self.weapon_id]
  523.         n = weapon != nil ? weapon.atk : 0
  524.         n *= 1.5 if self.two_handed?
  525.       end
  526.     else
  527.       if self.two_swords?  # 二刀流
  528.         equip_weapon_list.each { |weapon| n += weapon.atk }
  529.       else                 # 通常
  530.         weapon = $data_weapons[self.weapon_id]
  531.         n = weapon != nil ? weapon.atk : 0
  532.         n *= 1.5 if self.two_handed?
  533.       end
  534.     end
  535.     return Integer(n)
  536.   end
  537.   #--------------------------------------------------------------------------
  538.   # ● 属性補正値の取得
  539.   #     element_id : 属性 ID
  540.   #--------------------------------------------------------------------------
  541.   def element_rate(element_id)
  542.     # 属性有効度に対応する数値を取得
  543.     table = [0,200,150,100,50,0,-100]
  544.     result = table[$data_classes[@class_id].element_ranks[element_id]]
  545.     # 防具でこの属性が防御されている場合は半減
  546.     equip_armor_list.each { |armor|
  547.       result /= 2 if armor.guard_element_set.include?(element_id)
  548.     }
  549.     # ステートでこの属性が防御されている場合は半減
  550.     @states.each { |i|
  551.       result /= 2 if $data_states[i].guard_element_set.include?(element_id)
  552.     }
  553.     return result
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● ステート防御判定
  557.   #     state_id : ステート ID
  558.   #--------------------------------------------------------------------------
  559.   def state_guard?(state_id)
  560.     equip_armor_list.each { |armor|
  561.       return true if armor.guard_state_set.include?(state_id)
  562.     }
  563.     return false
  564.   end
  565.   #--------------------------------------------------------------------------
  566.   # ● 通常攻撃の属性取得
  567.   #--------------------------------------------------------------------------
  568.   unless $imported["SetAttackElement"]
  569.   def element_set
  570.     elements = []
  571.     equip_weapon_list.each { |w| elements |= w.element_set }
  572.     return elements
  573.   end
  574.   end
  575.   #--------------------------------------------------------------------------
  576.   # ● 通常攻撃のステート変化 (+) 取得
  577.   #--------------------------------------------------------------------------
  578.   def plus_state_set
  579.     state_set = []
  580.     equip_weapon_list.each { |w| state_set |= w.plus_state_set }
  581.     return state_set
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ● 通常攻撃のステート変化 (-) 取得
  585.   #--------------------------------------------------------------------------
  586.   def minus_state_set
  587.     state_set = []
  588.     equip_weapon_list.each { |w| state_set |= w.minus_state_set }
  589.     return state_set
  590.   end
  591.   #--------------------------------------------------------------------------
  592.   # ○ 装備品の能力値修正の取得
  593.   #--------------------------------------------------------------------------
  594.   def equipment_parameter(type)
  595.     param = ["maxhp", "maxsp", "str", "dex", "agi", "int"]
  596.     n = 0
  597.     equip_item_list.each { |e| n += eval("e.#{param[type]}_plus") }
  598.     return n
  599.   end

  600.   unless $imported["LimitBreak"]
  601.   #--------------------------------------------------------------------------
  602.   # ● 基本腕力の取得
  603.   #--------------------------------------------------------------------------
  604.   def base_str
  605.     n = parameter(2)
  606.     n += equipment_parameter(2)
  607.     return [[n, 1].max, 999].min
  608.   end
  609.   #--------------------------------------------------------------------------
  610.   # ● 基本器用さの取得
  611.   #--------------------------------------------------------------------------
  612.   def base_dex
  613.     n = parameter(3)
  614.     n += equipment_parameter(3)
  615.     return [[n, 1].max, 999].min
  616.   end
  617.   #--------------------------------------------------------------------------
  618.   # ● 基本素早さの取得
  619.   #--------------------------------------------------------------------------
  620.   def base_agi
  621.     n = parameter(4)
  622.     n += equipment_parameter(4)
  623.     return [[n, 1].max, 999].min
  624.   end
  625.   #--------------------------------------------------------------------------
  626.   # ● 基本魔力の取得
  627.   #--------------------------------------------------------------------------
  628.   def base_int
  629.     n = parameter(5)
  630.     n += equipment_parameter(5)
  631.     return [[n, 1].max, 999].min
  632.   end
  633.   end

  634.   #--------------------------------------------------------------------------
  635.   # ● 基本物理防御の取得
  636.   #--------------------------------------------------------------------------
  637.   def base_pdef
  638.     n = 0
  639.     equip_item_list.each { |item| n += item.pdef }
  640.     return n
  641.   end
  642.   #--------------------------------------------------------------------------
  643.   # ● 基本魔法防御の取得
  644.   #--------------------------------------------------------------------------
  645.   def base_mdef
  646.     n = 0
  647.     equip_item_list.each { |item| n += item.mdef }
  648.     return n
  649.   end
  650.   #--------------------------------------------------------------------------
  651.   # ● 基本回避修正の取得
  652.   #--------------------------------------------------------------------------
  653.   def base_eva
  654.     n = 0
  655.     equip_armor_list.each { |armor| n += armor.eva }
  656.     return n
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● 装備の変更
  660.   #     equip_type : 装備タイプ
  661.   #     id         : 武器 or 防具 ID  (0 なら装備解除)
  662.   #--------------------------------------------------------------------------
  663.   def equip(equip_type, id)
  664.     case equip_type
  665.     when (self.two_swords? ? 0...self.ts_number : 0)  # 武器
  666.       if id == 0 || $game_party.weapon_number(id) > 0
  667.         # EP判定
  668.         if KGC::EEX_USE_EP && id > 0
  669.           # EP不足の場合は戻る
  670.           if $data_weapons[id].ep_cost > self.ep
  671.             return
  672.           end
  673.         end
  674.         # 二刀流以外で両手持ち武器を装備する場合
  675.         if !self.two_swords? && id > 0 &&
  676.             $data_weapons[id].element_set.include?($game_special_elements["two_handed"])
  677.           # 最初の防具を外す
  678.           self.equip(1, 0)
  679.         end
  680.         $game_party.gain_weapon(self.weapon_id(equip_type), 1)
  681.         self.set_weapon(equip_type, id)
  682.         $game_party.lose_weapon(id, 1)
  683.       end
  684.     #when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
  685.     else  # 防具
  686.       # 二刀流以外で、両手持ち武器を装備しており、最初の防具を変更する場合は戻る
  687.       if !self.two_swords? && equip_type == 1 && self.weapon_id > 0 &&
  688.           $data_weapons[self.weapon_id].element_set.include?($game_special_elements["two_handed"])
  689.         return
  690.       end
  691.       if id == 0 || $game_party.armor_number(id) > 0
  692.         # EP判定
  693.         if KGC::EEX_USE_EP && id > 0
  694.           # EP不足の場合は戻る
  695.           if $data_armors[id].ep_cost > self.ep
  696.             return
  697.           end
  698.         end
  699.         update_auto_state(@armor_id[equip_type] != nil ?
  700.           $data_armors[@armor_id[equip_type]] : nil, $data_armors[id])
  701.         if @armor_id[equip_type] != nil && @armor_id[equip_type] > 0
  702.           $game_party.gain_armor(@armor_id[equip_type], 1)
  703.         end
  704.         @armor_id[equip_type] = id
  705.         $game_party.lose_armor(id, 1)
  706.       end
  707.     end
  708.   end
  709.   #--------------------------------------------------------------------------
  710.   # ● 装備固定判定
  711.   #     equip_type : 装備タイプ
  712.   #--------------------------------------------------------------------------
  713.   def equip_fix?(equip_type)
  714.     case equip_type
  715.     when (self.two_swords? ? 0...self.ts_number : 0)  # 武器
  716.       return @weapon_fix[equip_type]
  717.     #when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
  718.     else  # 防具
  719.       return @armor_fix[equip_type]
  720.     end
  721.     return false
  722.   end
  723.   #--------------------------------------------------------------------------
  724.   # ● 通常攻撃 攻撃側アニメーション ID の取得
  725.   #--------------------------------------------------------------------------
  726.   def animation1_id
  727.     if self.two_swords?
  728.       weapon = $data_weapons[self.weapon_id(self.attack_count)]
  729.       return weapon != nil ? weapon.animation1_id : 0
  730.     else
  731.       weapon = $data_weapons[self.weapon_id]
  732.       return weapon != nil ? weapon.animation1_id : 0
  733.     end
  734.   end
  735.   #--------------------------------------------------------------------------
  736.   # ● 通常攻撃 対象側アニメーション ID の取得
  737.   #--------------------------------------------------------------------------
  738.   def animation2_id
  739.     if self.two_swords?
  740.       weapon = $data_weapons[self.weapon_id(self.attack_count)]
  741.       return weapon != nil ? weapon.animation2_id : 0
  742.     else
  743.       weapon = $data_weapons[self.weapon_id]
  744.       return weapon != nil ? weapon.animation2_id : 0
  745.     end
  746.   end
  747.   #--------------------------------------------------------------------------
  748.   # ● クラス ID の変更
  749.   #     class_id : 新しいクラス ID
  750.   #--------------------------------------------------------------------------
  751.   def class_id=(class_id)
  752.     if $data_classes[class_id] != nil
  753.       @class_id = class_id
  754.       # 装備できなくなったアイテムを外す
  755.       if self.two_swords?
  756.         for i in 0...self.ts_number
  757.           equip(i, 0) unless equippable?($data_weapons[self.weapon_id(i)])
  758.         end
  759.       else
  760.         equip(0, 0) unless equippable?($data_weapons[self.weapon_id])
  761.       end
  762.       for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
  763.         equip(i, 0) unless equippable?($data_armors[self.armor_id[i]])
  764.       end
  765.     end
  766.   end
  767. end

  768. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  769. #==============================================================================
  770. # ■ Window_EquipLeft
  771. #==============================================================================

  772. unless $imported["EquipAlter"]
  773. class Window_EquipLeft < Window_Base
  774.   #--------------------------------------------------------------------------
  775.   # ● リフレッシュ
  776.   #--------------------------------------------------------------------------
  777.   alias refresh_KGC_EquipExtension refresh
  778.   def refresh
  779.     # 元の処理を実行
  780.     refresh_KGC_EquipExtension

  781.     if KGC::EEX_USE_EP
  782.       if KGC::EEX_DRAW_EP_MAX
  783.         self.contents.font.color = system_color
  784.         self.contents.draw_text(140, 0, 32, 32, KGC::EEX_EP_NAME)
  785.         self.contents.font.color = @actor.ep == 0 ? knockout_color : normal_color
  786.         self.contents.draw_text(172, 0, 24, 32, @actor.ep.to_s, 2)
  787.         self.contents.font.color = normal_color
  788.         self.contents.draw_text(196, 0, 16, 32, "/", 1)
  789.         self.contents.draw_text(212, 0, 24, 32, @actor.max_ep.to_s, 2)
  790.       else
  791.         self.contents.font.color = system_color
  792.         self.contents.draw_text(180, 0, 32, 32, KGC::EEX_EP_NAME)
  793.         self.contents.font.color = @actor.ep == 0 ? knockout_color : normal_color
  794.         self.contents.draw_text(212, 0, 24, 32, @actor.ep.to_s, 2)
  795.       end
  796.     end
  797.   end
  798. end
  799. end

  800. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  801. #==============================================================================
  802. # ■ Window_EquipRight
  803. #==============================================================================

  804. class Window_EquipRight < Window_Selectable
  805.   #--------------------------------------------------------------------------
  806.   # ● タイプの取得
  807.   #--------------------------------------------------------------------------
  808.   def type
  809.     if self.index >= @equip_type.size
  810.       self.index = @equip_type.size - 1
  811.     end
  812.     return @equip_type[self.index]
  813.   end
  814.   #--------------------------------------------------------------------------
  815.   # ● リフレッシュ
  816.   #--------------------------------------------------------------------------
  817.   def refresh
  818.     # 装備タイプを取得
  819.     @actor.equip_type_apply
  820.     @equip_type = @actor.equip_type.dup
  821.     if @actor.two_swords?
  822.       for i in [email protected]_number
  823.         @equip_type[i] = 0
  824.       end
  825.     end
  826.     if self.index >= @equip_type.size
  827.       self.index = @equip_type.size - 1
  828.     end
  829.     # ウィンドウ内容を作成
  830.     self.contents.dispose
  831.     self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
  832.     [url=home.php?mod=space&uid=2653549]@data[/url] = []
  833.     if @actor.two_swords?
  834.       for i in [email protected]_number
  835.         @data.push($data_weapons[@actor.weapon_id(i)])
  836.       end
  837.       for i in @actor.ts_number...@equip_type.size
  838.         @data.push($data_armors[@actor.armor_id[i]])
  839.       end
  840.     else
  841.       @data.push($data_weapons[@actor.weapon_id])
  842.       for i in 1...@equip_type.size
  843.         @data.push($data_armors[@actor.armor_id[i]])
  844.       end
  845.     end
  846.     @item_max = @data.size
  847.     self.contents.font.color = system_color
  848.     for i in 0...@equip_type.size
  849.       if @actor.two_swords? && i < @actor.ts_number
  850.         self.contents.draw_text(4, 32 * i, 92, 32, KGC::EEX_EQUIP_NAME[0])
  851.       else
  852.         next if KGC::EEX_EQUIP_NAME[@actor.equip_type[i]] == nil
  853.         self.contents.draw_text(4, 32 * i, 92, 32, KGC::EEX_EQUIP_NAME[@actor.equip_type[i]])
  854.       end
  855.     end
  856.     for i in [email protected]
  857.       self.contents.font.color = normal_color
  858.       draw_item_name(@data[i], 92, 32 * i)
  859.       if KGC::EEX_USE_EP && @data[i] != nil
  860.         self.contents.font.color = KGC::EEX_EP_COLOR
  861.         self.contents.draw_text(92, 32 * i, 240, 32, @data[i].ep_cost.to_s, 2)
  862.       end
  863.     end
  864.   end
  865. end

  866. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  867. #==============================================================================
  868. # ■ Window_EquipItem
  869. #==============================================================================

  870. class Window_EquipItem < Window_Selectable
  871.   #--------------------------------------------------------------------------
  872.   # ● 項目の描画
  873.   #     index : 項目番号
  874.   #--------------------------------------------------------------------------
  875.   alias draw_item_KGC_EquipExtension draw_item
  876.   def draw_item(index)
  877.     # 元の処理を実行
  878.     draw_item_KGC_EquipExtension(index)

  879.     item = @data[index]
  880.     if KGC::EEX_USE_EP && item != nil
  881.       x = 4 + index % 2 * (288 + 32)
  882.       y = index / 2 * 32
  883.       self.contents.font.color = KGC::EEX_EP_COLOR
  884.       self.contents.draw_text(x + 216, y, 24, 32, item.ep_cost.to_s, 2)
  885.     end
  886.   end
  887. end

  888. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  889. #==============================================================================
  890. # ■ Window_Status
  891. #==============================================================================

  892. class Window_Status < Window_Base
  893.   #--------------------------------------------------------------------------
  894.   # ● リフレッシュ
  895.   #--------------------------------------------------------------------------
  896.   def refresh
  897.     self.contents.clear
  898.     if $imported["StatusAlter"]
  899.       draw_actor_graphic(@actor, 4, 48)
  900.     else
  901.       draw_actor_graphic(@actor, 40, 112)
  902.     end
  903.     draw_actor_name(@actor, 4, 0)
  904.     draw_actor_class(@actor, 4 + 144, 0)
  905.     draw_actor_level(@actor, 96, 32)
  906.     draw_actor_state(@actor, 96, 64)
  907.     draw_actor_hp(@actor, 96, 112, 172)
  908.     draw_actor_sp(@actor, 96, 144, 172)
  909.     draw_actor_parameter(@actor, 96, 192, 0)
  910.     draw_actor_parameter(@actor, 96, 224, 1)
  911.     draw_actor_parameter(@actor, 96, 256, 2)
  912.     draw_actor_parameter(@actor, 96, 304, 3)
  913.     draw_actor_parameter(@actor, 96, 336, 4)
  914.     draw_actor_parameter(@actor, 96, 368, 5)
  915.     draw_actor_parameter(@actor, 96, 400, 6)
  916.     draw_actor_parameter(@actor, 96, 440, 7)
  917.     draw_actor_parameter(@actor, 96, 480, 8)
  918.     draw_actor_parameter(@actor, 96, 500, 9)
  919.     self.contents.font.color = system_color
  920.     self.contents.draw_text(320, 48, 80, 32, "EXP")
  921.     self.contents.draw_text(320, 80, 80, 32, "NEXT")
  922.     self.contents.font.color = normal_color
  923.     self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
  924.     self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
  925.     if KGC::EEX_USE_EP
  926.       self.contents.font.color = system_color
  927.       self.contents.draw_text(468, 0, 48, 32, KGC::EEX_EP_NAME)
  928.       self.contents.font.color = @actor.ep == 0 ? knockout_color : normal_color
  929.       self.contents.draw_text(516, 0, 32, 32, @actor.ep.to_s, 2)
  930.       self.contents.font.color = normal_color
  931.       self.contents.draw_text(548, 0, 24, 32, "/", 1)
  932.       self.contents.draw_text(572, 0, 32, 32, @actor.max_ep.to_s, 2)
  933.     end
  934.     self.contents.font.color = system_color
  935.     self.contents.draw_text(320, 160, 96, 32, "装備")
  936.     if @actor.two_swords?
  937.       for i in [email protected]_number
  938.         draw_item_name($data_weapons[@actor.weapon_id(i)], 320 + 16, 192 + 32 * i)
  939.       end
  940.       for i in @[email protected]_type.size
  941.         draw_item_name($data_armors[ @actor.armor_id[i] ], 320 + 16, 192 + 32 * i)
  942.       end
  943.     else
  944.       draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 192)
  945.       for i in [email protected]_type.size
  946.         draw_item_name($data_armors[ @actor.armor_id[i] ], 320 + 16, 192 + 32 * i)
  947.       end
  948.     end
  949.   end
  950. end

  951. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  952. #==============================================================================
  953. # ■ Window_ShopStatus
  954. #==============================================================================

  955. class Window_ShopStatus < Window_Base
  956.   #--------------------------------------------------------------------------
  957.   # ● リフレッシュ
  958.   #--------------------------------------------------------------------------
  959.   unless $imported["LargeParty"]
  960.   def refresh
  961.     self.contents.clear
  962.     if @item == nil
  963.       return
  964.     end
  965.     case @item
  966.     when RPG::Item
  967.       number = $game_party.item_number(@item.id)
  968.     when RPG::Weapon
  969.       number = $game_party.weapon_number(@item.id)
  970.     when RPG::Armor
  971.       number = $game_party.armor_number(@item.id)
  972.     end
  973.     self.contents.font.size = 22
  974.     self.contents.font.color = system_color
  975.     self.contents.draw_text(4, 0, 200, 32, "持っている数")
  976.     self.contents.font.color = normal_color
  977.     self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
  978.     return if @item.is_a?(RPG::Item)
  979.     self.contents.font.size = 18 if $imported["HelpExtension"]
  980.     # 装備品追加情報
  981.     for i in 0...$game_party.actors.size
  982.       # アクターを取得
  983.       actor = $game_party.actors[i]
  984.       # 装備可能なら通常文字色に、不可能なら無効文字色に設定
  985.       if actor.equippable?(@item)
  986.         self.contents.font.color = normal_color
  987.       else
  988.         self.contents.font.color = disabled_color
  989.       end
  990.       # アクターの名前を描画
  991.       if $imported["HelpExtension"]
  992.         self.contents.draw_text(4, 32 + 44 * i, 120, 32, actor.name)
  993.       else
  994.         self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
  995.       end
  996.       # 現在の装備品を取得
  997.       if @item.is_a?(RPG::Weapon)
  998.         item1 = $data_weapons[actor.weapon_id]
  999.       else
  1000.         for j in 1...actor.equip_type.size
  1001.           if actor.equip_type[j] == @item.kind + 1
  1002.             item1 = $data_armors[actor.armor_id[j]]
  1003.             break
  1004.           end
  1005.         end
  1006.       end
  1007.       # 装備可能な場合
  1008.       if actor.equippable?(@item)
  1009.         # 武器の場合
  1010.         if @item.is_a?(RPG::Weapon)
  1011.           atk1 = item1 != nil ? item1.atk : 0
  1012.           atk2 = @item != nil ? @item.atk : 0
  1013.           change = atk2 - atk1
  1014.         end
  1015.         # 防具の場合
  1016.         if @item.is_a?(RPG::Armor)
  1017.           pdef1 = item1 != nil ? item1.pdef : 0
  1018.           mdef1 = item1 != nil ? item1.mdef : 0
  1019.           pdef2 = @item != nil ? @item.pdef : 0
  1020.           mdef2 = @item != nil ? @item.mdef : 0
  1021.           change = pdef2 - pdef1 + mdef2 - mdef1
  1022.         end
  1023.         # パラメータの変化値を描画
  1024.         if $imported["HelpExtension"]
  1025.           self.contents.draw_text(124, 32 + 44 * i, 112, 32,
  1026.             sprintf("%+d", change), 2)
  1027.         else
  1028.           self.contents.draw_text(124, 64 + 64 * i, 112, 32,
  1029.             sprintf("%+d", change), 2)
  1030.         end
  1031.       end
  1032.       # アイテムを描画
  1033.       if item1 != nil
  1034.         x = 4
  1035.         if $imported["HelpExtension"]
  1036.           y = 32 + 44 * i + 22
  1037.         else
  1038.           y = 64 + 64 * i + 32
  1039.         end
  1040.         icon = RPG::Cache.icon(item1.icon_name)
  1041.         opacity = self.contents.font.color == normal_color ? 255 : 128
  1042.         self.contents.blt(x, y + 4, icon, icon.rect, opacity)
  1043.         self.contents.draw_text(x + 28, y, 212, 32, item1.name)
  1044.       end
  1045.     end
  1046.   end
  1047.   end
  1048. end

  1049. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1050. #==============================================================================
  1051. # ■ Window_EquipExtendControl
  1052. #------------------------------------------------------------------------------
  1053. #  装備画面で、操作を選択するウィンドウです。
  1054. #==============================================================================

  1055. class Window_EquipExtendControl < Window_Selectable
  1056.   #--------------------------------------------------------------------------
  1057.   # ● オブジェクト初期化
  1058.   #--------------------------------------------------------------------------
  1059.   def initialize
  1060.     super(0, 0, 640, 64)
  1061.     self.contents = Bitmap.new(width - 32, height - 32)
  1062.     @commands = [KGC::EEX_EQUIP_EX_COMMAND_EQUIP, KGC::EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP, KGC::EEX_EQUIP_EX_COMMAND_ALL_RELEASE]
  1063.     @item_max = @commands.size
  1064.     @column_max = @commands.size
  1065.     @item_width = (width - 32) / @commands.size
  1066.     self.z = 1000
  1067.     self.index = 0
  1068.     refresh
  1069.   end
  1070.   #--------------------------------------------------------------------------
  1071.   # ● リフレッシュ
  1072.   #--------------------------------------------------------------------------
  1073.   def refresh
  1074.     for i in [email protected]
  1075.       rect = Rect.new(@item_width * i, 0, @item_width, 32)
  1076.       self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  1077.       self.contents.font.color = system_color
  1078.       self.contents.draw_text(rect, @commands[i], 1)
  1079.     end
  1080.   end
  1081.   #--------------------------------------------------------------------------
  1082.   # ● カーソルの矩形更新
  1083.   #--------------------------------------------------------------------------
  1084.   def update_cursor_rect
  1085.     if index != -1
  1086.       self.cursor_rect.set(@item_width * index, 0, @item_width, 32)
  1087.     end
  1088.   end
  1089.   #--------------------------------------------------------------------------
  1090.   # ● ヘルプテキスト更新
  1091.   #--------------------------------------------------------------------------
  1092.   def update_help
  1093.     case self.index
  1094.     when 0
  1095.       @help_window.set_text(KGC::EEX_EQUIP_EX_HELP_EQUIP)
  1096.     when 1
  1097.       @help_window.set_text(KGC::EEX_EQUIP_EX_HELP_STRONGEST_EQUIP)
  1098.     when 2
  1099.       @help_window.set_text(KGC::EEX_EQUIP_EX_HELP_ALL_RELEASE)
  1100.     end
  1101.   end
  1102. end

  1103. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1104. #==============================================================================
  1105. # ■ Window_EquipExtendStatus
  1106. #------------------------------------------------------------------------------
  1107. #  拡張装備画面で、アクターのパラメータ変化を表示するウィンドウです。
  1108. #==============================================================================

  1109. class Window_EquipExtendStatus < Window_EquipLeft
  1110.   #--------------------------------------------------------------------------
  1111.   # ● 公開インスタンス変数
  1112.   #--------------------------------------------------------------------------
  1113.   attr_accessor :new_equip                # 選択中の装備品
  1114.   attr_accessor :last_str                 # 変更前の腕力
  1115.   attr_accessor :last_dex                 # 変更前の器用さ
  1116.   attr_accessor :last_agi                 # 変更前の素早さ
  1117.   attr_accessor :last_int                 # 変更前の魔力
  1118.   #--------------------------------------------------------------------------
  1119.   # ● オブジェクト初期化
  1120.   #--------------------------------------------------------------------------
  1121.   def initialize(actor)
  1122.     super(actor)
  1123.     self.back_opacity = 160 if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1124.     self.x = 368
  1125.     self.y = 288
  1126.     self.z = 1000
  1127.     # 初期能力値を保存
  1128.     @new_equip = nil
  1129.     @last_equip = nil
  1130.     @last_str = @actor.str
  1131.     @last_dex = @actor.dex
  1132.     @last_agi = @actor.agi
  1133.     @last_int = @actor.int
  1134.   end
  1135.   #--------------------------------------------------------------------------
  1136.   # ● リフレッシュ
  1137.   #--------------------------------------------------------------------------
  1138.   def refresh
  1139.     self.contents.clear
  1140.     draw_actor_name(@actor, 4, 0)
  1141.     draw_actor_level(@actor, 4, 32)
  1142.     if KGC::EEX_USE_EP
  1143.       if KGC::EEX_DRAW_EP_MAX
  1144.         self.contents.font.color = system_color
  1145.         self.contents.draw_text(140, 0, 32, 32, KGC::EEX_EP_NAME)
  1146.         self.contents.font.color = @actor.ep == 0 ? knockout_color : normal_color
  1147.         self.contents.draw_text(172, 0, 24, 32, @actor.ep.to_s, 2)
  1148.         self.contents.font.color = normal_color
  1149.         self.contents.draw_text(196, 0, 16, 32, "/", 1)
  1150.         self.contents.draw_text(212, 0, 24, 32, @actor.max_ep.to_s, 2)
  1151.       else
  1152.         self.contents.font.color = system_color
  1153.         self.contents.draw_text(180, 0, 32, 32, KGC::EEX_EP_NAME)
  1154.         self.contents.font.color = @actor.ep == 0 ? knockout_color : normal_color
  1155.         self.contents.draw_text(212, 0, 24, 32, @actor.ep.to_s, 2)
  1156.       end
  1157.     end
  1158.     self.contents.font.color = system_color
  1159.     self.contents.draw_text(4, 64, 72, 32, $data_system.words.atk)
  1160.     self.contents.draw_text(4, 96, 72, 32, $data_system.words.pdef)
  1161.     self.contents.draw_text(4, 128, 72, 32, $data_system.words.mdef)
  1162.     self.contents.draw_text(120, 32, 72, 32, $data_system.words.str)
  1163.     self.contents.draw_text(120, 64, 72, 32, $data_system.words.dex)
  1164.     self.contents.draw_text(120, 96, 72, 32, $data_system.words.agi)
  1165.     self.contents.draw_text(120, 128, 72, 32, $data_system.words.int)

  1166.     if @new_atk != nil
  1167.       self.contents.font.color = @actor.atk > @new_atk ? text_color(2) :
  1168.         @actor.atk < @new_atk ? text_color(3) : normal_color
  1169.       self.contents.draw_text(80, 64, 36, 32, @new_atk.to_s, 2)
  1170.     else
  1171.       self.contents.font.color = normal_color
  1172.       self.contents.draw_text(80, 64, 36, 32, @actor.atk.to_s, 2)
  1173.     end
  1174.     if @new_pdef != nil
  1175.       self.contents.font.color = @actor.pdef > @new_pdef ? text_color(2) :
  1176.         @actor.pdef < @new_pdef ? text_color(3) : normal_color
  1177.       self.contents.draw_text(80, 96, 36, 32, @new_pdef.to_s, 2)
  1178.     else
  1179.       self.contents.font.color = normal_color
  1180.       self.contents.draw_text(80, 96, 36, 32, @actor.pdef.to_s, 2)
  1181.     end
  1182.     if @new_mdef != nil
  1183.       self.contents.font.color = @actor.mdef > @new_mdef ? text_color(2) :
  1184.         @actor.mdef < @new_mdef ? text_color(3) : normal_color
  1185.       self.contents.draw_text(80, 128, 36, 32, @new_mdef.to_s, 2)
  1186.     else
  1187.       self.contents.font.color = normal_color
  1188.       self.contents.draw_text(80, 128, 36, 32, @actor.mdef.to_s, 2)
  1189.     end
  1190.     if @new_str != nil
  1191.       self.contents.font.color = @last_str > @new_str ? text_color(2) :
  1192.         @last_str < @new_str ? text_color(3) : normal_color
  1193.       self.contents.draw_text(200, 32, 36, 32, @new_str.to_s, 2)
  1194.     else
  1195.       self.contents.font.color = normal_color
  1196.       self.contents.draw_text(200, 32, 36, 32, @actor.str.to_s, 2)
  1197.     end
  1198.     if @new_dex != nil
  1199.       self.contents.font.color = @last_dex > @new_dex ? text_color(2) :
  1200.         @last_dex < @new_dex ? text_color(3) : normal_color
  1201.       self.contents.draw_text(200, 64, 36, 32, @new_dex.to_s, 2)
  1202.     else
  1203.       self.contents.font.color = normal_color
  1204.       self.contents.draw_text(200, 64, 36, 32, @actor.dex.to_s, 2)
  1205.     end
  1206.     if @new_agi != nil
  1207.       self.contents.font.color = @last_agi > @new_agi ? text_color(2) :
  1208.         @last_agi < @new_agi ? text_color(3) : normal_color
  1209.       self.contents.draw_text(200, 96, 36, 32, @new_agi.to_s, 2)
  1210.     else
  1211.       self.contents.font.color = normal_color
  1212.       self.contents.draw_text(200, 96, 36, 32, @actor.agi.to_s, 2)
  1213.     end
  1214.     if @new_int != nil
  1215.       self.contents.font.color = @last_int > @new_int ? text_color(2) :
  1216.         @last_int < @new_int ? text_color(3) : normal_color
  1217.       self.contents.draw_text(200, 128, 36, 32, @new_int.to_s, 2)
  1218.     else
  1219.       self.contents.font.color = normal_color
  1220.       self.contents.draw_text(200, 128, 36, 32, @actor.int.to_s, 2)
  1221.     end
  1222.   end
  1223.   #--------------------------------------------------------------------------
  1224.   # ● 装備変更後のパラメータ設定
  1225.   #--------------------------------------------------------------------------
  1226.   def set_new_parameters(new_atk, new_pdef, new_mdef, new_st = [nil, nil, nil, nil])
  1227.     if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||
  1228.         @new_str != new_st[0] || @new_dex != new_st[1] ||
  1229.         @new_agi != new_st[2] || @new_int != new_st[3]
  1230.       @new_atk = new_atk
  1231.       @new_pdef = new_pdef
  1232.       @new_mdef = new_mdef
  1233.       @new_str = new_st[0]
  1234.       @new_dex = new_st[1]
  1235.       @new_agi = new_st[2]
  1236.       @new_int = new_st[3]
  1237.       @last_equip = @new_equip
  1238.       refresh
  1239.       return
  1240.     end
  1241.   end
  1242. end

  1243. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1244. #==============================================================================
  1245. # ■ Window_EquipExtendList
  1246. #------------------------------------------------------------------------------
  1247. #  拡張装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。
  1248. #==============================================================================

  1249. class Window_EquipExtendList < Window_Selectable
  1250.   #--------------------------------------------------------------------------
  1251.   # ● オブジェクト初期化
  1252.   #     actor : アクター
  1253.   #--------------------------------------------------------------------------
  1254.   def initialize(actor)
  1255.     super(0, 64, 368, 416)
  1256.     if $imported["HelpExtension"]
  1257.       self.y = 128
  1258.       self.height = 352
  1259.     end
  1260.     self.contents = Bitmap.new(width - 32, height - 32)
  1261.     self.back_opacity = 160 if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1262.     self.active = false
  1263.     @actor = actor
  1264.     refresh
  1265.     self.index = 0
  1266.   end
  1267.   #--------------------------------------------------------------------------
  1268.   # ● アイテムの取得
  1269.   #--------------------------------------------------------------------------
  1270.   def item
  1271.     return @data[self.index]
  1272.   end
  1273.   #--------------------------------------------------------------------------
  1274.   # ● タイプの取得
  1275.   #--------------------------------------------------------------------------
  1276.   def type
  1277.     return @equip_type[self.index]
  1278.   end
  1279.   #--------------------------------------------------------------------------
  1280.   # ● リフレッシュ
  1281.   #--------------------------------------------------------------------------
  1282.   def refresh
  1283.     # 装備タイプを取得
  1284.     @actor.equip_type_apply
  1285.     @equip_type = @actor.equip_type.dup
  1286.     if @actor.two_swords?
  1287.       for i in [email protected]_number
  1288.         @equip_type[i] = 0
  1289.       end
  1290.     end
  1291.     if self.index >= @equip_type.size
  1292.       self.index = @equip_type.size - 1
  1293.     end
  1294.     # アイテムを追加
  1295.     @data = []
  1296.     if @actor.two_swords?
  1297.       for i in [email protected]_number
  1298.         @data.push($data_weapons[@actor.weapon_id(i)])
  1299.       end
  1300.       for i in @actor.ts_number...@equip_type.size
  1301.         @data.push($data_armors[@actor.armor_id[i]])
  1302.       end
  1303.     else
  1304.       @data.push($data_weapons[@actor.weapon_id])
  1305.       for i in 1...@equip_type.size
  1306.         @data.push($data_armors[@actor.armor_id[i]])
  1307.       end
  1308.     end
  1309.     @equip_type = @equip_type[KGC::EEX_EQUIP_EX_INDEX...@equip_type.size]
  1310.     @data = @data[KGC::[email protected]]
  1311.     @item_max = @data.size
  1312.     # ウィンドウ内容を作成
  1313.     self.contents.dispose
  1314.     self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
  1315.     self.contents.font.color = system_color
  1316.     for i in 0...@equip_type.size
  1317.       if @equip_type[i] == 0 && @actor.two_swords? && i < @actor.ts_number
  1318.         self.contents.draw_text(4, 32 * i, 92, 32, KGC::EEX_EQUIP_NAME[0])
  1319.       else
  1320.         next if KGC::EEX_EQUIP_NAME[@equip_type[i]] == nil
  1321.         self.contents.draw_text(4, 32 * i, 92, 32, KGC::EEX_EQUIP_NAME[@equip_type[i]])
  1322.       end
  1323.     end
  1324.     for i in [email protected]
  1325.       self.contents.font.color = normal_color
  1326.       draw_item_name(@data[i], 92, 32 * i)
  1327.       if KGC::EEX_USE_EP && @data[i] != nil
  1328.         self.contents.font.color = KGC::EEX_EP_COLOR
  1329.         self.contents.draw_text(92, 32 * i, 240, 32, @data[i].ep_cost.to_s, 2)
  1330.       end
  1331.     end
  1332.   end
  1333.   #--------------------------------------------------------------------------
  1334.   # ● ヘルプテキスト更新
  1335.   #--------------------------------------------------------------------------
  1336.   def update_help
  1337.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  1338.   end
  1339. end

  1340. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1341. #==============================================================================
  1342. # ■ Window_EquipExtendItem
  1343. #------------------------------------------------------------------------------
  1344. #  拡張装備画面で、装備変更の候補となるアイテムの一覧を表示するウィンドウです。
  1345. #==============================================================================

  1346. class Window_EquipExtendItem < Window_Selectable
  1347.   #--------------------------------------------------------------------------
  1348.   # ● オブジェクト初期化
  1349.   #     actor      : アクター
  1350.   #     equip_type : 装備部位 (0~3)
  1351.   #--------------------------------------------------------------------------
  1352.   def initialize(actor, equip_type)
  1353.     super(368, 64, 320, 416)
  1354.     if $imported["HelpExtension"]
  1355.       self.y = 128
  1356.       self.height = 352
  1357.     end
  1358.     @actor = actor
  1359.     @equip_type = equip_type
  1360.     @column_max = 1
  1361.     refresh
  1362.     self.active = false
  1363.     self.index = -1
  1364.     self.back_opacity = 160 if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1365.   end
  1366.   #--------------------------------------------------------------------------
  1367.   # ● アイテムの取得
  1368.   #--------------------------------------------------------------------------
  1369.   def item
  1370.     return @data[self.index]
  1371.   end
  1372.   #--------------------------------------------------------------------------
  1373.   # ● リフレッシュ
  1374.   #--------------------------------------------------------------------------
  1375.   def refresh
  1376.     if self.contents != nil
  1377.       self.contents.dispose
  1378.       self.contents = nil
  1379.     end
  1380.     @data = []
  1381.     # 装備可能な武器を追加
  1382.     if @equip_type == 0
  1383.       for i in 1...$data_weapons.size
  1384.         weapon = $data_weapons[i]
  1385.         if $game_party.weapon_number(i) > 0 && @actor.equippable?(weapon)
  1386.           @data.push(weapon)
  1387.         end
  1388.       end
  1389.     end
  1390.     # 装備可能な防具を追加
  1391.     if @equip_type != 0
  1392.       for i in 1...$data_armors.size
  1393.         armor = $data_armors[i]
  1394.         if $game_party.armor_number(i) > 0 && @actor.equippable?(armor)
  1395.           if $data_armors[i].kind == @equip_type-1
  1396.             @data.push(armor)
  1397.           end
  1398.         end
  1399.       end
  1400.     end
  1401.     # 空白を追加
  1402.     @data.push(nil)
  1403.     # ビットマップを作成し、全項目を描画
  1404.     @item_max = @data.size
  1405.     self.contents = Bitmap.new(width - 32, row_max * 32)
  1406.     for i in 0...@item_max-1
  1407.       draw_item(i)
  1408.     end
  1409.   end
  1410.   #--------------------------------------------------------------------------
  1411.   # ● 項目の描画
  1412.   #     index : 項目番号
  1413.   #--------------------------------------------------------------------------
  1414.   def draw_item(index)
  1415.     item = @data[index]
  1416.     y = index * 32
  1417.     case item
  1418.     when RPG::Weapon
  1419.       number = $game_party.weapon_number(item.id)
  1420.     when RPG::Armor
  1421.       number = $game_party.armor_number(item.id)
  1422.     end
  1423.     icon = RPG::Cache.icon(item.icon_name)
  1424.     self.contents.blt(0, y + 4, icon, icon.rect)
  1425.     self.contents.font.color = normal_color
  1426.     self.contents.draw_text(32, y, 212, 32, item.name, 0)
  1427.     self.contents.draw_text(244, y, 16, 32, ":", 1)
  1428.     self.contents.draw_text(260, y, 24, 32, number.to_s, 2)
  1429.     if KGC::EEX_USE_EP && item != nil
  1430.       self.contents.font.color = KGC::EEX_EP_COLOR
  1431.       self.contents.draw_text(220, y, 24, 32, item.ep_cost.to_s, 2)
  1432.     end
  1433.   end
  1434.   #--------------------------------------------------------------------------
  1435.   # ● ヘルプテキスト更新
  1436.   #--------------------------------------------------------------------------
  1437.   def update_help
  1438.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  1439.   end
  1440. end

  1441. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1442. #==============================================================================
  1443. # ■ Interpreter (分割定義 3)
  1444. #==============================================================================

  1445. class Interpreter
  1446.   #--------------------------------------------------------------------------
  1447.   # ● 条件分岐
  1448.   #--------------------------------------------------------------------------
  1449.   def command_111
  1450.     # ローカル変数 result を初期化
  1451.     result = false
  1452.     # 条件判定
  1453.     case @parameters[0]
  1454.     when 0  # スイッチ
  1455.       result = ($game_switches[@parameters[1]] == (@parameters[2] == 0))
  1456.     when 1  # 変数
  1457.       value1 = $game_variables[@parameters[1]]
  1458.       if @parameters[2] == 0
  1459.         value2 = @parameters[3]
  1460.       else
  1461.         value2 = $game_variables[@parameters[3]]
  1462.       end
  1463.       case @parameters[4]
  1464.       when 0  # と同値
  1465.         result = (value1 == value2)
  1466.       when 1  # 以上
  1467.         result = (value1 >= value2)
  1468.       when 2  # 以下
  1469.         result = (value1 <= value2)
  1470.       when 3  # 超
  1471.         result = (value1 > value2)
  1472.       when 4  # 未満
  1473.         result = (value1 < value2)
  1474.       when 5  # 以外
  1475.         result = (value1 != value2)
  1476.       end
  1477.     when 2  # セルフスイッチ
  1478.       if @event_id > 0
  1479.         key = [$game_map.map_id, @event_id, @parameters[1]]
  1480.         if @parameters[2] == 0
  1481.           result = ($game_self_switches[key] == true)
  1482.         else
  1483.           result = ($game_self_switches[key] != true)
  1484.         end
  1485.       end
  1486.     when 3  # タイマー
  1487.       if $game_system.timer_working
  1488.         sec = $game_system.timer / Graphics.frame_rate
  1489.         if @parameters[2] == 0
  1490.           result = (sec >= @parameters[1])
  1491.         else
  1492.           result = (sec <= @parameters[1])
  1493.         end
  1494.       end
  1495.     when 4  # アクター
  1496.       actor = $game_actors[@parameters[1]]
  1497.       if actor != nil
  1498.         case @parameters[2]
  1499.         when 0  # パーティにいる
  1500.           result = ($game_party.actors.include?(actor))
  1501.         when 1  # 名前
  1502.           result = (actor.name == @parameters[3])
  1503.         when 2  # スキル
  1504.           result = (actor.skill_learn?(@parameters[3]))
  1505.         when 3  # 武器
  1506.           if actor.two_swords?
  1507.             result = false
  1508.             for i in 0...actor.ts_number
  1509.               if actor.weapon_id(i) == @parameters[3]
  1510.                 result = true
  1511.                 break
  1512.               end
  1513.             end
  1514.           else
  1515.             result = (actor.weapon_id == @parameters[3])
  1516.           end
  1517.         when 4  # 防具
  1518.           result = false
  1519.           for i in 1...actor.equip_type.size
  1520.             if actor.armor_id[i] == @parameters[3]
  1521.               result = true
  1522.               break
  1523.             end
  1524.           end
  1525.         when 5  # ステート
  1526.           result = (actor.state?(@parameters[3]))
  1527.         end
  1528.       end
  1529.     when 5  # エネミー
  1530.       enemy = $game_troop.enemies[@parameters[1]]
  1531.       if enemy != nil
  1532.         case @parameters[2]
  1533.         when 0  # 出現している
  1534.           result = (enemy.exist?)
  1535.         when 1  # ステート
  1536.           result = (enemy.state?(@parameters[3]))
  1537.         end
  1538.       end
  1539.     when 6  # キャラクター
  1540.       character = get_character(@parameters[1])
  1541.       if character != nil
  1542.         result = (character.direction == @parameters[2])
  1543.       end
  1544.     when 7  # ゴールド
  1545.       if @parameters[2] == 0
  1546.         result = ($game_party.gold >= @parameters[1])
  1547.       else
  1548.         result = ($game_party.gold <= @parameters[1])
  1549.       end
  1550.     when 8  # アイテム
  1551.       result = ($game_party.item_number(@parameters[1]) > 0)
  1552.     when 9  # 武器
  1553.       result = ($game_party.weapon_number(@parameters[1]) > 0)
  1554.     when 10  # 防具
  1555.       result = ($game_party.armor_number(@parameters[1]) > 0)
  1556.     when 11  # ボタン
  1557.       result = (Input.press?(@parameters[1]))
  1558.     when 12  # スクリプト
  1559.       result = eval(@parameters[1])
  1560.     end
  1561.     # 判定結果をハッシュに格納
  1562.     @branch[@list[@index].indent] = result
  1563.     # 判定結果が真だった場合
  1564.     if @branch[@list[@index].indent] == true
  1565.       # 分岐データを削除
  1566.       @branch.delete(@list[@index].indent)
  1567.       # 継続
  1568.       return true
  1569.     end
  1570.     # 条件に該当しない場合 : コマンドスキップ
  1571.     return command_skip
  1572.   end
  1573. end

  1574. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1575. #==============================================================================
  1576. # ■ Scene_Equip
  1577. #==============================================================================

  1578. class Scene_Equip
  1579.   #--------------------------------------------------------------------------
  1580.   # ● メイン処理
  1581.   #--------------------------------------------------------------------------
  1582.   alias main_KGC_EquipExtension main
  1583.   def main
  1584.     # アクターを取得
  1585.     @actor = $game_party.actors[@actor_index]
  1586.     # アイテムウィンドウを作成
  1587.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1588.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1589.         eval("@item_window#{i + 6} = Window_EquipItem.new(@actor, i + 5)")
  1590.         if $imported["MenuAlter"] && KGC::MA_MENU_TRANSPARENT
  1591.           eval("@item_window#{i + 6}.back_opacity = 160")
  1592.         end
  1593.       end
  1594.     end

  1595.     main_KGC_EquipExtension

  1596.     # アイテムウィンドウを解放
  1597.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1598.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1599.         eval("@item_window#{i + 6}.dispose if @item_window#{i + 6} != nil")
  1600.       end
  1601.     end
  1602.   end
  1603.   #--------------------------------------------------------------------------
  1604.   # ● リフレッシュ
  1605.   #--------------------------------------------------------------------------
  1606.   def refresh
  1607.     # ヘルプウィンドウを設定
  1608.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1609.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1610.         eval("@item_window#{i + 6}.help_window = @help_window")
  1611.       end
  1612.     end
  1613.     # アイテムウィンドウの可視状態設定
  1614.     @item_window1.visible = (@right_window.type == 0)
  1615.     @item_window2.visible = (@right_window.type == 1)
  1616.     @item_window3.visible = (@right_window.type == 2)
  1617.     @item_window4.visible = (@right_window.type == 3)
  1618.     @item_window5.visible = (@right_window.type == 4)
  1619.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1620.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1621.         eval("@item_window#{i + 6}.visible = (@right_window.type == i + 5)")
  1622.       end
  1623.     end
  1624.     # 現在装備中のアイテムを取得
  1625.     item1 = @right_window.item
  1626.     # 現在のアイテムウィンドウを @item_window に設定
  1627.     eval("@item_window = @item_window#{@right_window.type + 1}")
  1628.     # ライトウィンドウがアクティブの場合
  1629.     if @right_window.active
  1630.       # 装備変更後のパラメータを消去
  1631.       @left_window.set_new_parameters(nil, nil, nil)
  1632.     end
  1633.     # アイテムウィンドウがアクティブの場合
  1634.     if @item_window.active
  1635.       # 現在選択中のアイテムを取得
  1636.       item2 = @item_window.item
  1637.       # 装備を変更
  1638.       last_hp = @actor.hp
  1639.       last_sp = @actor.sp
  1640.       if @actor.two_swords?
  1641.         case @right_window.index
  1642.         when [email protected]_number  # 武器
  1643.           @actor.set_weapon(@right_window.index, item2 == nil ? 0 : item2.id)
  1644.           if $imported["EquipDetailSetting"]
  1645.             @actor.update_auto_state(item1, item2, true)
  1646.           end
  1647.         when @[email protected]_type.size  # 防具
  1648.           @actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
  1649.           for i in @[email protected]_type.size
  1650.             @actor.update_auto_state(item1, item2)
  1651.           end
  1652.         end
  1653.       else
  1654.         case @right_window.index
  1655.         when 0  # 武器
  1656.           @actor.weapon_id = (item2 == nil ? 0 : item2.id)
  1657.           if $imported["EquipDetailSetting"]
  1658.             @actor.update_auto_state(item1, item2, true)
  1659.           end
  1660.         when [email protected]_type.size  # 防具
  1661.           @actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
  1662.           for i in [email protected]_type.size
  1663.             @actor.update_auto_state(item1, item2)
  1664.           end
  1665.         end
  1666.       end
  1667.       # 装備変更後のパラメータを取得
  1668.       new_atk = @actor.atk
  1669.       new_pdef = @actor.pdef
  1670.       new_mdef = @actor.mdef
  1671.       if $imported["EquipAlter"]
  1672.         new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
  1673.       end
  1674.       # 装備を戻す
  1675.       if @actor.two_swords?
  1676.         case @right_window.index
  1677.         when [email protected]_number  # 武器
  1678.           @actor.set_weapon(@right_window.index, item1 == nil ? 0 : item1.id)
  1679.           if $imported["EquipDetailSetting"]
  1680.             @actor.update_auto_state(item2, item1, true)
  1681.           end
  1682.         when @[email protected]_type.size  # 防具
  1683.           @actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
  1684.           for i in @[email protected]_type.size
  1685.             @actor.update_auto_state(item2, item1)
  1686.           end
  1687.         end
  1688.       else
  1689.         case @right_window.index
  1690.         when 0  # 武器
  1691.           @actor.weapon_id = (item1 == nil ? 0 : item1.id)
  1692.           if $imported["EquipDetailSetting"]
  1693.             @actor.update_auto_state(item2, item1, true)
  1694.           end
  1695.         when [email protected]_type.size  # 防具
  1696.           @actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
  1697.           for i in [email protected]_type.size
  1698.             @actor.update_auto_state(item2, item1)
  1699.           end
  1700.         end
  1701.       end
  1702.       @actor.hp = last_hp
  1703.       @actor.sp = last_sp
  1704.       # レフトウィンドウに描画
  1705.       if $imported["EquipAlter"]
  1706.         @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
  1707.       else
  1708.         @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
  1709.       end
  1710.     end
  1711.   end
  1712.   #--------------------------------------------------------------------------
  1713.   # ● フレーム更新 (アイテムウィンドウがアクティブの場合)
  1714.   #--------------------------------------------------------------------------
  1715.   unless $imported["EquipAlter"]
  1716.   alias update_item_KGC_EquipExtension update_item
  1717.   def update_item
  1718.     # C ボタンが押された場合
  1719.     if Input.trigger?(Input::C)
  1720.       # アイテムウィンドウで現在選択されているデータを取得
  1721.       item = @item_window.item
  1722.       if KGC::EEX_USE_EP
  1723.         # EP判定
  1724.         if item != nil && item.ep_cost > @actor.ep
  1725.           # ブザー SE を演奏
  1726.           $game_system.se_play($data_system.buzzer_se)
  1727.           return
  1728.         end
  1729.       end
  1730.       # 装備 SE を演奏
  1731.       $game_system.se_play($data_system.equip_se)
  1732.       # 装備を変更
  1733.       @actor.equip(@right_window.index, item == nil ? 0 : item.id)
  1734.       # オートステートを更新
  1735.       if $imported["EquipDetailSetting"]
  1736.         if @actor.two_swords?
  1737.           @actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(@right_window.index)], true)
  1738.         else
  1739.           @actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
  1740.         end
  1741.       end
  1742.       for i in [email protected]_type.size
  1743.         @actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
  1744.       end
  1745.       # 初期能力を更新
  1746.       if $imported["EquipAlter"]
  1747.         @left_window.last_str = @actor.str
  1748.         @left_window.last_dex = @actor.dex
  1749.         @left_window.last_agi = @actor.agi
  1750.         @left_window.last_int = @actor.int
  1751.       end
  1752.       # ライトウィンドウをアクティブ化
  1753.       @right_window.active = true
  1754.       @item_window.active = false
  1755.       @item_window.index = -1
  1756.       # レフトウィンドウを初期化
  1757.       @left_window.new_equip = nil if $imported["EquipAlter"]
  1758.       @left_window.set_new_parameters(nil, nil, nil)
  1759.       # ライトウィンドウ、アイテムウィンドウの内容を再作成
  1760.       @right_window.refresh
  1761.       for i in 1..(KGC::EEX_EQUIP_TYPE_EXT.size + 5)
  1762.         eval("@item_window#{i}.refresh")
  1763.       end
  1764.       return
  1765.     end

  1766.     update_item_KGC_EquipExtension
  1767.   end
  1768.   end
  1769. end

  1770. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1771. #==============================================================================
  1772. # ■ Scene_Battle (分割定義 1)
  1773. #==============================================================================

  1774. class Scene_Battle
  1775.   #--------------------------------------------------------------------------
  1776.   # ● メイン処理
  1777.   #--------------------------------------------------------------------------
  1778.   alias main_KGC_EquipExtension main
  1779.   def main
  1780.     # 攻撃回数を初期化
  1781.     for actor in $game_party.actors
  1782.       actor.attack_count = 0
  1783.     end

  1784.     main_KGC_EquipExtension
  1785.   end
  1786. end

  1787. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1788. #==============================================================================
  1789. # ■ Scene_Battle (分割定義 4)
  1790. #==============================================================================

  1791. class Scene_Battle
  1792.   #--------------------------------------------------------------------------
  1793.   # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  1794.   #--------------------------------------------------------------------------
  1795.   alias update_phase4_step6_KGC_EquipExtension update_phase4_step6
  1796.   def update_phase4_step6
  1797.     update_phase4_step6_KGC_EquipExtension

  1798.     # 二刀流・通常攻撃の場合
  1799.     if @active_battler.is_a?(Game_Actor) && @active_battler.two_swords? &&
  1800.         @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
  1801.       # 攻撃回数加算
  1802.       loop {
  1803.         @active_battler.attack_count += 1
  1804.         if @active_battler.attack_count == @active_battler.ts_number ||
  1805.             @active_battler.weapon_id(@active_battler.attack_count) > 0
  1806.           break
  1807.         end
  1808.       }
  1809.       # 規定回数行動した場合
  1810.       if @active_battler.attack_count == @active_battler.ts_number
  1811.         # 攻撃回数を初期化
  1812.         @active_battler.attack_count = 0
  1813.       else
  1814.         # 戦闘継続の場合
  1815.         unless judge
  1816.           # 攻撃対象が死んでいる場合は再設定
  1817.           if @target_battlers[0].dead?
  1818.             if @active_battler.restriction == 3
  1819.               @target_battlers[0] = $game_party.random_target_actor
  1820.             else
  1821.               @target_battlers[0] = $game_troop.random_target_enemy
  1822.             end
  1823.           end
  1824.           if $imported["ActiveCountBattle"]
  1825.             @action_battlers.insert(0, @active_battler)
  1826.           else
  1827.             # ステップ 2 に移行
  1828.             @phase4_step = 2
  1829.           end
  1830.         end
  1831.       end
  1832.     else
  1833.       if @active_battler.is_a?(Game_Actor)
  1834.         # 攻撃回数を初期化
  1835.         @active_battler.attack_count = 0
  1836.       end
  1837.     end
  1838.   end
  1839. end

  1840. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  1841. #==============================================================================
  1842. # ■ Scene_EquipExtend
  1843. #------------------------------------------------------------------------------
  1844. #  拡張装備画面の処理を行うクラスです。
  1845. #==============================================================================

  1846. class Scene_EquipExtend
  1847.   #--------------------------------------------------------------------------
  1848.   # ● オブジェクト初期化
  1849.   #     actor_index : アクターインデックス
  1850.   #     equip_index : 装備インデックス
  1851.   #--------------------------------------------------------------------------
  1852.   def initialize(actor_index = 0, equip_index = 0, call_menu = false)
  1853.     @actor_index = actor_index
  1854.     @equip_index = equip_index
  1855.     @call_menu = call_menu
  1856.   end
  1857.   #--------------------------------------------------------------------------
  1858.   # ● メイン処理
  1859.   #--------------------------------------------------------------------------
  1860.   def main
  1861.     @actor = $game_party.actors[@actor_index]
  1862.     @spriteset = Spriteset_Map.new if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1863.     # ウィンドウを作成
  1864.     if $imported["HelpExtension"]
  1865.       @help_window = Window_HelpExtension.new
  1866.     else
  1867.       @help_window = Window_Help.new
  1868.     end
  1869.     @control_window = Window_EquipExtendControl.new
  1870.     @control_window.y = 64 if $imported["HelpExtension"]
  1871.     @status_window = Window_EquipExtendStatus.new(@actor)
  1872.     @list_window = Window_EquipExtendList.new(@actor)
  1873.     @item_window1 = Window_EquipExtendItem.new(@actor, 0)
  1874.     @item_window2 = Window_EquipExtendItem.new(@actor, 1)
  1875.     @item_window3 = Window_EquipExtendItem.new(@actor, 2)
  1876.     @item_window4 = Window_EquipExtendItem.new(@actor, 3)
  1877.     @item_window5 = Window_EquipExtendItem.new(@actor, 4)
  1878.     # ヘルプウィンドウを関連付け
  1879.     @control_window.help_window = @help_window
  1880.     @list_window.help_window = @help_window
  1881.     @item_window1.help_window = @help_window
  1882.     @item_window2.help_window = @help_window
  1883.     @item_window3.help_window = @help_window
  1884.     @item_window4.help_window = @help_window
  1885.     @item_window5.help_window = @help_window
  1886.     # 拡張アイテムウィンドウを作成
  1887.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1888.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1889.         eval("@item_window#{i + 6} = Window_EquipExtendItem.new(@actor, i + 5)")
  1890.         eval("@item_window#{i + 6}.help_window = @help_window")
  1891.         if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1892.           eval("@item_window#{i + 6}.back_opacity = 160")
  1893.         end
  1894.       end
  1895.     end
  1896.     if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1897.       @help_window.back_opacity = 160
  1898.       @control_window.back_opacity = 160
  1899.     end
  1900.     # カーソル位置を設定
  1901.     @list_window.index = @equip_index
  1902.     @effect_type = 0
  1903.     refresh
  1904.     # トランジション実行
  1905.     Graphics.transition
  1906.     # メインループ
  1907.     loop {
  1908.       Graphics.update
  1909.       Input.update
  1910.       update
  1911.       if $scene != self
  1912.         break
  1913.       end
  1914.     }
  1915.     # トランジション準備
  1916.     Graphics.freeze
  1917.     # ウィンドウを解放
  1918.     @help_window.dispose
  1919.     @control_window.dispose
  1920.     @status_window.dispose
  1921.     @list_window.dispose
  1922.     @item_window1.dispose
  1923.     @item_window2.dispose
  1924.     @item_window3.dispose
  1925.     @item_window4.dispose
  1926.     @item_window5.dispose
  1927.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  1928.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  1929.         eval("@item_window#{i + 7}.dispose if @item_window#{i + 7} != nil")
  1930.       end
  1931.     end
  1932.     @spriteset.dispose if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
  1933.   end
  1934.   #--------------------------------------------------------------------------
  1935.   # ● フレーム更新
  1936.   #--------------------------------------------------------------------------
  1937.   def update
  1938.     # ウィンドウを更新
  1939.     @status_window.update
  1940.     @list_window.update
  1941.     @item_window.update
  1942.     @control_window.update
  1943.     refresh
  1944.     update_effect(@effect_type)
  1945.     # 操作ウィンドウがアクティブの場合: update_control を呼ぶ
  1946.     if @control_window.active
  1947.       @effect_type = 0
  1948.       update_control
  1949.       return
  1950.     end
  1951.     # リストウィンドウがアクティブの場合: update_list を呼ぶ
  1952.     if @list_window.active
  1953.       @effect_type = 1
  1954.       update_list
  1955.       return
  1956.     end
  1957.     # アイテムウィンドウがアクティブの場合: update_item を呼ぶ
  1958.     if @item_window.active
  1959.       @effect_type = 2
  1960.       update_item
  1961.       return
  1962.     end
  1963.   end
  1964.   #--------------------------------------------------------------------------
  1965.   # ● フレーム更新 (エフェクト)
  1966.   #--------------------------------------------------------------------------
  1967.   def update_effect(type)
  1968.     case type
  1969.     when 1
  1970.       @last_index = -1
  1971.       @status_window.x = [@status_window.x + 48, 368].min
  1972.       @status_window.y = [@status_window.y + 24, 288].min
  1973.       @list_window.x = [@list_window.x + 8, 0].min
  1974.       @item_window.x = [@item_window.x + 8, 368].min
  1975.     when 2
  1976.       if @last_index != @list_window.index
  1977.         pos = @list_window.index - @list_window.top_row
  1978.         center = (@list_window.height - 32) / 64
  1979.         @status_y = pos >= center ? @list_window.y : 288
  1980.         @last_index = @list_window.index
  1981.       end
  1982.       @status_window.x = [@status_window.x - 48, 0].max
  1983.       if @status_y > @status_window.y
  1984.         @status_window.y = [@status_window.y + 24, @status_y].min
  1985.       elsif @status_y < @status_window.y
  1986.         @status_window.y = [@status_window.y - 24, @status_y].max
  1987.       end
  1988.       @list_window.x = [@list_window.x - 8, -48].max
  1989.       @item_window.x = [@item_window.x - 8, 320].max
  1990.     end
  1991.   end
  1992.   #--------------------------------------------------------------------------
  1993.   # ● フレーム更新 (操作ウィンドウがアクティブの場合)
  1994.   #--------------------------------------------------------------------------
  1995.   def update_control
  1996.     # B ボタンが押された場合
  1997.     if Input.trigger?(Input::B)
  1998.       # キャンセル SE を演奏
  1999.       $game_system.se_play($data_system.cancel_se)
  2000.       if @call_menu
  2001.         # メニュー画面に切り替え
  2002.         if $imported["MenuAlter"]
  2003.           index = KGC::MA_COMMANDS.index(2)
  2004.           if index != nil
  2005.             $scene = Scene_Menu.new(index)
  2006.           else
  2007.             $scene = Scene_Menu.new
  2008.           end
  2009.         else
  2010.           $scene = Scene_Menu.new(3)
  2011.         end
  2012.       else
  2013.         # マップ画面に切り替え
  2014.         $scene = Scene_Map.new
  2015.       end
  2016.       return
  2017.     end
  2018.     # C ボタンが押された場合
  2019.     if Input.trigger?(Input::C)
  2020.       # カーソル位置で分岐
  2021.       case @control_window.index
  2022.       when 0  # 装備変更
  2023.         # 決定 SE を演奏
  2024.         $game_system.se_play($data_system.decision_se)
  2025.         # リストウィンドウに切り替え
  2026.         @list_window.active = true
  2027.         @list_window.index = 0 if @list_window.index == -1
  2028.         @control_window.active = false
  2029.         @control_window.visible = false
  2030.       when 1  # 最強装備
  2031.         # 装備 SE を演奏
  2032.         $game_system.se_play($data_system.equip_se)
  2033.         # 装備最大数を取得
  2034.         if $imported["EquipExtension"]
  2035.           mx = @actor.equip_type.size
  2036.         else
  2037.           mx = 5
  2038.         end
  2039.         for i in KGC::EEX_EQUIP_EX_INDEX...mx
  2040.           # 装備固定の場合は次へ
  2041.           next if @actor.equip_fix?(i)
  2042.           # 装備の種類で分岐
  2043.           tw = $imported["EquipExtension"] && @actor.two_swords?
  2044.           case i
  2045.           when (tw ? [email protected]_number : 0)  # 武器
  2046.             # 最強武器装備
  2047.             equip_strongest_weapon(i)
  2048.           when (tw ? @actor.ts_number : 1)...mx  # 防具
  2049.             # 最強防具装備
  2050.             equip_strongest_armor(@actor.equip_type[i], i)
  2051.           end
  2052.         end
  2053.         # 初期能力を更新
  2054.         @status_window.last_str = @actor.str
  2055.         @status_window.last_dex = @actor.dex
  2056.         @status_window.last_agi = @actor.agi
  2057.         @status_window.last_int = @actor.int
  2058.         # レフトウィンドウを初期化
  2059.         @status_window.set_new_parameters(nil, nil, nil)
  2060.         # ウィンドウをリフレッシュ
  2061.         refresh_window
  2062.       when 2  # 全解除
  2063.         # 装備 SE を演奏
  2064.         $game_system.se_play($data_system.equip_se)
  2065.         # 装備最大数を取得
  2066.         if $imported["EquipExtension"]
  2067.           mx = @actor.equip_type.size
  2068.         else
  2069.           mx = 5
  2070.         end
  2071.         (KGC::EEX_EQUIP_EX_INDEX...mx).each { |i|
  2072.           # 装備固定でない場合は解除
  2073.           @actor.equip(i, 0) unless @actor.equip_fix?(i)
  2074.         }
  2075.         # 初期能力を更新
  2076.         @status_window.last_str = @actor.str
  2077.         @status_window.last_dex = @actor.dex
  2078.         @status_window.last_agi = @actor.agi
  2079.         @status_window.last_int = @actor.int
  2080.         # ステータスウィンドウを初期化
  2081.         @status_window.set_new_parameters(nil, nil, nil)
  2082.         # ウィンドウをリフレッシュ
  2083.         refresh_window
  2084.       end
  2085.       return
  2086.     end
  2087.     # R ボタンが押された場合
  2088.     if Input.trigger?(Input::R)
  2089.       # カーソル SE を演奏
  2090.       $game_system.se_play($data_system.cursor_se)
  2091.       # 次のアクターへ
  2092.       @actor_index += 1
  2093.       @actor_index %= $game_party.actors.size
  2094.       # 別の装備画面に切り替え
  2095.       $scene = Scene_EquipExtend.new(@actor_index, 0, @call_menu)
  2096.       return
  2097.     end
  2098.     # L ボタンが押された場合
  2099.     if Input.trigger?(Input::L)
  2100.       # カーソル SE を演奏
  2101.       $game_system.se_play($data_system.cursor_se)
  2102.       # 前のアクターへ
  2103.       @actor_index += $game_party.actors.size - 1
  2104.       @actor_index %= $game_party.actors.size
  2105.       # 別の装備画面に切り替え
  2106.       $scene = Scene_EquipExtend.new(@actor_index, 0, @call_menu)
  2107.       return
  2108.     end
  2109.   end
  2110.   #--------------------------------------------------------------------------
  2111.   # ● フレーム更新 (リストウィンドウがアクティブの場合)
  2112.   #--------------------------------------------------------------------------
  2113.   def update_list
  2114.     # A ボタンが押された場合
  2115.     if Input.trigger?(Input::A)
  2116.       index = @list_window.index + KGC::EEX_EQUIP_EX_INDEX
  2117.       # 装備 SE を演奏
  2118.       $game_system.se_play($data_system.equip_se)
  2119.       # 装備を外す
  2120.       @actor.equip(index, 0)
  2121.       # ウィンドウリフレッシュ
  2122.       refresh_window
  2123.       return
  2124.     end
  2125.     # B ボタンが押された場合
  2126.     if Input.trigger?(Input::B)
  2127.       # キャンセル SE を演奏
  2128.       $game_system.se_play($data_system.cancel_se)
  2129.       # 操作ウィンドウに切り替え
  2130.       @list_window.active = false
  2131.       @control_window.active = true
  2132.       @control_window.visible = true
  2133.       # リフレッシュ
  2134.       refresh
  2135.       return
  2136.     end
  2137.     # C ボタンが押された場合
  2138.     if Input.trigger?(Input::C)
  2139.       # 装備固定の場合
  2140.       if @actor.equip_fix?(@list_window.index + KGC::EEX_EQUIP_EX_INDEX)
  2141.         # ブザー SE を演奏
  2142.         $game_system.se_play($data_system.buzzer_se)
  2143.         return
  2144.       end
  2145.       # 決定 SE を演奏
  2146.       $game_system.se_play($data_system.decision_se)
  2147.       # アイテムウィンドウをアクティブ化
  2148.       @list_window.active = false
  2149.       @item_window.active = true
  2150.       @item_window.index = 0
  2151.       return
  2152.     end
  2153.   end
  2154.   #--------------------------------------------------------------------------
  2155.   # ● フレーム更新 (アイテムウィンドウがアクティブの場合)
  2156.   #--------------------------------------------------------------------------
  2157.   def update_item
  2158.     # 選択中の装備品を更新
  2159.     @status_window.new_equip = @item_window.item
  2160.     # B ボタンが押された場合
  2161.     if Input.trigger?(Input::B)
  2162.       # キャンセル SE を演奏
  2163.       $game_system.se_play($data_system.cancel_se)
  2164.       # ステータスウィンドウを初期化
  2165.       @status_window.new_equip = nil
  2166.       @status_window.set_new_parameters(nil, nil, nil)
  2167.       # リストウィンドウをアクティブ化
  2168.       @list_window.active = true
  2169.       @item_window.active = false
  2170.       @item_window.index = -1
  2171.       return
  2172.     end
  2173.     # C ボタンが押された場合
  2174.     if Input.trigger?(Input::C)
  2175.       # アイテムウィンドウで現在選択されているデータを取得
  2176.       item = @item_window.item
  2177.       index = @list_window.index + KGC::EEX_EQUIP_EX_INDEX
  2178.       if $imported["EquipExtension"] && KGC::EEX_USE_EP
  2179.         # EP判定
  2180.         if item != nil && item.ep_cost > @actor.ep
  2181.           # ブザー SE を演奏
  2182.           $game_system.se_play($data_system.buzzer_se)
  2183.           return
  2184.         end
  2185.       end
  2186.       # 装備可否判定
  2187.       if item != nil && [email protected]?(item)
  2188.         # ブザー SE を演奏
  2189.         $game_system.se_play($data_system.buzzer_se)
  2190.         return
  2191.       end
  2192.       # 装備 SE を演奏
  2193.       $game_system.se_play($data_system.equip_se)
  2194.       # 装備を変更
  2195.       @actor.equip(index, item == nil ? 0 : item.id)
  2196.       # オートステートを更新
  2197.       if $imported["EquipDetailSetting"]
  2198.         if $imported["EquipExtension"] && @actor.two_swords?
  2199.           @actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(index)], true)
  2200.         else
  2201.           @actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
  2202.         end
  2203.       end
  2204.       if $imported["EquipExtension"]
  2205.         for i in (@actor.two_swords? ? @actor.ts_number : 1)[email protected]_type.size
  2206.           @actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
  2207.         end
  2208.       else
  2209.         for i in 1..4
  2210.           @actor.update_auto_state(nil, $data_armors[eval("@actor.armor#{i}_id")])
  2211.         end
  2212.       end
  2213.       # 初期能力を更新
  2214.       @status_window.last_str = @actor.str
  2215.       @status_window.last_dex = @actor.dex
  2216.       @status_window.last_agi = @actor.agi
  2217.       @status_window.last_int = @actor.int
  2218.       # リストウィンドウをアクティブ化
  2219.       @list_window.active = true
  2220.       @item_window.active = false
  2221.       @item_window.index = -1
  2222.       # ステータスウィンドウを初期化
  2223.       @status_window.new_equip = nil
  2224.       @status_window.set_new_parameters(nil, nil, nil)
  2225.       # ウィンドウの内容を再作成
  2226.       refresh_window
  2227.       return
  2228.     end
  2229.   end
  2230.   #--------------------------------------------------------------------------
  2231.   # ● リフレッシュ
  2232.   #--------------------------------------------------------------------------
  2233.   def refresh
  2234.     # アイテムウィンドウの可視状態設定
  2235.     @item_window1.visible = (@list_window.type == 0)
  2236.     @item_window2.visible = (@list_window.type == 1)
  2237.     @item_window3.visible = (@list_window.type == 2)
  2238.     @item_window4.visible = (@list_window.type == 3)
  2239.     @item_window5.visible = (@list_window.type == 4)
  2240.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  2241.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  2242.         eval("@item_window#{i + 6}.visible = (@list_window.type == i + 5)")
  2243.       end
  2244.     end
  2245.     # 現在装備中のアイテムを取得
  2246.     item1 = @list_window.item
  2247.     # 現在のアイテムウィンドウを @item_window に設定
  2248.     eval("@item_window = @item_window#{@list_window.type + 1}")
  2249.     # リストウィンドウがアクティブの場合
  2250.     if @list_window.active
  2251.       # 装備変更後のパラメータを消去
  2252.       @status_window.set_new_parameters(nil, nil, nil)
  2253.     end
  2254.     # アイテムウィンドウがアクティブの場合
  2255.     if @item_window.active
  2256.       # 現在選択中のアイテムを取得
  2257.       item2 = @item_window.item
  2258.       index = @list_window.index + KGC::EEX_EQUIP_EX_INDEX
  2259.       # 装備を変更
  2260.       last_hp = @actor.hp
  2261.       last_sp = @actor.sp
  2262.       if @actor.two_swords?
  2263.         case index
  2264.         when [email protected]_number  # 武器
  2265.           @actor.set_weapon(index, item2 == nil ? 0 : item2.id)
  2266.           if $imported["EquipDetailSetting"]
  2267.             @actor.update_auto_state(item1, item2, true)
  2268.           end
  2269.         when @[email protected]_type.size  # 防具
  2270.           @actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
  2271.           for i in @[email protected]_type.size
  2272.             @actor.update_auto_state(item1, item2)
  2273.           end
  2274.         end
  2275.       else
  2276.         case index
  2277.         when 0  # 武器
  2278.           @actor.weapon_id = (item2 == nil ? 0 : item2.id)
  2279.           if $imported["EquipDetailSetting"]
  2280.             @actor.update_auto_state(item1, item2, true)
  2281.           end
  2282.         when [email protected]_type.size  # 防具
  2283.           @actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
  2284.           for i in [email protected]_type.size
  2285.             @actor.update_auto_state(item1, item2)
  2286.           end
  2287.         end
  2288.       end
  2289.       # 装備変更後のパラメータを取得
  2290.       new_atk = @actor.atk
  2291.       new_pdef = @actor.pdef
  2292.       new_mdef = @actor.mdef
  2293.       if $imported["EquipAlter"]
  2294.         new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
  2295.       end
  2296.       # 装備を戻す
  2297.       if @actor.two_swords?
  2298.         case index
  2299.         when [email protected]_number  # 武器
  2300.           @actor.set_weapon(index, item1 == nil ? 0 : item1.id)
  2301.           if $imported["EquipDetailSetting"]
  2302.             @actor.update_auto_state(item2, item1, true)
  2303.           end
  2304.         when @[email protected]_type.size  # 防具
  2305.           @actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
  2306.           for i in @[email protected]_type.size
  2307.             @actor.update_auto_state(item2, item1)
  2308.           end
  2309.         end
  2310.       else
  2311.         case index
  2312.         when 0  # 武器
  2313.           @actor.weapon_id = (item1 == nil ? 0 : item1.id)
  2314.           if $imported["EquipDetailSetting"]
  2315.             @actor.update_auto_state(item2, item1, true)
  2316.           end
  2317.         when [email protected]_type.size  # 防具
  2318.           @actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
  2319.           for i in [email protected]_type.size
  2320.             @actor.update_auto_state(item2, item1)
  2321.           end
  2322.         end
  2323.       end
  2324.       @actor.hp = last_hp
  2325.       @actor.sp = last_sp
  2326.       # ステータスウィンドウに描画
  2327.       if $imported["EquipAlter"]
  2328.         @status_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
  2329.       else
  2330.         @status_window.set_new_parameters(new_atk, new_pdef, new_mdef)
  2331.       end
  2332.     end
  2333.   end
  2334.   #--------------------------------------------------------------------------
  2335.   # ● ウィンドウをリフレッシュ
  2336.   #--------------------------------------------------------------------------
  2337.   def refresh_window
  2338.     # 初期能力を更新
  2339.     @status_window.last_str = @actor.str
  2340.     @status_window.last_dex = @actor.dex
  2341.     @status_window.last_agi = @actor.agi
  2342.     @status_window.last_int = @actor.int
  2343.     # リフレッシュ
  2344.     @status_window.refresh
  2345.     @list_window.refresh
  2346.     @item_window1.refresh
  2347.     @item_window2.refresh
  2348.     @item_window3.refresh
  2349.     @item_window4.refresh
  2350.     @item_window5.refresh
  2351.     if KGC::EEX_EQUIP_TYPE_EXT.size > 0
  2352.       for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
  2353.         eval("@item_window#{i + 7}.refresh")
  2354.       end
  2355.     end
  2356.   end
  2357.   #--------------------------------------------------------------------------
  2358.   # ● 最強武器装備
  2359.   #--------------------------------------------------------------------------
  2360.   def equip_strongest_weapon(type)
  2361.     # 武器リストを初期化
  2362.     weapons = []
  2363.     # 装備可能な武器を追加
  2364.     for i in 1...$data_weapons.size
  2365.       weapon = $data_weapons[i]
  2366.       if $game_party.weapon_number(i) > 0 && @actor.equippable?(weapon)
  2367.         weapons.push(weapon)
  2368.       end
  2369.     end
  2370.     # 装備可能な武器が無い場合は戻る
  2371.     return if weapons == []
  2372.     # 武器リストを逆順(IDの大きい順)に並べ替え
  2373.     weapons = weapons.reverse
  2374.     # 最強武器を初期化
  2375.     strongest_weapon = weapons[0]
  2376.     # 最強武器を取得(攻撃力で判定)
  2377.     for weapon in weapons
  2378.       strongest_weapon = weapon if strongest_weapon.atk < weapon.atk
  2379.     end
  2380.     # 現在の装備を取得
  2381.     now_weapon = $data_weapons[
  2382.       $imported["EquipExtension"] && @actor.two_swords? ?
  2383.       @actor.weapon_id(type) : @actor.weapon_id]
  2384.     # 何も装備していない場合
  2385.     if now_weapon == nil
  2386.       # 装備を変更
  2387.       @actor.equip(type, strongest_weapon.id)
  2388.     # 現在の装備より強い場合
  2389.     elsif strongest_weapon.atk > now_weapon.atk
  2390.       # 装備を変更
  2391.       @actor.equip(type, strongest_weapon.id)
  2392.     end
  2393.   end
  2394.   #--------------------------------------------------------------------------
  2395.   # ● 最強防具装備
  2396.   #     type  : 防具の種類
  2397.   #     index : 装備箇所
  2398.   #--------------------------------------------------------------------------
  2399.   def equip_strongest_armor(type, index)
  2400.     # 除外装備の場合は戻る
  2401.     return if KGC::EEX_IGNORE_STRONGEST_TYPE.include?(type)
  2402.     # 防具リストを初期化
  2403.     armors = []
  2404.     # 装備可能な防具を追加
  2405.     for i in 1...$data_armors.size
  2406.       armor = $data_armors[i]
  2407.       if $game_party.armor_number(i) > 0 && @actor.equippable?(armor)
  2408.         if $data_armors[i].kind == type - 1
  2409.           armors.push(armor)
  2410.         end
  2411.       end
  2412.     end
  2413.     # 装備可能な防具が無い場合は戻る
  2414.     return if armors == []
  2415.     # 防具リストを逆順(IDの大きい順)に並べ替え
  2416.     armors = armors.reverse
  2417.     # 最強防具を初期化
  2418.     strongest_armor = armors[0]
  2419.     # 最強防具を取得(物理防御で判定)
  2420.     for armor in armors
  2421.       strongest_armor = armor if strongest_armor.pdef < armor.pdef
  2422.     end
  2423.     # 現在の装備を取得
  2424.     now_armor = $data_armors[$imported["EquipExtension"] ?
  2425.       @actor.armor_id[index] : eval("@actor.armor#{index}_id")]
  2426.     # 何も装備していない場合
  2427.     if now_armor == nil
  2428.       # 装備を変更
  2429.       @actor.equip(index, strongest_armor.id)
  2430.     # 現在の装備より強い場合
  2431.     elsif strongest_armor.pdef > now_armor.pdef
  2432.       # 装備を変更
  2433.       @actor.equip(index, strongest_armor.id)
  2434.     end
  2435.   end
  2436. end
复制代码

点评

xxO(∩_∩)O谢谢终于OK  发表于 2016-10-14 00:23
应该是@actor.armor_id[i],里面的i是数字从0开始。你试试对不对  发表于 2016-10-13 19:46
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

5
 楼主| 发表于 2016-10-14 00:44:38 | 只看该作者
虽然已经不使用这个脚本 但是谢谢 大神 无私的帮忙  

版主  麻烦~\(≧▽≦)/~啦啦啦 1000给大神吧

360截图20161014002629280.jpg (34.73 KB, 下载次数: 1)

360截图20161014002629280.jpg
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-3 23:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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