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

Project1

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

【XP】变量和开关如何在进入游戏后一部分不被初始化

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
215 小时
注册时间
2010-12-21
帖子
517
跳转到指定楼层
1
发表于 2011-12-8 18:37:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 各种压力的猫君 于 2011-12-8 19:16 编辑

只要一部分被初始化,一部分不被初始化就可以了

评分

参与人数 2星屑 0 收起 理由
各种压力的猫君 + 10 标题修正分 -W-
zhixin1997 -10 标题不符合格式,请修改

查看全部评分

没有签名

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
2
发表于 2011-12-8 18:40:22 | 只看该作者
已经存档的变量和开关都不会被初始话

点评

那是自然,那是个原点,什么都从头开始  发表于 2011-12-8 18:43
不是啊,我是说每次开游戏。。每次开游戏都会初始化的……  发表于 2011-12-8 18:41
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
700
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

3
发表于 2011-12-8 18:45:06 | 只看该作者
本帖最后由 各种压力的猫君 于 2011-12-8 19:17 编辑

把这部分不需要初始化的变量储存到文件,
然后修改脚本每次新游戏时判断是否有这个文件,
如果有就在初始化变量之后读取这个文件,如果没有则只初始化。

请编辑标题加上制作工具种类。
  1. module DUMPVARSWISETTINGS
  2.   # 不需要初始化的变量的范围,以下代表从11号-13号变量。
  3.   VAR_MIN = 11
  4.   VAR_MAX = 13
  5.   # 不需要初始化的开关的范围,以下代表从12号-16号变量。
  6.   SWI_MIN = 12
  7.   SWI_MAX = 16
  8.   # 保存的文件名
  9.   FILENAME = "Data/save_varswi.rxdata"
  10. end

  11. #==============================================================================
  12. # ■ Scene_Save
  13. #------------------------------------------------------------------------------
  14. #  处理存档画面的类。
  15. #==============================================================================

  16. class Scene_Save < Scene_File
  17.   alias old_on_decision on_decision
  18.   def on_decision(filename)
  19.     save_variables
  20.     old_on_decision(filename)
  21.   end
  22.   def save_variables
  23.     file = File.open(DUMPVARSWISETTINGS::FILENAME, "wb")
  24.     $save_variables = []
  25.     for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
  26.       $save_variables.push $game_variables[i]
  27.     end
  28.     Marshal.dump($save_variables, file)
  29.     $save_switches = []
  30.     for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
  31.       $save_switches.push $game_switches[i]
  32.     end
  33.     Marshal.dump($save_switches, file)
  34.     file.close
  35.   end
  36. end

  37. #==============================================================================
  38. # ■ Scene_Title
  39. #------------------------------------------------------------------------------
  40. #  处理标题画面的类。
  41. #==============================================================================

  42. class Scene_Title
  43.   alias old_command_new_game command_new_game
  44.   def command_new_game
  45.     old_command_new_game
  46.     if FileTest.exist?(DUMPVARSWISETTINGS::FILENAME)
  47.       file = File.open(DUMPVARSWISETTINGS::FILENAME, "rb")
  48.       $save_variables = Marshal.load(file)
  49.       $save_switches  = Marshal.load(file)
  50.       file.close
  51.       for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
  52.         $game_variables[i] = $save_variables[i - DUMPVARSWISETTINGS::VAR_MIN]
  53.       end
  54.       for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
  55.         $game_switches[i] = $save_switches[i - DUMPVARSWISETTINGS::SWI_MIN]
  56.       end
  57.     end
  58.   end
  59. end
复制代码
以上脚本插入到MAIN以上,在脚本头部可以设置不被初始化的变量、开关范围以及保存的文件名。
选择新游戏时以上设定好的变量/开关会保持最后一次存档的状态。

点评

这个,怎么判断和储存??  发表于 2011-12-8 18:47
回复 支持 反对

使用道具 举报

Lv1.梦旅人

小小的百鬼夜行<

梦石
0
星屑
54
在线时间
579 小时
注册时间
2010-7-29
帖子
2682

贵宾

4
发表于 2011-12-8 19:56:06 | 只看该作者
http://rpg.blue/thread-158035-1-1.html
超级变量外引中……
至于开关……JIONG,其实开关就是0和1,单纯变量也可以实现的吧(其实是没找到又懒的写的某人

点评

作者的不初始化,其实就是指变量在游戏开始的时候不归为0而已- -,也就是在游戏外部有一个储存变量的东西……  发表于 2011-12-9 19:01
hcm
好像完全没有关系。  发表于 2011-12-8 23:46
某只PHP/HTML小白鼠→退屈の间


Cause I knew you were trouble when you walked in
So shame is on me now
I flow me to place i ve never been
till you put me down oh
Now Im lying on the cold hard ground
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
5
发表于 2011-12-12 12:20:05 | 只看该作者
本帖最后由 zhangbanxian 于 2011-12-12 12:59 编辑

这个放到退出游戏的地方
  1. UNINITIALIZE_ID = [1,2,3,4]
  2. variables = []
  3. for i in UNINITIALIZE_ID
  4. variables[UNINITIALIZE_ID] =  $game_variables[UNINITIALIZE_ID]]
  5. save_data(variables,"不初始化的变量")
  6. end
复制代码
这个放到新游戏的地方,反正就是换掉有$game_variables=Game_Variables.new的地方就对了
  1. $game_variables= (FileTest.exist?("不初始化的变量")? load_data("不初始化的变量") :Game_Variables.new
复制代码
具体哪里我已经忘了- -b,开关同理
好歹当年也当过大魔王过,orz
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 08:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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