Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] Power Cards

August 18 (10 years ago)
Several? There's only one... the whole thing in the code box is the script. --crit also does not work anymore. Use [[ [HR19] 1d20]] now.
August 18 (10 years ago)
Falcon
Pro
Sheet Author
I had an old script from a different thread. Ok - much better now. Can you do calls to tables? I have a hit location table such as [[1t[Hit-Location]]]. It returns a 0.

August 18 (10 years ago)
Not yet. I haven't added that yet. I have to add a whole new section to the inlineroll builder to get it to work.
August 18 (10 years ago)
Falcon
Pro
Sheet Author
BTW - this is fantastic and thanks to you and the crew. Final question for the night - When you do multiple attacks - like a dual attack (different weapons and damage) - is there a way to do attack2 and then show 2 lines:

8 | vs. AC with Axe
12 | vs AC with Shield

8 Damage with Axe
12 Damage with Shield
August 18 (10 years ago)
I would make that two separate macros. One for axe, one for shield. That way if the axe attack kills your target... you can select another for the shield.
August 21 (10 years ago)

Edited August 21 (10 years ago)
Got this working... but only for one roll. It does not work for multiple table rolls like 2t[HitLocation]. It will only work for 1t[Table] rolls.

  • August 20th, 2014 ~ 11:30 pm eastern: Tables now work... for one roll tables only. For example, a table named HitLocation would work if you used the following inline roll: [[ 1t[HitLocation ]] but would NOT work if you used [[ 2t[HitLocation] ]]



Update: This does NOT work with any multiroll tags either... so no attack#, damage#, or multiroll# yet. Will try to figure that out later.
August 21 (10 years ago)
  • August 21st, 2014 ~ 12:40 pm eastern: I have added four new tags... which let you further customize the appearance of the power cards. These colors can also be set for all power cards at the top of the script.
    • --orowbg|#000 defines the background color of odd rows
    • --orowtx|#000 defines the text color of odd rows
    • --erowbg|#000 defines the background color of even rows
    • --erowtx|#000 defines the text color of even rows
August 21 (10 years ago)

Edited August 21 (10 years ago)

Aaron said:

Suggestion: Character specific color overrides

My macros using power cards all have this in common:
--bgcolor|#@{BGColor}  --txcolor|#@{FGColor}

example:
!power --format|ddn --emote|@{selected|token_name} extends his hand and a blast of arctic frost sprays forth! --bgcolor|#@{BGColor}  --txcolor|#@{FGColor}  --name|Ray of Frost --leftsub|50 ft  --rightsub|Evocation Cantrip --attack|[[1d20+@{Int}+@{Proficiency}]] | [[1d20+@{Int}+@{Proficiency}]]  --damage|[[1d8]] cold damage and target's speed is reduced by 10ft until @{selected|token_name}'s next turn.

Having the script check the calling character for some defaults would be a nice enhancement from my perspective. Obviously you'd have to pass something like --asCharacter|<character_id> but that's not a deal breaker for me. =D

You could do all that with one attribute on a character sheet: !power --format|ddn @{selected|cardformat} --name|Ray of Frost ...

Then in cardformat, put in the tags: --bgcolor|#000 --txcolor|#000 etc. Roll20 will replace that attribute with the tags before it is sent to the api.
August 21 (10 years ago)
The Aaron
Roll20 Production Team
API Scripter
Yeah, I suppose one is better than two... :)
August 21 (10 years ago)

Edited August 21 (10 years ago)
So your table addition initially inspired me to make some powercard loot generation macros tied to rollable tables. Then I thought better of it when looking at the sheer number of tables that can potentially be involved in a random loot generation o_0
August 21 (10 years ago)
Wes
Sheet Author
I can't wait to try them out later today.
August 21 (10 years ago)

Zepth said:

So your table addition initially inspired me to make some powercard loot generation macros tied to rollable tables. Then I thought better of it when looking at the sheer number of tables that can potentially be involved in a random loot generation o_0

