魔兽宏吧 关注:8,765贴子:57,154

宏命令的完全指南[转自NGA]

只看楼主收藏回复

1L摆渡


IP属地:河南1楼2008-09-25 13:47回复
    vi. 潜行(stealth)......................................................................................................17 
    vii. 功能键状态(modifier:shift/ctrl/alt)..................................................................17 
    viii. 功能键变量....................................................................................................18 
    ix. 点击状态(button:1/2/…/5/<虚拟按键号>)......................................................18 
    x. 装备(equipped:<物品类型>).............................................................................18 
    xi. 引导中(channeling:<技能名称>).....................................................................18 
    xii. 技能条(actionbar:1/…/6).................................................................................19 
    xiii. 宠物(pet:<宠物名称或类型>).......................................................................19 
    xiv. 战斗(combat)..................................................................................................19 
    xv. 行动方式、室内外状态(mounted, swimming, flying, indoors & outdoors)..19 
    xvi. 允许飞行 (flyable).........................................................................................19 
    xvii. 小队/团队队友(party/raid)............................................................................19 
    xviii. 在小队/团队中(group:party/raid).................................................................19 
    6. 命令条件语的应用....................................................................................................19 
    i. 设置焦点(focus).................................................................................................19 
    ii. 用/click进行分支判定......................................................................................20 
    三、 附录...............................................................................................................................22 
    1. 自定义图标................................................................................................................22 
    2. 宏的移植....................................................................................................................22 
    3. 更多信息....................................................................................................................22 
    4. 鸣谢............................................................................................................................22 
    5. 译者注........................................................................................................................22 



    一、 基本宏命令 


    1. 什么是宏? 

    宏是由一组宏命令组成的。以下是一些普通宏命令: 


    .. /say (/s) 


    .. /whisper(/w, /talk, /t) 


    .. /emote(/e, /em, /me) 


    .. /dance 


    .. 喜爱PVP的人,应该不会忘了这个:/spit 




    利用宏,我们可以把这些宏命令放到技能栏上点击使用,而且可以同时做多个动作。 
    写宏的时候,每条动作写在一行上,就像在聊天界面中输入的一样。比如,让你的角色 
    喊一声“Everybody, dance now!”然后开始跳舞的宏: 
    /y Everybody, dance now!


    IP属地:河南4楼2008-09-25 13:47
    回复
      广告
      立即查看
      以解除这个状态,就可以解决后续技能不能释放的问题。但是由于技能是瞬发, 
      /stopcasting实际上并不能取消技能的施放。 

      而现在这里可以不用/stopcasting了,例如: 

      /use 短暂能量护符 

      /cast 奥术强化 

      //stopcasting 

      /cast 气定神闲 

      //stopcasting 

      /cast 炎爆术 


      6. 选择目标 

      选择目标是宏的另一个主要作用。此类功能可以用专门的目标选择命令实现,改变 
      当前的目标;也可以在一些命令中用[target=]命令条件语实现,临时指定施法或使用物品 
      的目标,而不改变当前目标。命令条件语在第二部分将会讲到到。现在我先介绍目标选 
      择命令。 

      最基本的命令是/target,用法如下: 

      /target Cogwheel 

      /target的选择是经过最佳相近匹配的,也就是说,如果我正站在你附近(并且附近 
      没有谁叫Cog的),你执行/target Cog,我就会变成你的当前目标。至于这种机制是利是 
      弊……那就取决于实际情况了,因为这个东东貌似不稳定,有时会得到莫名其妙的结果。 
      比如下面这个宏就可能不是很好用: 

      /target 黑翼法师 

      /cast 痛苦诅咒 

      如果附近没有黑翼法师呢?或许结果就是:选中了团里的某个人,因为他的名字在 
      某种意义上比较相近。虽然你的诅咒不会真对他们放出来,但还是够囧的。另外一个问 
      题是,它可能会选择你身后一个离你100码的单位——根本不是你想选中的那一个…… 
      不过在2.3版之后,增加了一个/targetexact命令,第一个问题得到解决了。 

      除了用人名进行选择之外,还可以通过单位标识符进行选择。单位标识符(Unit ID) 
      是用于标识特定单位的字符串。比如你的当前的目标就可以用“target”来表示,而你自 
      己对应的标识符是“player”,如果你有宠物,那么它的标识符是“pet”。另外,通过在 
      一个正确的标识符后加上target,就可以获取他的目标。如此变态也可以: 

      /target targettargettargettargettargettarget 

      这里是一个可用ID的全表:《单位标识符》。 


      i.其他选择命令 

      以下是其他的目标选择命令: 


      .. /assist 




      不加任何其他参数时效果是选择你目标的目标,如果在其后加上人物名称,那么就 
      会选择对应人物的当前目标。例如: 
      /assist Cogwheel 

      另外,在客户端的界面选项中有一个选项,可以设置用/assist选中一个敌对目标时 
      是否自动进行攻击。 


      .. /cleartarget 




      清除当前目标。 







      .. /targetexact 




      准确选择,如果附近没有单位的名字和给出的参数完全匹配,就不会切换目标。 
      .. /targetlasttarget, /targetlastfriend 和 /targetlastenemy 




      顾名思义,分别用来选择上一个目标、上一个友方目标和上一个敌对目标。如果你 
      之前没有过任何目标,那么这些命令不会产生任何影响。 
      .. /targetenemy 和 /targetfriend 




      选择敌方目标和选择友方目标。这两条命令是按一定顺序循环选择指定类型的目标 
      的,和使用Tab键的效果类似。如果在命令后加上一个1作为参数,那么就会按循环的 
      反方向进行选择。例如: 
      /targetenemy 1 

      效果就和按下Shift+Tab键一样。 

      注:这两个宏命令每个宏中只能用一次。 


      .. /targetparty 和 /targetraid 




      按距离循环选择你附近的小队或团队队友,与/targetenemy类似,也可以用1作为参 
      数改变选择的循环方向。 


      7. 控制宠物 

      之前在讲施放技能的时候提到过,使用/cast命令可以施放宠物的技能。玻璃渣把法 
      师的水宝宝的霜星起名叫“冰冻术”就是为了避免和法师自身的“冰霜新星”技能冲突, 
      从而导致不能在宏内使用。但是有宠物的职业会发现,如果宏只能施放技能的话,甚至 
      还不如宠物技能栏的功能。别急,燃烧的远征中,新增了以下这些宏指令: 


      i./petattack 

      让你的宠物去攻击你的当前目标。当然,在命令后加参数可以指定攻击的对象。


      IP属地:河南6楼2008-09-25 13:48
      回复
        其他按键点击的效果。至于按钮名称可以通过一下方式获知: 


        .. 使用插件。某些插件,比如MoveAnything,提供了查看窗口名称的功能。 


        .. 查看界面的源代码。这一般是非常娴熟非常牛B的插件制作者才能做到的。 


        .. 用这样一个宏获取当前鼠标所指的窗口名称: 




        /run local f=GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end 
        /click可以用于很多用途。比如利用它可以一次执行很多宏。还有,假设你有一个宏 
        太长了,远远超过255字符限制。你就可以把后面写不下的代码写到另一个宏中,而前 
        面那个宏的末尾写上: 

        /click MultiBarRightButton1 

        再把第二个宏拖到那个叫MultiBarRightButton1的栏位中。这样执行第一个宏就相 
        当于执行了所有的宏命令。 

        另外,这个宏还可以用来做一些其他命令没法办到的事。比如前面提到的切换宠物 
        技能自动施放状态的功能,就可以这样解决: 

        /click PetAttackButton5 RightButton 

        这个命令的涵义就是右键单击一下宠物栏上第五个按钮。 

        用于指定按键的参数还可以是LeftButton(左键,默认),MiddleButton(中键),Button4 









        (4号键)和Button5(5号键,职业玩家的鼠标……)。在掌握这些之后,第二部分结尾 
        处还会介绍更复杂的,利用/click产生分支判定效果的例子。 




        10. 进阶:脚本 


        i.脚本有哪些限制? 

        脚本是一个强大的工具,它按照LUA语言的语法执行,利用客户端提供的接口可 
        以产生强大的智能。所以玻璃渣就给它加了限制,防止它被滥用而影响游戏平衡性。我 
        之所以要先讲脚本的限制,为的是让大家对它别抱太大希望。虽然脚本还是很有用,但 
        是不能用来施法、使用物品、改换技能栏或改变当前目标。这些功能只能依靠那些“安 
        全化”的命令来实现。 


        ii.什么是脚本? 

        魔兽世界客户端的用户界面是可以通过LUA脚本控制的。通过/run和/script命令就 
        可以执行脚本(我个人推荐使用/run,节省字符数……)。在命令后面书写脚本内容,中 
        间不能换行。不过一个宏中可以包含多个/run命令。 

        过多关于LUA语言和编程的内容本文就不再赘述。如果你有一定的编程经验,那么 
        就可以访问lua.org学习LUA语言。如果没有什么基础,那么请先看《编程入门》了解一 
        些基本概念。 

        玻璃渣提供了很多API函数(Application Programming Interface),可以在LUA脚本中 
        调用来实现对界面的控制。关于API函数和相关的内容可以看看这篇文章:《界面DIY》 
        (如果你打算花时间好好研究魔兽世界插件的话,WoWWiki是最优选择)。我不可能把 
        所有关于用户界面的细节都讲到,因此我只打算用我最常用的一个宏做例子,简单地讲 
        一下。想了解得可以看上面给出的链接,或者这里:《Mod Author Resources sticky》。 

        下面这个宏是我给出的例子,它会向所有和你目标相同的人发送悄悄话,通知他们 
        改变目标(我的插件CCWarn也是就是基于这段代码的)。这样就可以防止已被羊的人受 
        到攻击。 

        /cast 变形术 

        /run for i=1,GetNumRaidMembers()-1 do local u,t="raid"..i,"target"if UnitIsUnit(u..t,t)then 
        SendChatMessage("Change targets! Trying to sheep...","WHISPER",nil,UnitName(u))end end 

        呃……貌似看起来有些乱……不过没办法……首先,宏是有255字符数限制的,所 
        以常常要用一些不美观的方式去写代码。其次,脚本要写在一行中。这两个条件导致代 
        码的可读性很低。如果把代码单独拿出来美化一下的话,应该是这个样子: 

        for i = 1, GetNumRaidMembers() - 1 do 

         local unit = "raid"..i 

         if UnitIsUnit(unit.."target", "target") then 

        SendChatMessage("Change targets! Trying to sheep...", "WHISPER", nil, UnitName(unit)) 

        end 

        end


        IP属地:河南12楼2008-10-03 12:53
        回复
          还没有正式开始讲,我先用一些现实生活的例子做类比。看不懂不要紧,这只是些概念, 
          技术性的内容后面都还会再提到的。 







          i.条件语语法简介 

          所有的宏命令的基本工作方式是相同的:一个命令,后面带上一个或多个参数(取 
          决于命令的要求,有些甚至不需要任何参数)。看下面这些例子: 

          /cast 猛击 

          \___/ \___/ 

           | | 

           | 参数 

           | 

          命令 

           

          /petattack 

          \_______/ \/ 

           | | 

           | 参数(为空) 

           | 

           命令 

           

          /castsequence reset=target 献祭, 腐蚀术, 痛苦诅咒, 生命虹吸 

          \_________/ \_______________________________________/ 

           | | 

           命令 参数 

          而命令条件语可以通过对一组条件进行的判断来选择命令的实际参数。首先,可以 
          用分号分隔出若干个“若干组条件+参数”这样的子句,逻辑上,分号就相当于高级语 
          言中的else或是elseif。条件的组数不定,也可以没有,同一组条件用一个方括号括在一 
          起。而每组条件中有可以包含多个条件。就像这样: 

          /命令 [一组条件] [另一组条件] 参数1; [又一组条件] 参数2; …… 

          前面的例子已经说明了,宏命令的解释过程是从左至右的。当一组条件被判定成立 
          时,命令就会采用其对应的条件。如果某一个子句中不包含条件,那么就被无条件判定 
          为成立。像/cast XXX这种简单的宏命令就可以理解为一个只有一个子句的宏,而这个子 
          句又不包含条件。而如果一个宏的任何一组条件都不为真,那么它就完全不会执行。 


          ii.条件语法 

          每组条件都是由逗号分隔的一些条件语组成的,各条件不分前后次序。逻辑上, 
          [target=]总是先发生作用,然后其他的条件才进行判定。逗号在这里可以理解为“并且”, 
          也就是说各条件简是逻辑“与”的关系。比如[help, nodead, target=focus]的含义就是:我 
          的焦点是友善的,并且是只活的。 

          注意:条件是对大小写敏感的,如果你把[help]写成了[Help],宏运行时会报错。 

          条件中有组合式的使用方式,比如nodead,同样对于help,你可以用nohelp表示相 
          反的条件。但是nohelp不等于harm:首先,help和harm都要求目标存在才有可能成立; 
          其次,有些目标,比如中立阵营NPC、非战斗宠物或者护送任务NPC等,既不算help, 
          也不算harm。 

          还有些条件可以指定一些特定的参数。比如[stance],姿态,单独使用时表示“在任 
          一姿态中”(显然这对战士来说是废话一句)。如果给它加上参数,就可以指定在某个姿 
          态下,格式是在条件语后写上冒号(:),然后后面写上参数,每个参数间用斜线(/)分 
          隔。综上所述,一个条件语的完整格式如下(<>表示其中的部分是可选的): 

          [<no>condition<:parameter</parameter</parameter<…>>>>] 

          下面举个例子,如果在战斗或防御姿态施放盾击,否则转入防御姿态: 

          /cast [stance:1/2] 盾击; 防御姿态 

          这个宏用伪代码写的话就是: 

          IF 当前在姿态1或姿态2 









           THEN 用盾击 

           ELSE 切换防御姿态 

          注意:“no”前缀是对整个条件和所有参数的修饰,即把原来的真变为假,假变为真。 
          比如[nostance:1/2]表示“不在姿态1也不在姿态2中”。 


          iii.完整的EBNF语法 

          对EBNF规范很熟悉的人,以上内容可以概括为: 

          command = "/", command-verb, [ {command-object, ";" } command-object] ] 

          command-verb = ? any secure command word ? 

          command-object = { condition } parameters 

          parameters = ? anything which may be passed to the command word ? 

          condition = "[" condition-phrase { "," condition-phrase } "]" 

          condition-phrase = [ "no" ], option-word, [ ":" option-argument { "/" option-argument } ] 

          option-argument = ? any one-word option, such as 'shift, 'ctrl', 'target', '1', '2' ?


          IP属地:河南14楼2008-10-03 12:55
          回复
            .. AUTOLOOTTOGGLE(shift) 自动拾取键 


            .. STICKYCAMERRA(ctrl) 镜头跟随 


            .. SPLITSTACK(shift) 物品堆叠分离 


            .. PICKUPACTION(shift) 拖动技能栏按钮 


            .. COMPAREITEMS(shift) 物品比较 


            .. OPENALLBAGS(shift) 打开所有背包 


            .. QUESTWATCHTOGGLE(shift) 任务追踪 




            ix.点击状态(button:1/2/…/5/<虚拟按键号>) 

            与[modifier]类似,[botton]可以根据不同的鼠标点击按钮做不同动作。1为左键,2 
            为右键,3为中键,4和5则对应五键鼠标上另外两个扩展键。如果是通过键盘触发宏, 
            那么也相当于左键点击。比如我的坐骑宏: 

            #show迅捷绿色机械陆行鸟 

            /userandom [nobutton:2, flyable, nomounted] 黑色狮鹫; [nomounted] 黑色战豹, 迅捷绿色机械陆行 
            鸟 

            /dismount [noflying] [button:2] 

            非右键键点击时,如果没在坐骑上就召唤坐骑;如果右键点击并且不在飞行状态则 
            取消坐骑。而虚拟按键号一般可以忽略,有些动作条插件可以在不同条件下向宏按钮提 
            供不同的虚拟按键号,具体情况请查看插件说明,我们在此不作讨论。 


            x.装备(equipped:<物品类型>) 

            [equipped]条件可以判断指定类型的物品是否被装备。物品类型号可以是装备栏名 
            称,物品类别或者物品子类别。比如我根据盾牌装备状态判断该用盾击还是拳击: 

            #show [equipped:Shields] 盾击; 拳击 

            /cast [equipped:Shields,stance:1/2] 盾击; [equipped:Shields] 防御姿态; [stance:3] 拳击; 狂暴姿态 

            利用[equipped]这里的#show可以根据装备显示不同的图标。下面的伪代码用来解释 
            上面/cast命令的执行过程: 

            if 装备了盾牌 and 在防御姿态 then 

             /cast 盾击 

            else if 装备了盾牌 then 

             /cast 防御姿态 

            else if 在狂暴姿态 then 

             /cast 拳击 

            else /cast 狂暴姿态 

            下面再给出一个变态的压制宏作例子: 

            /equip [noequipped:Two-Handed Axes] 水晶熔铸战斧 

            /cast [nostance:1] 战斗姿态; [equipped:Two-Handed Axes] 压制 


            xi.引导中(channeling:<技能名称>) 

            在引导法术的状态下,如果施放另外一个法术将会打断施法。这个条件语就是用来 
            防止这一情况的。当然,它还有些其他的用途,比如只打断特定的引导技。只用[channeling] 
            的话表示正在引导任意技能,或者后面可以指定任意个引导技能的名称表示正在引导其 









            中一个。 

            注意:引导和吟唱是两码事,[channeling]条件只对引导技能,如奥书飞弹、吸取生 
            命、精神鞭笞等有用。 


            xii.技能条(actionbar:1/…/6) 

            系统默认的界面中有一个主技能条,可以翻页。而用这个条件就可以根据当前技能 
            页作出不同反应。比如猎人可以拿来把守护做成姿态: 

            /swapactionbar 1 2 

            /cast [actionbar:1] 雄鹰守护; 灵猴守护 

            这样就可以切换1号和2号两个技能页,换到1页时施放雄鹰守护,2页时则施放 
            灵猴守护。 


            xiii.宠物(pet:<宠物名称或类型>) 

            对任何有宠职业来说这个条件都很有用,它可以根据你宠物状态来执行动作,可以 
            根据宠物名字,也可以是类型(比如Voidwalker,Boar,Imp,Wolf等),如果只用[pet] 
            的话表示带着任意宠物。比如法师可以根据是否有水宝宝施放不同的霜星: 

            /cast [pet] 冰冻术;冰霜新星 


            xiv.战斗(combat) 

            如果在战斗状态则条件成立。 


            xv.行动方式、室内外状态(mounted, swimming, flying, indoors & outdoors) 

            这些都无庸赘述,要说的就是它们都是对玩家自身状态的判断,而不是目标。 


            xvi.允许飞行 (flyable) 

            用于判断是否处在可以使用飞行坐骑的地区。 


            xvii.小队/团队队友(party/raid) 

            判断目标是否是自己的小队或团队中的队友。 


            xviii.在小队/团队中(group:party/raid)


            IP属地:河南17楼2008-10-03 12:56
            回复
              注意和前面的区别。这个用于判断玩家自己是否处在小队或团队中,并且团队包括 
              小队。这对加状态很有用,比如: 

              /cast [group, nomodifier] 奥术光辉; [help] [target=player] 奥术智慧 

              如果在队伍中,施放奥数光辉;如果按下功能键或者不在队伍中则施放奥术智慧。 




              6. 命令条件语的应用 

              在第一部分中提到的很多命令,如果不配合条件语的使用,是没有什么价值的。而 
              上述内容也只给出了一小部分的应用示例。作为本部分的压轴内容,下面两段将会把你 
              带入一个更高的境界。 


              i.设置焦点(focus) 

              focus是一个单位标识符(参见《单位标识符》),就像target、player、raidpet1target 
              一样。你可以将它设定为某一个单位,玩家或者NPC。比较简单的设置方法是通过按键 
              设置。在按键设置中有两个选项:“焦点目标”和“目标焦点”。我不知道这是哪个脑残 
              翻译的,其实际含义分别是“以目标为焦点”和“以焦点为目标”。当你设置了焦点以后, 









              就可以用focus这个标识符了,也可以通过“目标焦点”绑定的按键把你设的focus作为你 
              的当前目标。话说按键绑定也太小儿科了,下面来看看什么是职业玩家的focus用法。 

              作为一个有控制技能的专业DPS,我们最常用的就是控场宏。我们可以预先把你的 
              “被监护人”设为你的焦点,然后用这种宏来调教他——而此过程中并不用切换目标: 

              /cast [target=focus] 变形术 

              而作为一个灰常牛逼灰常娴熟的治疗,你可以把焦点设为你的主坦。另外还可以通 
              过一些头像增强插件,比如FocusFrame来观察你焦点的状态。 

              不过职业玩家一般不用按键绑定设置焦点,而是用/focus和/clearfocus宏命令来设置 
              或清除焦点。/focus直接就可以达到按键绑定的效果了,而通过参数指定/focus的目标更 
              是按键绑定所没有的功能: 

              /focus party3target 

              上面的只不过是教学示例,实际上职业玩家是这样用的: 

              /focus [target=focus, noharm] [target=focus, dead] [modifier] 

              /stopmacro [target=focus, noexists] 

              /cast [target=focus] 变形术 

              第一行先判断以下三个条件,如果满足任意一个,就把你的当前目标设为焦点(不 
              要忘记,focus是/focus命令的特殊单位,参见[target=]条件语与命令参数): 


              .. 你的当前焦点不是敌对目标(如果焦点不存在该条件也成立) 


              .. 你的焦点已经死了 


              .. 某个功能键被按下了 




              第二行判断你的焦点是否存在,如果不存在就终止宏的运行。这样控场是不是很方 
              便?我们注意到这里用了/stopmacro命令,而不是在/cast命令中对焦点是否存在进行判 
              断。这样的好处是我们可以在宏的最后加上更多的内容,比如一个小队喊话。 
              下面这个宏也很有用,可以把你的目标和焦点互换: 

              /cleartarget [target=target, dead] 

              /clearfocus [target=focus, dead] 

              /target focus 

              /cleartarget [target=focus, noexists] 

              /targetlasttarget 

              /focus target 

              /targetlasttarget 

              前两行的作用是把死亡的目标和焦点清除掉。第四行的作用是防止你没有当前焦点, 
              导致当前目标不变,以至于在第五行选择了你以前的一个目标。 


              ii.用/click进行分支判定 

              假如你想让一个按键根据不同的功能键施放不同的技能,并且根据左键右键选择不 
              同的施放目标,那么我可以给你这样的一个例子: 

              /cast [modifier:shift, button:1, target=party1] [modifier:shift, button:2, target=player] 强效治疗术; 
              [modifier:ctrl, button:1, target=party1] [modifier:ctrl, button:2, target=player] 快速治疗; [nomodifier, 
              button:1, target=party1] [nomodifier, button:2, target=player] 恢复 

              哦……对不起,不大好看……而且貌似超过255个字符限制了。重新写一下:


              IP属地:河南18楼2008-10-03 12:56
              回复
                /cast [modifier:shift, button:1, target=party1] [modifier:shift, target=player] 强效治疗术 

                /cast [modifier:ctrl, button:1, target=party1] [modifier:ctrl, target=player] 快速治疗 

                /cast [button:1, target=party1] [target=player] 恢复 

                不过如果我们写一个宏根据不同按键点击分别选择两个不同的宏,而把功能键状态 
                的判断放到这两个宏中的话,条理就会更清晰了: 

                主宏: 

                /click [button:1] MultiBarLeftButton2; MultiBarLeftButton3 

                辅助宏1: 









                /cast [mod:shift, target=party1] 强效治疗术; [mod:ctrl, target=party1] 快速治疗; [target=party1] 恢复 

                辅助宏2: 

                /cast [mod:shift, target=player] 强效治疗术; [mod:ctrl, target=palyer] 快速治疗; [target=player] 恢复 









                三、 附录 


                1. 自定义图标 

                如果想自定义宏的图标,可以把做好的图标放在游戏目录的“.\Interface\Icons”文 
                件夹中(可能需要自己新建)。文件格式应该是界面材质规定的.BLP或24位无压缩的 
                TGA文件。图片的长宽必须是2的自然数次幂,但不得超过512,比如可以是32×32、 
                512×128等。注意:图片如果不是正方形,在界面显示中是会走形的…… 


                2. 宏的移植 

                玻璃渣目前还没有提供上传宏的服务,所以大家想把宏转移到另外一台机器上的话 
                还是要手动拷贝。个人账户的角色通用设置都保存在游戏目录的“.\WTF\Account\账户 
                名称”文件夹下,每个角色分别的数据则保存在“.\WTF\Account\账户名称\服务器名\角 
                色名称”文件夹下,包括自定义的宏、按键设置、插件数据等,其中macros-cache.txt 
                保存着宏的定义。 


                3. 更多信息 

                如果你有关于宏的疑问,并且在此找不到答案,可以看看这里:《Macro FAQ & 
                Repository》,其中包含很多对于常见问题的解答和一些很好的例子。而且最好多看看 
                wowwiki.com(不过在中国访问的话很可能需要代理),可以获得很多东西,比如宏和脚 
                本相关的文章,还有数据控喜欢的关于游戏算法的研究。 


                4. 鸣谢 

                首先要感谢的是Slouken,他在暴雪一直关注着我们的反馈,如果没有他对广大玩 
                家建议的重视就没有今天的宏命令系统。 

                还要感谢的是Iriel,Tem,Cladhaire等很多高手与大家分享知识。 

                还要感谢论坛上那些一直为大家做出贡献的朋友,Neuro,Shirik,Jelly,Lunessa, 
                Troodi,Lealla,Aella,Valaron等等,还有很多我不记得名字的朋友,感谢你们。 


                5. 译者注 

                这个中文版译自http://www.wowwiki.com/Making_a_macro这篇文章,原文链接自 
                http://forums.worldofwarcraft.com/thread.html?topicId=96143900&sid=1,有Wiki维护 
                改动,当前版本为[2008-03-25 15:44]。


                IP属地:河南19楼2008-10-03 12:56
                回复
                  广告
                  立即查看
                  完结
                  请吧主或小吧砍了第8,9,10


                  IP属地:河南20楼2008-10-03 12:57
                  回复
                    精之。


                    21楼2008-10-03 16:51
                    回复
                      怎么还有IF 和 FOR?现在能用吗


                      22楼2008-10-26 12:39
                      回复
                        • 211.103.89.*


                        24楼2009-01-04 13:27
                        回复
                          • 211.103.89.*
                          看三遍了


                          25楼2009-01-05 01:51
                          回复
                            神帖留名


                            27楼2009-09-17 22:37
                            回复
                              广告
                              立即查看
                              灰常强大…


                              28楼2009-10-23 22:31
                              回复