Project1

标题: 请问大神如何实现【记忆物品】并读取? [打印本页]

作者: 610347499    时间: 2013-5-25 20:29
标题: 请问大神如何实现【记忆物品】并读取?
小弟想做一个会更改主角的RPG,比如按剧情需要,第一关玩家使用人物一,第二关改变为人物二,用不同角色串起整个剧情。但是当玩家使用人物一,买完东西以后,到了第二关换成了人物二,吼吼,人物一的东西还在!简直如同BUG般的存在!我当然可以令第二关人物一的物品全都被丢掉,换成人物二的物品,但是当第三关换回人物一以后,当时买的东西要怎么回来?!?!?!要是能记忆物品,并在以后读取,岂不美哉?求大神帮小弟想个办法!!!!谢谢!
作者: c248611    时间: 2013-5-25 21:19

用变量带入物品的持有数量。
然后就加会物品就行了。
这样说会很抽象。
还是lz传一下附件吧。
作者: Sion    时间: 2013-5-25 22:24
本帖最后由 Sion 于 2013-5-26 10:16 编辑

2013/5/26  10:16 修改

使用方法
事件中插入脚本
  1. $game_party.save_items(x)
复制代码
x 是保存的索引,保存后,身上物品将清零。可以多次把物品存入同一个索引,读取的时候将一起读取。
要读取保存在索引 x 的物品,在事件中插入脚本
  1. $game_party.load_items(x)
复制代码
读取的物品将与现存物品合并。如果是更换角色,那就在读取之前把物品存储在别的索引处

使用范例
保存在位置1
  1. $game_party.save_items(1)
复制代码
读取位置1储存的物品
  1. $game_party.load_items(1)
复制代码
以下脚本插入于Main前
  1. class Game_Party
  2.   alias initialize_2013_5_26 initialize
  3.   def initialize
  4.     initialize_2013_5_26
  5.     @item_box = {}
  6.   end
  7.   def save_items(i)
  8.     @item_box[i] =
  9.       (@item_box[i] || {}).merge(@items) {|key, old, new|
  10.         [old + new, max_item_number(nil)].min
  11.       }
  12.     @items = {}
  13.   end
  14.   def load_items(i)
  15.     @items =
  16.       (@item_box[i] || {}).merge(@items) {|key, old, new|
  17.         [old + new, max_item_number(nil)].min
  18.       }
  19.     @item_box.delete(i)
  20.   end
  21. end
复制代码





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