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

Project1

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

[原创发布] 【VA】全局开关和变量

[复制链接]

Lv5.捕梦者

梦石
0
星屑
33429
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

跳转到指定楼层
1
发表于 2021-7-29 08:28:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 芯☆淡茹水 于 2021-7-29 15:57 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # 〓 全局开关和变量 〓      By: 芯☆淡茹水
  3. #==============================================================================
  4. # 全局开关或变量,在取名时在名字前面加上 $ 符号
  5. #==============================================================================
  6. module XR_GlobalData
  7.   #--------------------------------------------------------------------------
  8.   File_name = "GlobalData"
  9.   #--------------------------------------------------------------------------
  10.   def self.filename
  11.     return File_name + ".rxdata2"
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   def self.make_empty_data
  15.     return {:switches=>{}, :variables=>{}}
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   def self.on_change(type, id, value)
  19.     @data = @data || self.make_empty_data
  20.     if @data[type]
  21.       @data[type][id] = value
  22.       file = File.open(self.filename, "wb")
  23.       Marshal.dump(@data, file)
  24.       file.close
  25.     end
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.load
  29.     @data = self.make_empty_data
  30.     if FileTest.exist?(self.filename)
  31.       file = File.open(self.filename, "rb")
  32.       @data = Marshal.load(file)
  33.       file.close
  34.     end
  35.     $game_switches.synchro(@data[:switches])
  36.     $game_variables.synchro(@data[:variables])
  37.   end
  38. end
  39. #==============================================================================
  40. class Game_Switches
  41.   #--------------------------------------------------------------------------
  42.   def is_global_switch?(switch_id)
  43.     return false if !switch_id
  44.     name = $data_system.switches[switch_id]
  45.     return !!name && !!name.match(/^\$/)
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   def synchro(hash)
  49.     hash.keys.each do |id|
  50.       @data[id] = hash[id]
  51.       on_change
  52.     end
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   alias :xr_gd_change_switch :[]=
  56.   def []=(switch_id, value)
  57.     tmp = self[switch_id]
  58.     xr_gd_change_switch(switch_id, value)
  59.     if is_global_switch?(switch_id) && tmp != self[switch_id]
  60.       XR_GlobalData.on_change(:switches, switch_id, self[switch_id])
  61.     end
  62.   end
  63. end
  64. #==============================================================================
  65. class Game_Variables
  66.   #--------------------------------------------------------------------------
  67.   def is_global_variable?(variable_id)
  68.     return false if !variable_id
  69.     name = $data_system.variables[variable_id]
  70.     return !!name && !!name.match(/^\$/)
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   def synchro(hash)
  74.     hash.keys.each do |id|
  75.       @data[id] = hash[id]
  76.       on_change
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   alias :xr_gd_change_variable :[]=
  81.   def []=(variable_id, value)
  82.     tmp = self[variable_id]
  83.     xr_gd_change_variable(variable_id, value)
  84.     if is_global_variable?(variable_id) && tmp != self[variable_id]
  85.       XR_GlobalData.on_change(:variables, variable_id, self[variable_id])
  86.     end
  87.   end
  88. end
  89. #==============================================================================
  90. class << DataManager
  91.   #--------------------------------------------------------------------------
  92.   alias xr_gd_create_game_objects create_game_objects
  93.   def create_game_objects
  94.     xr_gd_create_game_objects
  95.     XR_GlobalData.load
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   alias xr_gd_load_game_without_rescue load_game_without_rescue
  99.   def load_game_without_rescue(index)
  100.     result = xr_gd_load_game_without_rescue(index)
  101.     XR_GlobalData.load
  102.     return result
  103.   end
  104. end
  105. #==============================================================================
  106. # end
  107. #==============================================================================

评分

参与人数 1星屑 +250 +1 收起 理由
alexncf125 + 250 + 1 精品文章

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
头像被屏蔽

Lv-1.咸鱼

梦石
0
星屑
-990
在线时间
11 小时
注册时间
2022-3-14
帖子
6
受到警告 2
发表于 2022-4-16 14:11:29 | 只看该作者
提示: 该帖被管理员或版主屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2195
在线时间
193 小时
注册时间
2022-6-24
帖子
184
3
发表于 2022-7-6 00:28:19 | 只看该作者
我是白痴,请问这个的的用处是不是可以做到跨存档变量,类似于如果死了读档后角色会说你死了一次这种效果
在尝试做游戏了,但还是个菜狗(结果现在编程,音乐和剧情设计没开始学,画画也暂时没时间学了(;д;))

(个人精神状况不是很好,有时会说出一些奇怪且根本没法理解意思的话,直接无视就好,如果说出的话不小心冒犯到你,我会在精神状况良好时和你道歉的(`・ω・´)(不过一般在感觉到不适时会直接下线,请勿过于担心))
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 11:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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