Exroll=function(values){ critGlitch=false; sendChat('RollEx','[['+values.nDice+'d6cs>5>5sd]]',function(result){ var numb={} numb.rolls = result[0].inlinerolls[0].results.rolls[0].results; var hitCount=0; var oneCount=0; for(var j=0; j=numb.rolls.length/2){ if(hitCount==0){ critGlitch=true }else{ values.nGlitches++; numb.glitch=true } } numb.successes=hitCount values.numb.push(numb) if(critGlitch){ sendout={} sendout.successes=values.nSuccesses sendout.glitches=values.nGlitches sendout.stop='Critical Glitch' sendout.numb=values.numb sendout.player=values.player ShowResults(sendout) }else if(values.nSuccesses>=values.maxSuccesses){ sendout={} sendout.successes=values.nSuccesses sendout.glitches=values.nGlitches sendout.stop='Enough Successes' sendout.numb=values.numb sendout.player=values.player ShowResults(sendout) }else if(values.nDice-1'+ ''+ ''+ 'Extended Roll by '+values.player+ ''+ ''+ '
'+ '
Dicerolls
' if(values.numb){ var glitching='' var succ='' for(var i=0;i'+values.numb[i].successes+ ')' succ+='+'+values.numb[i].successes if(values.numb[i].glitch){ glitching+='Roll '+(i+1)+'
' } } } showing+='
'+ '
Result
'+ '

'+ ''+ ''+values.successes+' Successes'+ ''+ '

'+ ''+ 'Glitches('+values.glitches+')'+ ''+ ''+ ''+values.stop+''+ ''+ '' sendChat('RollEx',showing) } ShowHelp=function(){ var showing=''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ ''+ 'Roll Extended Version 0.01
'+ 'Welcome to Roll Extended

'+ 'To roll an extended test type:
'+ '!RollEx xx
'+ 'xx being the number of dice to start with.
'+ 'This is always required!


'+ 'Optional Modifiers:

'+ '!RollEx xx dy
'+ 'y being the minimum number of dice before you want to stop

'+ '!RollEx xx sz
'+ 'z being the number of successes after which you want to stop

'+ '!RollEx xx sz dy
'+ 'to combine them both

'+ 'Will always stop when rolling a critical glitch'+ '
' sendChat('RollEx',showing) } on('chat:message', function (msg) { if(msg.type == 'api'){ if(msg.content.match(/RollEx/i)!=null){ var temp=msg.content.match(/RollEx\s*\d+/i) if(temp){ var maxSuc=msg.content.match(/s\d+/i) var maxDice=msg.content.match(/d\d+/i) var arg={} arg.nDice=temp[0].match(/\d+/)[0]; if(maxDice){ arg.maxDice=maxDice[0].match(/\d+/)[0] }else{ arg.maxDice=0; } if(maxSuc){ arg.muaxSuccesses=maxSuc[0].match(/\d+/)[0] }else{ arg.maxSuccesses=1000; } arg.nSuccesses=0; arg.nGlitches=0; arg.numb=[]; arg.player=msg.who Exroll(arg) }else{ ShowHelp() } } } }); on('chat:message', function (msg) { if(((msg.type == 'general' || msg.type == 'whisper') && (msg.rolltemplate != null)) || (msg.type == 'rollresult' || msg.type == 'gmrollresult')) { if(msg.type == 'rollresult' || msg.type == 'gmrollresult'){ var rollResult = JSON.parse(msg.content); var dice = rollResult.rolls[0].results; if(dice!=null) var poolSize=dice.length; else var poolSize=0; }else { var j=0; for(var f=0;f5>5')>=0) { j=f; } } var dice = msg.inlinerolls[j].results.rolls[0].results; if(dice!=null) var poolSize=dice.length; else var poolSize=0; } if(poolSize>0){ var oneCount = 0; var hitCount = 0; var i = 0; for(i=0; i= poolSize/2 && hitCount == 0) { sendChat('Glitcher','/w GM '+ ''+ ''+ ''+ ''+ '
'+ ''+ '
Critical Glitch!!
'); } else if(oneCount >= poolSize/2){ sendChat('Glitcher','/w GM '+ ''+ ''+ ''+ ''+ '
'+ ''+ '
Glitch!
'); } } } });