小伙贼帅 发表于 2023-3-28 22:25:04

请教 关于跟随距离的控制

------------------------------------------------------------
方法1,测试不理想!

---当焦点 超 12码 或者 不在战斗状态 没有跟随的情况下 运行跟随目标

if UnitName("focus") and BeeRange("focus")>=16 and not BeeUnitIsFollow() and not BeeUnitAffectingCombat()
then
    FollowUnit("focus");
end
---当焦点 超 10码 小于15码 不在战斗状态停止跟随目标 通过后退和停止后退来控制。

if UnitName("focus") and BeeRange("focus")>=10and BeeRange("focus")<=15 and not BeeUnitAffectingCombat()
then
    MoveBackwardStart();
    MoveBackwardStop();
end

---当焦点 战斗状态 我跟他的距离大于5停止跟随目标 通过后退和停止后退来控制(要设置执行时间不然会打断施法)


if UnitName("focus") and BeeRange("focus")>=5and BeeUnitAffectingCombat()
then
    MoveBackwardStart();
    MoveBackwardStop();
end


-------方法2-通过 焦点与目标怪物的距离要来控制跟随距离

比如说,坦克(焦点)开怪 距离怪10码 通过控制距离 达到我离怪20码-30码的 距离。



--根据焦点的目标,判断是否进行攻击,规则为存在且未死亡且是敌对且在战斗中 并且焦点与目标的距离小于20 则停止跟随
if UnitExists("target")==1 and not UnitIsDeadOrGhost("target")and BeeUnitCanAttack("target")==1 and
BeeUnitAffectingCombat("target")==1
and UnitName("focus") and BeeRange("target")<=20
then
    MoveBackwardStart();
    MoveBackwardStop();
end

秋赐教
焦点 与 目标 的距离要怎么写







小伙贼帅 发表于 2023-3-29 00:35:43

最终解决方案
-- 当我和焦点的目标大于10-30停止移动
BeeRun("/target focustarget");

if UnitExists("target")andBeeRange("target")<=30
andBeeRange("target")>=10 and BeeUnitIsFollow()
then
    MoveBackwardStart();
    MoveBackwardStop();
    BeeRun("/p 停,准备进攻!")
end
--------------------------------------
--根据 我跟焦点的距离大于等于10,且没有跟随 则开始跟随

if UnitName("focus") and BeeRange("focus")>=10 and not BeeUnitIsFollow()
then
    BeeRun("/P 跟上")
    FollowUnit("focus");
end

下雨啦 发表于 2023-3-29 13:09:51

我也想过这样加条件前进、后退控制距离,但是依然没办法解决面向怪物施法的问题,并且空间小、或者地面有阻碍物,效果也很不理想,最终还是放弃了。

小伙贼帅 发表于 2023-3-29 16:42:00

最后你是怎么解决的, 跟随站位 确实问题很大。

西海岸红杉 发表于 2023-8-26 10:45:12

楼主,这个写法,停止跟随是好用了,但是不能 与自动跟随一起用,若果一起起用会无限stop-follow-stop-follow-stop-follow-stop-follow-

w021600118 发表于 2023-8-27 22:52:04

本帖最后由 w021600118 于 2023-8-27 11:01 PM 编辑

兄弟,感谢。请问全一点的函数手册哪里可以下载啊
页: [1]
查看完整版本: 请教 关于跟随距离的控制