Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- &CMD`DICE #40=
- $^\+(dice|roll)(( */[a-z0-9#]+( *= *([0-9a-z]+|\".+\"))?)*)( +((-?([0-9a-z\-\$\#\^\.]+|\"[0-9a-z\-\$\#\^\. ]+\"))( *[+-] *([0-9a-z\-\$\#\^
- \.]+|\"[0-9a-z\-\$\#\^\. ]+\"))*)( +vs +((-?([0-9a-z\-\$\#\^\.]+|\"[0-9a-z\-\$\#\^\. ]+\"))( *[+-] *([0-9a-z\-\$\#\^\.]+|\"[0-9a-z\-\$\#\^\. ]+
- \"))*))? *(= *(.+))? *)$:
- [setq(B,secure(%0))]
- [setq(z, u(F`PARSE`FLAGS, secure(%2)))]
- [setq(z, u(F`PARSE`DICE, secure(%7), D, V))]
- [setq(z, u(F`PARSE`CONTESTED, secure(%6)))]
- [setq(z, u(F`PARSE`SHOWLIST, %6))]
- [setq(z, u(F`BUILD`OUTPUT))]
- [pemit(%qL, %qO)]
- [u(F`ADD`TO`DICELOG,%qO)]
- [u(F`SEND`CHAN,%qC)]
- -
- @set #40/CMD`DICE=regexp
- -
- ---------------PARSE FLAGS---------------
- -
- &F`PARSE`FLAGS #40=
- [setq(Z,
- iter(
- %0,
- if(
- strlen(trim(itext(0))),
- u(F`FIND`FLAG, trim(lcstr(itext(0))))),
- /)
- )]
- -
- &F`FIND`FLAG #40=
- [setq(X,0)]
- [iter(
- lattr(me/F`TEST`FLAG`REG`*),
- if(
- u(itext(0), %0),
- u(edit(itext(0), F`TEST`FLAG`REG`, F`TEST`FLAG`MATCH`), %0))
- )]
- [switch(
- %qX,
- 0, setq(F, %qF%b/%[%0 - Flag not matched%]),
- 1, null(Single Match),
- setq(F, %qF%b/%[%0 - Multiple Flags Matched%])
- )]
- -
- &F`TEST`FLAG`REG`VERBOSE #40=
- regmatch(%0,^v(e(r(b(o(s(e)?)?)?)?)?)?$)
- -
- &F`TEST`FLAG`MATCH`VERBOSE #40=
- [setq(X,inc(%qX))][setq(0, 1)][setq(F, %qF%b/VERBOSE)]
- -
- &F`TEST`FLAG`REG`EXTENDED`TARGET #40=
- ifelse(
- pos(%bvs%b, %qB),
- regmatch(%0,^e(x(t(e(n(d(e(d)?)?)?)?)?)?)?# *= *((%[0-9%]+)vs(%[0-9%]+))$, -1 -1 -1 -1 -1 -1 -1 -1 Y),
- regmatch(%0,^e(x(t(e(n(d(e(d)?)?)?)?)?)?)?# *= *(%[0-9%]+)$, -1 -1 -1 -1 -1 -1 -1 -1 Y)
- )
- -
- &F`TEST`FLAG`MATCH`EXTENDED`TARGET #40=
- ifelse(
- ifelse(
- pos(%bvs%b, %qB),
- and(
- gte(first(%qY, vs), 1),
- lte(first(%qY, vs), 100),
- gte(last(%qY, vs), 1),
- lte(last(%qY, vs), 100)
- ),
- and(
- gte(%qY, 1),
- lte(%qY, 100)
- )
- ),
- [setq(X,inc(%qX))][setq(2, %qY)][setq(F, %qF%b/EXTENDED#=%q2)],
- [setq(X,inc(%qX))][setq(F, %qF%b/%[%0% - Value out of range %(1-100%)%])]
- )
- -
- &F`TEST`FLAG`REG`EXTENDED #40=
- regmatch(%0,^e(x(t(e(n(d(e(d)?)?)?)?)?)?)?( *= *(%[0-9%]+))?$, -1 -1 -1 -1 -1 -1 -1 -1 -1 Y)
- -
- &F`TEST`FLAG`MATCH`EXTENDED #40=
- ifelse(
- strlen(%qY),
- ifelse(
- and(gte(%qY,2),lte(%qY,100)),
- [setq(X,inc(%qX))][setq(1,%qY)][setq(F, %qF%b/EXTENDED=%q1)],
- [setq(X,inc(%qX))][setq(F, %qF%b/%[%0% - Value out of range %(2-100%)%])]
- ),
- [setq(X,inc(%qX))][setq(1,0)][setq(F, %qF%b/EXTENDED)]
- )
- -
- &F`TEST`FLAG`REG`WILLPOWER #40=
- regmatch(%0,^(w(i(l(l(p(o(w(e(r)?)?)?)?)?)?)?)?|wp)( *= *(%[0-9%]+))?$, -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Y)
- -
- &F`TEST`FLAG`MATCH`WILLPOWER #40=
- ifelse(
- strlen(%qY),
- ifelse(
- and(gte(%qY, 1), lte(%qY, setr(Z, u(F`GET`MAXWILLPOWER)))),
- [setq(X,inc(%qX))][setq(3, %qY)][setq(F, %qF%b/WILLPOWER[ifelse(gt(%q3, 1), =%q3,)])],
- [setq(X,inc(%qX))][setq(F, %qF%b/%[%0% - Value out of range %(1-%qZ%)%])]
- ),
- [setq(X,inc(%qX))][setq(3, 1)][setq(F, %qF%b/WILLPOWER)]
- )
- -
- &F`GET`MAXWILLPOWER #40=
- 10
- -
- &F`TEST`FLAG`REG`AGAIN #40=
- regmatch(%0,^a(g(a(i(n)?)?)?)? *= *(%[0-9%]+|none)$, -1 -1 -1 -1 -1 Y)
- -
- &F`TEST`FLAG`MATCH`AGAIN #40=
- ifelse(
- or(
- match(%qY, none),
- and(
- gte(%qY,1),
- lte(%qY,11)
- )
- ),
- [setq(X,inc(%qX))][setq(4, ifelse(match(%qY, none), 11, %qY))][setq(F, %qF%b/AGAIN=[ucstr(ifelse(eq(%q4, 11), none,
- %q4))])],
- [setq(X,inc(%qX))][setq(F, %qF%b/%[%0% - Value out of range %(1-11%)%])]
- )
- -
- &F`TEST`FLAG`REG`9AGAIN #40=
- regmatch(%0,^9$)
- -
- &F`TEST`FLAG`MATCH`9AGAIN #40=
- [setq(X,inc(%qX))][setq(4, 9)][setq(F, %qF%b/AGAIN=%q4)]
- -
- &F`TEST`FLAG`REG`8AGAIN #40=
- regmatch(%0,^8$)
- -
- &F`TEST`FLAG`MATCH`8AGAIN #40=
- [setq(X,inc(%qX))][setq(4, 8)][setq(F, %qF%b/AGAIN=%q4)]
- -
- &F`TEST`FLAG`REG`NO`AGAIN #40=
- regmatch(%0,^(11|none)$)
- -
- &F`TEST`FLAG`MATCH`NO`AGAIN #40=
- [setq(X,inc(%qX))][setq(4, 11)][setq(F, %qF%b/AGAIN=NONE)]
- -
- &F`TEST`FLAG`REG`TARGET #40=
- regmatch(%0,^t(a(r(g(e(t)?)?)?)?)? *= *(%[0-9%]+)$, -1 -1 -1 -1 -1 -1 Y)
- -
- &F`TEST`FLAG`MATCH`TARGET #40=
- ifelse(
- and(
- gte(%qY,1),
- lte(%qY,10)
- ),
- [setq(X,inc(%qX))][setq(5, %qY)][setq(F, %qF%b/TARGET=%q5)],
- [setq(X,inc(%qX))][setq(F, %qF%b/%[%0% - Value out of range %(1-10%)%])]
- )
- -
- &F`TEST`FLAG`REG`ROTE #40=
- regmatch(%0,^r(o(t(e)?)?)?$)
- -
- &F`TEST`FLAG`MATCH`ROTE #40=
- [setq(X,inc(%qX))][setq(6, 1)][setq(F, %qF%b/ROTE)]
- -
- &F`TEST`FLAG`REG`SUBONES #40=
- regmatch(%0,^s(u(b(o(n(e(s)?)?)?)?)?)?$)
- -
- &F`TEST`FLAG`MATCH`SUBONES #40=
- [setq(X,inc(%qX))][setq(7, 1)][setq(F, %qF%b/SUBONES)]
- -
- &F`TEST`FLAG`REG`IGNOREWOUNDS #40=
- regmatch(%0,^i(g(n(o(r(e(w(o(u(n(d(s)?)?)?)?)?)?)?)?)?)?)?$)
- -
- &F`TEST`FLAG`MATCH`IGNOREWOUDS #40=
- [setq(X,inc(%qX))][setq(8, 1)][setq(F, %qF%b/IGNOREWOUNDS)]
- -
- &F`TEST`FLAG`REG`NOTE #40=
- regmatch(%0,^n(o(t(e)?)?)? *= *((.+)|\"(.+)\")?$, -1 -1 -1 -1 Y)
- -
- &F`TEST`FLAG`MATCH`NOTE #40=
- [setq(X,inc(%qX))][setq(N, %qY)][setq(F, %qF%b/NOTE)]
- -
- ---------------PARSE DICE---------------
- -
- &F`PARSE`DICE #40=
- [setq(%2, 0)]
- [setq(Z,
- iter(
- edit(edit(lcstr(%0), +, |), -, |-),
- if(
- strlen(trim(itext(0))),
- u(F`PARSE`DICE`PART, trim(itext(0)), inum(0), %1, %2)
- ),
- |
- )
- )]
- -
- &F`PARSE`DICE`PART #40=
- [ifelse(
- strmatch(mid(%0,0,1),-),
- [setq(X, -)][setq(Y, trim(mid(%0, 1, strlen(%0))))],
- [setq(X, +)][setq(Y,%0)]
- )]
- [ifelse(
- isnum(%qY),
- ifelse(
- lte(%qY, 100),
- u(F`ADD`CLEAN`DICE,%qX, %qY, %1, %qY, %2, %3),
- [setq(%2,
- [r(%2)]%b[ifelse(
- eq(strlen(r(%2)), 0),
- %[[if(strmatch(%qX,-), %qX)]%qY - Bad Monkey%],
- %[%qX%b%qY - Bad Monkey%]
- )]
- )]
- ),
- [u(F`PARSE`DICE`TEXT, %qX, %qY, %1, %2, %3)]
- )]
- -
- &F`ADD`CLEAN`DICE #40=
- [setq(%4,
- [r(%4)]%b[ifelse(
- eq(strlen(r(%4)), 0),
- [if(strmatch(%0,-), %0)]%1,
- %0%b%1
- )]
- )]
- [setq(%5, add(r(%5), %0%3))]
- -
- &F`PARSE`DICE`TEXT #40=
- [switch(
- 1,
- u(F`PARSE`DICE`TEXT`MATCH`STAT, %1), u(F`PARSE`DICE`TEXT`STAT, %0, %1, %2, %3, %4),
- u(F`PARSE`DICE`TEXT`MATCH`STAT`SPEC, %1), u(F`PARSE`DICE`TEXT`STAT`SPEC, %0, %1, %2, %3, %4),
- u(F`PARSE`DICE`TEXT`MATCH`OPP`STAT, %1), u(F`PARSE`DICE`TEXT`OPP`STAT, %0, %1, %2, %3, %4),
- u(F`PARSE`DICE`TEXT`MATCH`DBREF`STAT, %1), u(F`PARSE`DICE`TEXT`OPP`STAT, %0, %1, %2, %3, %4),
- [setq(%3,
- [r(%3)]%b[ifelse(
- eq(strlen(r(%3)), 0),
- %[[if(strmatch(%0,-), %0)]%1 - Not Matched%],
- %[%0%b%1 - Not Matched%]
- )]
- )]
- )]
- -
- &F`PARSE`DICE`TEXT`MATCH`STAT #40=
- regmatch(%0, ^(%[a-z%]+)$)
- -
- &F`PARSE`DICE`TEXT`STAT #40=
- ifelse(
- u(F`IS`VALID`STAT, %#, %1),
- u(F`ADD`CLEAN`DICE,%0, u(F`GET`STAT`FULL`NAME, %#, %1), %2, u(F`GET`STAT`VAL, %#, %1), %3, %4),
- [setq(%3,
- [r(%3)]%b[ifelse(
- eq(strlen(r(%3)), 0),
- %[[if(strmatch(%0,-), %0)]%1 - INVALID STAT%],
- %[%0%b%1%]
- )]
- )]
- )
- -
- &F`PARSE`DICE`TEXT`MATCH`STAT`SPEC #40=
- regmatch(%0, ^((%[a-z%]+)%\.(%[a-z%]+)|\"(%[a-z%]+)%\.(%[a-z %]+)\")$)
- -
- &F`PARSE`DICE`TEXT`STAT`SPEC #40=
- ifelse(
- and(
- u(F`IS`VALID`STAT, %#, setr(X, strip(first(%1, .), \"))),
- u(F`IS`VALID`SPEC, %#, setr(Y, strip(rest(%1, .), \")))
- ),
- u(F`ADD`CLEAN`DICE,%0, [u(F`GET`STAT`FULL`NAME, %#, %qX)].[u(F`GET`SPEC`FULL`NAME, %#, %qY)], %2, inc(u
- (F`GET`STAT`VAL, %#, %qX)), %3, %4),
- [setq(%3,
- [r(%3)]%b[ifelse(
- eq(strlen(r(%3)), 0),
- %[[if(strmatch(%0,-), %0)]%1 - INVALID STAT or SPEC%],
- %[%0%b%1%]
- )]
- )]
- )
- -
- &F`PARSE`DICE`TEXT`MATCH`OPP`STAT #40=
- regmatch(%0, ^((%[0-9a-z\-\$\.%]+)%\^(%[a-z%]+)|\"(%[0-9a-z\-\$\. %]+) *%\^ *(%[a-z%]+)\")$)
- -
- &F`PARSE`DICE`TEXT`MATCH`DBREF`STAT #40=
- regmatch(%0, ^(#(%[0-9%]+)%\^(%[a-z%]+)(%\.%[a-z%]+)|\"#(%[0-9%]+) *%\^ *(%[a-z%]+)\")?$)
- -
- &F`PARSE`DICE`TEXT`OPP`STAT #40=
- ifelse(
- isdbref(
- setr(X, num(*[strip(first(%1, ^), \")]))
- ),
- ifelse(
- u(F`IS`VALID`STAT, %#, setr(Y, strip(rest(%1, ^), \"))),
- u(F`ADD`CLEAN`DICE,%0, [name(%qX)]^[u(F`GET`STAT`FULL`NAME, %qX, %qY)], %2, u(F`GET`STAT`VAL, %qX,
- %qY), %3, %4),
- [setq(%3,
- [r(%3)]%b[ifelse(
- eq(strlen(r(%3)), 0),
- %[[if(strmatch(%0,-), %0)]%1 - INVALID STAT%],
- %[%0%b%1%]
- )]
- )]
- )
- ,
- [setq(%3,
- [r(%3)]%b[ifelse(
- eq(strlen(r(%3)), 0),
- %[[if(strmatch(%0,-), %0)]%1 - INVALID TARGET DBREF%],
- %[%0%b%1%]
- )]
- )]
- )
- -
- &F`IS`VALID`STAT #40=0
- -
- &F`IS`VALID`SPEC #40=0
- -
- &F`GET`STAT`FULL`NAME #40=FOO
- -
- &F`GET`SPEC`FULL`NAME #40=BAR
- -
- &F`GET`STAT`VAL #40=2
- -
- &F`PARSE`CONTESTED #40=
- if(
- pos(vs, %0),
- ifelse(
- pos(=, %0),
- u(F`PARSE`DICE, mid(%0, inc(pos(vs, %0)), sub(sub(pos(=, %0), pos(vs, %0)),2)), C, U),
- u(F`PARSE`DICE, mid(%0, inc(pos(vs, %0)), strlen(%0)), C, U)
- )
- )
- -
- ---------------EVAL DICE---------------
- -
- &D`DEFAULT`AGAIN #40=
- 10
- -
- &D`DEFAULT`TN #40=
- 8
- -
- &D`DEFAULT`DICE #40=
- 10
- -
- &F`GET`WOUNDS #40=
- 0
- -
- &F`EVAL`DICE #40=
- [setq(Z, u(F`EVAL`DICE`OPTIONS))]
- [ifelse(
- strlen(%q1),
- u(F`EVAL`DICE`EXTENDED),
- ifelse(
- strlen(%qU),
- u(F`EVAL`DICE`CONTESTED),
- ifelse(
- lte(%qV, 0),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, R, T)],
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qV, 0, R, T)]
- )
- )
- )]
- -
- &F`EVAL`DICE`OPTIONS #40=
- [if(
- and(
- gte(%q3, 1),
- not(strlen(%q1))
- ),
- [setq(V, add(%qV, 3))][setq(D, %qD%b+%b3)]
- )]
- [if(
- not(strlen(%q4)),
- setq(4, v(D`DEFAULT`AGAIN))
- )]
- [if(
- not(strlen(%q5)),
- [setq(5, v(D`DEFAULT`TN))]
- )]
- [if(
- lt(%q4, %q5),
- setq(5, %q4)
- )]
- [if(
- not(%q8),
- setq(V, add(%qV, u(F`GET`WOUNDS)))
- )]
- [if(
- gt(%qV, v(D`MAX`DICE)),
- setq(V, v(D`MAX`DICE))
- )]
- [if(
- gt(%qU, v(D`MAX`DICE)),
- setq(U, v(D`MAX`DICE))
- )]
- -
- &D`MAX`DICE #40=100
- -
- &D`DEFAULT`EXTENDED #40=6
- -
- &F`EVAL`DICE`EXTENDED #40=
- [ifelse(
- gt(%q1, 0),
- setq(I, %q1),
- ifelse(
- strlen(%qE),
- setq(I, %qE),
- setq(I, v(D`DEFAULT`EXTENDED))
- )
- )]
- [ifelse(
- strlen(%qU),
- u(F`EVAL`DICE`EXT`CONTESTED),
- [ifelse(
- lte(%qV, 0),
- iter(
- lnum(1,%qI),
- [u(F`CHECK`EXT`WP, inum(0))]
- [ifelse(
- lte(%qV, 0),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, R, T)],
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qV, 0, R, T)]
- )]
- ),
- iter(
- lnum(1,%qI),
- [u(F`CHECK`EXT`WP, inum(0))][setq(W, 0)][u(F`EVAL`DICE`ROLL, %qV, 0, R, T)]
- )
- )]
- [u(F`CHECK`EXT`TARGET, R, T, 0)]
- )]
- -
- &F`CHECK`EXT`TARGET #40=
- [if(
- strlen(%q2),
- [setq(X, 0)]
- [setq(Y,)]
- [iter(
- rest(r(%1), |),
- if(
- not(strlen(%qY)),
- if(
- gte(
- setr(X, add(%qX, itext(0))),
- switch(
- %2,
- 0, %q2,
- 1, first(%q2, vs),
- 2, last(%q2, vs)
- )
- ),
- setq(Y, inum(0))
- )
- ),
- |
- )]
- [if(%qY, setq(%0, |[extract(r(%0), 2, %qY, |)]))]
- [if(%qY, setq(%1, |[extract(r(%1), 2, %qY, |)]))]
- )]
- -
- &F`CHECK`EXT`WP #40=
- [if(
- and(
- gt(%q3, 0),
- eq(%0, inc(sub(%qI, %q3)))
- ),
- setq(V, add(%qv, 3))
- )]
- -
- &F`EVAL`DICE`EXT`CONTESTED #40=
- [ifelse(
- lte(%qV, 0),
- [iter(
- lnum(1,%qI),
- [u(F`CHECK`EXT`WP, inum(0))][setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, R, T)]
- )]
- [ifelse(
- lte(%qU, 0),
- [iter(
- lnum(1,%qI),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, Q, S)]
- )],
- [iter(
- lnum(1,%qI),
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qU, 0, Q, S)]
- )]
- )],
- [iter(
- lnum(1,%qI),
- [u(F`CHECK`EXT`WP, inum(0))][setq(W, 0)][u(F`EVAL`DICE`ROLL, %qV, 0, R, T)]
- )]
- [ifelse(
- lte(%qU, 0),
- [iter(
- lnum(1,%qI),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, Q, S)]
- )],
- [iter(
- lnum(1,%qI),
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qU, 0, Q, S)]
- )]
- )]
- )]
- [u(F`CHECK`EXT`TARGET, R, T, 1)]
- [u(F`CHECK`EXT`TARGET, Q, S, 2)]
- -
- &F`EVAL`DICE`CONTESTED #40=
- ifelse(
- lte(%qV, 0),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, R, T)]
- [ifelse(
- lte(%qU, 0),
- [setq(W, 0)][u(F`EVAL`DICE`CHANCE, 0, Q, S)],
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qU, 0, Q, S)]
- )],
- [setq(W, 0)][u(F`EVAL`DICE`ROLL, %qV, 0, R, T)][setq(W, 0)][u(F`EVAL`DICE`ROLL, %qU, 0, Q, S)]
- )
- -
- &F`EVAL`DICE`CHANCE #40=
- [setq(Z, rand(1, v(D`DEFAULT`DICE)))]
- [ifelse(
- eq(%0, 0),
- [setq(%1, [r(%1)]|%qZ:)]
- [switch(
- %qZ,
- 1, setq(%2, [r(%2)]|-1),
- 10, [setq(W, 1)][u(F`EVAL`DICE`CHANCE, inc(%0), %1, %2)],
- setq(%2, [r(%2)]|0)
- )],
- [setq(%1, [r(%1)]%b%qZ)]
- [switch(
- %qZ,
- 10, [setq(W, inc(%qW))][u(F`EVAL`DICE`CHANCE, inc(%0), %1, %2)],
- setq(%2, [r(%2)]|%qW)
- )]
- )]
- -
- &F`EVAL`DICE`ROLL #40=
- [setq(Z,
- sort(
- iter(
- lnum(1, %0),
- rand(1, v(D`DEFAULT`DICE))
- )
- )
- )]
- [ifelse(
- eq(%1, 0),
- [setq(%2, [r(%2)]|%qZ:)],
- [setq(%2, [r(%2)]%b%qZ)]
- )]
- [setq(Y, 0)]
- [iter(
- %qZ,
- u(F`EVAL`DICE`SINGLE, itext(0), %1, %2, W)
- )]
- [ifelse(
- %qY,
- u(F`EVAL`DICE`ROLL, %qY, inc(%1), %2, %3),
- [setq(%3, [r(%3)]|%qW)]
- )]
- -
- &F`EVAL`DICE`SINGLE #40=
- [if(
- gte(%0, %q5),
- setq(%3, inc(r(%3)))
- )]
- [if(
- gte(%0, %q4),
- setq(Y, inc(%qY))
- )]
- [if(
- and(
- lt(%0, %q5),
- eq(%1, 0),
- %q6
- ),
- setq(Y, inc(%qY))
- )]
- [if(
- and(
- eq(%0, 1),
- gt(r(%3), 0),
- %q7
- ),
- setq(%3, dec(r(%3)))
- )]
- -
- ---------------PARSE TO SHOW LIST---------------
- -
- &F`PARSE`SHOWLIST #40=
- [setq(L, %#)]
- [if(
- pos(=, %0),
- setq(X, mid(%0, pos(=, %0), strlen(%0)))
- )]
- [ifelse(
- strlen(trim(%qX)),
- setq(Z,
- iter(
- %qX,
- if(
- isdbref(setr(Y, num(*[trim(itext(0))]))),
- setq(L, %qL%b%qY)
- ),
- %,
- )
- ),
- setq(L, lcon(loc(%#), CONNECT))
- )]
- -
- ---------------OUTPUTS---------------
- -
- &F`BUILD`OUTPUT #40=
- [setq(Z, u(F`EVAL`DICE))]
- [setq(O, Flags: [trim(%qF)]%rDice: %qD %(%qV%)%rVersus Dice: %qC %(%qU%)%rRoll: [rest(%qR, |)]%rSucc: [rest(%qT,
- |)]%rVRoll: [rest(%qQ, |)]%rVSucc: [rest(%qS, |)]%rNote: [trim(%qN)]%rTo: %qL | [iter(%qL,name(##),%b,%,%b)])]
- -
- &F`ADD`TO`DICELOG #40=
- [setq(Z,)]
- -
- &F`SEND`CHAN #40=
- [setq(Z,)]
- -
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement