设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3666|回复: 7
打印 上一主题 下一主题

[已经解决] 能不能做到让不同的存档共享金钱?

[复制链接]

Lv2.观梦者

梦石
0
星屑
809
在线时间
176 小时
注册时间
2017-1-15
帖子
81
跳转到指定楼层
1
发表于 2020-10-10 16:20:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
如题如题…………几个不同的存档,用一个钱库,要如何做呢?

最佳答案

查看完整内容

如果存档A有500G 那么, 开始新游戏时, 新游戏会有0G还是500G?? 如果是0G, 那么, 从这0G的新游戏建立存档B时, 存档A会有0G还是500G?? 存档B又会有0G还是500G?? 还是说, 你的游戏只能开始一次新游戏, 之后就不能开始新游戏, 只能存读档了?? 以下是在有500G的存档A时, 开始新游戏会有500G的脚本: =begin ================================================================================ 全局变量 By 喵呜喵5 ============== ...

Lv5.捕梦者

梦石
0
星屑
24287
在线时间
5047 小时
注册时间
2016-3-8
帖子
1618
2
发表于 2020-10-10 16:20:11 | 只看该作者
本帖最后由 alexncf125 于 2020-10-10 18:29 编辑

如果存档A有500G
那么, 开始新游戏时,
新游戏会有0G还是500G??

如果是0G,
那么, 从这0G的新游戏建立存档B时,
存档A会有0G还是500G??
存档B又会有0G还是500G??
还是说, 你的游戏只能开始一次新游戏, 之后就不能开始新游戏, 只能存读档了??
以下是在有500G的存档A时, 开始新游戏会有500G的脚本:
RUBY 代码复制
  1. =begin
  2. ================================================================================
  3.   全局变量 By 喵呜喵5
  4. ================================================================================
  5.  
  6. 【说明】
  7.  
  8.   在事件中使用脚本命令 save_var 可以把设置好的变量单独储存到一个新文件中
  9.  
  10.   在事件中使用脚本命令 load_var 可以在其他地方
  11.   (例如其他存档、或者开始新游戏时……)载入保存了的变量的值
  12.  
  13.   使用全局变量可以用来制作类似记录通关次数或者进入二周目这样的功能
  14.  
  15. =end
  16. $m5script ||= {};$m5script[:M5GV20140811] = 20151106
  17. $m5script[:ScriptData] ||= {}
  18. module M5GV20140811
  19. #==============================================================================
  20. #  设定部分
  21. #==============================================================================
  22.  
  23.   VAR = [1]
  24.  
  25.   # 在这里设置需要储存的全局变量ID
  26.  
  27.   FILENAME = "Gold.rvdata2"
  28.  
  29.   # 在这里设置储存全局变量的文件名
  30.  
  31.   AUTO = true
  32.  
  33.   # 设置为 true 的话,变量的值发生改变时自动保存全局变量
  34.  
  35.   LOAD = true
  36.  
  37.   # 设置为 true 的话,开始新游戏或者读取存档时,自动读取保存的全局变量
  38.  
  39. #==============================================================================
  40. #  设定结束
  41. #==============================================================================
  42. class << self
  43.   def load
  44.     $m5script[:ScriptData][:M5GV20140811] =
  45.       (load_data(FILENAME) rescue [nil, {}])
  46.   end
  47.   def save; save_data($m5script[:ScriptData][:M5GV20140811], FILENAME); end
  48.   def load_var
  49.     var = $m5script[:ScriptData][:M5GV20140811][0]
  50.     return unless var
  51.     var.each_with_index{|v,i| $game_variables.m5_20140811_set(VAR[i], v)}
  52.   end
  53.   def current_var
  54.     var = []
  55.     VAR.each {|index| var << $game_variables[index] }
  56.     return var
  57.   end
  58.   def save_var
  59.     $m5script[:ScriptData][:M5GV20140811][0] = current_var
  60.     save
  61.   end
  62.   def get_ext; $m5script[:ScriptData][:M5GV20140811][1]; end
  63.   def save_ext; save; end
  64.   def set_ext(key, value)
  65.     get_ext[key] = value
  66.     save
  67.   end
  68. end # class << self
  69. end
  70.  
  71. class Game_Variables
  72.   alias m5_20140811_set []=
  73.   def []=(variable_id, value)
  74.     m5_20140811_set(variable_id, value)
  75.     return unless M5GV20140811::AUTO
  76.     M5GV20140811.save_var if M5GV20140811::VAR.include?(variable_id)
  77.   end
  78. end
  79. class << DataManager
  80.   alias m5_20150320_load_game load_game
  81.   def load_game(index)
  82.     result = m5_20150320_load_game(index)
  83.     return result unless result && M5GV20140811::LOAD
  84.     M5GV20140811.load_var
  85.     result
  86.   end
  87.   alias m5_20150320_create_game_objects create_game_objects
  88.   def create_game_objects
  89.     m5_20150320_create_game_objects
  90.     return unless M5GV20140811::LOAD
  91.     M5GV20140811.load_var
  92.   end
  93. end
  94. class Game_Interpreter
  95.   def save_var; M5GV20140811.save_var; end
  96.   def load_var; M5GV20140811.load_var; end
  97. end
  98.  
  99. #==================================================
  100.  
  101. class Game_Party
  102.   attr_accessor :gold
  103. end
  104.  
  105.  
  106. class << DataManager
  107.  
  108.   alias gold_setup_new_game setup_new_game
  109.   def setup_new_game
  110.     gold_setup_new_game
  111.     $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
  112.   end
  113.  
  114.   alias gold_save_game save_game
  115.   def save_game(index)
  116.     $game_variables[M5GV20140811::VAR[0]] = $game_party.gold
  117.     gold_save_game(index)
  118.   end
  119.  
  120. end
  121.  
  122.  
  123. class Scene_Load < Scene_File
  124.  
  125.   alias gold_on_load_success on_load_success
  126.   def on_load_success
  127.     gold_on_load_success
  128.     $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
  129.   end
  130.  
  131. end
  132.  
  133. #==================================================
  134.  
  135. M5GV20140811.load

