WOWwow 猎人副手在主手和副手上适合装备什么类型的武器?剑or...

定论!副手剑类武器触发剑专精效果, 触发额外1次主手攻击!
日期:2008年06月11日
作者:ayanamei
责任编辑:liuxiang
  2020AP PVE装备 剑拳战斗天赋
  主手 牌子爪 速度2.5
  副手 10级单手剑 10-20 速度 2.2
  剑精 实际数据解读方式
  黄字 xxx通过剑类武器专精 获得额外1次攻击
  白字 xxx的近战攻击命中xxx 造成xxx 伤害 (剑精本身伤害 副手触发则是副手伤害)
  白字 xxx的近战攻击命中xxx 造成xxx 伤害 (剑精触发的额外一次主手武器伤害)
  白字 xxx的近战攻击命中xxx 造成xxx 伤害 (武器自动攻击)
  从我的贴图中可以看出 剑精额外攻击一次以后 紧接着依然是一次2.5速度主手造成的伤害
  显然 副手速度〉主手的情况下
  连续出现2次主手伤害 其中前面一次必然是剑精造成的额外攻击
  下面更新了Recount 抓取到2次副手触发剑精的数据
  一次副手毒刃触发 一次副手自动攻击触发
  而Recount 本身只将触发剑精的攻击伤害记录 额外攻击作为普通肉搏记录
  Recount中的剑精伤害 并没有真正体现剑精的价值 等待以后版本修正
相关文章:
近期热点:
火爆专区:
编辑推荐
新游快递
有奖活动
十大热门文章
游戏库推荐
类型 画面 分类 视频精选
热点搜索
综合热点
网络游戏
单机游戏
电子竞技
动漫连载
小游戏 |资料片70级盗贼pve装备、武器、附魔及宝石
2007-06-23 22:43:10
来源:
作者:janearey
单手剑
这个部分我将分2章介绍,适合主手和适合副手的剑
主手剑
练级中的主手剑,主要有62级hellfire部分掉落的,和nagrand的一个5任务所给的一把防战剑,对于刚刚踏入资料片的贼来说,他们的伤害都是不错的提升。到达70级的时候,如果一时没有什么好选择的,一些绿色的剑也有不错的伤害。
有一把紫色剑,是盗贼初期的大众选择,就是主城德莱尼声望最高的时候可以买的这把:
属性:
143 - 267 速度 2.60
78.8d 装备:命中几率增加18
装备:增加攻击强度38
如果你从67级开始就farm德莱尼声望所需要的牌子,到70就拿上这把剑。以盗贼的farm速度来说,这并不难,这是广大剑贼初期的不而选择,伤害,d ,属性,在70级初期来说,都是完美的。
还有一件boe的世界掉落,143 - 267 速度 2.60;属性逆天,有几率打出额外一击,由于世界掉落,我就不评价了。
当声望剑用到厌倦的时候,我们就会放眼更高的武器,这时,两件装备就浮出水面
Hope Ender
152 - 283 速度 2.60
83.7 d 装备:攻击强度增加60
这一把是野外bo 大卡扎克掉落,鉴于野外bo 争抢困难,所以,入手难度为高。
入手相对简单的是卡拉赞虚空龙掉落:
Spiteblade
153 - 285 速度 2.70
81.1 d +12 敏捷
+13 体力
装备:增加攻击强度42
这把剑是盗贼初期容易实现的梦想,是一把倒背在背后的大剑,效果图近期补上。
竞技场的剑跟锤子属性差不多,伤害一般d 不错,但是不建议pve贼在他身上花废太大精力
由于初期声望剑入手简单,所以剑贼有一种千篇一律的感觉,但是随着raid的进度,盗贼的伤害随着武器的变化也慢慢提高了。所以在pve中,剑贼是一条中归中举的道路,没有太大变化,但是永远是raid中的稳定d 输出者。
副手剑
提到副手武器,不得不提一个新技能。在资料片里,盗贼新加了一个技能:shiv,伤害是副手平砍+副手毒。他所需要的能量根据副手武器速度而定,如果副手武器速度为1.6,将需要36能量;1.4=34能量。刚开始感觉这招除了pvp时给人上缓、残毒,但是现在发现他在pve中也有用处;由于shiv消耗的能量少,所以副手涂速毒的话,打出的伤害却比 只少一点点。5次shiv,然后撕裂,在下24秒内再用 +剔骨,d 会略微上升。
综上,副手速度现在越低越适合pve。
现在我来介绍2把副手剑:
这一把是许多盗贼的选择,他与主手的声望剑总是形影不离:
属性:
70 - 131 速度 1.40
71.8 d +15 敏捷
装备: 剑系技能增加14
装备: 攻击强度增加26.
这把确实是蓝剑中最强的,属性完美,d 不弱,其1.4的攻速是他最大的亮点。时光之洞黑暗之门部分最终bo 掉落;初期这个副本有一定挑战性,但是过一段时间就能顺利farm了,入手难度为中。
天空副本The Botanica部分第二个bo 掉落:
Revenger
75 - 140 速度1.50
71.7 d 命中触发: 从目标单位偷取105至125生命
d 还看得过去,但是由于属性不适合副手,并不推荐使用这把。
另外就是pvp的荣誉装,由于速度1.8并不是很出众,所以之列出属性,就不评价了
Grand Marshal's Quickblade
103 - 155 速度 1.80
71.7 d +18 体力
装备: 增加命中几率8
装备: 增加暴击几率13
装备: 增加韧性9
装备: 攻击强度增加26.
前面已经介绍过锻造的剑了,并不适合贼,贼的紫色副手剑确实很难选。
首选应该是竞技场的剑:
属性:
Gladiator's Quickblade
111 - 206 速度 1.80
88.1 d +21 体力
装备: 增加命中几率8
装备: 增加暴击几率14
装备: 增加韧性9
装备: 攻击强度增加28
目前为止并没有完全适合盗贼作副手的剑,所以要是有精力,花点时间把这把剑拿到,能大幅提升伤害。
昨天的raid中,卡拉赞国际象棋开出了国王防御者,是一把很不错的tank剑,由于mt有风剑,我就拿了一把试试感觉。
属性:
King's Defender
91 - 169 速度1.60
81.2 d 140 护甲
+25 体力
装备: 增加防御等级11
装备: 增加命中几率15
最开始的时候我认为这把剑的高伤害,高d 可以拟补他属性上的不足,但试用以后,效果不尽人意。
ap和暴击的减少,副手总体d 只升高了4点;主手伤害同时下降了6点。
但是在pve过程中,伤害并不是全部,保证不死也是一个贼的本则,在资料片中,许多raid bo 战中,不能完全指望healer加血,如grull,doomwalker等等,自身血量也是很重要的。这把剑也许能在伤害输出和血量中帮你找到平衡。
另外还有一把锻造做的boe单手剑
属性:
Felsteel Longblade
128 - 239 速度 2.20
83.4 d +26 敏捷
+15 体力
属性还好,速度并不适合副手,材料复杂,性价比不是很好。
贼现在没有什么特别好的紫色副手剑可以选择,不是速度太慢,就是tank剑,希望暴雪考虑剑系贼的需要,给我们一把好的副手。
点击复制文章地址,推荐给QQ和MSN上的朋友
2009-02-13 17:49:23
竞技场匕首啊!
2009-02-13 17:43:21
多玩游戏网友
他戴的是战士头盔
2009-01-16 13:16:02
贼贼贼
不错谢了,我的PVP装可以换掉了
2009-01-15 22:35:58
非常感谢!!
2009-01-12 23:13:27
多玩游戏网友
非常棒
发 表 留 言
(验证码区分大小写)
我要留名
热点新闻
推荐视频
推荐图集
推荐插件
巫妖王之怒数据库推荐
台服3.30关注
    
   
   
近国服3.13关注
    
   
T8套装
   
   
   
竞技场第六季
   
   
   
其他频道推荐
最劲爆新游戏
广州华多网络科技有限公司 版权所有 2005-2011
DuoWan.com [多玩游戏]
ICP证编号:都上博客 魔兽世界
关于作者
用户名:都上
笔名:都上
日历  
快速登录
+ 用户名:
+ 密 码:
快速浏览
最新文章






























