tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> IT/计算机 >>

魔兽世界宏命令普及教程(附送快捷键等新手知识集


一:基础教程

  1.什么是宏命令?
  玩过EQ的都知道一点宏的知识,比如组队时用来告诉队友你的行动,告诉目标等。最简单的比如puller 常用的: /v %t过来了,大家集中火力。 法师常用的: /v 我要催眠%t,大家不要打醒他 这些宏个性鲜明,是EQ的一大乐趣之一。

  然而EQ毕竟是N年前的游戏,宏也比较简单,和它比起来。WOW的宏就复杂和强大的多了。它的函数就有上千种,如果都掌握,能实现许多匪夷所思的功能。

  一个宏可以完成一个相对比较复杂的命令.比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切.

  2.宏命令的设置流程:
  首先,回车,再敲/MACRO。看见了吧?会弹出一个窗口,上面有New(新建宏命令)和Complete(完成宏命令)两个按键。点New,又会弹出一个窗口,哇,花花绿绿的,里面包括了WOW几乎所有的技能图标,随你喜欢,随便选一个!它就是你设置的宏命令的图标了,给它取个名字吧!方便你用的时候好找。然后回到第一个窗口,在它上面有一个输入菜单(别告诉我找不到...它可是占了这个窗口的一半多...)在里面输入特定的内容,然后点Complete。接下来你要做的就是把这个代表你宏命令的图标用鼠标左键拉到快捷栏里,想怎么用就怎么用...

  3.下面就是怎样设置宏的内容了,简单的设置大家可以看我们网站上"基础"篇的宏介绍.

  相信很多人都知道WOW中的斜杠"/"和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作
  我们现在用一个宏把他们串起来:

  第一行内容:"/Kneel"
  第二行内容:"/say 如果你不嫁给我,那么我就一辈子不起来..." "
  这样你的人物就会先下跪再说:"如果你不嫁给我,那么我就一辈子不起来..."

  宏可以应用所有WOW中已经定义了的斜杠"/"和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,

  只需要在宏的定义过程中应用"/cast"命令,下面是已知的一些常用命令:

  /Assist 这是个援助进攻的命令。当你的队伍同时面对几个敌人时,只要点击自己的队友(一般是队伍中的战士),然后使用这个命令,你的目标就会变成战士所选中的目标。大家集中火力消灭一个起!

  /Cast 这是个使用技能的命令。当你在宏命令里输入/Cast 技能名(技能等级)或者只要按住Shift同时用鼠标点击一下你想要输入的技能的图标。例如当你是一个战士,想制作一个使用战斗怒吼的宏时,你可以输入/Cast Battle Shout(Rank 1)或者是直接按住Shift点击Battle Shout这个技能的图标。当然你可以在一个宏的不同行上输入几个技能,那么当你使用这个宏时,几个技能就会一起释放出来,再用不着你像章鱼一样同时按下几个键了 。

  %t 这个符号也许会经常出现在你的宏命令里,它是一个代码,代表你当前所选中的人名。例如,你在宏里写下这么一句。(注意:后面要加一空格。) "/g %t ,今天天气真好,有没兴趣和我一起上山采蘑菇..."
  如果你点中一位名叫苯笨的玩家,那么当你按下这个宏时,你就会说:"笨笨,今天天气真好,有没兴趣和我一起上山采蘑菇..."

  /Target 这是一个自动选择目标的命令,你可以在宏里输入/Target (xxx),那么当你按下这个宏时,你将自动选定这个叫xxx的目标。

  /in 这是一个延时命令,时间以秒为单位.同时它不支持攻击指令.格式:/in 3 dance 三秒后跳舞,如/in 3 dance,就是在3秒后跳舞,
  /say start!
  /in 3 say 3s later
  /in 6 say 6s later

  二:进阶教程

  一些有用的 Macro

  1。允许你在窗口和全屏状态之间切换

  /script SetCVar("gxWindow", 1 - GetCVar("gxWindow"));
  /console gxRestart

  2。对于法师,必须要有的:将"X"换为你目前的变形术等级(下同);用它替换掉变形术技能。当你在队伍之外时使用它会得到"你不在队伍中。"的信息,但在队伍中的时候其它同伴会了解到你将释放的变形术目标。

  /p Sheeping >>> %t <<<
  /cast Polymorph (Rank X)

  3。作为一个术士,这是在队伍中使用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物向前攻击,跟着一个虚弱诅咒。

  /assist 队伍中的拖怪手或者坦克的名字
  /script PetAttack();
  /cast Curse of Weakness (Rank X)

  4。从背包和袋子里切换身上的武器

  /script if ( not CursorHasItem() ) then PickupContainerItem(, );

  PickupInventoryItem( ); end

  bag# - 使用哪一个袋子的物品(0、1、2、3、4。0是背包)

  slot# - 袋子里的位置(从0至左上)

  equip# - 16 是主要武器, 17 是副武器

  5。这个宏治疗队伍里你指定的人,如果你不在队伍中它会治疗你自己。然后会自动将目标切换回你最后一个敌人。它同时还会使用队聊提醒队友你会治疗哪一个人。

  /script if (UnitName("target") ~=nil and UnitIsFriend("player","target")) then

  CastSpellByName("Heal(Rank X)") SendChatMessage("Incoming Heal to %T", "arty") else

  TargetUnit("player") CastSpellByName("Heal(Rank X)") TargetLastEnemy(); end

  6。加速任务显示速度

  /script QUEST_DEscriptION_GRADIENT_CPS = 600000
  /script RegisterForSave("QUEST_DEscriptION_GRADIENT_CPS")
  /script DEFAULT_CHAT_FRAME:AddMessage("quest text will scroll faster now");

  7。消除等待接受任务的时间

  /script AcceptQuest()

  8。这个宏可以在路上自动护送玩家做任务。

  /assist [player name]
  /cast 法术(Rank X)
  /target [player name]
  /follow [player name]

  9。切换主副武器,详情看第四条

  /script PickupInventoryItem(16); PickupInventoryItem(17);

  10。在没有目标或者目标是敌人的时候给自己加增益魔法或治疗。


  CastSpellByName("Spell Name(Rank X)");

  if ((SpellIsTargeting()) and (not UnitIsFriend("player","target")))

  then

  SpellTargetUnit("player");

  end;

  TargetLastEnemy();

  11。切换双手武器与单手+盾或者双手挥舞武器

  /script PickupInventoryItem(17);if(CursorHasItem()) then PickupContainerItem

  (4,2)ickupContainerItem(4,1);PickupInventoryItem(16);else PickupContainerItem

  (4,1);PickupInventoryItem(16);PickupContainerItem(4,2);PickupInventoryItem(17);end

  12。设定"真实鼠标视野"

  /script CameraOrSelectOrMoveStart(arg1);

  想取消就再次输入。

  13。切换近程技能栏和远程技能栏

  /script CURRENT_ACTIONBAR_PAGE = 2;
  /script ChangeActionBarPage();
  /cast aspectofmonkey (just use the left click)

  /script CURRENT_ACTIONBAR_PAGE = 1;
  /script ChangeActionBarPage();
  /cast aspectofhawk (just use the left click)

  14。牧师对队友的一键加血,比如一号键给第一队友加血,二号键给第二队友加血,免除了还要鼠标确

  定目标的操作。依次类推,从第一个人到最后一个

  给队友1加血:
  /script TargetUnit(GetPartyMember(1))
  CastSpellByName(Heal(Rank X)) TargetLastEnemy()

  给队友2加血:
  /script TargetUnit(GetPartyMember(2)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()

  给队友3加血:
  /script TargetUnit(GetPartyMember(3)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()

  15。一键解决喂养宠物:这个宏会从最左边的袋子里的第一个位置拿出食物喂养宠物,如果所在的位置

  没有食物,它会自动打开袋子。

  /script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(4, 1)) then

  OpenBag(4); else CastSpellByName("Feed Pet"); PickupContainerItem(4, 1); end end

  16。术士宏

  1)如果目标生命大于20,释放抽取生命法术,否则使用灵魂抽取。
  /script if (UnitHealth("target")>20) then CastSpellByName("Drain Life(Rank X)") else

  CastSpellByName("Drain Soul(Rank 2)") end;

  2)虚弱诅咒版本
  /script if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues(Rank X)") else

  CastSpellByName("Curse of Weakness(Rank X)") end;


  17.先治疗自己,然后自动选中上次的敌人
  /target Pugar //选择自己,假设自己的名字是Pugar
  /cast Lesser Heal (Rank 1) //施展次级治疗rank1
  /script TargetLastEnemy(); //重新选择刚刚选择的敌人
  /script AttackTarget(); //攻击,等同于右键点击敌人


  18.对于一个术士很有用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物向前攻击

  ,跟着一个虚弱诅咒。
  /assist 队伍中的拖怪手或者坦克的名字
  /script PetAttack();
  /cast Curse of Weakness (Rank X)

  19.等治疗完之后提醒别人注意下自己有可能被怪打,不加延时的话,就没这个效果了。
  /p healing %T, need 3s, don"t run away
  /cast heal (rank 1)
  /in 4 p cured %T 300HP,please notice the enemies turn on me^_^

  20.在路上自动护送朋友做任务。

  /assist [player name]
  /cast 法术(Rank X)
  /target [player name]
  /follow [player name]

