查看: 1942|回复: 2

[已经解决] 如何判断领队的编号呢?

[复制链接]
梦石
0
星屑
674
在线时间
166 小时
注册时间
2012-8-27
回帖
52
发表于 2014-3-20 13:05:56 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 流水匆匆 于 2014-3-20 13:24 编辑

我想使用条件分歧 如果领队的是001阿尔西施出现XX  如果领队是002出现XX
运用了下面的队伍系统。我在 条件分歧里分别输入脚本是    if $game_party.leader == 1 和 if $game_party.leader == 001
但是都提示出错,,改如何做呢?


[pre lang="ruby" line="1"]#-----------------------------------------------------------------------------
# 队伍系统 Ver 1.0 (附带整合游戏主菜单)
#-----------------------------------------------------------------------------
# 类似于Aveyond的队伍系统(根据阿月系列的游戏产生的灵感)
# 作者:RyanBern
#-----------------------------------------------------------------------------
# 功能特色:
#-----------------------------------------------------------------------------
# 1.更改队伍中成员的最大数量,有四名出战队员,但是替补队员可以有很多个。
# 2.改编自默认脚本,极大程度上和原来脚本兼容,应该没有很严重的冲突。
# 3.为队伍增加“领队”角色,作为“领队”的成员在地图上显示他的图形,“领队”必须出战。
# 4.只有出战队员才能获得经验奖励,替补队员不能获得作战奖励。
# 5.如果队伍的出战队员全部阵亡,则直接判定玩家全灭,不管有无替补队员。
# 6.事件编译器中,对全体同伴的处理均包括对替补队员的处理。
#-----------------------------------------------------------------------------
# 使用方法:
#-----------------------------------------------------------------------------
# 1.粘贴到默认脚本后面,Main组前面即可。
# 2.作为leader的成员必须是作战队员,如果想替换下该队员,请先改变leader。
# 3.被换下的成员会自动成为替补队员名单的最后一名。
# 4.游戏系统因人而异,如果你改过Scene_Menu,可能会和你更改的脚本冲突。
#   这个我没有办法做成放到每一个游戏系统都合适的脚本,还请自行修改。
#   如果没改过太多的脚本,没有问题。
#-----------------------------------------------------------------------------
class Game_Party
  attr_accessor :leader
  attr_accessor :reserved_actors
  alias old_ini initialize
  def initialize
    @leader = nil
    @reserved_actors = []
    old_ini
  end
  # 重置@reserved_actors
  def adjust
    if @reserved_actors == nil
      @reserved_actors = []
    end
  end
  #--------------------------------------------------------------------------
  # 设置领队
  #   index : 角色在@actors中的序号,注意并非角色在数据库中的id
  #--------------------------------------------------------------------------
  def set_leader(index)
    @leader = @actors[index]
  end
  #--------------------------------------------------------------------------
  # 获取领队在@actors的index
  #--------------------------------------------------------------------------
  def leader_judge
    for i in 0...@actors.size
      if @leader.id == @actors.id
        return i
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 加入同伴
  #     actor_id : 角色 ID
  #--------------------------------------------------------------------------
  def add_actor(actor_id)
    adjust
    # 获取角色
    actor = $game_actors[actor_id]
    # 除非本角色不在队伍中
    unless @actors.include?(actor) or @reserved_actors.include?(actor)
      # 添加角色
      if @actors.size < 4
        # 人数未满就放到@actors中
        @actors.push(actor)
      else
        # 人数满了就放到@reserved_actors中
        @reserved_actors.push(actor)
      end
      # 设置领队(队伍从无人变有人)
      if @actors.size == 1
        @leader = @actors[0]
      end
      # 还原主角
      $game_player.refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 角色离开
  #     actor_id : 角色 ID
  #--------------------------------------------------------------------------
  def remove_actor(actor_id)
    adjust
    # 判定角色是否是领队
    lead = $game_party.leader_judge
    flag = false
    if $game_party.actors[lead].id == actor_id
      flag = true
    end
    # 删除角色
    @actors.delete($game_actors[actor_id])
    # 如果领队离开
    if flag
      # 如果删除之后出现无人出战的情况
      if @actors.size == 0
        # 替补队员名单有人的情况下
        if @reserved_actors.size > 0
          # 将@reserved_actors中的第一个移动到@actors中
          @actors.push(@reserved_actors.shift)
          # 设置领队
          @leader = @actors[0]
        else
          @leader = nil
        end
      else
        @leader = @actors[0]
      end
    end
    # 还原主角
    $game_player.refresh
  end
  #--------------------------------------------------------------------------
  # ● 设置初期同伴
  #--------------------------------------------------------------------------
  def setup_starting_members
    @actors = []
    for i in $data_system.party_members
      @actors.push($game_actors)
    end
    unless @actors.empty?
      set_leader(0)
    end
  end
  #--------------------------------------------------------------------------
  # ● 全灭判定
  #--------------------------------------------------------------------------
  def all_dead?
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      return false
    end
    # 同伴中无人 HP 在 0 以上
    for actor in @actors
      if actor.hp > 0
        return false
      end
    end
    # 全灭
    return true
  end
  #--------------------------------------------------------------------------
  # ● 检查连续伤害 (地图用)
  #--------------------------------------------------------------------------
  def check_map_slip_damage
    for actor in @actors + @reserved_actors
      if actor.hp > 0 and actor.slip_damage?
        actor.hp -= [actor.maxhp / 100, 1].max
        if actor.hp == 0
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?
      end
    end
  end
