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

Project1

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

[RMVA发布] VA rtp提取脚本

[复制链接]

Lv4.逐梦者

梦石
2
星屑
5520
在线时间
2564 小时
注册时间
2012-2-9
帖子
990

开拓者

跳转到指定楼层
1
发表于 2016-7-26 19:59:34 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 garfeng 于 2016-8-1 12:13 编辑

怀疑这个脚本之前有人写过,但找不到了。
自己动手吧。

因为ace的rtp有200M,全加进去太大,手动加又很麻烦。

这个脚本可以在游戏运行时,把用到的,却不存在的BGM,图片移动到游戏自己的目录下。

推荐在游戏制作整个过程中,都使用本脚本,保证每个角落要用到的图片和bgm都移过去了。
在发布前将本脚本删除。

RUBY 代码复制
  1. #ACE rtp提取工具,by garfeng
  2. #只能提取bgm,和图片
  3. #请把原始rtp复制一份使用,不要使用原始的rtp路径
  4. #因为是移动文件,而非复制。
  5.  
  6.  
  7.  
  8. $rootDir = "../rtp/"
  9.  
  10. def mvBgm(bgm)
  11.   name = bgm.name
  12.   p name
  13.   path = "Audio/BGM/" + name + ".ogg"
  14.   exist = File.exist?(path)
  15.   if !exist
  16.     ori = $rootDir + path
  17.     if File.exist?(ori)
  18.       p ori
  19.       File.rename(ori,path)
  20.     end
  21.   end
  22. end
  23.  
  24. def mvImg(img)
  25.   path1 = img+".png"
  26.   path2 = img+".jpg"
  27.   exist = File.exist?(path1) || File.exist?(path2)
  28.   if !exist
  29.     ori1 = $rootDir + path1
  30.     ori2 = $rootDir + path2
  31.     if File.exist?(ori1)
  32.       File.rename(ori1,path1)
  33.     elsif File.exist?(ori2)
  34.       file.rename(ori2,path2)
  35.     end
  36.   end
  37. end
  38.  
  39.  
  40. module Cache
  41.  
  42.   def self.normal_bitmap(path)
  43.     mvImg(path)
  44.     @cache[path] = Bitmap.new(path) unless include?(path)
  45.     @cache[path]
  46.   end
  47.  
  48. end
  49.  
  50.  
  51.  
  52. class Game_Map
  53.  
  54.   def autoplay
  55.     if @map.autoplay_bgm
  56.       mvBgm(@map.bgm)
  57.     end
  58.     @map.bgm.play if @map.autoplay_bgm
  59.     @map.bgs.play if @map.autoplay_bgs
  60.   end
  61.  
  62. end
  63.  
  64.  
  65. module BattleManager
  66.  
  67.   def self.play_battle_bgm
  68.     mvBgm($game_system.battle_bgm)
  69.     $game_system.battle_bgm.play
  70.     RPG::BGS.stop
  71.   end
  72.  
  73. end
  74.  
  75. class Game_Vehicle < Game_Character
  76.  
  77.   def get_on
  78.     @driving = true
  79.     @walk_anime = true
  80.     @step_anime = true
  81.     @walking_bgm = RPG::BGM.last
  82.     mvBgm(system_vehicle.bgm)
  83.     system_vehicle.bgm.play
  84.   end
  85.  
  86.   def get_off
  87.     @driving = false
  88.     @walk_anime = false
  89.     @step_anime = false
  90.     @direction = 4
  91.     mvBgm(@walking_bgm)
  92.     @walking_bgm.play
  93.   end
  94.  
  95. end
  96.  
  97. class Scene_Title < Scene_Base
  98.  
  99.   def play_title_music
  100.     mvBgm($data_system.title_bgm)
  101.     $data_system.title_bgm.play
  102.     RPG::BGS.stop
  103.     RPG::ME.stop
  104.   end
  105.  
  106. end
  107.  
  108. class Game_Interpreter
  109.  
  110.   def command_241
  111.     mvBgm(@params[0])
  112.     @params[0].play
  113.   end
  114.  
  115. end

点评

复制可以用 IO.copy_stream,参考 ruby 标准库的 FileUtils  发表于 2016-11-19 10:56

评分

参与人数 1+1 收起 理由
Kim_Shyuen + 1 塞糖

查看全部评分

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

本版积分规则

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

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

GMT+8, 2024-5-14 07:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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