求教多目标脚本怎么写才不卡
背景:之前想更新一下鸟德方案,因为读条职业判断效率不高,就用脚本写咯,附件里单目标写好了,符合simc值。(不用脚本的话打不到模拟值,会差一点……)
问题是:
现在多目标或AOE 脚本判断不知道怎么写,执行print就不卡,一加入amrun运行起来就整个游戏卡爆了(如下图),
听说FHenemiesTable能解决敌对目标就不卡了,但是不会写,不懂这些感觉完全无力,丢出来看谁能帮帮忙咯~?
而且友方目标怎么办呢,很多技能判断起来要比绿字的复杂好多还是脚本可以自定义好使,GC内置的绿字执行函数我找了几个都运行无效好奇怪(例如对没DOT的放技能)。
留个小福利
本帖最后由 二氧六环 于 2015-8-10 11:28 编辑
试试FHenemiesTable
代码如下:
for i=1,#FHenemiesTable do
local para = FHenemiesTable.unit;
local spell = "月火术";
if UnitCanAttack("player",para)
and UnitTarget("player")~= para
and FHObjectDistance("player",thisUnit) <= 30
and UnitHealth(para) / UnitHealthMax(para)>0.2
and amaura(spell, para,0,2)<60
then
--print(UnitName(units,i));
amrun(spell, para)
end
end注意,需要设置下施法范围,超过30码不做处理。但是FHenemiesTable 只判定在战斗中的目标,但是依然有卡顿想象,测试后发现数据量惊人。
有原材料,那么我们就自己定义一个表,直接使用。
如:
代码如下:
localcount = ObjectCount()
for i = 1, count do
local obj = ObjectWithIndex(i)
if ObjectIsType(obj, ObjectTypes.Unit)
and ObjectExists(obj)
and UnitHealth(obj) > 1
and (UnitCanAttack(obj,"player") or UnitCanAttack("player", obj))
then
local dis = 30;
local x1,y1,z1 = ObjectPosition(obj)
local x2,y2,z2 = ObjectPosition("player")
local mathDIS =math.sqrt(((x2-x1)^2)+((y2-y1)^2)+((z2-z1)^2))
if mathDIS<dis
and amaura("月火术", obj,0,2)<60
and UnitHealth(obj) / UnitHealthMax(obj)>0.2
then
amrun("月火术", obj)
end
end
end经测试,在影月谷 A大象,最多18只,不卡顿。
可以参考打tt的教程。代码实现如下:
for i=1,#enemiesTable do --bb和gh版本 gc你可以换成gc的目标引擎表名
local tg1 = enemiesTable.unit
if tg1没有xxbuff and tg1 在施法距离内 and tg1是敌对目标 and tg1 不是死亡的 ... then
amrun(xxx技能,tg1)
end
end
或者直接用fh自带api的objectmanager,用objectcount(i)实现,但是这个要加type判定 丁丁 发表于 2015-8-7 10:34
谢谢~ 那这个咧?用这个怎么写?因为还想获得友方目标的
——"fh自带api的objectmanager,用objectcount ...
那个table最早是包括友方和中立生物的,gc的可能去掉了。团队里的人可以循环raid1到raid40,用法类似,raid..i就行。
objectmanager你可以参考fh lua区的东西,不过用多了会严重掉贞 好图,钻研了半天也没发现** 龙套哥 发表于 2015-8-7 09:48
可以参考打tt的教程。代码实现如下:
for i=1,#enemiesTable do --bb和gh版本 gc你可以换成gc的目标引擎表 ...
谢谢~ 那这个咧?用这个怎么写?因为还想获得友方目标的
——"fh自带api的objectmanager,用objectcount(i)实现" 挂DOT和斩杀的函数好像要切换目标,多目标的话会不停切目标,我昨天试了一下,我就直接卡掉线了.... 陈·风暴烈酒 发表于 2015-8-7 13:36
挂DOT和斩杀的函数好像要切换目标,多目标的话会不停切目标,我昨天试了一下,我就直接卡掉线了....
dot不用,斩杀要切目标 龙套哥 发表于 2015-8-7 15:25
dot不用,斩杀要切目标
函数会自动切到符合条件的目标身上放技能再切回来,目标多的时候就会卡,还会掉线 追悼者 发表于 2015-8-7 10:59
用MS就很好获取,敌对及友方目标。
看了7.0预告后… 完全没动力了 丁丁 发表于 2015-8-7 18:44
看了7.0预告后… 完全没动力了
7.0是明年上半年的事了
页:
[1]
2