魔兽地图编辑器吧 关注:64,939贴子:3,835,111
  • 80回复贴,共1

完美模拟光环技能

只看楼主收藏回复

支持高等级覆盖低等级,支持技能重修书,和原版魔兽光环技能一样。例子是学习的技能光环,物品光环应该也可以。光环的消退时间设置的是2.8秒,看得懂JASS的可以自己改。
本人学习JASS也不是很长时间,可能有些地方有错误,也不知道有前辈写过这类技能没,自己捣鼓了一天写出来的,征求下大神意见,也分享下。
本来想照顾下不用JASS的,但
自定义代码:call AuraTrigger(unit u, real radius, integer abilcode, integer Auracode) 这句用YDWE不会写,不知道技能转局域整数的方法,哪位大神可以帮忙把LearnSkill这个触发改成YDWE照顾下非JASS。
本人测试没发现bug,library里面的主要是写的是光环的效果function,没有写备注。
AuraTrigger()功能uint u拥有光环技能的单位,real radius光环的作用范围,这里不支持随等级改变,但也可以写出随等级改变,太麻烦就没加这个功能。integer abilcode光环的效果技能,如果是重击光环,就是你设置的重击技能。integer Auracode是光环技能模版,我用的效果为0的光环技能做的模版。
abilcode和Auracode的技能等级最好设置成一样,支持任意等级的光环。光环的作用对象在library里面改,没有把作用对象单独写一个function。
原理:设置个和光环作用范围内的单位一一变量,用的哈希表。变量每0.1秒循环:变量+1,2.8秒后减1。如果变量为0就删除光环效果技能。解释起来好麻烦,大家看不懂或觉得哪里可以改进的欢迎提出
一楼发度盘连接删我帖子,二楼发链接。


1楼2016-08-15 17:46回复
    有T版的么?


    3楼2016-08-15 17:49
    收起回复
      就是……群体加buff图标用的?


      IP属地:上海来自Android客户端4楼2016-08-15 17:53
      收起回复
        也支持 两个单位拥有不同等级的同技能光环,高等级的走开后,将受到低等级的光环效果。
        有一个效果不支持,就是一个单位拥有高等级光环效果,离开高等级光环范围后在2.8秒的光环消退时间内,他移动到低等级的光环效果内,此时他还是高等级光环效果,2.8秒过后他才会受到低等级光环效果,但是,如果他在消退时间的2秒离开了低等级光环范围,那他会在2秒后失去高等级光环效果,不会在2.8-2.0的时间内受到一会低等级光环效果,这个效果也可以写出来,但每个技能等级的效果都要分开处理了,特别麻烦,就不支持了...


        6楼2016-08-15 18:00
        回复
          跳劈光环?


          IP属地:内蒙古来自Android客户端7楼2016-08-15 20:07
          收起回复


            IP属地:海南来自Android客户端9楼2016-08-15 20:15
            收起回复
              连接一直被吞..


              14楼2016-08-15 20:48
              回复
                /s/1mhYsqMW


                15楼2016-08-15 20:49
                收起回复
                  第2行,每个光环技能都必须新建格独立的hash表。
                  第6行,条件,学习的技能是什么,学习的等级最好为1,不是1的话,每次学技能都要触发一次,没影响,但耗内存。
                  第10行,设置u为触发单位
                  第11行,设置光环作用范围
                  第12行,技能的效果技能,暴击光环的就是你设置的暴击技能,重击光环就是你设置的重击技能。
                  第13行,光环的技能模版,这里我用的0效果光环技能,主要是我不想模拟光环buff,你也可以用通魔技能,只要是0效果被动技能都没关系。如果你要做多个光环技能,只需要将其中一个模版无限复制就行了,都不冲突。
                  如果你要做两个护甲光环,一个+3,1个+5.
                  你只需要将第12行和13行改一下就可以了。
                  任意光环模板,一个护甲技能
                  光环模板 +3 的代码为A000的话 你复制下,改成+5的技能说明, 代码为A001
                  护甲技能 +3 的代码为A002的话 你复制下,改成+5的技能数据,代码为A002
                  然后把12行和13一换就可以了
                  第14行 是哈希保存哈希,每个光环必须要一个独立的hash,例子的是重击光环,设置的hash为zhongji.如果你再要弄中重击光环,你必须再设个hash,如zhongji1,就是最上面的hashtable zhongji1 = InitHashtable.这两个重击光环可以叠加。
                  第15行 主要内容,只要将上面的那些变量代进去就行了,好像必须是局域变量,全局有问题。本来是准备写成T,让非JASS人员可以套用,但是总会出些问题,所以就对不起了。


                  17楼2016-08-15 20:52
                  收起回复
                    我记得不少人写过


                    IP属地:上海来自Android客户端19楼2016-08-15 21:37
                    收起回复
                      T写也很简单,一个核心计时器运行一个核心单位组,把实数法目标添加进单位组,执行动作后移除出单位
                      所有动作都交给一个主要计时器完成,这样避免单位组选取频率过高而导致卡顿


                      IP属地:广西20楼2016-08-16 10:44
                      收起回复
                        21楼2016-08-16 12:03
                        收起回复