lol
August 21 (10 years ago)
Tom F.
Pro
API Scripter
Loving this script!
I just did a quick test, and it seems that when I changed the row colours in a macro, it carries that change forward to all other uses of the cards, whether i changed those macros or not.
I have to re-save the script on the API page in order to get the original colours back.

To be clear I did not change the default colours on the script, but made those changes in a macro, and those carried over for all uses.

When I run a second macro and change the row colours, that becomes the new default, until I re-save the API, and then I get the beige/brown standard colours.

I'm guessing the global default row and text row colour variables themselves are being reset when they are called in the macro?


August 21 (10 years ago)
That's weird...I'll take a look when I get home, if the power is back on yet.
August 21 (10 years ago)
Ok... "bug" is fixed. Thanks Tom.

August 21st, 2014 ~ 2:00 pm eastern: Bugfix... moved odd/even row default colors into the PowerCardScript.Process function to prevent macros from overriding these values and carrying over to other macros.
August 21 (10 years ago)

Edited August 21 (10 years ago)
Tom F.
Pro
API Scripter
HoneyBadger, you are, without doubt, the most responsive developer ever!
Thank for all the great work!!!

**tested: works beautifully!!!
August 21 (10 years ago)
Eh, I wouldn't go that far... lol. I still have not updated my 4e character importer...
Sorry Honey Badger..... there words are very true.... do we need a new thread to show you from all of us...... how we feel about the work you have done..... thanks for what you have done and help you have given
August 24 (10 years ago)

Edited August 24 (10 years ago)
Is there a way I can add my own personal tag? I want to change --emote to just be "/me" and add a tag --emas|@{selected|token_name} to /emas

but I don't really know anything about code, so I don't see where it catches the "--emote|" bit and translates it to powercard.emote

Keiss said:

Is there a way I can add my own personal tag? I want to change --emote to just be "/me" and add a tag --emas|@{selected|token_name} to /emas

but I don't really know anything about code, so I don't see where it catches the "--emote|" bit and translates it to powercard.emote

you can use /me in place of --emote, simply put the /me on the first line of the macro and the second line can start the !power.

To then use the /emas, you can use the --emote|... That will perform the /emas. So for an example the macro could be.


/me Lunges forward slashing and stabbing at the foe
!power --name|Lunge --attack|[[d20]] --damage|[[d8]] --emote|@{selected|token_name} is mortally wounded.


I'm not sure if you're wanting two emotes in one macro or not, but above is how it can be done. This would look funny however as the emotes would likely be separated by a blank message. Just keep in mind you can always use the /me ... before any !power command in a macro.
August 24 (10 years ago)

Keiss said:

Is there a way I can add my own personal tag? I want to change --emote to just be "/me" and add a tag --emas|@{selected|token_name} to /emas

but I don't really know anything about code, so I don't see where it catches the "--emote|" bit and translates it to powercard.emote

The --emote tag simply puts whatever you have typed as a /emas emote. Players don't normally have access to this command, but can use it through the API. If you post an actual macro you are using, it will be easier to help that way.
August 24 (10 years ago)

Edited August 24 (10 years ago)

HoneyBadger said:

Keiss said:

Is there a way I can add my own personal tag? I want to change --emote to just be "/me" and add a tag --emas|@{selected|token_name} to /emas

but I don't really know anything about code, so I don't see where it catches the "--emote|" bit and translates it to powercard.emote

The --emote tag simply puts whatever you have typed as a /emas emote. Players don't normally have access to this command, but can use it through the API. If you post an actual macro you are using, it will be easier to help that way.
So, the way its done is that a token must be selected to use a power. Which isn't that big of a deal-- except when your players aren't exactly the brightest bulbs in the box. Most of them won't "be" anyone else, so using /emas ends up creating more stress than anything. I could change it to target|token_name, but then I can see them forgetting which token they are.

I did figure out how to add my own tag (--emas, which uses /emas so I can be other people) and changed emote to use /me. It seems to work so far. That way, I can just give my players macros of their spells so they just click a button-- rather than spend 15 minutes trying to rifle through their things. It was moreso, "How do I make this idiot proof?" I love my players but..

