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

Project1

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

[已经过期] 一个压缩脚本的原理!!!!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2014-4-4
帖子
8
跳转到指定楼层
1
发表于 2014-10-21 18:55:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 黄老邪 于 2014-10-21 19:21 编辑

这是夏娜大人XXX的脚本
想问下 我使用后删除Animations文件夹游戏可以正常运行  但是删除其他文件夹就不行了 请问原理是什么???
还有一点 可以告诉我 下面的参数有哪一项是指文件的大小的?(搜索过滤 或者是忽略多少KB以下的文件)代表的参数? 第几行?





==============================================================================
# ★ 脚本部分 ★
#==============================================================================

#==============================================================================
# ■ Data_Package
#------------------------------------------------------------------------------
#  数据包生成的模块。
#==============================================================================

module Data_Package

#--------------------------------------------------------------------------
# ● 开始制作数据包
#--------------------------------------------------------------------------
def self.start
   @old_dir = Dir.pwd
   @resource_type = ["png"]
   @dump_filenames = []
   @path = ""
   self.next_file(@path)
   Dir.chdir(@old_dir)
   self.make(@dump_filenames)
end

#--------------------------------------------------------------------------
# ● 搜索全部资源文件
#--------------------------------------------------------------------------
def self.next_file(path)
   Dir.chdir(@old_dir)
   Dir.chdir(path) if path != ""
   for f in Dir["*"]
     if FileTest.directory?(f)
       @path = @path + f + "/"
       self.next_file(@path)
     else
       if @resource_type.include? f.split(/\./)[1]
         @dump_filenames.push @path + f
       end
     end
   end
   path_a = path.split(/\//)
   @path = ""
   for i in 0...path_a.size - 1
     @path += path_a + "/"
   end
   Dir.chdir(@old_dir)
   Dir.chdir(@path) if @path != ""
end

#--------------------------------------------------------------------------
# ● 包的生成
#--------------------------------------------------------------------------
def self.make(filenames)
   database = File.open("data_package.dat","wb")
   resource_list = "resource_list = {\n"
   begin
     for name in filenames
       begin
         fr = File.open(name,"rb")
         code = fr.read
         posop = database.pos
         database.write Zlib::Deflate.deflate(code,9)
         posed = database.pos
         resource_list += sprintf("%s=>[%d,%d],\n","\"#{name.split(/\./)[0]}\"",posop,posed)
       rescue
         print "\"#{name}\" can't open"
       ensure
         fr.close
       end
     end
   ensure
     resource_list.slice!(resource_list.size-2,1)
     resource_list += "}\n"
     eval resource_list  
     save_data(resource_list,"resource_list.inf")
     database.close
     p 'make done'
     exit
   end
end

点评

我已料到Who are you 了  发表于 2014-10-25 07:33
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-9-22 16:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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