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

Project1

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

[通用发布] 【通用】边运行游戏边提取素材文件到游戏目录

[复制链接]

Lv2.观梦者

梦石
0
星屑
742
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
跳转到指定楼层
1
 楼主| 发表于 2013-2-1 17:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 R-零 于 2013-8-1 20:21 编辑

这个先在幻天发布过了,这里只是想让更多的人看到。

通常来说发布游戏的时候需要把素材文件放进自己的工程里面

但是如果文件太多,然后又懒得自己一个一个去选呢?

用游戏发布素材提取脚本就可以帮你解决这个问题,站里也有不少这样的脚本

但是因为有些工程用到的文件往往是在脚本里指定的,或者是变量生成的,所以原先一般的一次性能提取完的脚本多少会提取不全

这个脚本可以在运行时根据需要将文件复制到工程目录下,如果文件找不到还可以忽略文件(缺少图片的话自动变成32*32的空白位图,音效直接变为没有)
只要把游戏从头到尾彻底测试一遍就可以了呢
RUBY 代码复制下载
  1. =begin
  2. 说明:
  3. <span style="background-color: rgb(255, 255, 255); ">这个脚本可以在运行时根据需要将文件复制到工程目录下,如果文件找不到还可以忽略文件(缺少图片的话自动变成32*32的空白位图,音效直接变为没有)</span>
  4. <span style="background-color: rgb(255, 255, 255); ">只要把游戏从头到尾彻底测试一遍就可以了呢</span>
  5.  
  6. 2013年2月1日 from 幻想天空 [url]www.rpgsky.net[/url] 作者:克莉丝
  7. =end
  8. #这里填写复制来源(Graphics是这个目录的子目录,注意不能用"\"来表示子目录要用"/"
  9.  
  10. RES = 'D:/Program Files (x86)/RPG Maker VX Ace/RTP/'  #●●●●●●●●●●●●●●●●
  11.  
  12. #这里填写工程的目录(Graphics是这个目录的子目录
  13.  
  14. TO = '请自己填写你的工程目录哦,例子子在上面'
  15. #●●●●●●●●●●●●●●●●
  16.  
  17. FS = ["","jpeg",".jpg",".png",".bmp",".wav",".mp3",".ogg","mid","wma","mov"]#这里填写需要查找的格式
  18. #==============================================================================
  19. # ■ String
  20. #------------------------------------------------------------------------------
  21. #  String 类追加定义。
  22. #==============================================================================
  23. class String
  24.         #----------------------------------------------------------------------------
  25.         # ● API
  26.         #----------------------------------------------------------------------------
  27.         @@MultiByteToWideChar  = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  28.         @@WideCharToMultiByte  = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  29.         #----------------------------------------------------------------------------
  30.         # ● UTF-8 转系统编码
  31.         #----------------------------------------------------------------------------
  32.         def u2s
  33.                 i = @@MultiByteToWideChar.call(65001, 0 , self, -1, nil,0)
  34.                 buffer = "\0" * (i*2)
  35.                 @@MultiByteToWideChar.call(65001, 0 , self, -1, buffer, i)
  36.                 i = @@WideCharToMultiByte.call(0, 0, buffer, -1, nil, 0, nil, nil)
  37.                 result = "\0" * i
  38.                 @@WideCharToMultiByte.call(0, 0, buffer, -1, result, i, nil, nil)
  39.                 result.chop!
  40.                 return result
  41.         end
  42. end
  43. COPYFILE = Win32API.new("kernel32","CopyFile","ppl","l")
  44. def copyfile(from,to)
  45.   from = from.u2s
  46.   to = to.u2s
  47.   a = 1
  48.   if not File.exist?(to)
  49.     a = COPYFILE.call(from,to,1)
  50.   end
  51.   return a
  52. end
  53. class Bitmap
  54.   alias saku_init initialize
  55.   def initialize*a
  56.     if a[0].is_a?(String)
  57.       from = RES + a[0]
  58.       to = TO+a[0]
  59.       l = []
  60.       for af in FS
  61.         copyfile(from+af,to+af)
  62.         l.push(File.exist?((a[0]+af).u2s))
  63.       end
  64.       a = [32,32] if not l.include?(true)
  65.     end
  66.     saku_init *a
  67.   end
  68. end
  69. module Audio
  70.   for word in ["se","me","bgm","bgs"]
  71.     eval(
  72.   "@saku_#{word} = method('#{word}_play')
  73.   def self.#{word}_play*a
  74.       from = RES + a[0]
  75.       to = TO+a[0]
  76.       l = []
  77.       for af in FS
  78.         copyfile(from+af,to+af)
  79.         l.push(File.exist?((a[0]+af).u2s))
  80.       end
  81.       a = [""] if not l.include?(true)
  82.     @saku_#{word}.call *a
  83.     end
  84. ")
  85. end
  86. end

如果有错误请及时反馈哦,毕竟这个是没严格测试的

顺道召唤精灵@精灵使者  

Lv1.梦旅人

梦石
0
星屑
63
在线时间
167 小时
注册时间
2010-6-19
帖子
281
2
发表于 2013-2-1 17:25:06 手机端发表。 | 只看该作者
看了几遍都看不懂。。

点评

代码本身不需要你看懂,重要的是你要知道它的功能  发表于 2013-2-1 17:27
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21020
在线时间
9338 小时
注册时间
2012-6-19
帖子
7107

开拓者短篇九导演组冠军

3
发表于 2013-2-1 18:14:03 | 只看该作者
本帖最后由 喵呜喵5 于 2013-2-1 18:29 编辑

好像很实用的样子
精简RTP利器么……

拿自己的游戏试试看看…………

=============================


用VA试了半天结果都没成功…………

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

4
发表于 2013-2-1 18:27:04 | 只看该作者
我记得以前通过游戏之后会给出一个txt写出来丢失文件的列表来着。
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

5
发表于 2013-2-10 14:09:12 | 只看该作者
UI> 于是没测试到还是会漏掉……(干脆直接扫脚本的读取段吧!

点评

头像萎了  发表于 2013-2-10 15:09
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
742
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
6
 楼主| 发表于 2013-2-10 15:06:03 | 只看该作者
忧雪の伤 发表于 2013-2-10 14:09
UI> 于是没测试到还是会漏掉……(干脆直接扫脚本的读取段吧!

扫描脚本的话不是会把按照变量生成文件名的文件漏掉么

点评

UI> 確實,233  发表于 2013-2-10 15:38
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
7
发表于 2013-2-11 23:28:52 手机端发表。 | 只看该作者
R-零 发表于 2013-2-10 15:06
扫描脚本的话不是会把按照变量生成文件名的文件漏掉么

正则表达式匹配graphics神马的- -b
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 18:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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