ROOM ID 300 NOPAINTING NAME "Roll Player" PICT "dndabl.gif" PICTURE ID 1 NAME "arrowll.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 2 NAME "arrowrr.gif" TRANSCOLOR 0 ENDPICTURE SPOT ID 1 NAME "DnD Help" DONTMOVEHERE OUTLINE 99,181 138,181 138,200 99,200 LOC 120,191 SCRIPT ON SELECT { "\x0dTo play this D&D-type adventure game, you must first create a Player Character." LOGMSG "Begin by selecting \x22Roll Abilities\x22, which will create values for" LOGMSG "your abilities and place the results in your log." LOGMSG "Next, you select which \x22Race\x22 you wish to be, by choosing one from the list." LOGMSG "Note: Some races must have certain minimum and/or maximum ability scores!" LOGMSG "Finally, you choose your \x22Player Class\x22, which is your \x22profession\x22." LOGMSG "Again, some races may NOT qualify for certain classes!" LOGMSG "If you don't like what you've rolled, you can always start over again.\x0d" LOGMSG "@" POSX ITOA + "," + POSY ITOA + "Help is in your log!" + LOCALMSG } ENDSCRIPT ENDSPOT SPOT ID 2 NAME "Roll Abilities" DONTMOVEHERE OUTLINE 73,234 168,234 168,253 73,253 LOC 119,242 SCRIPT ON ENTER { abilities GLOBAL abdesc GLOBAL racenames GLOBAL classnames GLOBAL "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]" abilities = ; 0 = Strength ; 1 = Intelligence ; 2 = Wisdom ; 3 = Dexterity ; 4 = Constitution ; 5 = Charisma ; 6 = Race ; 7 = Class ; 8 = Hitdice ; 9 = Dicetype ; 10 = Hitpoints ; 11 = Current Hitpoints ; 12 = Experience ; 13 = Goldpoints [ "Strength" "Intelligence" "Wisdom" "Dexterity" "Constitution" "Charisma" "Race" "Class" ] abdesc = [ "Dwarven" "Elven" "Gnome" "Half-Elven" "Halfling" "Half-Orc" "Human" ] racenames = [ "Cleric" "Fighter" "Magic-User" "Thief" ] classnames = 53 331 SETPOS } ON SELECT { abilities GLOBAL abdesc GLOBAL abilities STRTOATOM EXEC temparry = 0 i = { 0 x = 0 roll = { 6 RANDOM 1 + roll += x ++ } { 3 x > } WHILE roll temparry i PUT i ++ } { 6 i > } WHILE "\x0dThe Abilities rolled are: " LOGMSG 0 i = { abdesc i GET ": " + temparry i GET ITOA + LOGMSG i ++ } { 6 i > } WHILE "" LOGMSG ; convert array back to string "[ " abilities = 0 i = { temparry i GET ITOA " " + abilities += i ++ } { temparry LENGTH i > } WHILE "]" abilities += "@" POSX ITOA + "," + POSY ITOA + "Your ability scores are in your log." + LOCALMSG } ENDSCRIPT ENDSPOT SPOT ID 3 NAME "Choose Race" DONTMOVEHERE OUTLINE 209,136 300,136 300,298 209,298 LOC 252,190 SCRIPT ON SELECT { abilities GLOBAL abdesc GLOBAL racenames GLOBAL abilities STRTOATOM EXEC temparry = 0 temparry 6 PUT MOUSEPOS y = x = { 1 race = ; dwarf [ [ 8 18 ] [ 3 18 ] [ 3 18 ] [ 3 17 ] [ 12 19 ] [ 3 16 ] ] minmax = } 154 y > IF { 2 race = ; elf [ [ 3 16 ] [ 8 18 ] [ 3 18 ] [ 7 19 ] [ 6 18 ] [ 8 16 ] ] minmax = } 162 y < 176 y > AND IF { 3 race = ; gnome [ [ 6 18 ] [ 7 18 ] [ 3 18 ] [ 3 18 ] [ 8 18 ] [ 3 18 ] ] minmax = } 186 y < 199 y > AND IF { 4 race = ; half-elf [ [ 3 18 ] [ 4 18 ] [ 3 18 ] [ 6 18 ] [ 6 18 ] [ 3 18 ] ] minmax = } 208 y < 224 y > AND IF { 5 race = ; halfling [ [ 6 17 ] [ 6 18 ] [ 3 17 ] [ 8 18 ] [ 10 19 ] [ 3 18 ] ] minmax = } 231 y < 249 y > AND IF { 6 race = ; half-orc [ [ 6 18 ] [ 3 17 ] [ 3 14 ] [ 3 17 ] [ 13 19 ] [ 3 12 ] ] minmax = } 256 y < 272 y > AND IF { 7 race = ; human [ [ 3 18 ] [ 3 18 ] [ 3 18 ] [ 3 18 ] [ 3 18 ] [ 3 18 ] ] minmax = } 282 y < IF { 0 i = 1 flag = "" LOGMSG { temparry i GET mine = minmax i GET 0 GET min = minmax i GET 1 GET max = { "\x0dI'm sorry, but your score for " abdesc i GET + " is only " + mine ITOA + "." + LOGMSG "You need a score of at least " min ITOA + ", to be " + racenames race 1 - GET + ".\x0d" + LOGMSG 0 flag = } mine min < 1 flag == AND IF { "\x0dI'm sorry, but your score for " abdesc i GET + " is " + mine ITOA + "." + LOGMSG "The maximum score for being " racenames race 1 - GET + " is " + max ITOA + ".\x0d" + LOGMSG 0 flag = } mine max > 1 flag == AND IF i ++ } { 6 i > } WHILE { race temparry 6 PUT "@" POSX ITOA + "," + POSY ITOA + "!" + USERNAME + " has chosen to be of the " + racenames race 1 - GET + " race!" + SAY ; convert array back to string "[ " abilities = 0 i = { temparry i GET ITOA " " + abilities += i ++ } { temparry LENGTH i > } WHILE "]" abilities += } { "@" POSX ITOA + "," + POSY ITOA + "Please refer to your log and select again!" + LOCALMSG } flag IFELSE } { "@" POSX ITOA + "," + POSY ITOA + "You have to roll your abilities first!" + LOCALMSG } 0 temparry 0 GET < IFELSE } ENDSCRIPT ENDSPOT SPOT ID 4 NAME "Choose Class" DONTMOVEHERE OUTLINE 340,166 428,166 428,267 340,267 LOC 382,200 SCRIPT ON SELECT { abilities GLOBAL abdesc GLOBAL racenames GLOBAL classnames GLOBAL MOUSEPOS y = x = 1 test = abilities STRTOATOM EXEC temparry = temparry 6 GET race = 0 temparry 7 PUT 0 temparry 8 put 0 temparry 9 put { ; cleric { 1 class = { 0 test = } "1235" race ITOA SUBSTR IF } 186 y > IF ; fighter { 2 class = } 195 y < 211 y > AND IF ; magic-user { 3 class = { 0 test = } "1356" race ITOA SUBSTR IF } 219 y < 236 y > AND IF ; thief { 4 class = } 243 y < IF "" LOGMSG { class temparry 7 PUT 1 temparry 8 PUT [ 8 10 4 6 ] class 1 - GET temparry 9 PUT ; convert array back to string "[ " abilities = 0 i = { temparry i GET ITOA " " + abilities += i ++ } { temparry LENGTH i > } WHILE "]" abilities += "@" POSX ITOA + "," + POSY ITOA + "!" + USERNAME + " has chosen the profession of " + classnames class 1 - GET + "." + SAY } { "\x0dI'm sorry, but " racenames race 1 - GET + " can't be " + classnames class 1 - GET + "s.\x0d" + LOGMSG "@" POSX ITOA + "," + POSY ITOA + "Please refer to your log and select again." + LOCALMSG } test IFELSE } { "@" POSX ITOA + "," + POSY ITOA + "You have to choose a race first!" + LOCALMSG } race IFELSE } ENDSCRIPT ENDSPOT DOOR ID 5 DONTMOVEHERE DEST 119 OUTLINE 5,357 61,357 61,379 5,379 LOC 33,367 PICTS 1,0,0 ENDPICTS ENDDOOR DOOR ID 6 DONTMOVEHERE DEST 301 OUTLINE 452,360 508,360 508,380 452,380 LOC 481,370 PICTS 2,0,0 ENDPICTS SCRIPT ON INCHAT { nDoIt GLOBAL nDoIt EXEC } ON ENTER { { CLEARLOOSEPROPS PAINTCLEAR } NBRROOMUSERS 2 < IF } ENDSCRIPT ENDDOOR ENDROOM