如果是要"开始新游戏时, 新游戏会有0G"+"从这0G的新游戏建立存档B时, 存档A会有0G",
则刪除以下的部分:
  1.   alias gold_setup_new_game setup_new_game
  2.   def setup_new_game
  3.     gold_setup_new_game
  4.     $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
  5.   end
复制代码


至于"从这0G的新游戏建立存档B时, 存档A会有500G, 存档B也会有500G"的情況, 应该(没测试)是把
= $game_party.gold
改成
= [$game_party.gold, $game_variables[M5GV20140811::VAR[0]]].max
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
471
在线时间
94 小时
注册时间
2020-8-18
帖子
37
3
发表于 2020-10-10 21:30:00 | 只看该作者
可以用独立变量?就是一个整个游戏共用的变量,需要插件,然后就是用那个变量作为金币
阿里嘎多!还是新人,请多多指教
新人作品
毒汤:https://rpg.blue/thread-482917-1-1.html
向火独行【更新ing】:https://rpg.blue/thread-483006-1-1.html
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
809
在线时间
176 小时
注册时间
2017-1-15
帖子
81
4
 楼主| 发表于 2020-10-10 22:46:08 | 只看该作者
alexncf125 发表于 2020-10-10 18:15
如果存档A有500G
那么, 开始新游戏时,
新游戏会有0G还是500G??

就是大家共用一个金钱啊
比方说,我存档A有500G,那我新建一个存档B也会有500G,然后这个存档B赚了100G有了600G,这时候其他的存档也变成有600G,如果我存档B再花掉200G,变成400G了,那其他所有的存档也会只有400G,所有的存档里的金钱都保持一致,并且一个存档赚到或花掉的钱也会同步给其他所有的存档
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24287
在线时间
5047 小时
注册时间
2016-3-8
帖子
1618
5
发表于 2020-10-10 23:50:36 | 只看该作者
本帖最后由 alexncf125 于 2020-10-11 08:24 编辑
foot1982 发表于 2020-10-10 22:46
就是大家共用一个金钱啊
比方说,我存档A有500G,那我新建一个存档B也会有500G,然后这个存档B赚了100G有 ...


所以你这整段回复都没提及" 有存档A时, 在标题画面按下开始新游戏 "的情形

另外, 你说的是不是金钱一有变化即全存档自动同步?? 比如 :
存档A有500G时, 在有500G的存档B赚了100G成了600G后,
不进行存档操作, 直接读取存档A, 存档A也会有600G

