Project1

标题: 灼眼的夏娜的加密脚本怎么使用? [打印本页]

作者: 夕仔    时间: 2014-9-2 17:20
标题: 灼眼的夏娜的加密脚本怎么使用?
脚本说直接用 Data_Package.start 使用,具体方法是怎么样的?
  1. =begin

  2. 脚本:【制作数据包】

  3. 功能:对图片、音乐资源等进行数据包的制作等。

  4. 说明: 直接用 Data_Package.start 使用。

  5. 作者:灼眼的夏娜

  6. 补充: 在使用此脚本是时请确保所有的音乐图片文件都在游戏目录下。

  7. =end



  8. #==============================================================================
  9. # ★ 脚本部分 ★
  10. #==============================================================================

  11. #==============================================================================
  12. # ■ Data_Package
  13. #------------------------------------------------------------------------------
  14. #  数据包生成的模块。
  15. #==============================================================================

  16. module Data_Package

  17. #--------------------------------------------------------------------------
  18. # ● 开始制作数据包
  19. #--------------------------------------------------------------------------
  20. def self.start
  21.    @old_dir = Dir.pwd
  22.    @resource_type = ["png","jpg"]
  23.    @dump_filenames = []
  24.    @path = ""
  25.    self.next_file(@path)
  26.    Dir.chdir(@old_dir)
  27.    self.make(@dump_filenames)
  28. end

  29. #--------------------------------------------------------------------------
  30. # ● 搜索全部资源文件
  31. #--------------------------------------------------------------------------
  32. def self.next_file(path)
  33.    Dir.chdir(@old_dir)
  34.    Dir.chdir(path) if path != ""
  35.    for f in Dir["*"]
  36.      if FileTest.directory?(f)
  37.        @path = @path + f + "/"
  38.        self.next_file(@path)
  39.      else
  40.        if @resource_type.include? f.split(/\./)[1]
  41.          @dump_filenames.push @path + f
  42.        end
  43.      end
  44.    end
  45.    path_a = path.split(/\//)
  46.    @path = ""
  47.    for i in 0...path_a.size - 1
  48.      @path += path_a[i] + "/"
  49.    end
  50.    Dir.chdir(@old_dir)
  51.    Dir.chdir(@path) if @path != ""
  52. end

  53. #--------------------------------------------------------------------------
  54. # ● 包的生成
  55. #--------------------------------------------------------------------------
  56. def self.make(filenames)
  57.    database = File.open("data_package.dat","wb")
  58.    resource_list = "resource_list = {\n"
  59.    begin
  60.      for name in filenames
  61.        begin
  62.          fr = File.open(name,"rb")
  63.          code = fr.read
  64.          posop = database.pos
  65.          database.write Zlib::Deflate.deflate(code,9)
  66.          posed = database.pos
  67.          resource_list += sprintf("%s=>[%d,%d],\n","\"#{name.split(/\./)[0]}\"",posop,posed)
  68.        rescue
  69.          print "\"#{name}\" can't open"
  70.        ensure
  71.          fr.close
  72.        end
  73.      end
  74.    ensure
  75.      resource_list.slice!(resource_list.size-2,1)
  76.      resource_list += "}\n"
  77.      eval resource_list
  78.      save_data(resource_list,"resource_list.inf")
  79.      database.close
  80.      p 'make done'
  81.      exit
  82.    end
  83. end

  84. end
复制代码

作者: taroxd    时间: 2014-9-2 17:36
本帖最后由 taroxd 于 2014-9-2 17:37 编辑

夏娜说得如此清楚,我不知如何补充
作者: lanyaolove    时间: 2014-9-2 18:22
打完包之后呢?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1