Project1

标题: 【默】在开始后出现选项如跳过序幕之类的(脚本) [打印本页]

作者: 不是马甲    时间: 2010-8-18 14:36
标题: 【默】在开始后出现选项如跳过序幕之类的(脚本)
第一次讲解,希望大家多多支持,本讲解为我原创,脚本为我改写(改写title),版权属于默之(额 我的大号)。
额,很高行为大将讲解如何在开始后用脚本添加选项。

首先打开工程的脚本编辑,    找到
  1. #--------------------------------------------------------------------------
  2.   # ● 命令 : 新游戏
  3.   #--------------------------------------------------------------------------
  4.   def command_new_game
  5.     # 演奏确定 SE
  6.     $game_system.se_play($data_system.decision_se)
  7.     # 停止 BGM
  8.     Audio.bgm_stop
  9.     # 重置测量游戏时间用的画面计数器
  10.     Graphics.frame_count = 0
  11.     # 生成各种游戏对像
  12.     $game_temp          = Game_Temp.new
  13.     $game_system        = Game_System.new
  14.     $game_switches      = Game_Switches.new
  15.     $game_variables     = Game_Variables.new
  16.     $game_self_switches = Game_SelfSwitches.new
  17.     $game_screen        = Game_Screen.new
  18.     $game_actors        = Game_Actors.new
  19.     $game_party         = Game_Party.new
  20.     $game_troop         = Game_Troop.new
  21.     $game_map           = Game_Map.new
  22.     $game_player        = Game_Player.new
  23.     # 设置初期同伴位置
  24.     $game_party.setup_starting_members
  25.     # 设置初期位置的地图
  26.     $game_map.setup($data_system.start_map_id)
  27.     # 主角向初期位置移动
  28.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  29.     # 刷新主角
  30.     $game_player.refresh
  31.     # 执行地图设置的 BGM 与 BGS 的自动切换
  32.     $game_map.autoplay
  33.     # 刷新地图 (执行并行事件)
  34.     $game_map.update
  35.     # 切换地图画面
  36.     $scene = Scene_Map.new
  37.   end
复制代码
将其全部改为
  1.   #--------------------------------------------------------------------------
  2.   # ● 命令 : 新游戏   #默之
  3.   #--------------------------------------------------------------------------
  4.   def command_new_game
  5.     $game_system.se_play($data_system.decision_se)
  6.     $scene = Scene_xuanxiang.new #场景可自定义
  7.   end
复制代码
并在 Scene_Title  底下新建一个 Scene_xuanxiang

Scene_xuanxiang 的编写 其实与 Scene_Title  有很多异曲同工之处

首先插入
  1. class Scene_xuanxiang #此处可更改
  2.   #--------------------------------------------------------------------------
  3.   # ● 新建游戏
  4.   #--------------------------------------------------------------------------
  5.   def main
  6.     #把一个背景放入(需自定义图片)
  7.     @sprite = Sprite.new
  8.     @sprite.bitmap = RPG::Cache.panorama("mozhi", 0)
  9.     #描绘窗口
  10.     s1 = "   播放序幕"                  
  11.     s2 = "   跳过序幕"                  
  12.     #下面与title差不多了
  13.     @command_window = Window_Command.new(150, [s1, s2])
  14.     @command_window.opacity = 0
  15.     @command_window.x = 320 - @command_window.width / 2
  16.     @command_window.y = 200
  17.     # 演奏标题 BGM(可自定义播放其他音乐)
  18.     $game_system.bgm_play($data_system.title_bgm)
  19.     # 停止演奏 ME、BGS
  20.     Audio.me_stop
  21.     Audio.bgs_stop
  22.     # 执行过渡
  23.     Graphics.transition
  24.     # 主循环
  25.     loop do
  26.       # 刷新游戏画面
  27.       Graphics.update
  28.       # 刷新输入信息
  29.       Input.update
  30.       # 刷新画面
  31.       update
  32.       # 如果画面被切换就中断循环
  33.       if $scene != self
  34.         break
  35.       end
  36.     end
  37.     # 装备过渡
  38.     Graphics.freeze
  39.     # 释放命令窗口
  40.     @command_window.dispose
  41.     # 释放标题图形
  42.     @sprite.bitmap.dispose
  43.     @sprite.dispose
  44.   end
复制代码
s1 s2  后面的文字可以根据自己需要更改(这个跟title一样)
然后大段大段的复制底下 ,那么我将复制的脚本复制上来
  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新画面
  3.   #--------------------------------------------------------------------------
  4.   def update
  5.     # 刷新命令窗口
  6.     @command_window.update
  7.     # 按下 C 键的情况下
  8.     if Input.trigger?(Input::C)
  9.       # 命令窗口的光标位置的分支
  10.       case @command_window.index
  11.       when 0  # 播放序幕
  12.         command_bofang
  13.       when 1  # 跳过序幕
  14.         command_tiaoguo
  15.     end
  16.   end