[ 本帖最后由 土拨鼠 于 2007-12-3 10:22 编辑 ]


本帖最近评分记录
沧然 2007-12-3 10:29 积分(参与累加数) +80 精品文章





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #2 大 中 小 使用道具 发表于 2007-12-3 10:19 资料 个人空间 短消息 加为好友
 三:高级教程

  WOW的宏函数库可以去这两个地方查:

 ] http://www.cosmosui.org/texts/BlizzardCommands.xml

 ] http://www.wowwiki.com/index.php/World_of_Warcraft_API

  函数的使用比较简单,学习过编程的都比较容易上手,基本的用法是在函数前加/script 来使用。比如
  /script CURRENT_ACTIONBAR_PAGE = X;
  /script ChangeActionBarPage();
  就是将你的快捷栏翻到第X页。

  函数库中有许多函数都是非常有用和方便的,比如一次打开所有包包:

  /script OpenAllBags();

  配合关闭包包的函数,一次关闭所有包的宏也可以实现:

  /script CloseBag(0);
  /script CloseBag(1);
  /script CloseBag(2);
  /script CloseBag(3);
  /script CloseBag(4);

  怎么样,下次你卖东西的时候不会一个个开包关包了吧?

  使用函数还不是最恐怖的,恐怖的是WOW的宏是可以用条件判断的,看下面这两个:
  /script if ( GetComboPoints() >= 3 ) then CastSpellByName("Rip(Rank 2)"); else if (

  UnitMana("player") >= 40 ) then CastSpellByName("Rake(Rank 1)"); end end

  据说这个包含if,then的宏可以让盗贼实现自动根据combo点数来使用技能(未测试),其中还使用了角

  色MANA值的调用,恐怖吧?还有这个查找spell的宏:
  function GetSpellIdByItsName(myWantedSpell, myWantedRank)
  local spellId = 1;
  local spellBook = "spell";
  local spellName, rankName;
  spellName, rankName = GetSpellName(spellId, spellBook);
  while (spellName ) do
  if ( ( spellName == myWantedSpell ) and ( ( not myWantedRank ) or ( rankName = myWantedRank

  ) ) ) then return spellId; end
  spellName, rankName = GetSpellName(spellId, spellBook);
  end
  return -1;
  end

  里面可以自己定义function,还使用了while,do这样的循环,是不是让你想到了N种应用的可能呢?

  遗憾的是,目前官方似乎没有提供延时的宏,所以在战斗中使用多种有延时的技能是无法实现的(无延时的技能可以实现同时使用),类似换其他武器-使用技能或法术-换回武器这样的功能也无法实现,

  (所谓用宏实现剑盾战士换双手武器MS再换回来是行不通的),不过使用COSMOS的朋友可以用/in 来实现非战斗指令的延时,比如
  /in 3 say hi 就会在3秒后说句hi。

  /in 6 /script MoveForwardStart(arg1);
  就会在6秒后向前跑。

  虽然法术和技能无法用/in指令来延时,但这样已经很强大了,比如,你可以编出各种运动的宏,如兜后,转身等。PVP时估计是必不可少的。

  下面是一个玩家写的双手武器战士自动逃跑的宏:
  /script UseContainerItem(0, 2);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown

  (12);ActionButtonUp(12);
  /cast Thunder Clap(Rank 1);
  /script TurnLeftStart(arg1);
  /in 1 /script TurnLeftStop(arg1);ToggleAutoRun();


  使用这个宏的条件:在大包包第二格放了回复药,快捷栏第11,12分别是一单手一盾的快捷方式。

  使用这个宏后,角色自动喝回复药,装备上盾,使用Thunder Clap(这三个动作同时进行),向后转180度后开自动跑步键逃走。其中技能等可以根据需要自己改。怎么样,是不是很夸张啊,哈哈。

  还有一些有用的宏:

  切换装备,

  双手切换单手并换第二个快捷栏,快捷栏第11,12分别是一单手一盾的快捷方式
  /script ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12);
  /script CURRENT_ACTIONBAR_PAGE = 2;
  /script ChangeActionBarPage();
  单手切换双手并换回第一快捷栏,快捷栏12是一双手武器快捷方式
  /script ActionButtonDown(12);ActionButtonUp(12);
  /script CURRENT_ACTIONBAR_PAGE = 1;
  /script ChangeActionBarPage();





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

分享

顾问委员




帅哥
UID 237
精华 0
积分 1316
帖子 1655
博益(贡献奖励值) 192 金
积分(参与累加数) 1316 分
财智(投资版专用) 0 点
阅读权限 180
注册 2007-1-22
状态 在线 #3 大 中 小 使用道具 发表于 2007-12-3 10:23 资料 个人空间 短消息 加为好友
继续,,,





过去种种,譬如昨日死。以后种种,譬如今日生。
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #4 大 中 小 使用道具 发表于 2007-12-3 10:30 资料 个人空间 短消息 加为好友
快捷键


在游戏的选项菜单里,玩家可以方便的重新设定所有的快捷键。这里列出了所有的默认快捷键(一些功能并没有提供默认的快捷键)。