end

class Game_Player
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0 or $game_party.leader == nil
      # 清除角色的文件名及对像
      @character_name = ""
      @character_hue = 0
      # 分支结束
      return
    end
    # 获取带头的角色
    if $game_party.leader != nil
      actor = $game_party.leader
      # 设置角色的文件名及对像
      @character_name = actor.character_name
      @character_hue = actor.character_hue
      # 初始化不透明度和合成方式子
      @opacity = 255
      @blend_type = 0
    end
  end
end

class Window_Base < Window
  def draw_actor_leader(x, y)
    if $game_party.leader == nil
      return
    end
    a = $game_party.leader_judge
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y + a * 116, 64, 32, "领队",2)
  end
end

class Window_MenuStatus < Window_Selectable
  alias old_refresh refresh
  def refresh
    old_refresh
    draw_actor_leader(384,0)
  end
end

#==============================================================================
# ■ Window_Selectable
#------------------------------------------------------------------------------
#  拥有光标的移动以及滚动功能的窗口类。
#==============================================================================

class Window_Selectable < Window_Base
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :index                    # 光标位置
  attr_reader   :help_window              # 帮助窗口
  attr_accessor :row_height               # 行高
  #--------------------------------------------------------------------------
  # ● 初始画对像
  #     x      : 窗口的 X 坐标
  #     y      : 窗口的 Y 坐标
  #     width  : 窗口的宽
  #     height : 窗口的高
  #     row_height : 行高 默认是32
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, row_height=32)
    super(x, y, width, height)
    @item_max = 1
    @column_max = 1
    @Index = -1
    @row_height = row_height
  end
  #--------------------------------------------------------------------------
  # ● 设置光标的位置
  #     index : 新的光标位置
  #--------------------------------------------------------------------------
  def index=(index)
    @Index = index
    # 刷新帮助文本 (update_help 定义了继承目标)
    if self.active and @help_window != nil
      update_help
    end
    # 刷新光标矩形
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● 获取行数
  #--------------------------------------------------------------------------
  def row_max
    # 由项目数和列数计算出行数
    return (@item_max + @column_max - 1) / @column_max
  end
  #--------------------------------------------------------------------------
  # ● 获取开头行
  #--------------------------------------------------------------------------
  def top_row
    # 将窗口内容的传送源 Y 坐标、1 行的高 row_height 等分
    return self.oy / @row_height
  end
  #--------------------------------------------------------------------------
  # ● 设置开头行
  #     row : 显示开头的行
  #--------------------------------------------------------------------------
  def top_row=(row)
    # row 未满 0 的场合更正为 0
    if row < 0
      row = 0
    end
    # row 超过 row_max - 1 的情况下更正为 row_max - 1
    if row > row_max - 1
      row = row_max - 1
    end
    # row 1 行高的 32 倍、窗口内容的传送源 Y 坐标
    self.oy = row * @row_height
  end
  #--------------------------------------------------------------------------
  # ● 获取 1 页可以显示的行数
  #--------------------------------------------------------------------------
  def page_row_max
    # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 row_height
    return (self.height - 32) / @row_height
  end
  #--------------------------------------------------------------------------
  # ● 获取 1 页可以显示的项目数
  #--------------------------------------------------------------------------
  def page_item_max
    # 将行数 page_row_max 乘上列数 @column_max
    return page_row_max * @column_max
  end
  #--------------------------------------------------------------------------
  # ● 帮助窗口的设置
  #     help_window : 新的帮助窗口
  #--------------------------------------------------------------------------
  def help_window=(help_window)
    @help_window = help_window
    # 刷新帮助文本 (update_help 定义了继承目标)
    if self.active and @help_window != nil
      update_help
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新光标举行
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # 光标位置不满 0 的情况下
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # 获取当前的行
    row = @index / @column_max
    # 当前行被显示开头行前面的情况下
    if row < self.top_row
      # 从当前行向开头行滚动
      self.top_row = row
    end
    # 当前行被显示末尾行之后的情况下
    if row > self.top_row + (self.page_row_max - 1)
      # 从当前行向末尾滚动
      self.top_row = row - (self.page_row_max - 1)
    end
    # 计算光标的宽
    cursor_width = self.width / @column_max - 32
    # 计算光标坐标
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * @row_height - self.oy
    # 更新国标矩形
    self.cursor_rect.set(x, y, cursor_width, @row_height)
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    # 可以移动光标的情况下
    if self.active and @item_max > 0 and @index >= 0
      # 方向键下被按下的情况下
      if Input.repeat?(Input::DOWN)
        # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
        # 或光标位置在(项目数-列数)之前的情况下
        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
           @index < @item_max - @column_max
          # 光标向下移动
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
      # 方向键上被按下的情况下
      if Input.repeat?(Input::UP)
        # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
        # 或光标位置在列之后的情况下
        if (@column_max == 1 and Input.trigger?(Input::UP)) or
           @index >= @column_max
          # 光标向上移动
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # 方向键右被按下的情况下
      if Input.repeat?(Input::RIGHT)
        # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
        if @column_max >= 2 and @index < @item_max - 1
          # 光标向右移动
          $game_system.se_play($data_system.cursor_se)
          @index += 1
        end
      end
      # 方向键左被按下的情况下
      if Input.repeat?(Input::LEFT)
        # 列数为 2 以上并且、光标位置在 0 之后的情况下
        if @column_max >= 2 and @index > 0
          # 光标向左移动
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
        end
      end
      # R 键被按下的情况下
      if Input.repeat?(Input::R)
        # 显示的最后行在数据中最后行上方的情况下
        if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
          # 光标向后移动一页
          $game_system.se_play($data_system.cursor_se)
          @index = [@index + self.page_item_max, @item_max - 1].min
          self.top_row += self.page_row_max
        end
      end
      # L 键被按下的情况下
      if Input.repeat?(Input::L)
        # 显示的开头行在位置 0 之后的情况下
        if self.top_row > 0
          # 光标向前移动一页
          $game_system.se_play($data_system.cursor_se)
          @index = [@index - self.page_item_max, 0].max
          self.top_row -= self.page_row_max
        end
      end
    end
    # 刷新帮助文本 (update_help 定义了继承目标)
    if self.active and @help_window != nil
      update_help
    end
    # 刷新光标矩形
    update_cursor_rect
  end
