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

Project1

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

求人把“动作重复”脚本里的“战斗/逃跑”选项去掉

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
跳转到指定楼层
1
发表于 2009-2-3 03:35:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我照着主站上的教程去老是出错,求人帮忙去一下

  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. #重复上回合动作  v1.1
  4. #by 叶子       Date: 12-12-2005
  5. #QQ:121058265
  6. #本脚本根据66rpg的站长柳柳提出的思路制作
  7. #如发现有bug请与作者联系或上66rpg发贴说明
  8. #==============================================================================
  9. #当战斗时按下T键,
  10. #当前角色就会重复上回合的动作(包括攻击,特技,防御,物品)。
  11. #当战斗时按下R键,
  12. #所有角色就会重复上回合的动作。
  13. #当战斗时按下F键,
  14. #所有角色就会普通攻击同一个敌人。
  15. #脚本占用了第一号开关。
  16. #当第一号开关打开时,重复上回合动作功能关闭。
  17. #如果想用其他开关,改第130,263,323行中相应内容。
  18. #--------------------------------------------------------------------------
  19. class Game_Battler
  20. #--------------------------------------------------------------------------
  21. # ● 初始化对像
  22. #--------------------------------------------------------------------------
  23. def initialize
  24.    @battler_name = ""
  25.    @battler_hue = 0
  26.    @hp = 0
  27.    @sp = 0
  28.    @states = []
  29.    @states_turn = {}
  30.    @maxhp_plus = 0
  31.    @maxsp_plus = 0
  32.    @str_plus = 0
  33.    @dex_plus = 0
  34.    @agi_plus = 0
  35.    @int_plus = 0
  36.    @hidden = false
  37.    @immortal = false
  38.    @damage_pop = false
  39.    @damage = nil
  40.    @critical = false
  41.    @animation_id = 0
  42.    @animation_hit = false
  43.    @white_flash = false
  44.    @blink = false
  45.    @current_action = Game_BattleAction.new
  46.    @last_action = Game_BattleAction.new
  47. end
  48. #--------------------------------------------------------------------------
  49. # ● 获取前一回合的动作
  50. #--------------------------------------------------------------------------
  51. def last_action
  52.    return @last_action
  53. end
  54. end




  55. class Game_Party
  56. def last_actions
  57.    for actor in @actors
  58.      actor.last_action.kind = actor.current_action.kind
  59.      actor.last_action.basic = actor.current_action.basic
  60.      actor.last_action.forcing = actor.current_action.forcing
  61.      actor.last_action.target_index = actor.current_action.target_index
  62.      actor.last_action.skill_id = actor.current_action.skill_id
  63.      actor.last_action.item_id = actor.current_action.item_id
  64.    end
  65. end
  66. end


  67. class Scene_Battle
  68. #--------------------------------------------------------------------------
  69. # ● 开始同伴命令回合
  70. #--------------------------------------------------------------------------
  71. def start_phase2
  72.    # 转移到回合 2
  73.    @phase = 2
  74.    # 设置角色为非选择状态
  75.    @actor_index = -1
  76.    @active_battler = nil
  77.    # 有效化同伴指令窗口
  78.    @party_command_window.active = true
  79.    @party_command_window.visible = true
  80.    # 无效化角色指令窗口
  81.    @actor_command_window.active = false
  82.    @actor_command_window.visible = false
  83.    # 清除主回合标志
  84.    $game_temp.battle_main_phase = false
  85.    # 记录行动
  86.    $game_party.last_actions
  87.    # 清除全体同伴的行动
  88.    $game_party.clear_actions
  89.    # 不能输入命令的情况下
  90.    unless $game_party.inputable?
  91.      # 开始主回合
  92.      start_phase4
  93.    end
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● 刷新画面 (同伴命令回合)
  97. #--------------------------------------------------------------------------
  98. def update_phase2
  99.    # 按下 C 键的情况下
  100.    if Input.trigger?(Input::C)
  101.      # 同伴指令窗口光标位置分支
  102.      case @party_command_window.index
  103.      when 0  # 战斗
  104.        # 演奏确定 SE
  105.        $game_system.se_play($data_system.decision_se)
  106.        # 开始角色的命令回合
  107.        start_phase3
  108.      when 1  # 逃跑
  109.        # 不能逃跑的情况下
  110.        if $game_temp.battle_can_escape == false
  111.          # 演奏冻结 SE
  112.          $game_system.se_play($data_system.buzzer_se)
  113.          return
  114.        end
  115.        # 演奏确定 SE
  116.        $game_system.se_play($data_system.decision_se)
  117.        # 逃走处理
  118.        update_phase2_escape
  119.      end
  120.      return
  121.    end
  122.    #------------------------------
  123.    # 按下 R 键的情况下
  124.    #------------------------------
  125.    if Kboard.keyboard($R_Key_R)
  126.      #如果一号开关打开就禁止重复上回合动作
  127.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  128.        # 演奏冻结 SE
  129.        $game_system.se_play($data_system.buzzer_se)
  130.        return
  131.      end
  132.      for a in $game_party.actors
  133.        if a.inputable?
  134.          case a.last_action.kind
  135.          when 0  # 攻击,防御
  136.            #防御
  137.            if a.last_action.basic == 1
  138.              # 设置行动
  139.              a.current_action.kind = 0
  140.              a.current_action.basic = 1
  141.              #攻击
  142.              else
  143.              # 设置行动
  144.              a.current_action.kind = 0
  145.              a.current_action.basic = 0
  146.              a.current_action.target_index = a.last_action.target_index
  147.            end
  148.          when 1  # 特技
  149.          skill_id = a.last_action.skill_id
  150.          if a.skill_learn?(skill_id) and            a.skill_can_use?(skill_id)
  151.            # 设置行动
  152.            a.current_action.kind = 1
  153.            a.current_action.skill_id = a.last_action.skill_id
  154.            a.current_action.target_index = a.last_action.target_index
  155.          else
  156.            # 不能使用就攻击
  157.            if $data_skills[skill_id].scope < 3
  158.              a.current_action.kind = 0
  159.              a.current_action.basic = 0
  160.              a.current_action.target_index = a.last_action.target_index
  161.            else
  162.              a.current_action.kind = 0
  163.              a.current_action.basic = 0
  164.              a.current_action.target_index = 0
  165.            end
  166.          end
  167.          when 2  # 物品
  168.            item_id = a.last_action.item_id
  169.            if $game_party.item_can_use?(item_id)
  170.              # 设置行动
  171.              a.current_action.kind = 2
  172.              a.current_action.item_id = a.last_action.item_id
  173.              a.current_action.target_index = a.last_action.target_index
  174.            else
  175.              # 不能使用就攻击
  176.              a.current_action.kind = 0
  177.              a.current_action.basic = 0
  178.              a.current_action.target_index = 0
  179.            end
  180.          end
  181.        end
  182.      end
  183.      # 演奏确定 SE
  184.      $game_system.se_play($data_system.decision_se)
  185.      start_phase4
  186.      return
  187.    end
  188.    #------------------------------
  189.    # 按下 F 键的情况下
  190.    #------------------------------
  191.    if Kboard.keyboard($R_Key_T)
  192.      for a in $game_party.actors
  193.        if a.inputable?
  194.          a.current_action.kind = 0
  195.          a.current_action.basic = 0
  196.          a.current_action.target_index = 0
  197.        end
  198.      end
  199.      # 演奏确定 SE
  200.      $game_system.se_play($data_system.decision_se)
  201.      start_phase4
  202.      return
  203.    end
  204. end
  205. #--------------------------------------------------------------------------
  206. # ● 刷新画面 (角色命令回合 : 基本命令)
  207. #--------------------------------------------------------------------------
  208. def update_phase3_basic_command
  209.    # 按下 B 键的情况下
  210.    if Input.trigger?(Input::B)
  211.      # 演奏取消 SE
  212.      $game_system.se_play($data_system.cancel_se)
  213.      # 转向前一个角色的指令输入
  214.      phase3_prior_actor
  215.      return
  216.    end
  217.    # 按下 C 键的情况下
  218.    if Input.trigger?(Input::C)
  219.      # 角色指令窗口光标位置分之
  220.      case @actor_command_window.index
  221.      when 0  # 攻击
  222.        # 演奏确定 SE
  223.        $game_system.se_play($data_system.decision_se)
  224.        # 设置行动
  225.        @active_battler.current_action.kind = 0
  226.        @active_battler.current_action.basic = 0
  227.        # 开始选择敌人
  228.        start_enemy_select
  229.      when 1  # 特技
  230.        # 演奏确定 SE
  231.        $game_system.se_play($data_system.decision_se)
  232.        # 设置行动
  233.        @active_battler.current_action.kind = 1
  234.        # 开始选择特技
  235.        start_skill_select
  236.      when 2  # 防御
  237.        # 演奏确定 SE
  238.        $game_system.se_play($data_system.decision_se)
  239.        # 设置行动
  240.        @active_battler.current_action.kind = 0
  241.        @active_battler.current_action.basic = 1
  242.        # 转向下一位角色的指令输入
  243.        phase3_next_actor
  244.      when 3  # 物品
  245.        # 演奏确定 SE
  246.        $game_system.se_play($data_system.decision_se)
  247.        # 设置行动
  248.        @active_battler.current_action.kind = 2
  249.        # 开始选择物品
  250.        start_item_select
  251.      end
  252.      return
  253.    end
  254.    #------------------------------
  255.    # 按下 T 建的情况下
  256.    #------------------------------
  257.    if Kboard.keyboard($R_Key_T)
  258.      #如果一号开关打开就禁止重复上回合动作
  259.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  260.        # 演奏冻结 SE
  261.        $game_system.se_play($data_system.buzzer_se)
  262.        return
  263.      end
  264.      case @active_battler.last_action.kind
  265.      when 0  # 攻击,防御
  266.        #防御
  267.        if @active_battler.last_action.basic == 1
  268.          # 设置行动
  269.          @active_battler.current_action.kind = 0
  270.          @active_battler.current_action.basic = 1
  271.          # 演奏确定 SE
  272.          $game_system.se_play($data_system.decision_se)
  273.          phase3_next_actor
  274.          #攻击
  275.          else
  276.          # 演奏确定 SE
  277.          $game_system.se_play($data_system.decision_se)
  278.          # 设置行动
  279.          @active_battler.current_action.kind = 0
  280.          @active_battler.current_action.basic = 0
  281.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  282.          phase3_next_actor
  283.        end
  284.      when 1  # 特技
  285.        skill_id = @active_battler.last_action.skill_id
  286.        if @active_battler.skill_learn?(skill_id) and          @active_battler.skill_can_use?(skill_id)
  287.          # 设置行动
  288.          @active_battler.current_action.kind = 1
  289.          @active_battler.current_action.skill_id = @active_battler.last_action.skill_id
  290.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  291.          phase3_next_actor
  292.        else
  293.          # 演奏冻结 SE
  294.          $game_system.se_play($data_system.buzzer_se)
  295.        end
  296.      when 2  # 物品
  297.        item_id = @active_battler.last_action.item_id
  298.        if $game_party.item_can_use?(item_id)
  299.          # 设置行动
  300.          @active_battler.current_action.kind = 2
  301.          @active_battler.current_action.item_id = @active_battler.last_action.item_id
  302.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  303.          # 演奏确定 SE
  304.          $game_system.se_play($data_system.decision_se)
  305.          phase3_next_actor
  306.        else
  307.          # 演奏冻结 SE
  308.          $game_system.se_play($data_system.buzzer_se)
  309.        end
  310.      end
  311.      return
  312.    end
  313.    #------------------------------
  314.    # 按下 R 键的情况下
  315.    #------------------------------
  316.    if Kboard.keyboard($R_Key_R)
  317.      #如果一号开关打开就禁止重复上回合动作
  318.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  319.        # 演奏冻结 SE
  320.        $game_system.se_play($data_system.buzzer_se)
  321.        return
  322.      end
  323.      for a in $game_party.actors
  324.        if a.inputable?
  325.          case a.last_action.kind
  326.          when 0  # 攻击,防御
  327.            #防御
  328.            if a.last_action.basic == 1
  329.              # 设置行动
  330.              a.current_action.kind = 0
  331.              a.current_action.basic = 1
  332.              #攻击
  333.              else
  334.              # 设置行动
  335.              a.current_action.kind = 0
  336.              a.current_action.basic = 0
  337.              a.current_action.target_index = a.last_action.target_index
  338.            end
  339.          when 1  # 特技
  340.          skill_id = a.last_action.skill_id
  341.          if a.skill_learn?(skill_id) and            a.skill_can_use?(skill_id)
  342.            # 设置行动
  343.            a.current_action.kind = 1
  344.            a.current_action.skill_id = a.last_action.skill_id
  345.            a.current_action.target_index = a.last_action.target_index
  346.          elsif
  347.            # 不能使用就攻击
  348.            if $data_skills[skill_id].scope < 3
  349.              a.current_action.kind = 0
  350.              a.current_action.basic = 0
  351.              a.current_action.target_index = a.last_action.target_index
  352.            else
  353.              a.current_action.kind = 0
  354.              a.current_action.basic = 0
  355.              a.current_action.target_index = 0
  356.            end
  357.          end
  358.          when 2  # 物品
  359.            item_id = a.last_action.item_id
  360.            if $game_party.item_can_use?(item_id)
  361.              # 设置行动
  362.              a.current_action.kind = 2
  363.              a.current_action.item_id = a.last_action.item_id
  364.              a.current_action.target_index = a.last_action.target_index
  365.            else
  366.              # 不能使用就攻击
  367.              a.current_action.kind = 0
  368.              a.current_action.basic = 0
  369.              a.current_action.target_index = 0
  370.            end
  371.          end
  372.        end
  373.        # 角色的明灭效果 OFF
  374.        if a != nil
  375.          a.blink = false
  376.        end
  377.      end
  378.      # 演奏确定 SE
  379.      $game_system.se_play($data_system.decision_se)
  380.      start_phase4
  381.      return
  382.    end
  383.    #------------------------------
  384.    # 按下 F 键的情况下
  385.    #------------------------------
  386.    if Kboard.keyboard($R_Key_F)
  387.      for a in $game_party.actors
  388.        if a.inputable?
  389.          a.current_action.kind = 0
  390.          a.current_action.basic = 0
  391.          a.current_action.target_index = 0
  392.        end
  393.        # 角色的明灭效果 OFF
  394.        if a != nil
  395.          a.blink = false
  396.        end
  397.      end
  398.      # 演奏确定 SE
  399.      $game_system.se_play($data_system.decision_se)
  400.      start_phase4
  401.      return
  402.    end
  403. end
  404. end
  405. #==============================================================================
  406. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  407. #==============================================================================
