Here's a macro I got working with a shroud. It spams a lot of "You can use the ability throw stone in "blah, blah but, who cares, it buids a matrix of the mobs within the radius and then hits each one.
Sometimes if a mob dies it might target that mob and not be able to use the ability. Just press the escape key and it moves to the next target.
throwstone.mac
Rich (BB code):
| used reptile shroud #1
#event Hit "#*#hit by a small stone."
Sub Main
/declare SpawnRadius int outer 50
/declare SpawnZRadius int outer 30
/declare MobCount int ${SpawnCount[npc radius ${SpawnRadius} zradius ${SpawnZRadius}]}
/declare MobArray[${MobCount}] int outer
/declare i int outer 0
/declare notthrown outer TRUE
/target clear
/echo Mob count: ${MobCount}
| Setting array id's
/for i 1 to ${MobCount}
| /echo ${i} ${NearestSpawn[${i}, npc radius ${SpawnRadius} zradius ${SpawnZRadius}].ID}
/varset MobArray[${i}] ${NearestSpawn[${i}, npc radius ${SpawnRadius} zradius ${SpawnZRadius}].ID}
/next i
| Array id's done, throwing stones at mobs
/for i 1 to ${MobCount}
/squelch /target clear
/delay 1s !${Target.ID}
/target id ${MobArray[${i}]}
/delay 1s ${Target.ID}
/face fast
/echo Targeting: ${Target}
|Throw it!
/varset notthrown TRUE
:throwloop
/if (!${Target.ID}) {
/echo --- Target died
/goto :mobdead
}
/alt act 4156
/delay 1s
/doevents
/if (${notthrown}) /goto :throwloop
:mobdead
/next i
/echo Hit all mobs, ending macro
/return
Sub Event_Hit
/echo --- Hit: ${Target}
/varset notthrown FALSE
/return
-Bigsnaf
P.S. Please redcent me if you find this useful.