LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 18229|回复: 16

[综合] 【教程】【GC六段】 我知道你们想要这个---AOE最优位置选取(测试测试)

[复制链接]
发表于 2015-7-23 07:35:12 | 显示全部楼层 |阅读模式
本帖最后由 托托 于 2016-2-5 20:47 编辑

新鲜出炉 欢迎测试反馈问题 后续会维护

才做出1分钟,早上有事 先放出来大家试用下!!!

面对怪群,如何让AOE技能得到最大收益(A到最多的怪),就是这个函数的作用

算法:枚举两个点,确定过这两个点的两个圆的的圆心,循环N个点看有多少个点在这个圆里

时间复杂度:O(n^3)


使用方法:
1.用记事本打开Interface\AddOns\GC\wowamfunctions.lua

2.翻到最后另起一行

3.粘贴

4.MY_AUTOCastAOE(SpellName,RANGE,r)  SpellName=技能名  RANGE=技能施放距离 r=技能半径
   
如MY_AUTOCastAOE("圣光之锤",30,10)

  1. function dis(x1,y1,x2,y2)
  2.         return math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
  3. end

  4. function center(x1,y1,x2,y2,r,tar)
  5.         local px,py;
  6.         px=x1-x2;
  7.         py=y1-y2;
  8.         local midx,midy;
  9.         midx=(x1+x2)/2.0;
  10.         midy=(y1+y2)/2.0;
  11.         local d=dis(midx,midy,x1,y1);
  12.         local gao=math.sqrt(r*r-d*d);
  13.         if (math.abs(py)<1e-8) then
  14.                 if (tar) then
  15.                         return midx,midy+gao
  16.                         
  17.                 else
  18.                         return midx,midy-gao
  19.                 end
  20.         else
  21.                 local jiao=math.atan(-px/py);
  22.                 if (tar) then
  23.                         return midx+gao*math.cos(jiao),midy+gao*math.sin(jiao)
  24.                 else
  25.                         return midx-gao*math.cos(jiao),midy-gao*math.sin(jiao)
  26.                 end
  27.         end
  28. end

  29. function check(rx,ry,r,Table)
  30.         local ans=0;
  31.         for i=1,#Table do
  32.         if (dis(rx,ry,Table[i].x,Table[i].y)<r+.001) then        ans=ans+1 end
  33.         end
  34.         return ans
  35. end

  36. function MY_GetAOEPosition(r,Table)
  37. local ans=1;
  38. local rex,rey;
  39. for i=1,#Table do
  40.         for j=i+1,#Table do
  41.                 if (dis(Table[i].x,Table[i].y,Table[j].x,Table[j].y)>r*2) then break end
  42.                 local rx,ry=center(Table[i].x,Table[i].y,Table[j].x,Table[j].y,r,true);
  43.                 local tt=check(rx,ry,r,Table);
  44.                 if (tt>ans) then ans=tt rex=rx rey=ry end
  45.                 if (ans>=#Table) then break end
  46.         end
  47. end
  48. return rex,rey
  49. end

  50. function MY_AUTOCastAOE(SpellName,RANGE,r)
  51. local PointTable={}
  52. for i = 1, #FHenemiesTable do
  53.         local thisUnit = FHenemiesTable[i].unit
  54.         if FHObjectDistance("player",thisUnit)<RANGE then
  55.         local x,y,_=ObjectPosition(thisUnit)
  56.         table.insert(PointTable,{x=x,y=y})
  57.         end
  58. end
  59. local _,_,_,_,_,_,spellID = GetSpellInfo(SpellName)
  60. local X,Y,_=MY_GetAOEPosition(r,PointTable)
  61. local _,_,Z=ObjectPosition("player")
  62. if X~=nil and Y~=nil and Z~=nil and amSpellCooldown(spellID) == 0  then
  63.         CastSpellByName(SpellName,"player");
  64.         if IsAoEPending() then
  65.                 ClickPosition(X,Y,Z,true);
  66.                 return true;
  67.         end
  68. end
  69. return false;
  70. end
复制代码









评分

参与人数 1伸手费 +300 收起 理由
老血 + 300

查看全部评分

回复

使用道具 举报

发表于 2015-7-23 10:33:26 | 显示全部楼层
你这个问题已经被发现了,目前最新版本115.3 ,在判断自身或者目标周围有多少怪的时候(FH功能),是不带模型的,所以当有很大模型的怪的时候(例如:AK),会出现无法正确判断的情况,一般性测试的时候,都是以木柱为测试目标,木柱的模型很小,这也就是这个函数目前错误的情况,这个已经被我提交给蛙大,已经测试成功。
回复 支持 反对

使用道具 举报

发表于 2015-7-23 13:31:21 | 显示全部楼层
赞 羡慕搞得懂LUA的 我看了就睡着…我也想学的…
小提问
可不可以限定判断目标的移动速度是≤30的,你懂的…圈一放就尼玛跑走了。
还有目标存活时间函数msGTTD? (get target time to die) 有的AOE是慢慢A的
可以过滤掉被玩家法术控制的吗?过滤掉身上有无敌免疫伤害的怪呢?破羊或者AOE都A到副本里无敌的adds上。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-23 14:38:32 | 显示全部楼层
丁丁 发表于 2015-7-23 13:31
赞 羡慕搞得懂LUA的 我看了就睡着…我也想学的…
小提问
可不可以限定判断目标的移动速度是≤30的,你懂 ...

额,目前这个部分不包含是否Aoe的判断,而是Aoe的一个动作,不过关于排除非战斗目标和防破控倒是可以加入,感谢的你建议
回复 支持 反对

使用道具 举报

发表于 2015-7-23 08:07:15 来自手机 | 显示全部楼层
楼主的钻研精神赞一个
回复 支持 反对

使用道具 举报

发表于 2015-7-23 08:10:12 | 显示全部楼层
屌屌屌屌!!!!
强烈好评。推荐加精
回复 支持 反对

使用道具 举报

发表于 2015-7-23 08:14:22 | 显示全部楼层
貌似蛮强力的。
回复 支持 反对

使用道具 举报

发表于 2015-7-23 08:49:40 | 显示全部楼层
厉害~大清早的就写帖子,也是蛮拼的!五星好评~
回复 支持 反对

使用道具 举报

发表于 2015-7-23 09:17:42 | 显示全部楼层
好棒!!
回复 支持 反对

使用道具 举报

发表于 2015-7-23 09:54:24 | 显示全部楼层
牛逼啊,赞
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:19 AM , Processed in 0.069869 second(s), 37 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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