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

Project1

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

[已经过期] 裝備欄位增加問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
99
在线时间
158 小时
注册时间
2011-7-15
帖子
39
跳转到指定楼层
1
发表于 2013-11-7 14:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 deeg 于 2013-11-8 15:57 编辑

想要增加裝備欄位
使用的裝備擴充腳本在下面

想把增加的部分欄位放到另一個視窗
就是說,將原有的欄位加上部分新增欄位

比如說默認的1到4號加上新增的5號和6號放一個視窗
然後新增的7號到12號另外放在一個視窗
這樣該怎麼做呢?

我自己試過將Game_actor裡的equip_slot複製後修改相關名稱
但是腳本間會有衝突


RUBY 代码复制
  1. #==============================================================================
  2. # 此脚本来自 [url]www.66rpg.com[/url]
  3. #------------------------------------------------------------------------------
  4. #  功能:[RMVA]增加装备栏数量
  5. #  作者:后知后觉([email][email protected][/email])
  6. #  版本:v1.1 2012-02-20
  7. #  使用说明:
  8. #       1.在下面设置需要增加的数量以及增加部位的名字
  9. #       2.在数据库-护甲-备注 里写入 @etype[位置编号]
  10. #         默认系统一共有5个装备位置.占用了0~4号
  11. #         所以扩展出来的装备栏位置编号是从 5 开始.比如 @etype[5]  @etype[6]
  12. #
  13. #       3.在扩展位置上给角色设置初始装备的方法
  14. #         在 数据库-角色-备注 里写入 @add_equips[装备1ID,装备2ID.....]
  15. #         每个ID中间由半角的 , 分开 比如 @add_equips[61] @add_equips[61,63]
  16. #
  17. #       4.设置 固定装备 的初始值
  18. #         在 数据库-角色-备注 里写入 @fix_equips[装备位置编号,装备位置编号......]
  19. #         每个编号间由半角的 , 分开 比如 @fix_equips[5] @fix_equips[5,6]
  20. #
  21. #       5.设置 禁用装备 的初始值
  22. #         在 数据库-角色-备注 里写入 @seal_equips[装备位置编号,装备位置编号......]
  23. #         每个编号间由半角的 , 分开 比如 @seal_equips[5] @seal_equips[5,6]
  24. #
  25. #       6.游戏运行时可以使用:
  26. #           $game_actors[角色ID].fix_equips  来获取该角色被固定装备位置的数组
  27. #           $game_actors[角色ID].seal_equips 来获取该角色被禁用装备位置的数组
  28. #         然后可以使用数组类的 delete 和 push 方法来删除/增加 etype_id
  29. #         来达到解除与启用 固定、禁用的效果
  30. #         比如 $game_actors[1].fix_equips.delete(5) 解除1号角色5号位置的固定
  31. #              $game_actors[2].seal_equips.push(6) 2号角色禁用6号装备位置
  32. #
  33. #  注意事项:
  34. #       1.上面说的设置初始装备、固定装备、禁用装备都是只针对新扩展部位的
  35. #         默认的前5个装备位置的固定、禁用、设置初始.还请使用RMVA默认方式设置
  36. #       2.状态画面的描绘装备部分.在默认分辨率下.只能描绘6个装备.
  37. #         我小改了一下.但还是觉得不怎么好看.建议你自己重新描绘那一块...
  38. #==============================================================================
  39. module HzhjEquip
  40.   # 设置要增加的装备部位数量
  41.   ETYPE_ADD_NUM = 0
  42.   # 设置要增加的装备部位的名字
  43.   ETYPE_ADD_NAME = ["鞋子","戒指","飾品"]
  44. end
  45. #--------------------------------------------------------------------------
  46. # ★ 初期設定。
  47. #    合成レシピ等の設定
  48. #--------------------------------------------------------------------------
  49. def Vocab.etype(etype_id)
  50.   etypes = $data_system.terms.etypes + HzhjEquip::ETYPE_ADD_NAME
  51.   etypes[etype_id]
  52. end
  53. #--------------------------------------------------------------------------
  54. # ★
  55. #--------------------------------------------------------------------------
  56. class RPG::Actor < RPG::BaseItem
  57.   def add_equips
  58.     if /@add_equips\[(.+?)\]/ =~ @note
  59.       result = $1.split(/,/).collect{|str|str.to_i}
  60.       result << 0 while result.size < HzhjEquip::ETYPE_ADD_NUM
  61.     else
  62.       result = Array.new(HzhjEquip::ETYPE_ADD_NUM){0}
  63.     end
  64.     result
  65.   end
  66. #--------------------------------------------------------------------------
  67. # ★
  68. #--------------------------------------------------------------------------
  69.   def fix_equips
  70.     if /@fix_equips\[(.+?)\]/ =~ @note
  71.       result = $1.split(/,/).collect{|str|str.to_i}
  72.     else
  73.       result = []
  74.     end
  75.     result
  76.   end
  77. #--------------------------------------------------------------------------
  78. # ★
  79. #--------------------------------------------------------------------------
  80.   def seal_equips
  81.     if /@seal_equips\[(.+?)\]/ =~ @note
  82.       result = $1.split(/,/).collect{|str|str.to_i}
  83.     else
  84.       result = []
  85.     end
  86.     result
  87.   end
  88. end
  89. #--------------------------------------------------------------------------
  90. # ★
  91. #--------------------------------------------------------------------------
  92. class RPG::Armor < RPG::EquipItem
  93.   def etype_id
  94.     if /@etype\[(.+?)\]/ =~ @note
  95.       return $1.to_i
  96.     else
  97.       return @etype_id
  98.     end
  99.   end
  100. end
  101. #--------------------------------------------------------------------------
  102. # ★
  103. #--------------------------------------------------------------------------
  104. class Game_Actor < Game_Battler
  105.   attr_accessor :fix_equips
  106.   attr_accessor :seal_equips
  107. #--------------------------------------------------------------------------
  108. # ★
  109. #--------------------------------------------------------------------------
  110.   alias hzhj_old_init_equips_game_actor init_equips
  111.   def init_equips(equips)
  112.     @fix_equips = actor.fix_equips
  113.     @seal_equips = actor.seal_equips
  114.     hzhj_equips = equips.clone
  115.     add_equips = actor.add_equips
  116.     HzhjEquip::ETYPE_ADD_NUM.times{hzhj_equips << add_equips.shift}
  117.     hzhj_old_init_equips_game_actor(hzhj_equips)
  118.   end
  119. #--------------------------------------------------------------------------
  120. # ★
  121. #--------------------------------------------------------------------------
  122.   alias hzhj_old_equip_slots_game_actor equip_slots
  123.   def equip_slots
  124.     result = hzhj_old_equip_slots_game_actor
  125.     HzhjEquip::ETYPE_ADD_NUM.times{result << result.size}
  126.     result
  127.   end
  128.   #--------------------------------------------------------------------------
  129. # ★
  130. #--------------------------------------------------------------------------
  131.   def equip_type_fixed?(etype_id)
  132.     if etype_id > 4
  133.       return @fix_equips.include?(etype_id)
  134.     else
  135.       return super
  136.     end
  137.   end
  138.  
  139.   def equip_type_sealed?(etype_id)
  140.     if etype_id > 4
  141.       return @seal_equips.include?(etype_id)
  142.     else
  143.       return super
  144.     end
  145.   end
  146. end
  147. #--------------------------------------------------------------------------
  148. # ★
  149. #--------------------------------------------------------------------------
  150. class Window_EquipSlot < Window_Selectable
  151.   def actor=(actor)
  152.     return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
  153.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  154.     create_contents
  155.     refresh
  156.   end
  157. end
  158.  
  159. #--------------------------------------------------------------------------
  160. # ★
  161. #--------------------------------------------------------------------------
  162. class Window_Status < Window_Selectable
  163.   def draw_equipments(x, y)
  164.     x = 224 if @actor.equips.size > 7
  165.     @actor.equips.each_with_index do |item, i|
  166.       dx = x + 146 * (i / 7)
  167.       dy = y + line_height * (i % 7)
  168.       draw_item_name(item, dx, dy, true, 122)
  169.     end
  170.   end
  171. end
  
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-17 06:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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