end
#==============================================================================
# ■ Window_PartyMembers
#------------------------------------------------------------------------------
#  显示非领队队员概况的窗口。
#==============================================================================

class Window_PartyMembers < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化目标
  #--------------------------------------------------------------------------
  def initialize
    super(80, 0, 480, 480, 112)
    $game_party.adjust
    @item_max = $game_party.actors.size + $game_party.reserved_actors.size - 1
    @column_max  = 1
    self.contents = Bitmap.new(width - 32, @item_max == 0 ? height - 32 : @item_max * 112)
    self.contents.clear
    @data = $game_party.actors + $game_party.reserved_actors
    @data.sort!{ |a,b| a.id - b.id }
    a = $game_party.leader_judge
    @data.delete($game_party.actors[a])
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      x = 64
      y = i * 112
      actor = @data
      if $game_party.actors.include?(actor)
        self.contents.font.color = normal_color
        self.contents.draw_text(320, y, 128, 32, "战斗", 2)
      else
        self.contents.font.color = disabled_color
        self.contents.draw_text(320, y, 128, 32, "休战", 2)
      end
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end
  #--------------------------------------------------------------------------
  # 获取当前光标所指的角色
  #--------------------------------------------------------------------------
  def current_actor
    return @data[@index]
  end
end

class Interpreter
  #--------------------------------------------------------------------------
  # ● 角色用 iterate (考虑全体同伴)
  #     parameter : 1 以上为 ID、0 为全体
  #--------------------------------------------------------------------------
  def iterate_actor(parameter)
    # 全体同伴的情况下
    if parameter == 0
      # 同伴全体循环
      for actor in $game_party.actors + $game_party.reserved_actors
        # 评价块
        yield actor
      end
    # 单体角色的情况下
    else
      # 获取角色
      actor = $game_actors[parameter]
      # 获取角色
      yield actor if actor != nil
    end
  end
