• 如何简化你的宏
    时间:2008-10-22   作者:佚名   出处:互联网

    虽然以上介绍让我们了解道宏可以完成非常强大的功能,但暴雪实在太小气了,仅仅只给我们255个字符来编写宏的内容,假如你的宏的功能比较罗嗦,那就很麻烦了,所以以下我介绍一下一些简化宏的小技巧:

    1、定义全局变量
    看完之前Lua介绍的人该都知道把,在Lua里,所有的变量都是全局变量,也就是说任何一个变量只要你在开始游戏后做过定义,那么到游戏结束时只要你不重新定义他都是有效的。但为了不让我们自己不混淆做全局用的变量和局部使用的变量,我们可以采用大小写区分的办法,即大写一律做为全局变量使用,小写都用局部变量。
    这样,我们可以在一个宏里把自己常用的魔法/技能都定义成变量来表示,比如我是个术士,就可以这样:
    F="腐蚀术(等级 3)"    X="献祭(等级 3)".......
    之后,我们要使用这样魔法的时候,只要直接用F或X来代替就可以了,连""都可以省掉,是不是很方便呢~
    或者还可以把一些常见的API函数变量也自己定义:
    T="target" P="player".....
    使用的时候和上面一样。

    2、自定义函数
    说实在话,魔兽的有些函数实在长的过头,很多时候珍贵的字节都给函数占去了。所以必要的时候我们就得用自定义函数的方法去简化这些函数。
    自定义函数的语句为:
    function 函数名称(函数变量1、函数变量2....) return 函数返回值 end
    比如,使用法术的这个函数是CastByName(),我们可以在宏里这样写:
    /scirpt function C(a) CastByName(a) end
    运行后,我们其他宏使用法术就只要直接用C()就可以了,是不是很方便呢?
    或是说话的函数:
    /script function S(a) SendChatMessage(a,"SAY") end
    之后你要控制人物说话就用S()就可以了。

    如果是有返回值的函数:
    /script
    function N(a)
    return UNitName(a)        --return之后就是表示函数的返回值,但return必须在end前面.
    end
    如果以后你要调用目标的名字,直接用 x=N("target"),如果按前面第一点定义了全局变量的话,更简单x=N(T)。

    这样,我们就可以把重要的字节都用在宏的判断内容上,而不是沉长的函数上了。如果你还有什么更好的简化方法,可以跟贴哦。

    网友留言/评论

    我要留言/评论