Project1

标题: 有两个脚本问题求帮助!谢谢! [打印本页]

作者: fyfuture    时间: 2011-5-21 17:50
标题: 有两个脚本问题求帮助!谢谢!
第一,希望把游戏标题选项框改小点,谢谢
第二,希望把游戏游戏菜单只保留物品 技能 退出三个选项。谢谢
两个比较简单的脚本问题,自己脚本不太会:Q
作者: 白鬼    时间: 2011-5-21 19:12
本帖最后由 白鬼 于 2011-5-21 19:14 编辑

第一个问题,因为不知道你需要改小多少,所以告诉你在哪里改吧:
Scene_Title 脚本中 第40行
    @command_window = Window_Command.new(192, [s1, s2, s3])

其中 192 是标题选项框的长度。改这个可以缩小。至于高度,因为在 window_base 中定义的字符大小决定,所以不建议修改,因为一修改之后其他所有涉及到文字的地方都字体大小都会改变,导致排版出问题。
改小之后,记得调整42、43行
   @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288

这是选框左上角的点的位置坐标。

第二个问题,改版之后需要调整框架的大小和排版。
单纯的去掉,你看看效果吧。
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_Menu
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     menu_index : 命令光标的初期位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 主处理
  16.   #--------------------------------------------------------------------------
  17.   def main
  18.     # 生成命令窗口
  19.     s1 = $data_system.words.item
  20.     s2 = $data_system.words.skill
  21.     s3 = "结束游戏"
  22.     @command_window = Window_Command.new(160, [s1, s2, s3])
  23.     @command_window.index = @menu_index
  24.     # 同伴人数为 0 的情况下
  25.     if $game_party.actors.size == 0
  26.       # 物品、特技、装备、状态无效化
  27.       @command_window.disable_item(0)
  28.       @command_window.disable_item(1)
  29.     end
  30.     # 生成游戏时间窗口
  31.     @playtime_window = Window_PlayTime.new
  32.     @playtime_window.x = 0
  33.     @playtime_window.y = 224
  34.     # 生成步数窗口
  35.     @steps_window = Window_Steps.new
  36.     @steps_window.x = 0
  37.     @steps_window.y = 320
  38.     # 生成金钱窗口
  39.     @gold_window = Window_Gold.new
  40.     @gold_window.x = 0
  41.     @gold_window.y = 416
  42.     # 生成状态窗口
  43.     @status_window = Window_MenuStatus.new
  44.     @status_window.x = 160
  45.     @status_window.y = 0
  46.     # 执行过渡
  47.     Graphics.transition
  48.     # 主循环
  49.     loop do
  50.       # 刷新游戏画面
  51.       Graphics.update
  52.       # 刷新输入信息
  53.       Input.update
  54.       # 刷新画面
  55.       update
  56.       # 如果切换画面就中断循环
  57.       if $scene != self
  58.         break
  59.       end
  60.     end
  61.     # 准备过渡
  62.     Graphics.freeze
  63.     # 释放窗口
  64.     @command_window.dispose
  65.     @playtime_window.dispose
  66.     @steps_window.dispose
  67.     @gold_window.dispose
  68.     @status_window.dispose
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 刷新画面
  72.   #--------------------------------------------------------------------------
  73.   def update
  74.     # 刷新窗口
  75.     @command_window.update
  76.     @playtime_window.update
  77.     @steps_window.update
  78.     @gold_window.update
  79.     @status_window.update
  80.     # 命令窗口被激活的情况下: 调用 update_command
  81.     if @command_window.active
  82.       update_command
  83.       return
  84.     end
  85.     # 状态窗口被激活的情况下: 调用 update_status
  86.     if @status_window.active
  87.       update_status
  88.       return
  89.     end
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 刷新画面 (命令窗口被激活的情况下)
  93.   #--------------------------------------------------------------------------
  94.   def update_command
  95.     # 按下 B 键的情况下
  96.     if Input.trigger?(Input::B)
  97.       # 演奏取消 SE
  98.       $game_system.se_play($data_system.cancel_se)
  99.       # 切换的地图画面
  100.       $scene = Scene_Map.new
  101.       return
  102.     end
  103.     # 按下 C 键的情况下
  104.     if Input.trigger?(Input::C)
  105.       # 同伴人数为 0、存档、游戏结束以外的场合
  106.       if $game_party.actors.size == 0 and @command_window.index < 4
  107.         # 演奏冻结 SE
  108.         $game_system.se_play($data_system.buzzer_se)
  109.         return
  110.       end
  111.       # 命令窗口的光标位置分支
  112.       case @command_window.index
  113.       when 0  # 物品
  114.         # 演奏确定 SE
  115.         $game_system.se_play($data_system.decision_se)
  116.         # 切换到物品画面
  117.         $scene = Scene_Item.new
  118.       when 1  # 特技
  119.         # 演奏确定 SE
  120.         $game_system.se_play($data_system.decision_se)
  121.         # 激活状态窗口
  122.         @command_window.active = false
  123.         @status_window.active = true
  124.         @status_window.index = 0
  125.       when 2  # 游戏结束
  126.         # 演奏确定 SE
  127.         $game_system.se_play($data_system.decision_se)
  128.         # 切换到游戏结束画面
  129.         $scene = Scene_End.new
  130.       end
  131.       return
  132.     end
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● 刷新画面 (状态窗口被激活的情况下)
  136.   #--------------------------------------------------------------------------
  137.   def update_status
  138.     # 按下 B 键的情况下
  139.     if Input.trigger?(Input::B)
  140.       # 演奏取消 SE
  141.       $game_system.se_play($data_system.cancel_se)
  142.       # 激活命令窗口
  143.       @command_window.active = true
  144.       @status_window.active = false
  145.       @status_window.index = -1
  146.       return
  147.     end
  148.     # 按下 C 键的情况下
  149.     if Input.trigger?(Input::C)
  150.       # 命令窗口的光标位置分支
  151.       case @command_window.index
  152.       when 1  # 特技
  153.         # 本角色的行动限制在 2 以上的情况下
  154.         if $game_party.actors[@status_window.index].restriction >= 2
  155.           # 演奏冻结 SE
  156.           $game_system.se_play($data_system.buzzer_se)
  157.           return
  158.         end
  159.         # 演奏确定 SE
  160.         $game_system.se_play($data_system.decision_se)
  161.         # 切换到特技画面
  162.         $scene = Scene_Skill.new(@status_window.index)
  163.       end
  164.       return
  165.     end
  166.   end
  167. end
复制代码
最后!
  1. 记得Scene_End脚本中56行改成      $scene = Scene_Menu.new(2)
复制代码

作者: fyfuture    时间: 2011-5-21 19:54
本帖最后由 fyfuture 于 2011-5-21 20:02 编辑

非常感谢楼上帮忙啊。谢谢了!对了 window_base 中定义的字符大小决定。这怎么改啊。




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