Project1

标题: 如何设置双背包? [打印本页]

作者: 无忧谷主幻    时间: 2016-5-25 02:38
标题: 如何设置双背包?
记得VX有一个可以随时切换背包和合并背包的脚本,那么XP要如何做到呢?
简单来说,就是主角1走过一张地图后肯定会收集到很多物品,但轮到主角2旅行时,背包和金钱肯定是空无一物,等到2位主角会和时背包才会合并
作者: yang1zhi    时间: 2016-5-25 12:50
把两个主角的背包都各自设哈希表。
切换主角时,清空当前背包,读取要切换的角色的背包
作者: 英顺的马甲    时间: 2016-5-25 13:24
以前貌似写过
RUBY 代码复制
  1. class Game_Bag
  2.   def initialize
  3.     @data = {}
  4.   end
  5.   def method_missing(meth, *args)
  6.     begin
  7.       (@data[$game_party.actors[0].id] ||= {}).__send__(meth, *args)
  8.     rescue Exception
  9.       raise $!, $!.message, caller
  10.     end
  11.   end
  12. end
  13. $ORIG_PARTY = Game_Party.clone unless $ORIG_PARTY
  14. class Game_Party < $ORIG_PARTY
  15.   def initialize
  16.     super
  17.     @items = Game_Bag.new
  18.     @armors = Game_Bag.new
  19.     @weapons = Game_Bag.new
  20.   end
  21. end

作者: yang1zhi    时间: 2016-5-25 14:08
本帖最后由 yang1zhi 于 2016-5-25 21:21 编辑
  1.   class Game_Party
  2. attr_reader   :items
  3. attr_reader   :weapons
  4. attr_reader   :armors

  5. end

  6. def one_save_items
  7.   #保存当前物品背包到1号
  8.   $one_items = $game_party.items
  9.   #保存当前武器背包到1号
  10.   $one_weapons = $game_party.weapons
  11.   #保存当前防具背包到1号
  12.   $one_items = $game_party.armors
  13.   
  14. end  
  15. def one_loading_items
  16.   #保存当前物品背包到1号
  17.     $game_party.items = $one_items
  18.   #保存当前武器背包到1号
  19.     $game_party.weapons = $one_weapons
  20.   #保存当前防具背包到1号
  21.     $game_party.armors = $one_armors
  22.   
  23.   end  
  24.   def  hebing_items
  25.     #物品合并
  26.     while $two_items.size>0
  27.       if $one_items.keys.include?($two_items.keys[0])
  28.         $one_items[$two_items.keys[0]] += $two_items[$two_items.keys[0]]
  29.       else
  30.         $one_items[$two_items.keys[0]] = $two_items[$two_items.keys[0]]
  31.         end
  32. $two_items.delete($two_items.keys[0])
  33.         end
  34.     #武器合并
  35.     while $two_weapons.size>0
  36.       if $one_weapons.keys.include?($two_weapons.keys[0])
  37.         $one_weapons[$two_weapons.keys[0]] += $two_weapons[$two_weapons.keys[0]]
  38.       else
  39.         $one_weapons[$two_weapons.keys[0]] = $two_weapons[$two_weapons.keys[0]]
  40.         end
  41. $two_items.delete($two_items.keys[0])
  42.         end
  43.     #防具合并
  44.     while $two_armors.size>0
  45.       if $one_armors.keys.include?($two_armors.keys[0])
  46.         $one_armors[$two_armors.keys[0]] += $two_armors[$two_armors.keys[0]]
  47.       else
  48.         $one_armors[$two_armors.keys[0]] = $two_armors[$two_armors.keys[0]]
  49.         end
  50. $two_items.delete($two_items.keys[0])
  51.         end
  52.     end
复制代码
没试过,大概就是这个样子吧

忘了在合并里面添加删除已经合并的了,现在改好了
作者: cmmd1    时间: 2016-5-26 19:01
https://rpg.blue/forum.php?mod=viewthread&tid=344471
他说的是你想要的吗?




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