猎人宏

        1-放猎人标记并命令pet攻击目标。
/cast Hunter's Mark(Rank X)
/script PetAttack()

2-放mark并且pet跟随,副本用的宏。
/cast Hunter's Mark(Rank X)
/script PetFollow()

3-选择一个队员然后使用宏,自动选择该队员的目标,对目标放mark,pet攻击目标,然后开始autoshot。
/script if (UnitIsFriend("player","target")) then AssistUnit("target"); end
/cast Hunter's Mark(Rank X)
/script PetAttack()
/script if(not PlayerFrame.inCombat) then CastSpellByName("Auto Shot"); end
注意你开始所选择的目标必须是友好的。

4-散射并招回pet,以免pet继续攻击使敌人脱离散射的效果。
/script PetFollow()
/Cast Scatter Shot()

---------------------------------------使用物品---------------------------------------
1-自动喂食
下面这个宏会先判断玩家是否处于战斗之中。如对应的格子中没有食物,则会打开相应的背包。
/script if (not PlayerFrame.inCombat) then if (not
GetContainerItemLink(X, Y)) then OpenBag(X); else CastSpellByName("Feed Pet"); PickupContainerItem(X, Y); end end

X/Y分别是包和格子的编号。
5个背包按照排列位置编号如下:
[4][3][2][1][0]

16格包的格子编号如下:
[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
[ 9][10][11][12]
[13][14][15][16]

2-绷带
如果你当前选择的目标是可以对其使用绷带的友好单位的话,则对其使用绷带。
如当前目标是不能被打绷带的单位,或没有选择任何目标的话,则对自己使用绷带。
而且不会对当前目标进行切换,不会中断对当前敌人的攻击。
/script UseContainerItem(X,Y)
/script SpellCastTarget("player")

将第一行换成/script UseAction(25,0,1),则不需将绷带放在背包特定位置,但必须将绷带拖入技能栏的特定位置。25表示技能栏的编号。第一排第一格编号为1,最后一格为12。第二排第一格编号为13,最后一格为24。以此类推。25表示第三排的第一格。

此宏也还有如下的实现方法:
/script UseContainerItem(0,1)
/script if ( SpellIsTargeting() ) then TargetUnit("player"); end

如果想在任何条件下都只对自己使用绷带的话,用如下的宏:
/target "player"
/script UseContainerItem(X,Y)
/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



---------------------------------------更换武器---------------------------------------
MainhandBag:备用主手武器存放背包编号
MainhandBagSlot:备用主手武器存放格子编号
OffhandBag:备用副手武器存放背包编号
OffhandBagSlot:备用副手武器存放格子编号
TwohandsBag:备用双手武器存放背包编号
TwohandsBagSlot:备用双手武器存放格子编号

双手武器 -> (主手武器+副手物品)
/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()来进行预判断。参看下面的几个宏:

单主手武器或双手武器 -> (主手武器+副手物品)
/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



---------------------------------------自动切换守护---------------------------------------
注意:你必须已经打开了某个守护,这样下面的宏才能生效
1-肉搏战和猴之守护
可以代替默认的attack,如果你没开猴之守护宏会帮你打开。
/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

2-自动射击和鹰之守护
可以取代默认的auto shot,如果你没开鹰之守护宏会帮你打开。
/cast Auto Shot
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); end
因为游戏中延时的问题,采用这种先射击再开守护的方法比较好
Rank X中的X是你所使用的鹰之守护 等级

3-瞄准射击(也包括其他瞬发的射击)和鹰之守护
可以取代默认的瞄准射击,如果没有开鹰之守护宏会帮你打开。
/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk(Rank X)"); else CastSpellByName("Aimed Shot(Rank Y)"); end
X是鹰之守护的等级,Y是射击技能的等级
注意,这个宏无法让你判断目标是否超出了射程,因为这个宏的图标不会因超出射程而变红,用瞄准射击的时候要多加注意。而且这个宏的图标也无法反映出射击技能的冷却时间,所以推荐在宏当中使用那些无冷却时间的射击。
参照这个宏,也可以把上面的猴之守护和猛禽攻击(Raptor Strike)或者翅夹(Wing Clip)结合起来——同样要注意它无法反映猛禽攻击的冷却时间。
---------------------------------------影遁(NE专用)---------------------------------------
1-影遁的同时躺下,更难被发现……
/cast Shadowmeld(Racial)
/laydown

2-吃喝的同时也影遁-_-
/target "player"
/script UseContainerItem(X, Y);
/script UseContainerItem(X, Y);
/cast Shadowmeld(Racial)


友情提醒:由于游戏中宏面板的换行问题,如果复制/粘贴的宏无法正常工作,请在游戏中自行输入。
 

--------------------------------------------------------------------------------

Posted by 楚江笨鱼 on 2005-04-24 10:36 上午
超级实用,可以说是猎人居家旅行猎杀的必备良宏……

驱散射击

/script PetFollow()
/cast 驱散射击