My only suggestion? I don't know if it's a limitation of the script or the API itself, but passing html like <ul> <a> <br /> from the chat/macro would be pretty nice for breaking up paragraphs. I am also in love with this script.

August 24 (10 years ago)
You didn't need to change the emote tag... you could have just put:

/me makes an attack!
!power --name|Attack --attack|[[1d6]] vs Defense
August 24 (10 years ago)

Keiss said:

My only suggestion? I don't know if it's a limitation of the script or the API itself, but passing html like <ul> <a> <br /> from the chat/macro would be pretty nice for breaking up paragraphs. I am also in love with this script.
Line breaks are in... ^^ will insert a break between paragraphs.
August 24 (10 years ago)

HoneyBadger said:

Keiss said:

My only suggestion? I don't know if it's a limitation of the script or the API itself, but passing html like <ul> <a> <br /> from the chat/macro would be pretty nice for breaking up paragraphs. I am also in love with this script.
Line breaks are in... ^^ will insert a break between paragraphs.
Oops. <a> would still be nice though :D Dem urls

August 24 (10 years ago)
Not sure what I did but I broke my power card test. I'm playing an AD&D 1st Edition game, so I don't need all the skill checks and such from the later editions. I just wanted to clean up how my macros looked but something went wrong. I used the API script from above with no modifications.


I used a modified version of the sample power card macro text from the wiki:

!power 
--emote|@{selected|token_name} strikes skillfully with his long sword. 
--name|Melee Basic Attack 
--usage|At-Will 
--action|Standard Action 
--attack|[[1d20]] 
--damage|[[1d8]] 
--dmgtype|slashing
They arent individual lines, they are to be all in one line, seperated by a space:

!power --emote|@{selected|token_name} strikes skillfully with his long sword. --name|Melee Basic Attack --usage|At-Will --action|Standard Action --attack|[[1d20]] --damage|[[1d8]] --dmgtype|slashing
August 25 (10 years ago)
Also, Dmgtype has been removed as a usable tag and I believe usage and action will go soon as well.
August 25 (10 years ago)

HoneyBadger said:

  • August 21st, 2014 ~ 12:40 pm eastern: I have added four new tags... which let you further customize the appearance of the power cards. These colors can also be set for all power cards at the top of the script.
    • --orowbg|#000 defines the background color of odd rows
    • --orowtx|#000 defines the text color of odd rows
    • --erowbg|#000 defines the background color of even rows
    • --erowtx|#000 defines the text color of even rows

Thanks for these power cards, they are fantastic and look really great. I've been having a lot of "fun" making up macros for people using them.

Is there any way to set the color of individual lines? For instance, I made a macro for our rapid-shot ranger, and I'd like to make the several lines of info for Arrow 1 be say, orange, perhaps even various shades of orange. Arrow 2 could then be green perhaps, 3 red, etc. making it a lot easier to pick out the relevant info for each arrow as opposed to the even/odd format currently.
August 25 (10 years ago)
Nope. Not without making the macro a near unreadable mess.
August 25 (10 years ago)

HoneyBadger said:

Nope. Not without making the macro a near unreadable mess.

Understood.

Trying to get around this using line breaks, but I'm having issues getting ^^ to work. I'm obviously missing something. My macro works perfectly before that, so I believe I understand the majority of the logic, but trying to integrate a line break into it is just printing the ^^ and not making a line break. What is the procedure for including it in a macro?
August 25 (10 years ago)
--Effect|Content ^^ content ^^ content

Would show up as:

Effect: Content

content

content


If you want a line break at the beginning of a new section use --Effect|^^Content
August 25 (10 years ago)
Huh. That's what I have been doing. At this point it is probably a safe guess that my GM isn't using the latest version of the script, would you say?

