guolimiao 发表于 2014-1-21 13:24:59

【教程】【GC七段】【每周经验讲座】第二期!

本帖最后由 托托 于 2015-11-10 19:59 编辑

迟到的第二期

   欢迎大家投稿,如果有好的经验、窍门、小贴士,先**求助区的版主,我们会安排好时间发帖并编辑。!

                     本期投稿作者:guolimiao 郭大侠!


正文:

   在大家制作脚本的时候,经常会遇到一个问题。我们在跑位的时候不小心打断了自己的引导技能,浪费很多DPS。比如武僧的怒雷破,暗牧SS的大量引导技能等等。
    今天和大家分享一个脚本片段。目的就是为了避免这种情况。原理是当玩家站定以后在释放这些技能,移动过程中不释放。

首先解释下amgv和amsv 两个函数 amsv是为一个变量赋值,我这里是将“站住”这个变量赋值为一个布尔类型的值,即true和false。然后用amgv 获取“站住”这个变量的值。


片段1:定义部分
if GetUnitSpeed("player") > 0 then      moving_time = nil
      amsv("站住",false)
elseif mg_moving_time then
    if GetTime() - moving_time > 0.4 then
      amsv("站住",true)
      moving_time = nil
    end
elseif GetUnitSpeed("player") == 0 then
      moving_time = GetTime()
end

片段1:这里我们判断,如果玩家在移动,那么“站住”这个变量的值为flase 。如果玩家移动速度为0,即已经停止移动,并且停止移动后持续时间超过0.4秒了,就为“站住”变量赋值为true.

片段2:引用部分
ifamisr("怒雷破","target") and amgv("站住") then
   amrun("怒雷破","target")
   return;
end

片段2:amgv函数获取“站住”变量的值如果为true 那么就开始释放怒雷破,或者**技能了。

这样就达成了我们之前的目标了。


至于别的效果,可以参考【求助交流区】的函数帖进行开发。
   在YJ上使用AM函数的使用方法 http://www.luacn.net/thread-2727-1-1.html
   


本帖属于luacn论坛资源,**论坛如有转载请**管理员和作者。





dotaking 发表于 2014-4-27 12:13:26

大神就是大神。。。。救场的都这么高端。。唉。自愧不如

guanheng 发表于 2014-5-13 12:14:59

太牛B了新手前来膜拜

丝爷 发表于 2014-3-31 13:47:14

第二期个人看的有点难~:L:L,不太懂

anyoer* 发表于 2014-1-21 14:05:34

第二期因为某些原因,推迟了一下。感谢guolimiao郭大侠临危救场,同时欢迎大家投稿。!

.忽忽`~`* 发表于 2014-1-21 15:47:25

:$:$:$:$:$:$:$沙发,,不错不错,学习

迷____惑 发表于 2014-1-21 17:48:56

板凳啊 来学习学习啊

老血 发表于 2014-1-21 18:12:48

威武霸气!以后可以出合订本了~

日后再说 发表于 2014-1-21 22:31:04

老血 发表于 2014-1-21 18:12 static/image/common/back.gif
威武霸气!以后可以出合订本了~

血总。。你的勋章太多了

迷惘的风 发表于 2014-1-22 19:07:46

要支持~~~先回在学!

龙套哥 发表于 2014-2-9 21:29:02

这个挺好的 能不能请教一下盗贼判定背后技能的函数呢 yj里边面对目标那个老出错

空警 发表于 2014-2-21 22:24:11

再次感谢楼主的无私奉献

叶子猪猪 发表于 2014-3-26 11:47:30

新手学习中,还不太懂{:5_169:}
页: [1] 2
查看完整版本: 【教程】【GC七段】【每周经验讲座】第二期!