复制代码

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

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-17
帖子
44
2
发表于 2009-2-3 04:35:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
3
 楼主| 发表于 2009-2-3 05:03:14 | 只看该作者
好像不行啊{/pz}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
4
 楼主| 发表于 2009-2-3 19:11:01 | 只看该作者
顶上去
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
5
发表于 2009-2-5 20:03:22 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. #重复上回合动作  v1.1
  4. #by 叶子       Date: 12-12-2005
  5. #QQ:121058265
  6. #本脚本根据66rpg的站长柳柳提出的思路制作
  7. #如发现有bug请与作者联系或上66rpg发贴说明
  8. #==============================================================================
  9. #当战斗时按下T键,
  10. #当前角色就会重复上回合的动作(包括攻击,特技,防御,物品)。
  11. #当战斗时按下R键,
  12. #所有角色就会重复上回合的动作。
  13. #当战斗时按下F键,
  14. #所有角色就会普通攻击同一个敌人。
  15. #脚本占用了第一号开关。
  16. #当第一号开关打开时,重复上回合动作功能关闭。
  17. #如果想用其他开关,改第130,263,323行中相应内容。
  18. #--------------------------------------------------------------------------
  19. class Game_Battler
  20. #--------------------------------------------------------------------------
  21. # ● 初始化对像
  22. #--------------------------------------------------------------------------
  23. def initialize
  24.    @battler_name = ""
  25.    @battler_hue = 0
  26.    @hp = 0
  27.    @sp = 0
  28.    @states = []
  29.    @states_turn = {}
  30.    @maxhp_plus = 0
  31.    @maxsp_plus = 0
  32.    @str_plus = 0
  33.    @dex_plus = 0
  34.    @agi_plus = 0
  35.    @int_plus = 0
  36.    @hidden = false
  37.    @immortal = false
  38.    @damage_pop = false
  39.    @damage = nil
  40.    @critical = false
  41.    @animation_id = 0
  42.    @animation_hit = false
  43.    @white_flash = false
  44.    @blink = false
  45.    @current_action = Game_BattleAction.new
  46.    @last_action = Game_BattleAction.new
  47. end
  48. #--------------------------------------------------------------------------
  49. # ● 获取前一回合的动作
  50. #--------------------------------------------------------------------------
  51. def last_action
  52.    return @last_action
  53. end
  54. end




  55. class Game_Party
  56. def last_actions
  57.    for actor in @actors
  58.      actor.last_action.kind = actor.current_action.kind
  59.      actor.last_action.basic = actor.current_action.basic
  60.      actor.last_action.forcing = actor.current_action.forcing
  61.      actor.last_action.target_index = actor.current_action.target_index
  62.      actor.last_action.skill_id = actor.current_action.skill_id
  63.      actor.last_action.item_id = actor.current_action.item_id
  64.    end
  65. end
  66. end


  67. class Scene_Battle
  68. #--------------------------------------------------------------------------
  69. # ● 开始同伴命令回合
  70. #--------------------------------------------------------------------------
  71. def start_phase2
  72.    # 转移到回合 2
  73.    @phase = 2
  74.    # 设置角色为非选择状态
  75.    @actor_index = -1
  76.    @active_battler = nil
  77.    # 有效化同伴指令窗口
  78.   # @party_command_window.active = true
  79.   # @party_command_window.visible = true
  80.    # 无效化角色指令窗口
  81.    @actor_command_window.active = false
  82.    @actor_command_window.visible = false
  83.    # 清除主回合标志
  84.    $game_temp.battle_main_phase = false
  85.    # 记录行动
  86.    $game_party.last_actions
  87.    # 清除全体同伴的行动
  88.    $game_party.clear_actions
  89.    # 不能输入命令的情况下
  90.    unless $game_party.inputable?
  91.      # 开始主回合
  92.      start_phase4
  93.    end
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● 刷新画面 (同伴命令回合)
  97. #--------------------------------------------------------------------------
  98. def update_phase2

  99.    #------------------------------
  100.    # 按下 R 键的情况下
  101.    #------------------------------
  102.    if Kboard.keyboard($R_Key_R)
  103.      #如果一号开关打开就禁止重复上回合动作
  104.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  105.        # 演奏冻结 SE
  106.        $game_system.se_play($data_system.buzzer_se)
  107.        return
  108.      end
  109.      for a in $game_party.actors
  110.        if a.inputable?
  111.          case a.last_action.kind
  112.          when 0  # 攻击,防御
  113.            #防御
  114.            if a.last_action.basic == 1
  115.              # 设置行动
  116.              a.current_action.kind = 0
  117.              a.current_action.basic = 1
  118.              #攻击
  119.              else
  120.              # 设置行动
  121.              a.current_action.kind = 0
  122.              a.current_action.basic = 0
  123.              a.current_action.target_index = a.last_action.target_index
  124.            end
  125.          when 1  # 特技
  126.          skill_id = a.last_action.skill_id
  127.          if a.skill_learn?(skill_id) and            a.skill_can_use?(skill_id)
  128.            # 设置行动
  129.            a.current_action.kind = 1
  130.            a.current_action.skill_id = a.last_action.skill_id
  131.            a.current_action.target_index = a.last_action.target_index
  132.          else
  133.            # 不能使用就攻击
  134.            if $data_skills[skill_id].scope < 3
  135.              a.current_action.kind = 0
  136.              a.current_action.basic = 0
  137.              a.current_action.target_index = a.last_action.target_index
  138.            else
  139.              a.current_action.kind = 0
  140.              a.current_action.basic = 0
  141.              a.current_action.target_index = 0
  142.            end
  143.          end
  144.          when 2  # 物品
  145.            item_id = a.last_action.item_id
  146.            if $game_party.item_can_use?(item_id)
  147.              # 设置行动
  148.              a.current_action.kind = 2
  149.              a.current_action.item_id = a.last_action.item_id
  150.              a.current_action.target_index = a.last_action.target_index
  151.            else
  152.              # 不能使用就攻击
  153.              a.current_action.kind = 0
  154.              a.current_action.basic = 0
  155.              a.current_action.target_index = 0
  156.            end
  157.          end
  158.        end
  159.      end
  160.      # 演奏确定 SE
  161.      $game_system.se_play($data_system.decision_se)
  162.      start_phase4
  163.      return
  164.    end
  165.    #------------------------------
  166.    # 按下 F 键的情况下
  167.    #------------------------------
  168.    if Kboard.keyboard($R_Key_T)
  169.      for a in $game_party.actors
  170.        if a.inputable?
  171.          a.current_action.kind = 0
  172.          a.current_action.basic = 0
  173.          a.current_action.target_index = 0
  174.        end
  175.      end
  176.      # 演奏确定 SE
  177.      $game_system.se_play($data_system.decision_se)
  178.      start_phase4
  179.      return
  180.    end
  181. end
  182. #--------------------------------------------------------------------------
  183. # ● 刷新画面 (角色命令回合 : 基本命令)
  184. #--------------------------------------------------------------------------
  185. def update_phase3_basic_command
  186.    # 按下 B 键的情况下
  187.    if Input.trigger?(Input::B)
  188.      # 演奏取消 SE
  189.      $game_system.se_play($data_system.cancel_se)
  190.      # 转向前一个角色的指令输入
  191.      phase3_prior_actor
  192.      return
  193.    end
  194.    # 按下 C 键的情况下
  195.    if Input.trigger?(Input::C)
  196.      # 角色指令窗口光标位置分之
  197.      case @actor_command_window.index
  198.      when 0  # 攻击
  199.        # 演奏确定 SE
  200.        $game_system.se_play($data_system.decision_se)
  201.        # 设置行动
  202.        @active_battler.current_action.kind = 0
  203.        @active_battler.current_action.basic = 0
  204.        # 开始选择敌人
  205.        start_enemy_select
  206.      when 1  # 特技
  207.        # 演奏确定 SE
  208.        $game_system.se_play($data_system.decision_se)
  209.        # 设置行动
  210.        @active_battler.current_action.kind = 1
  211.        # 开始选择特技
  212.        start_skill_select
  213.      when 2  # 防御
  214.        # 演奏确定 SE
  215.        $game_system.se_play($data_system.decision_se)
  216.        # 设置行动
  217.        @active_battler.current_action.kind = 0
  218.        @active_battler.current_action.basic = 1
  219.        # 转向下一位角色的指令输入
  220.        phase3_next_actor
  221.      when 3  # 物品
  222.        # 演奏确定 SE
  223.        $game_system.se_play($data_system.decision_se)
  224.        # 设置行动
  225.        @active_battler.current_action.kind = 2
  226.        # 开始选择物品
  227.        start_item_select
  228.      end
  229.      return
  230.    end
  231.    #------------------------------
  232.    # 按下 T 建的情况下
  233.    #------------------------------
  234.    if Kboard.keyboard($R_Key_T)
  235.      #如果一号开关打开就禁止重复上回合动作
  236.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  237.        # 演奏冻结 SE
  238.        $game_system.se_play($data_system.buzzer_se)
  239.        return
  240.      end
  241.      case @active_battler.last_action.kind
  242.      when 0  # 攻击,防御
  243.        #防御
  244.        if @active_battler.last_action.basic == 1
  245.          # 设置行动
  246.          @active_battler.current_action.kind = 0
  247.          @active_battler.current_action.basic = 1
  248.          # 演奏确定 SE
  249.          $game_system.se_play($data_system.decision_se)
  250.          phase3_next_actor
  251.          #攻击
  252.          else
  253.          # 演奏确定 SE
  254.          $game_system.se_play($data_system.decision_se)
  255.          # 设置行动
  256.          @active_battler.current_action.kind = 0
  257.          @active_battler.current_action.basic = 0
  258.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  259.          phase3_next_actor
  260.        end
  261.      when 1  # 特技
  262.        skill_id = @active_battler.last_action.skill_id
  263.        if @active_battler.skill_learn?(skill_id) and          @active_battler.skill_can_use?(skill_id)
  264.          # 设置行动
  265.          @active_battler.current_action.kind = 1
  266.          @active_battler.current_action.skill_id = @active_battler.last_action.skill_id
  267.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  268.          phase3_next_actor
  269.        else
  270.          # 演奏冻结 SE
  271.          $game_system.se_play($data_system.buzzer_se)
  272.        end
  273.      when 2  # 物品
  274.        item_id = @active_battler.last_action.item_id
  275.        if $game_party.item_can_use?(item_id)
  276.          # 设置行动
  277.          @active_battler.current_action.kind = 2
  278.          @active_battler.current_action.item_id = @active_battler.last_action.item_id
  279.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  280.          # 演奏确定 SE
  281.          $game_system.se_play($data_system.decision_se)
  282.          phase3_next_actor
  283.        else
  284.          # 演奏冻结 SE
  285.          $game_system.se_play($data_system.buzzer_se)
  286.        end
  287.      end
  288.      return
  289.    end
  290.    #------------------------------
  291.    # 按下 R 键的情况下
  292.    #------------------------------
  293.    if Kboard.keyboard($R_Key_R)
  294.      #如果一号开关打开就禁止重复上回合动作
  295.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  296.        # 演奏冻结 SE
  297.        $game_system.se_play($data_system.buzzer_se)
  298.        return
  299.      end
  300.      for a in $game_party.actors
  301.        if a.inputable?
  302.          case a.last_action.kind
  303.          when 0  # 攻击,防御
  304.            #防御
  305.            if a.last_action.basic == 1
  306.              # 设置行动
  307.              a.current_action.kind = 0
  308.              a.current_action.basic = 1
  309.              #攻击
  310.              else
  311.              # 设置行动
  312.              a.current_action.kind = 0
  313.              a.current_action.basic = 0
  314.              a.current_action.target_index = a.last_action.target_index
  315.            end
  316.          when 1  # 特技
  317.          skill_id = a.last_action.skill_id
  318.          if a.skill_learn?(skill_id) and            a.skill_can_use?(skill_id)
  319.            # 设置行动
  320.            a.current_action.kind = 1
  321.            a.current_action.skill_id = a.last_action.skill_id
  322.            a.current_action.target_index = a.last_action.target_index
  323.          elsif
  324.            # 不能使用就攻击
  325.            if $data_skills[skill_id].scope < 3
  326.              a.current_action.kind = 0
  327.              a.current_action.basic = 0
  328.              a.current_action.target_index = a.last_action.target_index
  329.            else
  330.              a.current_action.kind = 0
  331.              a.current_action.basic = 0
  332.              a.current_action.target_index = 0
  333.            end
  334.          end
  335.          when 2  # 物品
  336.            item_id = a.last_action.item_id
  337.            if $game_party.item_can_use?(item_id)
  338.              # 设置行动
  339.              a.current_action.kind = 2
  340.              a.current_action.item_id = a.last_action.item_id
  341.              a.current_action.target_index = a.last_action.target_index
  342.            else
  343.              # 不能使用就攻击
  344.              a.current_action.kind = 0
  345.              a.current_action.basic = 0
  346.              a.current_action.target_index = 0
  347.            end
  348.          end
  349.        end
  350.        # 角色的明灭效果 OFF
  351.        if a != nil
  352.          a.blink = false
  353.        end
  354.      end
  355.      # 演奏确定 SE
  356.      $game_system.se_play($data_system.decision_se)
  357.      start_phase4
  358.      return
  359.    end
  360.    #------------------------------
  361.    # 按下 F 键的情况下
  362.    #------------------------------
  363.    if Kboard.keyboard($R_Key_F)
  364.      for a in $game_party.actors
  365.        if a.inputable?
  366.          a.current_action.kind = 0
  367.          a.current_action.basic = 0
  368.          a.current_action.target_index = 0
  369.        end
  370.        # 角色的明灭效果 OFF
  371.        if a != nil
  372.          a.blink = false
  373.        end
  374.      end
  375.      # 演奏确定 SE
  376.      $game_system.se_play($data_system.decision_se)
  377.      start_phase4
  378.      return
  379.    end
  380. end
  381. end
  382. #==============================================================================
  383. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  384. #==============================================================================
