Rolisteam / DiceParser

Powerful dice Roller is used as discord bot, irc bot, cli tool and inside Rolisteam : 1d20+4, 1L[head,arm,leg,belly,chest], 1d6+1d8, 8+5*3
http://www.rolisteam.org/
GNU General Public License v3.0
125 stars 31 forks source link

Broken example in HelpMe.md #157

Open ZeldaZone opened 1 year ago

ZeldaZone commented 1 year ago

The example below does not appear to work as described, at least when using the Discord bot.

8d10;$1c[>6];$1c1;$2-$3i:[>0]{"%3 Success[%2]"}{i:[<0]{"Critical fail %3 [%2]"}{"Fail %3 [%2]"}}

Critical Fail will never occur, Fail will occur with numbers higher than 0 (the example says >1 is a success, 0 is fail, <0 is critical fail). Success will happen with lower numbers than Failure.

Perhaps due to the error, I can't tell what the code is doing well enough to fix it. Something's just completely wrong, the example really could go into more detail into what $1c[>6];$1c1;$2-$3 is doing, I think I get the rest, though since it doesn't work, I'm not really sure.

More trivially, the %3 for Success outputs first, while the success count is displayed after for all other ones. It should be moved to after the word for consistency.

obiwankennedy commented 1 year ago

Try this: 8d10;$1c[>6];$1c1;$2-$3;$4i:[>0]{"%3 Success[%2]"}{i:[<0]{"Critical fail %3 [%2]"}{"Fail %3 [%2]"}} That should do the job. But to be up to date it is better to use $ or @ place holder instead of %.

% displays the last result of the given instruction. @ displays the last dice result of the given instruction. $ displays the last number result of the given instruction.

So the command should be: 8d10;$1c[>6];$1c1;$2-$3;$4i:[>0]{"Success: $4 [@1]"}{i:[<0]{"Critical fail $4 [@1]"}{"Fail $4 [@1]"}}

  1. 8d10 -> roll [5,7,1,2,4,3,8,10]
  2. Count how many dice are higher than 6 (in the dice result of instruction one)
  3. count how many dice are equal to 1 (in the dice result of instruction one)
  4. 6's count - 1's count = success count
  5. if success count is higher than 0 -> success if it is lesser than 0 -> critical fail if it is 0 -> normal fail.