Project1

标题: 开关问题 [打印本页]

作者: 共产主义红星    时间: 2008-9-30 04:34
标题: 开关问题
执行了这个脚本后,不知为什么,999号开关一打开就关上,而1000号则没问题,不知是何故?
可能与@window_command.index有关,请高手帮忙看一下,谢谢!
  1. class Scene_on_off
  2.   def main
  3.     # 生成命令窗口
  4.     s1 = "开启"
  5.     s2 = "关闭"
  6.     @window_command = Window_Command.new(100, [s1, s2])
  7.     @window_command.x = 280
  8.     @window_command.y = 200
  9.      Graphics.transition
  10.     # 主循环
  11.     loop do
  12.       # 刷新游戏画面
  13.       Graphics.update
  14.       # 刷新输入情报
  15.       Input.update
  16.       # 刷新画面
  17.       update
  18.    # 如果画面切换的话就中断循环
  19.       if $scene != self
  20.         break
  21.       end
  22.     end
  23.       # 准备过渡
  24.     Graphics.freeze
  25.     # 释放窗口
  26.     @window_command.dispose
  27.   end
  28.   def update
  29.     @window_command.update
  30.     if Input.trigger?(Input::B)
  31.       # 演奏取消 SE
  32.       $game_system.se_play($data_system.cancel_se)
  33.       # 切换到菜单画面
  34.       $scene = Scene_Option.new($option_to_there)
  35.       return
  36.     end
  37.     # 按下 C 键的场合下
  38.     if Input.trigger?(Input::C)
  39.       # 命令窗口光标位置分支
  40.       case $option_to_there
  41.   when 1
  42.       case @window_command.index
  43.       when 0
  44.        $game_system.se_play($data_system.decision_se)
  45.         $game_switches[1000] = false
  46.      $scene = Scene_Option.new($option_to_there)
  47.      when 1
  48.        $game_system.se_play($data_system.decision_se)
  49.         $game_switches[1000] = true
  50.       $scene = Scene_Option.new($option_to_there)
  51.     end
  52.   when 2
  53.         case @window_command.index
  54.         when 0
  55.           $game_system.se_play($data_system.decision_se)
  56.           $game_switches[999] = true
  57.           $scene = Scene_Option.new($option_to_there)
  58.         when 1
  59.           $game_system.se_play($data_system.decision_se)
  60.           $game_switches[999] = false
  61.           $scene = Scene_Option.new($option_to_there)
  62.         end
  63.     end

  64.   return
  65. end
  66. end
  67. end  
复制代码
[LINE]1,#dddddd[/LINE]此贴于 2008-10-2 0:53:24 被版主天圣的马甲提醒,请楼主看到后对本贴做出回应。
作者: ONEWateR    时间: 2008-9-30 04:43
很迷茫的说
  1. class Scene_on_off
  2.   def main
  3.     # 生成命令窗口
  4.     s1 = "开启"
  5.     s2 = "关闭"
  6.     @window_command = Window_Command.new(100, [s1, s2])
  7.     @window_command.x = 280
  8.     @window_command.y = 200
  9.      Graphics.transition
  10.     # 主循环
  11.     loop do
  12.       # 刷新游戏画面
  13.       Graphics.update
  14.       # 刷新输入情报
  15.       Input.update
  16.       # 刷新画面
  17.       update
  18.    # 如果画面切换的话就中断循环
  19.       if $scene != self
  20.         break
  21.       end
  22.     end
  23.       # 准备过渡
  24.     Graphics.freeze
  25.     # 释放窗口
  26.     @window_command.dispose
  27.   end
  28.   def update
  29.     @window_command.update
  30.     if Input.trigger?(Input::B)
  31.       # 演奏取消 SE
  32.       $game_system.se_play($data_system.cancel_se)
  33.       # 切换到菜单画面
  34.       $scene = Scene_Option.new($option_to_there)
  35.       return
  36.     end
  37.     # 按下 C 键的场合下
  38.     if Input.trigger?(Input::C)
  39.       # 命令窗口光标位置分支
  40.       case $option_to_there
  41.   when 1
  42.       case @window_command.index
  43.       when 0
  44.        $game_system.se_play($data_system.decision_se)
  45.         $game_switches[1000] = false
  46.      $scene = Scene_Option.new($option_to_there)
  47.      when 1
  48.        $game_system.se_play($data_system.decision_se)
  49.         $game_switches[1000] = true
  50.       $scene = Scene_Option.new($option_to_there)
  51.     end
  52.   when 2
  53.         case @window_command.index
  54.         when 0
  55.           $game_system.se_play($data_system.decision_se)
  56.           $game_switches[999] = false
  57.           $scene = Scene_Option.new($option_to_there)
  58.         when 1
  59.           $game_system.se_play($data_system.decision_se)
  60.           $game_switches[999] = true
  61.           $scene = Scene_Option.new($option_to_there)
  62.         end
  63.     end

  64.   return
  65. end
  66. end
  67. end  
复制代码

作者: 共产主义红星    时间: 2008-9-30 04:54
我发现就是开关999的问题,因为当我换成998时便可以了,但是搜索$game_switches[999]却搜不到
作者: hitlerson    时间: 2008-9-30 04:58
如果不是見鬼了,那就一定是你改過了999的值
作者: 鏻魂    时间: 2008-9-30 05:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 暴风の龙    时间: 2008-9-30 05:17
整段脚本就
  when 0
          $game_system.se_play($data_system.decision_se)
          $game_switches[999] = true
          $scene = Scene_Option.new($option_to_there)
        when 1
          $game_system.se_play($data_system.decision_se)
          $game_switches[999] = false
          $scene = Scene_Option.new($option_to_there)
        end

这里提到过999号开关……因为不清楚这段的效果为何,所以搞不清楚有没有错,如果不是事件中的问题,就把true和false调过来试下吧
作者: 灯笼菜刀王    时间: 2008-9-30 11:50
这段脚本原则上是没错.....可能是别的地方改动了吧

还有$option_to_there这个东西是什么? 很显然,这个东西会影响到999开关。找看看会不会当1000号开关变动的时候这个东西的值变成1,这样999开关自然就有影响~




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