复制代码
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
6
 楼主| 发表于 2009-2-5 22:16:02 | 只看该作者
楼上谢谢你的回答,本以为没人解答了我都快放弃了。
那个战斗/逃跑选项确实去掉了,但是战斗菜单也去掉了,不知能否再修改一下{/fd}
当然,如果要是没有人再修改的话,今天晚上我就结贴认可你的答案!

回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

7
发表于 2009-2-5 22:53:01 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. #重复上回合动作  v1.1
  4. #by 叶子       Date: 12-12-2005
  5. #QQ:121058265
  6. #本脚本根据66rpg的站长柳柳提出的思路制作
  7. #如发现有bug请与作者联系或上66rpg发贴说明
  8. #==============================================================================
  9. #当战斗时按下T键,
  10. #当前角色就会重复上回合的动作(包括攻击,特技,防御,物品)。
  11. #当战斗时按下R键,
  12. #所有角色就会重复上回合的动作。
  13. #当战斗时按下F键,
  14. #所有角色就会普通攻击同一个敌人。
  15. #脚本占用了第一号开关。
  16. #当第一号开关打开时,重复上回合动作功能关闭。
  17. #如果想用其他开关,改第130,263,323行中相应内容。
  18. #--------------------------------------------------------------------------
  19. class Game_Battler
  20. #--------------------------------------------------------------------------
  21. # ● 初始化对像
  22. #--------------------------------------------------------------------------
  23. def initialize
  24.    @battler_name = ""
  25.    @battler_hue = 0
  26.    @hp = 0
  27.    @sp = 0
  28.    @states = []
  29.    @states_turn = {}
  30.    @maxhp_plus = 0
  31.    @maxsp_plus = 0
  32.    @str_plus = 0
  33.    @dex_plus = 0
  34.    @agi_plus = 0
  35.    @int_plus = 0
  36.    @hidden = false
  37.    @immortal = false
  38.    @damage_pop = false
  39.    @damage = nil
  40.    @critical = false
  41.    @animation_id = 0
  42.    @animation_hit = false
  43.    @white_flash = false
  44.    @blink = false
  45.    @current_action = Game_BattleAction.new
  46.    @last_action = Game_BattleAction.new
  47. end
  48. #--------------------------------------------------------------------------
  49. # ● 获取前一回合的动作
  50. #--------------------------------------------------------------------------
  51. def last_action
  52.    return @last_action
  53. end
  54. end




  55. class Game_Party
  56. def last_actions
  57.    for actor in @actors
  58.      actor.last_action.kind = actor.current_action.kind
  59.      actor.last_action.basic = actor.current_action.basic
  60.      actor.last_action.forcing = actor.current_action.forcing
  61.      actor.last_action.target_index = actor.current_action.target_index
  62.      actor.last_action.skill_id = actor.current_action.skill_id
  63.      actor.last_action.item_id = actor.current_action.item_id
  64.    end
  65. end
  66. end


  67. class Scene_Battle
  68.   #--------------------------------------------------------------------------
  69.   # ● 主处理
  70.   #--------------------------------------------------------------------------
  71.   def main
  72.     # 初始化战斗用的各种暂时数据
  73.     $game_temp.in_battle = true
  74.     $game_temp.battle_turn = 0
  75.     $game_temp.battle_event_flags.clear
  76.     $game_temp.battle_abort = false
  77.     $game_temp.battle_main_phase = false
  78.     $game_temp.battleback_name = $game_map.battleback_name
  79.     $game_temp.forcing_battler = nil
  80.     # 初始化战斗用事件解释器
  81.     $game_system.battle_interpreter.setup(nil, 0)
  82.     # 准备队伍
  83.     @troop_id = $game_temp.battle_troop_id
  84.     $game_troop.setup(@troop_id)
  85.     # 生成角色命令窗口
  86.     s1 = $data_system.words.attack
  87.     s2 = $data_system.words.skill
  88.     s3 = $data_system.words.guard
  89.     s4 = $data_system.words.item
  90.     @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, "逃跑"])
  91.     @actor_command_window.draw_item(4, $game_temp.battle_can_escape ? @actor_command_window.normal_color : @actor_command_window.disabled_color)
  92.     @actor_command_window.y = 128
  93.     @actor_command_window.back_opacity = 160
  94.     @actor_command_window.active = false
  95.     @actor_command_window.visible = false
  96.     # 生成其它窗口
  97.     @party_command_window = Window_PartyCommand.new
  98.     @help_window = Window_Help.new
  99.     @help_window.back_opacity = 160
  100.     @help_window.visible = false
  101.     @status_window = Window_BattleStatus.new
  102.     @message_window = Window_Message.new
  103.     # 生成活动块
  104.     @spriteset = Spriteset_Battle.new
  105.     # 初始化等待计数
  106.     @wait_count = 0
  107.     # 执行过渡
  108.     if $data_system.battle_transition == ""
  109.       Graphics.transition(20)
  110.     else
  111.       Graphics.transition(40, "Graphics/Transitions/" +
  112.         $data_system.battle_transition)
  113.     end
  114.     # 开始自由战斗回合
  115.     start_phase1
  116.     # 主循环
  117.     loop do
  118.       # 刷新游戏画面
  119.       Graphics.update
  120.       # 刷新输入信息
  121.       Input.update
  122.       # 刷新画面
  123.       update
  124.       # 如果画面切换的话就中断循环
  125.       if $scene != self
  126.         break
  127.       end
  128.     end
  129.     # 刷新地图
  130.     $game_map.refresh
  131.     # 准备过渡
  132.     Graphics.freeze
  133.     # 释放窗口
  134.     @actor_command_window.dispose
  135.     @party_command_window.dispose
  136.     @help_window.dispose
  137.     @status_window.dispose
  138.     @message_window.dispose
  139.     if @skill_window != nil
  140.       @skill_window.dispose
  141.     end
  142.     if @item_window != nil
  143.       @item_window.dispose
  144.     end
  145.     if @result_window != nil
  146.       @result_window.dispose
  147.     end
  148.     # 释放活动块
  149.     @spriteset.dispose
  150.     # 标题画面切换中的情况
  151.     if $scene.is_a?(Scene_Title)
  152.       # 淡入淡出画面
  153.       Graphics.transition
  154.       Graphics.freeze
  155.     end
  156.     # 战斗测试或者游戏结束以外的画面切换中的情况
  157.     if $BTEST and not $scene.is_a?(Scene_Gameover)
  158.       $scene = nil
  159.     end
  160.   end

  161. #--------------------------------------------------------------------------
  162. # ● 开始同伴命令回合
  163. #--------------------------------------------------------------------------
  164. def start_phase2
  165.    # 转移到回合 2
  166.    @phase = 2
  167.    # 设置角色为非选择状态
  168.    @actor_index = -1
  169.    @active_battler = nil
  170.    # 有效化同伴指令窗口
  171. #  @party_command_window.active = true
  172. #  @party_command_window.visible = true
  173.    # 无效化角色指令窗口
  174.    @actor_command_window.active = false
  175.    @actor_command_window.visible = false
  176.    # 清除主回合标志
  177.    $game_temp.battle_main_phase = false
  178.    # 记录行动
  179.    $game_party.last_actions
  180.    # 清除全体同伴的行动
  181.    $game_party.clear_actions
  182.    # 不能输入命令的情况下
  183.    unless $game_party.inputable?
  184.      # 开始主回合
  185.      start_phase4
  186.    end
  187. end
  188. #--------------------------------------------------------------------------
  189. # ● 刷新画面 (同伴命令回合)
  190. #--------------------------------------------------------------------------
  191. #该更新已删除,因为跳过了Phase2,所以也就没有存在的意义。
  192.   def update_phase2

  193.       # 演奏确定 SE
  194.       $game_system.se_play($data_system.decision_se)
  195.       # 开始角色的命令回合
  196.       start_phase3

  197.   end
  198. #--------------------------------------------------------------------------
  199. # ● 刷新画面 (角色命令回合 : 基本命令)
  200. #--------------------------------------------------------------------------
  201. def update_phase3_basic_command
  202.    # 按下 B 键的情况下
  203.    if Input.trigger?(Input::B)
  204.      # 演奏取消 SE
  205.      $game_system.se_play($data_system.cancel_se)
  206.      # 转向前一个角色的指令输入
  207.      phase3_prior_actor
  208.      return
  209.    end
  210.    # 按下 C 键的情况下
  211.    if Input.trigger?(Input::C)
  212.      # 角色指令窗口光标位置分之
  213.      case @actor_command_window.index
  214.      when 0  # 攻击
  215.        # 演奏确定 SE
  216.        $game_system.se_play($data_system.decision_se)
  217.        # 设置行动
  218.        @active_battler.current_action.kind = 0
  219.        @active_battler.current_action.basic = 0
  220.        # 开始选择敌人
  221.        start_enemy_select
  222.      when 1  # 特技
  223.        # 演奏确定 SE
  224.        $game_system.se_play($data_system.decision_se)
  225.        # 设置行动
  226.        @active_battler.current_action.kind = 1
  227.        # 开始选择特技
  228.        start_skill_select
  229.      when 2  # 防御
  230.        # 演奏确定 SE
  231.        $game_system.se_play($data_system.decision_se)
  232.        # 设置行动
  233.        @active_battler.current_action.kind = 0
  234.        @active_battler.current_action.basic = 1
  235.        # 转向下一位角色的指令输入
  236.        phase3_next_actor
  237.      when 3  # 物品
  238.        # 演奏确定 SE
  239.        $game_system.se_play($data_system.decision_se)
  240.        # 设置行动
  241.        @active_battler.current_action.kind = 2
  242.        # 开始选择物品
  243.        start_item_select
  244.      when 4 #逃跑
  245.         # 不能逃跑的情况下
  246.         if $game_temp.battle_can_escape == false
  247.           # 演奏冻结 SE
  248.           $game_system.se_play($data_system.buzzer_se)
  249.           return
  250.         end
  251.         # 演奏确定 SE
  252.         $game_system.se_play($data_system.decision_se)
  253.         # 逃走处理
  254.         update_phase2_escape
  255.      end
  256.      return
  257.    end
  258.    #------------------------------
  259.    # 按下 T 建的情况下
  260.    #------------------------------
  261.    if Kboard.keyboard($R_Key_T)
  262.      #如果一号开关打开就禁止重复上回合动作
  263.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  264.        # 演奏冻结 SE
  265.        $game_system.se_play($data_system.buzzer_se)
  266.        return
  267.      end
  268.      case @active_battler.last_action.kind
  269.      when 0  # 攻击,防御
  270.        #防御
  271.        if @active_battler.last_action.basic == 1
  272.          # 设置行动
  273.          @active_battler.current_action.kind = 0
  274.          @active_battler.current_action.basic = 1
  275.          # 演奏确定 SE
  276.          $game_system.se_play($data_system.decision_se)
  277.          phase3_next_actor
  278.          #攻击
  279.          else
  280.          # 演奏确定 SE
  281.          $game_system.se_play($data_system.decision_se)
  282.          # 设置行动
  283.          @active_battler.current_action.kind = 0
  284.          @active_battler.current_action.basic = 0
  285.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  286.          phase3_next_actor
  287.        end
  288.      when 1  # 特技
  289.        skill_id = @active_battler.last_action.skill_id
  290.        if @active_battler.skill_learn?(skill_id) and          @active_battler.skill_can_use?(skill_id)
  291.          # 设置行动
  292.          @active_battler.current_action.kind = 1
  293.          @active_battler.current_action.skill_id = @active_battler.last_action.skill_id
  294.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  295.          phase3_next_actor
  296.        else
  297.          # 演奏冻结 SE
  298.          $game_system.se_play($data_system.buzzer_se)
  299.        end
  300.      when 2  # 物品
  301.        item_id = @active_battler.last_action.item_id
  302.        if $game_party.item_can_use?(item_id)
  303.          # 设置行动
  304.          @active_battler.current_action.kind = 2
  305.          @active_battler.current_action.item_id = @active_battler.last_action.item_id
  306.          @active_battler.current_action.target_index = @active_battler.last_action.target_index
  307.          # 演奏确定 SE
  308.          $game_system.se_play($data_system.decision_se)
  309.          phase3_next_actor
  310.        else
  311.          # 演奏冻结 SE
  312.          $game_system.se_play($data_system.buzzer_se)
  313.        end
  314.      end
  315.      return
  316.    end
  317.    #------------------------------
  318.    # 按下 R 键的情况下
  319.    #------------------------------
  320.    if Kboard.keyboard($R_Key_R)
  321.      #如果一号开关打开就禁止重复上回合动作
  322.      if $game_switches[51] == true #开关号可以改,把那个1改成你要的开关号
  323.        # 演奏冻结 SE
  324.        $game_system.se_play($data_system.buzzer_se)
  325.        return
  326.      end
  327.      for a in $game_party.actors
  328.        if a.inputable?
  329.          case a.last_action.kind
  330.          when 0  # 攻击,防御
  331.            #防御
  332.            if a.last_action.basic == 1
  333.              # 设置行动
  334.              a.current_action.kind = 0
  335.              a.current_action.basic = 1
  336.              #攻击
  337.              else
  338.              # 设置行动
  339.              a.current_action.kind = 0
  340.              a.current_action.basic = 0
  341.              a.current_action.target_index = a.last_action.target_index
  342.            end
  343.          when 1  # 特技
  344.          skill_id = a.last_action.skill_id
  345.          if a.skill_learn?(skill_id) and            a.skill_can_use?(skill_id)
  346.            # 设置行动
  347.            a.current_action.kind = 1
  348.            a.current_action.skill_id = a.last_action.skill_id
  349.            a.current_action.target_index = a.last_action.target_index
  350.          elsif
  351.            # 不能使用就攻击
  352.            if $data_skills[skill_id].scope < 3
  353.              a.current_action.kind = 0
  354.              a.current_action.basic = 0
  355.              a.current_action.target_index = a.last_action.target_index
  356.            else
  357.              a.current_action.kind = 0
  358.              a.current_action.basic = 0
  359.              a.current_action.target_index = 0
  360.            end
  361.          end
  362.          when 2  # 物品
  363.            item_id = a.last_action.item_id
  364.            if $game_party.item_can_use?(item_id)
  365.              # 设置行动
  366.              a.current_action.kind = 2
  367.              a.current_action.item_id = a.last_action.item_id
  368.              a.current_action.target_index = a.last_action.target_index
  369.            else
  370.              # 不能使用就攻击
  371.              a.current_action.kind = 0
  372.              a.current_action.basic = 0
  373.              a.current_action.target_index = 0
  374.            end
  375.          end
  376.        end
  377.        # 角色的明灭效果 OFF
  378.        if a != nil
  379.          a.blink = false
  380.        end
  381.      end
  382.      # 演奏确定 SE
  383.      $game_system.se_play($data_system.decision_se)
  384.      start_phase4
  385.      return
  386.    end
  387.    #------------------------------
  388.    # 按下 F 键的情况下
  389.    #------------------------------
  390.    if Kboard.keyboard($R_Key_F)
  391.      for a in $game_party.actors
  392.        if a.inputable?
  393.          a.current_action.kind = 0
  394.          a.current_action.basic = 0
  395.          a.current_action.target_index = 0
  396.        end
  397.        # 角色的明灭效果 OFF
  398.        if a != nil
  399.          a.blink = false
  400.        end
  401.      end
  402.      # 演奏确定 SE
  403.      $game_system.se_play($data_system.decision_se)
  404.      start_phase4
  405.      return
  406.    end
  407. end
  408. end
  409. #==============================================================================
  410. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  411. #==============================================================================

复制代码

完成了= =跳过了Phase2也就不需要Phase2判定了吧。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
8
 楼主| 发表于 2009-2-5 22:55:43 | 只看该作者
非常感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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