Project1

标题: "强制行动的战斗者"为什么要“在头部添加后移动” [打印本页]

作者: 七仙女    时间: 2009-3-24 19:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苏    时间: 2009-3-24 19:53
强制行动的战斗者在 @action_battler 这个队列中不一定是在最前面的,所以先从队列中将其删除,然后再用 unshift 在头部添加这个战斗者,其余人一次向后移动一位,出列时他就第一个行动,所以是“强制行动”
作者: 七仙女    时间: 2009-3-24 20:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苏    时间: 2009-3-24 20:30
这个变量命名有点不明确,$game_temp.forcing_battler 保存的是要立即行动的战斗者,按正常顺序执行仅仅是保证该战斗者在这回合执行该操作,不需要把他(她、它)直接掉到队伍前端立即执行,所以就不用给 $game_temp.forcing_battler 赋值了
这个判断是在 Interpreter 7,command_339 中进行的,@parameters[5] 如果不为 1(没有选择立即执行),$game_temp.forcing_battler 就会一直保持 nil

判断该战斗者本回合是否强制行动的是 Game_Battler 一个类变量 @current_action 的 forcing 这个属性~ [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: Quarcy    时间: 2009-3-24 20:30
因為
Interpreter 7
182
        # 行动有效并且是 [立即执行] 的情况下
        if battler.current_action.valid? and @parameters[5] == 1
          # 设置强制对像的战斗者
          $game_temp.forcing_battler = battler
          # 推进索引
          @index += 1
          # 结束
          return false
        end

不是立即執行就不用強制了




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