命令 按键1 按键 2
移动键
向前移动 W 上箭头
向后移动 S 下箭头
左转 A 左箭头
右转 D 右箭头
左平移 Q
右平移 E
跳 Spacebar Num Pad 0
坐下/站立 X
拿出/收起武器 Z
开启自动跑步 Num Lock 鼠标键4
向上游 Insert
向下游 Delete
跑步/走路模式 Num Pad /
跟随目标 F
聊天功能
切换到聊天对话框 Enter
开启聊天快捷指令模式 /
对话框内容向上翻页 Page Up
对话框内容向下翻页 Page Down
对话框内容回到底部 SHIFT-Page Down
密语回复 R
战斗框内容向上翻页 CTRL-Page Up
战斗框内容向下翻页 CTRL-Page Down
战斗框内容回到底部 CTRL-SHIFT-Page Down
显示战斗框 SHIFT-C
快捷栏功能
快捷键1 1
快捷键2 2
快捷键3 3
快捷键4 4
快捷键5 5
快捷键6 6
快捷键7 7
快捷键8 8
快捷键9 9
快捷键10 0
快捷键11 -
快捷键12 =
对自己施放的快捷键 1 ALT-1
对自己施放的快捷键 2 ALT-2
对自己施放的快捷键 3 ALT-3
对自己施放的快捷键 4 ALT-4
对自己施放的快捷键 5 ALT-5
对自己施放的快捷键 6 ALT-6
对自己施放的快捷键 7 ALT-7
对自己施放的快捷键 8 ALT-8
对自己施放的快捷键 9 ALT-9
对自己施放的快捷键 10 ALT-0
对自己施放的快捷键 11 ALT--
对自己施放的快捷键 12 ALT-=
特殊快捷键1 CTRL-F1
特殊快捷键2 CTRL-F2
特殊快捷键3 CTRL-F3
特殊快捷键4 CTRL-F4
特殊快捷键5 CTRL-F5
特殊快捷键6 CTRL-F6
特殊快捷键7 CTRL-F7
特殊快捷键8 CTRL-F8
特殊快捷键9 CTRL-F9
特殊快捷键10 CTRL-F10
备用快捷键1 CTRL-1
备用快捷键2 CTRL-2
备用快捷键3 CTRL-3
备用快捷键4 CTRL-4
备用快捷键5 CTRL-5
备用快捷键6 CTRL-6
备用快捷键7 CTRL-7
备用快捷键8 CTRL-8
备用快捷键9 CTRL-9
备用快捷键10 CTRL-0
快捷栏1 SHIFT-1
快捷栏2 SHIFT-2
快捷栏3 SHIFT-3
快捷栏4 SHIFT-4
快捷栏5 SHIFT-5
快捷栏6 SHIFT-6
前一个快捷栏 SHIFT-上箭头 SHIFT-鼠标滚轮上滚
次一个快捷栏 SHIFT-下箭头 SHIFT-鼠标滚轮下滚
锁定目标功能
锁定最近的敌人 Tab
锁定上一个敌人 SHIFT-Tab
锁定最近的友方 CTRL-Tab
锁定上一个友方 CTRL-SHIFT-Tab
锁定自己 F1
锁定队友1 F2
锁定队友2 F3
锁定队友3 F4
锁定队友4 F5
锁定宠物 SHIFT-F1
锁定队友1宠物 SHIFT-F2
锁定队友2宠物 SHIFT-F3
锁定队友3宠物 SHIFT-F4
锁定队友4宠物 SHIFT-F5
锁定最后一个敌对目标 G
支援目标 F
显示名字 V
攻击目标 T
宠物攻击目标 SHIFT-T
菜单界面功能
开启人物状态界面 C
打开背包 B F12
打开包裹1 F8
打开包裹2 F9
打开包裹3 F10
打开包裹4 F11
打开/关闭所有包裹 SHIFT-B
打开魔法书 P
打开宠物的魔法书 SHIFT-I
开启天赋界面 N
开启宠物截面 SHIFT-P
开启声望界面 U
打开技能书 K
打开任务记录 L
开启游戏菜单 ESCAPE
开启小地图
开启世界地图 M
开启社交内容菜单 O
开启好友界面
开启在线玩家查找界面
开启公会界面
开启RAID界面
辅助功能
小地图放大 Num Pad +
小地图缩小 Num Pad -
开启音乐 CTRL-M
开启音效 CTRL-S
主音量放大 CTRL-+
主音量降低 CTRL--
开启用户界面 Alt-Z
开启帧数显示 CTRL-R
摄像头功能
下一个镜头模式 End
前一个镜头模式 Home
放大 鼠标滚轮上滚
缩小 鼠标滚轮下滚
设定镜头模式1
设定镜头模式2
设定镜头模式3
设定镜头模式4
设定镜头模式5
保存镜头模式2
保存镜头模式3
保存镜头模式4
保存镜头模式5
重设镜头模式2
重设镜头模式3
重设镜头模式4
重设镜头模式5
显示帧数 Ctrl+R





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #5 大 中 小 使用道具 发表于 2007-12-3 10:35 资料 个人空间 短消息 加为好友
等级分部


这部分比较老了,外域的我都没搞明白
联盟
等级 任务区域
1-15 艾尔文森林(1-10)
丹莫罗(1-10)
泰达希尔(1-10)
15-20 洛克莫丹(10-20)
西部荒野(10-20)
赤脊山(15-25)
黑海岸(10-20)
20-25 赤脊山(15-25)
灰谷(18-30)
湿地(20-30)
25-30 暮色森林(18-30)
灰谷(18-30)
湿地(20-30)
30-35 阿拉希高地(30-40)
凄凉之地(30-40)
千针石林(30+)
荆棘谷(30-45)
希尔斯布莱德丘陵(20-30)
35-40 阿拉希高地(30-40)
凄凉之地(30-40)
荒芜之地(35-45)
荆棘谷(30-45)
40-45 菲拉斯(40-50)
塔纳利斯沙漠(40-50)
荒芜之地/辛特兰(40-50)
荆棘谷/灼热峡谷(43-50)
45-50 菲拉斯(40-50)
塔纳利斯沙漠(40-50)
辛特兰(40-50)
灼热峡谷(43-50)
艾萨拉(45-55)
诅咒之地(45-55)
费伍德(48-55)
50-55 安戈洛环形山(48-55)
燃烧平原(50-58)
西瘟疫地(51-58)
诅咒之地(45-55)
费伍德(48-55)
55-60 东瘟疫地(53-60)
燃烧平原(50-58)
西瘟疫地(51-58)
冬泉谷(55-60)
部落
等级 任务区域
1-15 提瑞斯法林地(1-10)
杜隆塔尔(1-10)
莫高雷(1-10)
15-20 银松森林(10-20)
贫瘠之地(10-25)
石爪山(15-27)
20-25 贫瘠之地(10-25)
希尔斯布莱德丘陵(20-30)
石爪山(15-27)
灰谷森林(18-30)
25-30 千针石林(25-35)
希尔斯布莱德丘陵(20-30)
石爪山(15-27)
荆棘谷(30-45)
灰谷森林(18-30)
30-35 阿拉希高地(30-40)
凄凉之地(30-40)
千针石林(25-35)
荆棘谷(30-45)
35-40 阿拉希高地(30-40)
凄凉之地(30-40)
荒芜之地(35-45)
荆棘谷(30-45)
悲伤沼泽 (35-45)
尘泥沼泽(35-45)
40-45 菲拉斯 (40-50)
塔纳利斯沙漠(40-50)
荒芜之地/辛特兰(40-50)
荆棘谷/灼热峡谷(43-50)
悲伤沼泽(35-45)
尘泥沼泽(35-45)
45-50 菲拉斯(40-50)
塔纳利斯沙漠(40-50)
辛特兰(40-50)
灼热峡谷(43-50)
艾萨拉(45-55)
诅咒之地(45-55)
费伍德(48-55)
50-55 安戈洛环形山(48-55)
燃烧平原(50-58)
西瘟疫地(51-58)
诅咒之地(45-55)
费伍德(48-55)
55-60 东瘟疫地(53-60)
燃烧平原(50-58)
西瘟疫地(51-58)
冬泉谷(55-60)





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

