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

Project1

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

[已经解决] 求VX存档脚本

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
685
在线时间
579 小时
注册时间
2010-2-15
帖子
1367
跳转到指定楼层
1
发表于 2011-10-14 21:01:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 315038639 于 2011-10-23 11:02 编辑

谁能给我一个VX用的存档脚本呢?搜了半天都没搜找,好不容易有人给了一个,也给了他分了,结果一看是XP的……

就是执行一句脚本,存档至一号位。
执行另一句脚本,读一号档位存档。

感激不尽

点评

VX不能存档吗????  发表于 2011-10-15 01:52

Lv1.梦旅人

梦石
0
星屑
50
在线时间
234 小时
注册时间
2010-10-6
帖子
768
2
发表于 2011-10-14 21:45:00 | 只看该作者
本帖最后由 壬穹雷光 于 2011-10-14 21:48 编辑

http://rpg.blue/forum.php?mod=vi ... 8%E5%AD%98%E6%A1%A3
找了一下...这是要按F5的....
还有一个http://rpg.blue/forum.php?mod=vi ... 8%E5%AD%98%E6%A1%A3
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2011-10-15
帖子
18
3
发表于 2011-10-15 08:14:41 | 只看该作者
#==============================================================================
# ■ Window_SaveFile
#------------------------------------------------------------------------------
#  显示存档以及读档画面、保存文件的窗口。
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # 文件名
  attr_reader   :file_exist               # 文件存在标志
  attr_reader   :time_stamp               # 时间戳
  attr_reader   :selected                 # 选择状态
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #     file_index : 存档文件索引 (0~3)
  #     filename   : 文件名
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    super(0, 56 + file_index % 4 * 90, 544, 90)
    @file_index = file_index
    @filename = filename
    load_gamedata
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # ● 读取部分游戏数据
  #    开关以及变量为默认则是未使用 (为表示地名而扩展) 。
  #--------------------------------------------------------------------------
  def load_gamedata
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      begin
        @characters     = Marshal.load(file)
        @frame_count    = Marshal.load(file)
        @last_bgm       = Marshal.load(file)
        @last_bgs       = Marshal.load(file)
        @game_system    = Marshal.load(file)
        @game_message   = Marshal.load(file)
        @game_switches  = Marshal.load(file)
        @game_variables = Marshal.load(file)
        @total_sec = @frame_count / Graphics.frame_rate
      rescue
        @file_exist = false
      ensure
        file.close
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    name = Vocab::File + " #{@file_index + 1}"
    self.contents.draw_text(4, 0, 200, WLH, name)
    @name_width = contents.text_size(name).width
    if @file_exist
      draw_party_characters(152, 58)
      draw_playtime(0, 34, contents.width - 4, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ● パーティキャラの描画
  #     x : 描画先 X 座標
  #     y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_party_characters(x, y)
    for i in [email protected]
      name = @characters[0]
      index = @characters[1]
      draw_character(name, index, x + i * 48, y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 描绘游戏时间
  #     x     : 描绘目标 X 坐标
  #     y     : 描绘目标 Y 坐标
  #     width : 宽
  #     align : 配置
  #--------------------------------------------------------------------------
  def draw_playtime(x, y, width, align)
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, width, WLH, time_string, 2)
  end
  #--------------------------------------------------------------------------
  # ● 设置选择状态
  #     selected : 新的选择状态 (true=选择 false=不选择)
  #--------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor
  end
  #--------------------------------------------------------------------------
  # ● 更新光标
  #--------------------------------------------------------------------------
  def update_cursor
    if @selected
      self.cursor_rect.set(0, 0, @name_width + 8, WLH)
    else
      self.cursor_rect.empty
    end
  end
end
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
579 小时
注册时间
2010-2-15
帖子
1367
4
 楼主| 发表于 2011-10-15 21:09:19 | 只看该作者
best324401 发表于 2011-10-15 08:14
#==============================================================================
# ■ Window_SaveFile ...

然后呢?这个谁都有啊,然后怎么办?

点评

LZ乃无视我好了  发表于 2011-10-15 23:07
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2011-10-16
帖子
12
5
发表于 2011-10-16 11:40:37 | 只看该作者
新建一个工程Scene_File,比啥都干净= =

点评

怎么弄……我不会啊……  发表于 2011-10-16 12:09
回复

使用道具 举报

Lv3.寻梦者

不活君

梦石
0
星屑
1495
在线时间
1247 小时
注册时间
2011-2-16
帖子
681
6
发表于 2011-10-16 12:14:21 | 只看该作者

点评

疑似木用……  发表于 2011-10-16 12:59
不知不觉就几百天过去了 经历无数个雨夜 清晨 黎明 先是兴奋 厌倦 释然 会觉得很有趣 然后又会觉得无趣 最后有一种归属感 满足感
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
579 小时
注册时间
2010-2-15
帖子
1367
7
 楼主| 发表于 2011-10-18 19:29:17 | 只看该作者
么人来说么?
不会吧……不是这么难吧……
我都弄出来了。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
8
发表于 2011-10-18 19:39:42 | 只看该作者
图片存档
  1. #==============================================================================
  2. # vx新截图存档 by 沉影不器
  3. #------------------------------------------------------------------------------
  4. # 原版作者: 柳柳
  5. # 脚本插件: 轮回者
  6. #       注: 保存截图使用<<Bitmap to PNG>>脚本插件(删debug部分)
  7. #------------------------------------------------------------------------------
  8. # ▼ 相比rmxp正版截图存档,主要变动如下:
  9. #     ① 省去了 screenshot.dll 文件
  10. #     ② 无须人工新建存档文件夹,脚本将自建
  11. #     ③ 方便地更改最大存档数,只需设置最大值
  12. #==============================================================================
  13. MAX_SAVE_ID = 12                            # 最大存档数
  14. SAVE_DIR = "Saves/"                         # 改变的存档目录
  15. #==============================================================================
  16. # ■ Game_Temp
  17. #==============================================================================
  18. class Game_Temp
  19.   #--------------------------------------------------------------------------
  20.   # ● 定义实例变量
  21.   #--------------------------------------------------------------------------
  22.   attr_accessor :save_bitmap        # 存档位图
  23.   #--------------------------------------------------------------------------
  24.   # ● 初始化对象
  25.   #--------------------------------------------------------------------------
  26.   alias ini initialize
  27.   def initialize
  28.     ini
  29.     @save_bitmap = Bitmap.new(1, 1)
  30.   end
  31. end

  32. #==============================================================================
  33. # ■ Window_SaveFile
  34. #==============================================================================

  35. class Window_SaveFile < Window_Base
  36.   #--------------------------------------------------------------------------
  37.   # ● 定义实例变量
  38.   #--------------------------------------------------------------------------
  39.   attr_reader   :filename                 # 文件名
  40.   attr_reader   :file_exist               # 文件存在标志
  41.   #--------------------------------------------------------------------------
  42.   # ● 初始化对象
  43.   #     file_index : 存档文件索引 (0~3)
  44.   #     filename   : 文件名
  45.   #--------------------------------------------------------------------------
  46.   def initialize(file_index, filename)
  47.     super(160, 56, 384, 360)
  48.     @file_index = file_index
  49.     @filename = filename
  50.     load_gamedata
  51.     refresh(@file_index)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 读取部分游戏数据
  55.   #--------------------------------------------------------------------------
  56.   def load_gamedata
  57.     @file_exist = FileTest.exist?(SAVE_DIR + @filename)
  58.     if @file_exist
  59.       file = File.open(SAVE_DIR + @filename, "r")
  60.       begin
  61.         @characters     = Marshal.load(file)
  62.         @frame_count    = Marshal.load(file)
  63.         @last_bgm       = Marshal.load(file)
  64.         @last_bgs       = Marshal.load(file)
  65.         @game_system    = Marshal.load(file)
  66.         @game_message   = Marshal.load(file)
  67.         @game_switches  = Marshal.load(file)
  68.         @game_variables = Marshal.load(file)
  69.         @total_sec = @frame_count / Graphics.frame_rate
  70.       rescue
  71.         @file_exist = false
  72.       ensure
  73.         file.close
  74.       end
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 刷新
  79.   #     index : 索引
  80.   #--------------------------------------------------------------------------
  81.   def refresh(index)
  82.     file_index = index
  83.     self.contents.clear
  84.     self.contents.font.color = normal_color
  85.     if @file_exist
  86.       self.contents.fill_rect(40+3, 24+3, 272,208, Color.new(0,0,64))
  87.       if FileTest.exist?(SAVE_DIR + @filename.split(/\./)[0] + ".png")
  88.         self.contents.blur
  89.         draw_save_bitmap(40, 24)
  90.       else
  91.         self.contents.draw_text(0, 112, 384-32, 24, "找不到截图文件!", 1)
  92.       end
  93.       draw_party_characters(152, 288)
  94.       draw_playtime(0, 288+8, contents.width - 40, 2)
  95.     else
  96.       self.contents.draw_text(0, 288, 384-32, 24, "无此存档!", 1)
  97.     end
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 更改索引
  101.   #     index : 索引
  102.   #--------------------------------------------------------------------------
  103.   def file_index=(file_index)
  104.     @file_index = file_index
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 描绘截图
  108.   #     x : 描画先 X 座標
  109.   #     y : 描画先 Y 座標
  110.   #--------------------------------------------------------------------------
  111.   def draw_party_characters(x, y)
  112.     for i in [email protected]
  113.       name = @characters[i][0]
  114.       index = @characters[i][1]
  115.       draw_character(name, index, x + i * 48, y)
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● パーティキャラの描画
  120.   #     x : 描画先 X 座標
  121.   #     y : 描画先 Y 座標
  122.   #--------------------------------------------------------------------------
  123.   def draw_save_bitmap(x, y)
  124.     bitmap = Bitmap.new(SAVE_DIR + @filename.split(/\./)[0] + ".png")
  125.     rect = Rect.new(0, 0, 0, 0)
  126.     rect.width = bitmap.width
  127.     rect.height = bitmap.height
  128.     self.contents.blt(x, y, bitmap, rect)
  129.     bitmap.dispose
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 描绘游戏时间
  133.   #     x     : 描绘目标 X 坐标
  134.   #     y     : 描绘目标 Y 坐标
  135.   #     width : 宽
  136.   #     align : 配置
  137.   #--------------------------------------------------------------------------
  138.   def draw_playtime(x, y, width, align)
  139.     hour = @total_sec / 60 / 60
  140.     min = @total_sec / 60 % 60
  141.     sec = @total_sec % 60
  142.     time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  143.     self.contents.font.color = normal_color
  144.     self.contents.draw_text(x, y, width, WLH, time_string, 2)
  145.   end
  146. end

  147. #==============================================================================
  148. # ■ Scene_Base
  149. #==============================================================================
  150. class Scene_Base
  151.   #--------------------------------------------------------------------------
  152.   # ● 生成存档位图快照
  153.   #--------------------------------------------------------------------------
  154.   def snapshot_for_save
  155.     d_rect = Rect.new(0, 0, 272, 208)
  156.     s_rect = Rect.new(0, 0, 544, 416)
  157.     save_bitmap = Graphics.snap_to_bitmap
  158.     $game_temp.save_bitmap.dispose
  159.     $game_temp.save_bitmap = Bitmap.new(272, 208)
  160.     $game_temp.save_bitmap.stretch_blt(d_rect, save_bitmap, s_rect)
  161.   end
  162. end

  163. #==============================================================================
  164. # ■ Scene_Map
  165. #==============================================================================
  166. class Scene_Map < Scene_Base
  167.   #--------------------------------------------------------------------------
  168.   # ● 结束处理
  169.   #--------------------------------------------------------------------------
  170.   alias save_terminate terminate
  171.   def terminate
  172.     snapshot_for_save
  173.     save_terminate
  174.   end
  175. end

  176. #==============================================================================
  177. # ■ Scene_Title
  178. #==============================================================================
  179. class Scene_Title < Scene_Base
  180.   #--------------------------------------------------------------------------
  181.   # ● 判断继续是否有效
  182.   #--------------------------------------------------------------------------
  183.   def check_continue
  184.     @continue_enabled = (Dir.glob(SAVE_DIR + 'Save*.rvdata').size > 0)
  185.   end
  186. end

  187. #==============================================================================
  188. # ■ Scene_File
  189. #------------------------------------------------------------------------------
  190. #  处理文件的类。
  191. #==============================================================================
  192. class Scene_File < Scene_Base
  193.   #--------------------------------------------------------------------------
  194.   # ● 初始化对象
  195.   #     saving     : 存档标志 (false 为载入画面)
  196.   #     from_title : 调用标题画面的 "继续" 标志
  197.   #     from_event : 事件的 "调用存档画面" 的调用标志
  198.   #--------------------------------------------------------------------------
  199.   def initialize(saving, from_title, from_event)
  200.     @saving = saving
  201.     @from_title = from_title
  202.     @from_event = from_event
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 开始处理
  206.   #--------------------------------------------------------------------------
  207.   def start
  208.     super
  209.     create_menu_background
  210.     @help_window = Window_Help.new
  211.     create_command_window
  212.     if @saving
  213.       @index = $game_temp.last_file_index
  214.       @help_window.set_text(Vocab::SaveMessage)
  215.     else
  216.       @index = self.latest_file_index
  217.       @help_window.set_text(Vocab::LoadMessage)
  218.     end
  219.     @refresh_index = @command_window.index = @index
  220.     @item_max = MAX_SAVE_ID
  221.     create_savefile_window
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # ● 结束处理
  225.   #--------------------------------------------------------------------------
  226.   def terminate
  227.     super
  228.     dispose_menu_background
  229.     @help_window.dispose
  230.     dispose_item_windows
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 还原至原先的画面
  234.   #--------------------------------------------------------------------------
  235.   def return_scene
  236.     if @from_title
  237.       $scene = Scene_Title.new
  238.     elsif @from_event
  239.       $scene = Scene_Map.new
  240.     else
  241.       $scene = Scene_Menu.new(4)
  242.     end
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● 更新画面
  246.   #--------------------------------------------------------------------------
  247.   def update
  248.     super
  249.     update_menu_background
  250.     @help_window.update
  251.     update_savefile_windows
  252.     update_savefile_selection
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 生成存档文件列表窗口
  256.   #--------------------------------------------------------------------------
  257.   def create_command_window
  258.     file_names = []
  259.     for i in 0...MAX_SAVE_ID
  260.       id = sprintf("%02d", i+1)
  261.       file_names.push(Vocab::File + "\s" + id)
  262.     end
  263.     @command_window = Window_Command.new(160, file_names)
  264.     @command_window.height = 360
  265.     @command_window.y = 56
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # ● 生成存档文件窗口
  269.   #--------------------------------------------------------------------------
  270.   def create_savefile_window
  271.     @savefile_window = Window_SaveFile.new(@command_window.index, make_filename(@command_window.index))
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ● 释放存档文件
  275.   #--------------------------------------------------------------------------
  276.   def dispose_item_windows
  277.     @command_window.dispose
  278.     @savefile_window.dispose
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ● 更新存档文件窗口
  282.   #--------------------------------------------------------------------------
  283.   def update_savefile_windows
  284.     @command_window.update
  285.     @savefile_window.update
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ● 更新存档文件选择
  289.   #--------------------------------------------------------------------------
  290.   def update_savefile_selection
  291.     if Input.trigger?(Input::C)
  292.       determine_savefile
  293.     end
  294.     if Input.trigger?(Input::B)
  295.       Sound.play_cancel
  296.       return_scene
  297.     end
  298.     if @refresh_index != @command_window.index
  299.       @refresh_index = @command_window.index
  300.       @savefile_window.dispose
  301.       create_savefile_window
  302.       end
  303.   end
  304.   #--------------------------------------------------------------------------
  305.   # ● 确定存档文件
  306.   #--------------------------------------------------------------------------
  307.   def determine_savefile
  308.     if @saving
  309.       Sound.play_save
  310.       do_save
  311.     else
  312.       if @savefile_window.file_exist
  313.         Sound.play_load
  314.         do_load
  315.       else
  316.         Sound.play_buzzer
  317.         return
  318.       end
  319.     end
  320.     $game_temp.last_file_index = @index
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ● 生成文件名
  324.   #     file_index : 存档文件索引 (0~3)
  325.   #--------------------------------------------------------------------------
  326.   def make_filename(file_index)
  327.     return "Save#{file_index + 1}.rvdata"
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 按时间戳选择最新的文件
  331.   #--------------------------------------------------------------------------
  332.   def latest_file_index
  333.     index = 0
  334.     latest_time = Time.at(0) # 时间戳
  335.     for i in 0...MAX_SAVE_ID
  336.       file_name = make_filename(i)
  337.       if FileTest.exist?(SAVE_DIR + file_name)
  338.         file = File.open(SAVE_DIR + file_name, "r")
  339.         if file.mtime > latest_time
  340.           latest_time = file.mtime
  341.           index = i
  342.         end
  343.       end
  344.     end
  345.     return index
  346.   end
  347.   #--------------------------------------------------------------------------
  348.   # ● 执行存档
  349.   #--------------------------------------------------------------------------
  350.   def do_save
  351.     file_name = make_filename(@command_window.index)
  352.     $game_temp.save_bitmap.make_png(file_name.split(/\./)[0], SAVE_DIR)
  353.     file = File.open(SAVE_DIR + file_name, "wb")
  354.     write_save_data(file)
  355.     file.close
  356.     return_scene
  357.   end
  358.   #--------------------------------------------------------------------------
  359.   # ● 执行载入
  360.   #--------------------------------------------------------------------------
  361.   def do_load
  362.     file_name = make_filename(@command_window.index)
  363.     file = File.open(SAVE_DIR + file_name, "rb")
  364.     read_save_data(file)
  365.     file.close
  366.     $scene = Scene_Map.new
  367.     RPG::BGM.fade(1500)
  368.     Graphics.fadeout(60)
  369.     Graphics.wait(40)
  370.     @last_bgm.play
  371.     @last_bgs.play
  372.   end
  373. end

  374. #==============================================================================
  375. #               本脚本出自www.66rpg.com,转载请注明。
  376. #==============================================================================
  377. #                        Bitmap to PNG By 轮回者
  378. #==============================================================================
  379. # 对Bitmap对象直接使用
  380. # bitmap_obj.make_png(name[, path])
  381. # name:保存文件名
  382. # path:保存路径
  383. # 感谢66、夏娜、金圭子的提醒和帮助!
  384. #==============================================================================
  385. module Zlib
  386.   class Png_File < GzipWriter
  387.     #--------------------------------------------------------------------------
  388.     # ● 主处理
  389.     #--------------------------------------------------------------------------
  390.     def make_png(bitmap_Fx)
  391.       @bitmap_Fx = bitmap_Fx
  392.       self.write(make_header)
  393.       self.write(make_ihdr)
  394.       self.write(make_idat)
  395.       self.write(make_iend)
  396.     end
  397.     #--------------------------------------------------------------------------
  398.     # ● PNG文件头数据块
  399.     #--------------------------------------------------------------------------
  400.     def make_header
  401.       return [0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a].pack("C*")
  402.     end
  403.     #--------------------------------------------------------------------------
  404.     # ● PNG文件情报头数据块(IHDR)
  405.     #--------------------------------------------------------------------------
  406.     def make_ihdr
  407.       ih_size = [13].pack("N")
  408.       ih_sign = "IHDR"
  409.       ih_width = [@bitmap_Fx.width].pack("N")
  410.       ih_height = [@bitmap_Fx.height].pack("N")
  411.       ih_bit_depth = [8].pack("C")
  412.       ih_color_type = [6].pack("C")
  413.       ih_compression_method = [0].pack("C")
  414.       ih_filter_method = [0].pack("C")
  415.       ih_interlace_method = [0].pack("C")
  416.       string = ih_sign + ih_width + ih_height + ih_bit_depth + ih_color_type +
  417.                ih_compression_method + ih_filter_method + ih_interlace_method
  418.       ih_crc = [Zlib.crc32(string)].pack("N")
  419.       return ih_size + string + ih_crc
  420.     end
  421.     #--------------------------------------------------------------------------
  422.     # ● 生成图像数据(IDAT)
  423.     #--------------------------------------------------------------------------
  424.     def make_idat
  425.       header = "\x49\x44\x41\x54"
  426.       data = make_bitmap_data
  427.       data = Zlib::Deflate.deflate(data, 8)
  428.       crc = [Zlib.crc32(header + data)].pack("N")
  429.       size = [data.length].pack("N")
  430.       return size + header + data + crc
  431.     end
  432.     #--------------------------------------------------------------------------
  433.     # ● 从Bitmap对象中生成图像数据 mode
  434.     #--------------------------------------------------------------------------
  435.     def make_bitmap_data
  436.       gz = Zlib::GzipWriter.open('hoge.gz')
  437.       t_Fx = 0
  438.       w = @bitmap_Fx.width
  439.       h = @bitmap_Fx.height
  440.       data = []
  441.       for y in 0...h
  442.         data.push(0)
  443.         for x in 0...w
  444.           t_Fx += 1
  445.           if t_Fx % 10000 == 0
  446.             Graphics.update
  447.           end
  448.           if t_Fx % 100000 == 0
  449.             s = data.pack("C*")
  450.             gz.write(s)
  451.             data.clear
  452.           end
  453.           color = @bitmap_Fx.get_pixel(x, y)
  454.           red = color.red
  455.           green = color.green
  456.           blue = color.blue
  457.           alpha = color.alpha
  458.           data.push(red)
  459.           data.push(green)
  460.           data.push(blue)
  461.           data.push(alpha)
  462.         end
  463.       end
  464.       s = data.pack("C*")
  465.       gz.write(s)
  466.       gz.close   
  467.       data.clear
  468.       gz = Zlib::GzipReader.open('hoge.gz')
  469.       data = gz.read
  470.       gz.close
  471.       File.delete('hoge.gz')
  472.       return data
  473.     end
  474.     #--------------------------------------------------------------------------
  475.     # ● PNG文件尾数据块(IEND)
  476.     #--------------------------------------------------------------------------
  477.     def make_iend
  478.       ie_size = [0].pack("N")
  479.       ie_sign = "IEND"
  480.       ie_crc = [Zlib.crc32(ie_sign)].pack("N")
  481.       return ie_size + ie_sign + ie_crc
  482.     end
  483.   end
  484. end

  485. #==============================================================================
  486. # ■ Bitmap
  487. #------------------------------------------------------------------------------
  488. #  关联到Bitmap。
  489. #==============================================================================
  490. class Bitmap
  491.   #--------------------------------------------------------------------------
  492.   # ● 关联
  493.   #--------------------------------------------------------------------------
  494.   def make_png(name="like", path="",mode=0)
  495.     make_dir(path) if path != ""
  496.     Zlib::Png_File.open("temp.gz") {|gz|
  497.       gz.make_png(self)
  498.     }
  499.     Zlib::GzipReader.open("temp.gz") {|gz|
  500.       $read = gz.read
  501.     }
  502.     f = File.open(path + name + ".png","wb")
  503.     f.write($read)
  504.     f.close
  505.     File.delete('temp.gz')
  506.     end
  507.   #--------------------------------------------------------------------------
  508.   # ● 生成保存路径
  509.   #--------------------------------------------------------------------------
  510.   def make_dir(path)
  511.     dir = path.split("/")
  512.     for i in 0...dir.size
  513.       unless dir == "."
  514.         add_dir = dir[0..i].join("/")
  515.         begin
  516.           Dir.mkdir(add_dir)
  517.         rescue
  518.         end
  519.       end
  520.     end
  521.   end
  522. end
复制代码
删除存档的脚本
  1. #==============================================================================
  2. # ■ 删除存档v1.1(载图存档版)    by 一箭烂
  3. #------------------------------------------------------------------------------
  4. #  按下delete就会弹出选择窗, 然后选择删除。
  5. #
  6. #    - *1.1.0* (2011-04-01) By 一箭烂(YiJL)
  7. #      *会弹出选择窗选择是否删除
  8. #
  9. #    - *1.0.0* (2011-04-27) By 一箭烂(YiJL)
  10. #      *初版
  11. #==============================================================================
  12. class Scene_File
  13.   Key = Win32API.new("user32","GetAsyncKeyState","i","i")
  14.   #--------------------------------------------------------------------------
  15.   # ● 开始
  16.   #--------------------------------------------------------------------------
  17.   alias del_start start
  18.   def start
  19.     del_start
  20.     @del_window = Window_DelFile.new
  21.     @del_window.z = 500
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新幀
  25.   #--------------------------------------------------------------------------
  26.   alias del_update update
  27.   def update
  28.     del_update
  29.     @del_window.update
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 更新选择
  33.   #--------------------------------------------------------------------------
  34.   def update_savefile_selection
  35.     if Input.trigger?(Input::C)
  36.       if @del_window.visible
  37.         case @del_window.index
  38.         when 0
  39.           do_delete
  40.           @del_window.visible = false
  41.         when 1
  42.           @del_window.visible = false
  43.         end
  44.       else
  45.         determine_savefile
  46.       end
  47.     elsif Input.trigger?(Input::B)
  48.       if @del_window.visible
  49.         @del_window.visible = false
  50.       else
  51.         Sound.play_cancel
  52.         return_scene
  53.       end
  54.     elsif Key.call(0x2E) & 1 != 0
  55.       @del_window.visible = true
  56.     end
  57.     if @refresh_index != @command_window.index and @del_window.visible == false
  58.       @refresh_index = @command_window.index
  59.       @savefile_window.dispose
  60.       create_savefile_window
  61.     end
  62.     @command_window.active = !@del_window.visible
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 删除存档
  66.   #--------------------------------------------------------------------------
  67.   def do_delete
  68.     if FileTest.exist?(SAVE_DIR + make_filename(@command_window.index))
  69.       File.delete(SAVE_DIR + make_filename(@command_window.index))
  70.       @refresh_index = @command_window.index
  71.       @savefile_window.dispose
  72.       create_savefile_window
  73.     else
  74.       Sound.play_buzzer
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 退出场景
  79.   #--------------------------------------------------------------------------
  80.   alias del_terminate terminate
  81.   def terminate
  82.     del_terminate
  83.     @del_window.dispose
  84.   end
  85. end
  86. #==============================================================================
  87. # ■ Window_DelFile
  88. #==============================================================================
  89. class Window_DelFile < Window_Selectable
  90.   #--------------------------------------------------------------------------
  91.   # ● 对象初始化
  92.   #--------------------------------------------------------------------------
  93.   def initialize
  94.     super((544-250)/2, (416-100)/2, 250, 90)
  95.     self.contents.draw_text(0, 0, 250-32, 24, "是否删除存档?", 1)
  96.     self.contents.draw_text(0, 32, 93, 24, "是", 1)
  97.     self.contents.draw_text(125, 32, 93, 24, "否", 1)
  98.     @item_max = 2
  99.     @column_max = 2
  100.     @index = 1
  101.     self.visible = false
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 帧更新
  105.   #--------------------------------------------------------------------------
  106.   def update
  107.     super
  108.     if self.visible
  109.       if cursor_movable?
  110.         last_index = @index
  111.         if Input.repeat?(Input::DOWN)
  112.           cursor_down(Input.trigger?(Input::DOWN))
  113.         end
  114.         if Input.repeat?(Input::UP)
  115.           cursor_up(Input.trigger?(Input::UP))
  116.         end
  117.         if @index != last_index
  118.           Sound.play_cursor
  119.         end
  120.       end
  121.       update_cursor
  122.       call_update_help
  123.     end
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 选择矩形
  127.   #--------------------------------------------------------------------------
  128.   def item_rect(index)
  129.     rect = Rect.new(0, 0, 0, 0)
  130.     rect.width = (contents.width + @spacing) / @column_max - @spacing
  131.     rect.height = WLH
  132.     rect.x = index % @column_max * (rect.width + @spacing)
  133.     rect.y = index / @column_max * WLH + 32
  134.     return rect
  135.   end
  136. end
复制代码
黑之结界勇士
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

9
发表于 2011-10-23 10:40:39 | 只看该作者
      你要的是这种类型吗,问问题要问清楚,明明VIP和好人卡那么多。首页有下载的。

vx新截图存档.rar

240.17 KB, 下载次数: 90

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-6 19:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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