设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1161|回复: 1
打印 上一主题 下一主题

请问如何把离队的角色编号代入一个变量?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-17
帖子
41
跳转到指定楼层
1
发表于 2008-10-6 23:46:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
下面是我用的一个离队脚本,我想在这个脚本里添加一个变量1,用来记录离队角色的编号


比如说,当离队角色的编号为3,那么变量1的值也为3


  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 = $data_system.words.equip
  22.    s4 = "状态"
  23.    s5 = "宠物仓库"
  24.    s6 = "升级加点"
  25.    s7 = "离队"
  26.    s8 = "存档"   
  27.    s9 = "结束游戏"
  28.    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
  29.    @command_window.index = @menu_index
  30.    # 同伴人数为 0 的情况下
  31.    if $game_party.actors.size == 0
  32.      # 物品、特技、装备、状态无效化
  33.      @command_window.disable_item(0)
  34.      @command_window.disable_item(1)
  35.      @command_window.disable_item(2)
  36.      @command_window.disable_item(3)
  37.    end
  38.    if $game_switches[1]
  39.      @command_window.disable_item(6)
  40.      end
  41.    # 禁止存档的情况下
  42.    if $game_system.save_disabled
  43.      # 存档无效
  44.      @command_window.disable_item(4)
  45.    end
  46.    # 生成游戏时间窗口
  47.    @playtime_window = Window_PlayTime.new
  48.    @playtime_window.x = 0
  49.    @playtime_window.y = 320
  50.    # 生成步数窗口
  51.    #@steps_window = Window_Steps.new
  52.    #@steps_window.x = 0
  53.    #@steps_window.y = 320
  54.    # 生成金钱窗口
  55.    @gold_window = Window_Gold.new
  56.    @gold_window.x = 0
  57.    @gold_window.y = 416
  58.    # 生成状态窗口
  59.    @status_window = Window_MenuStatus.new
  60.    @status_window.x = 160
  61.    @status_window.y = 0
  62.    # 执行过渡
  63.    Graphics.transition
  64.    # 主循环
  65.    loop do
  66.      # 刷新游戏画面
  67.      Graphics.update
  68.      # 刷新输入信息
  69.      Input.update
  70.      # 刷新画面
  71.      update
  72.      # 如果切换画面就中断循环
  73.      if $scene != self
  74.        break
  75.      end
  76.    end
  77.    # 准备过渡
  78.    Graphics.freeze
  79.    # 释放窗口
  80.    @command_window.dispose
  81.    @playtime_window.dispose
  82.    #@steps_window.dispose
  83.    @gold_window.dispose
  84.    @status_window.dispose
  85. end
  86. #--------------------------------------------------------------------------
  87. # ● 刷新画面
  88. #--------------------------------------------------------------------------
  89. def update
  90.    # 刷新窗口
  91.    @command_window.update
  92.    @playtime_window.update
  93.    #@steps_window.update
  94.    @gold_window.update
  95.    @status_window.update
  96.    # 命令窗口被激活的情况下: 调用 update_command
  97.    if @command_window.active
  98.      update_command
  99.      return
  100.    end
  101.    # 状态窗口被激活的情况下: 调用 update_status
  102.    if @status_window.active
  103.      update_status
  104.      return
  105.    end
  106. end
  107. #--------------------------------------------------------------------------
  108. # ● 刷新画面 (命令窗口被激活的情况下)
  109. #--------------------------------------------------------------------------
  110. def update_command
  111.    # 按下 B 键的情况下
  112.    if Input.trigger?(Input::B)
  113.      # 演奏取消 SE
  114.      $game_system.se_play($data_system.cancel_se)
  115.      # 切换的地图画面
  116.      $scene = Scene_Map.new
  117.      return
  118.    end
  119.    # 按下 C 键的情况下
  120.    if Input.trigger?(Input::C)
  121.      # 同伴人数为 0、存档、游戏结束以外的场合
  122.      if $game_party.actors.size == 0 and @command_window.index < 4
  123.        # 演奏冻结 SE
  124.        $game_system.se_play($data_system.buzzer_se)
  125.        return
  126.      end
  127.      # 命令窗口的光标位置分支
  128.      case @command_window.index
  129.      when 0  # 物品
  130.        # 演奏确定 SE
  131.        $game_system.se_play($data_system.decision_se)
  132.        # 切换到物品画面
  133.        $scene = Scene_Item.new
  134.      when 1  # 特技
  135.        # 演奏确定 SE
  136.        $game_system.se_play($data_system.decision_se)
  137.        # 激活状态窗口
  138.        @command_window.active = false
  139.        @status_window.active = true
  140.        @status_window.index = 0
  141.      when 2  # 装备
  142.        # 演奏确定 SE
  143.        $game_system.se_play($data_system.decision_se)
  144.        # 激活状态窗口
  145.        @command_window.active = false
  146.        @status_window.active = true
  147.        @status_window.index = 0
  148.      when 3  # 状态
  149.        # 演奏确定 SE
  150.        $game_system.se_play($data_system.decision_se)
  151.        # 激活状态窗口
  152.        @command_window.active = false
  153.        @status_window.active = true
  154.        @status_window.index = 0
  155.       
  156.      when 4  # 装备宠物
  157.        $game_system.se_play($data_system.decision_se)
  158.        $scene = Scene_Item2.new
  159.       
  160.      when 5  # 升级加点
  161.        # 演奏确定 SE
  162.        $game_system.se_play($data_system.decision_se)
  163.        # 切换到加点界面
  164.        $scene = Scene_Lvup.new
  165.               
  166.      when 6  # 离队
  167.       if $game_switches[1]
  168.         $game_system.se_play($data_system.buzzer_se)
  169.         else
  170.         $game_system.se_play($data_system.decision_se)
  171.         @command_window.active = false
  172.         @status_window.active = true
  173.         @status_window.index = 0
  174.       end
  175.      
  176.      when 7  # 存档
  177.        # 禁止存档的情况下
  178.        if $game_system.save_disabled
  179.          # 演奏冻结 SE
  180.          $game_system.se_play($data_system.buzzer_se)
  181.          return
  182.        end
  183.        # 演奏确定 SE
  184.        $game_system.se_play($data_system.decision_se)
  185.        # 切换到存档画面
  186.        $scene = Scene_Save.new  
  187.      
  188.      when 8  # 游戏结束
  189.        # 演奏确定 SE
  190.        $game_system.se_play($data_system.decision_se)
  191.        # 切换到游戏结束画面
  192.        $scene = Scene_End.new      
  193.      end
  194.      return
  195.    end
  196. end
  197. #--------------------------------------------------------------------------
  198. # ● 刷新画面 (状态窗口被激活的情况下)
  199. #--------------------------------------------------------------------------
  200. def update_status
  201.    # 按下 B 键的情况下
  202.    if Input.trigger?(Input::B)
  203.      # 演奏取消 SE
  204.      $game_system.se_play($data_system.cancel_se)
  205.      # 激活命令窗口
  206.      @command_window.active = true
  207.      @status_window.active = false
  208.      @status_window.index = -1
  209.      return
  210.    end
  211.    # 按下 C 键的情况下
  212.    if Input.trigger?(Input::C)
  213.      # 命令窗口的光标位置分支
  214.      case @command_window.index
  215.      when 1  # 特技
  216.        # 本角色的行动限制在 2 以上的情况下
  217.        if $game_party.actors[@status_window.index].restriction >= 2
  218.          # 演奏冻结 SE
  219.          $game_system.se_play($data_system.buzzer_se)
  220.          return
  221.        end
  222.        # 演奏确定 SE
  223.        $game_system.se_play($data_system.decision_se)
  224.        # 切换到特技画面
  225.        $scene = Scene_Skill.new(@status_window.index)
  226.      when 2  # 装备
  227.        # 演奏确定 SE
  228.        $game_system.se_play($data_system.decision_se)
  229.        # 切换的装备画面
  230.        $scene = Scene_Equip.new(@status_window.index)
  231.      when 3  # 状态
  232.        # 演奏确定 SE
  233.        $game_system.se_play($data_system.decision_se)
  234.        # 切换到状态画面
  235.        $scene = Scene_Status.new(@status_window.index)
  236.      when 6
  237.       if @status_window.index == 0
  238.        $game_system.se_play($data_system.buzzer_se)
  239.      else
  240.        @actor = $game_party.actors[@status_window.index]
  241.        if  @actor.id == 1
  242.          $game_system.se_play($data_system.buzzer_se)
  243.        elsif  @actor.id == 6
  244.          $game_system.se_play($data_system.buzzer_se)
  245.        elsif  @actor.id == 7
  246.          $game_system.se_play($data_system.buzzer_se)
  247.        else
  248.           $game_system.se_play($data_system.decision_se)
  249.        $game_party.actors.delete(@actor)
  250.        $game_player.refresh
  251.        $scene = Scene_Menu.new(6)
  252.        end
  253.        end
  254.      end
  255.      return
  256.    end
  257. end
  258. end
