ROOM ID 278 NOCYBORGS NAME "Bingo!" PICT "bingb3.gif" PICTURE ID 1 NAME "otp9.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 2 NAME "bcd2.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 3 NAME "bngdt.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 4 NAME "bcd1.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 5 NAME "bcd3.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 6 NAME "bcd4.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 7 NAME "bcd5.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 8 NAME "bcd6.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 9 NAME "bcd7.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 10 NAME "bcd8.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 11 NAME "bcd9.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 12 NAME "bcd10.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 13 NAME "bcd11.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 14 NAME "bcd12.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 15 NAME "bcd13.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 16 NAME "bcd14.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 17 NAME "arrowll.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 18 NAME "arrowrr.gif" TRANSCOLOR 0 ENDPICTURE SPOT ID 13 DONTMOVEHERE OUTLINE 154,89 355,89 356,292 155,292 LOC 256,192 PICTS 1,0,0 4,0,0 2,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 12,0,0 13,0,0 14,0,0 15,0,0 16,0,0 ENDPICTS SCRIPT ON SELECT { lnc GLOBAL mde GLOBAL [ 1 15 225 3375 50625 ] pwr = [ [ 534315 599631 644714 661357 558784 ] ;bcd1.gif [ 35363 77454 465818 330912 749273 ] ;bcd2.gif [ 440847 617804 492797 191784 570000 ] ;bcd3.gif [ 58268 327464 745984 501822 399249 ] ;bcd4.gif [ 643478 78461 138589 592756 625922 ] ;bcd5.gif [ 391152 347765 128434 92597 57444 ] ;bcd6.gif [ 396718 521052 361211 107264 91038 ] ;bcd7.gif [ 356754 631668 330917 285765 601619 ] ;bcd8 [ 563391 158526 27097 161950 405868 ] ;bcd9 [ 204681 260110 131810 142643 620672 ] ;bcd10 [ 59573 555356 455665 514096 528416 ] ;bcd11 [ 636115 646469 364586 7053 366601 ] ;bcd12 [ 458056 500530 263464 286204 20540 ] ;bcd13 [ 547634 356768 712193 158722 234211 ] ;bcd14 ] crds = { { "!BINGO!" SAY "0B1I2N3G4O" bng = crds ME GETSPOTSTATE 1 - GET crd = "¡ " wns = { crd mde 1 - GET dta = bng mde 1 - ITOA "(.)" + GREPSTR POP "$1" GREPSUB lt = 0 nt = { wns { "*Free" } { lt dta dta 15 / 15 * - 1 + mde 1 - 15 * + ITOA + } mde 3 == dta 224 > dta 3375 < * * IFELSE + " " + wns = 15 dta /= nt ++ } { nt 5 < } WHILE } mde 6 < IF { 0 cl = pwr mde 6 - GET rw = { bng cl ITOA "(.)" + GREPSTR POP wns { "*Free" } { "$1" GREPSUB crd cl GET rw / DUP 15 / 15 * - 1 + cl 15 * + ITOA + } cl 2 == rw 225 == AND IFELSE + " " + wns = cl ++ } { cl 5 < } WHILE } mde 5 > mde 11 < AND IF { 0 cl = { bng cl ITOA "(.)" + GREPSTR POP pwr [ { cl } { 4 cl - } ] mde 11 - GET EXEC GET rw = wns { "*Free" } { "$1" GREPSUB crd cl GET rw / DUP 15 / 15 * - 1 + cl 15 * + ITOA + } cl 2 == rw 225 == AND IFELSE + " " + wns = cl ++ } { cl 5 < } WHILE } mde 10 > IF wns SAY -1 mde = } { 0 mde = } mde 0 > IFELSE } { { MOUSEPOS y = x = x 156 - 40 / x = y 92 - 40 / y = x 5 * y + 1 + sp = crds ME GETSPOTSTATE 1 - GET cdinf = cdinf x GET clinf = clinf pwr y GET / clinf = clinf clinf 15 / 15 * - x 15 * + 1 + ncl = { { 1 sp SETSPOTSTATELOCAL } { "Sorry, that wasn't the last number called." LOCALMSG } lnc ncl == IFELSE } sp 13 == NOT IF } ME GETSPOTSTATE IF } mde IFELSE { "¡r" SAY 20 ME SETSPOTSTATELOCAL } ME GETSPOTSTATE NOT 26 GETSPOTSTATE AND IF } ON OUTCHAT { { "" CHATSTR = } CHATSTR "^¡" GREPSTR IF { "" CHATSTR = 267 GOTOROOM } CHATSTR "sounds" == IF { "¡a" CHATSTR = 0 26 SETSPOTSTATE } CHATSTR "reset" == ISWIZARD AND IF } ;~MediaList~;bingo ON INCHAT { lnc GLOBAL numc GLOBAL { { "!$1$2" GREPSUB CHATSTR = "$2" GREPSUB ATOI lnc = { "bingo$1" GREPSUB SOUND { lnc 10 / 10 * tn = "\"bingo" tn ITOA + "\" SOUND" + STRTOATOM 60 ALARMEXEC { "\"bingo" lnc tn - ITOA + "\" SOUND" + STRTOATOM 120 ALARMEXEC } lnc tn - IF } { "\"bingo" lnc ITOA + "\" SOUND" + STRTOATOM 60 ALARMEXEC } lnc 19 > IFELSE } 31 GETSPOTSTATE IF } CHATSTR "^¡([BINGO])([0-9]+)$" GREPSTR IF } ME GETSPOTSTATE 26 GETSPOTSTATE WHOCHAT == 26 GETSPOTSTATE NOT OR AND IF { "!$1" GREPSUB CHATSTR = } CHATSTR "^¡([BINGO].*)$" GREPSTR IF { { 0 lnc = { cr ++ 0 cr SETSPOTSTATELOCAL } { cr 25 < } WHILE "" CHATSTR = { 0 26 SETSPOTSTATE } 26 GETSPOTSTATE WHOME == IF } CHATSTR "¡a" == IF } ME GETSPOTSTATE WHOCHAT WHOME == OR 26 GETSPOTSTATE WHOCHAT == 26 GETSPOTSTATE NOT OR 26 GETSPOTSTATE WHONAME "." GREPSTR NOT OR AND IF { "$1" GREPSUB CHATSTR = { "$1" GREPSUB pb = 1 vld = { "$1$4" GREPSUB pb = "$2$3" GREPSUB lt = { [ "or " "Sorry, I never called " ] vld GET lt + SAY 0 vld = } numc "=$3=" GREPSUB GREPSTR NOT IF } { pb "^(.*)([BINGO])([0-9]+) (.*)$" GREPSTR } WHILE { ")applause !Ladies and Gentlemen, we have a WINNER!" ROOMMSG WHOCHAT WHONAME " has won a " + [ "genuine leopard skin sleeping mask with Victorian lace frill!" "chalk statue of a Polly Parrot!" "pocket protector in perfect condition!" "piece of pumice from Mt. St. Helens!" "pair of pewter bookends!" "horned skull from some unknown mammal!" "matched set of rusty machetes!" "grandmother clock with an upside down face!" "Rubik's cube with custom-designed stickers!" "brass-plated horseshoe!" "20-ft. airhose with attached inner tube!" "socket-wrench set with 4 extra 6 mm ends!" "baby highchair with an attached open can of varnish!" "an old work boot mounted in concrete!" ] DUP LENGTH RANDOM GET + ROOMMSG "" numc = "¡a" SAY } vld IF } WHOME 26 GETSPOTSTATE == IF } CHATSTR "^¡ (.*)$" GREPSTR IF { "" CHATSTR = { crdv GLOBAL plin GLOBAL { { "I already gave you a card." WHOCHAT PRIVATEMSG } { "¡d$1" GREPSUB WHOCHAT PRIVATEMSG "$2" GREPSUB crdv = WHOCHAT WHONAME " has joined the game!" + ROOMMSG plin WHOCHAT ITOA + " " + plin = } plin " " WHOCHAT ITOA " " + + SUBSTR IFELSE } { "Sorry, no more cards are available" WHOCHAT PRIVATEMSG } crdv "^ ([0-9]+)( .*)$" GREPSTR IFELSE } 26 GETSPOTSTATE WHOME == IF } CHATSTR "¡r" == IF { "" CHATSTR = { "$1" GREPSUB ATOI ME SETSPOTSTATELOCAL } ME GETSPOTSTATE 20 == IF } CHATSTR "^¡d([0-9]+)$" GREPSTR IF } ENDSCRIPT ENDSPOT SPOT ID 1 OUTLINE 175,111 177,111 177,113 175,113 LOC 176,112 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 2 OUTLINE 175,151 177,151 177,153 175,153 LOC 176,152 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 3 OUTLINE 175,191 177,191 177,193 175,193 LOC 176,192 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 4 OUTLINE 175,231 177,231 177,233 175,233 LOC 176,232 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 5 OUTLINE 175,271 177,271 177,273 175,273 LOC 176,272 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 6 OUTLINE 215,111 217,111 217,113 215,111 LOC 216,112 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 7 OUTLINE 215,151 217,151 217,153 215,153 LOC 216,152 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 8 OUTLINE 215,191 217,191 217,193 215,193 LOC 216,192 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 9 OUTLINE 215,231 217,231 217,233 215,233 LOC 216,232 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 10 OUTLINE 215,271 217,271 217,273 215,273 LOC 216,272 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 11 OUTLINE 255,111 257,111 257,113 255,113 LOC 256,112 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 12 OUTLINE 255,151 257,151 257,153 255,153 LOC 256,152 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 14 OUTLINE 255,231 257,231 257,233 255,233 LOC 256,232 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 15 OUTLINE 255,271 257,271 257,273 255,273 LOC 256,272 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 16 OUTLINE 295,111 297,111 297,113 295,113 LOC 296,112 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 17 OUTLINE 295,151 297,151 297,153 295,153 LOC 296,152 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 18 OUTLINE 295,191 297,191 297,193 295,193 LOC 296,192 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 19 OUTLINE 295,231 297,231 297,233 295,231 LOC 296,232 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 20 OUTLINE 295,271 297,271 297,273 295,273 LOC 296,272 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 21 OUTLINE 335,111 337,111 337,113 335,113 LOC 336,112 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 22 OUTLINE 335,151 337,151 337,153 335,153 LOC 336,152 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 23 OUTLINE 335,191 337,191 337,193 335,193 LOC 336,192 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 24 OUTLINE 335,231 337,231 337,233 335,233 LOC 336,232 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 25 OUTLINE 335,271 337,271 337,273 335,273 LOC 336,272 PICTS 1,0,0 3,0,0 ENDPICTS ENDSPOT SPOT ID 26 NAME "Caller" DONTMOVEHERE OUTLINE 0,344 64,344 64,383 0,383 LOC 30,364 SCRIPT ON ENTER { { "@256,192 " ME GETSPOTSTATE WHONAME + " has a game of Bingo in progress- click here to join." + LOCALMSG } ME GETSPOTSTATE IF "Script and Graphics by Foxy, ©2000" STATUSMSG "For free distribution only!" LOGMSG } ON SELECT { numc GLOBAL crdv GLOBAL plin GLOBAL { WHOME ME SETSPOTSTATE "=" numc = " " plin = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] aray = aray LENGTH 1 - sp = { 1 sp + RANDOM swp = aray sp GET tp = aray swp GET aray sp PUT tp aray swp PUT sp -- } { sp } WHILE " " crdv = { crdv SWAP ITOA + " " + crdv = } aray FOREACH USERNAME " has just started a game of BINGO!" + ROOMMSG "@256,192 Click here to get a card!" ROOMMSG } { "Sorry, but " ME GETSPOTSTATE WHONAME + " is the caller." + LOCALMSG } ME GETSPOTSTATE NOT IFELSE } ENDSCRIPT ENDSPOT SPOT ID 27 NAME "Call New Number/Repeat Number" DONTMOVEHERE OUTLINE 64,344 256,344 256,383 64,383 LOC 159,363 SCRIPT ON SELECT { numc GLOBAL { { 75 RANDOM 1 + nn = { 75 RANDOM 1 + nn = } { numc "=" nn ITOA + "=" + SUBSTR } WHILE numc nn ITOA + "=" + numc = } MOUSEPOS POP 157 < numc ".." GREPSTR NOT OR IF numc "=([0-9]+)=$" GREPSTR POP "$1" GREPSUB ATOI ln = "0B1I2N3G4O" ln 1 - 15 / ITOA "(.)" + GREPSTR POP "¡$1" GREPSUB ln ITOA + SAY } 26 GETSPOTSTATE WHOME == IF } ENDSCRIPT ENDSPOT SPOT ID 28 NAME "Quit" DONTMOVEHERE OUTLINE 320,344 383,344 383,383 320,383 LOC 353,363 SCRIPT ON SELECT { numc GLOBAL plin GLOBAL crdv GLOBAL "" plin = "" crdv = { "" numc = 0 26 SETSPOTSTATE "¡a" SAY "Sorry, folks, the game's been called off. Check with " USERNAME + " for your refund." + ROOMMSG } 26 GETSPOTSTATE WHOME == 26 GETSPOTSTATE WHONAME "." GREPSTR NOT 26 GETSPOTSTATE AND OR IF } ENDSCRIPT ENDSPOT SPOT ID 29 NAME "Bingo!" DONTMOVEHERE OUTLINE 210,305 300,305 300,342 210,342 LOC 256,325 SCRIPT ON SELECT { mde GLOBAL 0 mde = { 0 np = 1 nr = { cl 5 * nr + GETSPOTSTATE 0 > np += nr ++ } { nr 6 < } WHILE { cl 1 + mde = } np 5 == IF cl ++ } { cl 5 < } WHILE { 0 cl = { 0 np = 0 nr = cl ++ { cl nr 5 * + GETSPOTSTATE 0 > np += nr ++ } { nr 5 < } WHILE { cl 5 + mde = } np 5 == IF } { cl 5 < } WHILE } mde NOT IF { 0 d1 = 0 d2 = 0 cn = { cn 6 * 1 + GETSPOTSTATE 0 > d1 += cn 4 * 5 + GETSPOTSTATE 0 > d2 += cn ++ } { cn 5 < } WHILE { 11 mde = } d1 5 == IF { 12 mde = } d2 5 == IF } mde NOT IF { 13 SELECT mde itoa logmsg } { "Sorry, you don't have a Bingo." LOCALMSG } mde IFELSE } ENDSCRIPT ENDSPOT SPOT ID 30 NAME "Help" DONTMOVEHERE OUTLINE 256,344 320,344 320,384 256,384 LOC 287,364 SCRIPT ON SELECT { "Instructions are in your log" LOCALMSG "To start play, someone becomes the caller by clicking on the CALLER button." LOGMSG "To get a card to play with, click on the space in the middle." LOGMSG "Callers: click the Call New # button to call a new number, or the Repeat # button to repeat the last one said." LOGMSG "Click the horn icon to hear the numbers being called, or to turn sounds off." LOGMSG "Players: mark your card by clicking on the appropriate square." LOGMSG "Note that you can ONLY click the square FOR THE LAST NUMBER CALLED! Be alert!" LOGMSG "When you see that you have a Bingo marked, click the BINGO! button." LOGMSG "Callers, don't go too fast, give the players a chance to keep up." LOGMSG "The caller may end the game at any time by clicking on quit. " LOGMSG "No matter how desirable they sound, the prizes you win are not real." LOGMSG "IF YOU DON'T HAVE THE SOUNDS, SAY \"sounds\" TO GO TO THE SOUNDS DOWNLOAD ROOM BEFORE TURNING THEM ON!" LOGMSG { "Wizards can say reset to reset the game." LOGMSG } ISWIZARD IF } ENDSCRIPT ENDSPOT SPOT ID 31 DONTMOVEHERE OUTLINE 384,345 430,345 430,383 384,383 LOC 405,365 SCRIPT ON SELECT { ME GETSPOTSTATE NOT ME SETSPOTSTATELOCAL { "Sounds are now on. If you haven't already, say 'sounds' to go get them." LOCALMSG } { "Sounds are Off." LOCALMSG } ME GETSPOTSTATE IFELSE } ENDSCRIPT ENDSPOT DOOR ID 32 DONTMOVEHERE DEST 340 OUTLINE 7,6 63,6 63,28 7,28 LOC 33,17 PICTS 17,0,0 ENDPICTS ENDDOOR DOOR ID 33 DONTMOVEHERE DEST 1300 OUTLINE 450,4 505,4 505,24 450,24 LOC 479,14 PICTS 18,0,0 ENDPICTS SCRIPT ON INCHAT { nDoIt GLOBAL nDoIt EXEC } ON ENTER { { CLEARLOOSEPROPS PAINTCLEAR } NBRROOMUSERS 2 < IF } ENDSCRIPT ENDDOOR ENDROOM