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

Project1

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

[已经解决] 脚本提取器

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2010-6-19
帖子
36
跳转到指定楼层
1
发表于 2010-6-27 18:46:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 lichenggmm 于 2010-6-29 19:11 编辑

脚本提取器 怎么使用啊?各位知道的说下啊...

Lv1.梦旅人

梦石
0
星屑
50
在线时间
77 小时
注册时间
2008-5-16
帖子
194
2
发表于 2010-6-28 03:26:43 | 只看该作者
你想干什么-。-。。。。脚本提取器。。。。不会是用来解密的东西吧。。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
403
在线时间
972 小时
注册时间
2007-12-31
帖子
2137
3
发表于 2010-6-28 10:17:20 | 只看该作者
本帖最后由 liqunsz 于 2010-6-28 17:53 编辑

FORBIDDEN
请LZ参照版规进行……
http://rpg.blue/forum.php?mod=viewthread&tid=106555&extra=page%3D1


【加密解密不要说。】

禁止询问有关加密解密的问题。如果是你自己的游戏加密后需要解密,请给出原创证明,并且此服务收费——换言之,请自行妥善保存好你自己的游戏,千万别在加密之后把源文件删了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2010-6-19
帖子
36
4
 楼主| 发表于 2010-6-28 12:41:02 | 只看该作者
啊 ?脚本提取器 不是把你做的文件 素材 弄出来吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2010-6-19
帖子
36
5
 楼主| 发表于 2010-6-28 12:45:14 | 只看该作者
http://rpg.blue/web/htm/news27.htm
你自己看  我说那个脚本提取器!!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
403
在线时间
972 小时
注册时间
2007-12-31
帖子
2137
6
发表于 2010-6-28 17:45:44 | 只看该作者
本帖最后由 liqunsz 于 2010-6-28 17:50 编辑

…………你不说清楚点…………我的错我的错……
人家明明全名叫做【游戏发布【素材】提取器】
步骤如下:
1.将数据库中的不使用的动画、图块项删掉
2.复制RMXP安装目录的RGSS/Standard的内容,与你游戏新增的素材相合并
3.复制此脚本并将脚本中【RMXP = "C:/Program Files/RPG Maker XP/RGSS/Standard/"】中的
"C:/Program Files/RPG Maker XP/RGSS/Standard/"修改为你游戏的目录
4.运行游戏(如果指定到安装目录的RTP,原RTP会损坏)