复制代码

版务信息:本贴由楼主自主结贴~

Lv5.捕梦者

梦石
0
星屑
39163
在线时间
5737 小时
注册时间
2006-11-10
帖子
6638
2
发表于 2008-10-7 00:56:02 | 只看该作者
  1. $离队成员ID变量 = 1
  2. #==============================================================================
  3. # ■ Scene_Menu
  4. #------------------------------------------------------------------------------
  5. #  处理菜单画面的类。
  6. #==============================================================================

  7. class Scene_Menu
  8. #--------------------------------------------------------------------------
  9. # ● 初始化对像
  10. #     menu_index : 命令光标的初期位置
  11. #--------------------------------------------------------------------------
  12. def initialize(menu_index = 0)
  13.    @menu_index = menu_index
  14. end
  15. #--------------------------------------------------------------------------
  16. # ● 主处理
  17. #--------------------------------------------------------------------------
  18. def main
  19.    # 生成命令窗口
  20.    s1 = $data_system.words.item
  21.    s2 = $data_system.words.skill
  22.    s3 = $data_system.words.equip
  23.    s4 = "状态"
  24.    s5 = "宠物仓库"
  25.    s6 = "升级加点"
  26.    s7 = "离队"
  27.    s8 = "存档"   
  28.    s9 = "结束游戏"
  29.    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
  30.    @command_window.index = @menu_index
  31.    # 同伴人数为 0 的情况下
  32.    if $game_party.actors.size == 0
  33.      # 物品、特技、装备、状态无效化
  34.      @command_window.disable_item(0)
  35.      @command_window.disable_item(1)
  36.      @command_window.disable_item(2)
  37.      @command_window.disable_item(3)
  38.    end
  39.    if $game_switches[1]
  40.      @command_window.disable_item(6)
  41.      end
  42.    # 禁止存档的情况下
  43.    if $game_system.save_disabled
  44.      # 存档无效
  45.      @command_window.disable_item(4)
  46.    end
  47.    # 生成游戏时间窗口
  48.    @playtime_window = Window_PlayTime.new
  49.    @playtime_window.x = 0
  50.    @playtime_window.y = 320
  51.    # 生成步数窗口
  52.    #@steps_window = Window_Steps.new
  53.    #@steps_window.x = 0
  54.    #@steps_window.y = 320
  55.    # 生成金钱窗口
  56.    @gold_window = Window_Gold.new
  57.    @gold_window.x = 0
  58.    @gold_window.y = 416
  59.    # 生成状态窗口
  60.    @status_window = Window_MenuStatus.new
  61.    @status_window.x = 160
  62.    @status_window.y = 0
  63.    # 执行过渡
  64.    Graphics.transition
  65.    # 主循环
  66.    loop do
  67.      # 刷新游戏画面
  68.      Graphics.update
  69.      # 刷新输入信息
  70.      Input.update
  71.      # 刷新画面
  72.      update
  73.      # 如果切换画面就中断循环
  74.      if $scene != self
  75.        break
  76.      end
  77.    end
  78.    # 准备过渡
  79.    Graphics.freeze
  80.    # 释放窗口
  81.    @command_window.dispose
  82.    @playtime_window.dispose
  83.    #@steps_window.dispose
  84.    @gold_window.dispose
  85.    @status_window.dispose
  86. end
  87. #--------------------------------------------------------------------------
  88. # ● 刷新画面
  89. #--------------------------------------------------------------------------
  90. def update
  91.    # 刷新窗口
  92.    @command_window.update
  93.    @playtime_window.update
  94.    #@steps_window.update
  95.    @gold_window.update
  96.    @status_window.update
  97.    # 命令窗口被激活的情况下: 调用 update_command
  98.    if @command_window.active
  99.      update_command
  100.      return
  101.    end
  102.    # 状态窗口被激活的情况下: 调用 update_status
  103.    if @status_window.active
  104.      update_status
  105.      return
  106.    end
  107. end
  108. #--------------------------------------------------------------------------
  109. # ● 刷新画面 (命令窗口被激活的情况下)
  110. #--------------------------------------------------------------------------
  111. def update_command
  112.    # 按下 B 键的情况下
  113.    if Input.trigger?(Input::B)
  114.      # 演奏取消 SE
  115.      $game_system.se_play($data_system.cancel_se)
  116.      # 切换的地图画面
  117.      $scene = Scene_Map.new
  118.      return
  119.    end
  120.    # 按下 C 键的情况下
  121.    if Input.trigger?(Input::C)
  122.      # 同伴人数为 0、存档、游戏结束以外的场合
  123.      if $game_party.actors.size == 0 and @command_window.index < 4
  124.        # 演奏冻结 SE
  125.        $game_system.se_play($data_system.buzzer_se)
  126.        return
  127.      end
  128.      # 命令窗口的光标位置分支
  129.      case @command_window.index
  130.      when 0  # 物品
  131.        # 演奏确定 SE
  132.        $game_system.se_play($data_system.decision_se)
  133.        # 切换到物品画面
  134.        $scene = Scene_Item.new
  135.      when 1  # 特技
  136.        # 演奏确定 SE
  137.        $game_system.se_play($data_system.decision_se)
  138.        # 激活状态窗口
  139.        @command_window.active = false
  140.        @status_window.active = true
  141.        @status_window.index = 0
  142.      when 2  # 装备
  143.        # 演奏确定 SE
  144.        $game_system.se_play($data_system.decision_se)
  145.        # 激活状态窗口
  146.        @command_window.active = false
  147.        @status_window.active = true
  148.        @status_window.index = 0
  149.      when 3  # 状态
  150.        # 演奏确定 SE
  151.        $game_system.se_play($data_system.decision_se)
  152.        # 激活状态窗口
  153.        @command_window.active = false
  154.        @status_window.active = true
  155.        @status_window.index = 0
  156.       
  157.      when 4  # 装备宠物
  158.        $game_system.se_play($data_system.decision_se)
  159.        $scene = Scene_Item2.new
  160.       
  161.      when 5  # 升级加点
  162.        # 演奏确定 SE
  163.        $game_system.se_play($data_system.decision_se)
  164.        # 切换到加点界面
  165.        $scene = Scene_Lvup.new
  166.               
  167.      when 6  # 离队
  168.       if $game_switches[1]
  169.         $game_system.se_play($data_system.buzzer_se)
  170.         else
  171.         $game_system.se_play($data_system.decision_se)
  172.         @command_window.active = false
  173.         @status_window.active = true
  174.         @status_window.index = 0
  175.       end
  176.      
  177.      when 7  # 存档
  178.        # 禁止存档的情况下
  179.        if $game_system.save_disabled
  180.          # 演奏冻结 SE
  181.          $game_system.se_play($data_system.buzzer_se)
  182.          return
  183.        end
  184.        # 演奏确定 SE
  185.        $game_system.se_play($data_system.decision_se)
  186.        # 切换到存档画面
  187.        $scene = Scene_Save.new  
  188.      
  189.      when 8  # 游戏结束
  190.        # 演奏确定 SE
  191.        $game_system.se_play($data_system.decision_se)
  192.        # 切换到游戏结束画面
  193.        $scene = Scene_End.new      
  194.      end
  195.      return
  196.    end
  197. end
  198. #--------------------------------------------------------------------------
  199. # ● 刷新画面 (状态窗口被激活的情况下)
  200. #--------------------------------------------------------------------------
  201. def update_status
  202.    # 按下 B 键的情况下
  203.    if Input.trigger?(Input::B)
  204.      # 演奏取消 SE
  205.      $game_system.se_play($data_system.cancel_se)
  206.      # 激活命令窗口
  207.      @command_window.active = true
  208.      @status_window.active = false
  209.      @status_window.index = -1
  210.      return
  211.    end
  212.    # 按下 C 键的情况下
  213.    if Input.trigger?(Input::C)
  214.      # 命令窗口的光标位置分支
  215.      case @command_window.index
  216.      when 1  # 特技
  217.        # 本角色的行动限制在 2 以上的情况下
  218.        if $game_party.actors[@status_window.index].restriction >= 2
  219.          # 演奏冻结 SE
  220.          $game_system.se_play($data_system.buzzer_se)
  221.          return
  222.        end
  223.        # 演奏确定 SE
  224.        $game_system.se_play($data_system.decision_se)
  225.        # 切换到特技画面
  226.        $scene = Scene_Skill.new(@status_window.index)
  227.      when 2  # 装备
  228.        # 演奏确定 SE
  229.        $game_system.se_play($data_system.decision_se)
  230.        # 切换的装备画面
  231.        $scene = Scene_Equip.new(@status_window.index)
  232.      when 3  # 状态
  233.        # 演奏确定 SE
  234.        $game_system.se_play($data_system.decision_se)
  235.        # 切换到状态画面
  236.        $scene = Scene_Status.new(@status_window.index)
  237.      when 6
  238.       if @status_window.index == 0
  239.        $game_system.se_play($data_system.buzzer_se)
  240.      else
  241.        @actor = $game_party.actors[@status_window.index]
  242.        if  @actor.id == 1
  243.          $game_system.se_play($data_system.buzzer_se)
  244.        elsif  @actor.id == 6
  245.          $game_system.se_play($data_system.buzzer_se)
  246.        elsif  @actor.id == 7
  247.          $game_system.se_play($data_system.buzzer_se)
  248.        else
  249.           $game_system.se_play($data_system.decision_se)
  250.        $game_switches[$离队成员ID变量] = @actor.id
  251.        $game_party.actors.delete(@actor)
  252.        $game_player.refresh
  253.        $scene = Scene_Menu.new(6)
  254.        end
  255.        end
  256.      end
  257.      return
  258.    end
  259. end
  260. end
复制代码


替换原来的脚本,变量序号在脚本最上面调整,默认为1。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-23 02:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表