Project1
标题:
请问大神如何实现【记忆物品】并读取?
[打印本页]
作者:
610347499
时间:
2013-5-25 20:29
标题:
请问大神如何实现【记忆物品】并读取?
小弟想做一个会更改主角的RPG,比如按剧情需要,第一关玩家使用人物一,第二关改变为人物二,用不同角色串起整个剧情。但是当玩家使用人物一,买完东西以后,到了第二关换成了人物二,吼吼,人物一的东西还在!简直如同BUG般的存在!我当然可以令第二关人物一的物品全都被丢掉,换成人物二的物品,但是当第三关换回人物一以后,当时买的东西要怎么回来?!?!?!要是能记忆物品,并在以后读取,岂不美哉?求大神帮小弟想个办法!!!!谢谢!
作者:
c248611
时间:
2013-5-25 21:19
1.png
(26.18 KB, 下载次数: 16)
下载附件
保存到相册
2013-5-25 21:18 上传
用变量带入物品的持有数量。
然后就加会物品就行了。
这样说会很抽象。
还是lz传一下附件吧。
作者:
Sion
时间:
2013-5-25 22:24
本帖最后由 Sion 于 2013-5-26 10:16 编辑
2013/5/26 10:16 修改
使用方法
:
事件中插入脚本
$game_party.save_items(x)
复制代码
x 是保存的索引,保存后,身上物品将清零。可以多次把物品存入同一个索引,读取的时候将一起读取。
要读取保存在索引 x 的物品,在事件中插入脚本
$game_party.load_items(x)
复制代码
读取的物品将与现存物品合并。如果是更换角色,那就在读取之前把物品存储在别的索引处
使用范例
:
保存在位置1
$game_party.save_items(1)
复制代码
读取位置1储存的物品
$game_party.load_items(1)
复制代码
以下脚本插入于Main前
:
class Game_Party
alias initialize_2013_5_26 initialize
def initialize
initialize_2013_5_26
@item_box = {}
end
def save_items(i)
@item_box[i] =
(@item_box[i] || {}).merge(@items) {|key, old, new|
[old + new, max_item_number(nil)].min
}
@items = {}
end
def load_items(i)
@items =
(@item_box[i] || {}).merge(@items) {|key, old, new|
[old + new, max_item_number(nil)].min
}
@item_box.delete(i)
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1