Gauss
said:
Brian, you could use inline rolls for a lot of that to reduce the chat spam and thus reduce the number of macros.
For an attack/damage pair of macros you can do this: Attack [[all the stuff you normally have in your attack macro roll]] Damage [[all the stuff you normally have in your damage macro roll]]
Those macros are using inline rolls. =) My single target attacks are similar to what you describe; for example: RayOfFrost /me sends a blisteringly cold ray of frost at the target! #orbHit vs. Fortitude Hit: [[d6+@{William Ezo|INT}+1]] cold damage, target is slowed until end of your next turn. However, that format does not for work AoE attack in D&D 4e. You make separate attack rolls for each target in the AoE, and a single damage roll. Unfortunately, without the API it is not possible to create a variable number of separate, distinct rolls. (This is why I created my Roll Repeater script, but the campaign in question was created by a free account so that isn't an option.) My options were either doing a bunch of typing (not the point of using macros!), spamming the chat with unnecessary copies of my emote and damage roll (since only the first would matter), or making different macros fro the number of targets in the AoE. My solution was to break my attack format down into its component parts: Emote, Attack, and Hit/Miss. Emote and Hit/Miss are only needed once per variation on the AoE, so they're not strictly needed as separate macros. However, making them separate macros reduces the chance for error and permits me to change all variations of the AoE at once. As you can see above, I'm using #orbHit for my actual attack roll, for a similar reason. All of my (spell) attack rolls are the same: INT+Level/2+Feat bonus (1)+Orb enhancement bonus (1). Why type that entire roll into every macro and change it in every macro later when I get a better implement or add another feat bonus, when I can type that once, change it in one place, and have it update everywhere? So, I finally have separate macros for the number of targets. Thunderwave, for example, covers a 3x3 square area, so barring tiny creatures sharing spaces, I'm not going to have more than 9 targets. Thus, Thunderwave1 through Thunderwave9. I keep Thunderwave2 in my macro bar, and type the others if needed. Thunderwave3 #TWaveEmote #orbHit vs. Fortitude #orbHit vs. Fortitude #orbHit vs. Fortitude #TWaveHit TWaveEmote /me creates a whip-crack of sonic power that lashes up from the ground! TWaveHit Hit: [[d6+@{William Ezo|INT}+1]] thunder damage, target pushed @{William Ezo|WIS} squares. orbHit [[d20+@{William Ezo|INT}+floor(@{William Ezo|Level}/2)+1+1]] The macro is called when I cast Thunderwave against 3 targets, and the output looks like: William Ezo creates a whip-crack of sonic power that lashes up from the ground! # vs. Fortitude # vs. Fortitude # vs. Fortitude Hit: # thunder damage, target pushed 3 squares. I actually don't have a full complement of macros for Visions of Avarice, since its attack hits an 11x11 area. I limited myself to 10, as I figured that would be plenty for most situations. Now compare all of the above to the AoEs I use on my Warden, who is in a campaign with my Roll Repeater script: RootsOfStone !rr /me unleashes a burst of primal energy which causes the ground to ripple! !rr #d20pSTRq vs. AC !rr !rr Hit: #1[W]pSTR damage. When target leaves the zone, it is knocked prone and takes [[@{Blackstone|CON}]] damage. d20pSTRq [[d20+@{Blackstone|STR}+floor(@{Blackstone|LVL}/2)+2]]{?{Targets}} 1[W]pSTR [[d10r<2+@{Blackstone|STR}]] Clicking my roots of Stone macro will bring up a query window for the number of targets. I type 3, and the output looks like this: Blackstone unleashes a burst of primal energy which causes the ground to ripple! #, #, # vs. AC Hit: # damage. When the target leaves the zone, it is knocked prone and takes 4 damage. Many of your macros can be combined in similar fashion. You can even combine the emotes with inline rolls this way if you wanted. - Gauss
Already done. Initiative /me rolls for initiative! [[d20+@{William Ezo|DEX}+floor(@{William Ezo|Level}/2)+4]]