<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BorkWeb &#187; scripting</title>
	<atom:link href="http://borkweb.com/story/tag/scripting/feed" rel="self" type="application/rss+xml" />
	<link>http://borkweb.com</link>
	<description>Some People Are Squirrel Handed.</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:00:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WoW Druid Macros</title>
		<link>http://borkweb.com/story/wow-druid-macros</link>
		<comments>http://borkweb.com/story/wow-druid-macros#comments</comments>
		<pubDate>Fri, 05 Jan 2007 14:33:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Art, Gaming, & Fun]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[macro]]></category>
		<category><![CDATA[macros]]></category>
		<category><![CDATA[mmo]]></category>
		<category><![CDATA[mmog]]></category>
		<category><![CDATA[mmorpg]]></category>
		<category><![CDATA[rpg]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[world of warcraft]]></category>
		<category><![CDATA[wow,druid]]></category>

		<guid isPermaLink="false">http://borkweb.com/story/wow-druid-macros</guid>
		<description><![CDATA[[[innerindex]] Introduction Continuing my Macro listings, I&#8217;ll post some Druid Macros! These macros are all thanks to World of Warcraft Druid Forum. I don&#8217;t play a druid on any server, yet the macros are pretty straightforward. If you have questions or suggestions&#8230;let me know and I&#8217;ll update/post them here. Feral Macros Ravage/Shred combo Ravage/Shred/Ferocious Bite [...]]]></description>
			<content:encoded><![CDATA[<p>[[innerindex]]<a href="http://www.flickr.com/photos/borkweb/346619368/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/124/346619368_19bdada5a3_m.jpg" width="127" height="240" alt="druid" align="left" class="post_image"/></a><br />
<h2 id="_introduction_5" >Introduction</h2>
<p>Continuing my <a href="http://borkweb.com/story/world-of-warcraft-20-macros">Macro listings</a>, I&#8217;ll post some Druid Macros! These macros are all thanks to <a href="http://forums.worldofwarcraft.com/thread.html?topicId=48565126&#038;sid=1&#038;pageNo=1">World of Warcraft Druid Forum</a>.  I don&#8217;t play a druid on any server, yet the macros are pretty straightforward.  If you have questions or suggestions&#8230;let me know and I&#8217;ll update/post them here.<br />
<br clear="both"/></p>
<h2 id="_feral-macros_1" >Feral Macros</h2>
<p><strong>Ravage/Shred combo</strong></p>
<pre class="brush: plain; title: ; notranslate">
If not in stealth mode, cast shred.  Otherwise, cast ravage.
1/cast [nostealth] Shred; [stealth] Ravage</pre>
<p><strong>Ravage/Shred/Ferocious Bite</strong><br />
If alt is pressed, cast Ferocious Bite.  Otherwise if in stealth, cast Ravage.  Otherwise cast Shred.</p>
<pre class="brush: plain; title: ; notranslate">
show Shred
/cast [modifier:alt] Ferocious Bite; [stealth] Ravage; Shred</pre>
<p><strong>Pounce/Rake combo</strong><br />
If not stealth cast rake, otherwise cast pounce.</p>
<pre class="brush: plain; title: ; notranslate">/cast [nostealth] Rake; [stealth] Pounce</pre>
<p><strong>Pounce/Rake/Rip</strong><br />
If alt pressed, cast Rip.  Otherwise if stealth cast Pounce.  Otherwise cast Rake.</p>
<pre class="brush: plain; title: ; notranslate"># show Rake
/cast [modifier:alt] Rip; [stealth] Pounce; Rake</pre>
<p><strong>Pounce/Mangle combo - Note the extra ()</strong><br />
If not stealth cast Mangle, otherwise cast Pounce.</p>
<pre class="brush: plain; title: ; notranslate">/cast [nostealth] Mangle (Cat)(); [stealth] Pounce</pre>
<p><strong>Prowl or Faerie Fire (Feral)</strong><br />
If out of combat and not stealthed, cast Prowl.  Otherwise if in combat and not stealthed, cast Faerie Fire.</p>
<pre class="brush: plain; title: ; notranslate">/cast [nocombat, nostealth] Prowl; [combat, nostealth] Faerie Fire (Feral)()</pre>
<p><strong>Maul/Mangle</strong><br />
This is a space saver macro!  In combat, Mauls first, then Mangles, then Mauls, then Mauls.  Each 'spell' requires a click.</p>
<pre class="brush: plain; title: ; notranslate">/castsequence reset=6/combat Maul, Mangle (Bear)(), Maul, Maul</pre>
<p><strong>Mangle (Bear) replacing auto-attack</strong><br />
Starts off auto attack with a Mangle...if Alt is held while clicking the macro, you will stop attacking.</p>
<pre class="brush: plain; title: ; notranslate"># show Mangle (Bear)()
/startattack [nomodifier:alt]
/cast [nomodifier:alt] Mangle (Bear)()
/stopattack [modifier:alt]
</pre>
<h2 id="_shifting-macros_1" >Shifting Macros</h2>
<p><strong>Shift to Caster</strong><br />
Shift to Caster Form from any form</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
</pre>
<p><strong>Shift to Dire Bear</strong><br />
Shift to Dire Bear Form from any form - note: to have this macro also de-shift you, include "[stance:1] Dire Bear Form; " somewhere in the /cancelaura line.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Dire Bear Form
</pre>
<p><strong>Shift to Dire Bear and Charge</strong><br />
Shift to Dire Bear From and Feral Charge from any form</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Dire Bear Form; [stance:1] Feral Charge
</pre>
<p><strong>Dire Bear and Equip</strong><br />
Shift to Dire Bear Form and equip Idol/Weapon<br />
* "Shift to Dire Bear From from any form, equip Warden Staff and Idol of Brutality only when you actually shift to Dire Bear. Note that the test for the equip is still [nostance] because it hasn't yet registered that the stance has changed. You don't need to worry about the global cooldown, because the stance change and the weapon equip both trigger it at the same time, so you only suffer once. (...equipping things can be done during global cooldown.) "</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Dire Bear Form;
/equip [nostance] Warden Staff
/equip [nostance] Idol of Brutality
</pre>
<p><strong>To Cat Form</strong><br />
Shift to Cat Form from any form - note: to have this macro also de-shift you, include "[stance:3] Cat Form; " somewhere in the /cancelaura line.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Cat Form
</pre>
<p><strong>To Cat and Stealth</strong><br />
Shift to Cat Form and stealth from any form (first line makes the macro display the Prowl cooldown)</p>
<pre class="brush: plain; title: ; notranslate">
show Prowl
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Cat Form; [stance:3, nostealth] Prowl
</pre>
<p><strong>Shift to Cat Form and equip Idol</strong><br />
Switch from any form to Cat form and equip an Idol</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form;[stance:2] Aquatic Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Cat Form; [stance:3, nostealth] Prowl
/equip [nostance] Idol of Ferocity
</pre>
<p><strong>Shift to Travel Form from any form</strong><br />
Self Explanatory</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Travel Form
</pre>
<p><strong>Travel Form + Nature's Grasp - note: you can cast Nature's Grasp in forms</strong><br />
If you are in a non-travel form, cancel it.  If you are mounted, dismount.  Cast Travel Form, cast Nature's Grasp.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance, outdoors] Travel Form; [stance:4, outdoors] Nature's Grasp
</pre>
<p><strong>Spam Travel Form</strong><br />
If you are in a non-travel form, cancel it.  If you are mounted, dismount.  Cast Travel Form.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance, outdoors] Travel Form
</pre>
<p><strong>All-Terrain Travel Form</strong><br />
If you are in a non-travel/non-swimming form, cancel it.  If you are mounted, dismount.  If you are swimming, cast Aquatic Form. Otherwise cast Travel Form.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:3] Cat Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance, swimming] Aquatic Form; [nostance, outdoors] Travel Form
</pre>
<p><strong>Spam All-Terrain Travel Form</strong><br />
No matter the current form, cancel it.  If you are mounted, dismount.  If you are swimming, cast Aquatic Form. Otherwise cast Travel Form.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance, swimming] Aquatic Form; [nostance, outdoors] Travel Form
</pre>
<p><strong>Spam ATTF + Mount</strong><br />
If you are in a non-travel/non-swimming form, cancel it.  If you are standing still, mount.  If you are swimming, cast Aquatic Form. Otherwise cast Travel Form.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/use Stormpike Battle Charger &amp;lt;replace with your mount&amp;gt;
/cast [nostance, swimming] Aquatic Form; [nostance, outdoors] Travel Form
</pre>
<p><strong>Spam Travel Form + Rejuv - the WSG flag carrying macro</strong><br />
Cancel any form.  If you are mounted, unmount.  Cast rejuvenation, travel form, travel form, travel form (one per button press in that order).</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;; [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/castsequence [nostance] reset=12 Rejuvenation, Travel Form, Travel Form, Travel Form
</pre>
<p><strong>Shift to Tree of Life form and switch your actionbar from #1, to #2</strong><br />
Since most spells don't work in Tree of Life, you can set up a dedicated actionbar with ToL-only spells.</p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/cast [nostance] Tree of Life
/changeactionbar [stance:5] 2
</pre>
<p><strong>Return to Caster Form and restore original actionbar</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Tree of Life
/cancelaura [mounted] Frostwolf Howler &amp;lt;replace with your mount&amp;gt;
/changeactionbar [nostance] 1
</pre>
<h2 id="_restoration-macros_1" >Restoration Macros</h2>
<p><strong>Cleanse Poison/Curse Combo</strong></p>
<pre class="brush: plain; title: ; notranslate">
#left click abolish poison, right click remove curse. both find target, alternatively, if you prefer targeting player first, replace target=none with target=target
/cast [button:1,target=none] Abolish Poison; [button:2,target=none] Remove Curse
</pre>
<p><strong>Spam Cleanses</strong></p>
<pre class="brush: plain; title: ; notranslate">
/targetfriend
/cast [button:1] Cure Poison; [button:2] Remove Curse
/stopcasting
</pre>
<p><strong>Pseudo -Decursive</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [help] Cure Poison
/stopcasting
/cast [target=player] Cure Poison
/cast [target=party1] Cure Poison
/cast [target=party2] Cure Poison
/cast [target=party3] Cure Poison
/cast [target=party4] Cure Poison
/stopcasting
</pre>
<p><strong>Nature's Swiftness + Healing Touch</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast Nature's Swiftness
/stopcasting
/cast [help] Healing Touch; [target=player] Healing Touch
</pre>
<p><strong>NS + HT/Regrowth</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast Nature's Swiftness
/stopcasting
/cast [nostance, help] Healing Touch; [nostance, target=player] Healing Touch; [stance:5, help] Regrowth; [stance:5, target=player] Regrowth
</pre>
<p><strong>ZHC + NS + HT/Regrowth</strong></p>
<pre class="brush: plain; title: ; notranslate">
/use Zandalarian Hero Charm
/stopcasting
/cast Nature's Swiftness
/stopcasting
/cast [nostance, help] Healing Touch; [nostance, target=player] Healing Touch; [stance:5, help] Regrowth; [stance:5, target=player] Regrowth
</pre>
<p><strong>Heal target or self, based on context</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [help] Healing Touch; [target=player] Healing Touch
/stopmacro [nohelp]
/say &quot;Healing %t in 3 seconds.&quot;
</pre>
<p><strong>HoT Stack</strong></p>
<pre class="brush: plain; title: ; notranslate">
/castsequence [help] reset=8/target Regrowth, Rejuvenation, Lifebloom; [target=player] reset=8 Regrowth, Rejuvination, Lifebloom
</pre>
<p><strong>Rejuv + Idol</strong></p>
<pre class="brush: plain; title: ; notranslate">
/equip Idol of Rejuvenation
/cast Rejuvenation
</pre>
<p><strong>Heal Target or Target's target</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [help] Healing Touch; [target=targettarget] Healing Touch
</pre>
<p><strong>Healing Touch Mega-pack</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [modifier:alt,target=player] Healing Touch;[help] Healing Touch;[target=targettarget, help] Healing Touch;[target=mouseover,help] Healing Touch;[target=focus,help] Healing Touch;[target=focustarget,help];[target=none] Healing Touch
</pre>
<h2 id="_general-utility-macr_1" >General Utility Macros</h2>
<p><strong>Faerie Fire and Feral Faerie Fire combo</strong></p>
<pre class="brush: plain; title: ; notranslate">
show Faerie Fire (Feral)()
/cast [nostance] Faerie Fire; Faerie Fire (Feral)()
</pre>
<p><strong>Spammable Prowl and Shadowmeld</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [nocombat, stance:3, nostealth] Prowl; [nocombat, nostealth] Shadowmeld
</pre>
<p><strong>Innervate - note: Innervate supposedly can now only be cast on units with mana.</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [modifier:alt, target=player] Innervate; [help] Innervate; [target=mouseover, exists, help] Innervate; [target=none] Innervate
</pre>
<p><strong>Moonfire Spam</strong><br />
Cast Moonfire rank 10, 9, 9, 9, 9 each time the button is pressed.  Reset the macro if you change targets, enter combat, or hold ctrl and press the macro.</p>
<pre class="brush: plain; title: ; notranslate">
/castsequence reset=9/target/combat/ctrl Moonfire(Rank 10), Moonfire(Rank 9), Moonfire(Rank 9), Moonfire(Rank 9), Moonfire(Rank 9)
</pre>
<p><strong>Moonfire Flex</strong><br />
If you hold control, cast moonfire 1.  If you click with your second mouse button, cast rank 9, otherwise cast rank 10.</p>
<pre class="brush: plain; title: ; notranslate">
/cast [modifier:ctrl] Moonfire(Rank 1); [button:2] Moonfire(Rank 9); Moonfire(Rank 10)
</pre>
<p><strong>Moonfire + Idol</strong></p>
<pre class="brush: plain; title: ; notranslate">
/equip Idol of the Moon
/cast Moonfire
</pre>
<p><strong>Totem Killer - needs testing</strong></p>
<pre class="brush: plain; title: ; notranslate">
/target totem
/cast [harm] Moonfire(Rank 1)
</pre>
<p><strong>Faerie Fire Target or Target's target</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [harm] Faerie Fire; [target=targettarget, harm] Faerie Fire
</pre>
<p><strong>Hurricane+Barkskin - note: for some reason, this still show's Barkskin's cooldown</strong></p>
<pre class="brush: plain; title: ; notranslate">
show Hurricane
/stopmacro [channeling:Hurricane]
/castsequence reset=60/combat Barkskin, Hurricane
</pre>
<p><strong>Gift of the Wild/Mark of the Wild</strong></p>
<pre class="brush: plain; title: ; notranslate">
/cast [button:2] Gift of the Wild; [modifer:ctrl] Gift of the Wild; Mark of the Wild
</pre>
<p><strong>Mark of the Wild + Thorns</strong></p>
<pre class="brush: plain; title: ; notranslate">
/castsequence [modifier:alt, target=player] reset=10/target Thorns, Mark of the Wild; [help] reset=10/target Thorns, Mark of the Wild; [target=player] reset=10/target Thorns, Mark of the Wild
</pre>
<p><strong>Stun and Self-Heal (Tauren)</strong></p>
<pre class="brush: plain; title: ; notranslate">
show War Stomp
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/castsequence [target=player] reset=120/combat War Stomp, Regrowth, Rejuvenation
</pre>
<p><strong>Stun and Self-Heal (Dire Bear Form) - doesn't work yet...</strong></p>
<pre class="brush: plain; title: ; notranslate">
show Bash
/cancelaura [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form &amp;lt;or Tree of Life&amp;gt;
/castsequence [stance:1] reset=50/combat Bash, Dire Bear Form, Regrowth, Rejuvenation
/castsequence [nostance] reset=50/combat Dire Bear Form, Bash, Dire Bear Form, Regrowth, Rejuvenation
</pre>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/wow-druid-macros/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>WoW Priest Macros</title>
		<link>http://borkweb.com/story/wow-priest-macros</link>
		<comments>http://borkweb.com/story/wow-priest-macros#comments</comments>
		<pubDate>Sat, 30 Dec 2006 04:10:39 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Art, Gaming, & Fun]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[macro]]></category>
		<category><![CDATA[macros]]></category>
		<category><![CDATA[mmo]]></category>
		<category><![CDATA[mmog]]></category>
		<category><![CDATA[mmorpg]]></category>
		<category><![CDATA[rpg]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[world of warcraft]]></category>
		<category><![CDATA[wow]]></category>

		<guid isPermaLink="false">http://borkweb.com/story/wow-priest-macros</guid>
		<description><![CDATA[[[innerindex]] Introduction Using my post on macros, World of Warcraft Forums and a number of other random resources and suggestions, I&#8217;ll be posting useful macros for each class. Because I play a Priest on Illidan, I&#8217;ll start with that class first :). Crowd Control Macros Shackle version 1 This macro will cast Shackle Undead if [...]]]></description>
			<content:encoded><![CDATA[<p>[[innerindex]]<a href="http://www.flickr.com/photos/borkweb/338084848/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/127/338084848_19410f9b2c_o.jpg" width="249" height="251" alt="priest" class="post_image" align="left"/></a><br />
<h2 id="_introduction_4" >Introduction</h2>
<p>Using <a href="http://borkweb.com/story/world-of-warcraft-20-macros">my post on macros</a>, <a href="http://worldofwarcraft.com">World of Warcraft</a> <a href="http://worldofwarcraft.com">Forums</a> and a number of other random resources and suggestions, I&#8217;ll be posting useful macros for each class.  Because I play a Priest on Illidan, I&#8217;ll start with that class first :).</p>
<h2 id="_crowd-control-macros_1" >Crowd Control Macros</h2>
<p><strong>Shackle version 1</strong><br />
This macro will cast Shackle Undead if the target is hostile. It will then tell the party that you&#8217;re shacking the target. The stopmacro line will prevent the announcement if the target is not hostile, cutting down on unnecessary spam. However, I think you&#8217;ll still get a /p message if you attempt to cast shackle undead on a non-valid target. (confirmed for 2.0.1) </p>
<pre class="brush: plain; title: ; notranslate">
/cast [harm] Shackle Undead
/stopmacro [noharm]
/p Shackling %t! DO NOT TOUCH!
</pre>
<p><strong>Shackle version 2 (Focus Combo)</strong><br />
Allows you to set your focus and bind a spell directly to that focus. You should be able to cast the second spell without ever losing your current target. If used with a heal spell instead of shackle, this should also be very helpful for MT/Raid healing.</p>
<pre class="brush: plain; title: ; notranslate">
macro 1:
/focus target
macro 2:
/cast [target=focus,harm] Shackle Undead; [harm] Shackle Undead
/stopmacro [target=focus,noharm]
/script SendChatMessage(UnitName(&quot;focus&quot;)..&quot; is shackled! DO NOT BREAK!&quot;)
</pre>
<p><em>Note: if you don&#8217;t know what /focus target does&#8230;well, it allows you to mark a target as a <strong>focused target</strong> which allows you to target other objects and cast spells on that focus without losing your current target.</em></p>
<h2 id="_healing-macros_1" >Healing Macros</h2>
<p><strong>Simple Greater Heal</strong><br />
This simple macro will cast Greater Heal (the highest rank you have) if the target is friendly, and alert the party about whom you&#8217;re healing. It will stop the announcement if the target is not friendly. (confirmed for 2.0.1) </p>
<pre class="brush: plain; title: ; notranslate">
/cast [help] Greater Heal
/stopmacro [nohelp]
/p Healing %t
</pre>
<p><strong>Target/Self Heal Macro</strong><br />
This macro checks to see if you have the &#8220;alt&#8221; key selected &#8211; if you do, then it casts Flash Heal on yourself. If you do not, it wil cast Flash Heal on your friendly target. It also announces to the party when you heal a target. </p>
<pre class="brush: plain; title: ; notranslate">
/cast [modifier:alt,target=player] Flash Heal; [help] Flash Heal
/p Healing %t
</pre>
<p><strong>A Better Target/Self Healing Macro</strong><br />
Llenyd and Augur wrote this one, which I think is better than the one listed above. It will heal yourself if the target is harmful, otherwise it will heal your target &#8211; and announce whomever you&#8217;re healing, including yourself. The above macro would only announce your targetted healing. (confirmed for 2.0.1) </p>
<pre class="brush: plain; title: ; notranslate">
/cast [help] &amp;lt;healing Spell&amp;gt;; [target=player] &amp;lt;healing Spell&amp;gt;
/script local n if(UnitIsFriend(&quot;player&quot;,&quot;target&quot;)) then n=UnitName(&quot;target&quot;) else n=UnitName(&quot;player&quot;) end SendChatMessage(&quot;Healing&quot;..n..&quot;in 3 seconds&quot;,&quot;SAY&quot;,nil)
</pre>
<p><strong>Uber Mouse Wielding Heal Macro</strong><br />
For you uber-mouse wielders out there, Llenyd&#8217;s macro would:<br />
Cast GH1 on the Broodlord&#8217;s current target if you click the macro.<br />
Cast Shield on the Broodlord&#8217;s current target if you right-click the macro.<br />
Cast highest rank FH on the Broodlord&#8217;s current target if you Mouse Button 4-click the macro.<br />
Cast highest rank GH on the Broodlord&#8217;s current target if you Mouse Button 5-click the macro. </p>
<pre class="brush: plain; title: ; notranslate">
/cast [target=targettarget, button:1] Greater Heal (Rank 1); [target=targettarget, button:2] Power Word: Shield; [target=targettarget, button:4] Flash Heal; [target=targettarget; button:5] Greater Heal
</pre>
<p><strong>Uber Mouse Wielding Flash Heal Macro</strong><br />
This is similar to the above macro, except that it casts Flash Heal and chooses the targets according to which mouse button you click with. </p>
<pre class="brush: plain; title: ; notranslate">
/cast [button:1, help] Flash Heal; [button:1, harm, target=targettarget] Flash Heal; [modifier:alt, target=player] Flash Heal; [button:2, target=party2] Flash Heal; [button:3, target=party3] Flash Heal; [button:4, target=party4] Flash Heal; [button:5, target=party5] Flash Heal
</pre>
<h2 id="_combat-macros_1" >Combat Macros</h2>
<p><strong>Space Saving Mind Blast/SW:Pain Macro</strong><br />
This macro uses the new &#8220;cast sequence&#8221; ability &#8211; yay more bar space! When you first click it, it should cast Mind Blast &#8211; when you click the button again, it will cast Shadow Word: Pain. The sequence will reset to Mind Blast if the player drops out of combat, or chooses a different target. </p>
<pre class="brush: plain; title: ; notranslate">
/castsequence reset=combat/target Mind Blast, Shadow Word: Pain
</pre>
<p><strong>MindFlay When Not Channeling Macro</strong><br />
Should cast Mind Flay only if you are not currently already channeling Mind Flay. For those &#8220;duh&#8221; moments. :)</p>
<pre class="brush: plain; title: ; notranslate">
/cast [nochanneling:Mind Flay] Mind Flay
</pre>
<p><strong>Devouring Plague Macro</strong><br />
Good example of the timed reset macro. This macro will, on the first button press, cast Inner Focus. On the second press, it will cast Devouring Plague. The sequence resets after Devouring Plague, or if enough time passes between button presses (170).</p>
<pre class="brush: plain; title: ; notranslate">
/castsequence reset=170 Inner Focus, Devouring Plague
</pre>
<p><strong>Shadowform Heal</strong><br />
For our shadow friends, this macro will drop shadowform on the first click, cast Flash Heal on the second click, and revert you to shadowform on the third click. If you are not in shadowform, it won&#8217;t do anything. </p>
<pre class="brush: plain; title: ; notranslate">
/castsequence [stance:1] Shadowform, Flash Heal, Shadowform
</pre>
<p><strong>Correct Your Smiting</strong><br />
Casts smite on a harmful target&#8230;OR if you target a friendly to heal them, and they&#8217;re targeting a mob, casts smite on your target&#8217;s target.</p>
<pre class="brush: plain; title: ; notranslate">
/cast [harm] Smite; [target=targettarget, harm] Smite
</pre>
<p><strong>Troll Berserking/PI/IF Macro</strong><br />
Sirona&#8217;s Troll Berserking / Power Infusion / Inner Focus &#8212; Smite macro does just what it says. :) If any of the first spells are on cooldown it should give you an error message, but continue on through the other spells. You can also turn this into a healing macro if you change the final spell. </p>
<pre class="brush: plain; title: ; notranslate">
/cast Berserking
/stopcasting
/cast Power Infusion
/stopcasting
/cast Inner Focus
/stopcasting
/cast Smite
</pre>
<h2 id="_misc-macros_1" >Misc Macros</h2>
<p><strong>Mouseover Dispell</strong><br />
Sylphael&#8217;s macro (ty, Sylphael!) will cast dispel magic on whatever target your mouse is presently hovering over. So if you bind it to a mouse button and hit that button while hovering over a character, you&#8217;ll cast dispel on that character.</p>
<pre class="brush: plain; title: ; notranslate">
/cast [target=mouseover] Dispel Magic
</pre>
<p><strong>Instant Shield</strong><br />
This will stop the current spell and cast PW:S on your target if it is friendly, or (if that fails) it will cast PW:S on your target&#8217;s target. </p>
<pre class="brush: plain; title: ; notranslate">
/stopcasting
/cast [help] Power Word: Shield; [target=targettarget] Power Word: Shield
</pre>
<p><strong>Handy Resurrection Macro</strong><br />
Just a simple resurrection macro that announces your casting!</p>
<pre class="brush: plain; title: ; notranslate">
/cast [dead] Resurrection
/stopmacro [nodead]
/script SendChatMessage(&quot;Resurrecting &quot;..UnitName(&quot;target&quot;)..&quot;.  w00t!&quot;)
</pre>
<p><strong>Top Trinket+PI Macro</strong><br />
This is Tanara&#8217;s &#8220;Top Trinket +PI&#8221; macro. Trinket slots will not be a valid term in the &#8220;/castsequence&#8221; macros &#8211; you&#8217;ll have to specify the item name like the one in italics here. If I remember right, the name is case sensitive but only has to be long enough so that the term isn&#8217;t ambiguous. For example, &#8220;Conjured&#8221; could call conjured water or conjured cinnamon roll. You would have to write out to &#8220;Conjured Cinn&#8221; to get the term non-ambiguous.</p>
<p>The macro is a sequence so that if the trinket was on cooldown, then the Power Infusion wouldn&#8217;t cast. There&#8217;s no way to &#8220;use spell if item is not on cooldown&#8221; in the new scripting language &#8211; the developers deliberately removed that functionality. Remember, you&#8217;ll have to press the button twice (with no failure) to get the Power Infusion spell cast.</p>
<pre class="brush: plain; title: ; notranslate">
/castsequence [target=player] Zandalarian Hero Charm, Power Infusion
</pre>
<p><strong>Spoon&#8217;s BAM Macro</strong><br />
Spoon&#8217;s BAM macro (ty Spoon!) should use the Hero Charm if it&#8217;s not on cooldown, then cast Power Infusion, then cast Inner Focus &#8211; all with one click. It differs from the above macro in that there&#8217;s no cooldown check. If the Hero Charm is on cooldown, you&#8217;ll just receive an error message but the rest of the spells will execute.</p>
<pre class="brush: plain; title: ; notranslate">
/use Zandalarian Hero Charm
/stopcasting
/cast [target=player] Power Infusion
/stopcasting
/cast [target=player] Inner Focus
</pre>
<p><strong>SpaceSaver Macro</strong><br />
Spoon&#8217;s spacesaver macros &#8211; now your low ranked or single-cast spell can be the same button as your high ranked. All you&#8217;ll have to do is hold the alt key to toggle between them.</p>
<pre class="brush: plain; title: ; notranslate">
/cast [modifier:alt] Prayer of Shadow Protection; Shadow Protection
/cast [modifier:alt] Greater Heal(Rank 1); Greater Heal
/cast [modifier:alt] Holy Nova(Rank 1); Holy Nova
</pre>
<p><strong>Raid Shield</strong><br />
Pretty simple macro to cast shield on your target if he&#8217;s in your group and friendly or if your target&#8217;s target is friendly and in group, or else shield yourself.</p>
<pre class="brush: plain; title: ; notranslate">
/cast [raid] Power Word: Shield; [target=targettarget, raid] Power Word: Shield; [target=player] Power Word: Shield
</pre>
<p>Special thanks to Anaea of Aerie Peak&#8217;s <a href="http://forums.worldofwarcraft.com/thread.html?topicId=50955814&#038;sid=1">Priest Macro resource</a> where a number of macros were pilfered :)</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/wow-priest-macros/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>JavaScript Shell</title>
		<link>http://borkweb.com/story/javascript-shell</link>
		<comments>http://borkweb.com/story/javascript-shell#comments</comments>
		<pubDate>Fri, 03 Nov 2006 19:29:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ajaxexperience]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript shell]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://borkweb.com/story/javascript-shell</guid>
		<description><![CDATA[While at The Ajax Experience I noticed a tool that a few of the speakers made use of that was missing from my arsenal. The tool? JavaScript Shell. This little beauty, once you&#8217;ve added the bookmark to your browser allows you to open a JavaScript Shell for any page you happen to be on! The [...]]]></description>
			<content:encoded><![CDATA[<p>While at <a href="http://borkweb.com/story/the-ajax-experience">The Ajax Experience</a> I noticed a tool that a few of the speakers made use of that was missing from <a href="http://borkweb.com/story/must-have-extensions-for-firefox">my arsenal</a>.  The tool?  <a href="http://www.squarefree.com/shell/">JavaScript Shell</a>.</p>
<p>This little beauty, once you&#8217;ve added the bookmark to your browser allows you to open a JavaScript Shell for any page you happen to be on!  The shell lets you enter JavaScript from command-line to manipulate the page, trigger functions, analyze properties, etc.  All libraries that the site has loaded are available within the Shell&#8230;so, if you use <a href="http://borkweb.com/story/the-ajax-experience-jquery-toolkit">jQuery</a> or some other toolkit, all defined functions and plugins are usable.</p>
<p>Here&#8217;s some features and pre-defined functions from the <a href="http://www.squarefree.com/shell/">JavaScript Shell site</a></p>
<blockquote>
<p><strong>Features</strong></p>
<ul>
<li>You can enter statements and expressions at the same prompt.</li>
<li>The result of each non-void statement or expression is shown.</li>
<li>User-defined variables.
<ul>
<li><strong>b = document.body</strong></li>
</ul>
</li>
<li>User-defined functions.
<ul>
<li><strong>function f() { return 5; }</strong></li>
</ul>
</li>
<li>JavaScript error messages are shown in red.</li>
<li>Previous statements and expressions are available through Up and Down arrow keys.</li>
<li>Tab completion.</li>
<li>Multiline input (Shift+Enter to insert a line break).</li>
<li>If the shell is opened using a bookmarklet, JavaScript typed into the shell runs in the context of the original window.</li>
<li>Works well in Firefox, mostly works in Opera 8 and in IE 6 for Windows.</li>
</ul>
<p><strong>Built-in functions</strong></p>
<ul>
<li><strong>ans</strong>: the result of the previous expression.</li>
<li><strong>print(expr)</strong>: prints expr on its own line.
<ul>
<li><strong>for(i = 0; i &lt; 6; ++i) <b>print(</b>i * i<b>)</b></strong></li>
</ul>
</li>
<li><strong>pr(expr)</strong>: prints and returns its input, so you can use it to print intermediate results in the middle of an expression.
<ul>
<li><strong>function fact(n) { return n&gt;0 ? <b>pr(</b>n*fact(n-1)<b>)</b> : 1 }</strong></li>
</ul>
</li>
<li><strong>blink(node)</strong> or <kbd>Alt+B</kbd>: makes a node blink for a second.
<ul>
<li><strong><b>blink(</b>document.links[3]<b>)</b></strong></li>
</ul>
</li>
<li><strong>props(obj)</strong> or <kbd>Alt+P</kbd>: lists the methods and fields of an object.
<ul>
<li><strong><b>props(</b>document.body<b>)</b></strong></li>
<li>In Firefox, <strong>props</strong> also shows which properties belong to the object itself and which belong to objects in its prototype chain.</li>
</ul>
</li>
</ul>
</blockquote>
<p>I&#8217;m a fan :D</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/javascript-shell/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype Makes Javascript Painless</title>
		<link>http://borkweb.com/story/prototype-makes-javascript-painless</link>
		<comments>http://borkweb.com/story/prototype-makes-javascript-painless#comments</comments>
		<pubDate>Wed, 22 Feb 2006 16:38:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA["javascript library"]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.borkweb.com/story/prototype-makes-javascript-painless</guid>
		<description><![CDATA[Prototype is an excellent tool but lacking in documentation, causing me to fumble around and *gasp* look at the source code. As any developer knows, when reviewing code there is a chance that you may miss something or ignore what doesn&#8217;t seem interesting. In doing so, you may miss some sweet features that you would [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" class="post_image" alt="prototype.gif" src="http://www.borkweb.com/wp-content/uploads/2006/02/prototype.gif" id="image172" style=""/>Prototype is an excellent tool but lacking in documentation, causing me to fumble around and *gasp* look at the source code.  As any developer knows, when reviewing code there is a <em>chance</em> that you may miss something or ignore what doesn&#8217;t seem interesting.  In doing so, you may miss some sweet features that you would otherwise use.</p>
<p>I <em>did</em> stumble upon some <a href="http://www.borkweb.com/story/prototype-cheat-sheets">Prototype Cheat Sheets</a> that <em>have</em> helped immensely in exposing functions that existed in Prototype that I had no clue were there.  Desipte the exposure of function names, I was at a loss for what some of them did.  Luckily, there is an article over at <a href="http://www.sergiopereira.com/articles/prototype.js.html">SergioPeriera.com</a> that documents many of those functions!  The documentation is fairly solid so I <strong>HIGHLY</strong> reccommend checking it out.  Here&#8217;s one of the features of Prototype that I had seen the function but hadn&#8217;t a firm understanding on what it did:</p>
<p><strong>Try.these()</strong><br />
Tries a number of functions in order. If the first fails, it attempts the second, and so on.</p>
<pre class="brush: jscript; title: ; notranslate">
function getXmlNodeValue(xmlNode){
	return Try.these(
		function() {return xmlNode.text;},
		function() {return xmlNode.textContent;)
		);
}
</pre>
<p>Hugely cool.  In addition, <a href="http://ajaxian.com">Ajaxian</a> &#8211; which seems to be my source for many things Ajax &#8211; has pointed me towards <a href="http://www.sitepoint.com/article/painless-javascript-prototype">this article</a> over at SitePoint.  I was aware of a number of the points mentioned in that SitePoint article, but a few stood out as super sexy.  Here&#8217;s the juicy tidbits:</p>
<p><strong>String.times([something])</strong><br />
Prototype adds a great method to Number, too. Say goodbye to your for loops!</p>
<pre class="brush: jscript; title: ; notranslate">
// alerts &quot;1&quot;, &quot;2&quot;, &quot;3&quot; ... &quot;50&quot;
(50).times(function(n) { alert(n); });
</pre>
<p><strong>Enumberable.each([something])</strong><br />
This does the same as a foreach in PHP.  I&#8217;ve been looking for something like this!</p>
<pre class="brush: jscript; title: ; notranslate">
// alerts &quot;a is at 0&quot; then &quot;b is at 1&quot; then &quot;c is at 2&quot;
[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;].each(function(item, index) {
 alert(item + &quot; is at &quot; + index);
});
</pre>
<p><strong>Iterating over childNodes in the DOM</strong><br />
By default, even though nodes are represented in Array-like form, they do not have Enumerable available to them automatically. Here&#8217;s how to do it:</p>
<pre class="brush: jscript; title: ; notranslate">
// add Enumerable to childNodes
var children = $A($(&quot;mydiv&quot;).childNodes);

// sets class=&quot;highlighted&quot; for all child nodes of &quot;mydiv&quot;
children.each(function(child) {
 child.setAttribute(&quot;class&quot;, &quot;highlighted&quot;);
});
</pre>
<p>Here&#8217;s one I found while digging around in the Prototype code that the article solidified my understanding:</p>
<p><strong>Ajax.PeriodicalUpdater(id,file,options)</strong><br />
Periodically does an Ajax.Updater call!</p>
<pre class="brush: jscript; title: ; notranslate">
new Ajax.PeriodicalUpdater(&quot;mydiv&quot;, &quot;hello.php&quot;, {
 // initial number of seconds interval between calls
 frequency : 1,
 decay : 2
});
</pre>
<blockquote><p>
The decay option allows you to give your server a bit of a break if it&#8217;s returning a lot of identical responses. Essentially, every time PeriodicalUpdater makes a request, it compares the results with what the server returned last time. If the values are the same, it multiplies the interval by the decay value. So, for the above example, it would make the next request two seconds later, then four seconds later, and so on, until it received a different result from the server. At that point, the interval would be reset to one second.
</p></blockquote>
<p><strong>Ajax.Responders.register(options)</strong><br />
Register global event handlers that are triggered for each and every AJAX request that happens on the page.</p>
<pre class="brush: jscript; title: ; notranslate">
Ajax.Responders.register({
 onCreate : showLoader,
 onComplete : hideLoader
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/prototype-makes-javascript-painless/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

