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

Powercards, Adding a Roll ID to a Roll Query Crash Help Please

Hi there so I am having trouble adding a Roll ID to a Roll Query. I am using Powercards and I have the basic Macro figured out to determine hits or misses but I am trying to add a couple extra modifiers for Aiming and Attack Types. The Macro will run just fine until I add the +$Aim.total+ in with the Weapon skill Test. I end up getting: PowerCards: "Could not determine result type of: [{\"type\":\"M\",\"expr\":25},{\"type\":\"C\",\"text\":\"+$Aim.total+0 \"}]" "Could not determine result type of: [{\"type\":\"M\",\"expr\":25},{\"type\":\"C\",\"text\":\"+$Aim.total+0 \"}]" I am not sure why this is happening but I have to reset the API as this causes it to crash. Any Help would be greatly Appreciated! !Power {{ --name|@{selected|token_name} is attacking @{target|token_name}! --tokenid|@{selected|token_id} --target_list|@{target|token_id} --emote|Weapon Skill Test --hroll|[[ [$Aim] 0d0 + ?{Aim | Half aim (+10),10 | No aim (+0),0 | Full aim (+20),20}]] --audioattr *1|@{selected|token_id} AudioOnAttack --Attack |[[ [$Atk] 1D100]] vs **Weapon Skill** [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] -- ?? $Atk == 100 ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total > [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 1 OR $Atk.total > [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total <= [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? !Hit:|You Hit -- ?? $Atk == 1 OR $Atk.total <= [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? audioattr *2|@{target|token_id} AudioOnHurt --vfxattr  *1|@{selected|token_id} EffectOnAttack --vfxattr  *2|@{selected|token_id} EffectOnEnemyHit   --vfxattr  *3|@{target|token_id} EffectOnHurt   --!Desc| }}
1541974263

Edited 1541974901
Kurt J.
Pro
API Scripter
Kevin L. said: Hi there so I am having trouble adding a Roll ID to a Roll Query. I am using Powercards and I have the basic Macro figured out to determine hits or misses but I am trying to add a couple extra modifiers for Aiming and Attack Types. The Macro will run just fine until I add the +$Aim.total+ in with the Weapon skill Test. I end up getting: PowerCards: "Could not determine result type of: [{\"type\":\"M\",\"expr\":25},{\"type\":\"C\",\"text\":\"+$Aim.total+0 \"}]" "Could not determine result type of: [{\"type\":\"M\",\"expr\":25},{\"type\":\"C\",\"text\":\"+$Aim.total+0 \"}]" I am not sure why this is happening but I have to reset the API as this causes it to crash. Any Help would be greatly Appreciated! !Power {{ --name|@{selected|token_name} is attacking @{target|token_name}! --tokenid|@{selected|token_id} --target_list|@{target|token_id} --emote|Weapon Skill Test --hroll|[[ [$Aim] 0d0 + ?{Aim | Half aim (+10),10 | No aim (+0),0 | Full aim (+20),20}]] --audioattr *1|@{selected|token_id} AudioOnAttack --Attack |[[ [$Atk] 1D100]] vs **Weapon Skill** [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] -- ?? $Atk == 100 ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total > [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 1 OR $Atk.total > [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total <= [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? !Hit:|You Hit -- ?? $Atk == 1 OR $Atk.total <= [[ @{selected|WS}+$Aim.total+?{Modifier|0}]] ?? audioattr *2|@{target|token_id} AudioOnHurt --vfxattr  *1|@{selected|token_id} EffectOnAttack --vfxattr  *2|@{selected|token_id} EffectOnEnemyHit   --vfxattr  *3|@{target|token_id} EffectOnHurt   --!Desc| }} RollIDs are for display and conditional purposes only, and cannot be used in other rolls. You could likely include the Aim roll query inside the Attack roll line.
Kurt J. said: RollIDs are for display and conditional purposes only, and cannot be used in other rolls. You could likely include the Aim roll query inside the Attack roll line. Hey man thanks for the reply, I actually figured that out about 10 minutes before I seen your message lol. : A Note about RollIDs RollIDs are useful for two purposes: checking for results via a conditional tag (see below) and displaying their value when the card is output. RollIDs are NOT variables, and cannot be used inside other inline rolls, as inline rolls are processed as a group early on in the processing of the PowerCard and are not available when rolls are processed. I basically have the Macro working now but it is a beast. There are still a couple things I want to get added to it though. I need it to show the degrees of success or failure I need to have a separate query for called shots where you choose the location instead of using the rollable table. My biggest thing at this point is finding a better way to determine if the damage roll is a natural 10 on the D10 roll. This is called Rightous Fury which is basically a Critical Hit and I have it working now but I need 10 lines of attacks just to do it this way. Any ideas on how to make this more streamlined? Thanks again by the way for the help! Also is there a way to post the macro in these reply's so that it is collapsed until you mouse over it? !Power {{ --name|@{selected|token_name} is attacking @{target|token_name}! --tokenid|@{selected|token_id} --target_list|@{target|token_id} --emote|VS --leftsub|(Mono) Axe --hroll|[[ [$Crt] 1d10]] --audioattr *1|@{selected|token_id} AudioOnAttack --Attack |[[ [$Atk] 1D100]] vs **Weapon Skill** [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] -- ?? $Atk == 100 ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total > [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 1 OR $Atk.total > [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 1 ?? Hit:|@{target|token_name} takes [[ 1+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 2 ?? Hit:|@{target|token_name} takes [[ 2+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 3 ?? Hit:|@{target|token_name} takes [[ 3+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 4 ?? Hit:|@{target|token_name} takes [[ 4+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 5 ?? Hit:|@{target|token_name} takes [[ 5+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 6 ?? Hit:|@{target|token_name} takes [[ 6+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 7 ?? Hit:|@{target|token_name} takes [[ 7+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 8 ?? Hit:|@{target|token_name} takes [[ 8+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 9 ?? Hit:|@{target|token_name} takes [[ 9+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 10 ?? Hit:|@{target|token_name} takes [[ 10+1+(floor(@{selected|s}/10))-(floor(@{target|T}/10))]] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] ?? audioattr *2|@{target|token_id} AudioOnHurt -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] ?? vfxattr  *3|@{target|token_id} EffectOnHurt -- ?? $Atk == 1 OR $Atk.total <= [[ 0d0 + @{selected|WS}+?{Modifier|0}+?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} + ?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20}]] AND $Crt.total == 10 ?? Righteous Fury|The Emperor smiles down upon @{selected|token_name} He gets to make an additional attack! --!Desc| }}
1542049535

Edited 1542049790
Kurt J.
Pro
API Scripter
Here would be my initial suggestion on changes : You can use inline replacements to clean up a lot of the roll queries so you only need them once at the beginning of the macro. The resulting replacement values can then be used elsewhere. By assigning the damage roll ($Crt) in the roll instead of in an hroll, you can make it do double duty as both a multiplier and as something to check against (using $Crt.base to just get the value of the die roll) to see if it was a 10. This eliminates the 9 other lines of checking crit/damage. Finally, though I haven't done it here, you could likely include another inline replace that popped up a roll query for called shots. The options could be the various body parts, with the default being "Not a called shot", which would substitute in [#[ lt[HitLock] ]#], while the other values would just substitute their location names. I don't use rollable tables much, so that idea might need a bit of testing/tweaking. Here is what I came up with as a basic replacement for the above (I don't know your system, so I just made up some values for the inline replaces for WS, Ss, and Tt while I was testing it. I also made the assumption that the third $Atk line above contained a typo. Looking at the rest of it, it looks like a roll of 1 is a guaranteed hit and 100 a miss, but that line would play the miss sound on a roll of 1. I changed that to 100. Some points on why some things look the way they do: Whenever a roll is going to be processed AFTER the chat server gets its hands on it (which is necessary whenever using replacement values) the normal [[ and ]] around rolls need to be replaced with [#[ and ]#] so the chat server ignores them. Additionally, whenever you do this, you always have to assign a roll id to the roll ($Def in this case). That ends up being a good thing, though, because we can use $Def to compare the hit instead of spelling everything out every time. Finally, this COULD be shortened up by combining the Modifier, Aim, and AType replacement lines into a single replacement value, but I think keeping them separate makes it more clear what is happening and has the side benefit that if you need to use any of those elsewhere they are available. !Power {{ --name|@{selected|token_name} is attacking @{target|token_name}! --inlinereplace|WS|@{selected|WS} --inlinereplace|Ss|(floor(@{selected|s}/10)) --inlinereplace|Tt|(floor(@{target|T}/10)) --inlinereplace|Modifier|?{Modifier|0} --inlinereplace|Aim|?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} --inlinereplace|AType|?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20} --tokenid|@{selected|token_id} --target_list|@{target|token_id} --emote|VS --leftsub|(Mono) Axe --audioattr *1|@{selected|token_id} AudioOnAttack --Attack| [[ [$Atk] 1D100 ]] vs **Weapon Skill** [#[ [$Def] 0d0 + ~WS$ + ~Modifier$ + ~Aim$ + ~AType$ ]#] -- ?? $Atk == 100 ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 OR $Atk.total > $Def.total ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 or $Atk.total > $Def.total ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? Hit:|@{target|token_name} takes [#[ [$Crt] 1d10 + 1 + ~Ss$ - ~Tt$ ]#] Rending Damage to the [[1t[Hitloc]]] -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? audioattr *2|@{target|token_id} AudioOnHurt -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? vfxattr *3|@{target|token_id} EffectOnHurt -- ?? $Atk.total <= $Def.total AND $Crt.base == 10 ?? Righteous Fury|The Emperor smiles down upon @{selected|token_name} He gets to make an additional attack! }}
1542076520

Edited 1542685622
Kurt J. Thanks so much man, You are Amazing! That is exactly what I was looking for, those replacements are great! I managed to add in one for the called shot option without any trouble and I also added an addition sound effect. I hate to keep bugging you but I unfortunately seem to be having an issue trying to implement Degrees of Success and Failure. Right now the Macro will run without issue but it looks to be rolling twice for the ~att$ value as the attack line will read Attack 25 and the Weaponskill will be 35 but then I get a misses result and when hovering over the degrees of failure roll the ~att$ value will be something different like 97 for example. Any ideas? Oh and as a side note this game is WH40k Dark Heresy 1st ed. Forgot to mention that before. And thanks again man, you rock! !Power {{ --name|@{selected|token_name} is attacking @{target|token_name}! --inlinereplace|Att|[[1d100]] --inlinereplace|WS|@{selected|WS} --inlinereplace|Ss|(floor(@{selected|s}/10)) --inlinereplace|Tt|(floor(@{target|T}/10)) --inlinereplace|Modifier|?{Modifier|0} --inlinereplace|Aim|?{Aim | No aim (+0), [No Aim] 0| Half aim (+10), [Half Aim] 10| Full aim (+20), [Full Aim] 20} --inlinereplace|AType|?{Attack Type|Standard (+10),[Standard] 10| Charge (+20),[Charge] 20| All Out Attack (+30),[All Out Attack] 30| Guarded Attack (-10),[Guarded Attack] -10| Called Shot (-20),[Called Shot] -20} --inlinereplace|Called Shot|?{Called Shot | No, [[1t[Hitloc]]]| Head, Head| Right Arm, Right Arm| Left Arm, Left Arm| Body, Body| Right Leg, Right Leg| Left Leg, Left Leg} --tokenid|@{selected|token_id} --target_list|@{target|token_id} --emote|VS --leftsub|(Mono) Axe --rightsub|~AType$ --audioattr *1|@{selected|token_id} AudioOnAttack --Attack| [#[ [$Atk] 0d0 + ~Att$ ]#] vs **Weapon Skill** [#[ [$Def] 0d0 + ~WS$ + ~Modifier$ + ~Aim$ + ~AType$ ]#] -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? Success| [#[ [$Def] 0d0 + ~WS$ + ~Modifier$ + ~Aim$ + ~AType$ - ~Att$) / 10 ]#] Degrees of Success! -- ?? $Atk == 100 OR $Atk.total > $Def.total ?? Failure| [#[ [$Def] 0d0 + ~WS$ + ~Modifier$ + ~Aim$ + ~AType$ - ~Att$) / 10 ]#] Degrees of Failure! -- ?? $Atk == 100 ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 OR $Atk.total > $Def.total ?? !Miss|@{selected|token_name} missed. -- ?? $Atk == 100 or $Atk.total > $Def.total ?? audioattr *3|@{selected|token_id} AudioOnMiss -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? Hit:|@{target|token_name} takes [#[ [$Crt] 1d10 + 1 + ~Ss$ - ~Tt$ ]#] Rending Damage to the ~Called Shot$ -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? audioattr *2|@{target|token_id} AudioOnHurtAxe -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? audioattr *3|@{target|token_id} AudioOnHurt -- ?? $Atk == 1 OR $Atk.total <= $Def.total ?? vfxattr *4|@{target|token_id} EffectOnHurt -- ?? $Atk.total <= $Def.total AND $Crt.base == 10 ?? Righteous Fury|The Emperor smiles down upon @{selected|token_name} He gets to make an additional attack! }}
1542207900
Kurt J.
Pro
API Scripter
This is because ~Att$ is literally being replaced with [[ 1d100 ]]. Replacements don't get evaluated prior to replacing, so if you did something like: [[ ~Att$ + ~Att$ + ~Att$ ]] you would end up with: [[ 1d100 + 1d100 + 1d100 ]] which would result in three separate rolls. I'll have to ponder if there is a simple way to do what you are looking to do.