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

Project1

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

关于角色属性的一点白痴问题

 关闭 [复制链接]

Lv1.梦旅人

星辰创始

梦石
0
星屑
65
在线时间
155 小时
注册时间
2008-3-8
帖子
611
跳转到指定楼层
1
发表于 2008-10-17 20:37:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何修改角色命中,会心,闪避率呢?

可不可以加入幸运这个属性,它可以影响掉宝率,暴击率和闪避等几率呢?

顺便问下装备位扩展的脚本哪有?
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-4
帖子
608
2
发表于 2008-10-17 22:53:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

3
发表于 2008-10-17 22:58:14 | 只看该作者
同楼上……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

4
发表于 2008-10-17 23:07:53 | 只看该作者
多么丰富的一个问题帖子啊...我忽然就有力了..

问题1:Game_Actor 参照257以下

问题2:幸运值....不在我能力范围内.

问题3:装备位扩张
      
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

  2. /_/_/_/_/_/_/_/
  3. #_/    ◆ 装備拡張 - KGC_EquipExtension ◆ VX ◆
  4. #_/    ◇ Last update : 2008/02/10 ◇
  5. #_/------------------------------------------------------------

  6. ----------------
  7. #_/  装備関連の機能を拡張します。
  8. #_/=============================================================

  9. ===============
  10. #_/ 【メニュー】≪拡張装備画面≫ より下に導入してくだ

  11. さい。
  12. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

  13. /_/_/_/_/_/_/_/

  14. #===============================================================

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

  18. ===============

  19. module KGC
  20. module EquipExtension
  21.   # ◆ 扩张的装备种类名称
  22.   #  从前面的皆下去4, 5, 6, ...
  23.   EXTRA_EQUIP_KIND = ["足", "技能書"]

  24.   # ◆ 装备的顺序
  25.   #  以这里设置的顺序接续在武器的下面
  26.   #  ※ 装备个数最低为1,否则二刀流会出错
  27.   #   ** 装备种类一览 **
  28.   #  0..盾  1..頭部  2..身体  3..装飾品  4~..↑所定義的种类
  29.   EQUIP_TYPE = [0, 1, 2, 4, 3, 3, 5]

  30.   # ◆ EP (装备点数) 制是否要使用
  31.   USE_EP_SYSTEM = true
  32.   # ◆ EP 的名称
  33.   VOCAB_EP   = "EP"
  34.   # ◆ EP 的名称 (略)
  35.   VOCAB_EP_A = "E"
  36.   # ◆ 是否在状态介面显示EP值
  37.   SHOW_STATUS_EP = true

  38.   # ◆ 装备预设 EP 消耗点数
  39.   #  没有设定EP消耗点数的装备自动加上的点数
  40.   DEFAULT_EP_COST   = 1
  41.   # ◆ 当消耗 EP 值为 0 时隐藏
  42.   HIDE_ZERO_EP_COST = true

  43.   # ◆ EP 上限
  44.   EP_MAX = 20
  45.   # ◆ EP 下限
  46.   EP_MIN = 5
  47.   # ◆ 最大 EP 公式
  48.   #   level..角色等级
  49.   #  计算後小数自动取整
  50.   EP_CALC_EXP = "level * 0.3 + 4"

  51.   # ◆ 消耗 EP 値的文字颜色 (接续在装备名称後面的文字)
  52.   #  数字  : 与 \C[n] 同样的颜色 (也就是在窗口外观设置的颜色色

  53. 号)
  54.   #  Color : 指定颜色。 ( Color.new(128, 255, 255))
  55.   EP_COST_COLOR        = 23
  56.   # ◆ EP 槽開始色
  57.   EP_GAUGE_START_COLOR = 28
  58.   # ◆ EP 槽结束色
  59.   EP_GAUGE_END_COLOR   = 29
  60. end
  61. end

  62. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  63. ☆★☆★☆★☆★

  64. $imported = {} if $imported == nil
  65. $imported["EquipExtension"] = true

  66. module KGC::EquipExtension
  67.   # EP 制を使用しない場合の設定
  68.   unless USE_EP_SYSTEM
  69.     SHOW_STATUS_EP = false
  70.     HIDE_ZERO_EP_COST = true
  71.   end

  72.   # 正規表現
  73.   module Regexp
  74.     # ベースアイテム
  75.     module BaseItem
  76.       # 消費 EP
  77.       EP_COST = /<EP\s*(\d+)>/i
  78.       # 装備タイプ
  79.       EQUIP_TYPE = /<(?:EQUIP_TYPE|装備タイプ)\s*(\d+

  80. (?:\s*,\s*\d+)*)>/
  81.     end

  82.     # 防具
  83.     module Armor
  84.       # 装備種別
  85.       EQUIP_KIND = /<(?:EQUIP_KIND|装備種別)\s*(.+)>/i
  86.     end
  87.   end
  88. end

  89. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  90. ☆★☆★☆★☆★

  91. #===============================================================

  92. ===============
  93. # □ KGC::Commands
  94. #===============================================================

  95. ===============

  96. module KGC::Commands
  97.   module_function
  98.   #------------------------------------------------------------

  99. --------------
  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.   # ○ アクターの装備タイプを設定
  112.   #     actor_id   : アクター ID
  113.   #     equip_type : 装備タイプ
  114.   #------------------------------------------------------------

  115. --------------
  116.   def set_actor_equip_type(actor_id, equip_type = nil)
  117.     actor = $game_actors[actor_id]
  118.     return if actor == nil
  119.     actor.equip_type = equip_type
  120.   end
  121. end

  122. class Game_Interpreter
  123.   include KGC::Commands
  124. end

  125. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  126. ☆★☆★☆★☆★

  127. #===============================================================

  128. ===============
  129. # ■ Vocab
  130. #===============================================================

  131. ===============

  132. module Vocab
  133.   # EP
  134.   def self.ep
  135.     return KGC::EquipExtension::VOCAB_EP
  136.   end

  137.   # EP (略)
  138.   def self.ep_a
  139.     return KGC::EquipExtension::VOCAB_EP_A
  140.   end

  141.   # 拡張防具欄
  142.   def self.extra_armor(index)
  143.     return KGC::EquipExtension::EXTRA_EQUIP_KIND[index]
  144.   end
  145. end

  146. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  147. ☆★☆★☆★☆★

  148. #===============================================================

  149. ===============
  150. # ■ RPG::BaseItem
  151. #===============================================================

  152. ===============

  153. class RPG::BaseItem
  154.   #------------------------------------------------------------

  155. --------------
  156.   # ○ 装備拡張のキャッシュを作成
  157.   #------------------------------------------------------------

  158. --------------
  159.   def create_equip_extension_cache
  160.     @__ep_cost = KGC::EquipExtension::DEFAULT_EP_COST
  161.     @__equip_type = []

  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.     # EP 制を使用しない場合は消費 EP = 0
  176.     @__ep_cost = 0 unless KGC::EquipExtension::USE_EP_SYSTEM
  177.   end
  178.   #------------------------------------------------------------

  179. --------------
  180.   # ○ 消費 EP
  181.   #------------------------------------------------------------

  182. --------------
  183.   def ep_cost
  184.     create_equip_extension_cache if @__ep_cost == nil
  185.     return @__ep_cost
  186.   end
  187.   #------------------------------------------------------------

  188. --------------
  189.   # ○ 装備タイプ
  190.   #------------------------------------------------------------

  191. --------------
  192.   def equip_type
  193.     create_equip_extension_cache if @__equip_type == nil
  194.     return @__equip_type
  195.   end
  196. end

  197. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  198. ☆★☆★☆★☆★

  199. #===============================================================

  200. ===============
  201. # ■ RPG::Armor
  202. #===============================================================

  203. ===============

  204. class RPG::Armor < RPG::BaseItem
  205.   #------------------------------------------------------------

  206. --------------
  207.   # ○ 装備拡張のキャッシュを作成
  208.   #------------------------------------------------------------

  209. --------------
  210.   def create_equip_extension_cache
  211.     super
  212.     @__kind = -1

  213.     self.note.split(/[\r\n]+/).each { |line|
  214.       if line =~ KGC::EquipExtension::Regexp::Armor::EQUIP_KIND
  215.         # 装備タイプ
  216.         e_index = KGC::EquipExtension::EXTRA_EQUIP_KIND.index

  217. ($1)
  218.         next if e_index == nil
  219.         @__kind = e_index + 4
  220.       end
  221.     }
  222.   end

  223. unless $@
  224.   #------------------------------------------------------------

  225. --------------
  226.   # ○ 種別
  227.   #------------------------------------------------------------

  228. --------------
  229.   alias kind_KGC_EquipExtension kind
  230.   def kind
  231.     create_equip_extension_cache if @__kind == nil
  232.     return (@__kind == -1 ? kind_KGC_EquipExtension : @__kind)
  233.   end
  234. end

  235. end

  236. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  237. ☆★☆★☆★☆★

  238. #===============================================================

  239. ===============
  240. # ■ Game_Actor
  241. #===============================================================

  242. ===============

  243. class Game_Actor < Game_Battler
  244.   #------------------------------------------------------------

  245. --------------
  246.   # ● 公開インスタンス変数
  247.   #------------------------------------------------------------

  248. --------------
  249.   attr_writer   :equip_type               # 装備タイプ
  250.   #------------------------------------------------------------

  251. --------------
  252.   # ● セットアップ
  253.   #     actor_id : アクター ID
  254.   #------------------------------------------------------------

  255. --------------
  256.   alias setup_KGC_EquipExtension setup
  257.   def setup(actor_id)
  258.     actor = $data_actors[actor_id]
  259.     @extra_armor_id = []

  260.     setup_KGC_EquipExtension(actor_id)

  261.     restore_equip
  262.   end
  263.   #------------------------------------------------------------

  264. --------------
  265.   # ○ MaxEP 取得
  266.   #------------------------------------------------------------

  267. --------------
  268.   def maxep
  269.     n = Integer(eval(KGC::EquipExtension::EP_CALC_EXP))
  270.     return [[n, ep_limit].min, KGC::EquipExtension::EP_MIN].max
  271.   end
  272.   #------------------------------------------------------------

  273. --------------
  274.   # ○ EP 取得
  275.   #------------------------------------------------------------

  276. --------------
  277.   def ep
  278.     n = 0
  279.     equips.compact.each { |item| n += item.ep_cost }
  280.     return [maxep - n, 0].max
  281.   end
  282.   #------------------------------------------------------------

  283. --------------
  284.   # ○ EP 上限取得
  285.   #------------------------------------------------------------

  286. --------------
  287.   def ep_limit
  288.     return KGC::EquipExtension::EP_MAX
  289.   end
  290.   #------------------------------------------------------------

  291. --------------
  292.   # ○ 防具欄の取得
  293.   #------------------------------------------------------------

  294. --------------
  295.   def equip_type
  296.     if @equip_type.is_a?(Array)
  297.       return @equip_type
  298.     else
  299.       return KGC::EquipExtension::EQUIP_TYPE
  300.     end
  301.   end
  302.   #------------------------------------------------------------

  303. --------------
  304.   # ○ 防具欄の数
  305.   #------------------------------------------------------------

  306. --------------
  307.   def armor_number
  308.     return equip_type.size
  309.   end
  310.   #------------------------------------------------------------

  311. --------------
  312.   # ○ 拡張防具欄の数
  313.   #------------------------------------------------------------

  314. --------------
  315.   def extra_armor_number
  316.     return [armor_number - 4, 0].max
  317.   end
  318.   #------------------------------------------------------------

  319. --------------
  320.   # ○ 防具 ID リストの取得
  321.   #------------------------------------------------------------

  322. --------------
  323.   def extra_armor_id
  324.     @extra_armor_id = [] if @extra_armor_id == nil
  325.     return @extra_armor_id
  326.   end
  327.   #------------------------------------------------------------

  328. --------------
  329.   # ● 防具オブジェクトの配列取得
  330.   #------------------------------------------------------------

  331. --------------
  332.   alias armors_KGC_EquipExtension armors
  333.   def armors
  334.     result = armors_KGC_EquipExtension

  335.     # 5番目以降の防具を追加
  336.     extra_armor_number.times { |i|
  337.       armor_id = extra_armor_id[i]
  338.       result << (armor_id == nil ? nil : $data_armors[armor_id])
  339.     }
  340.     return result
  341.   end
  342.   #------------------------------------------------------------

  343. --------------
  344.   # ● 装備の変更 (オブジェクトで指定)
  345.   #     equip_type : 装備部位
  346.   #     item       : 武器 or 防具 (nil なら装備解除)
  347.   #     test       : テストフラグ (戦闘テスト、または装備画面で

  348. の一時装備)
  349.   #------------------------------------------------------------

  350. --------------
  351.   alias change_equip_KGC_EquipExtension change_equip
  352.   def change_equip(equip_type, item, test = false)
  353.     change_equip_KGC_EquipExtension(equip_type, item, test)

  354.     # 拡張防具欄がある場合のみ
  355.     if extra_armor_number > 0
  356.       item_id = item == nil ? 0 : item.id
  357.       case equip_type
  358.       when 5..armor_number  # 拡張防具欄
  359.         @extra_armor_id = [] if @extra_armor_id == nil
  360.         @extra_armor_id[equip_type - 5] = item_id
  361.       end
  362.     end

  363.     restore_battle_skill if $imported["SkillCPSystem"]
  364.     restore_passive_rev  if $imported["PassiveSkill"]
  365.   end
  366.   #------------------------------------------------------------

  367. --------------
  368.   # ● 装備の破棄
  369.   #     item : 破棄する武器 or 防具
  370.   #    武器/防具の増減で「装備品も含める」のとき使用する。
  371.   #------------------------------------------------------------

  372. --------------
  373.   alias discard_equip_KGC_EquipExtension discard_equip
  374.   def discard_equip(item)
  375.     last_armors = [@armor1_id, @armor2_id, @armor3_id,

  376. @armor4_id]

  377.     discard_equip_KGC_EquipExtension(item)

  378.     curr_armors = [@armor1_id, @armor2_id, @armor3_id,

  379. @armor4_id]
  380.     return unless item.is_a?(RPG::Armor)  # 防具でない
  381.     return if last_armors != curr_armors  # 既に破棄された

  382.     # 拡張防具欄を検索
  383.     extra_armor_number.times { |i|
  384.       if extra_armor_id[i] == item.id
  385.         @extra_armor_id[i] = 0
  386.         break
  387.       end
  388.     }

  389.     restore_battle_skill if $imported["SkillCPSystem"]
  390.     restore_passive_rev  if $imported["PassiveSkill"]
  391.   end
  392.   #------------------------------------------------------------

  393. --------------
  394.   # ● 職業 ID の変更
  395.   #     class_id : 新しい職業 ID
  396.   #------------------------------------------------------------

  397. --------------
  398.   alias class_id_equal_KGC_EquipExtension class_id=
  399.   def class_id=(class_id)
  400.     class_id_equal_KGC_EquipExtension(class_id)

  401.     return if extra_armor_number == 0  # 拡張防具欄がない

  402.     # 装備できない拡張防具を外す
  403.     for i in 5..armor_number
  404.       change_equip(i, nil) unless equippable?(equips[i])
  405.     end
  406.   end
  407.   #------------------------------------------------------------

  408. --------------
  409.   # ○ EP 条件クリア判定
  410.   #     equip_type : 装備部位
  411.   #     item       : 武器 or 防具
  412.   #------------------------------------------------------------

  413. --------------
  414.   def ep_condition_clear?(equip_type, item)
  415.     return true if item == nil  # nil は解除なので OK

  416.     curr_item = equips[equip_type]
  417.     offset = (curr_item != nil ? curr_item.ep_cost : 0)
  418.     return false if self.ep < (item.ep_cost - offset)   # EP 不



  419.     return true
  420.   end
  421.   #------------------------------------------------------------

  422. --------------
  423.   # ○ 装備を修復
  424.   #------------------------------------------------------------

  425. --------------
  426.   def restore_equip
  427.     # 以前の装備品・パラメータを退避
  428.     last_equips = equips
  429.     last_hp = self.hp
  430.     last_mp = self.mp
  431.     if $imported["SkillCPSystem"]
  432.       last_battle_skill_ids = battle_skill_ids.clone
  433.     end

  434.     # 全装備解除
  435.     last_equips.each_index { |i| change_equip(i, nil) }

  436.     # 装備品・パラメータを復元
  437.     last_equips.compact.each { |item| equip_legal_slot(item) }
  438.     self.hp = last_hp
  439.     self.mp = last_mp
  440.     if $imported["SkillCPSystem"]
  441.       last_battle_skill_ids.each_with_index { |s, i|

  442. set_battle_skill(i, s) }
  443.     end
  444.     Graphics.frame_reset
  445.   end
  446.   #------------------------------------------------------------

  447. --------------
  448.   # ○ 装備品を正しい箇所にセット
  449.   #     item : 武器 or 防具
  450.   #------------------------------------------------------------

  451. --------------
  452.   def equip_legal_slot(item)
  453.     if item.is_a?(RPG::Weapon)
  454.       if @weapon_id == 0
  455.         # 武器 1
  456.         change_equip(0, item)
  457.       elsif two_swords_style && @armor1_id == 0
  458.         # 武器 2 (二刀流の場合)
  459.         change_equip(1, item)
  460.       end
  461.     elsif item.is_a?(RPG::Armor)
  462.       if !two_swords_style && item.kind == equip_type[0] &&

  463. @armor1_id == 0
  464.         # 先頭の防具 (二刀流でない場合)
  465.         change_equip(1, item)
  466.       else
  467.         # 装備箇所リストを作成
  468.         list = [-1, @armor2_id, @armor3_id, @armor4_id]
  469.         list += extra_armor_id
  470.         # 正しい、かつ空いている箇所にセット
  471.         equip_type.each_with_index { |kind, i|
  472.           if kind == item.kind && list[i] == 0
  473.             change_equip(i + 1, item)
  474.             break
  475.           end
  476.         }
  477.       end
  478.     end
  479.   end
  480. end

  481. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  482. ☆★☆★☆★☆★

  483. #===============================================================

  484. ===============
  485. # ■ Window_Base
  486. #===============================================================

  487. ===============

  488. class Window_Base < Window
  489.   #------------------------------------------------------------

  490. --------------
  491.   # ○ EP の文字色を取得
  492.   #     actor : アクター
  493.   #------------------------------------------------------------

  494. --------------
  495.   def ep_color(actor)
  496.     return knockout_color if actor.maxep > 0 && actor.ep == 0
  497.     return normal_color
  498.   end
  499.   #------------------------------------------------------------

  500. --------------
  501.   # ○ EP ゲージの色 1 の取得
  502.   #------------------------------------------------------------

  503. --------------
  504.   def ep_gauge_color1
  505.     color = KGC::EquipExtension::EP_GAUGE_START_COLOR
  506.     return (color.is_a?(Integer) ? text_color(color) : color)
  507.   end
  508.   #------------------------------------------------------------

  509. --------------
  510.   # ○ EP ゲージの色 2 の取得
  511.   #------------------------------------------------------------

  512. --------------
  513.   def ep_gauge_color2
  514.     color = KGC::EquipExtension::EP_GAUGE_END_COLOR
  515.     return (color.is_a?(Integer) ? text_color(color) : color)
  516.   end
  517.   #------------------------------------------------------------

  518. --------------
  519.   # ○ EP の描画
  520.   #     actor : アクター
  521.   #     x     : 描画先 X 座標
  522.   #     y     : 描画先 Y 座標
  523.   #     width : 幅
  524.   #------------------------------------------------------------

  525. --------------
  526.   def draw_actor_ep(actor, x, y, width = 120)
  527.     draw_actor_ep_gauge(actor, x, y, width)
  528.     self.contents.font.color = system_color
  529.     self.contents.draw_text(x, y, 30, WLH, Vocab::ep_a)
  530.     self.contents.font.color = ep_color(actor)
  531.     xr = x + width
  532.     if width < 120
  533.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.ep, 2)
  534.     else
  535.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.ep, 2)
  536.       self.contents.font.color = normal_color
  537.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  538.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxep,

  539. 2)
  540.     end
  541.     self.contents.font.color = normal_color
  542.   end
  543.   #------------------------------------------------------------

  544. --------------
  545.   # ○ EP ゲージの描画
  546.   #     actor : アクター
  547.   #     x     : 描画先 X 座標
  548.   #     y     : 描画先 Y 座標
  549.   #     width : 幅
  550.   #------------------------------------------------------------

  551. --------------
  552.   def draw_actor_ep_gauge(actor, x, y, width = 120)
  553.     gw = width * actor.ep / [actor.maxep, 1].max
  554.     gc1 = ep_gauge_color1
  555.     gc2 = ep_gauge_color2
  556.     self.contents.fill_rect(x, y + WLH - 8, width, 6,

  557. gauge_back_color)
  558.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1,

  559. gc2)
  560.   end
  561.   #------------------------------------------------------------

  562. --------------
  563.   # ○ 消費 EP の描画
  564.   #     item    : 武器 or 防具
  565.   #     rect    : 描画する領域
  566.   #     enabled : 許可状態
  567.   #------------------------------------------------------------

  568. --------------
  569.   def draw_equipment_ep_cost(item, rect, enabled = true)
  570.     return if item == nil
  571.     # 消費 EP 0 を表示しない場合
  572.     return if KGC::EquipExtension::HIDE_ZERO_EP_COST &&

  573. item.ep_cost == 0

  574.     color = KGC::EquipExtension::EP_COST_COLOR
  575.     self.contents.font.color = (color.is_a?(Integer) ?
  576.       text_color(color) : color)
  577.     self.contents.font.color.alpha = enabled ? 255 : 128
  578.     self.contents.draw_text(rect, item.ep_cost, 2)
  579.   end
  580. end

  581. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  582. ☆★☆★☆★☆★

  583. #===============================================================

  584. ===============
  585. # ■ Window_Equip
  586. #===============================================================

  587. ===============

  588. class Window_Equip < Window_Selectable
  589.   #------------------------------------------------------------

  590. --------------
  591.   # ● リフレッシュ
  592.   #------------------------------------------------------------

  593. --------------
  594.   def refresh
  595.     self.contents.clear
  596.     @data = @actor.equips.clone
  597.     @item_max = [@data.size, @actor.armor_number + 1].min
  598.     create_contents

  599.     # 装備箇所を描画
  600.     self.contents.font.color = system_color
  601.     if @actor.two_swords_style
  602.       self.contents.draw_text(4, WLH * 0, 92, WLH,

  603. Vocab::weapon1)
  604.       self.contents.draw_text(4, WLH * 1, 92, WLH,

  605. Vocab::weapon2)
  606.     else
  607.       self.contents.draw_text(4, WLH * 0, 92, WLH,

  608. Vocab::weapon)
  609.       name = armor_slot_name(@actor.equip_type[0])
  610.       self.contents.draw_text(4, WLH * 1, 92, WLH, name)
  611.     end
  612.     for i in [email protected]_number
  613.       name = armor_slot_name(@actor.equip_type[i])
  614.       self.contents.draw_text(4, WLH * (i + 1), 92, WLH, name)
  615.     end

  616.     # 装備品を描画
  617.     rect = Rect.new(92, 0, self.width - 128, WLH)
  618.     @item_max.times { |i|
  619.       rect.y = WLH * i
  620.       draw_item_name(@data[i], rect.x, rect.y)
  621.       draw_equipment_ep_cost(@data[i], rect)
  622.     }
  623.   end
  624.   #------------------------------------------------------------

  625. --------------
  626.   # ○ 防具欄の名称を取得
  627.   #     kind : 種別
  628.   #------------------------------------------------------------

  629. --------------
  630.   def armor_slot_name(kind)
  631.     case kind
  632.     when 0..3
  633.       return eval("Vocab.armor#{kind + 1}")
  634.     else
  635.       return Vocab.extra_armor(kind - 4)
  636.     end
  637.   end

  638. unless $imported["ExtendedEquipScene"]
  639.   #------------------------------------------------------------

  640. --------------
  641.   # ● カーソルを 1 ページ後ろに移動
  642.   #------------------------------------------------------------

  643. --------------
  644.   def cursor_pagedown
  645.     return if Input.repeat?(Input::R)
  646.     super
  647.   end
  648.   #------------------------------------------------------------

  649. --------------
  650.   # ● カーソルを 1 ページ前に移動
  651.   #------------------------------------------------------------

  652. --------------
  653.   def cursor_pageup
  654.     return if Input.repeat?(Input::L)
  655.     super
  656.   end
  657.   #------------------------------------------------------------

  658. --------------
  659.   # ● フレーム更新
  660.   #------------------------------------------------------------

  661. --------------
  662.   def update
  663.     super
  664.     return unless self.active

  665.     if Input.repeat?(Input::RIGHT)
  666.       cursor_pagedown
  667.     elsif Input.repeat?(Input::LEFT)
  668.       cursor_pageup
  669.     end
  670.   end
  671. end

  672. end

  673. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  674. ☆★☆★☆★☆★

  675. #===============================================================

  676. ===============
  677. # ■ Window_EquipItem
  678. #===============================================================

  679. ===============

  680. class Window_EquipItem < Window_Item
  681.   #------------------------------------------------------------

  682. --------------
  683.   # ● リフレッシュ
  684.   #------------------------------------------------------------

  685. --------------
  686.   def refresh
  687.     @item_enabled = []
  688.     super
  689.     @data.each { |item| @item_enabled << enable?(item) }
  690.   end
  691.   #------------------------------------------------------------

  692. --------------
  693.   # ● アイテムをリストに含めるかどうか
  694.   #     item : アイテム
  695.   #------------------------------------------------------------

  696. --------------
  697.   def include?(item)
  698.     return true if item == nil
  699.     if @equip_type == 0
  700.       return false unless item.is_a?(RPG::Weapon)
  701.     else
  702.       return false unless item.is_a?(RPG::Armor)
  703.       return false unless item.kind == @equip_type - 1
  704.     end
  705.     return @actor.equippable?(item)
  706.   end
  707.   #------------------------------------------------------------

  708. --------------
  709.   # ● アイテムを許可状態で表示するかどうか
  710.   #     item : アイテム
  711.   #------------------------------------------------------------

  712. --------------
  713.   def enable?(item)
  714.     return false unless @actor.equippable?(item)                 

  715.      # 装備不可
  716.     return false unless @actor.ep_condition_clear?(@equip_type,

  717. item)  # EP 不足

  718.     return true
  719.   end
  720.   #------------------------------------------------------------

  721. --------------
  722.   # ● 項目の描画
  723.   #     index : 項目番号
  724.   #------------------------------------------------------------

  725. --------------
  726.   def draw_item(index)
  727.     super(index)   
  728.     rect = item_rect(index)
  729.     item = @data[index]

  730.     # 個数表示分の幅を削る
  731.     cw = self.contents.text_size(sprintf(":%2d", 0)).width
  732.     rect.width -= cw + 4
  733.     draw_equipment_ep_cost(item, rect, enable?(item))
  734.   end
  735.   #------------------------------------------------------------

  736. --------------
  737.   # ○ 簡易リフレッシュ
  738.   #     equip_type : 装備部位
  739.   #------------------------------------------------------------

  740. --------------
  741.   def simple_refresh(equip_type)
  742.     # 一時的に装備部位を変更
  743.     last_equip_type = @equip_type
  744.     @equip_type = equip_type

  745.     @data.each_with_index { |item, i|
  746.       # 許可状態が変化した項目のみ再描画
  747.       if enable?(item) != @item_enabled[i]
  748.         draw_item(i)
  749.         @item_enabled[i] = enable?(item)
  750.       end
  751.     }
  752.     # 装備部位を戻す
  753.     @equip_type = last_equip_type
  754.   end
  755. end

  756. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  757. ☆★☆★☆★☆★

  758. #===============================================================

  759. ===============
  760. # ■ Window_EquipStatus
  761. #===============================================================

  762. ===============

  763. class Window_EquipStatus < Window_Base
  764.   #------------------------------------------------------------

  765. --------------
  766.   # ● リフレッシュ
  767.   #------------------------------------------------------------

  768. --------------
  769.   alias refresh_KGC_EquipExtension refresh
  770.   def refresh
  771.     refresh_KGC_EquipExtension

  772.     draw_actor_ep(@actor, 120, 0, 56) if

  773. KGC::EquipExtension::USE_EP_SYSTEM
  774.   end
  775. end

  776. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  777. ☆★☆★☆★☆★

  778. #===============================================================

  779. ===============
  780. # ■ Window_Status
  781. #===============================================================

  782. ===============

  783. class Window_Status < Window_Base

  784. if KGC::EquipExtension::SHOW_STATUS_EP
  785.   #------------------------------------------------------------

  786. --------------
  787.   # ● 基本情報の描画
  788.   #     x : 描画先 X 座標
  789.   #     y : 描画先 Y 座標
  790.   #------------------------------------------------------------

  791. --------------
  792.   alias draw_basic_info_KGC_EquipExtension draw_basic_info
  793.   def draw_basic_info(x, y)
  794.     draw_basic_info_KGC_EquipExtension(x, y)

  795.     draw_actor_ep(@actor, x + 160, y + WLH * 4)
  796.   end
  797. end

  798.   #------------------------------------------------------------

  799. --------------
  800.   # ● 装備品の描画
  801.   #     x : 描画先 X 座標
  802.   #     y : 描画先 Y 座標
  803.   #------------------------------------------------------------

  804. --------------
  805.   def draw_equipments(x, y)
  806.     self.contents.font.color = system_color
  807.     self.contents.draw_text(x, y, 120, WLH, Vocab::equip)

  808.     item_number = [@actor.equips.size, @actor.armor_number +

  809. 1].min
  810.     item_number.times { |i|
  811.       draw_item_name(@actor.equips[i], x + 16, y + WLH * (i +

  812. 1))
  813.     }
  814.   end
  815. end

  816. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  817. ☆★☆★☆★☆★

  818. #===============================================================

  819. ===============
  820. # ■ Scene_Equip
  821. #===============================================================

  822. ===============

  823. class Scene_Equip < Scene_Base
  824.   #------------------------------------------------------------

  825. --------------
  826.   # ● 定数
  827.   #------------------------------------------------------------

  828. --------------
  829.   EQUIP_TYPE_MAX = KGC::EquipExtension::EXTRA_EQUIP_KIND.size +

  830. 5
  831.   #------------------------------------------------------------

  832. --------------
  833.   # ● オブジェクト初期化
  834.   #     actor_index : アクターインデックス
  835.   #     equip_index : 装備インデックス
  836.   #------------------------------------------------------------

  837. --------------
  838.   alias initialize_KGC_EquipExtension initialize
  839.   def initialize(actor_index = 0, equip_index = 0)
  840.     initialize_KGC_EquipExtension(actor_index, equip_index)

  841.     unit = ($imported["LargeParty"] ?
  842.       $game_party.all_members : $game_party.members)
  843.     actor = unit[actor_index]
  844.     @equip_index = [@equip_index, actor.armor_number].min
  845.   end
  846.   #------------------------------------------------------------

  847. --------------
  848.   # ● アイテムウィンドウの作成
  849.   #------------------------------------------------------------

  850. --------------
  851.   alias create_item_windows_KGC_EquipExtension

  852. create_item_windows
  853.   def create_item_windows
  854.     create_item_windows_KGC_EquipExtension

  855.     kind = equip_kind(@equip_index)
  856.     EQUIP_TYPE_MAX.times { |i|
  857.       @item_windows[i].visible = (kind == i)
  858.     }
  859.   end
  860.   #------------------------------------------------------------

  861. --------------
  862.   # ● アイテムウィンドウの更新
  863.   #------------------------------------------------------------

  864. --------------
  865.   def update_item_windows
  866.     kind = equip_kind(@equip_window.index)
  867.     for i in 0...EQUIP_TYPE_MAX
  868.       @item_windows[i].visible = (kind == i)
  869.       @item_windows[i].update
  870.     end
  871.     @item_window = @item_windows[kind]
  872.     @item_window.simple_refresh(@equip_window.index)
  873.   end
  874.   #------------------------------------------------------------

  875. --------------
  876.   # ○ 装備欄の種別を取得
  877.   #     index : 装備欄インデックス
  878.   #------------------------------------------------------------

  879. --------------
  880.   def equip_kind(index)
  881.     if index == 0
  882.       return 0
  883.     else
  884.       return @actor.equip_type[index - 1] + 1
  885.     end
  886.   end

  887. unless $imported["ExtendedEquipScene"]
  888.   #------------------------------------------------------------

  889. --------------
  890.   # ● ステータスウィンドウの更新
  891.   #------------------------------------------------------------

  892. --------------
  893.   def update_status_window
  894.     if @equip_window.active
  895.       @status_window.set_new_parameters(nil, nil, nil, nil)
  896.     elsif @item_window.active
  897.       temp_actor = Marshal.load(Marshal.dump(@actor))
  898.       temp_actor.change_equip(@equip_window.index,

  899. @item_window.item, true)
  900.       new_atk = temp_actor.atk
  901.       new_def = temp_actor.def
  902.       new_spi = temp_actor.spi
  903.       new_agi = temp_actor.agi
  904.       @status_window.set_new_parameters(new_atk, new_def,

  905. new_spi, new_agi)
  906.     end
  907.     @status_window.update
  908.   end
  909. end

  910.   #------------------------------------------------------------

  911. --------------
  912.   # ● アイテム選択の更新
  913.   #------------------------------------------------------------

  914. --------------
  915.   alias update_item_selection_KGC_EquipExtension

  916. update_item_selection
  917.   def update_item_selection
  918.     if Input.trigger?(Input::C)
  919.       # 装備不可能な場合
  920.       index = @equip_window.index
  921.       item = @item_window.item
  922.       unless item == nil ||
  923.           (@actor.equippable?(item) &&

  924. @actor.ep_condition_clear?(index, item))
  925.         Sound.play_buzzer
  926.         return
  927.       end
  928.     end

  929.     update_item_selection_KGC_EquipExtension
  930.   end
  931. end

  932. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  933. ☆★☆★☆★☆★

  934. #===============================================================

  935. ===============
  936. # ■ Scene_File
  937. #===============================
复制代码

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-4
帖子
608
5
发表于 2008-10-17 23:12:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

星辰创始

梦石
0
星屑
65
在线时间
155 小时
注册时间
2008-3-8
帖子
611
6
 楼主| 发表于 2008-10-18 02:25:40 | 只看该作者
可以最多追加1000分……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-4
帖子
608
7
发表于 2008-10-18 03:00:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

8
发表于 2008-10-18 03:05:06 | 只看该作者
我纯粹是为了好人卡而答题的……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

9
发表于 2008-10-18 03:07:55 | 只看该作者
{/fd}...这个..算部分认可...
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

10
发表于 2008-10-18 03:15:57 | 只看该作者
看看你的天赋吧……不会我也没办法了………
http://rpg.blue/viewthread.php?tid=103413
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-4 17:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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