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

Project1

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

[已经解决] 关闭游戏后再进入更改永久变量导致数值异常的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
跳转到指定楼层
1
发表于 2015-10-10 11:05:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是工程:
Project4.rar (196.66 KB, 下载次数: 70)


先执行左边的事件,给变量699赋值11,给变量700赋值22,关闭游戏重新开始,按F9可以看到变量699=11,变量700=22



再执行右边的事件给变量700赋值444,发现变量699变成nil了,请教如何让变量699还能保持以前的值11



使用的脚本:
  1. $valh = {}
  2. class Game_Variables
  3.   FileVariablesID1 = [699,700]
  4.   #--------------------------------------------------------------------------
  5.   # ● 初始化
  6.   #--------------------------------------------------------------------------
  7.   def initialize
  8.     @data = []
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 获取变量
  12.   #     variable_id : 变量 ID
  13.   #--------------------------------------------------------------------------
  14.   def [](variable_id)
  15.     FileVariablesID1.each do |i|
  16.       if variable_id == i
  17.         begin
  18.           valh = load_data("TempVariables.rxdata")
  19.           val = valh[i]
  20.         rescue Errno::ENOENT
  21.           valh={}
  22.           for i in FileVariablesID1.each
  23.              valh[i]=0
  24.           end
  25.           save_data(valh, "TempVariables.rxdata")
  26.           retry
  27.         end
  28.         return val
  29.       end
  30.     end
  31.     if variable_id <= 5000 and @data[variable_id] != nil
  32.       return @data[variable_id]
  33.     else
  34.       return 0
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 设置变量
  39.   #     variable_id : 变量 ID
  40.   #     value       : 变量的值
  41.   #--------------------------------------------------------------------------
  42.   def []=(variable_id, value)
  43.     if variable_id <= 5000
  44.       @data[variable_id] = value
  45.     end
  46.     n = 0
  47.     FileVariablesID1.each do |i|
  48.       if variable_id == i
  49.         $valh[i]=@data[variable_id]
  50.         n+=1
  51.       end
  52.     end
  53.     if n > 0
  54.       save_data($valh, "TempVariables.rxdata")
  55.     end
  56.   end
  57. end
复制代码

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Tomorrow

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
2
发表于 2015-10-10 11:39:35 | 只看该作者
本帖最后由 汪汪 于 2015-10-10 11:57 编辑

$valh = {}
class Game_Variables
  FileVariablesID1 = [699,700]
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  def initialize
    @data = []
  end
  #--------------------------------------------------------------------------
  # ● 获取变量
  #     variable_id : 变量 ID
  #--------------------------------------------------------------------------
  def [](variable_id)
    FileVariablesID1.each do |i|
      if variable_id == i
        begin
          valh = load_data("TempVariables.rxdata")
          val = valh
        rescue Errno::ENOENT
          valh={}
          for i in FileVariablesID1.each
             valh=0
          end
          save_data(valh, "TempVariables.rxdata")
          retry
        end
        return val
      end
    end
    if variable_id <= 5000 and @data[variable_id] != nil
      return @data[variable_id]
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 设置变量
  #     variable_id : 变量 ID
  #     value       : 变量的值
  #--------------------------------------------------------------------------
  def []=(variable_id, value)
    if variable_id <= 5000
      @data[variable_id] = value
    end
    $valh = load_data("TempVariables.rxdata")      #加这么一句, 先把原来数据读取再在原来基础上储存新数据
    n = 0
    FileVariablesID1.each do |i|
      if variable_id == i
        $valh=@data[variable_id]
        n+=1
      end
    end
    if n > 0
      save_data($valh, "TempVariables.rxdata")
    end
  end
end

  
话说.........其实可以简单点.....在关闭时储存,打开时读取就可以了,没必要这么麻烦......




点评

多谢!  发表于 2015-10-10 12:12

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-23 03:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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