小魔头

金牌会员




帅哥
UID 799
精华 0
积分 2214
帖子 1447
博益(贡献奖励值) 12 金
积分(参与累加数) 2214 分
财智(投资版专用) 0 点
阅读权限 100
注册 2007-4-10
状态 在线 #6 大 中 小 使用道具 发表于 2007-12-3 10:35 资料 个人空间 短消息 加为好友
小小的编下程。。。感觉不错





不管黑猫白猫,能逮住耗子就是好猫
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #7 大 中 小 使用道具 发表于 2007-12-3 10:45 资料 个人空间 短消息 加为好友
快捷指令


  在游戏里许多用鼠标能够完成的动作也能通过快捷指令完成。大部分快捷指令也能在宏里面使用。下面是一些游戏里常用的快捷指令列表。目前,wow部分指令已经可以用中文代替了。

常用指令
/help 列出常用指令帮助
/assist [名字] 协助你当前所选择的目标,或者指定的目标 /cast spell 施放指定的法术,可以包含法术的等级。比如: "/cast Slow Fall", "/cast Polymorph(Rank 2)"
/afk [文字] 开启AFK模式显示你要离开一会儿,再输一次/afk关闭AFK模式。
/combatlog 导出你的战斗信息到(wow目录)LogsPlayerCombatLog.txt 文件里。 /dnd [文字] 开启DND模式表示"请勿打扰",再输一次/dnd关闭DND模式。
/duel [名字] 要求与你锁定的目标决斗,或者要求与指定的目标决斗。
/yield (/forfeit) 在决斗时投降。
/emote 文字 (/em, /me) 表示接下来的文字是动作。
/exit 退出游戏。
/follow (/f) 自动跟随当前目标。
/ignore 名字 忽略目标玩家。
/inspect (/ins) 查看目标玩家的装备。
/logout (/camp) 坐下并且登出。
/macro 打开宏设置界面。
/macrohelp 给出关于设置宏的帮助。
/played 显示你游戏人物的在线时间。
/pvp 在接下来的5分钟内开启PVP模式。
/raid 文字 (/r) 在RAID频道里说话。
/random 数字 [数字2] (/rnd, /rand) 扔出一个从1到某个数字范围内的随机数字,或者是两个数字范围之间的随机数字。
/remfriend 名字 (/removefriend) 把一个好友从你的好友列表里去掉。
/split 数量 把一部分的钱平均分给你的队友。
/target 名字 (/tar) 从当前目标转向你所指定的玩家。
/time 显示当前游戏的服务器时间。
/trade (/tr) 与当前选择的目标交易
/who [文字[ 文字2...]] [数字[-数字2]] [r-"种族"] [c-"职业"] [z-"区域"] [g-"公会"] 如果没有添加任何后缀的话,列出在当前区域与你等级相近的所有在线玩家。文字指定玩家的名字,公会,职业,种族或者所在的区域;数字表示指定列出玩家的等级范围。
/bug 提交出错报告。
/suggest 提交建议。
/note 文字 提交一条信息。
/script LUA-command 用于UI设计者。
/console command 用于一些游戏的内部指令,比如"gxrestart", "reloadui" and "quit".
/console 设置名 [新设置] 用于调整游戏设置。


队长指令

/invite [名字] (/inv) 邀请目标玩家到你的队伍里。
/uninvite [名字] (/un) 从你的队伍里移除目标玩家。
/ffa 把掠夺方式设置成"自由掠夺"。
/master [名字] 指定目标玩家在"计划分配"的掠夺方式中担当分配者。
/roundrobin 把掠夺方式设置成"轮流掠夺"。


聊天指令

/guild 文字 (/g) 在公会频道内说话。
/party 文字 (/p) 在队伍频道内说话。
/reply 文字 (/r, R) 回复最后一个玩家给你的密语。
/say 文字 (/s) 跟周围的玩家说话。
/yell 文字 (/shout) 喊叫(比/say传的距离要远)
/whisper 名字 信息 (/w, /tell) 给目标玩家密语。


聊天频道指令

/chat (/chathelp) 列出聊天指令。
/join 频道 [密码] (/chan, /channel) 加入(或者创建)一个特殊聊天频道。 /leave 频道|# (/chatleave, /chatexit) 离开这个特殊聊天频道,或者离开指定号码的聊天频道。 /# 文字 (/c, /csay) 在聊天频道内说话,#表示所要说话的频道号码。
/announcements 频道|# (/ann) 开启/关闭指定聊天频道的公告。
/ban 频道|# 名字 禁止目标玩家进入指定的频道。
/unban 频道|# 名字 解除目标玩家的禁令。
/chatlist (/chatwho, /chatinfo) 列出所有的聊天频道和他们的号码。
/chatinvite 频道|# 名字 (/cinvite) 邀请目标玩家到一个指令的聊天频道里。
/ckick 频道|# 名字 把目标玩家从指定频道中踢出去。
/moderator 频道|# 名字 (/mod) 把目标玩家设成指定聊天频道的管理员。 /unmoderator 频道|# 名字 (/unmod) 解除目标玩家在指定聊天频道里的管理员身份。
/moderate 频道|# 开启指定聊天频道的管理模式。
/mute 频道|# 名字 (/squelch, /unvoice) 把目标玩家在指定的聊天频道里禁言。
/unmute 频道|# 名字 (/unsquelch, /voice) 解除目标玩家在指定的聊天频道里的禁言。
/password 频道|# [密码] (/pass) 设置,改变或者去除聊天频道的密码。
/owner 频道|# [名字] 显示或者改变所建立的聊天频道名字。


公会指令

/ginfo 给出关于你的公会的基本信息。
/g 文字 (/guild) 在公会频道里说话
/o 文字 对所有公会里的管理员说话。
/ginvite 名字 (/guildinvite) 邀请目标玩家加入到你的公会里。
/gremove 名字 (/guildremove) 从你的公会里移除目标玩家。
/gpromote 名字 (/guildpromote) 提升在你公会里的目标玩家公会等级。
/gdemote 名字 (/guilddemote) 降低在你公会里的目标玩家公会等级。
/gmotd 信息 (/guildmotd) 设置今天的公会公告。
/gquit (/guildquit) 离开你的公会。
/groster (/guildroster) 给出整个公会成员的列表(只限管理员和会长使用)。
/gleader name (/guildleader) 把目标玩家设为会长(只限会长使用)。 /gdisband (/guilddisband) 解散公会(只限会长使用)。

比较老的帖子,感觉比较有用,虽然有些插件可以实现部分功能,但是不如自己做一个来得方便!

