LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 421|回复: 11

AM脚本共性问题求助

[复制链接]
发表于 2023-3-17 10:19:39 | 显示全部楼层 |阅读模式
本帖最后由 水墨五彩 于 2023-3-17 10:22 AM 编辑

纯新人。
陆陆续续也拿到了一些AM的脚本,包括某天价脚本。其实大同小异,绝大部分都是拿某大佬的PVP脚本修改的。
自己修改后总体有所优化,但是还发现一些问题。
测试下来有几个共性问题,求大佬解惑提供思路。
1、连续上触
木桩测试阶段发现经常出现连续两次上触的情况。
    if BeeTargetDeBuffTime("吸血鬼之触")>12 and BeeUnitCastSpellName("player")=="吸血鬼之触" then
        BeeRun("/stopcasting");


分析这段代码后我认为可能是在高急速下触的时间小于12秒,导致stopcasting的条件不满足进而连续上触。将12修改为9(其实就是一个常规状态不可能达到的急速条件)后木桩测试连续上触的情况解决。但团本中表现为一个循环打完会发呆。改为9大约发呆1秒,数字越小发呆越久。
raid期间疯狂上触,原因未知。怀疑跟疫病的情况一样。

2、连续上疫病。
分析代码尚未找到原因
    if BeeTargetDeBuffTime("噬灵疫病")<=1 and not BeeUnitCastSpellName("player") then
        BeeRun("/cast 噬灵疫病","target")

不是上两个那么单纯,就是连续上,狂上。
目前怀疑是否团队状态下目标DEBUFF过多,导致无法读取到。

其他情况。
测试环境有限。总体感觉是只有1个AM的情况下表现相对正常。有两个以上AM的情况下各种出错。

求各位大佬解惑或提供思路。
全本输出模块如下:

     if (BeeUnitHealth("player","%")>20 and (BeeTargetDeBuffTime("暗言术:痛")>0 and BeeTargetDeBuffTime("噬灵疫病")>0 and GetUnitSpeed("player")>0)) and BeeSpellCoolDown("暗言术:灭")==0 then
    BeeRun("/cast 暗言术:灭")
    return true;
    end
     if BeeTargetDeBuffTime("噬灵疫病")<=1 and not BeeUnitCastSpellName("player") then
        BeeRun("/cast 噬灵疫病","target")
        return true;
    end
    if BeeTargetDeBuffTime("暗言术:痛")<=1 and not BeeUnitCastSpellName("player") then
        BeeRun("/cast 暗言术:痛","target")
        return true;
    end
    if BeeTargetDeBuffTime("吸血鬼之触")<2 and not BeeUnitCastSpellName("player") then
        BeeRun("/use 10");
        BeeRun("/cast 吸血鬼之触","target");
        BeeUnitCastSpellDelay("吸血鬼之触",0.9);
        return true;
    end
    if BeeTargetDeBuffTime("吸血鬼之触")>12 and BeeUnitCastSpellName("player")=="吸血鬼之触" then
        BeeRun("/stopcasting");
        return;
    end
    if BeeSpellCoolDown("心灵震爆")==0 and BeeTargetDeBuffTime("暗言术:痛")>0 and BeeTargetDeBuffTime("噬灵疫病")>0 and BeeTargetDeBuffTime("吸血鬼之触")>0 and not BeeUnitCastSpellName("player") then
        BeeRun("/cast 心灵震爆")
        return true;
    end
    if not BeeStringFind("精神鞭笞",Tbl) and BeeTargetDeBuffTime("暗言术:痛")>0 and BeeTargetDeBuffTime("噬灵疫病")>0 and BeeTargetDeBuffTime("吸血鬼之触")>0 and (BeeSpellCD("心灵震爆")>0 or BeeUnitHealth("target","%")<1) then
        BeeRun("/cast 精神鞭笞","target")
        return true;
    end
end

回复

使用道具 举报

 楼主| 发表于 2023-3-17 17:21:42 | 显示全部楼层
vshrd 发表于 2023-3-17 01:36 PM
技能连读的问题说过很多次了
自己做逻辑过程去实现一个暂时的黑名单功能
不要用魔蜂的延迟释放

加入BeeUnitCastSpellDelay后连续两个触的问题得到解决。
团队状态下变成疯狂上痛

目前测试下来出问题的场合都是团队中有两个以上AM的情况。
回复 支持 0 反对 1

使用道具 举报

发表于 2023-3-17 13:36:37 | 显示全部楼层
技能连读的问题说过很多次了
自己做逻辑过程去实现一个暂时的黑名单功能
不要用魔蜂的延迟释放
第二个问题= =也是一样
自己去用官方函数重新写函数过程

另外这输出逻辑确实写得不怎么样= =
回复 支持 反对

使用道具 举报

发表于 2023-3-17 20:43:23 来自手机 | 显示全部楼层
这个很复杂,会的大佬估计都藏着。,。
回复 支持 反对

使用道具 举报

发表于 2023-3-18 00:02:15 | 显示全部楼层
我是没玩过AM  不过你瞬发法术为啥总判断正在施放的法术名字呢?
回复 支持 反对

使用道具 举报

发表于 2023-3-19 09:38:41 来自手机 | 显示全部楼层
所有职业低于读条时间接近公cd切用目标debuff作为判定条件的 都会出现连读情况  可以使用序列施法宏 接下一个需要施放的技能解决
回复 支持 反对

使用道具 举报

发表于 2023-3-19 09:44:05 来自手机 | 显示全部楼层
BeeTargetDeBuffTime  这个函数按道理说不判定debuff归属  我担心有其他同职业时 不会放技能  另外如果是团队唯一的debuff 建议使用读取技能列表函数 作为判定条件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-23 10:32:11 | 显示全部楼层
一壶漂泊 发表于 2023-3-19 09:44 AM
BeeTargetDeBuffTime  这个函数按道理说不判定debuff归属  我担心有其他同职业时 不会放技能  另外如果是团 ...

感谢大佬解惑。感谢感谢
回复 支持 反对

使用道具 举报

发表于 2023-3-25 21:45:05 | 显示全部楼层

ZSBDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
回复 支持 反对

使用道具 举报

发表于 2023-3-28 23:18:19 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2026-10-10 10:06 AM , Processed in 0.111911 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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