ROOM
ID 127
NOPAINTING
NOCYBORGS
NAME "*Nouveau* Scrabble"
PICT "sboard.gif"
PICTURE ID 3 NAME "n0.gif" ENDPICTURE
PICTURE ID 4 NAME "n1.gif" ENDPICTURE
PICTURE ID 5 NAME "n3.gif" ENDPICTURE
PICTURE ID 6 NAME "n4.gif" ENDPICTURE
PICTURE ID 7 NAME "n5.gif" ENDPICTURE
PICTURE ID 8 NAME "n6.gif" ENDPICTURE
PICTURE ID 9 NAME "n7.gif" ENDPICTURE
PICTURE ID 10 NAME "n8.gif" ENDPICTURE
PICTURE ID 11 NAME "n9.gif" ENDPICTURE
PICTURE ID 12 NAME "n2.gif" ENDPICTURE
PICTURE ID 21 NAME "blank.gif" TRANSCOLOR 0 ENDPICTURE
PICTURE ID 22 NAME "sr1.gif" ENDPICTURE
PICTURE ID 23 NAME "sr2.gif" ENDPICTURE
PICTURE ID 24 NAME "sr3.gif" ENDPICTURE
PICTURE ID 25 NAME "sr4.gif" ENDPICTURE
PICTURE ID 26 NAME "sr5.gif" ENDPICTURE
PICTURE ID 27 NAME "unl.gif" ENDPICTURE
PICTURE ID 28 NAME "lck.gif" ENDPICTURE
PICTURE ID 29 NAME "arrowll.gif" TRANSCOLOR 0 ENDPICTURE
PICTURE ID 30 NAME "arrowrr.gif" TRANSCOLOR 0 ENDPICTURE
DOOR
ID 1
NAME "Board"
DONTMOVEHERE
OUTLINE 4,1 382,1 382,378 4,378
LOC 256,193
SCRIPT
;Scrabble original by TJ.
;Scrabble room and rules graphics by Logan.
ON SELECT {letter GLOBAL
{" Vous devez choisir une lettre" LOCALMSG EXIT} letter 0 == IF
{GLOBAL} [SBX CutUTile m] FOREACH
MOUSEPOS x = y =
"tile" letter & y 6 - x 12 - ADDLOOSEPROP
0 i = {a = {BREAK} a 0 GET y >= IF i++} SBX FOREACH
0 n = {b = {a n 1 + GET m = BREAK} b 0 GET x >= IF n++} SBX FOREACH
"letter" key = {m 10 / m = "word" key =} m 10 > IF
"@" y ITOA & "," & x ITOA & " Tile " & letter & " positioned " &
{"( Ceci multipliera" & key & " by " & m ITOA & ")" &} m 1 > IF SAY
CutUTile EXEC ; Prenez- maintenant le dehors du "UsrTile" array
[[m] [key]] m = ; Pour des points purpose
0 letter =
}
ENDSCRIPT
ENDDOOR
DOOR
ID 2
NAME "A-D"
DONTMOVEHERE
OUTLINE 385,17 399,17 399,75 385,75
LOC 411,112
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["A" 1 31] ["B" 3 48] ["C" 3 64] ["D" 2 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 3
NAME "E-H"
DONTMOVEHERE
OUTLINE 401,17 419,17 419,75 401,75
LOC 436,111
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["E" 1 31] ["F" 4 48] ["G" 2 64] ["H" 4 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 4
NAME "I-L"
DONTMOVEHERE
OUTLINE 422,17 439,17 439,75 422,75
LOC 312,109
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["I" 1 31] ["J" 3 48] ["K" 3 64] ["L" 2 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 5
NAME "M-P"
DONTMOVEHERE
OUTLINE 441,17 457,17 457,75 441,75
LOC 330,112
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["M" 1 31] ["N" 1 48] ["O" 1 64] ["P" 3 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 6
NAME "Q-T"
DONTMOVEHERE
OUTLINE 459,17 475,17 475,75 459,75
LOC 346,112
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["Q" 10 31] ["R" 1 48] ["S" 1 64] ["T" 1 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 7
NAME "U-X"
DONTMOVEHERE
OUTLINE 477,17 494,17 494,75 477,75
LOC 367,110
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["U" 1 31] ["V" 4 48] ["W" 4 64] ["X" 8 79]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 8
NAME "Y-BLANK"
DONTMOVEHERE
OUTLINE 496,17 510,17 510,62 496,62
LOC 380,112
SCRIPT
ON SELECT {{GLOBAL} [letter UsrTiles TT] FOREACH
[["Y" 4 31] ["Z" 10 48] ["BLANK" 0 64]] pack =
TT EXEC
}
ENDSCRIPT
ENDDOOR
DOOR
ID 9
NAME "DRAW"
DONTMOVEHERE
OUTLINE 385,0 422,0 422,13 385,13
LOC 300,98
SCRIPT
ON SELECT {{GLOBAL} [UsrTiles GETTile Tile] FOREACH
{["$" "$" "$" "$" "$" "$" "$"] UsrTiles =} UsrTiles 0 == IF
0 i = {UsrTiles i GET Tile = {GETTile EXEC} Tile "$" == IF Tile UsrTiles i PUT i++} {i 7 <} WHILE
"" str = 205 x =
{lt = {str lt & str =} lt "$" <> IF "tile" lt & 483 x ADDLOOSEPROP 25 x +=} UsrTiles FOREACH
USERNAME " Vos lettres sont '" & str & "'. Veuillez prendre les tuiles!" & ROOMMSG
}
ENDSCRIPT
ENDDOOR
SPOT
ID 10
NAME "Scripts"
OUTLINE 390,120 435,120 435,151 390,151
LOC 411,129
SCRIPT
ON ENTER {{GLOBAL} [SBX ptiles NewPack GETTile CutUTile TT] FOREACH
;Scrabble Board Map
[[25 30 1 1 2 1 1 1 30 1 1 1 2 1 1 30] [50 1 20 1 1 1 3 1 1 1 3 1 1 1 20 1]
[75 1 1 20 1 1 1 2 1 2 1 1 1 20 1 1] [100 2 1 1 20 1 1 1 2 1 1 1 20 1 1 2]
[125 1 1 1 1 20 1 1 1 1 1 20 1 1 1 1] [150 1 3 1 1 1 3 1 1 1 3 1 1 1 3 1]
[175 1 1 2 1 1 1 2 1 2 1 1 1 2 1 1] [200 30 1 1 2 1 1 1 20 1 1 1 2 1 1 30]
[225 1 1 2 1 1 1 2 1 2 1 1 1 2 1 1] [250 1 3 1 1 1 3 1 1 1 3 1 1 1 3 1]
[275 1 1 1 1 20 1 1 1 1 1 20 1 1 1 1] [300 2 1 1 20 1 1 1 2 1 1 1 20 1 1 2]
[325 1 1 20 1 1 1 2 1 2 1 1 1 20 1 1] [350 1 20 1 1 1 3 1 1 1 3 1 1 1 20 1]
[375 30 1 1 2 1 1 1 30 1 1 1 2 1 1 30]
] SBX =
; Create/Refresh the whole Tiles array
{ptiles GLOBAL
["A" "A" "A" "A" "A" "A" "A" "A" "A" "B" "B" "C" "C" "D" "D" "D" "D"
"E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "E" "F" "F" "G" "G"
"H" "H" "H" "H" "I" "I" "I" "I" "I" "I" "I" "I" "I" "J" "K" "L" "L" "L" "L"
"M" "M" "N" "N" "N" "N" "N" "N" "O" "O" "O" "O" "O" "O" "O" "O"
"P" "P" "Q" "R" "R" "R" "R" "R" "R" "S" "S" "S" "S" "T" "T" "T" "T"
"T" "T" "U" "U" "U" "U" "V" "V" "W" "W" "X" "Y" "Y" "Z" "BLANK" "BLANK"
] ptiles =
} NewPack DEF
{NewPack EXEC} ptiles 0 == IF
;
; Routine for letters table
{MOUSEPOS x = y =
{"@" y ITOA & "," & x ITOA & " Pour recevoir vos 7 lettres cliquer sur le bouton 'Draw' " & SAY EXIT} UsrTiles 0 == IF
[76 93 109 127] cx =
0 i ={xx ={pack i GET 0 GET letter = pack i GET 1 GET worth = BREAK} x pack i GET 2 GET <= IF i++} cx FOREACH
"" str = 0 t ={l = {str l & str =} l "$" <> IF {1 t =} letter l == IF} UsrTiles FOREACH
"@" y ITOA & "," & x ITOA & " " & {letter & " = " & worth ITOA}
{"" letter = " Désolé, vous n'avez pas cette lettre ! Vos lettres sont '" & str & "'"} t IFELSE & SAY
} TT DEF
;
; Supply one tile and take it out of the "ptiles" array
{{GLOBAL} [ptiles Tile] FOREACH
ptiles LENGTH pl =
ptiles tp =
pl RANDOM cp = ptiles cp GET Tile =
pl -- pl ARRAY tp =
0 ic = 0 xc = {{ptiles xc GET tp ic PUT ic ++} xc cp <> IF xc ++} {xc pl <=} WHILE
tp ptiles =
} GETTile DEF
;
; Routine to cut off the laid letter from the "UsrTiles" array
{{GLOBAL} [UsrTiles letter] FOREACH
{["$" "$" "$" "$" "$" "$" "$"] UsrTiles =} UsrTiles 0 == IF
0 cp = {m = {"$" UsrTiles cp PUT BREAK} m letter == IF cp ++} UsrTiles FOREACH
} CutUTile DEF
}
;
ON OUTCHAT {{GLOBAL} [UsrTiles GETTile Tile] FOREACH
{ 9 SELECT
"" CHATSTR =
} CHATSTR LOWERCASE "draw" == IF
;
{{GLOBAL} [NewPack UsrTiles] FOREACH
NewPack EXEC
0 UsrTiles =
"" letter =
; Add here, the user score counter var, to reset it
"" CHATSTR =
USERNAME " dite 'reset' pour remettre le compteur à zéro!" & ROOMMSG
} CHATSTR LOWERCASE "reset" == IF
}
ENDSCRIPT
ENDSPOT
DOOR
ID 12
NAME "1 digit 1st counter"
DONTMOVEHERE
OUTLINE 437,79 448,79 448,92 437,92
LOC 443,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s1_1 GLOBAL
ME s1_1 =
}
ON SELECT
{
s1_10 GLOBAL
{ 0 ME SETSPOTSTATE
s1_10 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 13
NAME "10 digit 1st counter"
DONTMOVEHERE
OUTLINE 424,79 435,79 435,92 424,92
LOC 430,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s1_10 GLOBAL
ME s1_10 =
}
ON SELECT
{
s1_100 GLOBAL
{ 0 ME SETSPOTSTATE
s1_100 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 14
NAME "100 dig 1st count"
DONTMOVEHERE
OUTLINE 411,79 422,79 422,92 411,92
LOC 417,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s1_100 GLOBAL
ME s1_100 =
}
ON SELECT
{
10 N =
ME GETSPOTSTATE 1 + N % ME SETSPOTSTATELOCAL
}
ENDSCRIPT
ENDDOOR
DOOR
ID 15
NAME "1 digit 2nd count"
DONTMOVEHERE
OUTLINE 499,79 510,79 510,92 499,92
LOC 505,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s2_1 GLOBAL
ME s2_1 =
}
ON SELECT
{
s2_10 GLOBAL
{ 0 ME SETSPOTSTATE
s2_10 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 16
NAME "10 digit 2nd count"
DONTMOVEHERE
OUTLINE 486,79 497,79 497,92 486,92
LOC 492,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s2_10 GLOBAL
ME s2_10 =
}
ON SELECT
{
s2_100 GLOBAL
{ 0 ME SETSPOTSTATE
s2_100 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 17
NAME "100digit 2nd count"
DONTMOVEHERE
OUTLINE 473,79 484,79 484,92 473,92
LOC 479,86
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s2_100 GLOBAL
ME s2_100 =
}
ON SELECT
{
10 N =
ME GETSPOTSTATE 1 + N % ME SETSPOTSTATELOCAL
}
ENDSCRIPT
ENDDOOR
DOOR
ID 18
NAME "1 digit 3rd count"
DONTMOVEHERE
OUTLINE 437,100 448,100 448,113 437,113
LOC 443,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s3_1 GLOBAL
ME s3_1 =
}
ON SELECT
{
s3_10 GLOBAL
{ 0 ME SETSPOTSTATE
s3_10 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 19
NAME "10digit 3rd counter"
DONTMOVEHERE
OUTLINE 424,100 435,100 435,113 424,113
LOC 430,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s3_10 GLOBAL
ME s3_10 =
}
ON SELECT
{
s3_100 GLOBAL
{ 0 ME SETSPOTSTATE
s3_100 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 20
NAME "100digit 3rd count"
DONTMOVEHERE
OUTLINE 411,100 422,100 422,113 411,113
LOC 417,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s3_100 GLOBAL
ME s3_100 =
}
ON SELECT
{
10 N =
ME GETSPOTSTATE 1 + N % ME SETSPOTSTATELOCAL
}
ENDSCRIPT
ENDDOOR
DOOR
ID 21
NAME "1digit 4th counter"
DONTMOVEHERE
OUTLINE 499,100 510,100 510,113 499,113
LOC 505,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s4_1 GLOBAL
ME s4_1 =
}
ON SELECT
{
s4_10 GLOBAL
{ 0 ME SETSPOTSTATE
s4_10 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 22
NAME "10digit 4th count"
DONTMOVEHERE
OUTLINE 486,100 497,100 497,113 486,113
LOC 492,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s4_10 GLOBAL
ME s4_10 =
}
ON SELECT
{
s4_100 GLOBAL
{ 0 ME SETSPOTSTATE
s4_100 SELECT
} { ME GETSPOTSTATE 1 + ME SETSPOTSTATE } ME GETSPOTSTATE 9 == IFELSE
}
ENDSCRIPT
ENDDOOR
DOOR
ID 23
NAME "100digit 4th count"
DONTMOVEHERE
OUTLINE 473,100 484,100 484,113 473,113
LOC 479,107
PICTS 3,0,0 4,0,0 12,0,0 5,0,0 6,0,0 7,0,0 8,0,0 9,0,0 10,0,0 11,0,0 ENDPICTS
SCRIPT
ON ENTER
{
s4_100 GLOBAL
ME s4_100 =
}
ON SELECT
{
10 N =
ME GETSPOTSTATE 1 + N % ME SETSPOTSTATELOCAL
}
ENDSCRIPT
ENDDOOR
DOOR
ID 24
NAME "rules"
DONTMOVEHERE
OUTLINE 471,1 511,1 511,13 471,13
LOC 256,192
PICTS 21,0,0 22,0,0 23,0,0 24,0,0 25,0,0 26,0,0 ENDPICTS
SCRIPT
ON ENTER { doorpics GLOBAL ME doorpics = }
ON SELECT {doorpics GLOBAL
doorpics GETSPOTSTATE dst =
{-1 dst =} dst 5 > IF dst 1 + doorpics SETSPOTSTATE
}
ENDSCRIPT
ENDDOOR
DOOR
LOCKABLE
ID 25
NAME "room lock & enter msg"
DONTMOVEHERE
OUTLINE 443,1 457,1 457,13 443,13
LOC 450,8
PICTS 27,0,0 28,0,0 ENDPICTS
SCRIPT
ON SELECT {
{ ME UNLOCK }
{ ME LOCK } ME ISLOCKED IFELSE
}
ON ENTER { NAKED 425 260 SETPOS
" Bienvenue au SCRABBLE ! Un provoquant jeu de mots d'amusement dans lequel vous donné 7 tuiles de lettres à la construction, exprimer et échanger des points. Examinez la règlement et lire les instructions ."LOCALMSG
" Le joueur 1 clique ou dit 'Draw' pour recevoir 7 tuiles mélangés pour le menu récepteur." LOGMSG
" S'il a les tuiles 'SCRIPTS' et mettons c'est le mot qu'il veut orthographier, il clique 'S' au dessus dans la liste d'alphabet, clique le carrer où il veut le placer, clique la lettre 'C' au dessus, du carrer encore, etc.. jusqu'à ce qu'il ait orthographié son mot." LOGMSG
" Après que vous ayez établi votre mot, supprimez ces tuiles de votre tableau de tuiles réceptrice à côté de vous" LOGMSG
"Draw encore, notez vos lettres, supprimez vos tuiles à gauche sur le tableau et changez les points pour montrer ce que vous avez juste gagné dans les points a n'importe quel joueur." LOGMSG
" Le prochain joueur fait la même chose. Quand c'est votre tour encore, cliquer ou dit 'Draw' et recevez encore vos lettres placées en arrière sur le tableau et faite la répétition." LOGMSG
}
ON INCHAT { nDoIt GLOBAL nDoIt EXEC }
ENDSCRIPT
ENDSPOT
DOOR
ID 26
NAME "Draw"
DONTMOVEHERE
OUTLINE 385,0 422,0 422,13 385,13
LOC 300,98
SCRIPT
ON SELECT {{GLOBAL} [UsrTiles GETTile Tile] FOREACH
{["$" "$" "$" "$" "$" "$" "$"] UsrTiles =} UsrTiles 0 == IF
7 ARRAY temp =
UsrTiles LENGTH sl =
0 i = {UsrTiles i GET Tile = {GETTile EXEC} Tile "$" == IF Tile temp i PUT i++} {i sl <} WHILE
temp UsrTiles = "" str = 205 x =
{lt = {str lt & str =} lt "$" <> IF "tile" lt & 483 x ADDLOOSEPROP 25 x +=} UsrTiles FOREACH
USERNAME " Vos lettres sont maintenant '" & str & "'. Veuillez prendre les tuiles!" & ROOMMSG
}
ENDSCRIPT
ENDDOOR
DOOR
ID 27
DONTMOVEHERE
DEST 307
OUTLINE 388,356 445,356 445,380 388,380
LOC 417,367
PICTS 29,0,0 ENDPICTS
ENDDOOR
DOOR
ID 28
DONTMOVEHERE
DEST 305
OUTLINE 449,357 509,357 509,380 449,380
LOC 479,368
PICTS 30,0,0 ENDPICTS
SCRIPT
ON INCHAT { nDoIt GLOBAL nDoIt EXEC }
ON ENTER { { CLEARLOOSEPROPS PAINTCLEAR } NBRROOMUSERS 2 < IF }
ENDSCRIPT
ENDDOOR
ENDROOM