1.友好魔法
...1.A 对友好单位或自己施法
...1.B 只对自己使用
...1.C 对特定队员施法
...1.D 按目标的职业分别使用不同魔法
...1.E 按目标等级使用不同级别的魔法
2. 判断HP,MP,连击点量
...2.A 按HP消耗量不同使用不同治疗魔法
...2.B 根据目标HP量决定是使用灵魂抽取还是抽取生命
...2.C 根据敌人是否使用魔法来决定是使用结舌诅咒还是虚弱诅咒
...2.D 根据连击点的多寡和能量的多少来决定使用技能种类
3.绷带
...3.A 对友好单位或自己使用绷带
...3.B 只对自己使用
4.武器相关
...4.A 对武器使用砺石
...4.B 更换备用武器
...4.C 切换主手与副手武器
...4.D 双手武器 <-> (主手武器+副手物品)
...4.E(主手武器+副手物品)<-> (单手武器+副手物品)
...4.F 单主手武器或双手武器 <-> (主手武器+副手物品)
...4.G 更换备用主手武器
5.组队相关
...5.A 设置辅助目标+自动辅助
...5.B 变羊+信息提示
6.打开/关闭背包
7.宠物相关(猎人、术士)
...7.A 施放猎人印记的同时宠物攻击
...7.B 切换到宠物正在攻击的目标并施放毒蛇刺击
...7.C 召回宠物并使用散射
...7.D 选择目标,开始攻击
...7.E 喂食
8.判断目标身上是否有特定BUFF
...8.A 猴之守护+物理攻击
...8.B 鹰之守护+自动射击
...8.C 鹰之守护+瞄准射击
9.影遁相关(暗夜专用)
...9.A 藏身
...9.B 进食
10.切换技能栏
11.目标信息
12.任务接受页面相关
...12.A 增加文字浮现速度
...12.B 取消文字逐渐浮现效果
...12.C 直接接受当前窗口中的任务
13.切换全屏模式与窗口模式
14.设定“真实鼠标视野”
15.延迟宏(需要Cosmos)
...15.A 盗贼武器上毒并定时提示
...15.B 魔法效果消失提示
...15.C 使用闷棍并在不同时段内提示不同信息
...15.D 战士逃跑宏
16.数组宏的实际运用
17.通用变量的设置与使用
18.图腾破坏
19.自然之速(气定神闲)



1.友好魔法

1.A 对友好单位或自己施法
/cast 治疗术(等级1)
/script TargetUnit("player")


如果你当前选择的目标是可以对其使用此魔法的友好单位的话,则对其使用魔法。
如当前目标是不能接受此魔法的单位,或没有选择任何目标的话,则对自己使用魔法。
而且不会对当前目标进行切换,不会中断对当前敌人的攻击。

将 “治疗术(等级1)” 换成任何能对友好单位释放的魔法与技能。

如在最后再加上如下代码
/script if ( UnitName("target") ~=nil and UnitInParty("player","target") ) then SendChatMessage("<治疗 %T >", "ARTY"); end


则在治疗队友时,在party中发出相应的信息。

将<治疗 %T>换成任何你喜欢的信息,%T表示接受治疗的目标的名字。
将UnitInParty换成UnitIsFriend,则对任何友好单位施法时都发出信息。

将"ARTY"换为"EMOTE",则以自定义表情的方式发出信息。如SendChatMessage(" 将在3秒内治疗 %T", "EMOTE"),则别人在聊天窗口中看到:"汉客将在三秒内治疗小郎"

将"PARTY"换成"WHISPER", "COMMON", UnitName("target"),则采用密语形式对你施法的目标发送信息。"COMMON"表示密语所用的语言种类。下面是一个语言列表:

Common 人类语,联盟通用语
Orcish 兽人语,部落通用语
Dwarvish 矮人语
Gnomish 侏儒语
Darnassian 暗夜精灵语

还有其他的一些实现方法如:
/cast 治疗术(等级1)
/script if SpellIsTargeting() then TargetUnit("player")



/script if ( not UnitIsFriend("player", "target") ) then CastSpellByName("治疗术(等级1)"); end
/script if ( SpellIsTargeting() ) then SpellTargetUnit("player"); end



/script if (UnitName("target") ~=nil and UnitIsFriend("player","target")) then CastSpellByName("治疗术(等级1)") SendChatMessage("即将治疗 %T", "Party") else TargetUnit ("player") CastSpellByName("治疗术(等级1)") TargetLastEnemy(); end


并不值得推荐。而且后一个宏会切换当前目标,中断攻击。

1.B 只对自己使用
如果想在任何条件下都只对自己使用治疗的话,用如下的宏:
/target "player"
/cast 治疗术(等级1)
/script TargetLastEnemy()


但这个宏同样有切换当前目标,中断攻击的弊病。


1.C 对特定队员施法
下面的这个宏只对队伍中的第一名队员施法。party1,party2,party3,party4分别指代队伍中的其他4名成员。也可以结合组队相关中的目标设置宏来使用。
/script if (UnitName("party1") ~= nil) then CastSpellByName("治疗术(等级1)") SpellTargetUnit("party1") SendChatMessage("即将治疗 >>" .. UnitName("party1") .. "<< (3.5s)", "Party") TargetLastEnemy(); end



1.D 按目标的职业分别使用不同魔法
下面是圣骑士的一例。如果目标职业为盗贼或战士则使用力量祝福,否则使用智慧祝福。
/script class = UnitClass("target"); if ( ( class == "Rogue" ) or ( class == "Warrior" ) ) then
CastSpellByName("Blessing of Might(Rank 1)"); else CastSpellByName("Blessing of Wisdom(Rank 1)"); end



1.E 按目标等级使用不同级别的魔法
下面牧师的一例,对目标使用其所能接受的最高等级的“圣言术:韧”
/script P="Power Word: Fortitude(Rank " S={1,2,14,26,38} if (UnitLevel("target") ~= nil and UnitIsFriend("player","target")) then for j=5,1,-1 do if (UnitLevel("target") >= S[j]) then CastSpellByName(P..j..")") return end end end


下面是60级的牧师的实例,另外一种实现方法,语句书写略为不同,更为易读。
/script r=6;l={1,12,24,36,48,60};t=UnitLevel("target");if (t==0) then t=UnitLevel("player");end;if UnitIsFriend("player","target") then for j=r,1,-1 do if (t>=l[j]-10) then CastSpellByName("Power Word: Fortitude(Rank "..j..")");break;end;end;end


下面是60级德鲁依的一例,使用对方能接受的最高级野性印记。实现方法和上面2例略有不同:
/script r=7;l={1,10,20,30,40,50,60};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for j=r,1,-1 do if (t>=l[j]-10) then CastSpellByName("Mark of The Wild(Rank "..j..")");break;end;end





2. 判断HP,MP,连击点量

2.A 按HP消耗量不同使用不同治疗魔法
在下面的例子中,宏会对玩家自己的HP消耗量进行判断,如小于200则不使用治疗,并在聊天窗口中提示:"health is good",如消耗两大于200小于400,使用3级的Flash of Light治疗,如大于400,则使用5级的Holy Light进行治疗。你也可以用当前的HP量进行判断。
/script x="player";d=UnitHealthMax(x)-UnitHealth(x);if (d>200) then if (d<400) then CastSpellByName("Flash of Light(Rank 3)") else CastSpellByName("Holy Light(Rank 5)") end;SpellTargetUnit(x);else DEFAULT_CHAT_FRAME:AddMessage("Health is good"); end;



