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

[Earthdawn Script] Changing the way API script interacts with tracker

I am using the script from this post:&nbsp; <a href="https://app.roll20.net/forum/post/1672085/help-scr" rel="nofollow">https://app.roll20.net/forum/post/1672085/help-scr</a>... It works quite well and I've been using it steadily for a couple years. However there is one thing that has always been a bit of a pain. It will only register the initiative roll if the token isn't already on the tracker. What I'd like is if the token isn't already on the tracker it is added and if the token already is on the tracker the value is updated to reflect the latest roll. This is largely because you roll initiative every round. The tracker part of the script is the one part I really don't understand what it is doing. Any help with this would be most appreciated. Thanks!
1493940159
PaprikaCC
Pro
API Scripter
If you want it to update all selected token initiatives, just remove lines 118 to 120. That reject makes it so the script ignores any selected tokens that are already in the turnorder list. .reject(function(s){ return _.contains(_.pluck(turnorder,'id'),s.id); })
If I comment out that portion I get multiple copies of the same token on the list for each initiative roll. What I'd like is to have that one token on the tracker either updated with the new roll or alternatively remove the token from the tracker and then add the token with the new roll (which from the outside appears like you are updating the token but really you are not).
1493952390
PaprikaCC
Pro
API Scripter
Oh, yeah, I forgot about that. For a quick and dirty fix, you'd have to switch line 112 out with the following lines (along with the previous change): // Remove: turnorder.concat( // Replace with: _.reject(turnorder, o =&gt; msg.selected.find(s =&gt; o.id === s._id)).concat( TBH I haven't tested it, but it should work.
Thanks, it's close. First click adds token to tracker, second removes them and doesn't report the new roll, third adds the token again. It seems like the removing of the token causes it to skip all the adding to the tracker stuff.
Anyone else with any ideas? I played around with the code but nothing is producing the desired result.
1495574059
The Aaron
Pro
API Scripter
I'd do it like this... on('ready',function(){ &nbsp; &nbsp; "use strict"; &nbsp; &nbsp; var stepRolls = [ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d4!-2' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d4!-1' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '1d4!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '1d6!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d10!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d12!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '2d6!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d8!+1d6!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '2d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '1d10!+1d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '2d10!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d12!+1d10!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '2d12!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d12!+2d6' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d12!+1d8!+1d6!' &nbsp; &nbsp; &nbsp; &nbsp;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d12!+2d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d12!+1d10!+1d8!' &nbsp; &nbsp; &nbsp;, '1d20!+2d6!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '1d20!+1d8!+1d6!' &nbsp; &nbsp; &nbsp; &nbsp;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d20!+2d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d20!+1d10!+1d8!' &nbsp; &nbsp; &nbsp;, '1d20!+2d10!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '1d20!+1d12!+1d10!' &nbsp; &nbsp; &nbsp;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d20!+2d12!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '1d20!+1d12!+2d6!' &nbsp; &nbsp; &nbsp;, '1d20!+1d12!+1d8!+1d6!' , '1d20!+1d12!+2d8!' &nbsp; &nbsp; &nbsp; ,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1d20!+1d12!+1d10!+1d8!' , '2d20!+2d6!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, '2d20!+1d8!+1d6!' &nbsp; &nbsp; &nbsp; , '2d20!+2d8!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '2d20!+1d10!+1d8!' &nbsp; &nbsp; &nbsp; , '2d20!+2d10!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , '2d20!+1d12!+1d10!' &nbsp; &nbsp; , '2d20!+2d12!' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '2d20!+1d12!+2d6!' &nbsp; &nbsp; &nbsp; , '2d20!+1d12!+1d8!+1d6!' , '2d20!+1d12!+2d8!' &nbsp; &nbsp; &nbsp;, '1d20!+1d12!+1d10!+1d8!' &nbsp; &nbsp; &nbsp; &nbsp; ], &nbsp; &nbsp; ch = function (c) { &nbsp; &nbsp; &nbsp; &nbsp; var entities = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '&lt;' : 'lt', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '&gt;' : 'gt', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "'" : '#39', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '@' : '#64', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '{' : '#123', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '|' : '#124', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '}' : '#125', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '[' : '#91', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ']' : '#93', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '"' : 'quot', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '-' : 'mdash', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' ' : 'nbsp' &nbsp; &nbsp; &nbsp; &nbsp; }; &nbsp; &nbsp; &nbsp; &nbsp; if(_.has(entities,c) ){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ('&'+entities[c]+';'); &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; return ''; &nbsp; &nbsp; }, &nbsp; &nbsp; getFormatForDice = function (dice) { &nbsp; &nbsp; &nbsp; &nbsp; var maxroll = 0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; minroll = 0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dicePart = _.chain(dice.results.rolls) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map(function(r){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return '(' + _.map(r.results, function(r2) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; maxroll += ( r.sides === r2.v ? 1 : 0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; minroll += ( 1 === r2.v ? 1 : 0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return r2.v; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }).join('+')+')'; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .reject(function(r){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return '()'===r; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .value().join('+'), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rollOut = '&lt;span style="text-align: center; vertical-align: text-middle; display: inline-block; min-width: 1.75em; border-radius: 5px; padding: 0px 2px; border-width: 2px; border-color: ' + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ( maxroll && minroll ? '#4A57ED' : ( maxroll ? '#3FB315' : (minroll ? '#B31515' : '') ) ) + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '" title="Rolling '+dice.expression+' = ' + dicePart &nbsp;+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '" class="a inlinerollresult showtip tipsy-n ' + ( maxroll && minroll ? 'importantroll' : ( maxroll ? 'fullcrit' : (minroll ? 'fullfail' : '') ) ) + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '"&gt;' + dice.results.total + '&lt;/span&gt;'; &nbsp; &nbsp; &nbsp; &nbsp; return rollOut; &nbsp; &nbsp; }; &nbsp; &nbsp; on('chat:message', function(msg){ &nbsp; &nbsp; &nbsp; &nbsp; var args = msg.content.split(/\s+/), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; turnorder, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum; &nbsp; &nbsp; &nbsp; &nbsp; if('api' !== msg.type) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; switch(args.shift()) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case '!step': &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum=parseInt(args.shift(),10); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(stepNum &gt;= 1 && stepNum &lt;= 40) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, 'Step '+ stepNum + '&lt;br&gt;' +' [['+stepRolls[stepNum-1]+']]'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum = stepNum || '&lt;blank&gt;'; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, '&lt;b&gt;Error:&lt;/b&gt; Step Number '+stepNum+' is not valid!'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case '!gstep': &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum=parseInt(args.shift(),10); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(stepNum &gt;= 1 && stepNum &lt;= 40) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, '/w gm Step '+ stepNum + '&lt;br&gt;' +' [['+stepRolls[stepNum-1]+']]'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum = stepNum || '&lt;blank&gt;'; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, '/w gm &lt;b&gt;Error:&lt;/b&gt; Step Number '+stepNum+' is not valid!'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case '!istep': &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum=parseInt(args.shift(),10); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(stepNum &gt;= 1 && stepNum &lt;= 40) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat('', '[['+stepRolls[stepNum-1]+']]',function(msgs) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var msg2 = msgs.pop(), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; idx = msg2.content.match(/\$\[\[(\d+)\]\]/)[1], &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rolls=msg2.inlinerolls[idx]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(rolls) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; turnorder = Campaign().get('turnorder'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; turnorder = ('' === turnorder) ? [] : JSON.parse(turnorder); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Campaign().set({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; turnorder: JSON.stringify( &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _.chain(msg.selected) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map(function(s){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return getObj(s._type,s._id); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .reject(_.isUndefined) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map(function(s){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; token: s, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; character: getObj('character',s.get('represents')) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .reduce(function(m,s){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; let entry=_.findWhere(m,{id: s.token.id}); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(entry){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; entry.pr = rolls.results.total; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m.push({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id: s.token.id, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pr: rolls.results.total, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; custom: '' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return m; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },turnorder) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .value() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, '/direct Inititative roll: '+getFormatForDice(rolls)); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stepNum = stepNum || '&lt;blank&gt;'; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat(msg.who, '&lt;b&gt;Error:&lt;/b&gt; Step Number '+stepNum+' is not valid!'); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; }); }); =D
1495574723
AquaAlex
Sheet Author
Translator
API Scripter
The Aaron said: I'd do it like this... =D The Scriptomancer Strikes Again :) Nice. If I may make a suggestion, I would just change the StepRolls to use something similar to what I did in my Script, so it is truly open ended :) &nbsp;But then again I must change my script as well from the long case statement to cooler looking json :)
1495575254
AquaAlex
Sheet Author
Translator
API Scripter
In Fact I think next I will steal your script and add it to my script for initiative rolls for all versions of Earthdawn ;) (I might even give you credit) :P&nbsp; And ocne again thanks for all teh help :)
1495576896
The Aaron
Pro
API Scripter
Yup. =D &nbsp;This is just a modification of a script I wrote 2 years ago (apparently!), which is why talking to you about your script seemed so familiar. =D
Nailed it! Thanks so much. I loathe Javascript and appreciate the help.