脚本如下:
  1. #============================================================================
  2. # 本脚本来自www.66rpg.com,转载请保留此信息,使用……只能用一次
  3. # 核心作者:RoyRoy
  4. # 使用方法:
  5. #    1、首先输入RMXP的标准素材库地址,下面给出的是默认地址
  6. #    2、运行脚本就OK了。
  7. # ★★特别声明!!运用此脚本会删掉你给的路径的素材库★★请自己备份好★★★★
  8. #============================================================================

  9. RMXP = "C:/Program Files/RPG Maker XP/RGSS/Standard/"   # 素材库地址



  10. module DumpRgss
  11. def self.dump
  12.    @rgss_list = []   
  13.    @rgss_dir = {
  14.                 'BGM'            => 'Audio/BGM',
  15.                 'BGS'            => 'Audio/BGS',
  16.                 'ME'             => 'Audio/ME',
  17.                 'SE'             => 'Audio/SE',
  18.                 'Animations'     => 'Graphics/Animations',
  19.                 'Autotiles'      => 'Graphics/Autotiles',
  20.                 'Battlebacks'    => 'Graphics/Battlebacks',
  21.                 'Battlers'       => 'Graphics/Battlers',
  22.                 'Characters'     => 'Graphics/Characters',
  23.                 'Fogs'           => 'Graphics/Fogs',
  24.                 'Gameovers'      => 'Graphics/Gameovers',
  25.                 'Icons'          => 'Graphics/Icons',
  26.                 'Panoramas'      => 'Graphics/Panoramas',
  27.                 'Pictures'       => 'Graphics/Pictures',
  28.                 'Tilesets'       => 'Graphics/Tilesets',
  29.                 'Titles'         => 'Graphics/Titles',
  30.                 'Transitions'    => 'Graphics/Transitions',
  31.                 'Windowskins'    => 'Graphics/Windowskins'
  32.                 }
  33.    base_data = ['Actors', 'Animations', 'Armors', 'Enemies', 'Items',
  34.                 'Skills', 'Tilesets', 'Weapons']
  35.    rgss_data = {
  36.                 'menu_se'          => 'SE',
  37.                 'animation_name'   => 'Animations',
  38.                 'battler_name'     => 'Battlers',
  39.                 'battleback_name'  => 'Battlebacks',
  40.                 'character_name'   => 'Characters',
  41.                 'fog_name'         => 'Fogs',
  42.                 'icon_name'        => 'Icons',
  43.                 'panorama_name'    => 'Panoramas',
  44.                 'tileset_name'     => 'Tilesets'
  45.                 }
  46.    for fnbase in base_data
  47.      rxdata = self.open_file(fnbase)
  48.      for data in rxdata
  49.        for data_key in rgss_data.keys
  50.          begin
  51.            data_value = eval('data.' + data_key)
  52.            self.push_to_list(rgss_data[data_key], data_value)
  53.          rescue
  54.          end # begin
  55.        end # for data_key
  56.          
  57.        # Animations.rxdata
  58.        if fnbase == 'Animations'
  59.          begin
  60.            for timing in data.timings
  61.              self.push_to_list('SE', timing.se)
  62.            end # for timing
  63.          rescue
  64.          end # begin
  65.        elsif fnbase == 'Tilesets'
  66.          begin
  67.            for autotile_name in data.autotile_names
  68.              self.push_to_list('Autotiles', autotile_name)
  69.            end # for timing
  70.          rescue
  71.          end # begin
  72.        end
  73.      end # for data
  74.    end # for fnbase
  75.    
  76.    # System.rxdata
  77.    rgss_data = {
  78.                 'battleback_name'    => 'Battlebacks',
  79.                 'battler_name'       => 'Battlers',
  80.                 'windowskin_name'    => 'Windowskins',
  81.                 'gameover_name'      => 'Gameovers',
  82.                 'title_name'         => 'Titles',
  83.                 'battle_transition'  => 'Transitions',
  84.                 'title_bgm'          => 'BGM',
  85.                 'battle_bgm'         => 'BGM',
  86.                 'battle_end_me'      => 'ME',
  87.                 'gameover_me'        => 'ME',
  88.                 'cursor_se'          => 'SE',
  89.                 'decision_se'        => 'SE',
  90.                 'cancel_se'          => 'SE',
  91.                 'buzzer_se'          => 'SE',
  92.                 'equip_se'           => 'SE',
  93.                 'shop_se'            => 'SE',
  94.                 'save_se'            => 'SE',
  95.                 'load_se'            => 'SE',
  96.                 'battle_start_se'    => 'SE',
  97.                 'escape_se'          => 'SE',
  98.                 'actor_collapse_se'  => 'SE',
  99.                 'enemy_collapse_se'  => 'SE'
  100.                 }
  101.      
  102.    rxdata = self.open_file('System')
  103.    
  104.    for data_key in rgss_data.keys
  105.      begin
  106.        data_value = eval('rxdata.' + data_key)
  107.        self.push_to_list(rgss_data[data_key], data_value)
  108.      rescue
  109.      end # begin
  110.    end # for data_key
  111.    
  112.    # CommonEvents.rxdata
  113.    rxdata = self.open_file('CommonEvents')
  114.    
  115.    for data in rxdata
  116.      begin
  117.        self.dump_event_list(data.list)
  118.      rescue
  119.      end # begin
  120.    end
  121.    
  122.    # Troops (events) data
  123.    rxdata = self.open_file('Troops')
  124.    
  125.    for data in rxdata
  126.      begin
  127.        for page in data.pages
  128.          self.dump_event_list(page.list)
  129.        end # begin
  130.      rescue
  131.      end
  132.    end
  133.    
  134.    # Map (events) data
  135.    fldata = 'Data/MapInfos.rxdata'
  136.    mapinfos = load_data(fldata)
  137.    for mapinfo in mapinfos
  138.      rxdata = self.open_file(sprintf('Map%03d', mapinfo[0]))
  139.      begin
  140.        self.push_to_list('BGM', rxdata.bgm)
  141.        self.push_to_list('BGS', rxdata.bgs)
  142.      rescue
  143.      end # begin
  144.      # Events
  145.      for event in rxdata.events.values
  146.        for page in event.pages
  147.          begin
  148.            self.push_to_list('Characters', page.graphic.character_name)
  149.            self.dump_custom_move_list(page.move_route.list)
  150.            self.dump_event_list(page.list)
  151.          rescue
  152.          end # begin
  153.        end
  154.      end
  155.    end
  156.    
  157.    # Save
  158.    @rgss_list.shift
  159.    f = open('./dump_rgss.txt', 'w')
  160.    begin
  161.      for rgss in @rgss_list
  162.        printf(f, '%s%s', rgss, "\n")
  163.      end
  164.    ensure
  165.      f.close
  166.    end
  167.    p 'dump end'
  168. end
  169. def self.open_file(fndata)
  170.    fldata = sprintf('Data/%s.rxdata', fndata)
  171.    
  172.    @rgss_list.push('')
  173.    @rgss_list.push(sprintf('[%s]', fldata))
  174.    
  175.    return load_data(fldata)
  176. end
  177. def self.push_to_list(dir_key, value)
  178.    # Audio/SE
  179.    if value.is_a?(RPG::AudioFile)
  180.      value = value.name
  181.    end
  182.            
  183.    if value != ''
  184.      flrgss = sprintf('%s/%s', @rgss_dir[dir_key], value)
  185.      if File.exist?(RMXP+flrgss+".jpg")
  186.        File.rename(RMXP+flrgss+".jpg",flrgss+".jpg")
  187.      end
  188.      if File.exist?(RMXP+flrgss+".bmp")
  189.        File.rename(RMXP+flrgss+".bmp",flrgss+".bmp")
  190.      end
  191.      if File.exist?(RMXP+flrgss+".png")
  192.        File.rename(RMXP+flrgss+".png",flrgss+".png")
  193.      end
  194.      if File.exist?(RMXP+flrgss+".wav")
  195.         File.rename(RMXP+flrgss+".wav",flrgss+".wav")
  196.      end
  197.      if File.exist?(RMXP+flrgss+".mp3")
  198.        File.rename(RMXP+flrgss+".mp3",flrgss+".mp3")
  199.      end
  200.      if File.exist?(RMXP+flrgss+".mid")
  201.        File.rename(RMXP+flrgss+".mid",flrgss+".mid")
  202.      end
  203.      if File.exist?(RMXP+flrgss+".wma")
  204.        File.rename(RMXP+flrgss+".wma",flrgss+".wma")
  205.      end
  206.      if File.exist?(RMXP+flrgss+".ogg")
  207.        File.rename(RMXP+flrgss+".ogg",flrgss+".ogg")
  208.      end
  209.      #if @rgss_list.include?(flrgss)
  210.        #flrgss = sprintf('>%s', flrgss)
  211.      #end
  212.      @rgss_list.push(flrgss)
  213.    end
  214. end
  215. def self.dump_event_list(event_commands)
  216.    for event_command in event_commands
  217.      self.dump_event(event_command)
  218.    end
  219. end
  220. def self.dump_event(event_command)
  221.    parameters = event_command.parameters
  222.    case event_command.code
  223.    when 131
  224.      self.push_to_list('Windowskins', parameters[0])
  225.    when 132
  226.      self.push_to_list('BGM', parameters[0])
  227.    when 133
  228.      self.push_to_list('ME', parameters[0])
  229.    when 204
  230.      case parameters[0]
  231.      when 0  
  232.        self.push_to_list('Panoramas', parameters[1])
  233.      when 1  
  234.        self.push_to_list('Fogs', parameters[1])
  235.      when 2  
  236.        self.push_to_list('Battlebacks', parameters[1])
  237.      end
  238.    when 209
  239.      dump_custom_move_list(parameters[1].list)
  240.    when 222
  241.      self.push_to_list('Transitions', parameters[0])
  242.    when 231
  243.      self.push_to_list('Pictures', parameters[1])
  244.    when 241
  245.      self.push_to_list('BGM', parameters[0])
  246.    when 245
  247.      self.push_to_list('BGS', parameters[0])
  248.    when 249
  249.      self.push_to_list('ME', parameters[0])
  250.    when 250
  251.      self.push_to_list('SE', parameters[0])
  252.    when 322
  253.      self.push_to_list('Characters', parameters[1])
  254.      self.push_to_list('Battlers', parameters[3])
  255.    end
  256. end
  257. def self.dump_custom_move_list(move_commands)
  258.    for move_command in move_commands
  259.      self.dump_custom_move(move_command)
  260.    end
  261. end
  262. def self.dump_custom_move(move_command)
  263.    parameters = move_command.parameters
  264.    case move_command.code
  265.    when 41
  266.      self.push_to_list('Characters', parameters[0])
  267.    when 44
  268.      self.push_to_list('SE', parameters[0])
  269.    end
  270. end
  271. end

  272. DumpRgss.dump
