设为首页 收藏本站
登录 /立即注册 /找回密码

URPGs

快捷导航
  • 门户Portal
  • 论坛BBS
  • 群组Group
  • 导读Guide
  • 家园Space
  • 工具Tools
  • 广播Follow
  • 期刊Periodical
  • 排行榜Ranklist
  • 社区茶坊
  • pixlr图片编辑
  • 资源列表
  • photobucket
  • RMVA Lite [In English]
  • RM RTP
  • TryRUBY
  • RMXP+RMVX下载[VeryCD]
  • RMVA下载[66RPG]
搜索
  • 本版
  • 帖子
  • 用户
URPGs»论坛 › 技术讨论 › 技术讨论 › RMXP用——指定存档文件夹
返回列表 发新帖
查看: 4699|回复: 2

[其他RM 讨论] RMXP用——指定存档文件夹

[复制链接]
失落的乐章
失落的乐章 当前离线
积分
18
查看详细资料 窥视卡 雷达卡
发表于 2012-8-22 21:23:51 | 显示全部楼层 |阅读模式
为什么偏偏没有XP讨论……
好了,废话不说,直接贴脚本,使用方法在注释里说的很清楚了。
  1. =begin

  2. ——指定存档文件夹V1.0


  3. 作者:失落的乐章

  4. 用途:指定一个存档文件夹,当玩家进行存读档操作时,从该文件夹中读取。脚本的原理
  5. 非常简单,我看到过一个类似的教程贴,只不过当文件夹不存在时,会出错,而且需要使
  6. 用者修改多处脚本,比较麻烦,所以我将它整合,并增加了当文件夹不存在时自动创建的
  7. 功能。

  8. 冲突可能:与各种存档增强脚本冲突。重定义Window_SaveFile,Scene_Title,Scene_File.

  9. 首发地址: http://www.sgsflz.tk/thread-258-1-1.html


  10. =end

  11. module SGS_FileDir
  12.    
  13.   DIR_NAME = "Save"  #指定存档文件夹名,建议不要使用中文。
  14.    
  15.   NEW_DIR = true      #找不到存档文件夹时是否新建?
  16.    
  17. end

  18. #==============================================================================
  19. # ■ Window_SaveFile
  20. #------------------------------------------------------------------------------
  21. #  显示存档以及读档画面、保存文件的窗口。
  22. #==============================================================================

  23. class Window_SaveFile < Window_Base
  24.    
  25.   def initialize(file_index, filename)
  26.     super(0, 64 + file_index % 4 * 104, 640, 104)
  27.     self.contents = Bitmap.new(width - 32, height - 32)
  28.     @file_index = file_index
  29.     @filename = SGS_FileDir::DIR_NAME + "/" + "Save#{@file_index + 1}.rxdata"
  30.     @time_stamp = Time.at(0)
  31.     if SGS_FileDir::NEW_DIR
  32.       unless File.directory? ("./" + SGS_FileDir::DIR_NAME)
  33.         Dir.mkdir(SGS_FileDir::DIR_NAME)
  34.       end
  35.     end
  36.     @file_exist = FileTest.exist?(@filename)
  37.     if @file_exist
  38.       file = File.open(@filename, "r")
  39.       @time_stamp = file.mtime
  40.       @characters = Marshal.load(file)
  41.       @frame_count = Marshal.load(file)
  42.       @game_system = Marshal.load(file)
  43.       @game_switches = Marshal.load(file)
  44.       @game_variables = Marshal.load(file)
  45.       @total_sec = @frame_count / Graphics.frame_rate
  46.       file.close
  47.     end
  48.     refresh
  49.     @selected = false
  50.   end
  51. end

  52. #==============================================================================
  53. # ■ Scene_Title
  54. #------------------------------------------------------------------------------
  55. #  处理标题画面的类。
  56. #==============================================================================

  57. class Scene_Title
  58.   def main
  59.     # 战斗测试的情况下
  60.     if $BTEST
  61.       battle_test
  62.       return
  63.     end
  64.     # 载入数据库
  65.     $data_actors        = load_data("Data/Actors.rxdata")
  66.     $data_classes       = load_data("Data/Classes.rxdata")
  67.     $data_skills        = load_data("Data/Skills.rxdata")
  68.     $data_items         = load_data("Data/Items.rxdata")
  69.     $data_weapons       = load_data("Data/Weapons.rxdata")
  70.     $data_armors        = load_data("Data/Armors.rxdata")
  71.     $data_enemies       = load_data("Data/Enemies.rxdata")
  72.     $data_troops        = load_data("Data/Troops.rxdata")
  73.     $data_states        = load_data("Data/States.rxdata")
  74.     $data_animations    = load_data("Data/Animations.rxdata")
  75.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  76.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  77.     $data_system        = load_data("Data/System.rxdata")
  78.     # 生成系统对像
  79.     $game_system = Game_System.new
  80.     # 生成标题图形
  81.     @sprite = Sprite.new
  82.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  83.     # 生成命令窗口
  84.     s1 = "新游戏"
  85.     s2 = "继续"
  86.     s3 = "退出"
  87.     @command_window = Window_Command.new(192, [s1, s2, s3])
  88.     @command_window.back_opacity = 160
  89.     @command_window.x = 320 - @command_window.width / 2
  90.     @command_window.y = 288
  91.     # 判定继续的有效性
  92.     # 存档文件一个也不存在的时候也调查
  93.     # 有効为 @continue_enabled 为 true、无效为 false
  94.     @continue_enabled = false
  95.     for i in 0..3
  96.       if FileTest.exist?(SGS_FileDir::DIR_NAME + "/" + "Save#{i+1}.rxdata")
  97.         @continue_enabled = true
  98.       end
  99.     end
  100.     # 继续为有效的情况下、光标停止在继续上
  101.     # 无效的情况下、继续的文字显示为灰色
  102.     if @continue_enabled
  103.       @command_window.index = 1
  104.     else
  105.       @command_window.disable_item(1)
  106.     end
  107.     # 演奏标题 BGM
  108.     $game_system.bgm_play($data_system.title_bgm)
  109.     # 停止演奏 ME、BGS
  110.     Audio.me_stop
  111.     Audio.bgs_stop
  112.     # 执行过渡
  113.     Graphics.transition
  114.     # 主循环
  115.     loop do
  116.       # 刷新游戏画面
  117.       Graphics.update
  118.       # 刷新输入信息
  119.       Input.update
  120.       # 刷新画面
  121.       update
  122.       # 如果画面被切换就中断循环
  123.       if $scene != self
  124.         break
  125.       end
  126.     end
  127.     # 装备过渡
  128.     Graphics.freeze
  129.     # 释放命令窗口
  130.     @command_window.dispose
  131.     # 释放标题图形
  132.     @sprite.bitmap.dispose
  133.     @sprite.dispose
  134.   end
  135. end

  136. #==============================================================================
  137. # ■ Scene_File
  138. #------------------------------------------------------------------------------
  139. #  存档画面及读档画面的超级类。
  140. #==============================================================================

  141. class Scene_File
  142.   def make_filename(file_index)
  143.     return SGS_FileDir::DIR_NAME + "/" + "Save#{file_index + 1}.rxdata"
  144.   end
  145. end