解释:驱散射击是让敌人混乱4秒,但是任何攻击都能人敌人恢复正常,这个宏就是收回宠物,让宠物停止攻击后,马上使用驱散射击。
注解:在延时大的情况下,有可能失效,宠物继续攻击。
 
 
### 回答1: 猎人算法是一种模拟自然界中猎物和猎人之间相互追逐的算法。猎人算法由Ahmed Amenien等人于2013年提出,其灵感来自于大自然中捕食者和被捕食者的行为。 猎人算法通过模拟猎人的行为来解决优化问题。算法中使用了一群猎人来代表解空间中的解,并通过迭代中的更新来优化目标函数。 算法中的猎人受到三个基本行为的影响:搜索、区域聚集和狩猎。搜索行为是猎人在解空间中随机搜索潜在解的操作。区域聚集行为使猎人在相似的解区域中聚集在一起,以便更好地利用局部信息。狩猎行为使猎人通过随机选择局部解以及利用全局信息来更新其位置。 具体来说,猎人算法在每次迭代中,首先根据猎人的搜索能力随机选择一个搜索点。然后,根据猎人的区域聚集能力,将猎人分成几个不同的聚类群体。接下来,每个聚类内的猎人通过选择最佳解来更新其位置。最后,根据猎人的狩猎能力,通过选择全局最优解来更新猎人群体中的一些猎人的位置。 通过不断迭代上述步骤,猎人群体逐渐向目标函数的最优解收敛。猎人算法具有一定的随机性和自适应性,能够有效地处理复杂的优化问题。 在Matlab中实现猎人算法,可以使用矩阵运算和循环结构来描述猎人的行为。根据算法的步骤,可以使用矩阵表示猎人位置和速度矩阵,并通过矩阵运算来更新猎人的位置。同时,需要使用适当的循环结构来进行多次迭代,并记录每次迭代的最优解。 总之,猎人算法是一种模拟自然界猎物和猎人的行为的优化算法。通过不断迭代搜索和优化,能够逐渐接近目标函数的最优解。在Matlab中实现猎人算法,可以通过矩阵运算和循环结构来描述猎人的行为,并使用合适的参数和迭代次数来获得较好的优化结果。 ### 回答2: 猎人算法是一种基于自然界猎人与猎物之间相互作用的优化算法。在matlab中,可以通过一些步骤来实现猎人算法。 首先,我们需要定义问题的目标函数,即需要优化的目标。然后,我们选择一组合适的初始解作为猎人的位置,并给定一定的探索范围。 接下来,我们利用目标函数评估当前解的适应度,并更新每个猎人的位置。这可以通过采用基于目标函数值的随机数生成方法来实现。同时,还需要设置合适的步伐大小,以确保搜索空间内所有的解都能被猎人搜索到。 在每次迭代中,我们可以根据当前解的适应度进行排序,并选择一定比例的猎人作为移动的对象。然后,我们可以根据一定的搜索策略来更新猎人的位置。 在整个搜索过程中,我们需要设定一定的停止准则,如最大迭代次数、收敛性判断等。当满足停止准则时,搜索过程结束,并输出最优解。 猎人算法的优点在于其搜索过程自适应性强,能够较好地适应目标函数的特性。此外,猎人算法还可以利用并行计算的思想加速搜索过程,提高搜索效率。 总之,猎人算法是一种基于自然界猎人与猎物的优化算法,在matlab中可以通过一些步骤来实现。它具有较好的搜索能力和适应性,并可以应用于多种优化问题的求解。 ### 回答3: 猎人算法是一种基于自然界中猎人——猎物关系的优化算法。猎人算法模拟了猎人在寻找猎物的过程,通过调整猎人的行为策略来达到寻找最优解的目标。 猎人算法的具体过程如下:首先,随机生成一群猎人,每个猎人有自己的位置和速度。然后,利用适应值函数来评价每个猎人的适应性,即目标函数的值。根据适应值的大小,确定每个猎人的适应度。 接下来,根据适应度大小选择猎人个体,通过更新策略来更新每个猎人的位置和速度。更新策略包括考虑个体之间的相互作用和学习,以及利用随机扰动来增加搜索的多样性。最后,根据更新后的位置和速度,重新计算适应值,不断优化全局最优解。 在Matlab中实现猎人算法,首先需要定义适应值函数,并给出目标函数的表达式。然后,通过随机生成猎人的初始位置和速度,并设置相关参数,如猎人个数、迭代次数等。利用循环迭代的方法,根据更新策略和适应值函数,不断更新猎人个体的位置和速度,直到达到停止迭代的条件。 最后,可以通过绘制适应值曲线来观察算法的收敛情况,并得到最优解的位置和值。同时,还可以尝试调整算法的参数,如猎人个数、迭代次数等,以提高算法的性能。 总之,猎人算法是一种模拟猎人与猎物之间关系的优化算法,通过不断调整猎人的位置和速度,以寻找最优解。在Matlab中,可以利用该算法来求解各种优化问题,具有一定的应用价值。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值