以后每天发布一些RMXP脚本,这期是加密脚本

=begin

 脚本:【制作数据包】
 
 功能:对图片、音乐资源等进行数据包的制作等。
 
 说明: 直接用 Data_Package.start 使用。

 作者:灼眼的夏娜
 
 补充: 在使用此脚本是时请确保所有的音乐图片文件都在游戏目录下。

=end

 

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

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

module Data_Package
 
 #--------------------------------------------------------------------------
 # ● 开始制作数据包
 #--------------------------------------------------------------------------
 def self.start
   @old_dir = Dir.pwd
   @resource_type = ["png","jpg"]
   @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[i] + "/"
   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
 
end

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值