近战
  • 类名:MeleeAttackGoal
  • 数据
    • PathFinderMob 寻路者:指代拥有这个目的任务的寻路者生物
    • int 攻击冷却:距下次攻击还要经过的时间,单为为刻
    • double 相对移速:给寻路者的导航器传入的相对移速参数
    • boolean 透视跟踪:决定寻路者是否在看不见攻击目标时尝试寻路
    • Path 初始路径:此目的任务刚开始时计算的路径
    • int 重算路径冷却:距下一次试图重算路径还要经过的时间,单位为刻
    • double 路径终点X坐标:路径终点的X坐标
    • double 路径终点Y坐标:路径终点的Y坐标
    • double 路径终点Z坐标:路径终点的Z坐标
    • int 攻击间隔:20,此数据未被使用
    • long 上次更新时间:上次开始此目的任务的游戏时间,单位为刻
  • 互斥特征:移动、观看
  • 是否开始
    • 不继承
    • 如果当前游戏时间与上次更新时间的时间小于1s
      • 不开始
    • 否则
    • 将上次更新时间设为当前游戏时间
    • 如果寻路者没有攻击目标
      • 不开始
    • 否则
    • 如果攻击目标死了
      • 不开始
    • 否则
    • 计算寻路者到攻击目标的路径并将初始路径设为它
    • 如果初始路径存在
      • 开始
    • 否则
    • 如果寻路者到攻击目标的距离不超过对它的攻击距离
      • 开始
    • 否则
      • 不开始
  • 是否继续
    • 不继承
    • 如果寻路者没有攻击目标
      • 不继续
    • 否则
    • 如果攻击目标死了
      • 不继续
    • 否则
    • 如果不透视跟踪
      • 如果寻路者的导航器未结束
        • 继续
      • 否则
        • 不继续
    • 否则
    • 如果寻路者的行动范围不包括攻击目标所在的方块位置
      • 不继续
    • 否则
    • 如果攻击目标是处于创造或观察者模式的玩家
      • 不继续
    • 否则
      • 继续
  • 开始
    • 不继承
    • 设置寻路者的导航器的航向:路径为数据里的初始路径,相对移速为数据里的相对移速
    • 将寻路者设为好斗的
    • 将重算路径冷却归零
  • 停止
    • 不继承
    • 如果寻路者攻击目标处于创造模式或观察者模式
      • 将寻路者的攻击目标置空
    • 将寻路者设为不好斗的
    • 将寻路者的导航器停止
  • 每刻
    • 不继承
    • 使寻路者看向攻击目标(使用它的观看控制器):最大X轴转速、最大Y轴转速皆为30
    • 将重算路径冷却减少1
    • 如果
      • 透视跟踪或者寻路者看得见攻击目标
      • 重算路径冷却小于等于零
      • 路径终点X坐标、路径终点Y坐标、路径终点Z坐标皆为默认值(零)或者攻击目标到这三个值表示的坐标的距离大于1或者满足概率5%
    • 那么
      • 将路径终点的X坐标设为攻击目标的X坐标
      • 将路径终点的Y坐标设为攻击目标的Y坐标
      • 将路径终点的Z坐标设为攻击目标的Z坐标
      • 将重算路径冷却随机设为4 ~ 10
      • 如果寻路者到攻击目标的距离大于32
        • 将重算路径冷却增加10
      • 否则如果距离大于16
        • 将重算路径冷却增加5
      • 设置寻路者的导航器的航向并计算路径:终点为攻击目标,相对移速为数据里的相对移速
        • 如果失败
          • 将重算路径冷却增加15
    • 将攻击冷却减少1,除非它将小于零
    • 试图攻击
  • 试图攻击时
    • 如果寻路者到攻击目标的距离不超过对它的攻击距离且攻击冷却小于等于零
      • 将攻击冷却设为20
      • 使寻路者摇晃主手
      • 使寻路者攻击攻击目标
  • 寻路者对一个生物的攻击距离:寻路者宽度的平方*4+该生物的宽度
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License