查看: 4681|回复: 2

[RMVA发布] 超简单的多背包系统

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-1-20 19:19:07 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby"]class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias old_init  initialize
  def initialize
    old_init
    @bag_id = 0
    @bags = {}
    @bags[@bag_id] = {}
  end
  #--------------------------------------------------------------------------
  # ● 当前选择背包id
  #--------------------------------------------------------------------------
  def bag_id
    @bag_id
  end
  #--------------------------------------------------------------------------
  # ● 背包组
  #--------------------------------------------------------------------------
  def bags
    @bags
  end
  #--------------------------------------------------------------------------
  # ● 背包更改
  #--------------------------------------------------------------------------
  def bag_change(new_bag_id)
    all_items.each{|item|
    bags[bag_id][item]=item_number(item)
    gain_item(item,-max_item_number(item))
    }
    @bag_id=new_bag_id
    if bags[new_bag_id]
      bags[new_bag_id].each{|k,v|gain_item(k,v)}
    end
    bags[new_bag_id]||={}
  end
end[/pre]

主要功能:可以在不改变物品上限的情况下变相给玩家更多的物品持有量(通过bag_change(new_bag_id)方法可以在各个背包间切换)
额外用途:可以通过这个系统做一个新的窗口,通过显示和调整各个背包里的东西(具体内容的调整需要自定义新方法)来达到仓库系统的效果
暂时没有发现BUG

如果已经修改或者添加Game_Party相关的内容或新插件/脚本,为了避免冲突,请找到Game_Party最后一次出现的脚本
在initialize方法内添加

  1.     @bag_id = 0
  2.     @bags = {}
  3.     @bags[@bag_id] = {}
复制代码


在脚本的最后添加

  1.   #--------------------------------------------------------------------------
  2.   # ● 当前选择背包id
  3.   #--------------------------------------------------------------------------
  4.   def bag_id
  5.     @bag_id
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 背包组
  9.   #--------------------------------------------------------------------------
  10.   def bags
  11.     @bags
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 背包更改
  15.   #--------------------------------------------------------------------------
  16.   def bag_change(new_bag_id)
  17.     all_items.each{|item|
  18.     bags[bag_id][item]=item_number(item)
  19.     gain_item(item,-max_item_number(item))
  20.     }
  21.     @bag_id=new_bag_id
  22.     if bags[new_bag_id]
  23.       bags[new_bag_id].each{|k,v|gain_item(k,v)}
  24.     end
  25.     bags[new_bag_id]||={}
  26.   end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
梦石
0
星屑
4739
在线时间
436 小时
注册时间
2008-1-18
回帖
429
发表于 2021-4-18 21:56:06 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部