Project1

标题: 请教解释一下这脚本各部分的意思 [打印本页]

作者: .さっとりーん    时间: 2012-8-2 19:43
标题: 请教解释一下这脚本各部分的意思
  1. def update_command_selection
  2.     if Input.trigger?(Input::B)
  3.       Sound.play_cancel
  4.       $scene = Scene_Map.new
  5.     elsif Input.trigger?(Input::C)
  6.       if $game_switches[1] == false and @command_window.index == 8
  7.         Sound.play_buzzer
  8.         return
  9.       end
  10.       if $game_party.members.size == 0 and @command_window.index < 4
  11.         Sound.play_buzzer
  12.         return
  13.       elsif $game_system.save_disabled and @command_window.index == 4
  14.         Sound.play_buzzer
  15.         return
  16.       end
复制代码
这是通过开关来控制是否开启主菜单的功能的
问题我看不懂

      if $game_switches[1] == false and @command_window.index == 8
这句的意思是?8指的是什么
if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
又是什么意思?dsu_plus_rewardpost_czw
作者: devilg    时间: 2012-8-3 10:16
@command_window.index代表的是在地图呼出菜单时左边诸如[物品,技能,装备]等命令位置。
在scene_menu中create_command_window可以看到当前所有的命令。比如我的:
  1. def create_command_window
  2.     s1 = Vocab::item
  3.     s2 = Vocab::skill
  4.     s3 = Vocab::equip
  5.     s4 = Vocab::status
  6.     s5 = Vocab::save
  7.     s6 = Vocab::game_end
  8.     s7 = "任务"
  9.     s8 = "读取"
  10.     s9 = "已完成任务"
  11.     s10 = "更换职业"
  12.     s11 = "buff"
  13.     s12 = "遣返"
  14.     @command_window = Window_Command.new(160, [s1, s2, s7,s3, s4, s5, s8,s9,s10,s11,s12,"御灵"])
  15.     @command_window.index = @menu_index
  16.     if $game_party.members.size == 0          # 如果队伍为空
  17.       @command_window.draw_item(0, false)     # 无效化物品选项
  18.       @command_window.draw_item(1, false)     # 无效化技能选项
  19.       @command_window.draw_item(2, false)     # 无效化装备选项
  20.       @command_window.draw_item(3, false)     # 无效化状态选项
  21.     end
  22.     if $game_system.save_disabled             # 如果禁止存档
  23.       @command_window.draw_item(5, false)
  24.       @command_window.draw_item(10, false)# 无效化存档选项
  25.       @command_window.draw_item(0, false)# 无效化存档选项
  26.       @command_window.draw_item(3, false)# 无效化存档选项
  27.     end
  28.   end
复制代码
[s1, s2, s7,s3, s4, s5, s8,s9,s10,s11,s12,"御灵"]中的第九个(s10)就是@command_window.index == 8的位置。
当然你的系统跟我的不一样。

或者当前的commandWindow也可以在别的位置调用,在scene_title等也有相关调用。
  1. if $game_party.members.size == 0 and @command_window.index < 4
  2.         Sound.play_buzzer
  3.         return
  4.       elsif $game_system.save_disabled and @command_window.index == 4
  5.         Sound.play_buzzer
  6.         return
复制代码
其中 Sound.play_buzzer和return代表的是当前的选项无效化。几个if的大致意思是1.如果开关1是false则无法打开第九项的东西。2.如果队伍中没有队员且命令是前4个(估计是物品,技能,装备,状态)那么玩家无法打开这4个选项。3.如果游戏禁用了存盘则无法打开存盘




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