复制代码
文件夹

评分

参与人数 1银币 +20 收起 理由
Sonic1997 + 20 感谢分享~

查看全部评分

相关帖子

  • • RMVA用坑爹版指定存档文件夹 V1.00 by 懒之圣帝
  • • RMVA用坑爹版指定存档文件夹
回复

使用道具 举报

  • 提升卡
  • 置顶卡
  • 沉默卡
  • 喧嚣卡
  • 变色卡
  • 抢沙发
  • 千斤顶
  • 显身卡
Sonic1997
Sonic1997 当前离线
积分
212
查看详细资料 窥视卡 雷达卡
发表于 2012-8-23 07:35:12 | 显示全部楼层
没有XP讨论啥的= =
只是我没有设计图标而已了...
回复 Like Dislike

使用道具 举报

  • 显身卡
星君
星君 当前离线
积分
8
查看详细资料 窥视卡 雷达卡
发表于 2012-9-10 01:26:28 | 显示全部楼层
= =VX搞这个简单多了
具体可以去我的博客看:
http://starlive42.wordpress.com/
PS:推荐用alias

点评

失落的乐章
终于看到了这个回复……其实很久以前写这个脚本的时候我还不会用alias  发表于 2012-10-7 13:28
回复 Like Dislike

使用道具 举报

  • 显身卡
返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|意见反馈[feedback]| URPGs RPG Maker 游戏制作讨论

GMT+8, 2025-5-9 22:09 , Processed in 0.023991 second(s), 14 queries .

Powered by Discuz! X3.5

© 2011-2019 URPGs (Discuz! X3.4 © 2001-2019 Comsenz Inc.)

积分 0, 距离下一级还需 积分
快速回复 返回顶部 返回列表