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

Project1

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

[已经过期] 问战斗脚本的一个问题

[复制链接]

Lv5.捕梦者

梦石
24
星屑
7062
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

1
发表于 2023-1-18 23:04:10 | 显示全部楼层
本帖最后由 纯属小虫 于 2023-1-18 23:05 编辑

2楼分析的各种大【phase】都很详细,这里主要详细说说【phase3】的内容吧——

首先理解一下phase3——
  1.   def update_phase3
  2.     # 敌人光标有效的情况下
  3.     if @enemy_arrow != nil
  4.       update_phase3_enemy_select
  5.     # 角色光标有效的情况下
  6.     elsif @actor_arrow != nil
  7.       update_phase3_actor_select
  8.     # 特技窗口有效的情况下
  9.     elsif @skill_window != nil
  10.       update_phase3_skill_select
  11.     # 物品窗口有效的情况下
  12.     elsif @item_window != nil
  13.       update_phase3_item_select
  14.     # 角色指令窗口有效的情况下
  15.     elsif @actor_command_window.active
  16.       update_phase3_basic_command
  17.     end
  18.   end
复制代码

【update_phase3】这个指令在战斗中每一帧都会执行一次,其各个子内容是根据某光标或窗口是否有效,来决定这一帧应该更新哪个子内容
如:@skill_window != nil  特技窗口被调出的情况下,那便每一帧执行的都是【update_phase3_skill_select】里面的内容,也就是选择要使用的特技的那部分的操作。
然后记住倒数第三行的【update_phase3_basic_command】这个指令,后面会说到~~

接下来说说【phase3_next_actor】——
  1.   def phase3_next_actor
  2.     # 循环
  3.     begin
  4.       # 角色的明灭效果 OFF
  5.       if @active_battler != nil
  6.         @active_battler.blink = false
  7.       end
  8.       # 最后的角色的情况
  9.       if @actor_index == $game_party.actors.size-1
  10.         # 开始主回合
  11.         start_phase4
  12.         return
  13.       end
  14.       # 推进角色索引
  15.       @actor_index += 1
  16.       @active_battler = $game_party.actors[@actor_index]
  17.       @active_battler.blink = true
  18.     # 如果角色是在无法接受指令的状态就再试
  19.     end until @active_battler.inputable?
  20.     # 设置角色的命令窗口
  21.     phase3_setup_command_window
  22.   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战斗就是另一回事了!)

不知道这样能不能给你解惑~

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 15:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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