Dice — File Browser
Dicev1.01 / Dicev1.01 / dice.mrc
dice.mrc — 24.62 KB — Download this file
; -----------------------------------------------------
; Peace and Protection (by misspai)
; -----------------------------------------------------
; ADDON: Dice roller/etc.
; -----------------------------------------------------
on 1:load:_resdvar
alias -l _resdvar {
set %dice.action $true | set %dice.d.chans all | set %dice.c.chans all
set %dice.d.mustknow $false | set %dice.c.mustknow $false
set %dice.local.ch-input-dice $false | set %dice.local.pr-input-dice $false
set %dice.local.ch-text-dice $false | set %dice.local.pr-text-dice $false
set %dice.m.trigger !calc * | set %dice.c.trigger !calc
_setdcsc 5 14 4
}
alias -l _locpre return $+ $colour(info) $+ ***
on 1:start:unset %dice.subdice*
; $_dice(x,y) rolls XdY
alias -l _dice {
if (($1 < 1) || ($2 < 1)) return 0
set %.numd $1
set %.total $r(1,$2)
if ($1 > 20) set %dice.subdice %dice.col.sub $+ (too many to list)
else set %dice.subdice %dice.col.sub $+ %.total $+
:loop
if (%.numd > 1) {
dec %.numd
if ($1 > 20) inc %.total $r(1,$2)
else {
set %.rolled $r(1,$2)
inc %.total %.rolled
set %dice.subdice %dice.col.sub $+ %.rolled $+ %dice.col.subsep $+ .. %dice.subdice
}
goto loop
}
set %dice.subdicer $1 $+ d $+ $2
set %dice.subdicet %.total
return %.total
}
; Just like $calc except replaces all #d# pairs first (returns $null if errors found)
; Also replaces #..# with a random number of that range
alias -l _dcalc {
set %.dcurr 0+ $replace($lower($1-),x,*) $+ +0
if ($remove($remove($remove($remove($remove($remove($remove($remove($remove($remove($remove(%.dcurr,d),+),-),^),/),*),.),%),$chr(40)),$chr(41)),$chr(32)) !isnum) return
unset %.subdice2
:loop
set %.dpos $pos(%.dcurr,d)
if (%.dpos > 0) {
unset %.dleft %.dright
:loopL
dec %.dpos
if ($mid(%.dcurr,%.dpos,1) == $chr(32)) goto loopL
if ($mid(%.dcurr,%.dpos,1) isnum) { set %.dleft $mid(%.dcurr,%.dpos,1) $+ %.dleft | goto loopL }
set %.dpos2 $pos(%.dcurr,d)
if ($mid(%.dcurr,$calc(%.dpos2 + 1),1) == d) { inc %.dpos2 | set %.calcit $true }
else unset %.calcit
:loopR
inc %.dpos2
if ($mid(%.dcurr,%.dpos2,1) == $chr(32)) goto loopR
if ($mid(%.dcurr,%.dpos2,1) isnum) { set %.dright %.dright $+ $mid(%.dcurr,%.dpos2,1) | goto loopR }
if (%.dright == $null) return
if (%.dleft == $null) set %.dleft 1
if (%.dleft > 100) return %dice.col.total $+ (Error: Too many dice)
if (%.dright > 30000) return %dice.col.total $+ (Error: Dice too large)
set %.dleft $_dice(%.dleft,%.dright)
if (%.calcit) {
if (%.subdice2 == $null) set %.subdice2 %dice.subdice
else set %.subdice2 %.subdice2 $+ , %dice.subdice
}
set %.dcurr $left(%.dcurr,%.dpos) $+ %.dleft $+ $mid(%.dcurr,%.dpos2,$len(%.dcurr))
goto loop
}
:loop2
set %.dpos $pos(%.dcurr,..)
if (%.dpos > 0) {
unset %.dleft %.dright
:loopL2
dec %.dpos
if ($mid(%.dcurr,%.dpos,1) == $chr(32)) goto loopL2
if ($mid(%.dcurr,%.dpos,1) isnum) { set %.dleft $mid(%.dcurr,%.dpos,1) $+ %.dleft | goto loopL2 }
set %.dpos2 $calc($pos(%.dcurr,..) + 1)
:loopR2
inc %.dpos2
if ($mid(%.dcurr,%.dpos2,1) == $chr(32)) goto loopR2
if ($mid(%.dcurr,%.dpos2,1) isnum) { set %.dright %.dright $+ $mid(%.dcurr,%.dpos2,1) | goto loopR2 }
if (%.dright == $null) return
if (%.dleft == $null) return
if ($calc(%.dright - %.dleft) > 30000) return %dice.col.total $+ (Error: Range too big)
if (%.dleft > %.dright) set %.dleft $r(%.dright,%.dleft)
else set %.dleft $r(%.dleft,%.dright)
set %.dcurr $left(%.dcurr,%.dpos) $+ %.dleft $+ $mid(%.dcurr,%.dpos2,$len(%.dcurr))
goto loop2
}
if (%.subdice2) return %.subdice2 %dice.col.sep $+ => %dice.col.total $+ $calc(%.dcurr) $+
return %dice.col.total $+ $calc(%.dcurr) $+
}
; Scans a line of text and evaluates all equations in it. (returns a nicely formatted output)
; Equations are series of numbers/operations (spaces allowed) with at least two numbers seperated by at least one operation, or a 'd#' alone.
; Special cases where all operations are / or all are - or all are x are ignored (dates, ranges, 1/2, resolution/sizes, etc) d0 by itself ignored
; Special checks for (2, 2), 123.23.53.12, etc (since these types of things can occur in normal text easily)
; If § or ==/=>/=byitself is present ANYWHERE it skips evaluation (to prevent infinite loops if many users run scripts like this)
; Spurious d and x and . and - before and after are stripped (for cases like "2d6 damage" or "and 2d7 gems") (before, must have a space to be spurious)
; Legal chars- 0123456789.()
; Legal operations- dx+-*/%^ (and ..)
; first param is - for normal, + to skip checks (for use with stuff like forced calculation)
alias -l _masseval set %.test * = * | if ((§ isin $2-) || (== isin $2-) || (=> isin $2-) || (%.test iswm $2-)) return | return $_masseval2($1,$replace($2-,$chr(32),))
alias -l _masseval2 {
if (¶ isin $2-) return
unset %.ret
set %.mask $replace($replace($replace($replace($replace($replace($replace($replace($replace($replace($2-,0,¶),1,¶),2,¶),3,¶),4,¶),5,¶),6,¶),7,¶),8,¶),9,¶)
set %.count 1
:looper
set %.pos $pos(%.mask,¶,%.count)
if (%.pos > 0) {
if ($mid($2-,%.pos,1) isnum) {
set %.str $mid($2-,%.pos,1)
set %.pos2 %.pos
:loopR
inc %.pos2
if ($mid($2-,%.pos2,1) isin 0123456789.()dx+-*/%^) { set %.str %.str $+ $mid($2-,%.pos2,1) | goto loopR }
:loopL
dec %.pos
if ($mid($2-,%.pos,1) isin .()d+-) { set %.str $mid($2-,%.pos,1) $+ %.str | goto loopL }
:loopS1
set %.bad (x*d.-
if ($right(%.str,1) isin %.bad) { set %.str $left(%.str,$calc($len(%.str)-1)) | goto loopS1 }
:loopS2
set %.bad )x*
if ($left(%.str,1) isin %.bad) { set %.str $right(%.str,$calc($len(%.str)-1)) | goto loopS2 }
set %.str $remtok(%.str,,127)
if ($1 == -) {
set %.str2 $remove(%.str,)
if ($remove(%.str2,/) isnum) goto next
if ($remove(%.str2,-) isnum) goto next
if ($remove(%.str2,x) isnum) goto next
if (($remove($remove($remove(%.str,$chr(40)),$chr(41)),.) isnum) && (.. !isin %.str)) goto next
}
if (($left(%.str,1) == d) && ($remove(%.str,d) isnum) && ($remove(%.str,d) != 0)) set %.str d $+ $remove(%.str,d)
elseif ($1 == -) {
set %.str2 $remove($remove(%.str,$chr(40)),$chr(41))
if ($remove(%.str2,) isnum) goto next
if ($left(%.str2,1) == .) set %.chk $mid(%.str2,2,1)
elseif ($left(%.str2,1) isin -+) {
if ($mid(%str2,2,1) == .) set %.chk $mid(%.str2,3,1)
else set %.chk $mid(%.str2,2,1)
}
else set %.chk $left(%.str2,1)
if ((%.chk !isnum) || ($right(%.str2,1) !isnum)) goto next
}
set %.str $replace(%.str,,$chr(32))
set %.is $_dcalc($replace(%.str,x,*))
if (%.is != $null) {
if (%.ret == $null) set %.ret %dice.col.equ $+ %.str $+ %dice.col.sep $+ => %.is
else set %.ret %.ret $+ %dice.col.semi $+ ; %dice.col.equ $+ %.str $+ %dice.col.sep $+ => %.is
}
}
:next
set %.count %.pos2
goto looper
}
if (%.ret) return %dice.col.logo $+ [§] %.ret
return
}
#ch-text-calc on
on 1:text:%dice.m.trigger:#:{
if (($findtok(%dice.c.chans,$chan,44) == $null) && (%dice.c.chans != all)) return
if ((%dice.c.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
set %.dice $_masseval(+,$2-)
if (%.dice != $null) _demsg $chan %.dice
else _demsg $chan %dice.col.logo $+ [§] Error processing request
}
#ch-text-calc end
#pr-text-calc on
on 1:text:%dice.m.trigger:?:{
if ((%dice.c.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
set %.dice $_masseval(+,$2-)
if (%.dice != $null) _demsg $nick %.dice
else _demsg $nick %dice.col.logo $+ [§] Error processing request
}
on 1:chat:%dice.m.trigger:{
if (($nick == %_qlogin.nick) || ($nick == $me)) return
set %.dice $_masseval(+,$2-)
if (%.dice != $null) _demsg =$nick %.dice
else _demsg =$nick %dice.col.logo $+ [§] Error processing request
}
#pr-text-calc end
#ch-input-dice on
on 1:input:#:{
if ($left($1,1) == !) return
if (($findtok(%dice.c.chans,$chan,44) == $null) && (%dice.c.chans != all)) return
if ($left($1,1) != /) {
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
say $1-
if (%dice.local.ch-input-dice) echo $colour(norm) -a $_locpre %.dice
else _demsg $target %.dice
.enable #_inputhalt | halt
}
}
elseif (($left($1,4) == /me) && (%dice.action)) {
set %.dice $_masseval(-,$2-)
if (%.dice != $null) {
me $2-
if (%dice.local.ch-input-dice) echo $colour(norm) -a $_locpre %.dice
else _demsg $target %.dice
.enable #_inputhalt | halt
}
}
}
#ch-input-dice end
#pr-input-dice off
on 1:input:?:{
if ($left($1,1) == !) return
if ($left($1,1) != /) {
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
say $1-
if (%dice.local.pr-input-dice) echo $colour(norm) -a $_locpre %.dice
else _demsg $target %.dice
.enable #_inputhalt | halt
}
}
elseif (($left($1,4) == /me) && (%dice.action)) {
set %.dice $_masseval(-,$2-)
if (%.dice != $null) {
me $2-
if (%dice.local.pr-input-dice) echo $colour(norm) -a $_locpre %.dice
else _demsg $target %.dice
.enable #_inputhalt | halt
}
}
}
#pr-input-dice end
#ch-text-dice on
on 1:text:*:#:{
if ($left($1,1) == !) return
if (($findtok(%dice.d.chans,$chan,44) == $null) && (%dice.d.chans != all)) return
if ((%dice.d.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) $chan $_locpre %.dice
else _demsg $chan %.dice
}
}
on 1:action:*:#:{
if (($findtok(%dice.d.chans,$chan,44) == $null) && (%dice.d.chans != all)) return
if ((%dice.d.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
if (%dice.action) {
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) $chan $_locpre %.dice
else _demsg $chan %.dice
}
}
}
#ch-text-dice end
#pr-text-dice on
on 1:text:*:?:{
if ($left($1,1) == !) return
if ((%dice.d.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) $nick $_locpre %.dice
else _demsg $nick %.dice
}
}
on 1:action:*:?:{
if (%dice.action) {
if ((%dice.d.mustknow) && ($nick !isnotify) && ($level($fulladdress) == $dlevel)) return
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) $nick $_locpre %.dice
else _demsg $nick %.dice
}
}
}
on 1:chat:*:{
if (($nick == %_qlogin.nick) || ($nick == $me)) return
if ($left($1,1) == !) return
if ($1 == ACTION) {
if (%dice.action) {
set %.dice $_masseval(-,$remove($2-,))
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) =$nick $_locpre %.dice
else _demsg =$nick %.dice
}
}
}
else {
set %.dice $_masseval(-,$1-)
if (%.dice != $null) {
if (%dice.local.ch-text-dice) echo $colour(norm) =$nick $_locpre %.dice
else _demsg =$nick %.dice
}
}
}
#pr-text-dice end
; Local calculation
alias calc {
if ($1 == $null) { echo $colour(info) -a $_locpre %dice.col.logo $+ [§] Usage: /calc equation to calculate an equation or dice roll locally | halt }
set %.dice $_masseval(+,$1-)
if (%.dice != $null) echo $colour(norm) -a $_locpre %.dice
else echo $colour(norm) -a $_locpre %dice.col.logo $+ [§] Error evaluating
}
; Said calculation
alias scalc {
if ($1 == $null) { echo $colour(info) -a $_locpre %dice.col.logo $+ [§] Usage: /scalc equation to say a calculated equation or dice roll to the current window | halt }
set %.dice $_masseval(+,$1-)
if (%.dice != $null) say %.dice
else echo $colour(norm) -a $_locpre %dice.col.logo $+ [§] Error evaluating
}
alias msgcalc {
if ($2 == $null) return
set %.dice $_masseval(+,$2-)
if (%.dice != $null) msg $1 %.dice
else echo $colour(norm) -a $_locpre %dice.col.logo $+ [§] Error evaluating
}
; Repeated calculation
alias recalc {
if ($2 == $null) { echo $colour(info) -a $_locpre %dice.col.logo $+ [§] Usage: /recalc N equation to repeat equation N times (usually repeated dice rolls) | halt }
set %.times $1
:loop
calc $2-
if (%.times > 1) { dec %.times | goto loop }
}
alias rescalc {
if ($2 == $null) { echo $colour(info) -a $_locpre %dice.col.logo $+ [§] Usage: /rescalc N equation to repeat (and say) equation N times (usually repeated dice rolls) | halt }
set %.times $1
:loop
scalc $2-
if (%.times > 1) { dec %.times | goto loop }
}
alias remsgcalc {
if ($3 == $null) return
set %.times $2
:loop
msgcalc $1 $3-
if (%.times > 1) { dec %.times | goto loop }
}
; Recent dice breakup
alias subdice {
if (%dice.subdice == $null) echo $colour(info) -a $_locpre %dice.col.logo $+ [§] No dice have been rolled
else echo $colour(norm) -a $_locpre %dice.col.logo $+ [§] $+ $colour(info) $+ Last dice roll was %dice.col.equ $+ %dice.subdicer $+ %dice.col.sep $+ => %dice.subdice %dice.col.sep $+ => %dice.col.total $+ %dice.subdicet $+
}
; quiet msg with special echo
alias -l _demsg {
if ($left($1,1) == =) msg $1-
else {
.raw privmsg $1 : $+ $2-
.timer -m 1 1 echo $colour(norm) $1 > $2-
}
}
alias helpdice dicehelp
alias dicehelp edit $scriptdirdice.txt
alias dicecfg cfgdice
alias cfgdice {
window -c @DiceConfig
window -l -t $+ $int($calc(27 * %font.fixtab / 18)) @DiceConfig $_winpos(0%,0%,14%,14%) @DiceConfig %font.basic
titlebar @DiceConfig - Right-click for help
aline @DiceConfig Double click on an option to toggle or modify, right-click for help.
aline @DiceConfig %=
aline @DiceConfig Activate on equations/dice in channel text : $_tf2yn($group(#ch-text-dice))
aline @DiceConfig Activate on equations/dice in private text : $_tf2yn($group(#pr-text-dice))
aline @DiceConfig Display results locally only (their channel text) : $_tf2yn(%dice.local.ch-text-dice)
aline @DiceConfig Display results locally only (their private text) : $_tf2yn(%dice.local.pr-text-dice)
aline @DiceConfig Activate on actions as well as text : $_tf2yn(%dice.action)
aline @DiceConfig Activate in which channels : %dice.d.chans
aline @DiceConfig Only activate for users on notify/userlist : $_tf2yn(%dice.d.mustknow)
aline @DiceConfig %=
aline @DiceConfig Activate on equations/dice in your channel text : $_tf2yn($group(#ch-input-dice))
aline @DiceConfig Activate on equations/dice in your private text : $_tf2yn($group(#pr-input-dice))
aline @DiceConfig Display results locally only (your channel text) : $_tf2yn(%dice.local.ch-input-dice)
aline @DiceConfig Display results locally only (your private text) : $_tf2yn(%dice.local.pr-input-dice)
aline @DiceConfig %=
aline @DiceConfig Activate on !calculation requests in channel text : $_tf2yn($group(#ch-text-calc))
aline @DiceConfig Activate on !calculation requests in private text : $_tf2yn($group(#pr-text-calc))
aline @DiceConfig Activate in which channels : %dice.c.chans
aline @DiceConfig Only activate for users on notify/userlist : $_tf2yn(%dice.c.mustknow)
aline @DiceConfig !Calculation request command/trigger : %dice.c.trigger
aline @DiceConfig %=
aline @DiceConfig Add to menubar popups (P&P Tools menu) : $_tf2yn($group(#dice-menu-pop))
aline @DiceConfig Add to channel popups : $_tf2yn($group(#dice-chan-pop))
aline @DiceConfig Add to query/DCC chat popups : $_tf2yn($group(#dice-qch-pop))
aline @DiceConfig %=
aline @DiceConfig Double click on an example to change the current color scheme
aline @DiceConfig Current - %dice.col.logo $+ [§] %dice.col.equ $+ 5dd6 %dice.col.sep $+ => %dice.col.sub $+ 2 %dice.col.subsep $+ .. %dice.col.sub $+ 5 %dice.col.subsep $+ .. %dice.col.sub $+ 6 %dice.col.subsep $+ .. %dice.col.sub $+ 5 %dice.col.subsep $+ .. %dice.col.sub $+ 3 %dice.col.sep $+ => %dice.col.total $+ 21
aline @DiceConfig %=
aline @DiceConfig [§] 55dd6 => 2 14.. 5 14.. 6 14.. 5 14.. 3 => 0421
aline @DiceConfig [§] 35dd6 => 2 14.. 5 14.. 6 14.. 5 14.. 3 => 0421
aline @DiceConfig [§] 95dd6 => 2 14.. 5 14.. 6 14.. 5 14.. 3 => 0421
aline @DiceConfig [§] 5dd6 14=> 2 15.. 5 15.. 6 15.. 5 15.. 3 14=> 21
aline @DiceConfig [§] 5dd6 15=> 2 14.. 5 14.. 6 14.. 5 14.. 3 15=> 21
aline @DiceConfig [§] 125dd6 => 022 .. 025 .. 026 .. 025 .. 023 => 1221
aline @DiceConfig [§] 115dd6 => 102 .. 105 .. 106 .. 105 .. 103 => 1121
aline @DiceConfig [§] 105dd6 => 022 .. 025 .. 026 .. 025 .. 023 => 1021
aline @DiceConfig %=
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
aline @DiceConfig [§] 5dd6 => 2 .. 5 .. 6 .. 5 .. 3 => 21
}
alias -l _tf2yn if (($1 == $true) || ($1 == on)) return YES | return NO
alias -l _togg if ($group($1) == on) .disable $1 | else .enable $1
alias -l _tog2 if (% [ $+ [ $1 ] ] == $true) set % [ $+ [ $1 ] ] $false | else set % [ $+ [ $1 ] ] $true
alias _tog3 {
if ($5 == $null) { set %_arhelp _tog3 $1-5 | _pentry _arhelp $+ $_s2p(% [ $+ [ $2 ] ] ) Channels in which to activate on $3-4 $+ ? (Enter all for all channels) }
set % [ $+ [ $2 ] ] $_s2c($5-)
rline @DiceConfig $1 Activate in which channels : % [ $+ [ $2 ] ]
}
alias _tog4 {
if ($1 == $null) _pentry _tog4 $+ $_s2p(%dice.c.trigger) Trigger command for !calculation requests?
set %dice.c.trigger $1
set %dice.m.trigger $1 *
rline @DiceConfig 20 !Calculation request command/trigger : %dice.c.trigger
}
menu @DiceConfig {
dclick {
if ($1 == 3) { _togg #ch-text-dice | rline @DiceConfig 3 Activate on equations/dice in channel text : $_tf2yn($group(#ch-text-dice)) }
elseif ($1 == 4) { _togg #pr-text-dice | rline @DiceConfig 4 Activate on equations/dice in private text : $_tf2yn($group(#pr-text-dice)) }
elseif ($1 == 5) { _tog2 dice.local.ch-text-dice | rline @DiceConfig 5 Display results locally only (their channel text) : $_tf2yn(%dice.local.ch-text-dice) }
elseif ($1 == 6) { _tog2 dice.local.pr-text-dice | rline @DiceConfig 6 Display results locally only (their private text) : $_tf2yn(%dice.local.pr-text-dice) }
elseif ($1 == 7) { _tog2 dice.action | rline @DiceConfig 7 Activate on actions as well as text : $_tf2yn(%dice.action) }
elseif ($1 == 8) _tog3 8 dice.d.chans inline equations/dice
elseif ($1 == 9) { _tog2 dice.d.mustknow | rline @DiceConfig 9 Only activate for users on notify/userlist : $_tf2yn(%dice.d.mustknow) }
elseif ($1 == 11) { _togg #ch-input-dice | rline @DiceConfig 11 Activate on equations/dice in your channel text : $_tf2yn($group(#ch-input-dice)) }
elseif ($1 == 12) { _togg #pr-input-dice | rline @DiceConfig 12 Activate on equations/dice in your private text : $_tf2yn($group(#pr-input-dice)) }
elseif ($1 == 13) { _tog2 dice.local.ch-input-dice | rline @DiceConfig 13 Display results locally only (your channel text) : $_tf2yn(%dice.local.ch-input-dice) }
elseif ($1 == 14) { _tog2 dice.local.pr-input-dice | rline @DiceConfig 14 Display results locally only (your private text) : $_tf2yn(%dice.local.pr-input-dice) }
elseif ($1 == 16) { _togg #ch-text-calc | rline @DiceConfig 16 Activate on !calculation requests in channel text : $_tf2yn($group(#ch-text-calc)) }
elseif ($1 == 17) { _togg #pr-text-calc | rline @DiceConfig 17 Activate on !calculation requests in private text : $_tf2yn($group(#pr-text-calc)) }
elseif ($1 == 18) _tog3 18 dice.c.chans !calculation requests
elseif ($1 == 19) { _tog2 dice.c.mustknow | rline @DiceConfig 19 Only activate for users on notify/userlist : $_tf2yn(%dice.c.mustknow) }
elseif ($1 == 20) _tog4
elseif ($1 == 22) { _togg #dice-menu-pop | rline @DiceConfig 22 Add to menubar popups (P&P Tools menu) : $_tf2yn($group(#dice-menu-pop)) }
elseif ($1 == 23) { _togg #dice-chan-pop | rline @DiceConfig 23 Add to channel popups : $_tf2yn($group(#dice-chan-pop)) }
elseif ($1 == 24) { _togg #dice-qch-pop | rline @DiceConfig 24 Add to query/DCC chat popups : $_tf2yn($group(#dice-qch-pop)) }
elseif ($1 == 29) _setdcsc 5 14 4
elseif ($1 == 30) _setdcsc 3 14 4
elseif ($1 == 31) _setdcsc 9 14 4
elseif ($1 == 32) _setdcsc 14 15
elseif ($1 == 33) _setdcsc 15 14
elseif ($1 == 34) _setdcsc 12 2 - 12
elseif ($1 == 35) _setdcsc 11 10 - 11
elseif ($1 == 36) _setdcsc 10 2 - 10
elseif ($1 == 38) _setdcsc -
elseif ($1 == 39) _setdcsc -
elseif ($1 == 40) _setdcsc - - -
elseif ($1 == 41) _setdcsc - - - -
elseif ($1 == 42) _setdcsc - - -
elseif ($1 == 43) _setdcsc - - - -
elseif ($1 == 44) _setdcsc - - - -
elseif ($1 == 45) _setdcsc - - -
elseif ($1 == 46) _setdcsc - - -
elseif ($1 == 47) _setdcsc - - - - -
}
Help:dicehelp
-
Close:window -c @DiceConfig
}
; _setdcsc Equation => SubDice ..; Total
alias -l _setdcsc {
set %dice.col.logo | set %dice.col.equ $remove($1,-) | set %dice.col.total $remove($5,-) | set %dice.col.sep $remove($2,-) | set %dice.col.sub $remove($3,-) | set %dice.col.semi $remove($4,-) | set %dice.col.subsep $remove($4,-)
if ($window(@DiceConfig) != $null) rline @DiceConfig 27 Current - %dice.col.logo $+ [§] %dice.col.equ $+ 5dd6 %dice.col.sep $+ => %dice.col.sub $+ 2 %dice.col.subsep $+ .. %dice.col.sub $+ 5 %dice.col.subsep $+ .. %dice.col.sub $+ 6 %dice.col.subsep $+ .. %dice.col.sub $+ 5 %dice.col.subsep $+ .. %dice.col.sub $+ 3 %dice.col.sep $+ => %dice.col.total $+ 21
}
alias _rcpart2 set %.temp.eq $1- | _askr _rcpart3 How many times should we roll/calculate?
alias _rscpart2 set %.temp.eq $2- | set %_arhelp _rscpart3 $1 | _askr _arhelp How many times should we roll/calculate?
alias _rcpart3 recalc $1 %.temp.eq
alias _rscpart3 remsgcalc $1-2 %.temp.eq
#dice-menu-pop on
menu menubar {
-
Dice
.Calculate:_askr calc Equation to calculate or dice to roll? (ex: 5d6 + 3)
.Calc + Say:set %_arhelp msgcalc $active | _askr _arhelp Equation to calculate or dice to roll? (ex: 5d6 + 3)
.-
.Repeat Calc:_askr _rcpart2 Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.Repeat Calc + Say:set %_arhelp _rscpart2 $active | _askr _arhelp Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.-
.Last roll's subdice:subdice
.-
.Configure:dicecfg
.-
.Help:dicehelp
}
#dice-menu-pop end
#dice-chan-pop off
menu channel {
-
Dice
.Calculate:_askr calc Equation to calculate or dice to roll? (ex: 5d6 + 3)
.Calc + Say:set %_arhelp msgcalc $active | _askr _arhelp Equation to calculate or dice to roll? (ex: 5d6 + 3)
.-
.Repeat Calc:_askr _rcpart2 Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.Repeat Calc + Say:set %_arhelp _rscpart2 $active | _askr _arhelp Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.-
.Last roll's subdice:subdice
.-
.Configure:dicecfg
.-
.Help:dicehelp
}
#dice-chan-pop end
#dice-qch-pop off
menu query {
-
Dice
.Calculate:_askr calc Equation to calculate or dice to roll? (ex: 5d6 + 3)
.Calc + Say:set %_arhelp msgcalc $active | _askr _arhelp Equation to calculate or dice to roll? (ex: 5d6 + 3)
.-
.Repeat Calc:_askr _rcpart2 Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.Repeat Calc + Say:set %_arhelp _rscpart2 $active | _askr _arhelp Dice (or equation) to roll (calculate) multiple times? (ex: 4dd6)
.-
.Last roll's subdice:subdice
.-
.Configure:dicecfg
.-
.Help:dicehelp
}
#dice-qch-pop end