复制代码
底下 播放序幕 与 跳过序幕 就用到了柳柳所讲解的如何在标题画面传送到不同地图了(在黑剑中有用到)
  1.   #--------------------------------------------------------------------------
  2.   # ● 命令 : 播放序幕
  3.   #--------------------------------------------------------------------------
  4.   def command_bofang
  5.     # 演奏确定 SE
  6.     $game_system.se_play($data_system.decision_se)
  7.     # 停止 BGM
  8.     Audio.bgm_stop
  9.     # 重置测量游戏时间用的画面计数器
  10.     Graphics.frame_count = 0
  11.     # 生成各种游戏对像
  12.     $game_temp          = Game_Temp.new
  13.     $game_system        = Game_System.new
  14.     $game_switches      = Game_Switches.new
  15.     $game_variables     = Game_Variables.new
  16.     $game_self_switches = Game_SelfSwitches.new
  17.     $game_screen        = Game_Screen.new
  18.     $game_actors        = Game_Actors.new
  19.     $game_party         = Game_Party.new
  20.     $game_troop         = Game_Troop.new
  21.     $game_map           = Game_Map.new
  22.     $game_player        = Game_Player.new
  23.     # 设置初期同伴位置
  24.     $game_party.setup_starting_members
  25.     # 设置初期位置的地图
  26.     $game_map.setup($data_system.start_map_id)#设置地图
  27.     # 主角向初期位置移动
  28.     $game_player.moveto($data_system.start_x, $data_system.start_y)#设置移动位置
  29.     # 刷新主角
  30.     $game_player.refresh
  31.     # 执行地图设置的 BGM 与 BGS 的自动切换
  32.     $game_map.autoplay
  33.     # 刷新地图 (执行并行事件)
  34.     $game_map.update
  35.     # 切换地图画面
  36.     $scene = Scene_Map.new
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 命令 : 跳过序幕
  40.   #--------------------------------------------------------------------------
  41.   def command_tiaoguo
  42.     # 演奏确定 SE
  43.     $game_system.se_play($data_system.decision_se)
  44.     # 停止 BGM
  45.     Audio.bgm_stop
  46.     # 重置测量游戏时间用的画面计数器
  47.     Graphics.frame_count = 0
  48.     # 生成各种游戏对像
  49.     $game_temp          = Game_Temp.new
  50.     $game_system        = Game_System.new
  51.     $game_switches      = Game_Switches.new
  52.     $game_variables     = Game_Variables.new
  53.     $game_self_switches = Game_SelfSwitches.new
  54.     $game_screen        = Game_Screen.new
  55.     $game_actors        = Game_Actors.new
  56.     $game_party         = Game_Party.new
  57.     $game_troop         = Game_Troop.new
  58.     $game_map           = Game_Map.new
  59.     $game_player        = Game_Player.new
  60.     # 设置初期同伴位置
  61.     $game_party.setup_starting_members
  62.     # 设置初期位置的地图
  63.     $game_map.setup($data_system.start_map_id)#同上
  64.     # 主角向初期位置移动
  65.     $game_player.moveto($data_system.start_x, $data_system.start_y)#同上
  66.     # 刷新主角
  67.     $game_player.refresh
  68.     # 执行地图设置的 BGM 与 BGS 的自动切换
  69.     $game_map.autoplay
  70.     # 刷新地图 (执行并行事件)
  71.     $game_map.update
  72.     # 切换地图画面
  73.     $scene = Scene_Map.new
  74.   end
复制代码
当然结束了还得放一个
  1. end
  2. end
复制代码
在最底面
  1.    
  2. # 设置初期位置的地图
  3.     $game_map.setup设置地图
  4.     # 主角向初期位置移动
  5.     $game_player.moveto($data_system.start_x, $data_system.start_y)#设置移动位置
复制代码
($data_system.start_map_id)这个需改为所在的地图id
什么你不知道地图id?!
右击你想让人物移动到的地图   第一行有一个 地图设置   地图设置的最上面便是了

因为是 序幕的播放 所以可任意设置位置 ($data_system.start_x, $data_system.start_y)  但不要超过所用的地图大小

但如果要是想明确的放在某位置   可新建一个事件   选择 场所移动    打开  直接指定   场所便可以看见了






额  如果还不会弄  可以联系我  QQ群 4693661  欢迎大家加入 ,也可以下载范例  (不过要经验的  也不贵  才10经验  回复两次就赚回来了)


开始候选项.rar (745.27 KB, 下载次数: 234, 售价: 1 星屑)


1.jpg (23.37 KB, 下载次数: 5)

1.jpg

作者: q97284536    时间: 2010-8-18 14:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: q97284536    时间: 2010-8-18 14:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: ji9889    时间: 2010-8-18 14:39
抢什么,  板凳。。。。赞啊
作者: 退屈£无聊    时间: 2010-8-18 16:52
还好,不过我知道用事件貌似.... = =b
能用脚本改的话,是对能力的一个提升,所以还是赞一个。




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