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
This post has been closed. You can still view previous posts, but you can't post any new replies.

[Script] PowerCards 2

any idea how r20 names the handout links? and if it is possible to rename them? i just got done testing every handout, and more than i owuld like have __ in them >< and after making some more handouts to fix the old handouts, i have a few more with __ in them...
1423559478
Some kind of algorithm I suppose. If it's happening that often in one persons campaign I will have to see what I can do about ignoring text in urls somehow.
1423560478

Edited 1423561840
nah dont worry about it, of the many many 100's of handouts i have, less than 30 are like that, and only a couple are from the (cardfix) batch.. i am making a test page handout where i am going to be adding links to all the new handouts i make, if it generates a __ i will just create a second handout, then once i am sure there are no problems i can move on... having __ for underline is intuitive, in fact it was the first thing i looked at as to why my macro was breaking. this will only be a problem for some one like me that recreates the full PHB DMG and MM into handouts and character sheets. my current handout count is at 598, and i dont think ill be done until over 900 ish, then add in the monsters aaaannnnnnd... you see where i am going. but def add a note to the "adding links to powercard' section about handouts with __ as a know issue. last thing i would want is to see a new R20 DM geting frustrated because he couldn't get his macros to work the way he wanted. i think ill pop my head into specific question forum and ask about the handout naming.
1423686197
The Aaron
Forum Champion
API Scripter
GenKitty said: *eardroop* Well, Aaron's idea of being able to replay dice rolls (with new modifiers) sounded good, in that other thread. I'm sure he will chime in here when he gets a chance. ^_^ Sorry! Was at a 48 hour Hackathon in Detroit... I've only had 9 hours sleep in that timeframe so hopefully my explanation will be intelligible! This actually works out great with HB's thought about the button for showing hidden sections. The basic idea is this: Start by processing the !power command as normal, except: Create a unique ID for this instance of executing Store all information about this instance in an object (doesn't have to be the state, but doing so would allow you to use it between restarts of the API instance or crashes). Embed that ID with special commands in your card as buttons When one of the buttons is clicked: Lookup the stored information via the ID passed to the command Make adjustments to the format Issue it with the changes. So an example. Say you issued something like: !power --title|Example --toHit|[[1d20+7]] > 15 --damage[toHit]|[[3d6+8]] (Assuming --toHit is parsed to determine success, and --damage[toHit] declares that parameter to be shown if toHit evaluates to success.) Internally, you might generate the ID of 7 to represent this instance of the !power command (the last was 6, the next is 8...). You could use this function: var getUniqueID = (function(){ var uIDSrc = 0; return function(){ return uIDSrc++; }; }()); Calling var id = getUniqueID() will return 0, 1, 2, 3, 4, ... for each call. Back to the example. You might parse the command and generate this structure in your code to represent it (you'd do it programmatically, but it would be conceptually like this): var commandData = { id: 7, parameters: [ { idx: 0, key: "title", expression: "--title|Example" }, { idx: 1, key: "toHit", expression: "--toHit|$[[0]] > 15", success: false, rolls: { 0: { /* roll data for 1d20+7 */ } } }, { idx: 2, key: "damage[toHit]", expression: "--damage[toHit]|$[[1]]", hide: true, rolls: { 1: { /* roll data for 3d6+8 */ } } } ] }; Then you would store that in a part of your object that is keyed by that unique value: PowerCardsObj.CommandCache[id]=commandData; Assuming that a 6 was rolled for the 1d20, you would choose to hide the damage portion because 13 > 15 is false. However, you could embed a button with a command like this: !power-show 7 3 Which could then look back at that cache of command data and pull out the section to show: var sectionToShow = PowerCardsObj.CommandCache[arg1].parameters[arg2]; and then output just that row as a mini power card, or maybe reshow the whole thing, or whatever. Anyway, I hope that described the technique I was thinking about in sufficient detail... =D
1423692732