Thanks for the info.
August 25 (10 years ago)
Yeah... kick your GM in the ass to get the script updated. :)
August 25 (10 years ago)
The Aaron
Roll20 Production Team
API Scripter
You should add a !power --version to your script, then people could post which one they are using. =D
August 25 (10 years ago)
He updated it, and it works perfectly now. Appreciate you spending the time to help.
August 25 (10 years ago)
Gah, I hate to be a pest, but is there a length limit to a macro? I've got one that calculates 4 arrows perfectly, but I add the 5th in and it just refuses to output anything. To verify that it wasn't anything stupid I did, I copied one of the previous arrows exactly, and then just renamed the --Arrow#| to 5 and it still doesn't work. The only thing I can think of is a length limit, but with some of the stuff people have pasted in regard to spell descriptions, it seems the limit would be pretty huge. Or maybe number of calculations, or something I might be exceeding?

Sorry to be a pain.
August 25 (10 years ago)
Post the macro.
August 26 (10 years ago)

Edited August 26 (10 years ago)
Hopefully I get this to post correctly. If not I'll try to edit it. I'm using [ code ] in case it doesn't work. (EDIT: Close enough!)

Please don't laugh at my horrible macro construction, I didn't even know Power Cards existed until last week!

Posting it broken up so it isn't a jumbled mess. Obviously it is all one long string with a space instead of line breaks in the actual macro. Also, this is for Pathfinder.

[code]!power --emote|@{character_name} is attacking with @{repeating_weapon_2_name} --name|@{repeating_weapon_2_name} --usage|Range @{repeating_weapon_2_range}ft --action|Crit @{repeating_weapon_2_crit-target}/x@{repeating_weapon_2_crit-multiplier}

--^0Arrow 1|[[d20+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2)]] | [[(@{repeating_weapon_2_crit-target})+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2)]] = Crit ^^ Crit Confirm: [[d20+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2)]] ^^ Damage: [[@{repeating_weapon_2_damage-dice-num}d@{repeating_weapon_2_damage-die}+@{repeating_weapon_2_enhance}+@{dex-mod} +(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1)+(?{Favored Enemy?|0}*2)]]+[[1d6]] Fire ^^ Crit Dmg:+[[(@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}+(@{repeating_weapon_2_enhance}+@{dex-mod}+(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1) +(?{Favored Enemy?|0}*2))*(@{repeating_weapon_2_crit-multiplier}-1))]]+[[1d6]] Fire