文章索引
在线留言
博客友邻
最新评论
你想和我这样赚钱吗
访问统计:
文章个数:155
评论个数:227
留言条数:17
都上博客 魔兽世界
都来上吧,这是一个纯文字的魔兽世界博客
(每+1)
+2近战攻击强度:战士、萨满、德鲁伊、圣骑士
+1近战攻击强度:盗贼、猎人
+1敏=2护甲值
+20敏=致命一击率+1%(猎人+53敏=+1%致命一击率,盗贼+29敏=+1%致命一击率)
+20敏=闪避率+1%(猎人+26.5敏=+1%闪避率,盗贼+14.5敏=+1%闪避率)
对盗贼、猎人,+1敏=+1近战攻击强度
对战士、盗贼、猎人,+1敏=+2远端攻击强度
+1耐=+10最大生命值(全职业共通)
+1智力=+15最大法力值(战士、盗贼除外)
每+59.5智力=+1%法术爆击率
回魔公式:
法师=(精神÷4)+11
牧师=(精神÷4)+13
术士=(精神÷4)+8
德鲁伊=(精神÷5)+15
萨满=(精神÷5)+17
猎人=(精神÷4)+11
圣骑士=(精神÷4)+8
======================================================================
普攻伤害:
普攻伤害=武器威力+(攻击强度÷14×攻速)
例如:我拿了一把40-60(攻速2.0)的武器,攻击强度420,那我每次(注意,是每次,不是每秒。)则可以打出100-120的伤害。
增加法术效果:
法术实际增加效果=总增加量×(A÷3.5)×P
A=法术原始施法时间(不考虑天赋、装备所减少的施法时间),瞬发法术A=1.5
P=1(冰系法术P=0.95,范围攻击法术P=0.33)
*本公式只合用最高阶的法术,例如:闪电链有1到4级,只有闪电链4才能完整套用本公式,闪电链1到3的额外增加伤害将会打折。
- 作者:
2006年12月10日, 星期日 18:40 
2006/9/18
猎人宏中文成功版(欢迎补充!)
***声明***
1 以下宏都经上机验证成功。欢迎补充,但放上来的宏请务必已经在中文版WOW的机器上验证成功后往这里放。谢谢。
2 本贴已经在
猎人版置顶,感谢斑竹秋暮之巨龙;
3 所有括号/数字/标点符号请用英文输入法输入;
4 等级 1 可改成你的实际能用等级,如 等级 2 ;
5 如果不用回车换行,整个宏的语句要用分开,如果用回车换行了,可以不在语句后加
6 部分宏参考了前人经验,由于人数甚多,不在此一一列举,一起谢谢了。
7 复制到本机后,请检查宏代码行末,不能有空格
8 由于软件兼容问题,导致贴上来的代码有时分行有时断行,这种情况下,请记住,只有/符号是行首标记,其他都是单行的,行间不隔行。词句之间不断行,但可能是用;号分隔,或者直接是用空格隔。如果直接复制下去的不能用,请先复制到本机记事本中,按上面所说进行整理,再复制进WOW中使用。最傻瓜的办法:照着我给出的代码在WOW中手工输入一遍。
我的魔兽朋友圈:
由于格式问题及论坛限制,可能这儿给出的代码没法直接复制使用。请大家访问上面的小圈子,我在那里给出了代码下载文件,下载后打开,再复制粘贴就OK了。
========================
什么是宏?有什么用?怎么用?
,1.html?time=1125478993
主要内容来自上面这个地址。我作了小小的修改。呵呵。对大家扫个盲!
推荐:一篇很好的宏的图解教程,指导菜鸟做宏
,1.html?time=1125915771
1、什么是宏:
宏是一组命令的集合,可以完成一个相对比较复杂的操作,比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切。比如,
/s 冰冻陷阱别打!
/施放 冰冻陷阱(等级 1)
就是在战斗中,放陷阱前,向队友通知一声,随后立即安放陷阱。二个功能按一键(宏的快捷键)就能完成。如果法师变羊,也可采用相似办法,进行说明或通知。
2、怎么设置宏:
首先,回车,再敲/MACRO。看见了吧?会弹出一个窗口,上面有New(新建宏命令)和Complete(完成宏命令)两个按键。点New,又会弹出一个窗口,哇,花花绿绿的,里面包括了WOW几乎所有的技能图标,随你喜欢,随便选一个!它就是你设置的宏命令的图标了,给它取个名字吧!方便你用的时候好找。然后回到第一个窗口,在它上面有一个输入菜单(别告诉我找不到…它可是占了这个窗口的一半多…)在里面输入特定的内容,然后点Complete。接下来你要做的就是把这个代表你宏命令的图标用鼠标左键拉到快捷栏里,想怎么用就怎么用…
相信很多人都知道WOW中的斜杠/和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作
  我们现在用一个宏把他们串起来:
  第一行内容:“/Kneel”
  第二行内容:“/say 如果你不嫁给我,那么我就一辈子不起来…” ”
  这样你的人物就会先下跪再说:如果你不嫁给我,那么我就一辈子不起来…
  宏可以应用所有WOW中已经定义了的斜杠/和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,
  只需要在宏的定义过程中应用/cast命令,下面是已知的一些常用命令:
  /A ist 这是个援助进攻的命令。当你的队伍同时面对几个敌人时,只要点击自己的队友(一般是队伍中的战士),然后使用这个命令,你的目标就会变成战士所选中的目标。大家集中火力消灭一个起!
  /Cast 这是个使用技能的命令。当你在宏命令里输入/Cast 技能名(技能等级)或者只要按住Shift同时用鼠标点击一下你想要输入的技能的图标。例如当你是一个战士,想制作一个使用战斗怒吼的宏时,你可以输入/Cast Battle Shout(Rank 1)或者是直接按住Shift点击Battle Shout这个技能的图标。当然你可以在一个宏的不同行上输入几个技能,那么当你使用这个宏时,几个技能就会一起释放出来,再用不着你像章鱼一样同时按下几个键了 。
  %t 这个符号也许会经常出现在你的宏命令里,它是一个代码,代表你当前所选中的人名。例如,你在宏里写下这么一句。(注意:后面要加一空格。) “/g %t ,今天天气真好,有没兴趣和我一起上山采蘑菇…”
  如果你点中一位名叫苯笨的玩家,那么当你按下这个宏时,你就会说:“笨笨,今天天气真好,有没兴趣和我一起上山采蘑菇…”
3、怎样使用我给出的宏
只要在宏内容的编辑窗中,照抄我给出的宏代码即可,当然宏的图标、名字你们自己取即可。或者,让WOW窗口方式运行,打开宏编辑窗后,直接把网页上的代码内容复制进去即可。容易吧?
强烈呼吁楼主搞一个《WOW宏指令语法入门及常用命令、函数字典》,发行单行本我第一个来买!
答:所有函数都有,下面的地址,自己看吧。
========
1、 选目标,放标记
智能选定目标
功能:如果没有选定目标,则选定最近的敌人;如果队友(宠物或玩家)存在,则选定
他们的攻击目标为当前目标;
如果有队友,自动选择队友的当前目标;如果没有队友,也没有自己选定的当前目标,
则自动选定最近的目标;如果队友无选定目标,自己也没选定目标,选选中最近一次曾
经选定的目标为当前目标。本宏可以很好地增强了TAB键的功能,把该宏快捷键设成TAB
,你会发现很好用,呵呵。
队友可以是BB。如果队友是BB,就是我下面给出的代码, 名字是 pet ;
如果队友是玩家,则把 pet 修改成顶怪的队友的编号 party1 或party2 或party3 或
party4,其中party1就是从上往下数第一个队友,2就是第二个,以此类推,到party4为
pet 是一个编号名字,属于 UnitId 类型,只要该类型的编号,都可以在此通用。
/ if UnitExists(" et) then A istUnit(" et); end; if (not UnitExists(target)) then TargetNearestEnemy();end
/ if (not UnitExists(target)) then TargetLastEnemy() end
功能:组队拉怪放标记,显示选中目标的名字等信息。
注意:先要选中一个敌人
建议:与宏0结合使用,方便无比,性能优异!!建议直接用之替换系统的雄鹰守护技能
/ if UnitExists(target) then SendChatMe age(..UnitName(target)..[lvl ..UnitLevel(target)..]," ay);end
/施放 猎人印记(等级 1)
选怪放标记 SOLO+组队通用版 强烈推荐!
如果有队友,自动选择队友的当前目标,放印记;如果没有队友,也没有自己选定的当
前目标,则自动选定最近的目标放标记;如果队友无选定目标,自己也没选定目标,选
选中最近一次曾经选定的目标为当前目标,放标记;如果没有队友,但自己已经选定了一
个目标,则对已选定目标放标记。本宏可以很好地增强了TAB键的功能,把该宏快捷键设
成TAB,你会发现很好用,呵呵。
队友可以是BB。如果队友是BB,就是我下面给出的代码, 名字是 pet ;
如果队友是玩家,则把 pet 修改成顶怪的队友的编号 party1 或party2 或party3 或
party4,其中party1就是从上往下数第一个队友,2就是第二个,以此类推,到party4为
pet 是一个编号名字,属于 UnitId 类型,只要该类型的编号,都可以在此通用。至于
什么是UnitId类型,前面的技术说明文档里已经给出,请自己查阅;
二区月光林地精灵猎人:天使风刃。他当时帮助我一起测试这个宏,特此感谢。
/ if UnitExists(" et) then A istUnit(" et); end; if (not UnitExists(target)) then TargetNearestEnemy();end;
/ if (not UnitExists(target)) then TargetLastEnemy();end;
/ CastSpellByName(猎人印记(等级 1))
智能放标记,宠突进,宠出击
功能:如果目标身上第一个DEBUFF不是标记,比如是毒蛇,或者没有DEBUFF,则放标记
,否则不放,后BB突进,出击
说明:建议与协助宏配合使用,副本慎用;注意,4是指宠物技能共四个中的左边的第一
个,我一般放“突进”;
/ if (UnitDebuff(target,1)) then if (not (string.find(UnitDebuff(target, 1),Sniper))) then CastSpellByName(猎人印记(等级 1));end; else CastSpellByName(猎人印记(等级 1));end;
/ PetAttack()
/ CastPetAction(4)
智能放标记宏(不会重复放标记在同一个对象身上)
目标第一个DEBUFF存在但不是标记,如毒蛇,或者目标身上无DEBUFF,则放猎人标记否
则不放,后显示怪物名字
请先选定一个目标;适用于有比你更高级别的猎人在队中并已经放了标记时;
建议:与宏0结合使用,显示目标信息比宏1略少(仅显示目标名字,不显示等级),但不
会重复放标记。建议直接用之替换系统的雄鹰守护技能按钮
/ if (UnitDebuff(target,1)) then if (not (string.find(UnitDebuff(target, 1),Sniper))) then CastSpellByName(猎人印记(等级 1));end; else CastSpellByName(猎人印记(等级 1));end;SendChatMe age(瞄准..UnitName(target)," ay)
副本报告巡逻队来了
注意:先用鼠标指在视野内的怪身上,按该宏的快捷键即可
/ p=mouseover
/ if UnitExists(target) then if (UnitIsEnemy(" layer,p) ) then SendChatMe age(巡逻队..UnitName(target)..[lvl ..UnitLevel(target)..]来了," ay);end end
-------------------------------------------------------------
2、 假死:
说明:假死后当前目标不会消失,但假死刹那间则已经清除当前目标而提高成功率。因
为使用中发现,假死后,当前目标消失的话,起来后还得重新选定目标,不太方便,故
故作此改进
/ PetPa iveMode()
/ ClearTarget()
/施放 假死
/ TargetLastEnemy()
第一行收回BB,一般情况下,BB也已经在挨打,或者在打怪,收回到身边有什么用吗?
答:这个假死,是为了手动放陷阱。BB攻击敌人,则不能放陷阱。这是游戏规定的,放
陷阱必须在非战斗状态。如果不收,BB设成被动模式,则挨打,顶怪,没办法。如果收
回,则怪追BB打,BB跑得快,挨打就少了,当BB跑回身边,再过小会,8S差不多也过去
了,放冰陷,然后治疗BB,或绷带。
3、 驱散射击:
收宠驱散后,取消自动攻击状态,但当前目标冰变。因为使用中,经常一驱散后,宠也
收了,可是自己立马又给我敌人一次攻击,把敌人打醒了,很不方便,故作此改进
/ PetFollow()
/施放 驱散射击
/s 困惑4S!挨打解除
/ ClearTarget()
/ TargetLastEnemy()
楼主~~为什么驱散的宏怎么不好用~~问题是使用以后宝宝是回来了~可是没有使用技能~~
能帮忙解决吗?????谢谢了!!!!
答:驱散宏,我的写法是最常用的。当用驱散时,目标不受攻击的情况下,困惑4S,如果
受攻击,则解除。我用驱散,主要是为了让敌困惑4S,以拉开距离或治疗BB或吃喝或绷
带。所以,用本宏前,不要用毒箭,也不能让队友用痛苦之类的DOT。如果你非想再接着
加技能,实现起来很简单,只要下面再加:/施放 毒蛇刺击(等级 1)
5、 智能绷带
选定友好单位则对其用绷带;没选定目标或选定目标为敌人且敌人在8码外对自已用绷带
;如果选定目标为敌人且在8码内,对BB用绷带。
请把绷带放在从左向右数第二个包,第一行自左向右数第一格;
请把屏幕左下角技能按钮栏(一般是系统默认为shift+1快捷键的那个栏)从左往右数第
2格放上远程攻击技能,如毒蛇
/ UseContainerItem(3,1)
/ if(IsActionInRange(2) == 1) then SpellTargetUnit(" layer) else SpellTargetUnit(" et) end
12、 装死放冰冻陷阱
由于时间上的要求,一般没法一次性成功。所以一般不做这样的宏,也建议别用这样的
宏。非要做的话,就这样吧。只不过要一直按键,一直到冰陷放出为止。
用本宏的建议:自己与怪拉开点距离,宠顶,自己***打。当必要时,则按宏。一般来说,
这样操作,都能成功。
/ PetFollow()
/ ClearTarget()
/施放 假死
/施放 冰冰陷阱(等级 1)
打人的时候再点就是不出假死,但是非战斗状态的时候点了就只放陷阱.也没有假死,
答:首先,这个宏,只要你能手动放出假死并放出陷阱的话,这个宏也一定能成功。
其次,关于你的问题,我想解释一下。要放假死,如果不抵抗而且身上没有让你假死不
了的敌方技能,无论你是否战斗中进行中,假死就能成功。在这种情况下,用我的宏,
至少能成功假死。如果假死成功,必须要有8S不受攻击,也不攻击别人(包括宠物不攻
击),才能放陷阱,一般来说,这时肯定能成功安放陷阱
。用宏的话,也一样能实现。你为什么不成功,原因:战斗中,如果宠物没设成被动模
式,则不会成功,如果宠物受攻击,不攻击,是否影响假死后放陷阱,我不太清楚;后
来,只出陷阱,不假死,我估计是你的假死冷却时间还没结束。
总之,这个宏,你只要手动能放出陷阱,宏也可以。
13、 摔绊宏:
经使用效果的比较,发现下面的写法有效性高,而且动作帅得多
/施放 摔绊(等级 1)
/ Jump()
/ ToggleAutoRun()
---------------------------------------------------------------------
(4) 喂宠
请把宠物食放在从左向右数第二个包,第一行自左向右数第二格
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]
,如果在非战斗状态自动喂食,如果食品已经吃完,则自动打开对应背包,在战斗状态
时哪怕食品为空也不会打开背包。
食品放在包3,2
前一个改进版,在战斗状态时如果食品为空,会打开背包不太好
/ if (not UnitAffectingCombat(" layer)) then if (not GetContainerItemLink(3, 2)) then OpenBag(3); else CastSpellByName(喂养宠物); PickupContainerItem(3, 2);end end
喂宠的宏是不是缺什么?我使用这个宏之前还必须使用喂养宠物这个技能,不然的话使
用宏就直接把物品拿在手上了。
答:这个宏肯定可以用。我一直在用的。我放上来的宏全部是试验成功后才放的。至于
你说的问题,可能是因为在战斗中你用了这个宏,或者对应格子里没有宠物愿意吃的食
物。我自己也碰到过同样问题。只要重新把宏图标从/m中拖出到动作栏上,便可恢复正
常。请放心使用。注意,如果宏正常,图标上有英文字的,是宏的名字。如果图标变成
了普通的食物图标,则出错了,要重新拖一下。
(7) 解散/召唤宠物
可以节省一个动作栏位。
/施放 解散宠物
/施放 召唤宠物
(9) 宠物攻击/追击
注意,4是指宠物技能共四个中的左边的第一个,我一般放“突进”,点击一下就用一次
/ PetAttack()
/ CastPetAction(4)
---------------------------------------------------------
17、 冰冻陷阱:
建议组队使用
/施放 冰冻陷阱(等级 1)
/s 冰陷阱!别打冰住的怪,能冰10S!
18、 冰霜陷阱:
建议加了诱捕天赋的在副本组队时使用
/施放 冰霜陷阱
/s 霜陷阱!请在陷阱上顶怪,布衣开战2S后动手!
6、 协助
宏2(推荐!)
感谢:二区月光林地小D:随风的丫头。在其帮助下,我在加基森边上,完成了本宏的测
作用:自动协助第一个队友,比前一个版本的方便些。如果想协助第4个队友,请
把" arty1必为" arty4。一般,我把战士设为协助对象。
/ A istUnit(" arty1)
/施放 猎人印记(等级 1)
----------------------------------------------------
(14) 报告自已坐标:
可以一定程度上代替插件的坐标显示功能,方便那些不用插件的朋友,现在可以凑合着
找特定坐标的东西了。使用方法:鼠标放在视野内任何地方,按宏键
/ x,y=GetPlayerMapPosition(" layer);
/ x=x*100;y=y*100;
/ Msg=(x,y):(..string.format(%d,x).. ,..string.format(%d,y).. )
/ SendChatMe age(Msg," ay)
(15) 快捷寻找精英BB
当在刷新点附近转悠时,先把“断牙”改为BB的名字,不时按一下这个宏,如果BB在以
玩家为圆心的半径至少41码(经验证,感觉应该更大)的圆形区域内刷新,则BB头像出
现在屏幕左上玩家自己头像右边,且玩家会跳一下。试验时,我没骑马,成功了。如果
骑马了,感觉也可行。由于本人爱好招BB,经常为了招个心仪的BB用几天时间,感觉在
到处转悠寻找目标时,很不方便。于是想出这么个招,好使!嘿嘿!该招是在荒芜之地
招38级JY红狼巴那布斯(Barnabus)时,大约是第5天,想到的,特此纪念,嘿嘿。可恨为
什么猎人只能养三个宠啊!!痛苦!!
/target 断牙
/ if (string.find(UnitName(target),断牙)~=nil) then Jump() else ClearTarget() end
(20) 切换全屏模式与窗口模式
/ SetCVar(gxWindow, 1 - GetCVar(gxWindow))
/co ole gxRestart
-------------------------------------------------------
16、 鹰守/豹守切换
/ for i=1,16,1 do if (UnitBuff(" layer,i)~=nil) then if (string.find(UnitBuff(" layer,i),JungleTiger)~=nil) then CastSpellByName(雄鹰守护(等级 1)) reak;end end if(i==16) then CastSpellByName(猎豹守护);end end
10、 鹰守/猴守切换
/ for i=1,16,1 do if (UnitBuff(" layer,i)~=nil) then if (string.find(UnitBuff(" layer,i),Mo quot;)~=nil) then CastSpellByName(雄鹰守护(等级 1)) reak;end end if(i==16) then CastSpellByName(灵猴守护);end end
19、 武器切换:
功能:用瞄准的时候就用速度慢的武器,然后自动使用瞄准,然后打怪的时候就自动换到
速度快的武器
(1) 高攻低速***弓放在(3,4)
(2) 武器切换,在1.7中已经失去意义了。那时,武器切换,必须有冷却时间,比如长
剑,切换后好象要1.5S后才能使用
(3) 有朋友非要这样的宏,我也就给出如下代码,凭经验应该可行,但本宏尚未经本
人验证成功,特此申明。因为本人只有一把烂玩程,555。
/ PickupInventoryItem(18);PickupContainerItem(3,4)
/施放 瞄准射击(等级 1)
/ PickupInventoryItem(18);PickupContainerItem(3,4)
21、 所谓8码外用箭,5码内用摔绊。
其实是有效射程内用远程,近身用摔绊。意义不大。但有朋友实在很想要,就给出一个
吧。我用的毒蛇作试验,把它放在1号技能栏从左向右数第2个格子里。如果想用震荡,
也行,可以放在第3个格子中,同时把下面宏中的2改成3,就可以了。
/ if(UnitName(target)~=nil and (IsActionInRange(2) == 1)) then CastSpellByName(毒蛇钉刺(等级 1)); else CastSpellByName(摔绊(等级 1));end
----------------------------------------------------
(22)破坏图腾
以下宏在ZR中测试通过。注意,复制后请检查行末,不能有空格,如果有,请删除。
破坏图腾1
功能:用远程打图腾,然后切换回最后一个攻击过的目标。
说明:在ZR中可以放心使用,便必须在敌人放出以下二个中至少一个时才行,不然可能
会报错。如果想打别的图腾,请自行修改图腾名
/target 熔岩喷射圈腾
/target 强效治疗结界
/ Jump()
/施放 奥术射击(等级 1)
/ TargetLastEnemy()
破坏图腾2
功能:用远程打图腾,然后切换回最后一个攻击过的目标。
说明:在ZR中可以放心使用,打掉对应名字的图腾。只是,这个宏只能打一种图腾。如
果想打别的图腾,请自行修改图腾名。或者,多做几个宏,分别改为不同的图腾名,也
/target 强效治疗结界
/ if (string.find(UnitName(target),结界)~=nil) then Jump() ;CastSpellByName(奥术射击(等级 1));else ClearTarget() end
/ TargetLastEnemy()
破坏图腾3
宏名:图腾宏冬泉温泉版
功能:对付快速施放图腾一到三个的图腾师,远程打掉图腾,再切换回原先的目标
背景:前一个ZR版,在ZR中高度通过,可以使用。但当我到冬泉温泉后,发现不好使了
。故重新作了改进和调试,在冬泉温泉的图腾师身上测试通过。
1、这是猎人专用版,默认为BB顶着怪。最终的切换回BB顶着的怪
1、如果只有一个图腾,则没什么问题,按一下宏即可。如果必要,再按一下宏,则切换
回原先的攻击目标; 
2、如果图腾同时出现,>=2个,则要多按几次宏键,注意在打第2个或第3个图腾时,
可能会使用毒蛇或蝰蛇钉刺,此时会报“无效目标”的出错信息,不用管它,注意,这
时要稍等会儿,等紧跟着的自动射击打掉选中的图腾后---后,再按一次宏键切换回
原先的攻击目标。
4、如果组队中,可以把宏中的 PET 替换为  PARTY1,其中,队中第一个队友为
TANK,如果队中第4个队友为TANK,则要改为 PARTY4。这样,最终的主要攻击目标是
TANK在顶着的怪
5、如果要打别的图腾,请把宏中对应的图腾名替换,只需要图腾名的前3个汉字即可。
比如,要打“火焰新星图腾”,只需要把 月焰 替换为 火焰新
/target 地缚图
/target 月焰
/ Jump()
/施放 奥术射击(等级 1)
/施放 毒蛇钉刺(等级 1)
/施放 蝰蛇钉刺(等级 1)
/ if UnitIsDead(target) then A istUnit(" et) end
13:12 | | | | | |
2006/8/24
恩,战士宏指南
/script local i; CastShapeshiftForm(1); CastSpellByName(血性狂暴); CastSpellByName(冲锋(等级 3)); for i = 0,15 do if ( GetPlayerBuffTexture(i) == Interface\\Ico \\Ability_Racial_BloodRage) then CancelPlayerBuff(i); end; end /script local i; CastShapeshiftForm(1); CastSpellByName(血性狂暴); CastSpellByName(冲锋); for i = 0,15 do if ( GetPlayerBuffTexture(i) == Interface\\Ico \\Ability_Racial_BloodRage) then CancelPlayerBuff(i); end; end (众人拾柴火焰高,集思广益贴 ^_^)
如果你想使用下面的宏,请注意两点
1,把@去掉, s c r i p t 被论坛屏蔽了。
2,冲锋,拦截,压制,破胆,还有绷带,武器,盾牌等,必须放在我指定的位置
否则你是用不了的,当然,位置也可以你自己定,只要把相应的编号改下就行
具体的编号我都给出了,宏的原理用心也能看懂
对于懒人来说,只要把技能和东西放到相应的位置就行了
如果你实在太懒,除了复制什么都不想干的话,我也没办法了。 具体的位置,1楼我说的很清楚了,如果看不懂,回贴问。
我争取贴个图给你们 先把我现在用的宏贴出来
然后慢慢解释 一,冲锋,压制,拦截,断筋
C=CastSpellByName;
U=IsUsableActio R=IsActionInRange;
if(U(61)==1)then C(冲锋);elseif(R(61)==1)then C(拦截);elseif(U(63)==nil)then C(断筋);elseif(GetActionCooldown(63)==0)then C(压制);else C(断筋);end
二,致死,旋风,压制,英勇打击
C=CastSpellByName;
if(GetActionCooldown(63)==0) then C(压制);end
if(UnitHealth(target)20) then C(斩杀);end
/施放 致死打击
if(IsActionInRange(63)==1)then C(旋风斩);end
if(UnitMana(Player)39) then C(英勇打击);end 拦截-处决-致死-旋风-英勇
C=CastSpellByName;
if(IsActionInRange(62)==1) then C(拦截);elseif(UnitHealth(target)20) then C(斩杀);end
/施放 致死打击
if(IsActionInRange(63)==1)then C(旋风斩);end
if(UnitMana(Player)39) then C(英勇打击);end 冲锋-压制-处决-致死-英勇
C=CastSpellByName;
if(IsActionInRange(61)==1) then C(冲锋);elseif(GetActionCooldown(63)==0)then C(压制);end
if(UnitHealth(target)20) then C(斩杀);end
/施放 致死打击
if(UnitMana(Player)39) then C(英勇打击);end
三,破胆绷带
/施放 破胆怒吼
SpellStopCasting();
/target 安达里克
if(GetActionCooldown(69)0) then UseContainerItem(3,1);end
TargetLastEnemy()
四,群体攻击用的
G=GetActionCooldow C=CastSpellByName;
F=CastShapeshiftForm;if(G(71)2)then F(1);else F(3);end
if(IsUsableAction(71)==1)then C(横扫攻击);end
/施放 旋风斩
/施放 顺劈斩
if(UnitHealth(target)5)then TargetNearestEnemy();end
横扫攻击要放在左下第11个键那里。
五,双手武器和盾切换
P=PickupInventoryItem;
C=PickupContainerItem;
P(17);if(CursorHasItem())then C(4,2);C(4,1);P(16);else C(4,1);P(16);C(4,2);P(17);end
六,使用饰物
UseInventoryItem(13)
七,盾牌格档,复仇,破甲,英勇打击
C=CastSpellByName;
U=IsUsableAction
/施放 盾牌格挡
SpellStopCasting()
if(U(64)==nil)then C(破甲攻击);elseif(GetActionCooldown(64)==0)then C(复仇);else C(破甲攻击);end
SpellStopCasting()
/施放 英勇打击(等级 8)
八,另外一个换武器的宏,这个连弓一块换,我是为了吃面包做的
P=PickupInventoryItem;C=PickupContainerItem;
P(17);if(CursorHasItem())then C(4,14);C(4,13);P(16);else C(4,13);P(16);C(4,14);P(17);end
UseContainerItem(4,15)
九,自动给武器上鱼饵的,也可以上磨刀石,我钓鱼为了省事
UseContainerItem(2,1)
PickupInventoryItem(16)
十,切换防御姿态,缴械
CastShapeshiftForm(2)
/施放 缴械
十一,守信史(呵呵)
/target 暮光预言者
/施放 冲锋(等级 3)
/施放 断筋(等级 3)
十二,从防御姿态切换到狂暴姿态释放狂暴之怒再切换回防御姿态(网友提的不错,我放这里来了)
请问楼主:
如何编写一个 在防御姿态下 切换狂暴姿态然后使用狂暴之怒最后再切换回防御姿态的宏
谢谢指教。 G=GetActionCooldow if(G(70)2)then CastShapeshiftForm(3);end
if(IsUsableAction(70)==1)then CastSpellByName(狂暴之怒);end
if(G(70)0)then CastShapeshiftForm(2);end
狂暴之怒放在第70号键位,就是左下额外技能拦的第10个。 十三,很多网友求的战斗怒吼宏,没有就补上的,这个是某位高人写的
如果有战斗怒吼就什么都不做,没有战斗怒吼就施放战斗怒吼 local q; local t;for i=0,15,1 do t=GetPlayerBuffTexture(i); if (t and string.find(t, BattleShout)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(战斗怒吼) end;
十四 扔炸弹,HOHO
if(IsCurrentAction(72)==nil)then UseAction(72);else SpellStopCasting();end
新做的,扔炸弹的,把炸弹放到左下第12个格子
第一下按是扔(必须要鼠标点地,本来想做个全自动的,但是命令,楼上的那个被封了,遗憾)
第二下按是取消扔炸弹,比按ESC容易多了。
十五 自动攻击的,如果按T,多按了就会取消攻击很讨厌,这个就不会取消了,哈
if(IsCurrentAction(50)==nil)then UseAction(50);end
把攻击放到右下中间第2个(或者从左数第14个)
如果没有攻击的话自动开始攻击
如果已经攻击则什么也不做。 补充几个技巧
1,战斗姿态,鼠标滚轮想上,狂暴姿态,向下滚
找到按键设置的CTRL+F1那里,这个是切换战斗姿态,把后面的第二快截键设置为鼠标滚轮向上
然后到CTRL+F2那里,这个切换狂暴姿态,把后面的第二快捷键设置为鼠标滚轮向下 2,R键,我现在改成扔雷
3,C键,使用饰品,联盟徽记等
4,大脚的技能拦可以拖出来几个,放到屏幕中间,放一些常用的技能 左下的技能拦
1为冲锋,2为拦截,3为压制,4为复仇,5为嘲讽,6为英勇打击,7为致死打击,8为旋风斩,9为破胆
10 狂暴之怒,11为 横扫攻击(10和11是后来改的,图上没有改,你们自己改下拉) 包
(4,1)为主手武器,(4,2)为盾
(4,13)为加精神的武器,(4,14)为加精神的盾,(4,15)为加精神的弓
(3,1)为绷带,(2,1)为鱼饵 一,冲锋,压制,拦截,断筋
C=CastSpellByName;
U=IsUsableActio R=IsActionInRange;
if(U(61)==1)then C(冲锋);elseif(R(61)==1)then C(拦截);elseif(U(63)==nil)then C(断筋);elseif(GetActionCooldown(63)==0)then C(压制);else C(断筋);end
前3行是定义语句,要不然写不下,另外也使宏更加好看和简练
冲锋是否可以用,如果能用则冲锋;
如果不能用,判断是否目标在拦截的范围以内,如果在范围内则拦截;
如果不在拦截的范围内,判断压制是否可以使用,如果不能使用则用断筋;
如果压制可以使用,判断压制的冷却是否为0,如果为0则压制,如果不为0则使用断筋。 此宏的好处何在?
首先,他节省了你的快捷键,用尽可能少的键做尽可能多的操作
其次,一个键使用冲锋和拦截,我把这个技能放在能拖出来的动作条上,不需要靠姿态切换转换
技能条就能用,很方便。
第三,冲锋或拦截后直接断筋,一键连按比较轻松
第四,断筋这个技能释放频率很高,不可避免的被躲闪,好处就是,你连续按就可以压制
比你反映过来再按要快一点。比如一般来说,断筋没被打出来的时候我们都是狂按的,
打出以后还会再按几下,如果别躲闪了,有时可以在自己还没反应到的时候压制已经出去了,
第五,如果第一个压制放出去了,又出了第二个躲闪,压制还在CD中,这时候断筋如果简单的
放在压制后面,断筋就放不出来了,本来很简单的宏,为了解决这个问题,使宏的复杂程度
提升了80%,我这里用了适当的判断语句有效的解决了这个问题 二,致死,旋风,压制,英勇打击
C=CastSpellByName;
if(GetActionCooldown(63)==0) then C(压制);end
if(UnitHealth(target)20) then C(斩杀);end
/施放 致死打击
if(IsActionInRange(63)==1)then C(旋风斩);end
if(UnitMana(Player)39) then C(英勇打击);end 第一行为定义语句
第二行判断压制的CD是否为0,如果CD为0则压制,如果不能压制此行无效
第三行判断是否能处决,能则处决
第四行释放致死打击,(我为什么要用中文?用英文的话会比较不爽,呵呵)
第五行,判断敌人的距离,如果在5码内的话用旋风(利大弊大?自己衡量吧)
第六行,怒气大于39放英勇打击
另外两个宏功能基本类似,不过是接了冲锋和拦截。可以战斗姿态放一个,狂暴姿态放一个。 三,破胆绷带
/施放 破胆怒吼
SpellStopCasting();
/target 安达里克
if(GetActionCooldown(69)0) then UseContainerItem(3,1);end
TargetLastEnemy()
第一行,释放战士的技能
第二行,停止当前动作
第三行,选择绷带目标,名字改成你自己
第四行,判断破胆这个技能的CD是否大于0,用处就是看看你破胆是否释放成功,
经常我按技能的同时,对手跑出范围了,结果我在那傻傻的绷带,日。现在这个问题解决了
破胆不在CD中不会绷带了。
第五行,选择最后一个敌人 四,群体攻击用的(更新了,非常好哦,显示问题解决了。)
G=GetActionCooldow C=CastSpellByName;
F=CastShapeshiftForm;if(G(71)2)then F(1);else F(3);end
if(IsUsableAction(71)==1)then C(横扫攻击);end
/施放 旋风斩
/施放 顺劈斩
if(UnitHealth(target)5)then TargetNearestEnemy();end 自动判断横扫攻击的CD,当CD好了的时候自动切换到战斗姿态放横扫攻击
然后再自动切换回狂暴姿态,放旋风和顺劈
最后一行判断目标的血量,如果少于5%,则切换下一个目标 五,双手武器和盾切换
P=PickupInventoryItem;
C=PickupContainerItem;
P(17);if(CursorHasItem())then C(4,2);C(4,1);P(16);else C(4,1);P(16);C(4,2);P(17);end 此宏本身已经说的很明白了,单手武器放在(4,1),盾放在(4,2)
懒龙朋友帮我写的解释
第1、2步骤:定义P为拾取人物目前装备函数的别名,定义C为拾取背包物品函数的别名,纯粹是为了节省字数
第3步骤:P(17),拿起目前装备的副手物品(如果是双手武器,副手没有,这样就没有拾取到物品,如果当前是单手+盾牌,这里就拾取了盾牌)
第4步骤:判断,if (CursorHasItem()) then,检查当前有没有拾取物品()
第4.1步骤:如果第4步判断是真,就是当前拾取了盾牌
第4.1.1步骤:C(4,2),,那么将盾牌放到背包2号位置中;
第4.1.2步骤:C(4,1),拿起背包1号位置的物品——双手武器;
第4.1.3步骤:P(16),将双手武器替换掉当前主手武器;
第4.2步骤:如果第4步判断为否,就是当前没拾取到物品,那么表明当前装备是双手武器
第4.2.1步骤:C(4,1),拾取背包第1位置的物品——单手武器;
第4.2.2步骤:P(16),将单手武器装备到主手位置;
第4.2.3步骤:C(4,2),拾取背包第2号位置的物品——盾牌;
第4.2.4步骤:P(17),将盾牌装备到副手位置; 六,使用饰物
UseInventoryItem(13)
靠近戒指的那个饰物,就是你点一下物品自动更换的那个
为什么这个我要做个宏呢,我用C放饰物,直接点一下饰物就可以更换了
比用鼠标点反映要快 七,盾牌格档,复仇,破甲,英勇打击
C=CastSpellByName;
U=IsUsableAction
/施放 盾牌格挡
SpellStopCasting()
if(U(64)==nil)then C(破甲攻击);elseif(GetActionCooldown(64)==0)then C(复仇);else C(破甲攻击);end
SpellStopCasting()
/施放 英勇打击(等级 8)
前两行定义行
第三行,放盾牌格档
第四行,停止当前技能
第五行,如果复仇不能放则用破甲,如果能放看复仇的CD是否为0,为0则放复仇,不为0用破甲
第六行,停止当前动作
第七行,施放英勇打击
战士拉怪按这一个就够了
不过友情提示,虽然破甲已经有了,但是还是要单独拉出来一个键的 八,另外一个换武器的宏,这个连弓一块换,我是为了吃面包做的
P=PickupInventoryItem;C=PickupContainerItem;
P(17);if(CursorHasItem())then C(4,14);C(4,13);P(16);else C(4,13);P(16);C(4,14);P(17);end
UseContainerItem(4,15)
比上面那个换武器的多换一个弓,我弄了3个加精神的东西,为了吃面包能快点
公正之手8精神(血色掉的,付魔20精神)
加瑞特家族的徽记17精神(付魔9精神,不绑定的5*级蓝盾牌)
精神之XX长弓7精神(绿色AH随便买个)
一共加了61精神,30秒吃个面包的时间可以多回1000血 九,自动给武器上鱼饵的,也可以上磨刀石,我钓鱼为了省事
UseContainerItem(2,1)
PickupInventoryItem(16)
鱼饵放在(2,1)这个格子里 宏命令解析 CastSpellByName(技能名称);
施放一个技能,不打等级的话默认是放最高等级的 SpellStopCasting();
停止当前动作 if(条件判断语句) then
如果判断语句为真 IsUsableAction(技能编号);
如果能使用则返回1,不能使用则返回nil
判断一个技能是否在可以使用的状态,但是没有足够的怒气或MANA或精力,或者在CD中的时候
不包括在不能使用的范围
IsActionInRange(技能编号);
如果目标在技能范围内则返回1
GetActionCooldown(技能编号);
返回技能的冷却剩余时间
UnitHealth(target);
返回目标的生命,百分比
UnitHealth(" layer);
返回自己的生命,数值
UnitMana(" layer);
返回自己的怒气
PickupInventoryItem(身上物品编号);
用鼠标左键点击身上的某个物品
PickupContainerItem(背包编号,格子编号);
用鼠标左键点击背包里的某个物品 UseInventoryItem(身上物品编号);
用鼠标右键点击身上某个物品
UseContainerItem(背包编号,格子编号);
用鼠标右键点击背包里的某个物品
CastShapeshiftForm(姿态编号);
切换姿态,战斗姿态1,防御姿态2,狂暴姿态3
UnitAffectingCombat(" layer)
判断自己是否处于战斗中,是则返回1 技能编号 25-36 bar on right-side of screen, far right (top to bottom)右边
37-48 bar on right-side of screen, in one column (top to bottom)貌似是右2
49-60 lower right bar (left to right)右下
61-72 lower left bar (left to right)左下
73-84 battle stance bar (left to right)战斗姿态
85-96 defe ive stance bar (left to right)防御姿态
97-108 berserker stance bar (left to right)狂暴姿态 命令都很简单,如何有效组合,做出自己需要的宏就要动点脑子了 67楼的懒龙朋友翻译的一些命令 我大致翻译了一些对战士来说可能有点用的魔兽API函数,当然不全,几百条API我没这时间哈,HOHO。
第一次翻译,我90年中考英语20多分,93年高考英语不及格,大学英语考试都是抄袭过关,所以,见谅呀见谅,挖哈哈。
动作条相关函数
参数:slot——动作条快捷键的编号
GetActionCooldown(slot)——得到指定编号快捷键的冷却时间(如技能、物品)
GetActionCount(slot)——得到指定编号快捷键的数量(如绷带)
IsActionInRange(slot)——判断指定编号快捷键是否在范围内
IsAutoRepeatAction(slot)——判断指定编号快捷键是否是一个自动攻击技能(如魔杖射击)
IsCurrentAction(slot)——判断指定编号快捷键当前是否正在使用
IsUsableAction(slot)——判断指定编号快捷键当前是否可用
BUFF状态相关函数
CancelPlayerBuff(buffIndex) ——移除一个BUFF,参数buffIndex是BUFF的索引编号
GetPlayerBuff(buffId, buffFilter)——返回玩家的各种BUFF/DEBUFF的编号及状态信息
GetPlayerBuffTexture(buffIndex)——返回指定索引号BUFF的图标名称
UnitBuff(unit, index [, showCastable])——返回指定目标指定编号的BUFF信息
UnitDebuff(unit, index [, showDi ellable]) ——返回指定目标指定编号的DEBUFF信息
信息相关
SendChatMe age(text,{,type} {,language} {,targetPlayer}) ——发送一段信息
参数:text——要发送的文字
   type——信息类型,有SAY, YELL, EMOTE, PARTY, AFK, DND, GUILD, OFFICER, WHISPER, CHANNEL, RAID
背包、装备、物品相关
CursorHasItem——当前有没有拾取物品
UseContainerItem(bagId,slot)——使用指定背包指定位置的物品
PickupContainerItem(index,slot)——拿起、放置或替换指定背包指定位置的物品
UseInventoryItem(slotId)——使用当前装备指定位置的物品
PickupInventoryItem(slotId)——拿起、放置或替换人物当前某位置的装备
背包编号bagId解释
0-4,0是行囊,1是靠行囊的那个背包,2、3、4依次类推
人物身上装备位置slotId参数详解
0 = ammo(弹药)
1 = head(头部)
2 = neck(项链)
3 = shoulder(肩膀)
4 = shirt(衬衫)
5 = chest(胸部,这个...,不要理解错了)
6 = belt(腰带)
7 = legs(腿部)
8 = feet(鞋子)
9 = wrist(手腕)
10 = gloves(手套)
11 = finger 1(第一个戒指)
12 = finger 2(第二个戒指)
13 = trinket 1(第一个饰品)
14 = trinket 2(第二个饰品)
15 = back(披风)
16 = main hand(主手)
17 = off hand(副手)
18 = ranged(射击、圣物、魔杖)
19 = tabard(公会徽章)
20 = first bag (右边的第一个包)
21 = second bag(右边的第二个包)
22 = third bag(右边的第三个包)
23 = fourth bag (最左边的包)
如果你打开银行的话:
40 to 63 = the 24 bank slots(银行里的24个位置)
64 = first bank bag(银行的第一个包)
65 = second bank bag(银行的第二个包)
66 = third bank bag(银行的第三个包)
67 = fourth bank bag(银行的第四个包)
68 = fifth bank bag(银行的第五个包)
69 = sixth bank bag(银行的第六个包)
楼主双手武换单手加盾牌的宏解释:
P=PickupInventoryItem;
C=PickupContainerItem;
P(17);if(CursorHasItem())then C(4,2);C(4,1);P(16);else C(4,1);P(16);C(4,2);P(17);end
第1、2步骤:定义P为拾取人物目前装备函数的别名,定义C为拾取背包物品函数的别名,纯粹是为了节省字数
第3步骤:P(17),拿起目前装备的副手物品(如果是双手武器,副手没有,这样就没有拾取到物品,如果当前是单手+盾牌,这里就拾取了盾牌)
第4步骤:判断,if (CursorHasItem()) then,检查当前有没有拾取物品()
第4.1步骤:如果第4步判断是真,就是当前拾取了盾牌
第4.1.1步骤:C(4,2),,那么将盾牌放到背包2号位置中;
第4.1.2步骤:C(4,1),拿起背包1号位置的物品——双手武器;
第4.1.3步骤:P(16),将双手武器替换掉当前主手武器;
第4.2步骤:如果第4步判断为否,就是当前没拾取到物品,那么表明当前装备是双手武器
第4.2.1步骤:C(4,1),拾取背包第1位置的物品——单手武器;
第4.2.2步骤:P(16),将单手武器装备到主手位置;
第4.2.3步骤:C(4,2),拾取背包第2号位置的物品——盾牌;
第4.2.4步骤:P(17),将盾牌装备到副手位置;
行动相关
FollowUnit(unit)——跟随指定目标
Jump()——跳
技能相关
CastSpellByName(" ame)——施放指定名称的技能
GetSpellCooldown( ellID, " ookType)——得到技能冷却时间(用起来没这么简单,可参考相关插件)
GetShapeshiftFormInfo(index)——得到某个形态/姿态的信息
  语句格式:icon, name, active, castable = GetShapeshiftFormInfo(index);
      icon——形态/姿态图标信息
      name——形态/姿态名称
      name——形态/姿态是否是当前形态/姿态
      castable——形态/姿态当前是否可以施放
CastShapeshiftForm(index)——进入某个形态/姿态
  index参数说明
    德鲁依
    1 = 熊
    2 = 水里的那啥来着
    3 = 猫?
    4 = 旅行形态
    5 = 月亮形态?汗,太不了解小德了
    盗贼
    1 = 潜行
    战士
    1 = 战斗姿态
    2 = 防御姿态
    3 = 狂暴姿态
目标相关
A istByName(" ame)——协助某个玩家攻击
A istUnit(unit)——协助某人某NPC某宠物攻击
AttackTarget()——攻击目标(慎用,状态判断不好用这玩意会取消自己的自动攻击)
TargetLastEnemy()——将最后一个敌人作为自己的目标
TargetLastTarget()——将最后的目标做为自己的目标
TargetNearestEnemy({reverse})——将距离最近的敌人作为目标,等同TAB键
TargetNearestFriend()——将最近的队友做为目标
TargetUnit(unit)——将指定名称的单位做为目标(比如对某人有仇,混战中只扁他一个)
单位相关
A istUnit(unit)
FollowUnit(unit)
InviteToParty(unit) ——邀请某人加入队伍(某些人刷副本的人都用这函数邀请小号等)
TargetUnit(unit)
UnitAffectingCombat(unit) ——某单位是否正在战斗状态
UnitHealth(unit)——某单位的生命值(无法得知具体生命值的单位返回为百分比)
UnitMana(unit)——某单位的魔法值/怒气值/能量值
UnitSex(unit)——某单位的性别(这条貌似没啥用,RY太多了,=.=)
关于unit参数的说明:
" layer——玩家自己
" et——宠物
" arty1——队伍成员1
" arty4——队伍成员4(没5哈,除你之外只有4)
" artypetN——队伍成员的宠物(N=1,2,3,4)
raidN——团队成员(N=1,2,3,4....)
raidpetN——团队成员的宠物(N=1,2,3,4...)
target——你的当前目标
mouseover——你鼠标经过的那个家伙
" c or NPC——NPC
另外,还需要注意一点,在unit参数中允许层叠使用target,比如A istUnit(" layertargettarget)就是协助玩家目标的目标,当然你也可以这样A istUnit(" layertargettargettargettargettargettarget),只要你弄得清,^皿^ 我在这楼把回帖的其他朋友的宏放过来(我本人未测试,不保证不出问题)
第60楼的lvdubao 朋友的宏 嘲讽,压制,拳击3个都是需要尽快施放的技能,使用以下3个宏还能实现3姿态切换,解放键位,用了快1年了,感觉不错
这个宏检查你是否处在防御姿态 - GetShapeshiftFormInfo(2)-如果是就释放嘲讽,如果不是就切换姿态再放。
texture,name,isActive,isCastable = GetShapeshiftFormInfo(2); if isActive then CastSpellByName(嘲讽()); else CastSpellByName(防御姿态()); end;
这个宏检查你是否处于战斗姿态- GetShapeshiftFormInfo(1) - 如果是就释放压制,如果不是就切换姿态并释放。
texture,name,isActive,isCastable = GetShapeshiftFormInfo(1); if isActive then CastSpellByName(压制(等级 3)); else CastSpellByName(战斗姿态()); end;
3.拳击 自己举一反三 第97楼,七山朋友的宏(技能用英文的不知道能用否)
/cast Charge
/cast Hamstring
/ CBN=CastSpellByName UAC=UnitAffectingCombat(" layer) if (UAC==1) then if (UnitMana(" layer)10) then CBN(Bloodrage) end CBN(Intercept) CBN(Berserker Stance) end if (UAC==nil) then CBN(Battle Stance) end
如果自身不在战斗状态,在战斗姿态,按一下就冲锋。
如果自身不在战斗状态,不在战斗姿态,按一下切换成战斗姿态,再按一下冲锋。
如果自身在战斗状态,在狂暴姿态,按一下就拦截。
如果自身在战斗状态,不在狂暴姿态,按一下切换成狂暴姿态,再按一下拦截。
如果拦截前怒气不够,按一下自动使用血怒,再下一次拦截。
如果目标过近,按一下断筋。
如果目标过近,怒气不够,按一下血怒,再按一下断筋。
换句话说只要人物受自己控制,技能冷却完毕,任何条件和姿态下只要狂按一通就能接近并断筋。 第99楼,懒龙朋友的
关于当目标身上不存在断筋、撕裂效果时施放,存在则跳过的宏。很显然,这个宏和楼主贴子中战斗怒吼宏的逻辑代码是一样的。
总思路就是由UnitDebuff这个函数得到目标是否存在断筋、撕裂,然后决定是否施放。
UnitDebuff函数语句格式:debuffTexture, debuffA licatio , debuffDi elType = UnitDebuff(unitName, debuffIndex, showDi ellable);
debuffTexture------返回debuff的图标名称(英文,目前我不知道断筋、撕裂的对应英文是什么)
debuffA licatio ——返回debuff的作用时间
debuffDi elType——返回debuff的类型,字符串, Magic(魔法), Curse(诅咒), Poiso quot;(中毒), Disease(疾病) 或者 nil(空,表示此类型不可驱散)。
unitName——目标名称
debuffIndex——debuff索引号
showDi ellable——可选参数,填1返回玩家可驱散的debuff
local q; local t;for i=0,15,1 do t=UnitDebuff(target,i); if (t and string.find(t, Hamstring)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(断筋) end;
local q; local t;for i=0,15,1 do t=UnitDebuff(target,i); if (t and string.find(t, Rend)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(撕裂) end;
断筋(Hamstring)和撕裂(Rend)的图标名称我是直接拿的英文版战士技能名称,可能不对,我现在不能上游戏,请有心人测试一下。
这两个宏应该还可以延伸到“目标没有效果或者效果持续时间小于3秒时施放,否则跳过”,由于我现在不能上游戏,我就不写了,毕竟要一边游戏一边测试,写出来没经过测试是没啥用处的。 第102楼 七山朋友的
这种宏难就难在找图标内部名称了。当年找灵风专注的图标很是费了我一点时间
/ local q; local t;for i=0,15,1 do t=UnitDebuff(target,i); if (t and string.find(t, Ability_ShockWave)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(断筋) end;
/ local q; local t;for i=0,15,1 do t=UnitDebuff(target,i); if (t and string.find(t, Ability_Gouge)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(撕裂) end;
不过这宏按一下就16次循环,以下是小小优化
/ i=1;m=0;while(UnitDebuff(target,i)~=nil) do if(strfind(UnitDebuff(target,i),Ability_Gouge)~=nil) then m=1; end;i=i+1;end; c=CastSpellByName; if(m==0) then c(撕裂);end; 第201楼 战士而已 下面是引用开乐哥于2006-06-19 23:34发表的:
非常期待。还有那个断筋宏不能用。点了会一直断筋。达不到目标有了就停止的效果。请帮看看
正确的是这样的:
/s cript local q; local t;for i=0,15,1 do t=UnitDebuff(target,i); if (t and string.find(t, Ability_ShockWave)) then q=1; break; end; end;if not (q ==1) then CastSpellByName(断筋) end;
local q; local t; 意思是定义变量q,t
for i=0,15,1 do 意思是i以1 为进量
t=UnitDebuff(target,i); 定义函数t为目标身上debuff
if (t and string.find(t, Ability_ShockWave)) then q=1; break; end; 如果在目标身上找到了debuff Ability_ShockWave,就是短筋,那么令q=1 ,中断循环
not (q ==1) then CastSpellByName(断筋) end; 如果q不等于1,那么施展短筋
这个宏可以改成很多别的用途,顺便 放个查找buff,debuff名称的办法(这个只能用英文的):
/s cript X=UnitBuff(target) 或者UnitDebuff(target)
/s cript SendChatMe age(X)
最后认领下那个战斗怒吼宏 学习内容
下面是引用LHO于2006-06-09 17:58发表的:
都是强人! 另外说下类似CBN=CastSpellByName UAC=UnitAffectingCombat 这样的定义宏可以都写在一起做一个宏 进游戏先点下 后面的宏就可以直接利用
下面是引用ralfdodo于2006-06-09 03:22发表的:
有点奇怪为什么楼主没有提到
UseAction(xx)这个简单又好用命令
我觉得这个命令特别有用
1.最大的作用,一个宏写不下了写两个,利用这个命令在第二个宏的开头调用第一个宏,如此循环,再长的宏也不怕啊(当然就多占了宏的空间,宏的总数好象有限制的吧)
11:15 | | | | |
2006/4/10
如何使用宏实现物品多开
API UseInventoryItem
From WoWWiki
Use an item in a ecific inventory slot.
[edit]Syntax
UseInventoryItem( slotID );
[edit]Arguments
The inventory slot ID
You can get the slot ID by using GetInventorySlotInfo(slot)
[edit]Example
/script UseInventoryItem( GetInventorySlotInfo(Trinket0Slot) );
After patch 1.6 you cant auto-use items anymore. Addo can no longer activate items without the pre of a button. In order to use UseInventoryItem( GetInventorySlotInfo(Trinket0Slot) ) you will have to call it from a button, keypre or icon as you do with ells. The IDs for Inventory Slots are:
0 = ammo
1 = head
2 = neck
3 = shoulder
4 = shirt
5 = chest
6 = belt
7 = legs
8 = feet
9 = wrist
10 = gloves
11 = finger 1
12 = finger 2
13 = trinket 1
14 = trinket 2
15 = back
16 = main hand
17 = off hand
18 = ranged
19 = tabard
23:19 | | | | |
2005/10/31
[翻译]FlexBarHelp FlexBar帮助中文版(已完成)
Flex Bar
不过是众多提供而外按钮栏的插件中的一个。
FlexBar提供了多达96个的额外按钮,你可以单独的隐藏/显示它们,移动到你喜欢的任意位置并锁定。使用分组功能,自动分组排列按钮并且有多种多样的外观调节命令,你可以把它们定制成任何你喜欢的样式。
如果你需要的仅仅是额外的按钮栏,只需阅读基本应用部分并按你的喜好来设置即可。记住,Flexbar也拥有根据事件产生相应动作的能力--比如当你吸引或失去仇恨或姿态变更时。
如何使用这些功能的细节请阅读高级应用:事件
重要:所有的指令中,如果值为数字,数字范围或数字组合,你无需给数字加上引号。如button=5, target=1-4, button=[1 3 5]。如果值为短语,你需要单引号,如On='MouseEnterGroup'。
所有的命令,事件和指定对象现在不分大小写(从V1.22起)。
对早期版本使用者的重要提示:请从Addon目录删除旧的FlexBar目录,在***V1.2之前,启动WoW并登陆/注销一次。部分配置参数结构变更,不如此操作会带来错误。
以上仅适用于那些使用V1.2之前版本的用户。
基本应用
如果你从没***过mod,有几个小任务摆在你面前。
1.在你的WoW目录内,创建名为Interface的目录(如果他们不存在)
2.在Interface目录内创建名为Addo 的目录
3.下载Flexbar,解压到Addo 目录。如果你已经完成解压并阅读此文,则只需拷贝FlexBar目录到Addo 目录。
现在,登陆到WoW。
如果你已经登陆,在命令行键入/co ole reloadui来载入mod。
此时应该没有任何按钮显示。它们只是被隐藏在那儿。如果你不幸看到了由96个按钮组成的栅格-只需键入/flexbar hide button=1-96来获得干净的界面。
当登陆时你应该能在对话栏看到“Flexbar V1.2 loaded.”
基本命令
为了能使用按钮,我们先得看到它们。命令为:/flexbar Show Button=按钮编号
按钮编号可以是1-96之间的任意数字,#-#(#数字在1-96之间)的一个范围,或一组数字[ # # # # ]
/flexbar Show Button=1
/flexbar Show Button=1-3
/flexbar Show Button=[ 1 3 5 ]
为了去掉那些没使用的按钮只需键入:
/flexbar Hide Button=按钮编号
所有按钮的其他属性都没有变化,它们只是被隐藏了。
一旦你有了那些你想显示的按钮,你想把它们移动到适合你屏幕的位置:按钮的左上角有个手柄,单击并拖动拉来移动按钮。
一旦你把按钮移动到你想要的位置,你想避免意外的移动它们,命令为:/flexbar Lock Button=按钮编号
解除锁定允许再次移动它们只需键入:/flexbar unlock Button=按钮编号
有许多命令和更改按钮外观有关。一部分可能没有明显的作用直到你阅读了事件部分,因为它们是为提供视觉反馈(如按钮动作到达使用范围)而设计的。
/Flexbar A earance
将显示以下命令的内置帮助:
/FlexBar Hide Button=按钮编号
/FlexBar Show Button=按钮编号
/FlexBar Scale Button=按钮编号 Scale=比例 [reset='true']
/Flexbar Fade Button=按钮编号 Alpha=透明度
/Flexbar Shade Button=按钮编号 Color=[ r g b ]
/Flexbar Disable Button=按钮编号 State='on' | 'off'
我们已经讲解过Hide/Show了。
Scale允许你改变按钮的相对大小。Scale的范围是5-50。请注意,我的分析算法目前不支持小数,因此5是0.5,10是1.0,20是2.0等等。只需将想要的比例乘上10。这也适用于透明度和颜色的红绿蓝值r,g,b。
Fade允许你改变按钮的透明度。10是不透明,1是几乎完全透明。重要:当按钮被/Flexbar Hide隐藏时,是无法被点击的。而当它透明度为1几乎看不见时,仍然是可以点击的。请注意这一点。
Shade允许你在按钮上使用颜色遮罩。[10 10 10]的设置保持图标颜色不变。[10 5 5]将在按钮上覆盖红色。自行试验不同设置的效果。r红,g绿,b蓝的范围是0-10。
另外/flexbar shade有一个可选参数项reset='true'。如果此参数被指定,没有颜色会应用到按钮,按钮的遮蔽会恢复成WoW的缺省值(包含mana不足时图标变色)。你仍然可以指定颜色不过它会被忽略。
Disable将禁用点击按钮。你仍然可以点击,动画也会出现,不过没有动作会被执行。
以上命令都可以使用可选的Toggle=切换值参数。如果按钮已经是你想将其设置成的状态,并且设置了切换值,它将会切换到另一切换状态。
/FlexBar Hide Button=1 toggle='true'
如果按钮1为可见状态,会将其隐藏,但如果已经是隐藏状态,则将其显示。效果其实和以下命令完全一致:
/FlexBar Show Button=1 toggle='true'
以下命令将使按钮在70%大小和完整大小之间切换:
/FlexBar Scale Button=1 Scale=7 Toggle=10
以下命令将使按钮在不透明和几乎完全透明之间切换:
/FlexBar Fade Button=1 Alpha=3 Toggle=10
最后,以下命令将使红色遮罩开/关于按钮上:
/FlexBar Shade Button=1 Color=[ 10 5 5 ] Toggle=[ 10 10 10 ]
/FlexBar Movement
将显示以下命令的内置帮助
/FlexBar Lock Button=按钮编号
/FlexBar Unlock Button=按钮编号
/FlexBar MoveABS Button=按钮 XX=x-坐标 YY=y-坐标
/FlexBar MoveRel Button=按钮1 TrgBtn=按钮2 dX=dx dY=dy
/FlexBar MoveToMouse Button=按钮 dX=dx dY=dy
我们已经讲解过Lock/Unlock了。
有关移动命令的注释:
所有移动命令仅对一个按钮的一个参数起作用。
MoveABS移动按钮的左上角(手柄和按钮相交的地方)到指定的坐标。X轴始于屏幕左方向右延伸而Y轴始于屏幕下方向上延伸。
MoveRel把按钮1移动到按钮2的左上角向右偏移dx个单位,向上偏移dy个单位。
注意,很多命令几乎没有边界检测。你可能把按钮送到屏幕外的某个地方。仅仅是使其不可见或可能造成其他游戏错误还未知,当心这个问题。
(译者:x,y是以像素为单位的,经测试50个单位是其默认96个按钮排列的间距)
/FlexBar MiscHelp
将显示以下命令(我遗留了2个,它们是为事件触发设计,与基本讨论无关)
/FlexBar HideGrid Button=按钮编号
/FlexBar ShowGrid Button=按钮编号
/FlexBar LockIcon Button=按钮编号 [Off='true']
/FlexBar Text Button=按钮编号 Text='text'
HideGrid与ShowGrid可以用来使那些没有使用的按钮隐藏直到你拖动一个动作-此时它们弹出来允许你放置动作图标。
LockIcon将强迫你使用shift+点击来拖曳动作脱离指定按钮。这将阻止你在战斗中把动作从按钮中拖出来。如果可选项Off参数被包含在内,它将关闭图标锁定,图标可以像通常那样拖动。
Text允许你设置显示在按钮右上方的文字。谨记长度仅限于3-4个字符。1.2版中对此有三种特别设置:
设置为'%b'将显示与此按钮相关的热键
设置为'%d'将显示与此按钮编号
设置为'%c'将显示与此按钮相关动作的剩余冷却时间
其他一些也显示在MiscHelp中的命令:
/FlexBar Verbose State='on' | 'off'
/FlexBar ResetAll Confirm='yes'
/FlexBar Tooltip State='on' | 'off'
/FlexBar SafeLoad State='on' | 'off'
/FlexBar LoadProfile Profile='profile'
/FlexBar SaveProfile Profile='profile'
Verbose设置为on将导致大量关于按钮变化的反馈信息。我建议多数时间将其设置为Off(因为当有事件动作进行时你会被这些信息骚扰)。仅仅当你需要一些你正在设置选项的反馈时才开启它。以上大多数的选项都有很明显的视觉效应。
Resetall完全清除你当前角色的配置文件并重新加载UI。
设置Tooltip为Off将禁用鼠标对flexbar按钮的工具提示。设置为on将重新启用。
SafeLoad, SaveProfile和LoadProfile完全是权宜之计,直到我去除丢失配置的bug.
开启SafeLoad将需要你每次进入世界时手动加载角色配置文件,通过点击一个显眼的按钮来实现。如果你遇到配置丢失的问题请使用此功能,直到我找出bug.
SaveProfile将按你指定的名字保存当前配置。警告:如果你指定了你帐户下另一个角色的名字,将覆盖那个角色的设置。此处是大小写敏感的-'Mairelon'不同于'mairelon'。
LoadProfile用指定文件的配置来覆盖你当前设置。
/flexbar saveprofile profile='Mairelon_Backup'
然后,如果我需要将来恢复此配置
/flexbar loadprofile profile='Mairelon_Backup'
V1.22加入命令
/FlexBar LoadConfig Config='configname'
使用此命令你能从FlexBar_Config.lua载入预先写入的配置。如果你提出一套灵活的事件配置并想与人分享,你可以将它们写成配置条目并从命令行载入。请查看FlexBar_Config.lua以了解细节和范例。
注意:这是少数几个大小写敏感的命令之一。我对此无能为力。配置名称必须和配置文件的名称完全一致。
----------------------------------------------------------------------------------------------------------
高级应用:群组
有时你已经把一些按钮移动到一起,并希望将它们整体移动。同时,如果他们在群组中,也有一些高级的操作可作。
/FlexBar GroupHelp
将显示以下命令的内置帮助:
/FlexBar Group button=按钮编号 Anchor=按钮编号
/FlexBar UnGroup Group=按钮编号
/FlexBar ListGrou [Group=群组编号]
/FlexBar HorizontalGroup Group=群组编号 Height=高度 Padding=间距
/FlexBar VerticalGroup Group=群组编号 Width=宽度 Padding=间距
/FlexBar CircleGroup Group=群组编号 Padding=间距
Group是将按钮集合成群组的基本命令。你必须指定那些要加入群组的按钮和一个锚定按钮。锚定按钮非常重要-这将是群组中唯一一个有手柄的按钮。此按钮的编号将是群组编号,并且它是群组中唯一可以锁定/解除锁定的按钮。锚定按钮必须是组成群组的按钮中的一个。
/Flexbar Group Button=1-4 Anchor=1
将生成由按钮1-4组成的群组1。1是你可以拖动用来移动整个组的按钮。
注意:一旦你建立了群组,你可以在任何命令中使用Group=群组编号来代替Button=按钮编号
Ungroup将解散指定群组。
Listgrou 将列出所有你已建立的群组(如果省略Group=),若你指定了Group=群组编号,它将显示指定组的成员。注意,在Group=中你可以像指定多个按钮那样指定多个群组。
HorizontalGroup, VerticalGroup和CircleGroup都用来自动排列群组中的按钮。
HorizontalGroup将按钮水平排列,height指定行高,Padding指定按钮间距像素。它始于群组中编号最小按钮的左上角,按从上到下,从左到右排列。
VerticalGroup将按钮竖直排列,width指定列宽,Padding指定按钮间距像素。它始于群组中编号最小按钮的左上角,按从左到右,从上到下排列。
CircleGroup按环形排列最多7个按钮(更大的群组无法生效),始于10点钟方向的最小编号按钮,沿顺时针方向排列直到第七个按钮在中心位置。
高级应用:Remap 与 Advanced
之前的MiscHelp讲解有3条命令没包含。这些命令仅对事件有效,并且有些不易理解。
/FlexBar Remap Button=按钮编号 Base=id [Toggle='true'] [Reset='true']
一条强大但是可能混淆的命令。为了了解它是如何工作的,需要大体了解一下按钮。
WoW按钮由各自独立的ID来确定。2个相同ID的按钮实质上就是同一个。当你卷动动作栏时,默认的动作栏改变与12个按钮相关联的ID。第一页使用的ID是1-12,第二页是13-24,直到最多第6页使用61-72。
对于不同的职业,其他的ID用于姿态和形态。特定的73-108是供战士三种不同姿态使用。73-84和97-108供德鲁伊的猫和熊形态以及其他用途。
最后,109-120看来是完全闲置的。120以上的ID不可使用-如果使用将使WoW崩溃。
FlexBar使用ID 1-72作为按钮1-72,ID 109-120作为按钮85-96,以及:为战士时61-72作为按钮73-84--这意味着61-72重复了。对此没有好办法。战士空余的ID本来就少些。德鲁伊使用ID 85-96作为按钮73-84。其他所有人使用ID 97-108作为按钮73-84。
以上是FlexBar如何定义默认的按钮的。Remap允许你以任意方式设置这些按钮的ID。这样做的好处是,动作更改时按钮的热键保持不变(和动作栏类似)。
/Flexbar Remap Button=1-12 Base=25
一旦被执行,按钮1-12将使用25-36号ID(就如同是25-36号按钮一般)
by warii
以战士为例,譬如各种姿态下最多有8种不同技能,那么就做8个一组的按钮共3组。每组存放一种姿态下的技能。但只显示一种一组,另外两组隐藏起来。当发生姿态切换时,就把显示出的一组按钮的id remap为对应姿态下的按钮id。这样就可以省却shief+1,shift+2的苦恼了。
/Flexbar Remap Button=1-12 Base=25 toggle='true'
它将在1-12号按钮上的默认值ID与ID 25-36之间切换。对于remap的切换有点不同-如果按钮被设置成任何默认以外的值,且toggle被指定,则它们会被设置成默认值。而缩放/颜色/透明这些命令,仅在按钮已处于被指定状态时才发生切换。
/Flexbar Remap Button=1-12 Base=1 Reset='true'
忽略基数,重置按钮1-12的默认ID值。
设置那些保留范围(如战士姿态)的按钮时会产生不明确的结果。试试看,你可能发现有用的东西。但是如果你搞乱了,记得用/Flexbar resetall 来恢复。:)
/FlexBar Advanced Button= State='on' | 'off'
当Advanced开启时-按钮仅能左键单击触发。这个功能可与RightClick事件协作来提供右击时的替换动作。
/FlexBar Use Button=
这将触发列出的按钮。虽然它允许多个按钮-我不知道它能有多大效果,但是你无法-我重复一遍-无法使用这个来释放多个法术。它的主要目的是与RightClick事件协作来给按钮指定替换功能。
补遗:Use仅对按钮上的实际点击起作用,除了LeftButtonClick和RightButtonClick外的任何事件都不能触发它。
高级应用:宏
宏特性是用来,恩,运行宏的。宏可以与事件绑定执行;更多信息,参考后面的“高级应用:事件”
/FlexBar AddMacro Commands='命令列表'
AddMacro命令用来新建宏.命令列表格式为一组字符串,见范例。新建立的宏自动被指派下一个可用的宏id,这取决于现有宏的多少。
你也可以加入单引号之间的数字(如包含一个数字的字符串)使宏在执行下一条指令之前等待几秒钟。
重要:如果有“=”在你的命令列表中,你必须在它前面加上一个“\”字符,否则将无法正常工作!
/FlexBar AddMacro Name='ANewMacro' Commands=['script TargetLastEnemy();' '3' '/script RandomActionOne()' '3' '/flexbar use button\=93']
这个范例将创建一条新宏,运行时执行'/script TargetLastEnemy();', '/script RandomActionOne()', 和'/flexbar use button=93'命令,每条命令之间停顿3秒。
/FlexBar EditMacro ID=要编辑的宏 [Name='宏的名称'] [Commands='命令列表']
这条命令与AddMacro很相似,除了它是更改给定宏的命令和/或名称而不是创建一条新宏。
/FlexBar DeleteMacro ID=要删除的宏
这条命令删除列表中给定id的宏。当宏被删除后,所有它之前的宏都会下移一条。
/FlexBar ListMacros [ID=要显示的宏]
如果没有给出宏参数,这条命令将显示当前宏列表。如果给出了宏id,则显示那条宏的命令。ID参数也可以是数表以便一次显示多个宏的命令。
/FlexBar ExecMacro Macro=要执行的宏
这条命令将执行已定义好的一条宏。“Macro”输入的是宏的ID编号,可使用“ListMacros”来获得。没有事件的使用,ExecMacro将不是一条非常有用的命令,我们将在后面的“高级应用:事件”中解释。
/Flexbar EditMacro ID=2 Name='SecondMacro2'
更改第二条宏的名称为“SecondMacro2”
/Flexbar DeleteMacro ID=4
删除id编号为4的宏
/Flexbar ListMacros ID=[1 4 2 12]
显示宏1,2,4,12号宏的命令列
高级应用:事件
原始的Flexbar已包含一些基本功能来根据事件,如进入/退出战斗状态和获得/失去仇恨,来显示/隐藏按钮。我也致力于增加更多的命令使得全范围的隐藏/显示能作用于各种不同的事件。
V1.2废除了所有用于不同事件显示/隐藏的特殊指令。取而代之的是针对各种事件的各种命令组合。
下列命令可在游戏中依靠事件发生
Hide, Show, Scale, Fade, Shade, Remap, MoveABS, MoveRel, MoveToMouse 和有限范围的Use
使用一下语法使他们基于事件而发生:
FlexBar Hide Button=按钮编号 ..... On='事件名称' Target='对象'
/FlexBar Show Button=按钮编号 ..... On='事件名称' Target='对象'
/FlexBar Fade Button=按钮编号 ..... On='事件名称' Target='对象'
/FlexBar Shade Button=按钮编号 ..... On='事件名称' Target='对象'
/FlexBar Scale Button=按钮编号 ..... On='事件名称' Target='对象'
/FlexBar Remap Button=按钮编号 ..... On='事件名称' Target='对象'
/Flexbar MoveABS button=按钮编号 .... On='事件名称' Target='对象'
/Flexbar MoveRel button=按钮编号 ..... On='事件名称' Target='对象'
/Flexbar MoveToMouse button=按钮编号 ...... On='事件名称' Target='对象'
/FlexBar Use Button=按钮编号 ..... On='事件名称' Target='对象'
当进入战斗状态时显示群组:
/Flexbar Show Group=1 On='EnterCombat'
当鼠标滑过时显示群组
/Flexbar Show Group=1 On='MouseEnterGroup' Target=1
注意一些事件无对象,比如进入战斗。那将把产生事件的物体视为对象。在第二个范例中我们希望仅对群组1的MouseEnterGroup产生响应。
完整的事件清单如下:
事件名称(拼写和大小写必须准确) 目标
----------------------------------------------------------------
MouseEnterGroup 鼠标进入群组范围
MouseLeaveGroup 鼠标离开群组范围
----------------------------------------------------------------
当光标进入/离开群组的范围时发生。我在v1.2中使用了和以前版本不同的算法,更快,不会在大的群组中造成延迟。已知问题:有小按钮组成的群组可能四周有一片小的边界以至于鼠标还没进入群组就被认为已经在群组内部了。
----------------------------------------------------------------
MouseEnterButton 鼠标进入按钮(必须为可见的按钮)
MouseLeaveButton 鼠标离开按钮
----------------------------------------------------------------
当光标进入/离开按钮的范围时发生,按钮必须为可见的。
----------------------------------------------------------------
EnterCombat 无目标
LeaveCombat 无目标
----------------------------------------------------------------
进入/离开战斗根据你激活/解除自动攻击时发生。这个和仇恨无关,取决于你是否开始攻击。
----------------------------------------------------------------
GainAggro 无目标
LoseAggro 无目标
----------------------------------------------------------------
获得/失去仇恨由你停止/开始回复来判断。(不明白的地方,巨魔和学了天赋的战士怎么处理?)
----------------------------------------------------------------
RightButtonClicks 鼠标右击
LeftButtonClick 鼠标左击
----------------------------------------------------------------
当指定按钮被点击时发生。为了使用独立的动作对应左击和右击,Advanced模式必须激活。
----------------------------------------------------------------
CoolDownMet 按钮冷却已完成
CoolDownStart 按钮冷却正开始
----------------------------------------------------------------
检测动作热键的冷却-当它非零时发生CoolDownStart。当它达到零时,发生CoolDownMet。
----------------------------------------------------------------
EnoughMana 有足够法力执行按钮动作
NotEnoughMana 无足够法力执行按钮动作
----------------------------------------------------------------
发生在你的法力值升高到/降低至激活目标按钮的需要值时。我觉得(但不确定)这也适用于怒气和能量。
----------------------------------------------------------------
OutOfRange 按钮动作在射程之外
NowInRange 按钮动作在射程之内
----------------------------------------------------------------
发生于指定按钮动作脱离/进入射程时。我注意到猛禽攻击从不产生这个事件而自动射击会。
----------------------------------------------------------------
GainBuff 获得指定名称的buff(必须精确,见战斗记录“你获得了某某buff”)
LoseBuff 失去指定名称的buff(同上,战斗记录说:“buff从你身上消失。”)
----------------------------------------------------------------
发生于你获得/失去buff时的信息。一些姿态/变形造成GainBuff信息,但不是都生成LoseBuff信息。这种情况使用GainAura。如果你因死亡失去buff不会造成额外的LoseBuff触发。以上你必须打开聊天过滤器中的周期自身buff选项。
----------------------------------------------------------------
GainAura 获得光环-它包括姿态,变形,圣骑士光环和隐身
LoseAura 失去光环
----------------------------------------------------------------
定期检测你是否改变了姿态/形态/光环/隐身。如果有对原有光环发生LoseAura和新光环发生GainAura。如果你之前没有光环,你不会产生LoseAura。如果你只是失去光环,你不会发生GainAura(如退出隐身)。
我不知道各种目标光环的准确写法,参看后面关于如何找出它们的指示。
!!!这个就是最重要的一个功能啦!隐身自动切换武器和按钮就要靠它了!!!
----------------------------------------------------------------
TargetMi 未命中类型包括格挡,躲闪,招架,未命中
PlayerMi 未命中类型包括格挡,躲闪,招架,未命中
----------------------------------------------------------------
TargetMi 是目标未命中你,PlayerMi 是你未命中目标。我不确定所有的玩家未命中类型准确--我不记得我曾见过PlayerMi 招架-因此我不知道是否我没找对文字或是测试中的怪物从不招架。
----------------------------------------------------------------
HealthAbove## 对象代码可以是player, party1, party2, party3, party4, target, pet, mouseover
HealthBelow## 同上 HealthFull
----------------------------------------------------------------
##为10, 20, 30, 40, 50, 60, 70, 80, 90, 100(除了HealthAbove不会产生100的值)。当目标生命值下降/提升到各个百分比时各产生一个事件。
----------------------------------------------------------------
LostTarget 无目标
GainTarget 对玩家反应为敌意,中立,友好
TargetReactionChanged 对玩家反应
----------------------------------------------------------------
注意:除非反应发生变化,否则不产生目标变化事件。也有可能失去和获得目标速度太快而没能产生lose/gain目标事件。
----------------------------------------------------------------
GainPartyMate party1, party2, party3, party4 -- 未测试
LosePartyMate 同上
----------------------------------------------------------------
由一个计时器检测每个队伍成员的存在。如果party1离队了,LosePartyMate产生给party1。如果你之前没有队友现在加入一个,GainPartyMate产生给party1。
----------------------------------------------------------------
GainPet 无目标
LosePet 无目标
----------------------------------------------------------------
和Lose/GainPartyMate几乎相同的方式运作,但指向pet因此无需指定目标。
----------------------------------------------------------------
ActionBarPage 动作栏翻页
----------------------------------------------------------------
当玩家切换动作栏页面时发生,不论是用箭头还是热键。
----------------------------------------------------------------
BindingKeyUp 绑定的的数字键释放
BindingKeyDown 绑定的的数字键按下
----------------------------------------------------------------
V1.2包括30个新的热键绑定。每个热键被按下和释放时产生事件,同时绑定数字的目标被激活。
----------------------------------------------------------------
IsUsable 按钮动作可用
NotUsable 按钮动作不可用
----------------------------------------------------------------
Is/Not Usable作用于那些有前提条件的技能,比如对手闪避(压制)或你招架(复仇)。它仅仅表明前提条件达成,但不表示你有足够的怒气/能量来执行。
----------------------------------------------------------------
ManaAbove#

参考资料

 

随机推荐