Edited 1423693356
The Aaron
Forum Champion
API Scripter
HoneyBadger said: Some kind of algorithm I suppose. If it's happening that often in one persons campaign I will have to see what I can do about ignoring text in urls somehow. Here, I rewrote your doInlineFormatting() to fix all your formatting woes. It will ignore any special formatting characters in URLs (like // or __ or **), which allows it to work for Iskoaya's case, and also allows the url to contain http:// or https://, etc. I changed the format of URLs when ALLOW_HIDDEN_URLS is false just slightly, but I think it's a good change. Feel free to change it back if you prefer. <a href="https://gist.github.com/shdwjk/08c01a6a3f3b15ed80c" rel="nofollow">https://gist.github.com/shdwjk/08c01a6a3f3b15ed80c</a>... This is my test string: --foo|^*__underline__ @@<a href="http://bar.foo.com/test__2@@^^//italic//" rel="nofollow">http://bar.foo.com/test__2@@^^//italic//</a> $$#ffaa66|colors!$$^^@@www google com||__$$#00F|Search Google$$__@@^^@@<a href="http://foo.bar.com/test__of__stuff@@" rel="nofollow">http://foo.bar.com/test__of__stuff@@</a> **bold** Which produces ( content, true, true ): --foo|&lt;span style='margin-left: 1em;'&gt;&lt;/span&gt;&lt;u&gt;underline&lt;/u&gt; &lt;a href="//bar.foo.com/test__2"&gt;//bar.foo.com/test__2&lt;/a&gt;&lt;br&gt;&lt;i&gt;italic&lt;/i&gt; &lt;span style='color: #ffaa66;'&gt;colors!&lt;/span&gt;&lt;br&gt;&lt;a href="//www google com"&gt;&lt;u&gt;&lt;span style='color: #00F;'&gt;Search Google&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="//foo.bar.com/test__of__stuff"&gt;//foo.bar.com/test__of__stuff&lt;/a&gt; &lt;b&gt;bold&lt;/b&gt; or (content, true, false): --foo|&lt;span style='margin-left: 1em;'&gt;&lt;/span&gt;&lt;u&gt;underline&lt;/u&gt; &lt;a href="//bar.foo.com/test__2"&gt; [//bar.foo.com/test__2]&lt;/a&gt;&lt;br&gt;&lt;i&gt;italic&lt;/i&gt; &lt;span style='color: #ffaa66;'&gt;colors!&lt;/span&gt;&lt;br&gt;&lt;a href="//www google com"&gt;&lt;u&gt;&lt;span style='color: #00F;'&gt;Search Google&lt;/span&gt;&lt;/u&gt; [//www google com]&lt;/a&gt;&lt;br&gt;&lt;a href="//foo.bar.com/test__of__stuff"&gt; [//foo.bar.com/test__of__stuff]&lt;/a&gt; &lt;b&gt;bold&lt;/b&gt; or (content, false, false): --foo|&lt;span style='margin-left: 1em;'&gt;&lt;/span&gt;&lt;u&gt;underline&lt;/u&gt; @@http:&lt;i&gt;bar.foo.com/test&lt;u&gt;2@@&lt;br&gt;&lt;/i&gt;italic&lt;i&gt; &lt;span style='color: #ffaa66;'&gt;colors!&lt;/span&gt;&lt;br&gt;@@www google com||&lt;/u&gt;&lt;span style='color: #00F;'&gt;Search Google&lt;/span&gt;&lt;u&gt;@@&lt;br&gt;@@http:&lt;/i&gt;foo.bar.com/test&lt;/u&gt;of__stuff@@ &lt;b&gt;bold&lt;/b&gt; Cheers! =D Edit : Added a second version that will do this for (content, false, false): --foo|&lt;span style='margin-left: 1em;'&gt;&lt;/span&gt;&lt;u&gt;underline&lt;/u&gt; @@<a href="http://bar.foo.com/test__2@@&lt;br&gt;&lt;i&gt;italic&lt;/i" rel="nofollow">http://bar.foo.com/test__2@@&lt;br&gt;&lt;i&gt;italic&lt;/i</a>&gt; &lt;span style='color: #ffaa66;'&gt;colors!&lt;/span&gt;&lt;br&gt;@@www google com||__$#00F|Search Google$__@@&lt;br&gt;@@<a href="http://foo.bar.com/test__of__stuff@@" rel="nofollow">http://foo.bar.com/test__of__stuff@@</a> &lt;b&gt;bold&lt;/b&gt; Leaves the url part completely unchanged in the final result, instead of pretending there isn't any url processing.
1423696183

Edited 1423696249
Gen Kitty
Forum Champion
Sorry! Was at a 48 hour Hackathon in Detroit... I've only had 9 hours sleep in that timeframe so hopefully my explanation will be intelligible! Don't apologize for having a life outside R20 :&gt; I think just being able to show an otherwise hidden damage section is good enough for powercards, because we're not automatically applying damage. The other thing that looks like it may be complicated is having Powercards accommodate systems where you reroll to confirm crits (such as Pathfinder), AND the crit-confirm & extra damage to be in its own section. (Sidenote: In the 5e game I play in, the API periodically halts for no discernible reason. So I'm having to flip between powercard macros and alternate macros, and the difference between the outputs is incredible. I adore this script for how nicely I can format my macros, and how much more text I can pack per square inch of chat-pane. I very much look forward to the day when scripts are selectable like character sheets for a campaign, so I can talk more GMs into using scripts.)
The Aaron said: HoneyBadger said: Some kind of algorithm I suppose. If it's happening that often in one persons campaign I will have to see what I can do about ignoring text in urls somehow. Thanks man, ill have my wiz-kid Co-DM (i dont know any computer languages) to help me install it. but like you said, my case is special and not everyone is going to run into the problem of 650+Handouts (im up to 720). i dont think many people will find the __ to be to much of a problem. i just want a very, very, very rock-solid foundation to base all my future campaigns off of... duplicate, populate, and play, right away... so im going that extra 100 miles today instead of 6-12 months from now. sadly its extra work, and a big invest now / reap later kinda deal. GenKitty said: (Sidenote: In the 5e game I play in, the API periodically halts for no discernible reason. So I'm having to flip between powercard macros and alternate macros, and the difference between the outputs is incredible. I adore this script for how nicely I can format my macros, and how much more text I can pack per square inch of chat-pane. I very much look forward to the day when scripts are selectable like character sheets for a campaign, so I can talk more GMs into using scripts.) I know right!!! my monster and NPC and player macros went from a 10-20 line /w GM wall of spam, too a 3-6 line block with hyperlinks to relevant handouts. i can find anything i need faster than some one flipping a hardcover, and then pop it on my players screens like i jacked Tony Stark's Jarvis and hacked him into Roll20. i found that the reason the API just kinda of Blows up and stops responding for me, is because some one used a macro that broke it, but it didnt spit out an error in chat so no one caught it, but if the DM checks the api and restarts it pronto, there should be low downtime, but the macro should be hunted down asap between sessions. i found this out when a player had made a -^2!Bad | tag in his macro and forced me to find a way to reset the api. HoneyBadger, Ego inflation INC!!! i got 1 year of Mentor because of your API and the many people that have assisted you with this project, keep up the outstanding work guys/gurls!
1423707441
Gen Kitty
Forum Champion
i found that the reason the API just kinda of Blows up and stops responding for me, is because some one used a macro that broke it, but it didnt spit out an error in chat so no one caught it, but if the DM checks the api and restarts it pronto, there should be low downtime, but the macro should be hunted down asap between sessions. i found this out when a player had made a -^2!Bad | tag in his macro and forced me to find a way to reset the api. In our campaign, even resetting the script doesn't work sometimes. It's very frustrating. The ONLY thing that has been consistant is that this happens when an older version of the script is used... but it shouldn't cause these issues because the things fixed in the most recent script aren't things we need fixed... and I'm reluctant to talk the GM through Yet Another Round of script updates. :/
1423715500
Any one can always send me an invite to their campaign and promote me to GM and I can troubleshoot what problems you're having.
1423717669

Edited 1423717927
yeah i find most other ( as in the all but two i have encountered in the last 3 months) really flake out on the prep work. Almost to the point i could expect them to be downloading and printing out retail adventures 5 min before session start for their RL tables and calling it prep. where on roll 20 lack of prepwork kills games.
1423746845
Most of what you wrote, Aaron, works really well, but either Roll20 itself or something you changed cuts out the http: from visible links:
1423748838
Gen Kitty
Forum Champion
So, I've found a new area for development: Showing the natural die before adding all modifiers. This is a thing for 13th Age. Yeah, I *can* mouseover, but there's been enough requests on the board recently that 'show dice before mods and then sum up / show dice before adding up' might be a useful area to explore further in later versions of the script.
1423749020

Edited 1423749086
Actually that should be pretty easy... I may be able to simply add an info charm for %%BASE_DIE%% or something like that and replace it or add it as a pre-roll option inside the inline roll that would trigger a different display of the results.
1423749557
Gen Kitty
Forum Champion
That would be lovely. The number of things 13th age uses the natural die for is amazing. I haven't approached my GM for that game about using this script yet, but I think this feature would be a valuable selling point. I'll approach my GM when the script is more stable and this feature has been figured out and added. I'm only two sessions into the campaign, so I don't want to be TOO pushy :&gt;
1423751452
Needs some work... but it works!
That looks awesome! I am wondering though how this would work with autocalculated fields on the character sheet? Does it show the formula or the value?
1423752541

Edited 1423752870
Kevin said: That looks awesome! I am wondering though how this would work with autocalculated fields on the character sheet? Does it show the formula or the value? It shows the formula.
1423752895

Edited 1423753139
Specifically, it shows this... ... maybe Aaron can post a tidbit of script voodoo that easily condenses/reduces these down to a single number.
1423753708
Gen Kitty
Forum Champion
Now if you can do that with the damage dice too (I saw a request specifically for that earlier yesterday), I can poingt at this script and say, "See? Does what you want!" :&gt; This is really really cool, HB!
1423753851
Right now it works with any inline roll.
1423754402

Edited 1423754426
Also, I figured out how to condense auto-calculated stuff... but it uses the dreaded eval() option, which people say is totally not secure. Will keep looking... tomorrow... as it is bed time now and I have to work tonight.
1423755423
Gen Kitty
Forum Champion
Dude, I wasn't expecting this to be dealt with for days or weeks. Everything's cool :&gt;
1423769528
The Aaron
Forum Champion
API Scripter
HoneyBadger said: Most of what you wrote, Aaron, works really well, but either Roll20 itself or something you changed cuts out the http: from visible links: That was vaguely intentional... I'm used to dealing with links for AJAX requests and art assets. removing the protocol from the URL causes the browser to load it with whatever protocol was used on the parent page, so http:// or https:// based on the current page's URL. This avoids the warning/error for when you access an insecure resource from a secure page because it will automatically use the secure connection method. That said, it's probably not important for this. =D I updated the GIST with a version that will use http:// or https:// if they used those, but default to http://.
1423769778
The Aaron
Forum Champion
API Scripter
HoneyBadger said: Specifically, it shows this... ... maybe Aaron can post a tidbit of script voodoo that easily condenses/reduces these down to a single number. I'm not sure precisely what you're doing, but couldn't you just take the sum of the rolls and subtract them from the total provided in the roll structure? { . "content": "!msg $[[0]]", . "inlinerolls": [ . . { . . . "expression": "1d20+(18/2)-5+3", . . . "results": { . . . . "resultType": "sum", . . . . "rolls": [ . . . . . { . . . . . . "dice": 1, . . . . . . "results": [ . . . . . . . { . . . . . . . . "v": 4 . . . . . . . } . . . . . . ], . . . . . . "sides": 20, . . . . . . "type": "R" . . . . . }, . . . . . { . . . . . . "expr": " +(18/2)-5+3 ", . . . . . . "type": "M" . . . . . } . . . . ], . . . . "total": 11 , . . . . "type": "V" . . . }, . . . "rollid": "-JhzHHQu1bNB_UvjJGC9", . . . "signature": "acce57989b896e8b7a0601f4d37142b4f9b7c085cd92ee72525dd9d62686369f55d0fb769cbd6cbe0e4ce6d8485928b62bb709131ac044d1b2a64d1f6ed686b4" . . } . ], . "playerid": "-JS3qKxIUPHLzSbK24ve", . "type": "api", . "who": "Aaron" } 11 - 4 = 7 = (18/2)-5+3
1423777493