2.B 根据目标HP量决定是使用灵魂抽取还是抽取生命
术士根据目标HP量决定是使用灵魂抽取还是抽取生命。大于20则使用抽取生命,否则使用灵魂抽取。
/script if (UnitHealth("target")>20) then CastSpellByName("Drain Life(Rank X)") else CastSpellByName("Drain Soul(Rank 2)"); end



2.C 根据敌人是否使用魔法来决定是使用结舌诅咒还是虚弱诅咒
下面这个是根据敌人是否使用魔法(使用魔法的敌人其MANA肯定大于0)来决定是使用结舌诅咒还是虚弱诅咒。
/script if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues(Rank X)") else CastSpellByName("Curse of Weakness(Rank X)"); end



2.D 根据连击点的多寡和能量的多少来决定使用技能种类
下面是德鲁依猫形态(盗贼也是一样)根据连击点的多寡和能量的多少来决定是使用Rip还是Rake。如连击点大于等于3,则使用Rip,如连击点小于3并且能量有40点以上,则使用Rake。
/script if ( GetComboPoints() >= 3 ) then CastSpellByName("Rip(Rank 2)"); else if (UnitMana("player") >= 40 ) then CastSpellByName("Rake(Rank 1)"); end end




3.绷带

3.A 对友好单位或自己使用绷带
/script UseContainerItem(2,1)
/script TargetUnit("player")


如果你当前选择的目标是可以对其使用绷带的友好单位的话,则对其使用绷带。
如当前目标是不能被打绷带的单位,或没有选择任何目标的话,则对自己使用绷带。
而且不会对当前目标进行切换,不会中断对当前敌人的攻击。

使用此宏,你必须把你要用的绷带放在背包的特定位置中。UseContainerItem(2,1)中的2是背包的编号,1是格子的编号。(2,1)表示右数第3个包的第一个格子。把它们换成对应你绷带位置的编号。
5个背包按照排列位置编号如下:

[4][3][2][1][0]]

6格包的格子编号如下:

_____[1][2]
[3][4][5][6]

16格包的格子编号如下:

[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
[ 9][10][11][12]
[13][14][15][16]

其他格数以此类推。

将第一行换成/script UseAction(25,0,1),则不需将绷带放在背包特定位置,但必须将绷带拖入技能栏的特定位置。25表示技能栏的编号。第一排第一格编号为1,最后一格为12。第二排第一格编号为13,最后一格为24。以此类推。25表示第三排的第一格。

将第一行换成/use "Linen Bandage",则不需将绷带放在背包的特定位置,也不需将其拖入技能栏。将Linen Bandage换成你使用的绷带的名字。推荐尝试,但此宏没有经过测试。

此宏也还有如下的实现方法:
/script UseContainerItem(0,1)
/script if ( SpellIsTargeting() ) then TargetUnit("player"); end



3.B 如果想在任何条件下都只对自己使用绷带的话,用如下的宏:
/target "player"
/use "Linen Bandage"
/script TargetLastEnemy()


同样,这个宏会切换当前目标,中断攻击,盗贼的连击点也会被清空。

下面这个宏也只对自己使用绷带,但在使用后会切换回先前的目标(不管是敌对中立还是友好的)。
/script p="player";t="target";if(not UnitCanAttack(t, p))then ot=UnitName(t);TargetUnit(p);else ot=nil;end;
UseAction(ActionID);if(SpellIsTargeting()) then SpellTargetUnit(p); end if(ot) then TargetByName(ot);end


本帖最近评分记录
沧然 2007-12-3 10:21 积分(参与累加数) +100 好贴,楼主继续努力!





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #2 大 中 小 使用道具 发表于 2007-12-3 10:07 资料 个人空间 短消息 加为好友
4.武器相关

Bag:物品存放背包编号
Slot:物品存放格子编号
MainhandBag:备用主手武器存放背包编号
MainhandBagSlot:备用主手武器存放格子编号
OffhandBag:备用副手武器存放背包编号
OffhandBagSlot:备用副手武器存放格子编号
TwohandsBag:备用双手武器存放背包编号
TwohandsBagSlot:备用双手武器存放格子编号

4.A 对主手武器或双手武器使用砺石
/script UseContainerItem (Bag,Slot)
/script PickupInventoryItem (16)




4.B 更换备用主手武器或双手武器
/script UseContainerItem (Bag,Slot)
/script PickupInventoryItem (16)



副手的对应宏,将16换为17即可。

4.C 切换主手武器和副手武器

/script PickupInventoryItem(16)ickupInventoryItem(17)



盗贼可以用这个宏来互换手中的剑与匕首。

4.D 双手武器 -> (主手武器+副手物品)
/script PickupContainerItem(MainhandBag, MainhandBagSlot)
/script PickupInventoryItem(16)
/script PickupContainerItem(TwohandsBag, TwohandsBagSlot)
/script PickupContainerItem(OffhandBag, OffhandBagSlot)
/script PickupInventoryItem(17)



(主手武器+副手物品) -> 双手武器
/script PickupInventoryItem(17)
/script PickupContainerItem(OffhandBag, OffhandBagSlot)
/script PickupContainerItem(TwohandsBag, TwohandsBagSlot)
/script PickupInventoryItem(16)
/script PickupContainerItem(MainhandBag, MainhandBagSlot)



副手物品可以是盾牌、副手武器、副手装备品。注意以上几个宏使用之时,鼠标上不要拖有物品,否则会出错。如要避免,可以使用CursorHasItem()来进行预判断。参看下面的几个宏:

4.E(主手武器+副手物品)<-> (单手武器+副手物品)
/script if ( not CursorHasItem() ) then PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); PickupContainerItem(offhandBag, offhandBagSlot); PickupInventoryItem(17); PickupContainerItem(offhandBag, offhandBagSlot); end



4.F 单主手武器或双手武器 -> (主手武器+副手物品)
/script if ( not CursorHasItem() ) then PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); PickupContainerItem(offhandBag, offhandBagSlot); PickupInventoryItem(17); if ( CursorHasItem() ) then PickupContainerItem(offhandBag, offhandBagSlot); end end



(主手武器+副手物品)-> 单主手武器或双手武器
/script if ( not CursorHasItem() ) then PickupInventoryItem(17); if ( CursorHasItem() ) then PickupContainerItem(offhandBag, offhandBagSlot); end PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); end



4.G 更换备用主手武器
/script if ( not CursorHasItem() ) then PickupContainerItem(mainhandBag, mainhandBagSlot); PickupInventoryItem(16); PickupContainerItem(mainhandBag, mainhandBagSlot); end




5.组队相关

5.A 设置辅助目标+自动辅助
下面是2个配合使用的宏。先在宏窗口第一个空位建立一个宏,选择一个图标,内容为空。
再另建一个宏如下:
/script if (UnitName("target") ~= nil) then EditMacro(1, "Assist "..UnitName("target"), nil, "/assist "..UnitName("target"), 1) end
/script SaveMacros()


对选择的队友使用第二个宏,则自动将第一个宏设置为辅助选择的目标。也就是用宏来更换自动协助的目标,不用手动编辑宏来更换。

5.B 变羊+信息提示
这是一个法师在组队的时候用的宏,在变羊的同时,在PARTY中说明变羊目标的等级名字。
/script if ( UnitExists("target") and UnitIsEnemy("player","target") ) then SendChatMessage("Sheeping Level " ..UnitLevel("target") .." " ..UnitName("target") ..". Don't Attack it!", "ARTY") CastSpellByName("Polymorph(Rank 1)"); if not PlayerFrame.inCombat then ClearTarget(); end end