复制代码
注意,你新增加的脚本或修改原来的脚本可能会增加一些图片、音效之类的,这个提取器是不会提取的……
我相信LZ你的理解力也不算太差啊,这个在发布页上都已经写了方法了啊……
游戏制作完成之后把素材提取到自己游戏里面。

特别注意:

提取得不保证非常完整。素材肯定不会多,只可能少……缩减自己游戏体积专用

缩减的一些其他窍门:运行此脚本前,把没用的数据库动画,数据库图块都删了,能变小不少

插入脚本,运行。注意默认情况下会把安装目录下的RMXP素材库破坏,请看脚本

1、首先输入RMXP的标准素材库地址,下面给出的是默认地址
2、运行脚本就OK了。


LZ不仔细看说明额……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2010-6-19
帖子
36
7
 楼主| 发表于 2010-6-28 22:14:35 | 只看该作者
本帖最后由 lichenggmm 于 2010-6-28 22:17 编辑

哦 话说还不是很明白.....是不是 用它就能把你要的文件都粘到你的游戏文件夹里?还有怎么运行这个脚本啊?
我脚本这东西实在不明白....而又是想偷懒的人 ...
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
403
在线时间
972 小时
注册时间
2007-12-31
帖子
2137
8
发表于 2010-6-29 11:31:01 | 只看该作者
MY GOD!不是!你理解错误了。这个脚本是把你在脚本中设置的RTP库【去掉】你的数据库中没有用到的素材,所以让你把RTP复制一份与自己的素材混在一起。
但是要注意,这个脚本好像会缺失在脚本中设置的素材,比如弹字的声音,因为这都是之后定义的。
使用方法把脚本复制,在Main前增加一个脚本(可以右键→【新建】,也可以按Insert键),粘贴入,打开游戏就行了,运行结束后,把这个脚本删掉……

评分

参与人数 1星屑 +400 收起 理由
「旅」 + 400 正确解答~~

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2010-6-19
帖子
36
9
 楼主| 发表于 2010-6-29 19:10:36 | 只看该作者
额  不好意思...我还以为是抽水泵呢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 04:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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