@@ .-----. ____ @@ / o /| /\ \ @@ /_____/o| /o \ o \ @@ | o | | /o o \___\ @@ | o |o/ \ o /o / @@ | o |/ \ / o / @@ '-----' jgs \/__o/ @@ @@ @@ Craps 1.4 by Javelin @@ Released under the same license terms as the PennMUSH server. @@ (I.e. Artistic License) @@ @@ This code is in mpp format. It requires a recent Penn 1.7.3 server @@ that supports @switch/notify (1.7.3p14 or later) and @break. @@ @@ This code provides a craps table. Features include: @@ * Automated croupier calls rolls and handles chips @@ * The pass, don't pass, come, don't come, odds on all four, and @@ place bets are supported, as well as the field bet, @@ "hard ways", big 6/big 8, and proposition bets, including the horn bet. @@ * Pretty table display, including showing what's bet on @@ @@ A few things are slightly different than the casino: @@ * Winnings are rounded off, we don't force horn bets to be multiples of 4 @@ * No buy bets or hop bets are supporetd @@ * Odds on a come bet are always working, even after a point is made @@ @@ Currently assumes that you track player chips by using a bank object @@ (dbref in table/BANK) that records chips in attributes named by @@ player dbrefs. You'll probably have to modify these attributes @@ to work with your money system: @@ If you prefer a female croupier, set SUBJ to 'She' @create Craps table @DESCRIBE Craps table= You glance from the well-coiffed croupier down to the felt of the table. %r[u(table,%#)]%r[switch(v(shooter),,No one has the dice. Type 'pick up dice' to pick them up.%r,[name(v(shooter))] has the dice.%b)]Type 'bet on ' to bet.%rType 'use table' for full instructions. &table craps table= %b/--+---+[repeat(-,6)][iter(4 5 6 8 9 10,+-----, ,)]+%b%b.-----.[space(4)]____%b%b%b%r | %b | D | DONT [iter(4 5 6 8 9 10,|[center(u(betmarks,dontcome##,4,%0),5)], ,)]|%b/%b%bo%b%b/|%b%b%b/\\%b%b%b\\%b%b%r | P | O | COME |[iter(4 5 6 8 9 10,center(u(pointon,##),5), ,|)]|/_____/o|%b%b/o%b\\%bo%b\\%b%r | A | N | [u(betmarks,dontcome,4,%0)] |[iter(4 5 6 8 9 10,center(## [u(betmark,##,%0)],5), , |)]||%bo%b%b%b|%b|%b/o%bo%b\\___\\%r | S | T | %b[u(oddsmark,dontcome,%0)] %b |[iter(4 5 6 8 9 10,center(u(betmarks,come##,4,%0),5), ,|)]||%b%bo%b%b|o/%b\\%bo%b%b/o%b%b/%r | S | P |[repeat(_,6)][iter(4 5 6 8 9 10,|[center(u(oddsmarks,come##,4,%0,_),5,_)], ,)]||%b%b%bo%b|/%b%b%b\\%b%b/%bo%b/%b%r | %b | A |[space(40)]|%b%b'-----'%bjgs%b\\/__o/%b%b%r | L | S |[space(14)]C O M E[space(19)]+-------+-------+[space(6)]%r | I | S |[center(trim(u(betmarks,come,30,%0)),40)]|%b%b%b[center(Seven,9)]%b[u(betmark,seven,%0)]%b|[space(6)]%r | N |___|[repeat(_,40)]+-------+-------+[space(6)]%r | E | %b%b \\[space(4)][iter(2 3 4 9 10 11 12,center(##,4), ,*)] | 3-3 [u(betmark,hard6,%0)] | 5-5 [u(betmark,hard10,%0)] |[space(6)]%r | %b | %b[u(betmark,big6,%0)]%b \\[space(3)][center(FIELD,34)] | 4-4 [u(betmark,hard8,%0)] | 2-2 [u(betmark,hard4,%0)] |[space(6)]%r | %b | %b6%bB \\[space(3)][center(trim(u(betmarks,field,20,%0)),33)] | 1-1 [u(betmark,crap2,%0)] | 6-6 [u(betmark,crap12,%0)] |[space(6)]%r | %b | %b%bI%b%b \\[repeat(_,36)]|[center(\[[u(betmark,horn,%0)]\],15)]|[space(6)]%r | %b \\ %bG%b8%b[u(betmark,big8,%0)] |[space(10)]Don't Pass Box%b%b[u(betmarks,dontpass,7,%0)][space(2)]| 1-2 [u(betmark,crap3,%0)] | 6-5 [u(betmark,eleven,%0)] |[space(6)]%r \\ %b%b \\[repeat(_,7)]|[repeat(_,26)][u(oddsmarks,dontpass,7,%0,_)][repeat(_,2)]+-------+-------+[space(6)]%r %b\\[space(18)]PASS LINE%b%b[u(betmarks,pass,12,%0)][space(6)]|%b%b%b[center(Any Craps,9)]%b[u(betmark,anycraps,%0)]%b|[space(6)]%r %b%b\\[repeat(_,28)][u(oddsmarks,pass,12,%0,_)][repeat(_,6)]|_______________|[space(6)] @@ u(betmark,bet,%#,optional char) &isyourbet craps table=[words(lattr(me/BET-%1-%0))] &isbet craps table=[words(lattr(me/BET-*-%0))] &betmark craps table=[switch(1,t(u(isyourbet,%0,%1)),ansi(hg,$),t(u(isbet,%0)),$,mid(%2%b,0,1))] &oddsmark craps table=[u(betmark,%0ODDS,%1,%2)] @@ u(betmarks,bet,length,%#,optional char) &betmarks craps table=[ljust([switch(1,t(u(isyourbet,%0,%2)),ansi(hg,$),t(u(isbet,%0)),$)][repeat($,min(dec(%1),max(0,dec(u(isbet,%0)))))],%1,mid(%3%b,0,1))] &oddsmarks craps table=[u(betmarks,%0ODDS,%1,%2,%3)] &pointon craps table=[switch(v(point),%0,ON)] @set craps table=monitor &cmd_shooterleft craps table=^^.* has (left|disconnected)\.$: @switch %#=[v(shooter)], { &SHOOTER me; @emit The croupier notes %N's departure and waits for someone else to pick up the dice.} @set craps table/cmd_shooterleft=regexp @use Craps table= CRAPS by Javelin%r [wrap( [space(2)]Craps is a game of dice that takes place in rounds. The first roll of the round is the "come out". If the come out roll is a 2\, 3\, 7\, 11\, or 12\, the round is over. Otherwise\, the number rolls is the "point" and the player continues to roll the dice until the point is rolled again or a 7 is rolled. ,76,76,%r[space(2)])]%r COMMANDS:%r * bet on %r * bet odds on \[pass, dontpass, come<#>, or dontcome<#>\]%r * roll dice%r * pass dice%r * pick up dice%r BET TYPES: (type 'what is ' for an explanation)%r * On a comeout roll: pass, dontpass%r * After comeout: come, dontcome, 4, 5, 6, 8, 9, 10, big6, big8, hard4, hard6, hard 8, hard10%r * Any time: field, crap2, crap3, crap12, anycraps, seven, eleven, horn &cmd_whatis craps table=$what is *: @pemit %#=[setq(0,lcstr(%0))][switch(1, t(member(pass dontpass,%q0)), A pass bet is made before a comeout roll. It pays 1:1 if the comeout is a 7 or 11\, or if shooter makes the point later.%r A dontpass bet is the opposite. It pays 1:1 if the comeout is a 2 or 3\, or if a 7 is rolled before a point is made. If the comeout is a 12\, your money is returned., t(member(come dontcome,%q0)), A come bet is the same as a pass bet\, but is made after a comeout roll. It either pays off on a 7 or 11\, loses on a 2\, 3\, or 12\, or establishes a "come-point" that must be made before the next 7 is rolled.%r A dontcome bet is the "come" version of a dontpass bet., t(member(4 5 6 8 9 10,%q0)), A "place bet" is a bet on a number (4\, 5\, 6\, 8\, 9\, or 10) made after a comeout roll. It wins if the number is rolled before a 7. It pays 9:5 if the bet is on 4 or 10\, 7:5 if it's on 5 or 9\, and 7:6 if it's on 6 or 8., strmatch(%q0,big*), The big6 pays 1:1 if a 6 is rolled before a 7.%r The big8 pays 1:1 if an 8 is rolled before a 7., strmatch(%q0,hard*), The "hard ways" bets (hard4, hard6, hard8, and hard10) win when the given number is rolled as a pair of dice of equal value (i.e.\, a hard6 is a roll of two 3's) before either a 7 is rolled or the given number is rolled any other way. It pays 7:1 if the bet is on hard4 or hard10\, and 9:1 on hard6 or hard8., not(comp(%q0,field)), The field bet wins if a 2\, 3\, 4\, 9\, 10\, 11\, or 12 is rolled on the next roll. It pays 2:1 if a 2 or 12 is rolled on the next roll\, and 1:1 if one of the other field numbers is rolled., strmatch(%q0,*crap*), The crap2\, crap3\, and crap12 bets win if a 2\, 3\, or 12\, respectively\, is rolled on the next roll. It pays 30:1 for bets on crap2 and crap12\, and 15:1 for bets on crap3.%r The anycraps bet wins if any of those numbers are rolled on the next roll\, and pays 7:1., strmatch(%q0,*even), The seven bet wins if a 7 is rolled on the next roll\, and pays 4:1.%rThe eleven bet wins if an 11 is rolled on the next roll\, and pays 15:1., not(comp(%q0,horn)), The horn bet wins if 2\, 3\, 11\, or 12 is rolled on the next roll. If the roll is a 2 or 12\, this bet pays 6:1. If it's a 3 or 11\, this bet pays 3:1., not(comp(%q0,odds)), An odds bet is an additional wager of the same amount as an existing pass\, dontpass\, come\, or dontcome bet\, made once a point (or come-point) has been established. They win or lose with their corresponding bet. Pass and come odds bets pay 6:5 if the point is 6 or 8\, 3:2 if the point is 5 or 9\, and 2:1 if the point is 4 or 10.%rDontpass and dontcome odds bets pay 5:6 if the point is 6 or 8\, 2:3 if the point is 5 or 9\, and 1:2 if the point is 4 or 10., I'm sorry but I've never heard of that bet.)] @@ Attributes are named BET-- and contain amount bet @@ Bets resolved on the next roll: field, crap, any craps, seven, eleven, horn @@ Resolves at next comeout: pass, dontpass, place bets, big 6/8 @@ We don't know when: hard ways, come/dontcome @@ Bets that can only be made on the come-out &cmd_bet_comeout craps table= $^bet (\d+) on (pass|dontpass): @break [switch(0, not(comp(v(status),comeout)), 1[pemit(%#,That bet can only be made on a come-out roll.)], gte(u(money,%#),%1), 1[pemit(%#,You can not afford that bet.)], lte(v(minimum),%1), 1[pemit(%#,The table minimum is [v(minimum)].)], 0)]; @emit %N places [u(count,%1)] on [switch(%2,pass,the pass line,the don't pass box)].; &%# [v(bank)] = [sub(u(money,%#),%1)]; &bet-%#-%2 me=[add(default(me/bet-%#-%2,0),%1)] @set craps table/cmd_bet_comeout=regexp @@ Bets that can only be made after the comeout &cmd_bet_notcomeout craps table= $^bet (\d+) on ([45689]|10|big[68]|hard[468]|hard10): @break [null(regmatch(%2,\\d+,1))][switch(0, comp(v(status),comeout), 1[pemit(%#,That bet can only be made after a come-out roll.)], gte(u(money,%#),%1), 1[pemit(%#,You can not afford that bet.)], lte(v(minimum),%1), 1[pemit(%#,The table minimum is [v(minimum)].)], 0)]; @emit %N places [u(count,%1)] on [switch(%2,big*,the big %q1,hard*,%q1 the hard way,%q1)].; &%# [v(bank)] = [sub(u(money,%#),%1)]; &bet-%#-%2 me=[add(default(me/bet-%#-%2,0),%1)] @set craps table/cmd_bet_notcomeout=regexp @@ Come and don't come bets @@ These are tricky. We need to set them as 'pending' bets and @@ see what happens on the next roll before we know what they'll really @@ be called. &cmd_bet_come craps table= $^bet (\d+) on (come|dontcome): @break [switch(0, comp(v(status),comeout), 1[pemit(%#,That bet can only be made after a come-out roll.)], gte(u(money,%#),%1), 1[pemit(%#,You can not afford that bet.)], lte(v(minimum),%1), 1[pemit(%#,The table minimum is [v(minimum)].)], 0)]; @emit %N places [u(count,%1)] on [switch(%2,come,come,dontcome,don't come)].; &%# [v(bank)] = [sub(u(money,%#),%1)]; &bet-%#-%2 me=[add(default(me/bet-%#-%2,0),%1)] @set craps table/cmd_bet_come=regexp @@ Bets that can be made any time &cmd_bet_any craps table= $^bet (\d+) on (field|crap[23]|crap12|anycraps|seven|eleven|horn): @break [null(regmatch(%2,\\d+,1))][switch(0, gte(u(money,%#),%1), 1[pemit(%#,You can not afford that bet.)], lte(v(minimum),%1), 1[pemit(%#,The table minimum is [v(minimum)].)], 0)]; @emit %N places [u(count,%1)] on [switch(%2,field,the field, crap*,craps %q1,anycraps,any craps,seven,seven,eleven,eleven,horn, the horn)]; &%# [v(bank)] = [sub(u(money,%#),%1)]; &bet-%#-%2 me=[add(default(me/bet-%#-%2,0),%1)] @set craps table/cmd_bet_any=regexp @@ Odds bets, after comeout, by someone who has a pass/dont/come/dont bet @@ We need to find out if this player has such a bet in which the odds @@ bet, if present, is less than the total bet. &cmd_bet_odds craps table= $^bet odds on (pass|dontpass|come\d+|dontcome\d+): @break [switch(0, not(and(strmatch(%1,*pass),not(comp(v(status),comeout)))), 1[pemit(%#,That bet can only be made after a come-out roll.)], hasattr(me,BET-%#-%1), 1[pemit(%#,You must have a bet on %1 before you can bet odds.)], [setq(1,sub(v(BET-%#-%1),v(BET-%#-%1ODDS)))][gt(%q1,0)], 1[pemit(%#,You've already placed odds on that bet.)], gte(u(money,%#),%q1), 1[pemit(%#,You can not afford that bet.)], lte(v(minimum),%q1), 1[pemit(%#,The table minimum is [v(minimum)].)], 0)]; @emit %N places [u(count,%q1)] as an odds bet on [switch(%1,pass,the pass line,dontpass,the don't pass box, u(prettyname,%1))].; &%# [v(bank)] = [sub(u(money,%#),%q1)]; &bet-%#-%1ODDS me=[v(BET-%#-%1)] @set craps table/cmd_bet_odds=regexp &bank craps table=#255 &ok_to_bet craps table=1 @startup craps table=@drain me; @notify me; @drain me/RESOLVE; @tr me/reset &reset craps table=$+clear: @wipe me/bet-*; &status me=comeout; &point me &minimum craps table=4 &roll craps table=[die(1,6)] [die(1,6)] &betname craps table=[comp(last(%0,-),last(%1,-))] &prettyname craps table=[switch(%0,ANYCRAPS,any craps, lcstr(regedit(edit(%0,DONT,don't%b,ODDS,%bODDS),(\\D)(\\d),$1 $2)))] @@ Odds for various bets &odds-horn-2 craps table=7.75 &odds-horn-12 craps table=7.75 &odds-horn craps table=4 &odds-anycraps craps table=8 &odds-crap2 craps table=31 &odds-crap12 craps table=31 &odds-crap3 craps table=16 &odds-field craps table=2 &odds-field-2 craps table=3 &odds-field-12 craps table=3 &odds-seven craps table=5 &odds-eleven craps table=16 &odds-4 craps table=2.8 &odds-10 craps table=2.8 &odds-5 craps table=2.4 &odds-9 craps table=2.4 &odds-6 craps table=2.16667 &odds-8 craps table=2.16667 &odds-big6 craps table=2 &odds-hard4 craps table=8 &odds-hard10 craps table=8 &odds-hard6 craps table=10 &odds-hard8 craps table=10 &odds-pass craps table=2 &odds-come craps table=2 &odds-dontpass craps table=2 &odds-dontpass-12 craps table=1 &odds-dontcome craps table=2 &odds-dontcome-12 craps table=1 &odds-passodds-6 craps table=2.2 &odds-passodds-8 craps table=2.2 &odds-passodds-5 craps table=2.5 &odds-passodds-9 craps table=2.5 &odds-passodds-4 craps table=3 &odds-passodds-10 craps table=3 &odds-dontpassodds-4 craps table=1.5 &odds-dontpassodds-10 craps table=1.5 &odds-dontpassodds-5 craps table=1.6667 &odds-dontpassodds-9 craps table=1.6667 &odds-dontpassodds-6 craps table=1.8333 &odds-dontpassodds-8 craps table=1.8333 &odds-comeodds-6 craps table=2.2 &odds-comeodds-8 craps table=2.2 &odds-comeodds-5 craps table=2.5 &odds-comeodds-9 craps table=2.5 &odds-comeodds-4 craps table=3 &odds-comeodds-10 craps table=3 &odds-dontcomeodds-4 craps table=1.5 &odds-dontcomeodds-10 craps table=1.5 &odds-dontcomeodds-5 craps table=1.6667 &odds-dontcomeodds-9 craps table=1.6667 &odds-dontcomeodds-6 craps table=1.8333 &odds-dontcomeodds-8 craps table=1.8333 @@ getodds: %0 - bet name, %1 - number rolled @@ Only applies to bets above. &getodds craps table=[setq(0,regediti(%0,come\\d+,come))][switch(%q0,dont*odds, v(ODDS-%q0-[v(oldpoint)]), first([v(ODDS-%q0-%1)] [v(ODDS-%q0)]))] @@ winnings: %0 - bet attribute name, %1 - number rolled &winnings craps table= [round(mul(ulocal(getodds,extract(%0,3,1,-),%1),first(v(%0))),0)] &subj craps table=He &cmd_pick_up craps table=$pick up dice: @break [switch(1,nearby(me,v(SHOOTER)), 1[pemit(%#,Someone else has the dice.)], 0)]; &SHOOTER me=%#; @emit %N picks up the dice. "New shooter," announces the croupier. &cmd_pass craps table=$pass dice: @break [switch(0, not(comp(%#,v(SHOOTER))), 1[pemit(%#,You don't have the dice now.)], not(comp(v(status),comeout)), 1[pemit(%#,Don't pass the dice until the end of a round.)], 0)]; &SHOOTER me; @emit %N puts down the dice. The croupier waits for someone to pick them up. &cmd_roll craps table=$roll dice: @break [switch(0, not(comp(%#,v(SHOOTER))), 1[pemit(%#,You don't have the dice now.)], hasattr(me,BET-%#-PASS), 1[pemit(%#,You must bet on the pass line before you can roll the dice.)], 0)]; @wait me={ @emit %N rolls the dice: [setr(0,die(1,6))] [setr(1,die(1,6))]; @emit The croupier announces, "[setr(2,add(%q0,%q1))], [first(shuffle(v(NAME-[min(%q0,%q1)]-[max(%q0,%q1)]),|),|)]."; @switch/first [v(status)]:%q2= comeout:2, {&WINPAT me=DONTPASS|CRAP2|FIELD|ANYCRAPS|HORN; @emit The croupier collects the dice and waits for someone else to pick them up.; &shooter me}, comeout:3, {&WINPAT me=DONTPASS|CRAP3|FIELD|ANYCRAPS|HORN; @emit The croupier collects the dice and waits for someone else to pick them up.; &shooter me}, comeout:7, {&WINPAT me=PASS|SEVEN|DONTCOME\\\\d+}, comeout:11, {&WINPAT me=PASS|ELEVEN|HORN|FIELD}, comeout:12, {&WINPAT me=DONTPASS|CRAP12|ANYCRAPS|HORN|FIELD; @emit The croupier collects the dice and waits for someone else to pick them up.; &shooter me}, comeout:*, { &WINPAT me=[switch(member(4 9 10,%q2),0,,FIELD|)]COME%q2; @emit The croupier flips the puck onto the %q2 point.; &point craps table=%q2; &status craps table=point }, point:7, { &WINPAT me=DONTPASS(ODDS)?|SEVEN|DONTCOME\\\d+|COME; @wipe me/BET-*-DONTCOME; @wipe me/BET-*-COME4*; @wipe me/BET-*-COME5*; @wipe me/BET-*-COME6*; @wipe me/BET-*-COME8*; @wipe me/BET-*-COME9*; @wipe me/BET-*-COME10*; &OLDPOINT me=[v(point)]; @emit The croupier says, "Seven out, line in." [v(subj)] collects the dice and waits for someone else to pick them up.; &status me=comeout; &shooter me; &point me }, point:11, { &WINPAT me=COME|ELEVEN|HORN|FIELD; @wipe me/BET-*-DONTCOME }, point:2, { &WINPAT me=DONTCOME|CRAP2|HORN|FIELD|ANYCRAPS; @wipe me/BET-*-COME }, point:3, { &WINPAT me=DONTCOME|CRAP3|HORN|FIELD|ANYCRAPS; @wipe me/BET-*-COME }, point:12, { &WINPAT me=DONTCOME|CRAP12|HORN|FIELD|ANYCRAPS; @wipe me/BET-*-COME }, point:*, { @emit [switch(%q2,v(point),The croupier says\, "Point made.")]; &status [switch(%q2,v(point),me,#-1)]=comeout; &WINPAT me=%q2|COME%q2[switch(member(4 9 10,%q2),0,,|FIELD)][switch(%q2,v(point),|PASS|PASSODDS)][if(eq(%q0,%q1),|HARD%q2|BIG%q2)][switch(%q2,2,|ANYCRAPS|CRAP2|HORN,3,|ANYCRAPS|CRAP3|HORN,11,|ELEVEN|HORN,12,|ANYCRAPS|CRAP12|HORN)]; &point [switch(%q2,v(point),me,#-1)]; @wipe [if(eq(%q0,%q1),#-1,me)]/BET-*-HARD%q2; @wipe me/BET-*-DONTCOME*%q2 }; @wait 0={@dol [regraball(sortby(BETNAME,lattr(me/BET-*)),-([s(\[v(WINPAT)\])])(ODDS)?$)] = { @emit [v(subj)] glances at [name(setr(4,extract(##,2,1,-)))], and slides over [u(count,u(winnings,##,%q2))]. "[capstr(u(prettyname,extract(##,3,1,-)))] wins."; &%q4 [v(bank)] = [add(u(money,%q4),u(winnings,##,%q2))]; &## me }; @dol [lattr(me/BET-*-COME)]={&##%q2 [switch(member(4 5 6 8 9 10,%q2),0,#-1,me)]=[add(default(me/##%q2,0),v(##))]; &## me}; @dol [lattr(me/BET-*-DONTCOME)]={&##%q2 me=[add(default(me/##%q2,0),v(##))]; &## me}; @wait 0={@switch [v(status)]=comeout, {@wipe me/BET-*-HORN; @wipe me/BET-*-FIELD; @wipe me/BET-*-*CRAP*; @wipe me/BET-*-*EVEN; @wipe me/BET-*-PASS*; @wipe me/BET-*-DONTPASS*; @wipe me/BET-*-BIG*; @wipe me/BET-*-HARD*; @wipe me/BET-*-4; @wipe me/BET-*-5; @wipe me/BET-*-6; @wipe me/BET-*-8; @wipe me/BET-*-9; @wipe me/BET-*-10}, {@wipe me/BET-*-HORN; @wipe me/BET-*-FIELD; @wipe me/BET-*-*CRAP*; @wipe me/BET-*-*EVEN}; @notify me }} } @@ Fancy bet names, dice in sorted order &name-1-1 craps table=a pair of aces in the wrong places|snake eyes|craps|double in the bubble|twice in the rice|eleven in a shoe store|two bad boys from Illinois|aces|to me, they look like mice &name-1-2 craps table=an ace caught a loose deuce|craps|ace-deuce|small ace deuce, can't produce &name-1-3 craps table=Little Joe|ace trey, the country way &name-1-4 craps table=little Phoebe|we got the fever|handy Andy &name-1-5 craps table=sixie from Dixie &name-1-6 craps table=six ace, end of the race|front line winner, back line skinner|six one, you're all done &name-2-2 craps table=a ballerina special|the hard way &name-2-3 craps table=after five, the field's alive|fiver, fiver, racetrack driver &name-2-4 craps table=Jimmie Hicks &name-2-5 craps table=five two, you're all through|up pops the devil &name-2-6 craps table=catching eight and feeling great &name-3-3 craps table=the hard way|a Brooklyn forest|pair o'treys, waiter's roll &name-3-4 craps table=seven's a bruiser, the front line's a loser &name-3-5 craps table=eighter from decatur &name-3-6 craps table=Nina from Pasadena|Nina at the Marina|center field &name-4-4 craps table=the hard way|square pair|a square pair, like mother and dad|the windows &name-4-5 craps table=Jesse James|ocean liner niner &name-4-6 craps table=big one on the end &name-5-5 craps table=the hard way|puppy paws|pair o'roses|pair of sunflowers &name-5-6 craps table=Yo|Yo 'leven|Yo Levine the dancing queen|six five, no jive &name-6-6 craps table=a hobo's delight on a cold and rainy night|boxcars|midnight|atomic craps|all the spots we got|outstanding in your field|triple dipple, in the lucky ducky|double saw on boxcars &status craps table=comeout &money craps table=[default([v(bank)]/%0,0)] &count craps table=[switch(%0,1,a chip,%0 chips)] @dol lattr(craps table)=@switch ##=cmd_*,,semaphore,,@set craps table/##=no_command