超简化的一个版本,功能上差一点。
/p Sheeping >>> %t <<<
/cast Polymorph (Rank X)



6.打开/关闭背包

/script ToggleBag(0) 背囊
/script ToggleBag(1) 右数第二个包
/script ToggleBag(2) 右数第三个包
/script ToggleBag(3) 右数第四个包
/script ToggleBag(4) 右数第五个包

上面的几个是切换特定背包的状态,如果当前是打开着的则关闭。如果当前是关闭着的,则打开。
适当的组合可以让你设定只打开特定的几个背包。如猎人可以选择不打开箭筒或子弹袋。

/script OpenAllBags()打开所有背包
7.宠物相关(猎人、术士)

下面的一些宏虽是对应猎人,术士只需稍加改动就可以用了。

7.A 施放猎人印记的同时宠物攻击
/cast Hunter's Mark(Rank 1)
/script PetAttack()



7.B 切换到宠物正在攻击的目标并施放毒蛇刺击
/script TargetUnitsPet("Player")
/assist
/cast Serpent Sting(Rank 1)



7.C 召回宠物并使用散射
此宏是有散射技能的玩家所必需的。
/script PetFollow()
/Cast Scatter Shot()



7.D 选择目标,开始攻击
如果当前目标是友好目标,则协助目标。使用猎人印记,宠物攻击,如果没有在战斗状态,开始自动射击。如果目标是敌人的话,则直接使用技能。此宏在SOLO组队中都比较实用。
/script if (UnitIsFriend("player","target")) then AssistUnit("target"); end
/cast Hunter's Mark(Rank X)
/cast PetAttack()
/script if(not PlayerFrame.inCombat) then CastSpellByName("Auto Shot"); end



7.E 喂食

最简单的一键喂食,把食物放入对应的背包格子中。
/cast Feed Pet
/script PickupContainerItem (Bag,Slot)




下面这个会先判断玩家是否处于战斗之中。如对应的格子中没有食物,则会打开相应的背包。
/script if (not PlayerFrame.inCombat) then if (not
GetContainerItemLink(Bag, Slot)) then OpenBag(Bag); else CastSpellByName("Feed Pet"); PickupContainerItem(Bag, Slot); end end




8.判断目标身上是否有特定BUFF

8.A 猴之守护+物理攻击
下面的宏会先判断玩家身上是否加有猴之守护,如果没有,使用猴之守护。如果玩家未在战斗状态,则开始物理攻击。也可以把Attack换为Raptor Strike。
/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey"); end
/script if (not PlayerFrame.inCombat) then CastSpellByName("Attack"); end



8.B 鹰之守护+自动射击
]而这个则是先开始自动射击,再判断身上是否有鹰之守护的效果,没有的话,使用鹰之守护。
/cast Auto Shot
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); end



8.C 鹰之守护+瞄准射击
瞄准射击的版本
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); else CastSpellByName("Aimed Shot(Rank Y)"); end




9.影遁相关(暗夜专用)

9.A 藏身
影遁的同时躺下,藏身之用……
/cast Shadowmeld(Racial)
/laydown



9.B 进食
吃饭喝水的同时影遁,也是出于安全考虑……
/target "player"
/script UseContainerItem(FoodBag, FoodSlot);
/script UseContainerItem(DrinkBag, DrinkSlot);
/cast Shadowmeld(Racial)





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #3 大 中 小 使用道具 发表于 2007-12-3 10:08 资料 个人空间 短消息 加为好友
10.切换技能栏

/script CURRENT_ACTIONBAR_PAGE = X
/script ChangeActionBarPage()



将3换成你想切换到的技能栏页数

此宏可以有这样的用法
/cast Aspect of the Monkey
/script CURRENT_ACTIONBAR_PAGE = 3
/script ChangeActionBarPage()


切换技能栏的同时使用猴之守护。

还可以加上前面的BUFF判断
/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey"); end
/script CURRENT_ACTIONBAR_PAGE = 3
/script ChangeActionBarPage()



11.目标信息
/script if UnitClassification("target")=="elite" then SendChatMessage("".. UnitLevel("target") .. "+ " .. UnitName("target"), "party") else SendChatMessage("" .. UnitLevel("target") .. " " .. UnitName("target"), "party"); end



这个宏在PARTY频道中发出当前目标的一些相关信息。"+"代表精英。效果如下:
[Party]Hank:50 Stormwind Guard
[Party]Hank:43+ King Bangalash

下面是一个目标信息的相关函数列表:
UnitName 如"Coffiex","moonwell"
UnitLevel 如"42","60"
UnitClass 如"Warrior","Shaman"
UnitClassification 如"elite","worldboss"
UnitCreatureFamily 如"Wolf","Cat"
UnitCreatureType 如"Beast","Humanoid"
UnitRace 如"Nightelf","Orc"


12.任务接受页面相关

12.A 增加文字浮现速度
/script QUEST_DESCRIPTION_GRADIENT_CPS = 100



12.B 取消文字逐渐浮现效果
/script QUEST_FADING_ENABLE = nil



12.C 直接接受当前窗口中的任务
/script AcceptQuest()




13.切换全屏模式与窗口模式
/script SetCVar("gxWindow", 1 - GetCVar("gxWindow"))
/console gxRestart




14.设定“真实鼠标视野”
/script CameraOrSelectOrMoveStart(arg1)


15.延迟宏(需要Cosmos)

15.A 盗贼武器上毒并定时提示
给双手的武器都上毒,并在毒性还有一分钟就消退的时候在聊天窗口发出提示信息。
/script UseContainerItem(Bag,Slot); PickupInventoryItem(16); UseContainerItem(Bag,Slot); PickupInventoryItem(17);
/in 1740 /script DEFAULT_CHAT_FRAME:AddMessage("Poison wearing off in one minute.")



15.B 魔法效果消退提示
同样的,你也可以对持续性的魔法使用相似的宏。提示信息将在魔法使用X秒后出现,提示你还有Y秒魔法就将会失效。
/script T = UnitName("target");
/cast Spell(Rank 1);
/in X /script DEFAULT_CHAT_FRAME:AddMessage("Spell will wear off " ..T .." in Y seconds.")



也可以这样,X为魔法的持续时间(秒)。在魔法效果消退时提示信息。
/script T = UnitName("target");
/cast Spell(Rank 1);
/in X /script DEFAULT_CHAT_FRAME:AddMessage("Spell has worn off " ..T)



15.C 使用闷棍并在不同时段内提示不同信息
使用闷棍并在不同时段内在PARTY中提示不同信息。以下是3级的闷棍的例子
/script T = UnitLevel("target") .. " " .. UnitName("target");
/cast Sap(Rank 3);
/script SendChatMessage(T.." sapped.","party");
/in 30 /script SendChatMessage(T.." up in 15.","party");
/in 40 /script SendChatMessage(T.." up in 5.","party");
/in 45 /fire



15.D 战士逃跑宏
这是一个战士逃跑的时候使用的宏,首先使用包中的药水,换上盾牌(此例中其换武器的快捷位于技能栏第一页第11和12格)。使用Thunder Clap减低敌人速度,然后转身逃跑。
/script UseContainerItem(Bag, Slot);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12)
/cast Thunder Clap(Rank 1)
/script TurnLeftStart(arg1)
/in 1 /script TurnLeftStop(arg1);ToggleAutoRun()




