[script] n0=#roller on n1= n2=ON *:TEXT:roll *:*:{ n3= if ($chan != $null) set %subchan $true n4= submsg $processroll($2-) n5= unset %subchan n6=} n7= n8=#roller end n9= n10=alias /processroll { n11= ;Verify syntax n12= var %dr_quantity $gettok($$1,1,$asc(d)) n13= var %dr_rest $gettok($$1,2,$asc(d)) n14= if (%dr_quantity isnum && $int(%dr_quantity) > 0) { var %dr_quantity $int(%dr_quantity) } n15= else { halt } n16= n17= if (%dr_rest isnum) { n18= var %dr_rest $int(%dr_rest) n19= if (%dr_rest <= 0) { halt } n20= var %dr_denom %dr_rest n21= var %dr_mod 0 n22= } n23= else if ($gettok(%dr_rest,1,$asc(+)) != %dr_rest ) { n24= if ($gettok(%dr_rest,1,$asc(+)) isnum) { n25= var %dr_denom $int($ifmatch) n26= if (%dr_denom <= 0) { halt } n27= } n28= else { halt } n29= if ($gettok(%dr_rest,2,$asc(+)) isnum) { n30= var %dr_mod $int($ifmatch) n31= } n32= else { halt } n33= } n34= else if ($gettok(%dr_rest,1,$asc(-)) != %dr_rest ) { n35= if ($gettok(%dr_rest,1,$asc(-)) isnum) { n36= var %dr_denom $int($ifmatch) n37= if (%dr_denom <= 0) { halt } n38= } n39= else { halt } n40= if ($gettok(%dr_rest,2,$asc(-)) isnum) { n41= var %dr_mod $calc(0 - [ $int($ifmatch) ] ) n42= } n43= else { halt } n44= } n45= return $diceroller(%dr_quantity, %dr_denom, %dr_mod) n46=} n47= n48=alias /diceroller { n49= var %dr_total 0 n50= var %dr_count 0 n51= var %dr_output $nick rolled $+($$1,d,$$2) n52= if ($3 > 0) { var %dr_output %dr_output $+ + $+ $3 } n53= else if ($3 < 0) { var %dr_output %dr_output $+ $3 } n54= var %dr_output %dr_output $+ : n55= :dr_loop n56= var %dr_roll $rand(1,$$2) n57= var %dr_output %dr_output %dr_roll $+ $chr(44) n58= inc %dr_total %dr_roll n59= inc %dr_count 1 n60= if (%dr_count < $$1) { goto dr_loop } n61= if ($3 > 0) { var %dr_output $left(%dr_output,-1) ( $+ + $+ $3 $+ ). } n62= else if ($3 < 0) { var %dr_output $left(%dr_output,-1) ( $+ $3 $+ ). } n63= else { var %dr_output $left(%dr_output,-1) $+ . } n64= var %dr_output %dr_output Total: %dr_total n65= inc %dr_total $3 n66= var %dr_output %dr_output ( $+ %dr_total $+ ) $+ . n67= return %dr_output n68=} n69= n70= n71= n72=alias /submsg { n73= var %sublen $len($1-) n74= if (%sublen <= %maxchars) { n75= insubmsg $1- n76= } n77= else { n78= insubmsg $left($1-, %maxchars) n79= if (%sublen > $calc(2 * [ %maxchars ] ) ) { n80= insubmsg $mid($1-, $calc( [ %maxchars ] + 1 ), %maxchars ) n81= insubmsg $right($1-, $calc(0 - (2 * [ %maxchars ] ) ) ) n82= } n83= else { n84= insubmsg $right($1-, $calc(0 - [ %maxchars ] ) ) n85= } n86= } n87=} n88= n89=alias /insubmsg { n90= if (%subchan == $true) msg $chan $1- n91= else msg $nick $1- n92=}