well, i guess thats true, but its easier for people to learn if you use it this way, i dont realy think people learn that fast from crowded things it makes it look complicated and it ends in them giving up
Code:
on $*:text:/^!(\d+)d(\d+)((\+|-|\^|\*|\/)(\d+))?$/g:#: {
  ; $regml(1) is the number before the d
  ; $regml(2) is the number after the d
  ; $regml(3) is the number after the +|-|*|/|^
  ; You dont need the +-*/^, but if you do specify it you need to put a value after it so it will work without it or with it
  var %1 = $regml(1), %2 = $regml(2), %3 = $regml(3), %a = $regml(4), %b = $regml(5)
  if (%a == ^) && (%b !isnum 1-5) .notice $nick If you use ^ (to the X power) the last number you specify must be within 1-5.
 elseif (%a == *) && (%b !isnum 0.01-50) .notice $nick If you use * (multiply by) the last number you specify must be within 0.01-50.
elseif (%a = /) && (%b !isnum 2-50) .notice $nick If you use / (divide by) the last number you specify must be within 1-50.
  elseif (%2 !isnum 2-1000) || (%1 !isnum 1-200) .notice $nick The number of sides on the die must be within 2-1000, the number of die that are rolled must be within 1-200.
  else {
    msg $chan $nick $+ , You rolled $calc($rand(%1,$calc(%1 * %2)) %3) in total.
  }
}