end

class Scene_Party
  def main
    $game_party.adjust
    @members_window = Window_PartyMembers.new
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入情报
      Input.update
      # 刷新画面
      update
      # 如果画面切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @members_window.dispose
  end
  
  def update
    @members_window.update
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(3)
      return
    end
    if Input.trigger?(Input::C)
      cur_actor = @members_window.current_actor
      if cur_actor == nil
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if($game_party.actors.include?(cur_actor))
        $game_system.se_play($data_system.decision_se)
        $game_party.reserved_actors.push(cur_actor)
        $game_party.actors.delete(cur_actor)
        @members_window.refresh
      else
        if $game_party.actors.size < 4
          $game_system.se_play($data_system.decision_se)
          $game_party.actors.push(cur_actor)
          $game_party.reserved_actors.delete(cur_actor)
          @members_window.refresh
        else
          $game_system.se_play($data_system.buzzer_se)
        end
      end
    end
  end
end

#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成命令窗口
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "队伍"
    s5 = "领队"
    s6 = "状态"
    s7 = "存档"
    s8 = "读档"
    s9 = "退出"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
    @command_window.index = @menu_index
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      # 物品、特技、装备、状态无效化
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)      
      @command_window.disable_item(4)
      @command_window.disable_item(5)
    end
    # 禁止存档的情况下
    if $game_system.save_disabled
      # 存档无效
      @command_window.disable_item(6)
    end
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 320
    # 生成步数窗口
    #@steps_window = Window_Steps.new
    #@steps_window.x = 0
    #@steps_window.y = 252
    # 生成金钱窗口
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # 生成状态窗口
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # 生成坐标窗口
    #@xy_window = Window_xy.new
    #@xy_window.x = 0
    #@xy_window.y = 380
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
    @playtime_window.dispose
    #@steps_window.dispose
    @gold_window.dispose
    #@xy_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @command_window.update
    @playtime_window.update
    #@steps_window.update
    @gold_window.update
    #@xy_window.update
    @status_window.update
    # 命令窗口被激活的情况下: 调用 update_command
    if @command_window.active
      update_command
      return
    end
    # 状态窗口被激活的情况下: 调用 update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (命令窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面############
      $scene = Scene_Map.new
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 同伴人数为 0、存档、游戏结束以外的场合
      if $game_party.actors.size == 0 and @command_window.index < 4
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 命令窗口的光标位置分支(修改)
      case @command_window.index
      when 0  # 物品
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到物品画面
        $scene = Scene_Item.new
      when 1  # 特技
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # 领队
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
       when 3  # 队伍
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到队员画面
        $scene = Scene_Party.new
       when 5  # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
       when 6  # 存档
         #禁止存档的情况下
        if $game_system.save_disabled
           #演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
       end
         #演奏确定 SE
        $game_system.se_play($data_system.decision_se)
         #切换到存档画面
        $scene = Scene_Save.new
       when 7  # 读档
        #演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        $load_calling = true
        #切换到读档画面
        $scene = Scene_Load.new
       when 8  # 游戏结束
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到游戏结束画面
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (状态窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_status
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 激活命令窗口
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 命令窗口的光标位置分支
      case @command_window.index
      when 1  # 特技
        # 本角色的行动限制在 2 以上的情况下
        if $game_party.actors[@status_window.index].restriction >= 2
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到特技画面
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换的装备画面
        $scene = Scene_Equip.new(@status_window.index)
      when 4  # 领队
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        $game_party.set_leader(@status_window.index)
        $game_player.refresh
        @status_window.refresh
      when 5  # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到状态画面
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

class Scene_Status
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Menu.new(5)
      return
    end
    # 按下 R 键的情况下
    if Input.trigger?(Input::R)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至下一位角色
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # 切换到别的状态画面
      $scene = Scene_Status.new(@actor_index)
      return
    end
    # 按下 L 键的情况下
    if Input.trigger?(Input::L)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至上一位角色
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # 切换到别的状态画面
      $scene = Scene_Status.new(@actor_index)
      return
    end
  end
end

class Scene_Save
  #--------------------------------------------------------------------------
  # ● 取消时的处理
  #--------------------------------------------------------------------------
  def on_cancel
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 如果被事件调用
    if $game_temp.save_calling
      # 清除存档调用标志
      $game_temp.save_calling = false
      # 切换到地图画面
      $scene = Scene_Map.new
      return
    end
    # 切换到菜单画面
    $scene = Scene_Menu.new(6)
  end
end

class Scene_Load
  #--------------------------------------------------------------------------
  # ● 取消时的处理
  #--------------------------------------------------------------------------
  def on_cancel
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 切换到标题画面
    if $load_calling == true
      $load_calling = false
      $scene = Scene_Menu.new(7)
    else
      $scene = Scene_Title.new
    end
  end
end

class Scene_End
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新命令窗口
    @command_window.update
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Menu.new(8)
      return
    end
    # 按下 C 键的场合下
    if Input.trigger?(Input::C)
      # 命令窗口光标位置分支
      case @command_window.index
      when 0  # 返回标题画面
        command_to_title
      when 1  # 退出
        command_shutdown
      when 2  # 取消
        command_cancel
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 选择命令 [取消] 时的处理
  #--------------------------------------------------------------------------
  def command_cancel
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 切换到菜单画面
    $scene = Scene_Menu.new(8)
  end
end[/pre]  
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2014-3-20 13:13:12 | 显示全部楼层
使用$game_party.leader.id == 1来判断领队在数据库中的ID是否为1,$game_party.leader是一个Game_Actor类的对象引用,不能直接判断和1(Fixnum)是否相等。

点评

谢谢已经解决了,,抱歉我的用户组不能评分~手工赞一个,嘿嘿  发表于 2014-3-20 13:23
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-3-16
回帖
7
发表于 2014-3-20 17:27:49 | 显示全部楼层
一号角色不是actor = $game_party.actors[0]吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部