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

Project1

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

最新截图存档 For RMVX

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
120
在线时间
68 小时
注册时间
2007-12-16
帖子
75
跳转到指定楼层
1
发表于 2008-6-8 01:13:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是RMVX的$game_temp.background_bitmap(Graphics.snap_to_bitmap)
加上 柳之一 的 快速存储Bitmap的Marshal
制成的RMVX最新截图存档

截图


范例
http://rpg.blue/upload_program/files/PicSave_93287510.rar

原始脚本
  1. #==============================================================================
  2. # ■ 最新截圖存檔 For RMVX By 釣到一隻猴子@_@ ── AAM@_@
  3. #       Ver.1.0.0.000
  4. #      
  5. #       感謝:柳之一
  6. #==============================================================================


  7. #==============================================================================
  8. # ■ 快速存儲Bitmap的Marshal By 柳之一
  9. #==============================================================================
  10. class Bitmap
  11. # 传送到内存的API函数
  12. RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  13. RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  14. def _dump
  15. data = "rgba" * width * height
  16. RtlMoveMemory_pi.call(data, address, data.length)
  17. [width, height, Zlib::Deflate.deflate(data)].pack("LLa*") # 压缩
  18. end
  19. def self._load(str)
  20. w, h, zdata = str.unpack("LLa*"); b = new(w, h)
  21. RtlMoveMemory_ip.call(b.address, Zlib::Inflate.inflate(zdata), w * h * 4); b
  22. end
  23. # [[[bitmap.object_id * 2 + 16] + 8] + 16] == 数据的开头
  24. #
  25. def address
  26. buffer, ad = "xxxx", object_id * 2 + 16
  27. RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
  28. RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
  29. RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
  30. end
  31. end
  32. #==============================================================================
  33. # ■ Window_SaveFile
  34. #------------------------------------------------------------------------------
  35. #  显示存档以及读档画面、保存文件的窗口。
  36. #==============================================================================

  37. class Window_SaveFile < Window_Base
  38.   #--------------------------------------------------------------------------
  39.   # ● 定义实例变量
  40.   #--------------------------------------------------------------------------
  41.   attr_reader   :pic_str
  42.   #--------------------------------------------------------------------------
  43.   # ● 初始化对象
  44.   #     file_index : 存档文件索引 (0~3)
  45.   #     filename   : 文件名
  46.   #--------------------------------------------------------------------------
  47.   alias sbs_aam_picsavevx1_old_initialize initialize
  48.   def initialize(file_index, filename)
  49.     @pic_str = nil
  50.     sbs_aam_picsavevx1_old_initialize(file_index, filename)
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 读取部分游戏数据
  54.   #    开关以及变量为默认则是未使用 (为表示地名而扩展) 。
  55.   #--------------------------------------------------------------------------
  56.   alias sbs_aam_picsavevx1_old_load_gamedata load_gamedata
  57.   def load_gamedata
  58.     if FileTest.exist?(@filename)
  59.       file = File.open(@filename, "r")
  60.       begin
  61.         pic_str = Marshal.load(file)
  62.         @pic_str = pic_str
  63.       rescue
  64.         @pic_str = nil
  65.       ensure
  66.         file.close
  67.       end
  68.     end
  69.     sbs_aam_picsavevx1_old_load_gamedata
  70.   end
  71. end
  72. #==============================================================================
  73. # ■ Scene_File
  74. #------------------------------------------------------------------------------
  75. #  处理文件的类。
  76. #==============================================================================

  77. class Scene_File < Scene_Base
  78.   #--------------------------------------------------------------------------
  79.   # ● 生成存档文件窗口
  80.   #--------------------------------------------------------------------------
  81.   alias sbs_aam_picsavevx1_old_create_savefile_windows create_savefile_windows
  82.   def create_savefile_windows
  83.     @savefile_sprite = Sprite.new
  84.     @savefile_sprite.bitmap = Bitmap.new(1, 1)
  85.     sbs_aam_picsavevx1_old_create_savefile_windows
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 释放存档文件
  89.   #--------------------------------------------------------------------------
  90.   alias sbs_aam_picsavevx1_old_dispose_item_windows dispose_item_windows
  91.   def dispose_item_windows
  92.     @savefile_sprite.dispose
  93.     sbs_aam_picsavevx1_old_dispose_item_windows
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 更新存档文件窗口
  97.   #--------------------------------------------------------------------------
  98.   alias sbs_aam_picsavevx1_old_update_savefile_windows update_savefile_windows
  99.   def update_savefile_windows
  100.     @savefile_sprite.update
  101.     sbs_aam_picsavevx1_old_update_savefile_windows
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 更新存档文件选择
  105.   #--------------------------------------------------------------------------
  106.   alias sbs_aam_picsavevx1_old_update_savefile_selection update_savefile_selection
  107.   def update_savefile_selection
  108.     sbs_aam_picsavevx1_old_update_savefile_selection
  109.     if !@savefile_windows[@index].pic_str.nil?
  110.       str = @savefile_windows[@index].pic_str
  111.       @savefile_sprite.bitmap = Bitmap._load(str)
  112.       @help_window.back_opacity = 50
  113.       for window in @savefile_windows
  114.         window.back_opacity = 50
  115.       end
  116.     else
  117.       @savefile_sprite.bitmap = Bitmap.new(1, 1)
  118.       @help_window.back_opacity = 200
  119.       for window in @savefile_windows
  120.         window.back_opacity = 200
  121.       end
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 写入存档数据
  126.   #     file : 写入文件用对象 (已经打开)
  127.   #--------------------------------------------------------------------------
  128.   alias sbs_aam_picsavevx1_old_write_save_data write_save_data
  129.   def write_save_data(file)
  130.     pic_str = $game_temp.background_bitmap._dump
  131.     Marshal.dump(pic_str, file)
  132.     sbs_aam_picsavevx1_old_write_save_data(file)
  133.   end
  134. end
  135. #==============================================================================
  136. # ■ 最新截圖存檔 For RMVX By 釣到一隻猴子@_@ ── AAM@_@
  137. #==============================================================================
复制代码

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-6-8 01:53:59 | 只看该作者
比沉默不器的难看多了……||||

不过那个不兼容鼠标……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-3
帖子
183
3
发表于 2008-6-8 19:40:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
4
发表于 2008-6-10 05:03:47 | 只看该作者
以下引用公孙鸿剑于2008-6-8 11:40:24的发言:

楼主这个是不是直接在屏幕最底层透明显示截图?

就是....
我下载范例看了一下 {/tp}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
68 小时
注册时间
2007-12-16
帖子
75
5
 楼主| 发表于 2008-6-13 05:24:24 | 只看该作者
以下引用公孙鸿剑于2008-6-8 11:40:24的发言:

楼主这个是不是直接在屏幕最底层透明显示截图?



正是如此

不过还有个地方

那就是窗口的透明度有更改

如果觉得难看请自行优化吧

PS:本帖较偏技术方面

(迷:你根本是懒的改吧)

(我:别说那么大声啦{/xu})

先闪哩~~~~~~~~{/tp}
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

6
发表于 2008-6-24 12:27:34 | 只看该作者
发布完毕
VIP + 3

http://rpg.blue/web/htm/news1109.htm
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 14:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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