16.数组宏的实际运用

下面的宏让你只使用一个宏就可以循环地使用数个技能。此以圣骑士为例,第一次使用Seal of the Crusader,第二次使用Judgement,第三次使用Seal of Righeousness,第四次又回到使用Seal of the Crusader,如此循环。
新建宏如下:
/script AQ={};AQ.i=1;AQ.x=function() AQ[AQ.i]() end
/script AQ[1]=function() CastSpellByName("Seal of the Crusader(Rank 1)"); AQ.i=2 end
/script AQ[2]=function() CastSpellByName("Judgement"); AQ.i=3 end
/script AQ[3]=function() CastSpellByName("Seal of Righeousness(Rank 1)"); AQ.i=1 end


再新建一宏如下:
/script AQ.x()


在每次进入游戏之后使用一次第一个宏,然后利用第二个宏就可以实现技能的循环使用了。


17.通用变量的设置与使用

通用变量可以被你所有的宏所调用。
用下面的格式新建一个通用变量
/script setglobal("","");

获取通用变量的值

getglobal("")

通用变量可以用来简化你的宏,以避免超过宏255的字符的最大限制。比如把技能名放到通用变量中。

通用变量每次进入游戏都必须重新设置。你可以用一个宏来设定你的通用变量。
如下面这样的一个宏:

/script setglobal("HT1","Healing Touch(Rank 3)"); setglobal("HT2","Healing Touch(Rank 4)"); setglobal("RJ","Rejuvenation(Rank 4)");




游戏中的使用实例

/script if (UnitName("target") ~=nil and UnitInParty("target")) then CastSpellByName(getglobal("RJ")) else TargetUnit("player") CastSpellByName(getglobal("RJ")) end; TargetLastEnemy();




18.图腾破坏

下面是德鲁依的一个例子,如果当前选择的目标是图腾则使用一级的月火,如果不是图腾则使用最高级的月火:
/script r=10; if (UnitName("target") ~=nil) and (string.find(UnitName("target"),"Totemf"))~=nil then CastSpellByName("Moonfire(Rank 1)") else CastSpellByName("Moonfire(Rank "..r..")"); end



下面是另一个用于破坏图腾的宏,它会搜寻附近的图腾并对其使用1级的月火
/target [图腾名的前5-10的字符]
/target [图腾名的前5-10的字符]
/target [图腾名的前5-10的字符]
/target [图腾名的前5-10的字符]
/target [图腾名的前5-10的字符]
/cast Moonfire(Rank 1)

下面是一个图腾名列表:
-- Air
"Nature Resistance Totem",
"Windwall Totem",
"Windfury Totem",
"Grace of Air Totem",
"Grounding Totem"

-- Earth
"Stoneclaw Totem",
"Earthbind Totem",
"Tremor Totem",
"Strength of Earth Totem",
"Stoneskin Totem"

-- Water
"Fire Resistance Totem",
"Poison Cleansing Totem",
"Disease Cleansing Totem",
"Healing Stream Totem",
"Mana Spring Totem"

-- Fire
"Frost Resistance Totem",
"Flametongue Totem",
"Magma Totem",
"Fire Nova Totem",
"Searing Totem"


19.自然之速(气定神闲)

下面是萨满自然之速接治疗波的一例:
/target "player"
/script CastAway("swift",10,"Nature's Swiftness","Healing Wave(Rank 9)")
/script TargetLastEnemy();
/script AttackTarget();


使用了自然之速之后马上就能跟上治疗波而不用按2次技能。法师可以将自然之速换为气定神闲,后面的治疗波也可以换成任何可搭配使用的魔法。





我放手 我转身 假洒脱 谁懂我多么不舍得
太爱了 所以我 没有哭 没有说
引用 报告 评分 回复

土拨鼠

高级会员

人见人爱花见花开 ^_^



帅哥
UID 10418
精华 0
积分 1011
帖子 362
博益(贡献奖励值) 0 金
积分(参与累加数) 1011 分
财智(投资版专用) 0 点
阅读权限 50
注册 2007-10-19
状态 在线 #4 大 中 小 使用道具 发表于 2007-12-3 10:11 资料 个人空间 短消息 加为好友
宏的创建


宏使你能够创建自己独创且非常酷的命令集,你可以通过点击一个按钮便完成一系列的命令。宏拥有许多用法。

输入"/macro"或者点击谈话[talk]按钮并且选择宏[Macro]选项,将会弹出一个对话框,里面记录着你现有的宏。在开始的时候里面应该没有任何宏。
点击对话框底部的"new"按钮,将会弹出另外一个对话框,其中要求你输入宏的名称并且为这个宏选择一个图标。
给你的宏命名,选择一个容易记忆的名字。例如,输入"assist[协助]"。
选择一个图标。这里我们选择的是一把剑。
点击"Okay"按钮。你现在能够在你的宏对话框里看到这个宏的名称(assist),在名称的旁边有你刚才选择的图标(剑)。
现在在assist[协助]图标上点鼠标左键加亮它。除了"new"按钮外,同时也有一个按钮用来改变你的宏的名称和图标,以便你以后想改变它的名称或者选择一个不同的图标。
一旦你的"assist"图标是加亮状态,你就可以向下移动你的鼠标指针进入"enter macro commands[输入宏命令]的区域。在这里你可以输入你想让这个宏按钮实现的命令。
输入"/assist Nebu[协助Nebu]"。
现在移动你的鼠标指针回到剑的图标(assist[协助]宏),在这个图标上压下鼠标的左键不松开。
现在拖动图标到你的动作条的空槽里去。
当你要使用这个新的宏的时候,键入这个动作按钮对应的数字或者直接右键点击按钮本身。
现在你拥有了一个宏按钮,它将在其他玩家(Nebu)攻击的时候协助他。无论何时,当Nebu攻击目标的时候,点击这个按钮后你的目标将会变为他正在攻击的目标。

宏的结束
当你编辑或者创建好一个宏后,点击宏对话框右上角的"x"按钮来关闭这个窗口。

宏的编辑
输入"/macro"然后左键点击你希望改变的宏。你现在可以在"enter macro commands[输入宏命令]"里对这个宏做一些改变,完成后点击"x"按钮来关闭宏窗口。

宏的限制
宏是有长度限制的,如果你的信息太长了,就缩减一些!(显然)

宏的建议
尽可能使用游戏内置的斜杠命令

这里列举了宏的一些其他可能的用途:

—重复一些你不想多次输入的文字
—为了在线拍卖而重复文字
—制作一个搞笑的口号
—执行一系列命令,例如:
   /leave 1 /leave 2(离开频道1和频道2)
   /join 魔兽世界traders(加入魔兽世界traders频道)
   /g Hello everyone!(在你的公会频道说"Hello everyone!")

其它信息
你可以在你的宏中使用"%t"来代替目标怪物、生物或者玩家,将"%t"插入在你的句子中便可。例如,"/say hi %t",如果你选定了目标为玩家Nebu,这条命令实际上就等同于"/say hi Nebu"。

"/cast"让你能够通过名称来施放魔法。输入"/cast 魔法名称" —— 例如:"/cast Fireball(Rank 1)"。你可以手动输入名称,也可以通过按住Shift键的同时鼠标左键点击魔法书上的一个魔法,这样可以将魔法名称补充到"/cast "的后面去。




推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com