Project1

标题: 装备扩充后的,状态里不显示全部装备 [打印本页]

作者: 575539640    时间: 2013-4-10 06:14
标题: 装备扩充后的,状态里不显示全部装备
本帖最后由 575539640 于 2013-4-10 21:12 编辑

由于我用了装备扩充所以,是这个样子


但是在状态里就悲剧了

这里没有办法显示我所有的装备


如果要把我标记为1区的项目挪到2,应该怎么改啊



谢谢,请帮帮忙


装备扩充脚本在这里

RUBY 代码复制
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 装備拡張 - KGC_EquipExtension ◆ VX ◆
  3. #_/    ◇ Last update : 2008/02/10 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  装備関連の機能を拡張します。
  6. #_/============================================================================
  7. #_/ 【メニュー】≪拡張装備画面≫ より下に導入してください。
  8. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  9.  
  10. #==============================================================================
  11. # ★ カスタマイズ項目 - Customize ★
  12. #==============================================================================
  13.  
  14. module KGC
  15. module EquipExtension
  16.   # ◆ 扩张的装备种类名称
  17.   #  从前面的皆下去      4      5      6      7     8    9      10
  18.   EXTRA_EQUIP_KIND = ["项链","戒指","披风","手套","鞋","道具","其他"]
  19.  
  20.   # ◆ 装备的顺序
  21.   #  以这里设置的顺序接续在武器的下面
  22.   #  ※ 装备个数最低为1,否则二刀流会出错
  23.   #   ** 装备种类一览 **
  24.   #  0..盾  1..帽子  2..铠甲  3..徽章··  4~..↑所定義的种类
  25.   EQUIP_TYPE = [0,1,4,2,6,3,5,5,7,8,9,9,10,10]
  26.  
  27.   # ◆ EP (装备点数) 制是否要使用
  28.   USE_EP_SYSTEM = true
  29.   # ◆ EP 的名称
  30.   VOCAB_EP   = "装备负重"
  31.   # ◆ EP 的名称 (略)
  32.   VOCAB_EP_A = ""
  33.   # ◆ 是否在状态介面显示EP值
  34.   SHOW_STATUS_EP = true
  35.  
  36.   # ◆ 装备预设 EP 消耗点数
  37.   #  没有设定EP消耗点数的装备自动加上的点数
  38.   DEFAULT_EP_COST   = 2
  39.   # ◆ 当消耗 EP 值为 0 时隐藏
  40.   HIDE_ZERO_EP_COST = true
  41.  
  42.   # ◆ EP 上限
  43.   EP_MAX = 300
  44.   # ◆ EP 下限
  45.   EP_MIN = 30
  46.   # ◆ 最大 EP 公式
  47.   #   level..角色等级
  48.   #  计算後小数自动取整
  49.   EP_CALC_EXP = "level * 2 + 10"
  50.  
  51.   # ◆ 消耗 EP 値的文字颜色 (接续在装备名称後面的文字)
  52.   #  数字  : 与 \C[n] 同样的颜色 (也就是在窗口外观设置的颜色色号)
  53.   #  Color : 指定颜色。 ( Color.new(128, 255, 255))
  54.   EP_COST_COLOR        = 23
  55.   # ◆ EP 槽開始色
  56.   EP_GAUGE_START_COLOR = 28
  57.   # ◆ EP 槽结束色
  58.   EP_GAUGE_END_COLOR   = 29
  59. end
  60. end
  61.  
  62. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  63.  
  64. $imported = {} if $imported == nil
  65. $imported["EquipExtension"] = true
  66.  
  67. module KGC::EquipExtension
  68.   # EP 制を使用しない場合の設定
  69.   unless USE_EP_SYSTEM
  70.     SHOW_STATUS_EP = false
  71.     HIDE_ZERO_EP_COST = true
  72.   end
  73.  
  74.   # 正規表現
  75.   module Regexp
  76.     # ベースアイテム
  77.     module BaseItem
  78.       # 消費 EP
  79.       EP_COST = /<EP\s*(\d+)>/i
  80.       # 装備タイプ
  81.       EQUIP_TYPE = /<(?:EQUIP_TYPE|装備タイプ)\s*(\d+(?:\s*,\s*\d+)*)>/
  82.     end
  83.  
  84.     # 防具
  85.     module Armor
  86.       # 装備種別
  87.       EQUIP_KIND = /<(?:EQUIP_KIND|武器种类)\s*(.+)>/i
  88.     end
  89.   end
  90. end
  91.  
  92. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  93.  
  94. #==============================================================================
  95. # □ KGC::Commands
  96. #==============================================================================
  97.  
  98. module KGC::Commands
  99.   module_function
  100.   #--------------------------------------------------------------------------
  101.   # ○ アクターの装備を修復
  102.   #--------------------------------------------------------------------------
  103.   def restore_equip
  104.     (1...$data_actors.size).each { |i|
  105.       actor = $game_actors[i]
  106.       actor.restore_equip
  107.     }
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ○ アクターの装備タイプを設定
  111.   #     actor_id   : アクター ID
  112.   #     equip_type : 装備タイプ
  113.   #--------------------------------------------------------------------------
  114.   def set_actor_equip_type(actor_id, equip_type = nil)
  115.     actor = $game_actors[actor_id]
  116.     return if actor == nil
  117.     actor.equip_type = equip_type
  118.   end
  119. end
  120.  
  121. class Game_Interpreter
  122.   include KGC::Commands
  123. end
  124.  
  125. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  126.  
  127. #==============================================================================
  128. # ■ Vocab
  129. #==============================================================================
  130.  
  131. module Vocab
  132.   # EP
  133.   def self.ep
  134.     return KGC::EquipExtension::VOCAB_EP
  135.   end
  136.  
  137.   # EP (略)
  138.   def self.ep_a
  139.     return KGC::EquipExtension::VOCAB_EP_A
  140.   end
  141.  
  142.   # 拡張防具欄
  143.   def self.extra_armor(index)
  144.     return KGC::EquipExtension::EXTRA_EQUIP_KIND[index]
  145.   end
  146. end
  147.  
  148. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  149.  
  150. #==============================================================================
  151. # ■ RPG::BaseItem
  152. #==============================================================================
  153.  
  154. class RPG::BaseItem
  155.   #--------------------------------------------------------------------------
  156.   # ○ 装備拡張のキャッシュを作成
  157.   #--------------------------------------------------------------------------
  158.   def create_equip_extension_cache
  159.     @__ep_cost = KGC::EquipExtension::DEFAULT_EP_COST
  160.     @__equip_type = []
  161.  
  162.     self.note.split(/[\r\n]+/).each { |line|
  163.       case line
  164.       when KGC::EquipExtension::Regexp::BaseItem::EP_COST
  165.         # 消費 EP
  166.         @__ep_cost = $1.to_i
  167.       when KGC::EquipExtension::Regexp::BaseItem::EQUIP_TYPE
  168.         # 装備タイプ
  169.         @__equip_type = []
  170.         $1.scan(/\d+/) { |num|
  171.           @__equip_type << num.to_i
  172.         }
  173.       end
  174.     }
  175.  
  176.     # EP 制を使用しない場合は消費 EP = 0
  177.     @__ep_cost = 0 unless KGC::EquipExtension::USE_EP_SYSTEM
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ○ 消費 EP
  181.   #--------------------------------------------------------------------------
  182.   def ep_cost
  183.     create_equip_extension_cache if @__ep_cost == nil
  184.     return @__ep_cost
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ○ 装備タイプ
  188.   #--------------------------------------------------------------------------
  189.   def equip_type
  190.     create_equip_extension_cache if @__equip_type == nil
  191.     return @__equip_type
  192.   end
  193. end
  194.  
  195. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  196.  
  197. #==============================================================================
  198. # ■ RPG::Armor
  199. #==============================================================================
  200.  
  201. class RPG::Armor < RPG::BaseItem
  202.   #--------------------------------------------------------------------------
  203.   # ○ 装備拡張のキャッシュを作成
  204.   #--------------------------------------------------------------------------
  205.   def create_equip_extension_cache
  206.     super
  207.     @__kind = -1
  208.  
  209.     self.note.split(/[\r\n]+/).each { |line|
  210.       if line =~ KGC::EquipExtension::Regexp::Armor::EQUIP_KIND
  211.         # 装備タイプ
  212.         e_index = KGC::EquipExtension::EXTRA_EQUIP_KIND.index($1)
  213.         next if e_index == nil
  214.         @__kind = e_index + 4
  215.       end
  216.     }
  217.   end
  218.  
  219. unless $@
  220.   #--------------------------------------------------------------------------
  221.   # ○ 種別
  222.   #--------------------------------------------------------------------------
  223.   alias kind_KGC_EquipExtension kind
  224.   def kind
  225.     create_equip_extension_cache if @__kind == nil
  226.     return (@__kind == -1 ? kind_KGC_EquipExtension : @__kind)
  227.   end
  228. end
  229.  
  230. end
  231.  
  232. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  233.  
  234. #==============================================================================
  235. # ■ Game_Actor
  236. #==============================================================================
  237.  
  238. class Game_Actor < Game_Battler
  239.   #--------------------------------------------------------------------------
  240.   # ● 公開インスタンス変数
  241.   #--------------------------------------------------------------------------
  242.   attr_writer   :equip_type               # 装備タイプ
  243.   #--------------------------------------------------------------------------
  244.   # ● セットアップ
  245.   #     actor_id : アクター ID
  246.   #--------------------------------------------------------------------------
  247.   alias setup_KGC_EquipExtension setup
  248.   def setup(actor_id)
  249.     actor = $data_actors[actor_id]
  250.     @extra_armor_id = []
  251.  
  252.     setup_KGC_EquipExtension(actor_id)
  253.  
  254.     restore_equip
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ○ MaxEP 取得
  258.   #--------------------------------------------------------------------------
  259.   def maxep
  260.     n = Integer(eval(KGC::EquipExtension::EP_CALC_EXP))
  261.     return [[n, ep_limit].min, KGC::EquipExtension::EP_MIN].max
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ○ EP 取得
  265.   #--------------------------------------------------------------------------
  266.   def ep
  267.     n = 0
  268.     equips.compact.each { |item| n += item.ep_cost }
  269.     return [maxep - n, 0].max
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ○ EP 上限取得
  273.   #--------------------------------------------------------------------------
  274.   def ep_limit
  275.     return KGC::EquipExtension::EP_MAX
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ○ 防具欄の取得
  279.   #--------------------------------------------------------------------------
  280.   def equip_type
  281.     if @equip_type.is_a?(Array)
  282.       return @equip_type
  283.     else
  284.       return KGC::EquipExtension::EQUIP_TYPE
  285.     end
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ○ 防具欄の数
  289.   #--------------------------------------------------------------------------
  290.   def armor_number
  291.     return equip_type.size
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ○ 拡張防具欄の数
  295.   #--------------------------------------------------------------------------
  296.   def extra_armor_number
  297.     return [armor_number - 4, 0].max
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ○ 防具 ID リストの取得
  301.   #--------------------------------------------------------------------------
  302.   def extra_armor_id
  303.     @extra_armor_id = [] if @extra_armor_id == nil
  304.     return @extra_armor_id
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ● 防具オブジェクトの配列取得
  308.   #--------------------------------------------------------------------------
  309.   alias armors_KGC_EquipExtension armors
  310.   def armors
  311.     result = armors_KGC_EquipExtension
  312.  
  313.     # 5番目以降の防具を追加
  314.     extra_armor_number.times { |i|
  315.       armor_id = extra_armor_id[i]
  316.       result << (armor_id == nil ? nil : $data_armors[armor_id])
  317.     }
  318.     return result
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ● 装備の変更 (オブジェクトで指定)
  322.   #     equip_type : 装備部位
  323.   #     item       : 武器 or 防具 (nil なら装備解除)
  324.   #     test       : テストフラグ (戦闘テスト、または装備画面での一時装備)
  325.   #--------------------------------------------------------------------------
  326.   alias change_equip_KGC_EquipExtension change_equip
  327.   def change_equip(equip_type, item, test = false)
  328.     change_equip_KGC_EquipExtension(equip_type, item, test)
  329.  
  330.     # 拡張防具欄がある場合のみ
  331.     if extra_armor_number > 0
  332.       item_id = item == nil ? 0 : item.id
  333.       case equip_type
  334.       when 5..armor_number  # 拡張防具欄
  335.         @extra_armor_id = [] if @extra_armor_id == nil
  336.         @extra_armor_id[equip_type - 5] = item_id
  337.       end
  338.     end
  339.  
  340.     restore_battle_skill if $imported["SkillCPSystem"]
  341.     restore_passive_rev  if $imported["PassiveSkill"]
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● 装備の破棄
  345.   #     item : 破棄する武器 or 防具
  346.   #    武器/防具の増減で「装備品も含める」のとき使用する。
  347.   #--------------------------------------------------------------------------
  348.   alias discard_equip_KGC_EquipExtension discard_equip
  349.   def discard_equip(item)
  350.     last_armors = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  351.  
  352.     discard_equip_KGC_EquipExtension(item)
  353.  
  354.     curr_armors = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  355.     return unless item.is_a?(RPG::Armor)  # 防具でない
  356.     return if last_armors != curr_armors  # 既に破棄された
  357.  
  358.     # 拡張防具欄を検索
  359.     extra_armor_number.times { |i|
  360.       if extra_armor_id[i] == item.id
  361.         @extra_armor_id[i] = 0
  362.         break
  363.       end
  364.     }
  365.  
  366.     restore_battle_skill if $imported["SkillCPSystem"]
  367.     restore_passive_rev  if $imported["PassiveSkill"]
  368.   end
  369.   #--------------------------------------------------------------------------
  370.   # ● 職業 ID の変更
  371.   #     class_id : 新しい職業 ID
  372.   #--------------------------------------------------------------------------
  373.   alias class_id_equal_KGC_EquipExtension class_id=
  374.   def class_id=(class_id)
  375.     class_id_equal_KGC_EquipExtension(class_id)
  376.  
  377.     return if extra_armor_number == 0  # 拡張防具欄がない
  378.  
  379.     # 装備できない拡張防具を外す
  380.     for i in 5..armor_number
  381.       change_equip(i, nil) unless equippable?(equips[i])
  382.     end
  383.   end
  384.   #--------------------------------------------------------------------------
  385.   # ○ EP 条件クリア判定
  386.   #     equip_type : 装備部位
  387.   #     item       : 武器 or 防具
  388.   #--------------------------------------------------------------------------
  389.   def ep_condition_clear?(equip_type, item)
  390.     return true if item == nil  # nil は解除なので OK
  391.  
  392.     curr_item = equips[equip_type]
  393.     offset = (curr_item != nil ? curr_item.ep_cost : 0)
  394.     return false if self.ep < (item.ep_cost - offset)   # EP 不足
  395.  
  396.     return true
  397.   end
  398.   #--------------------------------------------------------------------------
  399.   # ○ 装備を修復
  400.   #--------------------------------------------------------------------------
  401.   def restore_equip
  402.     # 以前の装備品&#12539;パラメータを退避
  403.     last_equips = equips
  404.     last_hp = self.hp
  405.     last_mp = self.mp
  406.     if $imported["SkillCPSystem"]
  407.       last_battle_skill_ids = battle_skill_ids.clone
  408.     end
  409.  
  410.     # 全装備解除
  411.     last_equips.each_index { |i| change_equip(i, nil) }
  412.  
  413.     # 装備品&#12539;パラメータを復元
  414.     last_equips.compact.each { |item| equip_legal_slot(item) }
  415.     self.hp = last_hp
  416.     self.mp = last_mp
  417.     if $imported["SkillCPSystem"]
  418.       last_battle_skill_ids.each_with_index { |s, i| set_battle_skill(i, s) }
  419.     end
  420.     Graphics.frame_reset
  421.   end
  422.   #--------------------------------------------------------------------------
  423.   # ○ 装備品を正しい箇所にセット
  424.   #     item : 武器 or 防具
  425.   #--------------------------------------------------------------------------
  426.   def equip_legal_slot(item)
  427.     if item.is_a?(RPG::Weapon)
  428.       if @weapon_id == 0
  429.         # 武器 1
  430.         change_equip(0, item)
  431.       elsif two_swords_style && @armor1_id == 0
  432.         # 武器 2 (二刀流の場合)
  433.         change_equip(1, item)
  434.       end
  435.     elsif item.is_a?(RPG::Armor)
  436.       if !two_swords_style && item.kind == equip_type[0] && @armor1_id == 0
  437.         # 先頭の防具 (二刀流でない場合)
  438.         change_equip(1, item)
  439.       else
  440.         # 装備箇所リストを作成
  441.         list = [-1, @armor2_id, @armor3_id, @armor4_id]
  442.         list += extra_armor_id
  443.         # 正しい、かつ空いている箇所にセット
  444.         equip_type.each_with_index { |kind, i|
  445.           if kind == item.kind && list[i] == 0
  446.             change_equip(i + 1, item)
  447.             break
  448.           end
  449.         }
  450.       end
  451.     end
  452.   end
  453. end
  454.  
  455. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  456.  
  457. #==============================================================================
  458. # ■ Window_Base
  459. #==============================================================================
  460.  
  461. class Window_Base < Window
  462.   #--------------------------------------------------------------------------
  463.   # ○ EP の文字色を取得
  464.   #     actor : アクター
  465.   #--------------------------------------------------------------------------
  466.   def ep_color(actor)
  467.     return knockout_color if actor.maxep > 0 && actor.ep == 0
  468.     return normal_color
  469.   end
  470.   #--------------------------------------------------------------------------
  471.   # ○ EP ゲージの色 1 の取得
  472.   #--------------------------------------------------------------------------
  473.   def ep_gauge_color1
  474.     color = KGC::EquipExtension::EP_GAUGE_START_COLOR
  475.     return (color.is_a?(Integer) ? text_color(color) : color)
  476.   end
  477.   #--------------------------------------------------------------------------
  478.   # ○ EP ゲージの色 2 の取得
  479.   #--------------------------------------------------------------------------
  480.   def ep_gauge_color2
  481.     color = KGC::EquipExtension::EP_GAUGE_END_COLOR
  482.     return (color.is_a?(Integer) ? text_color(color) : color)
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ○ EP の描画
  486.   #     actor : アクター
  487.   #     x     : 描画先 X 座標
  488.   #     y     : 描画先 Y 座標
  489.   #     width : 幅
  490.   #--------------------------------------------------------------------------
  491.   def draw_actor_ep(actor, x, y, width = 120)
  492.     draw_actor_ep_gauge(actor, x, y, width)
  493.     self.contents.font.color = system_color
  494.     self.contents.draw_text(x, y, 30, WLH, Vocab::ep_a)
  495.     self.contents.font.color = ep_color(actor)
  496.     xr = x + width
  497.     if width < 120
  498.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.ep, 2)
  499.     else
  500.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.ep, 2)
  501.       self.contents.font.color = normal_color
  502.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  503.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxep, 2)
  504.     end
  505.     self.contents.font.color = normal_color
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # ○ EP ゲージの描画
  509.   #     actor : アクター
  510.   #     x     : 描画先 X 座標
  511.   #     y     : 描画先 Y 座標
  512.   #     width : 幅
  513.   #--------------------------------------------------------------------------
  514.   def draw_actor_ep_gauge(actor, x, y, width = 120)
  515.     gw = width * actor.ep / [actor.maxep, 1].max
  516.     gc1 = ep_gauge_color1
  517.     gc2 = ep_gauge_color2
  518.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  519.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  520.   end
  521.   #--------------------------------------------------------------------------
  522.   # ○ 消費 EP の描画
  523.   #     item    : 武器 or 防具
  524.   #     rect    : 描画する領域
  525.   #     enabled : 許可状態
  526.   #--------------------------------------------------------------------------
  527.   def draw_equipment_ep_cost(item, rect, enabled = true)
  528.     return if item == nil
  529.     # 消費 EP 0 を表示しない場合
  530.     return if KGC::EquipExtension::HIDE_ZERO_EP_COST && item.ep_cost == 0
  531.  
  532.     color = KGC::EquipExtension::EP_COST_COLOR
  533.     self.contents.font.color = (color.is_a?(Integer) ?
  534.       text_color(color) : color)
  535.     self.contents.font.color.alpha = enabled ? 255 : 128
  536.     self.contents.draw_text(rect, item.ep_cost, 2)
  537.   end
  538. end
  539.  
  540. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  541.  
  542. #==============================================================================
  543. # ■ Window_Equip
  544. #==============================================================================
  545.  
  546. class Window_Equip < Window_Selectable
  547.   #--------------------------------------------------------------------------
  548.   # ● リフレッシュ
  549.   #--------------------------------------------------------------------------
  550.   def refresh
  551.     self.contents.clear
  552.     @data = @actor.equips.clone
  553.     @item_max = [@data.size, @actor.armor_number + 1].min
  554.     create_contents
  555.  
  556.     # 装備箇所を描画
  557.     self.contents.font.color = system_color
  558.     if @actor.two_swords_style
  559.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
  560.       self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
  561.     else
  562.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
  563.       name = armor_slot_name(@actor.equip_type[0])
  564.       self.contents.draw_text(4, WLH * 1, 92, WLH, name)
  565.     end
  566.     for i in [email]1...@actor.armor_number[/email]
  567.       name = armor_slot_name(@actor.equip_type[i])
  568.       self.contents.draw_text(4, WLH * (i + 1), 92, WLH, name)
  569.     end
  570.  
  571.     # 装備品を描画
  572.     rect = Rect.new(92, 0, self.width - 128, WLH)
  573.     @item_max.times { |i|
  574.       rect.y = WLH * i
  575.       draw_item_name(@data[i], rect.x, rect.y)
  576.       draw_equipment_ep_cost(@data[i], rect)
  577.     }
  578.   end
  579.   #--------------------------------------------------------------------------
  580.   # ○ 防具欄の名称を取得
  581.   #     kind : 種別
  582.   #--------------------------------------------------------------------------
  583.   def armor_slot_name(kind)
  584.     case kind
  585.     when 0..3
  586.       return eval("Vocab.armor#{kind + 1}")
  587.     else
  588.       return Vocab.extra_armor(kind - 4)
  589.     end
  590.   end
  591.  
  592. unless $imported["ExtendedEquipScene"]
  593.   #--------------------------------------------------------------------------
  594.   # ● カーソルを 1 ページ後ろに移動
  595.   #--------------------------------------------------------------------------
  596.   def cursor_pagedown
  597.     return if Input.repeat?(Input::R)
  598.     super
  599.   end
  600.   #--------------------------------------------------------------------------
  601.   # ● カーソルを 1 ページ前に移動
  602.   #--------------------------------------------------------------------------
  603.   def cursor_pageup
  604.     return if Input.repeat?(Input::L)
  605.     super
  606.   end
  607.   #--------------------------------------------------------------------------
  608.   # ● フレーム更新
  609.   #--------------------------------------------------------------------------
  610.   def update
  611.     super
  612.     return unless self.active
  613.  
  614.     if Input.repeat?(Input::RIGHT)
  615.       cursor_pagedown
  616.     elsif Input.repeat?(Input::LEFT)
  617.       cursor_pageup
  618.     end
  619.   end
  620. end
  621.  
  622. end
  623.  
  624. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  625.  
  626. #==============================================================================
  627. # ■ Window_EquipItem
  628. #==============================================================================
  629.  
  630. class Window_EquipItem < Window_Item
  631.   #--------------------------------------------------------------------------
  632.   # ● リフレッシュ
  633.   #--------------------------------------------------------------------------
  634.   def refresh
  635.     @item_enabled = []
  636.     super
  637.     @data.each { |item| @item_enabled << enable?(item) }
  638.   end
  639.   #--------------------------------------------------------------------------
  640.   # ● アイテムをリストに含めるかどうか
  641.   #     item : アイテム
  642.   #--------------------------------------------------------------------------
  643.   def include?(item)
  644.     return true if item == nil
  645.     if @equip_type == 0
  646.       return false unless item.is_a?(RPG::Weapon)
  647.     else
  648.       return false unless item.is_a?(RPG::Armor)
  649.       return false unless item.kind == @equip_type - 1
  650.     end
  651.     return @actor.equippable?(item)
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ● アイテムを許可状態で表示するかどうか
  655.   #     item : アイテム
  656.   #--------------------------------------------------------------------------
  657.   def enable?(item)
  658.     return false unless @actor.equippable?(item)                      # 装備不可
  659.     return false unless @actor.ep_condition_clear?(@equip_type, item)  # EP 不足
  660.  
  661.     return true
  662.   end
  663.   #--------------------------------------------------------------------------
  664.   # ● 項目の描画
  665.   #     index : 項目番号
  666.   #--------------------------------------------------------------------------
  667.   def draw_item(index)
  668.     super(index)   
  669.     rect = item_rect(index)
  670.     item = @data[index]
  671.  
  672.     # 個数表示分の幅を削る
  673.     cw = self.contents.text_size(sprintf(":%2d", 0)).width
  674.     rect.width -= cw + 4
  675.     draw_equipment_ep_cost(item, rect, enable?(item))
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ○ 簡易リフレッシュ
  679.   #     equip_type : 装備部位
  680.   #--------------------------------------------------------------------------
  681.   def simple_refresh(equip_type)
  682.     # 一時的に装備部位を変更
  683.     last_equip_type = @equip_type
  684.     @equip_type = equip_type
  685.  
  686.     @data.each_with_index { |item, i|
  687.       # 許可状態が変化した項目のみ再描画
  688.       if enable?(item) != @item_enabled[i]
  689.         draw_item(i)
  690.         @item_enabled[i] = enable?(item)
  691.       end
  692.     }
  693.     # 装備部位を戻す
  694.     @equip_type = last_equip_type
  695.   end
  696. end
  697.  
  698. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  699.  
  700. #==============================================================================
  701. # ■ Window_EquipStatus
  702. #==============================================================================
  703.  
  704. class Window_EquipStatus < Window_Base
  705.   #--------------------------------------------------------------------------
  706.   # ● リフレッシュ
  707.   #--------------------------------------------------------------------------
  708.   alias refresh_KGC_EquipExtension refresh
  709.   def refresh
  710.     refresh_KGC_EquipExtension
  711.  
  712.     draw_actor_ep(@actor, 120, 0, 56) if KGC::EquipExtension::USE_EP_SYSTEM
  713.   end
  714. end
  715.  
  716. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  717.  
  718. #==============================================================================
  719. # ■ Window_Status
  720. #==============================================================================
  721.  
  722. class Window_Status < Window_Base
  723.  
  724. if KGC::EquipExtension::SHOW_STATUS_EP
  725.   #--------------------------------------------------------------------------
  726.   # ● 基本情報の描画
  727.   #     x : 描画先 X 座標
  728.   #     y : 描画先 Y 座標
  729.   #--------------------------------------------------------------------------
  730.   alias draw_basic_info_KGC_EquipExtension draw_basic_info
  731.   def draw_basic_info(x, y)
  732.     draw_basic_info_KGC_EquipExtension(x, y)
  733.  
  734.     draw_actor_ep(@actor, x + 180, y + WLH * 4)
  735.   end
  736. end
  737.  
  738.   #--------------------------------------------------------------------------
  739.   # ● 装備品の描画
  740.   #     x : 描画先 X 座標
  741.   #     y : 描画先 Y 座標
  742.   #--------------------------------------------------------------------------
  743.   def draw_equipments(x, y)
  744.     self.contents.font.color = system_color
  745.     self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
  746.  
  747.     item_number = [@actor.equips.size, @actor.armor_number + 1].min
  748.     item_number.times { |i|
  749.       draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
  750.     }
  751.   end
  752. end
  753.  
  754. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  755.  
  756. #==============================================================================
  757. # ■ Scene_Equip
  758. #==============================================================================
  759.  
  760. class Scene_Equip < Scene_Base
  761.   #--------------------------------------------------------------------------
  762.   # ● 定数
  763.   #--------------------------------------------------------------------------
  764.   EQUIP_TYPE_MAX = KGC::EquipExtension::EXTRA_EQUIP_KIND.size + 5
  765.   #--------------------------------------------------------------------------
  766.   # ● オブジェクト初期化
  767.   #     actor_index : アクターインデックス
  768.   #     equip_index : 装備インデックス
  769.   #--------------------------------------------------------------------------
  770.   alias initialize_KGC_EquipExtension initialize
  771.   def initialize(actor_index = 0, equip_index = 0)
  772.     initialize_KGC_EquipExtension(actor_index, equip_index)
  773.  
  774.     unit = ($imported["LargeParty"] ?
  775.       $game_party.all_members : $game_party.members)
  776.     actor = unit[actor_index]
  777.     @equip_index = [@equip_index, actor.armor_number].min
  778.   end
  779.   #--------------------------------------------------------------------------
  780.   # ● アイテムウィンドウの作成
  781.   #--------------------------------------------------------------------------
  782.   alias create_item_windows_KGC_EquipExtension create_item_windows
  783.   def create_item_windows
  784.     create_item_windows_KGC_EquipExtension
  785.  
  786.     kind = equip_kind(@equip_index)
  787.     EQUIP_TYPE_MAX.times { |i|
  788.       @item_windows[i].visible = (kind == i)
  789.     }
  790.   end
  791.   #--------------------------------------------------------------------------
  792.   # ● アイテムウィンドウの更新
  793.   #--------------------------------------------------------------------------
  794.   def update_item_windows
  795.     kind = equip_kind(@equip_window.index)
  796.     for i in 0...EQUIP_TYPE_MAX
  797.       @item_windows[i].visible = (kind == i)
  798.       @item_windows[i].update
  799.     end
  800.     @item_window = @item_windows[kind]
  801.     @item_window.simple_refresh(@equip_window.index)
  802.   end
  803.   #--------------------------------------------------------------------------
  804.   # ○ 装備欄の種別を取得
  805.   #     index : 装備欄インデックス
  806.   #--------------------------------------------------------------------------
  807.   def equip_kind(index)
  808.     if index == 0
  809.       return 0
  810.     else
  811.       return @actor.equip_type[index - 1] + 1
  812.     end
  813.   end
  814.  
  815. unless $imported["ExtendedEquipScene"]
  816.   #--------------------------------------------------------------------------
  817.   # ● ステータスウィンドウの更新
  818.   #--------------------------------------------------------------------------
  819.   def update_status_window
  820.     if @equip_window.active
  821.       @status_window.set_new_parameters(nil, nil, nil, nil)
  822.     elsif @item_window.active
  823.       temp_actor = Marshal.load(Marshal.dump(@actor))
  824.       temp_actor.change_equip(@equip_window.index, @item_window.item, true)
  825.       new_atk = temp_actor.atk
  826.       new_def = temp_actor.def
  827.       new_spi = temp_actor.spi
  828.       new_agi = temp_actor.agi
  829.       @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
  830.     end
  831.     @status_window.update
  832.   end
  833. end
  834.  
  835.   #--------------------------------------------------------------------------
  836.   # ● アイテム選択の更新
  837.   #--------------------------------------------------------------------------
  838.   alias update_item_selection_KGC_EquipExtension update_item_selection
  839.   def update_item_selection
  840.     if Input.trigger?(Input::C)
  841.       # 装備不可能な場合
  842.       index = @equip_window.index
  843.       item = @item_window.item
  844.       unless item == nil ||
  845.           (@actor.equippable?(item) && @actor.ep_condition_clear?(index, item))
  846.         Sound.play_buzzer
  847.         return
  848.       end
  849.     end
  850.  
  851.     update_item_selection_KGC_EquipExtension
  852.   end
  853. end
  854.  
  855. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  856.  
  857. #==============================================================================
  858. # ■ Scene_File
  859. #==============================================================================
  860.  
  861. class Scene_File < Scene_Base
  862.   #--------------------------------------------------------------------------
  863.   # ● セーブデータの読み込み
  864.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  865.   #--------------------------------------------------------------------------
  866.   alias read_save_data_KGC_EquipExtension read_save_data
  867.   def read_save_data(file)
  868.     read_save_data_KGC_EquipExtension(file)
  869.  
  870.     KGC::Commands.restore_equip
  871.     Graphics.frame_reset
  872.   end
  873. end

作者: a364774426    时间: 2013-4-10 15:02
把你的装备扩张脚本帖上来
作者: 彭格列第XI代    时间: 2013-4-10 16:57
把状态窗口里的坐标改下....
作者: 575539640    时间: 2013-4-13 12:07
有人能看看不?应该怎么办啊
作者: 575539640    时间: 2013-4-14 22:19
575539640 发表于 2013-4-13 12:07
有人能看看不?应该怎么办啊

我的意思是让状态里的装备分成两列来显示。。有办法吗?
作者: a364774426    时间: 2013-4-14 22:39

749行
  1. draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
复制代码
改成
  1.     if i <=5
  2.       draw_item_name(@actor.equips[i], x - 36, y + WLH * (i + 1))
  3.     else
  4.       draw_item_name(@actor.equips[i], x + 96, y + WLH * (i - 5))
  5.     end
复制代码
这样的话,左边会显示6个装备,右边显示5个装备,需要稍加修改的话,改一下“i<=5”,"i-5",即可。x值是对横坐标微调。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1