0) {
$result += rand(1,$die);
$diecount--;
}
switch($op) {
case "add" :
$result += $mod;
break;
case "sub" :
$result -= $mod;
break;
case "mul" :
$result *= $mod;
break;
case "div" :
$result = ceil($result / $mod);
break;
}
break;
case 'high':
$results = array($diecount);
while($diecount > 1) {
$thisroll = rand(1,$die);
$results[] = $thisroll;
$diecount--;
}
arsort($results);
$i = 0;
$result = '';
foreach($results AS $key => $thing) {
if($i > 0) {
$result .= ' ';
}
if($i < ($mod)) {
$result .= '';
} else {
$result .= '(';
}
$result .= $thing;
if($i < ($mod)) {
$result .= '';
} else {
$result .= ')';
}
$i++;
}
break;
case 'burn':
$results = array($diecount);
while($diecount > 1) {
$thisroll = rand(1,$die);
$results[] = $thisroll;
$diecount--;
}
arsort($results);
$i = 0;
$result = '';
$successes = 0;
$pluralstr = '';
foreach($results AS $key => $thing) {
if($i > 0) {
$result .= ' ';
}
if($thing > 3) {
$result .= '';
$successes++;
} else {
$result .= '(';
}
$result .= $thing;
if($thing > 3) {
$result .= '';
} else {
$result .= ')';
}
$i++;
}
if($successes != 1) { $pluralstr = 'es'; }
$result .= ' = ' . $successes . ' success' . $pluralstr;
break;
case 'fate':
$results = array($diecount);
while($diecount > 1) {
$thisroll = rand(1,$die);
$results[] = $thisroll;
$diecount--;
}
$i = 0;
$result = '';
foreach($results AS $key => $thing) {
if($i > 0) {
$result .= ' ';
}
switch($thing) {
case 3:
$result .= '+1';
break;
case 1:
$result .= '-1';
break;
default:
$result .= '0';
break;
}
$i++;
}
$result .= '';
break;
case 'open':
$keeprolling = 1;
while($keeprolling) {
while($diecount > 0) {
$thisroll = rand(1,$die);
$result += $thisroll;
$diecount--;
}
if($die == 100 AND $thisroll > 95) {
$diecount++;
} elseif($thisroll == $die) {
$diecount++;
} else {
$keeprolling = 0;
}
}
break;
}
return $result;
}
// EXAMPLES
// echo '1d10' . ' = ' . dieroll('1d10') . '
';
// echo '2d10' . ' = ' . dieroll('2d10') . '
';
// echo '3d6+30' . ' = ' . dieroll('3d6+30') . '
';
// echo '2d6-2' . ' = ' . dieroll('2d6-2') . '
';
// echo '1d10*3' . ' = ' . dieroll('1d10*3') . '
';
// echo '2d100/2' . ' = ' . dieroll('2d100/2') . '
';
// echo '4d6h3' . ' = ' . dieroll('4d6h3') . '
';
// echo '4d6h1' . ' = ' . dieroll('4d6h1') . '
';
// echo '4d6b' . ' = ' . dieroll('4d6b') . '
';
// echo '4df' . ' = ' . dieroll('4df') . '
';
// echo '1d100o' . ' = ' . dieroll('1d100o') . '
';
?>