Project1

标题: 数据包的制作以及解压运行~```` [打印本页]

作者: 雷欧纳德    时间: 2006-10-20 22:17
标题: 数据包的制作以及解压运行~````
1、制作数据包部分:

  1. #==============================================================================
  2. # ★ 说明部分 ★
  3. #==============================================================================

  4. =begin

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

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

  13. =end



  14. #==============================================================================
  15. # ★ 脚本部分 ★
  16. #==============================================================================

  17. #==============================================================================
  18. # ■ Data_Package
  19. #------------------------------------------------------------------------------
  20. #  数据包生成的模块。
  21. #==============================================================================

  22. module Data_Package
  23.   
  24.   #--------------------------------------------------------------------------
  25.   # ● 开始制作数据包
  26.   #--------------------------------------------------------------------------
  27.   def self.start
  28.     @old_dir = Dir.pwd
  29.     @resource_type = ["bmp","jpg","png","wav","mp3","ogg","wma","mid"]
  30.     @dump_filenames = []
  31.     @path = ""
  32.     self.next_file(@path)
  33.     Dir.chdir(@old_dir)
  34.     self.make(@dump_filenames)
  35.   end
  36.   
  37.   #--------------------------------------------------------------------------
  38.   # ● 搜索全部资源文件
  39.   #--------------------------------------------------------------------------
  40.   def self.next_file(path)
  41.     Dir.chdir(@old_dir)
  42.     Dir.chdir(path) if path != ""
  43.     for f in Dir["*"]
  44.       if FileTest.directory?(f)
  45.         @path = @path + f + "/"
  46.         self.next_file(@path)
  47.       else
  48.         if @resource_type.include? f.split(/\./)[1]
  49.           @dump_filenames.push @path + f
  50.         end
  51.       end
  52.     end
  53.     path_a = path.split(/\//)
  54.     @path = ""
  55.     for i in 0...path_a.size - 1
  56.       @path += path_a[i] + "/"
  57.     end
  58.     Dir.chdir(@old_dir)
  59.     Dir.chdir(@path) if @path != ""
  60.   end
  61.   
  62.   #--------------------------------------------------------------------------
  63.   # ● 包的生成
  64.   #--------------------------------------------------------------------------
  65.   def self.make(filenames)
  66.     database = File.open("data_package.dat","wb")
  67.     resource_list = "resource_list = {\n"
  68.     begin
  69.       for name in filenames
  70.         begin
  71.           fr = File.open(name,"rb")
  72.           code = fr.read
  73.           posop = database.pos
  74.           database.write Zlib::Deflate.deflate(code,9)
  75.           posed = database.pos
  76.           resource_list += sprintf("%s=>[%d,%d],\n","\"#{name.split(/\./)[0]}\"",posop,posed)
  77.         rescue
  78.           print "\"#{name}\" can't open"
  79.         ensure
  80.           fr.close
  81.         end
  82.       end
  83.     ensure
  84.       resource_list.slice!(resource_list.size-2,1)
  85.       resource_list += "}\n"
  86.       eval resource_list
  87.       save_data(resource_list,"resource_list.inf")
  88.       database.close
  89.       p 'make done'
  90.       exit
  91.     end
  92.   end
  93.   
  94. end

  95. #==============================================================================
  96. # ★ 结束 ★
  97. #==============================================================================
复制代码


2、解压缩运行部分:

  1. #==============================================================================
  2. # ★ 说明部分 ★
  3. #==============================================================================

  4. =begin

  5.   脚本:【解压数据包以及运行】
  6.   
  7.   功能:对生成的数据包进行解压以及运行。
  8.   
  9.   说明: 程序中的$resource_list和$data_package的名字可以更改,
  10.   
  11.         但要和Main中的名字相同。

  12.   作者:灼眼的夏娜
  13.   
  14.   补充: 1、用此脚本替换原来的Main脚本即可。
  15.    
  16.         2、$resource_list 和 $data_package 这两个变量最好在脚本的最上面就载入。


  17. =end

  18. #==============================================================================
  19. # ★ 脚本部分 ★
  20. #==============================================================================

  21. #==============================================================================
  22. # ■ File
  23. #------------------------------------------------------------------------------
  24. #  处理文件的类。
  25. #==============================================================================

  26. class File < IO
  27.   
  28.   #--------------------------------------------------------------------------
  29.   # ● 解码代码
  30.   #--------------------------------------------------------------------------
  31.   def self.inflate(filename)
  32.     pos = $resource_list[filename]
  33.     $data_package.pos = pos[0]
  34.     code = $data_package.read(pos[1] - pos[0])
  35.     code = Zlib::Inflate.inflate(code)
  36.     return code
  37.   end
  38.   
  39. end

  40. #==============================================================================
  41. # ■ Bitmap
  42. #------------------------------------------------------------------------------
  43. #  处理位图的类。
  44. #==============================================================================

  45. class Bitmap < Object
  46.   
  47.   #--------------------------------------------------------------------------
  48.   # ● 类变量
  49.   #--------------------------------------------------------------------------
  50.   @@resource_type = [nil,"bmp","jpg","png","wav","mp3","ogg","wma","mid"]
  51.   
  52.   #--------------------------------------------------------------------------
  53.   # ● 重定义new方法
  54.   #--------------------------------------------------------------------------
  55.   def self.new(*str)
  56.     @p = *str
  57.     filetype = @p.split(/\./)[1] if @p.is_a?(String)
  58.     if @p.is_a?(String) and @@resource_type.include? filetype
  59.       filename = @p.split(/\./)[0]
  60.       @fe_code = File.inflate(filename)
  61.       filename = filename.split(/\//)[-1]
  62.       f = File.open(filename+".tem","wb")
  63.       f.write @fe_code
  64.       f.close
  65.       return Bitmap_W17.new(filename+".tem")
  66.     end
  67.     super
  68.   end

  69. end

  70. #==============================================================================
  71. # ■ Bitmap_W17
  72. #------------------------------------------------------------------------------
  73. #  Bitmap的子类。
  74. #==============================================================================

  75. class Bitmap_W17 < Bitmap
  76.   
  77.   #--------------------------------------------------------------------------
  78.   # ● 重定义initialize方法
  79.   #--------------------------------------------------------------------------
  80.   def initialize(*str)
  81.     @p = *str
  82.     super(*str)
  83.     File.delete(@p) if @p.is_a?(String) and File.exist?(@p)
  84.   end
  85.   
  86. end

  87. #==============================================================================
  88. # ■ Audio
  89. #------------------------------------------------------------------------------
  90. #  处理声音相关的模块。
  91. #==============================================================================

  92. module Audio

  93.   #--------------------------------------------------------------------------
  94.   # ● 重载
  95.   #--------------------------------------------------------------------------
  96.   @w17_bgm = method("bgm_play") if @w17_bgm.nil?
  97.   @w17_bgs = method("bgs_play") if @w17_bgs.nil?
  98.   @w17_me = method("me_play") if @w17_me.nil?
  99.   @w17_se = method("se_play") if @w17_se.nil?

  100.   #--------------------------------------------------------------------------
  101.   # ● 重载 bgm_play
  102.   #--------------------------------------------------------------------------
  103.   def self.bgm_play(filename, volume = 100, pitch = 100)
  104.     self.decode(filename, volume, pitch, "@w17_bgm")
  105.   end
  106.   
  107.   #--------------------------------------------------------------------------
  108.   # ● 重载 bgs_play
  109.   #--------------------------------------------------------------------------
  110.   def self.bgs_play(filename, volume = 80, pitch = 100)
  111.     self.decode(filename, volume, pitch, "@w17_bgs")
  112.   end
  113.   
  114.   #--------------------------------------------------------------------------
  115.   # ● 重载 me_play
  116.   #--------------------------------------------------------------------------
  117.   def self.me_play(filename, volume = 100, pitch = 100)
  118.     self.decode(filename, volume, pitch, "@w17_me")
  119.   end
  120.   
  121.   #--------------------------------------------------------------------------
  122.   # ● 重载 se_play
  123.   #--------------------------------------------------------------------------
  124.   def self.se_play(filename, volume = 80, pitch = 100)
  125.     self.decode(filename, volume, pitch, "@w17_se")
  126.   end
  127.   
  128.   #--------------------------------------------------------------------------
  129.   # ● 解码
  130.   #--------------------------------------------------------------------------
  131.   def self.decode(filename,volume,pitch,w17_str)
  132.     filename = filename.split(/\./)[0]
  133.     code = File.inflate(filename)
  134.     filename = filename.split(/\//)[-1]
  135.     fw = File.open(filename+".tem","wb")
  136.     fw.write code
  137.     fw.close
  138.     eval("#{w17_str}.call(filename+\".tem\", volume, pitch)")
  139.     File.delete(filename+".tem")
  140.   end

  141. end

  142. #==============================================================================
  143. # ■ Main
  144. #------------------------------------------------------------------------------
  145. #  各定义结束后、从这里开始实际处理。
  146. #==============================================================================

  147. begin
  148.   #--------------------------------------------------------------------------
  149.   # ● 载入数据包和资源列表
  150.   #--------------------------------------------------------------------------
  151.   $data_package = File.open("data_package.dat","rb")
  152.   $resource_list = load_data("resource_list.inf")
  153.   # 准备过渡
  154.   # 设置系统默认字体
  155.   Font.default_name = (["黑体"])
  156.   Graphics.freeze
  157.   # 生成场景对像 (标题画面)
  158.   $scene = Scene_Title.new
  159.   # $scene 为有效的情况下调用 main 过程
  160.   while $scene != nil
  161.     $scene.main
  162.   end
  163.   # 淡入淡出
  164.   Graphics.transition(20)
  165. rescue Errno::ENOENT
  166.   # 补充 Errno::ENOENT 以外错误
  167.   # 无法打开文件的情况下、显示信息后结束
  168.   filename = $!.message.sub("No such file or directory - ", "")
  169.   print("找不到文件 #{filename}。 ")
  170. ensure
  171.   $data_package.close
  172. end

  173. #==============================================================================
  174. # ★ 结束 ★
  175. #==============================================================================
复制代码


3、补充说明:
Main中的
  $data_package = File.open("data_package.dat","rb")
  $resource_list = load_data("resource_list.inf")
这两行可以放到脚本的最上面去,不然也许会出错呢,具体原因自己理解……

其他具体的用法参考每个部分的说明处~


              [本贴由 柳柳 于 2006-10-21 16:11:31 进行了编辑]

              [本贴由 柳柳 于 2006-12-22 18:40:30 进行了编辑]

              [本贴由 张永 于 2007-3-24 13:01:27 进行了编辑]
作者: 雷欧纳德    时间: 2006-10-20 22:17
标题: 数据包的制作以及解压运行~````
1、制作数据包部分:

  1. #==============================================================================
  2. # ★ 说明部分 ★
  3. #==============================================================================

  4. =begin

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

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

  13. =end



  14. #==============================================================================
  15. # ★ 脚本部分 ★
  16. #==============================================================================

  17. #==============================================================================
  18. # ■ Data_Package
  19. #------------------------------------------------------------------------------
  20. #  数据包生成的模块。
  21. #==============================================================================

  22. module Data_Package
  23.   
  24.   #--------------------------------------------------------------------------
  25.   # ● 开始制作数据包
  26.   #--------------------------------------------------------------------------
  27.   def self.start
  28.     @old_dir = Dir.pwd
  29.     @resource_type = ["bmp","jpg","png","wav","mp3","ogg","wma","mid"]
  30.     @dump_filenames = []
  31.     @path = ""
  32.     self.next_file(@path)
  33.     Dir.chdir(@old_dir)
  34.     self.make(@dump_filenames)
  35.   end
  36.   
  37.   #--------------------------------------------------------------------------
  38.   # ● 搜索全部资源文件
  39.   #--------------------------------------------------------------------------
  40.   def self.next_file(path)
  41.     Dir.chdir(@old_dir)
  42.     Dir.chdir(path) if path != ""
  43.     for f in Dir["*"]
  44.       if FileTest.directory?(f)
  45.         @path = @path + f + "/"
  46.         self.next_file(@path)
  47.       else
  48.         if @resource_type.include? f.split(/\./)[1]
  49.           @dump_filenames.push @path + f
  50.         end
  51.       end
  52.     end
  53.     path_a = path.split(/\//)
  54.     @path = ""
  55.     for i in 0...path_a.size - 1
  56.       @path += path_a[i] + "/"
  57.     end
  58.     Dir.chdir(@old_dir)
  59.     Dir.chdir(@path) if @path != ""
  60.   end
  61.   
  62.   #--------------------------------------------------------------------------
  63.   # ● 包的生成
  64.   #--------------------------------------------------------------------------
  65.   def self.make(filenames)
  66.     database = File.open("data_package.dat","wb")
  67.     resource_list = "resource_list = {\n"
  68.     begin
  69.       for name in filenames
  70.         begin
  71.           fr = File.open(name,"rb")
  72.           code = fr.read
  73.           posop = database.pos
  74.           database.write Zlib::Deflate.deflate(code,9)
  75.           posed = database.pos
  76.           resource_list += sprintf("%s=>[%d,%d],\n","\"#{name.split(/\./)[0]}\"",posop,posed)
  77.         rescue
  78.           print "\"#{name}\" can't open"
  79.         ensure
  80.           fr.close
  81.         end
  82.       end
  83.     ensure
  84.       resource_list.slice!(resource_list.size-2,1)
  85.       resource_list += "}\n"
  86.       eval resource_list
  87.       save_data(resource_list,"resource_list.inf")
  88.       database.close
  89.       p 'make done'
  90.       exit
  91.     end
  92.   end
  93.   
  94. end

  95. #==============================================================================
  96. # ★ 结束 ★
  97. #==============================================================================
复制代码


2、解压缩运行部分:

  1. #==============================================================================
  2. # ★ 说明部分 ★
  3. #==============================================================================

  4. =begin

  5.   脚本:【解压数据包以及运行】
  6.   
  7.   功能:对生成的数据包进行解压以及运行。
  8.   
  9.   说明: 程序中的$resource_list和$data_package的名字可以更改,
  10.   
  11.         但要和Main中的名字相同。

  12.   作者:灼眼的夏娜
  13.   
  14.   补充: 1、用此脚本替换原来的Main脚本即可。
  15.    
  16.         2、$resource_list 和 $data_package 这两个变量最好在脚本的最上面就载入。


  17. =end

  18. #==============================================================================
  19. # ★ 脚本部分 ★
  20. #==============================================================================

  21. #==============================================================================
  22. # ■ File
  23. #------------------------------------------------------------------------------
  24. #  处理文件的类。
  25. #==============================================================================

  26. class File < IO
  27.   
  28.   #--------------------------------------------------------------------------
  29.   # ● 解码代码
  30.   #--------------------------------------------------------------------------
  31.   def self.inflate(filename)
  32.     pos = $resource_list[filename]
  33.     $data_package.pos = pos[0]
  34.     code = $data_package.read(pos[1] - pos[0])
  35.     code = Zlib::Inflate.inflate(code)
  36.     return code
  37.   end
  38.   
  39. end

  40. #==============================================================================
  41. # ■ Bitmap
  42. #------------------------------------------------------------------------------
  43. #  处理位图的类。
  44. #==============================================================================

  45. class Bitmap < Object
  46.   
  47.   #--------------------------------------------------------------------------
  48.   # ● 类变量
  49.   #--------------------------------------------------------------------------
  50.   @@resource_type = [nil,"bmp","jpg","png","wav","mp3","ogg","wma","mid"]
  51.   
  52.   #--------------------------------------------------------------------------
  53.   # ● 重定义new方法
  54.   #--------------------------------------------------------------------------
  55.   def self.new(*str)
  56.     @p = *str
  57.     filetype = @p.split(/\./)[1] if @p.is_a?(String)
  58.     if @p.is_a?(String) and @@resource_type.include? filetype
  59.       filename = @p.split(/\./)[0]
  60.       @fe_code = File.inflate(filename)
  61.       filename = filename.split(/\//)[-1]
  62.       f = File.open(filename+".tem","wb")
  63.       f.write @fe_code
  64.       f.close
  65.       return Bitmap_W17.new(filename+".tem")
  66.     end
  67.     super
  68.   end

  69. end

  70. #==============================================================================
  71. # ■ Bitmap_W17
  72. #------------------------------------------------------------------------------
  73. #  Bitmap的子类。
  74. #==============================================================================

  75. class Bitmap_W17 < Bitmap
  76.   
  77.   #--------------------------------------------------------------------------
  78.   # ● 重定义initialize方法
  79.   #--------------------------------------------------------------------------
  80.   def initialize(*str)
  81.     @p = *str
  82.     super(*str)
  83.     File.delete(@p) if @p.is_a?(String) and File.exist?(@p)
  84.   end
  85.   
  86. end

  87. #==============================================================================
  88. # ■ Audio
  89. #------------------------------------------------------------------------------
  90. #  处理声音相关的模块。
  91. #==============================================================================

  92. module Audio

  93.   #--------------------------------------------------------------------------
  94.   # ● 重载
  95.   #--------------------------------------------------------------------------
  96.   @w17_bgm = method("bgm_play") if @w17_bgm.nil?
  97.   @w17_bgs = method("bgs_play") if @w17_bgs.nil?
  98.   @w17_me = method("me_play") if @w17_me.nil?
  99.   @w17_se = method("se_play") if @w17_se.nil?

  100.   #--------------------------------------------------------------------------
  101.   # ● 重载 bgm_play
  102.   #--------------------------------------------------------------------------
  103.   def self.bgm_play(filename, volume = 100, pitch = 100)
  104.     self.decode(filename, volume, pitch, "@w17_bgm")
  105.   end
  106.   
  107.   #--------------------------------------------------------------------------
  108.   # ● 重载 bgs_play
  109.   #--------------------------------------------------------------------------
  110.   def self.bgs_play(filename, volume = 80, pitch = 100)
  111.     self.decode(filename, volume, pitch, "@w17_bgs")
  112.   end
  113.   
  114.   #--------------------------------------------------------------------------
  115.   # ● 重载 me_play
  116.   #--------------------------------------------------------------------------
  117.   def self.me_play(filename, volume = 100, pitch = 100)
  118.     self.decode(filename, volume, pitch, "@w17_me")
  119.   end
  120.   
  121.   #--------------------------------------------------------------------------
  122.   # ● 重载 se_play
  123.   #--------------------------------------------------------------------------
  124.   def self.se_play(filename, volume = 80, pitch = 100)
  125.     self.decode(filename, volume, pitch, "@w17_se")
  126.   end
  127.   
  128.   #--------------------------------------------------------------------------
  129.   # ● 解码
  130.   #--------------------------------------------------------------------------
  131.   def self.decode(filename,volume,pitch,w17_str)
  132.     filename = filename.split(/\./)[0]
  133.     code = File.inflate(filename)
  134.     filename = filename.split(/\//)[-1]
  135.     fw = File.open(filename+".tem","wb")
  136.     fw.write code
  137.     fw.close
  138.     eval("#{w17_str}.call(filename+\".tem\", volume, pitch)")
  139.     File.delete(filename+".tem")
  140.   end

  141. end

  142. #==============================================================================
  143. # ■ Main
  144. #------------------------------------------------------------------------------
  145. #  各定义结束后、从这里开始实际处理。
  146. #==============================================================================

  147. begin
  148.   #--------------------------------------------------------------------------
  149.   # ● 载入数据包和资源列表
  150.   #--------------------------------------------------------------------------
  151.   $data_package = File.open("data_package.dat","rb")
  152.   $resource_list = load_data("resource_list.inf")
  153.   # 准备过渡
  154.   # 设置系统默认字体
  155.   Font.default_name = (["黑体"])
  156.   Graphics.freeze
  157.   # 生成场景对像 (标题画面)
  158.   $scene = Scene_Title.new
  159.   # $scene 为有效的情况下调用 main 过程
  160.   while $scene != nil
  161.     $scene.main
  162.   end
  163.   # 淡入淡出
  164.   Graphics.transition(20)
  165. rescue Errno::ENOENT
  166.   # 补充 Errno::ENOENT 以外错误
  167.   # 无法打开文件的情况下、显示信息后结束
  168.   filename = $!.message.sub("No such file or directory - ", "")
  169.   print("找不到文件 #{filename}。 ")
  170. ensure
  171.   $data_package.close
  172. end

  173. #==============================================================================
  174. # ★ 结束 ★
  175. #==============================================================================
复制代码


3、补充说明:
Main中的
  $data_package = File.open("data_package.dat","rb")
  $resource_list = load_data("resource_list.inf")
这两行可以放到脚本的最上面去,不然也许会出错呢,具体原因自己理解……

其他具体的用法参考每个部分的说明处~


              [本贴由 柳柳 于 2006-10-21 16:11:31 进行了编辑]

              [本贴由 柳柳 于 2006-12-22 18:40:30 进行了编辑]

              [本贴由 张永 于 2007-3-24 13:01:27 进行了编辑]
作者: ikki    时间: 2006-10-20 22:23
{/fd}可以加密声音了??
作者: 雷欧纳德    时间: 2006-10-20 23:32
以下引用ikki于2006-10-20 14:23:05的发言:

可以加密声音了??

可以……
作者: RockK    时间: 2006-10-21 00:12
问个白痴的问题  数据库加密是怎么弄的??{/hx}

自己感觉很丢人啊{/ll}
作者: 轮回者    时间: 2006-10-21 03:55
怎么感觉这个和俄罗斯方块的那个差不多呢?{/hx}
不过俄罗斯方块的加密方式好邪恶~居然压缩在脚本里……{/gg}
作者: KarEE    时间: 2006-11-11 23:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小传子    时间: 2006-11-11 23:54
其实关于这类脚本我是一窍不通的```
恩 刚好也可以学习一下
加密声音 强{/qiang}{/hx}
作者: 叼烟的男孩    时间: 2006-11-12 23:28
学习一下...收了
作者: lcy92    时间: 2006-11-13 04:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: fanywei    时间: 2006-11-13 05:46
要怎么用啊?????
作者: KarEE    时间: 2006-11-14 05:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 3535    时间: 2007-3-24 21:05
加密已經不太.....了,现在連声音也加密,想在遊戏外开來听听也不行..太邪惡了..{/fd}{/fd}{/fd}
作者: 叶舞枫    时间: 2007-3-24 21:11
发布完毕,
小夏 VIP += 3
http://rpg.blue/web/htm/news647.htm

作者: gpra8764    时间: 2007-3-25 05:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 8994300    时间: 2007-3-25 21:36
好厉害..看不懂啊!
作者: 海的那边    时间: 2007-3-25 22:59
以下引用RockK于2006-10-20 16:12:55的发言:

问个白痴的问题  数据库加密是怎么弄的??

自己感觉很丢人啊

好像是把图片图片是文件夹剪切出来,然后加密,然后在复制进去....
没实验过,不知道行不行..

作者: rpg83200    时间: 2007-3-26 20:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 轮回者    时间: 2007-3-26 21:44
主要是运用Zlib进行压缩和解压缩,再附带一个文件表\
作者: rpg83200    时间: 2007-3-30 04:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 红世之徒    时间: 2007-4-9 02:06
今天是2007年4月8日...我才发现这个帖子..
作者: 小真·爱舞    时间: 2007-4-9 03:40
加密声音是必要的。
毕竟像我那样音乐鉴赏和语音,不加密就没意义了。
作者: 3535    时间: 2007-4-9 04:31
不是原創就別談加密
作者: yukish    时间: 2007-4-14 03:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小真·爱舞    时间: 2007-4-14 04:58
以下引用3535于2007-4-8 20:31:36的发言:

不是原創就別談加密


那么你费尽心思写的剧本,用尽心力设定的BOSS和音乐,就想要让玩家直接就能看到听到么?
你们对于游戏的吸引力卖点控制不够专业。
作者: 神思    时间: 2007-4-14 06:40
以下引用3535于2007-4-8 20:31:36的发言:

不是原創就別談加密

只要有原创的东西就有权利加密````

不过总觉得这个东西的实用度不高啊```压缩的原代码都出来了```
想写个解压的就变的轻而易举了```
作者: 美兽    时间: 2007-4-14 07:05
以下引用神思于2007-4-13 22:40:21的发言:


以下引用3535于2007-4-8 20:31:36的发言:

不是原創就別談加密


只要有原创的东西就有权利加密````

不过总觉得这个东西的实用度不高啊```压缩的原代码都出来了```
想写个解压的就变的轻而易举了```


[本贴由作者于 2007-4-13 22:42:59 最后编辑]


解压的已经直接给出来了,这应算是个基础思路,随便改两个数字,可以让文件结构大变样.

作者: kylixs    时间: 2007-4-14 17:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: chaochao    时间: 2007-4-14 22:27
以下引用kylixs于2007-4-14 9:56:32的发言:

别忘记有个叫"密码"的东西...

     密码                密码
数据---------加密文档-------------解密文档
   加密算法           解密算法

即使知道加密的算法,没有密码,要破解也不是简单的事....

同意,密码就是key,加密和解密就是根据key来计算的。
作者: 小帆    时间: 2007-4-19 01:39
说明: 直接用 Data_Package.start 使用。


   什么意思?不懂>?
作者: rpg83200    时间: 2007-4-19 10:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小帆    时间: 2007-4-19 15:08
{/cy}谢谢楼上rpg83200......


  不对吧....直接调用....   那怎么加密啊??

    可以讲的详细点么?谢谢了...
作者: 小帆    时间: 2007-4-21 18:24
{/pz}哎...不会用..
作者: 鐘聲    时间: 2007-4-21 22:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 包子研究员    时间: 2007-8-9 21:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小真·爱舞    时间: 2007-8-9 21:49
能。
我用这个的时候感觉这脚本在扫描文件的时候有问题。
实际上是没有把所有文件都压缩进去造成的你的那个错误。
解决的方式我是没有,但是我的方法是全部手动一个个添加进去压缩的。
作者: 美兽    时间: 2007-8-9 22:34
这个东西的原理,

是把所有文件转成字节流(好象是这么叫{/pz})并合并压缩,

使用时根据索引解压临时还原文件,

加载完毕再删除,

了解原理可以针对自己游戏简化下,

毕竟夏娜这个为了泛用,照顾的要全面些。
作者: 小真·爱舞    时间: 2007-8-9 22:37
以下引用美兽于2007-8-9 14:34:36的发言:

这个东西的原理,

是把所有文件转成字节流(好象是这么叫)并合并压缩,

使用时根据索引解压临时还原文件,

加载完毕再删除,

了解原理可以针对自己游戏简化下,

毕竟夏娜这个为了泛用,照顾的要全面些。


[本贴由作者于 2007-8-9 14:35:19 最后编辑]


不过如果数据库是解密的,这个素材加密就无效了。
懂一点脚本的人就能把他们都恢复出来。
作者: 包子研究员    时间: 2007-8-9 22:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 包子研究员    时间: 2007-8-9 22:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小真·爱舞    时间: 2007-8-10 00:34
以下引用包子研究员于2007-8-9 14:42:01的发言:

上面那个看错……

话说确实……总共90多MB的压缩成56MB的……不知道是不是很多文件都漏了,似乎图片素材目录下的自己建立的文件是不是没有被压缩进去?


[本贴由作者于 2007-8-9 14:44:41 最后编辑]


我之前说了扫描有毛病,你没看我上面的回帖么?
自己一个个手动压缩进去。
作者: 包子研究员    时间: 2007-8-11 02:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七夕小雨    时间: 2007-8-11 03:07
小夏!{/ll}
作者: 包子研究员    时间: 2007-8-12 19:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: x387804363    时间: 2007-8-12 21:08
到底怎么用? 貌似这个脚本很好用嘛~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
作者: 包子研究员    时间: 2007-8-12 22:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 越前リョーマ    时间: 2007-8-13 05:45
没看懂的说……
作者: 包子研究员    时间: 2007-8-15 06:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: 包子研究员    时间: 2007-8-24 03:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 江南小帅瓜    时间: 2008-5-16 05:11
没有生成resource_list.inf   为什么会这样???




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