Edited 1423777589
That might work if there was only one part of the roll that was auto-calculated. Basically what I've done, is add a check for an inline pre-roll option such as [[ [XPND] 1d20 + @{DEX Mod} [Dex Mod] + @{Proficiency} [Proficiency] ]] and during the buildInline/ProcessRoll functions that create the inline formatting, it uses an alternate display at the very end. If expandedRoll (do this) else (do this instead). Do this being [ (12) + 4 + 3] instead of [19]. if (expandedCheck) { rollOut = '&lt;span style="' + InlineRollStyle + '" title="Roll: ' + inlineroll.expression + '&lt;br&gt;Results: ' + values.join("") + ' = ' + inlineroll.results.total; rollOut += '" class="inlinerollresult showtip tipsy'; rollOut += (critCheck && failCheck ? ' importantroll' : (critCheck ? ' fullcrit' : (failCheck ? ' fullfail' : ''))) + '"&gt;' + values.join("") + ' = ' + inlineroll.results.total + '&lt;/span&gt;'; } else { rollOut = '&lt;span style="' + InlineRollStyle + '" title="Roll: ' + inlineroll.expression + '&lt;br&gt;Results: ' + values.join("") + ' = ' + inlineroll.results.total; rollOut += '" class="inlinerollresult showtip tipsy'; rollOut += (critCheck && failCheck ? ' importantroll' : (critCheck ? ' fullcrit' : (failCheck ? ' fullfail' : ''))) + '"&gt;' + inlineroll.results.total + '&lt;/span&gt;'; }
1423836257
The Aaron
Forum Champion
API Scripter
Ah, so you're wanting to see the individual bonuses. I'm not sure that's as important as just the separation of die roll from addition. Certainly in 13th Age, what you care about is just the die. You could reduce only the parenthesized sections: "+(floor((18-10)/2))+3+ (3*2) +(3 -(18/2))".match( /(\([^()]*)*(\s*\([^()]*\)\s*)+([^()]*\))*/g ) ["(floor((18-10)/2))", " (3*2) ", "(3 -(18/2))"] and build a message to send to the asynchronous version of sendChat() with each term in it's own inline roll, then sub back in the values. I think I'd just go with separating out the dice and the modifiers to separate sections. If people really care about what the modifiers are, they can always setup another inline roll with that information in it. But if you want to go that route, I'd be happy to help! =D
1423837440
Gen Kitty
Forum Champion
For 13th age, sure, only need the natural dice. But other GMs might want to be able to see the whole role in 'roll20 format', and being able to turn formulas into real numbers is valuable in and of itself! ^_^
1423839418
The Aaron
Forum Champion
API Scripter
Unfortunately, it might not be wholly possible. What I posted above would work, provided any formula was surrounded by ( ). Another method would be to separate formula attributes from other parts of the roll: [[ 1d20 + @{selected|dexterity_mod}[DexMod] + floor((23/10)+3) ]] { . "content": "!msg $[[0]]", . "inlinerolls": [ . . { . . . "expression": "1d20 + (floor((18-10)/2))[DexMod] + floor((23/10)+3)", . . . "results": { . . . . "resultType": "sum", . . . . "rolls": [ . . . . . { . . . . . . "dice": 1, . . . . . . "results": [ . . . . . . . { . . . . . . . . "v": 4 . . . . . . . } . . . . . . ], . . . . . . "sides": 20, . . . . . . "type": "R" . . . . . }, . . . . . { . . . . . . "expr": " +(floor((18-10)/2)) ", . . . . . . "type": "M" . . . . . }, . . . . . { . . . . . . "text": "DexMod", . . . . . . "type": "L" . . . . . }, . . . . . { . . . . . . "expr": " +floor((23/10)+3) ", . . . . . . "type": "M" . . . . . } . . . . ], . . . . "total": 13, . . . . "type": "V" . . . }, . . . "rollid": "-Ji2QWi93Ao8wMgpCt3Z", . . . "signature": "078733a34e488edd6312e8a427fc3793a159ed1e5a919c2e32988753e307d15a7374a698881453a0fa96bceaa64addadfec52c608d70ef1481cb510a7cd634fb" . . } . ], . "playerid": "-JS3qKxIUPHLzSbK24ve", . "selected": [ . . { . . . "_id": "-JbjeTZycgyo0JqtFj-r", . . . "_type": "graphic" . . } . ], . "type": "api", . "who": "Aaron" } That would let you look at each portion and determine it's value, then show the label after it. Really, that might be the easiest thing to do. It requires the macro writer to do the segregation, but gives them the flexibility to label whatever they want and see it separate.
1423962324
vÍnce
Pro
Sheet Author
HB, is there a way to add box-shadow to powercards?
1423982145
Yeah.
1423993162
Mischief managed... ... will post an update later, but expanded rolls for 13th Age or people that just prefer to see the full roll without mousing over the roll. Also added a box shadow for Vince.
1423996517

