由于最近看到有关震荡波伤害为英雄属性乘3那个帖子,故在此提供一下本人思路,希望对大家有所帮助。
见图:红点为震荡波施放者位置,设为O,两个绿点分别为打击范围内的目标A和B,黑点P为技能施放点,橙色矩形为震荡波的打击范围。
首先要选取一个比大家范围稍大一点的范围,即蓝色圆圈部分。这个圆圈的大小完全可以自定,如果用全地图范围亦可,但是考虑到环保问题,圆圈越小越好。
选取圆圈内的所有敌方单位,然后对选取的单位的位置做逐一判定。判定就是要将在圆圈内部但是在矩形之外的单位剔除。
首先要确定目标单位到英雄与技能施放点到英雄之间的夹角a(应该是罗马字母,不过百度不让打),编辑器中语句为绝对值(A至O的角度-P至O的角度),编辑器的判定为正东方向为0度,因此A至O的角度小于P至O的角度,加上绝对值是为了不让夹角成负。而后进行夹角判定。夹角应大于等于0度小于等于90度,这个判定的实际意义就是确定目标单位在英雄的“正面”。
而后进行距离判定。我们需要算出A在横轴和纵轴上的投影长度即CO和DO的距离DO=AO*sin a, CO=AO*cos a,而后对DO和CO的长度做判定,如果CO距离小于震荡波的长度,同时DO小于震荡波的一半宽度,则可判定A点在这个矩形范围之内。而B点也是同样的道理。
完整的编辑器语句应该是选取圆圈范围内的所有敌放单位,如果单位的位置符合条件:
角a的绝对值在0到90度之间
CO小于震荡波的长度
DO小于震荡波的一般宽度
三条件同时成立,那么让魔法施放者对选取的单位进行伤害。
具体怎么做不高兴贴触发出来了,只要理解这个原理是不难做的。运用这个原理不仅能够捕捉震荡波等直线型技能的打击范围,也可以捕捉其他矩形范围技能的范围。
只是一点个人思路,如果大家有更好的思路,欢迎大家提出。
见图:红点为震荡波施放者位置,设为O,两个绿点分别为打击范围内的目标A和B,黑点P为技能施放点,橙色矩形为震荡波的打击范围。
首先要选取一个比大家范围稍大一点的范围,即蓝色圆圈部分。这个圆圈的大小完全可以自定,如果用全地图范围亦可,但是考虑到环保问题,圆圈越小越好。
选取圆圈内的所有敌方单位,然后对选取的单位的位置做逐一判定。判定就是要将在圆圈内部但是在矩形之外的单位剔除。
首先要确定目标单位到英雄与技能施放点到英雄之间的夹角a(应该是罗马字母,不过百度不让打),编辑器中语句为绝对值(A至O的角度-P至O的角度),编辑器的判定为正东方向为0度,因此A至O的角度小于P至O的角度,加上绝对值是为了不让夹角成负。而后进行夹角判定。夹角应大于等于0度小于等于90度,这个判定的实际意义就是确定目标单位在英雄的“正面”。
而后进行距离判定。我们需要算出A在横轴和纵轴上的投影长度即CO和DO的距离DO=AO*sin a, CO=AO*cos a,而后对DO和CO的长度做判定,如果CO距离小于震荡波的长度,同时DO小于震荡波的一半宽度,则可判定A点在这个矩形范围之内。而B点也是同样的道理。
完整的编辑器语句应该是选取圆圈范围内的所有敌放单位,如果单位的位置符合条件:
角a的绝对值在0到90度之间
CO小于震荡波的长度
DO小于震荡波的一般宽度
三条件同时成立,那么让魔法施放者对选取的单位进行伤害。
具体怎么做不高兴贴触发出来了,只要理解这个原理是不难做的。运用这个原理不仅能够捕捉震荡波等直线型技能的打击范围,也可以捕捉其他矩形范围技能的范围。
只是一点个人思路,如果大家有更好的思路,欢迎大家提出。