是的话, 用以下脚本, 测试完过后才告诉我有没有什么地方不符合你的想法
如果不是自动同步, 而是手动存档时才同步至每个存档的话, 则用2L的脚本
RUBY 代码复制
  1. =begin
  2.     ================================================================================
  3.       全局变量 By 喵呜喵5
  4.     ================================================================================
  5.     
  6.     【说明】
  7.     
  8.       在事件中使用脚本命令 save_var 可以把设置好的变量单独储存到一个新文件中
  9.     
  10.       在事件中使用脚本命令 load_var 可以在其他地方
  11.       (例如其他存档、或者开始新游戏时……)载入保存了的变量的值
  12.     
  13.       使用全局变量可以用来制作类似记录通关次数或者进入二周目这样的功能
  14.     
  15. =end
  16. $m5script ||= {};$m5script[:M5GV20140811] = 20151106
  17. $m5script[:ScriptData] ||= {}
  18. module M5GV20140811
  19. #==============================================================================
  20. #  设定部分
  21. #==============================================================================
  22.  
  23.   VAR = [1]
  24.  
  25.   # 在这里设置需要储存的全局变量ID
  26.  
  27.   FILENAME = "Gold.rvdata2"
  28.  
  29.   # 在这里设置储存全局变量的文件名
  30.  
  31.   AUTO = true
  32.  
  33.   # 设置为 true 的话,变量的值发生改变时自动保存全局变量
  34.  
  35.   LOAD = true
  36.  
  37.   # 设置为 true 的话,开始新游戏或者读取存档时,自动读取保存的全局变量
  38.  
  39. #==============================================================================
  40. #  设定结束
  41. #==============================================================================
  42. class << self
  43.   def load
  44.     $m5script[:ScriptData][:M5GV20140811] =
  45.       (load_data(FILENAME) rescue [nil, {}])
  46.   end
  47.   def save; save_data($m5script[:ScriptData][:M5GV20140811], FILENAME); end
  48.   def load_var
  49.     var = $m5script[:ScriptData][:M5GV20140811][0]
  50.     return unless var
  51.     var.each_with_index{|v,i| $game_variables.m5_20140811_set(VAR[i], v)}
  52.   end
  53.   def current_var
  54.     var = []
  55.     VAR.each {|index| var << $game_variables[index] }
  56.     return var
  57.   end
  58.   def save_var
  59.     $m5script[:ScriptData][:M5GV20140811][0] = current_var
  60.     save
  61.   end
  62.   def get_ext; $m5script[:ScriptData][:M5GV20140811][1]; end
  63.   def save_ext; save; end
  64.   def set_ext(key, value)
  65.     get_ext[key] = value
  66.     save
  67.   end
  68. end # class << self
  69. end
  70.  
  71. class Game_Variables
  72.   alias m5_20140811_set []=
  73.   def []=(variable_id, value)
  74.     m5_20140811_set(variable_id, value)
  75.     return unless M5GV20140811::AUTO
  76.     M5GV20140811.save_var if M5GV20140811::VAR.include?(variable_id)
  77.   end
  78. end
  79. class << DataManager
  80.   alias m5_20150320_load_game load_game
  81.   def load_game(index)
  82.     result = m5_20150320_load_game(index)
  83.     return result unless result && M5GV20140811::LOAD
  84.     M5GV20140811.load_var
  85.     result
  86.   end
  87.   alias m5_20150320_create_game_objects create_game_objects
  88.   def create_game_objects
  89.     m5_20150320_create_game_objects
  90.     return unless M5GV20140811::LOAD
  91.     M5GV20140811.load_var
  92.   end
  93. end
  94. class Game_Interpreter
  95.   def save_var; M5GV20140811.save_var; end
  96.   def load_var; M5GV20140811.load_var; end
  97. end
  98.  
  99. #==================================================
  100.  
  101. class << DataManager
  102.  
  103.   alias gold_setup_new_game setup_new_game
  104.   def setup_new_game
  105.     gold_setup_new_game
  106.     $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
  107.   end
  108.  
  109. end
  110.  
  111.  
  112. class Game_Party
  113.   attr_accessor :gold
  114. end
  115.  
  116.  
  117. class Scene_Base
  118.  
  119.   alias gold_update update
  120.   def update
  121.     if $game_variables[M5GV20140811::VAR[0]] != $game_party.gold
  122.       $game_variables[M5GV20140811::VAR[0]] = $game_party.gold
  123.     end
  124.     gold_update
  125.   end
  126.  
  127. end
  128.  
  129.  
  130. class Scene_Load < Scene_File
  131.  
  132.   alias gold_on_load_success on_load_success
  133.   def on_load_success
  134.     gold_on_load_success
  135.     $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
  136.   end
  137.  
  138. end
  139.  
  140. #==================================================
  141.  
  142. M5GV20140811.load
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33178
在线时间
10489 小时
注册时间
2009-3-15
帖子
4756
6
发表于 2020-10-11 00:58:00 | 只看该作者
这样备份全局存档不就有用不完的钱?

点评

不会有这情形吧..  发表于 2020-10-11 08:17
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
809
在线时间
176 小时
注册时间
2017-1-15
帖子
81
7
 楼主| 发表于 2020-10-11 07:48:27 | 只看该作者
alexncf125 发表于 2020-10-10 23:50
所以你这整段回复都没提及" 有存档A时, 在标题画面按下开始新游戏 "的情形

另外, 你说的是不是金钱一有 ...

哦哦- -我用了那个单存档绑定的脚本,游戏一开始就会存个档,所以没考虑过这个问题@@我这就去试试
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 20:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表