--^0Arrow 2|[[(d20+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] | [[((@{repeating_weapon_2_crit-target})+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] = Crit ^^ Crit Confirm: [[(d20+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] ^^ Damage: [[(@{repeating_weapon_2_damage-dice-num}d@{repeating_weapon_2_damage-die}+@{repeating_weapon_2_enhance}+@{dex-mod} +(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]]+[[1d6*?{Rapid Shot?|0}]] Fire ^^ Crit Dmg:+[[(@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}+(@{repeating_weapon_2_enhance}+@{dex-mod}+(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1) +(?{Favored Enemy?|0}*2))*(@{repeating_weapon_2_crit-multiplier}-1))]]+[[1d6*?{Rapid Shot?|0}]] Fire

--^0Arrow 3|[[(d20+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] | [[((@{repeating_weapon_2_crit-target})+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] = Crit ^^ Crit Confirm: [[(d20+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]] ^^ Damage: [[(@{repeating_weapon_2_damage-dice-num}d@{repeating_weapon_2_damage-die}+@{repeating_weapon_2_enhance}+@{dex-mod} +(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1)+(?{Favored Enemy?|0}*2))*?{Rapid Shot?|0}]]+[[1d6*?{Rapid Shot?|0}]] Fire ^^ Crit Dmg:+[[(@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}+(@{repeating_weapon_2_enhance}+@{dex-mod}+(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1) +(?{Favored Enemy?|0}*2))*(@{repeating_weapon_2_crit-multiplier}-1))]]+[[1d6*?{Rapid Shot?|0}]] Fire

--^0Arrow 4 (Full Attack)|^^[[(d20+@{attk-ranged} -5+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Full Attack?|0}]] | [[((@{repeating_weapon_2_crit-target})+@{attk-ranged} -5+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Full Attack?|0}]] = Crit ^^ Crit Confirm: [[(d20+@{attk-ranged} -5+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Full Attack?|0}]] ^^ Damage: [[(@{repeating_weapon_2_damage-dice-num}d@{repeating_weapon_2_damage-die}+@{repeating_weapon_2_enhance}+@{dex-mod} +(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1)+(?{Favored Enemy?|0}*2))*?{Full Attack?|0}]]+[[1d6*?{Full Attack?|0}]] Fire ^^ Crit Dmg:+[[(@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}+(@{repeating_weapon_2_enhance}+@{dex-mod}+(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1) +(?{Favored Enemy?|0}*2))*(@{repeating_weapon_2_crit-multiplier}-1))]]+[[1d6*?{Full Attack?|0}]] Fire

--^0Arrow 5 (Hasted)|^^[[(d20+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Haste?|0}]] | [[((@{repeating_weapon_2_crit-target})+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Haste?|0}]] = Crit ^^ Crit Confirm: [[(d20+@{attk-ranged} +@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2))*?{Haste?|0}]] ^^ Damage: [[(@{repeating_weapon_2_damage-dice-num}d@{repeating_weapon_2_damage-die}+@{repeating_weapon_2_enhance}+@{dex-mod} +(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1)+(?{Favored Enemy?|0}*2))*?{Haste?|0}]]+[[1d6*?{Haste?|0}]] Fire ^^ Crit Dmg:+[[(@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}+(@{repeating_weapon_2_enhance}+@{dex-mod}+(?{Bard Song?|0}*@{BardSongMod})+(?{Point Blank?|0}*1) +(?{Favored Enemy?|0}*2))*(@{repeating_weapon_2_crit-multiplier}-1))]]+[[1d6*?{Haste?|0}]] Fire[/code]

The intent of the macro is to accept all the variables as input (with a created variable of BardSongMod in the character sheet which will vary based on the bard's level), and then output 5 shots, with any that don't matter being zeroed out. So if you answer no (0) to Haste, it will zero out the 5th arrow, Rapid Shot zeroes arrows 2 and 3, and Full Attack zeroes 4. If you say yes to all of them, obviously they will all output a result. If I only include up through Arrow 4, it works. Arrow 5 breaks it, even if I take Arrow 3 and copy it directly and just change the name to Arrow 5 (thus eliminating the zeroing due to Haste).

I also realize that I could probably simplify this a ton by taking each section and making separate macros out of them and then including those macros within this one, but I don't know how to do that yet, and I wanted to ensure I understood what I was doing completely first before jumping into making it better.

P.S. On a side note, no matter what I do I can't figure out how to zero out the dice roll part of the crits (this part:[code]@{repeating_weapon_2_damage-dice-num}*(@{repeating_weapon_2_crit-multiplier}-1))d@{repeating_weapon_2_damage-die}[/code]. No matter where I put the multiplication by ?{Rapid Shot?|0} for example, it just breaks it. I've achieved my goal essentially by zeroing everything else, so it is obvious we can ignore those dice rolls, but still something I'd like to figure out, you know?
August 26 (10 years ago)
That's too big of a mess for me to mess with... it would take me forever to make it to where I could even test the macro. Separate macros for each arrow might be simpler...
August 26 (10 years ago)
Understood. I'm trying to avoid him having a bunch of different macros, but maybe you are right. Thank you for your time, and again for your script.
August 26 (10 years ago)
wow that's a lot of variables to be asked about every time you hit the attack button!
August 26 (10 years ago)
Yeah, that's why I was trying to make it all into one so they didn't have to input them more than once a round. Or select from multiple different macros, particularly since every time we level I have to copy the macros over again due to the Hero Lab import.
August 26 (10 years ago)
If you do that hasted attack on it's own with a value of 0 does it work? Maybe the script doesnt like a null roll.
August 26 (10 years ago)
Yes, if I just put Arrow 5 into a macro (with the same header) it works perfectly, even with a 0 for the Haste variable. It is only putting all 5 together that is causing me problems, which is why I assumed it had something to do with the length, or the number of calculations, or something related to size.

My next step will be trying to substitute parts of the calculations into preliminary macros so the main macro itself isn't so big. I still have to learn how to do that though, as my initial foray has failed.
August 26 (10 years ago)

Edited August 26 (10 years ago)
Replaced almost all calculations with references to abilities via %{selected|AttackCalc} and similar, making the macro vastly smaller, and the same thing happens when I add in any 5th "arrow". They work individually, they work in any combination of 4, but nothing I do will make all 5 work. It isn't a huge deal in the big scheme of things, as I can just make a second macro for one of them, but I'd sort of like to figure out what is causing the issue just for scientific purposes, and anyone else that might encounter the same thing.

It cannot be a length of macro thing anymore, since it is significantly smaller, and to eliminate a few thoughts, replacing Arrow 5's formula with any amount of text, and even adding an Arrow 6 with more text, works just fine. Which leaves things like number of calculations, number of variable calls, number of attribute references, etc. To sort of test that, I replaced my long AttackCalc ability call (which is this: d20+@{attk-ranged}+@{repeating_weapon_2_enhance}+(?{Bard Song?|0}*@{BardSongMod})+(?{Haste?|0}*1)+(?{Point Blank?|0}*1)-(?{Rapid Shot?|0}*2)+(?{Favored Enemy?|0}*2)) with a simple 1d20, reducing the number of calculations/calls/whatever by 50 to 70 (2 for each Arrow, 5 arrows, 5 to 7 calls each), depending upon which are causing the issue. Arrow 5 then worked perfectly. So there is definitely a limit to *something* related to variable calls, ability calls, calculations, etc. I surmise at this point it probably isn't a Power Card issue though, and more likely a Roll20 macro limitation, but I can't find any documentation on such a limit, and obviously I'm not completely sure what is causing the issue.

If I narrow it down more I will post further just for edification, or perhaps someone knows, but as I said I'm guessing this probably isn't a Power Card issue. Sorry for the derail, and thanks for the efforts to help.

EDIT: After posting a thought occurred to me, so I went ahead and changed the AttackCalc to be simply d20+@{attk-ranged}+@{repeating_weapon_2_enhance}, so I still had the same number of @ calls, but still 50 fewer of the variable calls. It worked! So right now I am leaning towards there being a limit to the number of times either a single variable can be referenced, or the total number of variables.
August 26 (10 years ago)
Getting pretty bleary-eyed looking at this, but it appears to me that my normal macro (not the one listed above, modified a bit to try to cut them down) has 102 variable calls. That still does not work. However, reducing it to 96 seems to be the cutoff point where it does, with 97 failing to work again. I have no idea why 96/97 would be a number of significance anywhere, so either I miscounted or I'm missing something else. But all it takes to make all 5 Arrows work is reducing it by 6 from my current total, via any means (ie. removing them from the beginning, middle, or end, regardless of if they are called via %abilities or directly in the macro itself), so that seems like it must be the solution, even though I can't fathom why.
August 26 (10 years ago)

Edited August 26 (10 years ago)
Is it the same if you make that many calls outside of powercards?
you could just removed the haste variable and ignore the roll if the attack isn't hasted
August 26 (10 years ago)
I dragged myself into work this morning so I'll see if I can experiment with it here in a bit.

The problem with removing Haste is that it adds +1 to all attacks if it is present. I'm thinking I'll probably just have to make a separate roll for either that one or the full attack. I'm leaning towards the full attack, since eventually he'll get a third at -10, etc. and it would be easier to just lump those both together.
August 26 (10 years ago)

Zepth said:

Is it the same if you make that many calls outside of powercards?
you could just removed the haste variable and ignore the roll if the attack isn't hasted

Yep, making it so that it works as a macro without Power Cards, it still doesn't work until I remove exactly 6 calls. So I'd say that confirms it is not an issue with Power Cards, but a limitation of Roll20's system.