魔兽地图编辑器吧 关注:64,424贴子:3,828,891
  • 13回复贴,共1

如何用T捕捉直线型技能的打击范围(仅提供思路)

只看楼主收藏回复

一楼防


IP属地:上海1楼2008-05-23 20:13回复
    由于最近看到有关震荡波伤害为英雄属性乘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小于震荡波的一般宽度
    三条件同时成立,那么让魔法施放者对选取的单位进行伤害。
    具体怎么做不高兴贴触发出来了,只要理解这个原理是不难做的。运用这个原理不仅能够捕捉震荡波等直线型技能的打击范围,也可以捕捉其他矩形范围技能的范围。
    只是一点个人思路,如果大家有更好的思路,欢迎大家提出。


    IP属地:上海2楼2008-05-23 20:37
    回复
      图小了点,放张大


      IP属地:上海3楼2008-05-23 20:37
      回复
        沙发~~


        IP属地:福建4楼2008-05-24 06:55
        回复
          不错的思路
          貌似吧里的人没有研究算法的
          但是震荡波不是一瞬间对所有单位造成伤害,而是随时间对不同区域造成伤害,所以因该用矩形的叠


          5楼2008-05-24 21:15
          回复
            • 218.1.146.*
            5楼说得没错,如果震荡波的波速慢用这个方法确实很容易穿梆。
            我想知道矩形叠加的触发如何写?
            是否可以用此方法连续捕捉各个矩形?但是如果是这样的话用T很容易引发冲突


            6楼2008-05-24 21:22
            回复
              个人意见:用辅助单位模拟投射物,用计时器移动辅助单位,并以辅助单位为中心捕捉矩形


              7楼2008-05-24 21:59
              回复
                • 211.136.23.*
                那就不用捕捉矩形,设震荡波宽度为h,投射物傀儡移动速度为v,命令投射物向前移动,每隔h/v秒对圆心为投射物,半径为h圆内单位进行一次判定.
                为了避免多次伤害,建立一个豁免单位组,伤害一个单位后将其添加进豁免单位组,技能效果完毕后再清空单位组.
                飞鸟阿苏


                8楼2008-05-24 22:38
                回复
                  • 218.1.146.*
                  连续圆形会形成糖葫芦状,会有在打击范围内的单位被遗漏


                  9楼2008-05-24 22:56
                  回复
                    • 211.136.23.*
                    那就每隔h/10v秒判定一次,因为投射物速度一般较快,能作到尽量平滑.


                    10楼2008-05-24 23:23
                    回复
                      直接按我那个帖子里的思路 就好了..
                      省得你们这么麻烦...

                      创建单位 命令单位移动 或者触发移动.
                      给单位加个献祭..


                      IP属地:福建11楼2008-05-25 00:46
                      回复
                        那要是以属性计算伤害的技能呢?


                        12楼2008-05-25 18:13
                        回复
                          那就必须用到触发了!
                          命令X单位对Y单位造成X单位的力量点数*2点的魔法伤害.


                          13楼2008-05-25 18:18
                          回复
                            这个里面讲的就是用触发伤害...


                            IP属地:福建14楼2008-05-25 20:25
                            回复