赞 | 46 |
VIP | 0 |
好人卡 | 0 |
积分 | 311 |
经验 | 0 |
最后登录 | 2024-4-16 |
在线时间 | 247 小时 |
Lv5.捕梦者
- 梦石
- 24
- 星屑
- 7062
- 在线时间
- 247 小时
- 注册时间
- 2020-12-4
- 帖子
- 306
|
本帖最后由 纯属小虫 于 2023-1-18 23:05 编辑
2楼分析的各种大【phase】都很详细,这里主要详细说说【phase3】的内容吧——
首先理解一下phase3——
- def update_phase3
- # 敌人光标有效的情况下
- if @enemy_arrow != nil
- update_phase3_enemy_select
- # 角色光标有效的情况下
- elsif @actor_arrow != nil
- update_phase3_actor_select
- # 特技窗口有效的情况下
- elsif @skill_window != nil
- update_phase3_skill_select
- # 物品窗口有效的情况下
- elsif @item_window != nil
- update_phase3_item_select
- # 角色指令窗口有效的情况下
- elsif @actor_command_window.active
- update_phase3_basic_command
- end
- end
复制代码
【update_phase3】这个指令在战斗中每一帧都会执行一次,其各个子内容是根据某光标或窗口是否有效,来决定这一帧应该更新哪个子内容
如:@skill_window != nil 特技窗口被调出的情况下,那便每一帧执行的都是【update_phase3_skill_select】里面的内容,也就是选择要使用的特技的那部分的操作。
然后记住倒数第三行的【update_phase3_basic_command】这个指令,后面会说到~~
接下来说说【phase3_next_actor】——
- def phase3_next_actor
- # 循环
- begin
- # 角色的明灭效果 OFF
- if @active_battler != nil
- @active_battler.blink = false
- end
- # 最后的角色的情况
- if @actor_index == $game_party.actors.size-1
- # 开始主回合
- start_phase4
- return
- end
- # 推进角色索引
- @actor_index += 1
- @active_battler = $game_party.actors[@actor_index]
- @active_battler.blink = true
- # 如果角色是在无法接受指令的状态就再试
- end until @active_battler.inputable?
- # 设置角色的命令窗口
- phase3_setup_command_window
- end
复制代码
这个指令出现在很多个步骤的后面,其意义就是为一个角色设置的行动完成之后(或者是刚刚开始phase3的时候),判定是否有下一个可以执行指令的角色
情况1:如果有,则为【角色index】+1,并且执行【phase3_setup_command_window】角色命令窗口,也就是选择攻击、防御、技能、物品的那个角色命令的最初始的窗口。
情况2:如果当前的【角色index】不满足接受指令的条件(如死亡,眩晕等限制效果),则回到begin那一步,再来一遍。
情况3:如果【角色index】已经等于队伍人数,也就是“最后一个队员无法行动”或者“所有队员已经设置完行动”的情况下,则终止phase3,开始phase4(播放动画开始对打的那个环节)
【phase3_next_actor】会出现在很多步骤的后面,如执行普通攻击选择完敌人目标后,或者使用物品选中完目标后,或者防御后等等,执行了这个指令代表这个角色的指令已经操作完了,开始寻找下一个可以接受指令的角色或者直接就开始【主回合】
至于【phase3_prior_actor】其实是前者的反向操作,用于在命令角色时按【ESC】的时候转向前一个角色时使用(毕竟XP的战斗是在将四个角色全部命令玩之后才会操作的,所以可以取消这个命令回到上一个命令;当然,CP战斗就是另一回事了!)
不知道这样能不能给你解惑~ |
评分
-
查看全部评分
|