Project1

标题: 取自《信赖铃音-莫扎特之梦》的免系统标题脚本 [打印本页]

作者: dingjianwei    时间: 2008-2-4 07:06
标题: 取自《信赖铃音-莫扎特之梦》的免系统标题脚本
RMVX自定义开始画面的一种新方案~~~
我下载《信赖铃音-莫扎特之梦~Trusty Bell》开始游戏是发现开始画面异常华丽{/qiang}
但是游戏载入时间过长引起了我的好奇心,打开工程发现标题画面的信息和素材都在名为“标题画面”的地图上,原来作者是跳过系统的标题画面直接开始游戏载入地图,游戏的开始菜单以事件编写,我将目光放在Scene_Title的脚本上就发现了秘密{/cy}
我用莫妮卡的RPG Maker VX 1.0 简体中文安装版生成新建工程然后对照《信赖铃音-莫扎特之梦》的Scene_Title做了相应的修改保证兼容性和通俗性代码如下
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     if $BTEST                         # 战斗测试的情况下
  12.       battle_test                     # 开始战斗测试处理
  13.     else                              # 普通游戏的情况下
  14.       super                           # 原来的主处理
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 开始处理
  19.   #--------------------------------------------------------------------------
  20.   def start
  21.     super
  22.     load_database                     # 载入数据库
  23.     create_game_objects               # 生成游戏对象
  24.     check_continue                    # 判断继续是否有效
  25.     command_new_game                  # 跳过游戏标题跳转到自定义标题
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 执行转换
  29.   #--------------------------------------------------------------------------
  30.   def perform_transition
  31.     Graphics.transition(20)
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 结束处理
  35.   #--------------------------------------------------------------------------
  36.   def terminate
  37.     super
  38.     snapshot_for_background
  39.   end

  40.   #--------------------------------------------------------------------------
  41.   # ● 载入数据库
  42.   #--------------------------------------------------------------------------
  43.   def load_database
  44.     $data_actors        = load_data("Data/Actors.rvdata")
  45.     $data_classes       = load_data("Data/Classes.rvdata")
  46.     $data_skills        = load_data("Data/Skills.rvdata")
  47.     $data_items         = load_data("Data/Items.rvdata")
  48.     $data_weapons       = load_data("Data/Weapons.rvdata")
  49.     $data_armors        = load_data("Data/Armors.rvdata")
  50.     $data_enemies       = load_data("Data/Enemies.rvdata")
  51.     $data_troops        = load_data("Data/Troops.rvdata")
  52.     $data_states        = load_data("Data/States.rvdata")
  53.     $data_animations    = load_data("Data/Animations.rvdata")
  54.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  55.     $data_system        = load_data("Data/System.rvdata")
  56.     $data_areas         = load_data("Data/Areas.rvdata")
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 载入战斗测试用的数据库
  60.   #--------------------------------------------------------------------------
  61.   def load_bt_database
  62.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  63.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  64.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  65.     $data_items         = load_data("Data/BT_Items.rvdata")
  66.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  67.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  68.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  69.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  70.     $data_states        = load_data("Data/BT_States.rvdata")
  71.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  72.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  73.     $data_system        = load_data("Data/BT_System.rvdata")
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 生成各种游戏对象
  77.   #--------------------------------------------------------------------------
  78.   def create_game_objects
  79.     $game_temp          = Game_Temp.new
  80.     $game_message       = Game_Message.new
  81.     $game_system        = Game_System.new
  82.     $game_switches      = Game_Switches.new
  83.     $game_variables     = Game_Variables.new
  84.     $game_self_switches = Game_SelfSwitches.new
  85.     $game_actors        = Game_Actors.new
  86.     $game_party         = Game_Party.new
  87.     $game_troop         = Game_Troop.new
  88.     $game_map           = Game_Map.new
  89.     $game_player        = Game_Player.new
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 判断继续是否有效
  93.   #--------------------------------------------------------------------------
  94.   def check_continue
  95.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 检测游戏者初期位置是否存在
  99.   #--------------------------------------------------------------------------
  100.   def confirm_player_location
  101.     if $data_system.start_map_id == 0
  102.       print "没有设置游戏者初期位置。"
  103.       exit
  104.     end
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 指令 : 新游戏
  108.   #--------------------------------------------------------------------------
  109.   def command_new_game
  110.     confirm_player_location
  111.     $game_party.setup_starting_members            # 初期同伴
  112.     $game_map.setup($data_system.start_map_id)    # 初期地图位置
  113.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  114.     $game_player.refresh
  115.     $scene = Scene_Map.new
  116.     Graphics.frame_count = 0
  117.     $game_map.autoplay
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 指令 : 继续
  121.   #--------------------------------------------------------------------------
  122.   def command_continue
  123.     if @continue_enabled
  124.       Sound.play_decision
  125.       $scene = Scene_File.new(false, true, false)
  126.     else
  127.       Sound.play_buzzer
  128.     end
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 指令 : 退出
  132.   #--------------------------------------------------------------------------
  133.   def command_shutdown
  134.     Sound.play_decision
  135.     RPG::BGM.fade(800)
  136.     RPG::BGS.fade(800)
  137.     RPG::ME.fade(800)
  138.     $scene = nil
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ● 战斗测试
  142.   #--------------------------------------------------------------------------
  143.   def battle_test
  144.     load_bt_database                  # 载入战斗测试用数据库
  145.     create_game_objects               # 生成游戏对象
  146.     Graphics.frame_count = 0          # 初始化游戏时间
  147.     $game_party.setup_battle_test_members
  148.     $game_troop.setup($data_system.test_troop_id)
  149.     $game_troop.can_escape = true
  150.     $game_system.battle_bgm.play
  151.     snapshot_for_background
  152.     $scene = Scene_Battle.new
  153.   end
  154. end
复制代码

没什么技术含量,大家对照游戏脚本自己也会发现~~发出来只是为了了却自己对RMVX不能自定义开始画面的残念~~(虽然可以替换System下的同名文件)
附《信赖铃音-莫扎特之梦~Trusty Bell》http://rpg.blue/viewthread.php?tid=74734
RPG Maker VX 1.0 简体中文安装版 http://rpg.blue/viewthread.php?tid=72185
作者: 5693744    时间: 2008-2-4 11:08
不错的脚本
作者: earlysummer    时间: 2010-10-2 10:43
额,把title.png改成同名的自己画的标题,不是就可以换了吗?不过脚本很好啊^^嘿嘿,抱走




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