Edited 1423996564
Ooooh i like the shadows, really makes it pop. i have a few questions about the shadows: is the option for shadows added to the !power macro or to the script.js on the API page of the campaign? if the shadows option has to be added to the macro, can it be added directly after !power? is it possible to have a larger shadow, like the card was floating higher off the game table?
1423997930

Edited 1423998032
It'll be an option within the macro and global via default settings in the script. The tag is surprisingly going to be... --boxshadow ... and yeah, you can set the shadow settings to whatever you want.
1424002050

Edited 1424002140
Mind... Blown... i will be able to set it as default!!! yay now i dont have to rewrite all my NPC's macros mahahahahahahahah! all i need now is a way to have a controlling character, and the target of the macro, both have the token images on the emote!! like charizard vs bulbasuar
1424003897
Gen Kitty
Forum Champion
But what happens when you have multiple targets, Iskoaya? :&gt;
1424005709

Edited 1424005821
Update: February 15th, 2015 ~ 5:00 am eastern (Dev Server Only) Version: 2.4.4 (Dev Server) Script Link: gist.github.com/Sky-Captain-13/452330a3d926b32da49c Update: Added --boxshadow as an option for styling the powercard. Use is the same as standard css styling Update: Added expanded inline rolls as an option. Add [XPND] in front of the die roll to be expanded. Example: [[ [XPND] 1d20 + 10 ]] will show up as [ (12) + 10 = 22 ] This update is for the dev server version of the script only. Will try to get the production server version updated later. Differences between the two versions make it difficult to simply cut and paste updates from one to the other.
I am prepping my next campaign on the DEV server and decided that now was the time to start investing in Powercard 2.x. One thing I noticed was that previously tags would end with a ":" when in the body of the card, now they don't. Obviously I can update my custom character sheet to add the ":" at the end of the tags, but I was wondering if there was another way to incorporate this without having to redo all of the macros (if not, no big deal really)?
Also, with 2.4.4 just switching "USE_DEFAULT_FORMAT = true;" causes the script to crash with the following: TypeError: Cannot read property 'default' of undefined at Object.PowerCard.Process (evalmachine. :98:51) at evalmachine. :20:13 at eval (
1424011616
You could put it back into the script if you want. I removed it from being hardcoded into the script so that DM's and/or players could decide for themselves what they want to use.
1424011747
Kevin said: Also, with 2.4.4 just switching "USE_DEFAULT_FORMAT = true;" causes the script to crash with the following: TypeError: Cannot read property 'default' of undefined at Object.PowerCard.Process (evalmachine.:98:51) at evalmachine.:20:13 at eval ( Did you create a handout named PowerCard Formats with a default entry in it? Cause it is working for me.
HoneyBadger said: You could put it back into the script if you want. I removed it from being hardcoded into the script so that DM's and/or players could decide for themselves what they want to use. I may use that as a temporary solution until I update the sheet, can you point out where I can change that? HoneyBadger said: Kevin said: Also, with 2.4.4 just switching "USE_DEFAULT_FORMAT = true;" causes the script to crash with the following: TypeError: Cannot read property 'default' of undefined at Object.PowerCard.Process (evalmachine.:98:51) at evalmachine.:20:13 at eval ( Did you create a handout named PowerCard Formats with a default entry in it? Cause it is working for me. Ok, I misunderstood what this setting was for, so if you don't plan to use specific PowerCard Formats (as I tend to use player color as the primary differentiation on cards, so typically use the default formatting in the script), then this setting should remain false.
1424019093
Samuel Penn
KS Backer
Has something just changed? I installed the production version of the script about an hour ago on my production campaign, and was in the middle of playing with macros when all !power macros stopped working, and some of my ability settings seem to have been lost. I was starting to play with the tokenid setting when it all went wrong. Going back to the API config page, I now get this error: Your scripts are currently disabled due to an error that was detected. Please make appropriate changes to your scripts and click the "Save Script" button and we'll attempt to start running them again. More info... For reference, the error message generated was: TypeError: Cannot call method 'charAt' of undefined at Object.PowerCard.Process (evalmachine.&lt;anonymous&gt;:123:23) at evalmachine.&lt;anonymous&gt;:20:13 at eval (
1424019698
Samuel Penn
KS Backer
Actually, I've found the problem. If you specify --tokenid, but don't also specify --emote, then the PowerCard.emote.charAt(0) call on line 122 fails. Possibly the || in the outer if condition needs to be an &&?
1424021052
vÍnce
Pro
Sheet Author
thanks for adding --boxshadow HB. Now I can have The Aaron's script output, my roll templates, and your powercards with the same box-shadow formatting.
1424038800
@Kevin - Lines 190 and 192 in ver 2.4.4 are where the tag and content is put together in a div. Just add the colon in front of the closing bold html element. &lt;b&gt;" + Tag + ":&lt;/b&gt; @Sam Penn - I'll debug that later this evening. Getting ready to go out to dinner with my fiancee here in a few minutes. @Vince - No problem. It was easier than I thought it would be and it solved a margin issue I had been using negative margins to fix.
1424051857

Edited 1424051966
I am getting the error where %20 is added with the following macro. Can you check and see what the error may be? "!power --name|LOOT DISTRIBUTION --Source|@@<a href="http://www.dndadventurersleague.org/magic-items-faq/||Magic" rel="nofollow">www.dndadventurersleague.org/magic-items-faq/||Magic</a> Items FAQ@@ --Gold|Split monetary treasure equally" This is on production server ver 2.3.5
1424052420
The Aaron
Forum Champion
API Scripter
Where is the %20 showing up? Do you have a screenshot?
1424052947
It is in front of the www (which by the way I should not have because that is not in the url, but it also happens if I don't have the www there).
1424065667
I'm gonna update the production version with Aarons inline formatter he posted a few days ago. That should clear that problem up.
1424066736

Edited 1424066927
Update: February 16th, 2015 ~ 1:00 am eastern Version: 2.3.6 (Production Servers) Script Link: gist.github.com/Sky-Captain-13/afebf0c21f5ea1200bdc Update: Added TheAaron's doInlineFormatting replacement to correct url issues. If you have used the workaround ( an extra space in front ) to get urls to work, you will need to remove that space.