查看: 2606|回复: 2

[RMXP发布] 改变所有游戏资源的后缀名

[复制链接]
梦石
0
星屑
255
在线时间
509 小时
注册时间
2010-10-1
回帖
82
发表于 2015-2-6 13:48:52 | 显示全部楼层 |阅读模式

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

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

×
突然翻到以前的一个东西,不过不知道这货有什么用呢 嗯 不过我知道要是删掉了所有图片的后缀、解包的人肯定很方便的啦(这是什么作用、)
先发上来分享一下吧
[pre lang="ruby" line="1"]#==============================================================================
# ■ Change_Name
#------------------------------------------------------------------------------
#   功能:改变所有游戏资源的后缀名(别问我有什么用)
#   作者:永远的塞尔达传说
#   使用:游戏做好后将本脚本插入到Main之前运行游戏即可(记得用完删除脚本)
#==============================================================================
#            ▶注意:请做好资源备份再运行此脚本,否则后果自负!◀

module Change_ExtName
  #--------------------------------------------------------------------------
  # ● 开始
  #--------------------------------------------------------------------------
  def self.start
    @old_dir = Dir.pwd
    @resource_type = [".bmp",".jpg",".png",".wav",".mp3",".ogg",".wma",".mid"]
    @filenames = []
    @path = ""
    self.get_filelist(@path)
    self.change(@filenames)
  end
  #--------------------------------------------------------------------------
  # ● 获取文件列表
  #--------------------------------------------------------------------------
  def self.get_filelist(path)
    Dir.chdir(@old_dir)
    Dir.chdir(path) if path != ""
    for f in Dir["*"]
      if FileTest.directory?(f)
        @path = @path + f + "/"
        self.get_filelist(@path)
      else
        if @resource_type.include? File.extname(f).downcase
          @filenames.push @path + f
        end
      end
    end
    @path = (File.dirname(path) == "." ? "" : File.dirname(path) + "/")
    Dir.chdir(@old_dir)
    Dir.chdir(@path) if @path != ""
  end
  #--------------------------------------------------------------------------
  # ● 对每个文件进行修改
  #--------------------------------------------------------------------------
  def self.change(filenames)
    begin
     for name in filenames
       begin
         File.rename(name, File.dirname(name) + "/" + File.basename(name,".*") + ".dat")
       rescue
         print "ERROR:文件\"#{name}\"修改失败!自动跳过该文件。"
       end
     end
    ensure
      print "成功完成。"
      exit
    end
  end
end
#Change_ExtName.start            # 请小心解封= =b[/pre]
等下、注意:路径文件中请勿出现中文!很郁闷FileTest竟然不支持中文、、

点评

吾只是经常用RM来批量改文件名。  发表于 2015-2-7 01:44

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-6 13:56:05 | 显示全部楼层
本帖最后由 taroxd 于 2015-2-6 15:11 编辑

[pre lang="ruby" line="1"]
Dir.glob('**/*.{bmp,jpg,png,wav,mp3,ogg,wma,mid}') do |f|
  File.rename(f, f.chomp(File.extname(f)))
end[/pre]

把 3 行代码写成 60 行是闹哪样啊!!!

点评

出错了是什么情况···  发表于 2015-2-6 20:48
我没事不喜欢 rescue。错误要报出来才容易发现问题  发表于 2015-2-6 15:10
等一下、表用 硬生生 这个形容词嘛、在下又不是故意的= =  发表于 2015-2-6 14:59
啊啊、 我已经解释了是以前写的了啊 还有你忘了rescue nil  发表于 2015-2-6 14:57
本地测试无问题。请自行 rescue(另外我也不知道去掉后缀名有啥用)  发表于 2015-2-6 14:28
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-2-6 20:50:11 | 显示全部楼层
把后辍名全部改成rxdata、rvdata之类的然后全部放到一个文件夹混淆视听如何···(闲的蛋疼)

点评

混淆视听的方法多着呢==  发表于 2015-2-16 23:44
还不如把文件全部名字后戳颠倒。。。  发表于 2015-2-7 01:57
还不如把 rxdata 等后缀改成 *&%¥,,等火星文,RM照样读取。  发表于 2015-2-7 01:43
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部