查看: 2269|回复: 2

[已经过期] 怎么让一个装备可以放进三个装备栏

[复制链接]
梦石
0
星屑
319
在线时间
27 小时
注册时间
2021-8-13
回帖
2
发表于 2022-12-30 14:28:35 | 显示全部楼层 |阅读模式

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

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

×
用的是后知后觉大佬的装备扩展脚本,
2.PNG
1.PNG
[fold=插件]#==============================================================================

# 此脚本来自 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[/fold]
梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2022-12-30 15:46:05 | 显示全部楼层
改用版主VIP的装备扩展脚本
回复

使用道具 举报

梦石
0
星屑
64
在线时间
3 小时
注册时间
2022-10-28
回帖
7
发表于 2023-1-2 17:08:21 | 显示全部楼层
不用脚本就可以实现,将同一件装备复制到3个位置,(01布甲复制到02布甲,03布甲),然后人物就可以装备三件属性一样的布甲了。然而实际上系统判定人物是装备了不同的装备的,不过装备位置不同
歪比八卜,歪比歪比
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部