查看: 4526|回复: 4

[已经解决] RXVA如何增加装备栏位?

[复制链接]
梦石
0
星屑
50
在线时间
30 小时
注册时间
2011-8-29
回帖
18
发表于 2015-5-11 11:38:04 | 显示全部楼层 |阅读模式

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

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

×
默认装备栏位共有五个:
头部、身体、武器、盾牌、饰品。

而我想要增加更多栏位来实现更自由的装备搭配,如何才能实现这一点?
有没有可能?
如果可能的话,有没有相关脚本?(我对脚本编程一窍不通,所以这也只是讨论和求助)

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-5-11 15:04:38 | 显示全部楼层
回复

使用道具 举报

梦石
0
星屑
50
在线时间
30 小时
注册时间
2011-8-29
回帖
18
 楼主| 发表于 2015-5-11 23:48:05 | 显示全部楼层
VIPArcher 发表于 2015-5-11 15:04
试试这个?https://raw.githubusercontent.com/VIPArcher/RGSS3/master/scripts/%E8%A3%85%E5%A4%87%E6%A0% ...

非常感谢!

点评

嘛……加咧个油……期待看到你的作品……  发表于 2015-5-13 13:06
回复

使用道具 举报

爪子

梦石
0
星屑
1678
在线时间
882 小时
注册时间
2014-8-28
回帖
1058
发表于 2015-5-12 08:00:44 | 显示全部楼层
[pre lang="ruby"]#==============================================================================
# 此脚本来自 www.66rpg.com
#------------------------------------------------------------------------------
#  功能:[RMVA]增加装备栏数量
#  作者:后知后觉(hzhj.tnt@163.com)
#  版本:v1.1 2012-02-20
#  使用说明:
#       1.在下面设置需要增加的数量以及增加部位的名字
#       2.在数据库-护甲-备注 里写入 @etype[位置编号]
#         默认系统一共有5个装备位置.占用了0~4号
#         所以扩展出来的装备栏位置编号是从 5 开始.比如 @etype[5]  @etype[6]
#       3.在扩展位置上给角色设置初始装备的方法
#         在 数据库-角色-备注 里写入 @add_equips[装备1ID,装备2ID.....]
#         每个ID中间由半角的 , 分开 比如 @add_equips[61] @add_equips[61,63]
#       4.设置 固定装备 的初始值
#         在 数据库-角色-备注 里写入 @fix_equips[装备位置编号,装备位置编号......]
#         每个编号间由半角的 , 分开 比如 @fix_equips[5] @fix_equips[5,6]
#       5.设置 禁用装备 的初始值
#         在 数据库-角色-备注 里写入 @seal_equips[装备位置编号,装备位置编号......]
#         每个编号间由半角的 , 分开 比如 @seal_equips[5] @seal_equips[5,6]
#       6.游戏运行时可以使用:
#           $game_actors[角色ID].fix_equips  来获取该角色被固定装备位置的数组
#           $game_actors[角色ID].seal_equips 来获取该角色被禁用装备位置的数组
#         然后可以使用数组类的 delete 和 push 方法来删除/增加 etype_id
#         来达到解除与启用 固定、禁用的效果
#         比如 $game_actors[1].fix_equips.delete(5) 解除1号角色5号位置的固定
#              $game_actors[2].seal_equips.push(6) 2号角色禁用6号装备位置
#  注意事项:
#       1.上面说的设置初始装备、固定装备、禁用装备都是只针对新扩展部位的
#         默认的前5个装备位置的固定、禁用、设置初始.还请使用RMVA默认方式设置
#       2.状态画面的描绘装备部分.在默认分辨率下.只能描绘6个装备.
#         我小改了一下.但还是觉得不怎么好看.建议你自己重新描绘那一块...
#==============================================================================
module HzhjEquip
  # 设置要增加的装备部位数量
  ETYPE_ADD_NUM = 4
  # 设置要增加的装备部位的名字
  ETYPE_ADD_NAME = ["腰带", "鞋子","披风","荣誉",]
end
def Vocab.etype(etype_id)
  etypes = $data_system.terms.etypes + HzhjEquip::ETYPE_ADD_NAME
  etypes[etype_id]
end
class RPG::Actor < RPG::BaseItem
  def add_equips
    if /@add_equips\[(.+?)\]/ =~ @note
      result = $1.split(/,/).collect{|str|str.to_i}
      result << 0 while result.size < HzhjEquip::ETYPE_ADD_NUM
    else
      result = Array.new(HzhjEquip::ETYPE_ADD_NUM){0}
    end
    result
  end
  def fix_equips
    if /@fix_equips\[(.+?)\]/ =~ @note
      result = $1.split(/,/).collect{|str|str.to_i}
    else
      result = []
    end
    result
  end
  def seal_equips
    if /@seal_equips\[(.+?)\]/ =~ @note
      result = $1.split(/,/).collect{|str|str.to_i}
    else
      result = []
    end
    result
  end
end
class RPG::Armor < RPG::EquipItem
  def etype_id
    if /@etype\[(.+?)\]/ =~ @note
      return $1.to_i
    else
      return @etype_id
    end
  end
end
class Game_Actor < Game_Battler
  attr_accessor :fix_equips
  attr_accessor :seal_equips
  alias hzhj_old_init_equips_game_actor init_equips
  def init_equips(equips)
    @fix_equips = actor.fix_equips
    @seal_equips = actor.seal_equips
    hzhj_equips = equips.clone
    add_equips = actor.add_equips
    HzhjEquip::ETYPE_ADD_NUM.times{hzhj_equips << add_equips.shift}
    hzhj_old_init_equips_game_actor(hzhj_equips)
  end
  alias hzhj_old_equip_slots_game_actor equip_slots
  def equip_slots
    result = hzhj_old_equip_slots_game_actor
    HzhjEquip::ETYPE_ADD_NUM.times{result << result.size}
    result
  end
  def equip_type_fixed?(etype_id)
    if etype_id > 4
      return @fix_equips.include?(etype_id)
    else
      return super
    end
  end
  def equip_type_sealed?(etype_id)
    if etype_id > 4
      return @seal_equips.include?(etype_id)
    else
      return super
    end
  end
end
class Window_EquipSlot < Window_Selectable
  def actor=(actor)
    return if @actor == actor
    @actor = actor
    create_contents
    refresh
  end
end
class Window_Status < Window_Selectable
  def draw_equipments(x, y)
    x = 224 if @actor.equips.size > 6
    @actor.equips.each_with_index do |item, i|
      dx = x + 146 * (i / 6)
      dy = y + line_height * (i % 6)
      draw_item_name(item, dx, dy, true, 122)
    end
  end
end[/pre]

评分

参与人数 2星屑 +200 赞 +1 收起 理由
风缠云 + 1 塞糖
taroxd + 200 认可答案

查看全部评分

个人坑《凝聚的祈愿》更新日记
网瘾少女的领域-Lofter
一时骂人一时爽,一直骂人一直爽^o^
回复 1 0

使用道具 举报

梦石
0
星屑
50
在线时间
30 小时
注册时间
2011-8-29
回帖
18
 楼主| 发表于 2015-5-14 18:52:22 | 显示全部楼层
莫言别离 发表于 2015-5-12 08:00
#==============================================================================
# 此脚本来自 www.66r ...

非常感谢!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部