Project1

标题: 超简单的多背包系统 [打印本页]

作者: chd114    时间: 2018-1-20 19:19
标题: 超简单的多背包系统
RUBY 代码复制
  1. class Game_Party < Game_Unit
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对象
  4.   #--------------------------------------------------------------------------
  5.   alias old_init  initialize
  6.   def initialize
  7.     old_init
  8.     @bag_id = 0
  9.     @bags = {}
  10.     @bags[@bag_id] = {}
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 当前选择背包id
  14.   #--------------------------------------------------------------------------
  15.   def bag_id
  16.     @bag_id
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 背包组
  20.   #--------------------------------------------------------------------------
  21.   def bags
  22.     @bags
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 背包更改
  26.   #--------------------------------------------------------------------------
  27.   def bag_change(new_bag_id)
  28.     all_items.each{|item|
  29.     bags[bag_id][item]=item_number(item)
  30.     gain_item(item,-max_item_number(item))
  31.     }
  32.     @bag_id=new_bag_id
  33.     if bags[new_bag_id]
  34.       bags[new_bag_id].each{|k,v|gain_item(k,v)}
  35.     end
  36.     bags[new_bag_id]||={}
  37.   end
  38. end


主要功能:可以在不改变物品上限的情况下变相给玩家更多的物品持有量(通过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
复制代码

作者: 红十字    时间: 2021-4-18 21:56
谢谢分享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1