!-------------------------------------------------------------------------- ! 10 HELP !-------------------------------------------------------------------------- !-------------------------------------------------------------------------- ! 10.3 HELP !-------------------------------------------------------------------------- [ HelpSub; DoMenu(HelpPrint,HelpMenu, HelpInfo); ]; [ PrintChoices choices i; for (i = 0: i < choices-->0: i++) { if (pretty_flag == 1) print "^ "; else { print "^ "; if (i < 9) print " "; print (i + 1), " "; } print (string) choices-->(i+1); } ]; Array TopMenuChoices table [; "An introduction to adventure games"; "Moving around"; "Manipulating things"; "Talking to people"; "Looking things up in books"; "Miscellaneous commands"; "Summary of commands"; "Abbreviations for common commands"; ]; [ HelpPrint; print "There is information on the following:^"; PrintChoices(TopMenuChoices); new_line; ]; [ HelpMenu; switch (menu_item) { 0: item_width= 6; item_name="Instructions"; return 8; 1: item_width= 8; item_name="Adventure games"; 2: item_width= 7; item_name="Moving around"; 3: item_width=10; item_name="Manipulating things"; 4: item_width= 9; item_name="Talking to people"; 5: item_width= 9; item_name="Looking things up"; 6: item_width=11; item_name="Miscellaneous commands"; 2: item_width= 8; item_name="Command summary"; 3: item_width= 7; item_name="Abbreviations"; } ]; [ HelpInfo; switch (menu_item) { 1: print "Adventure games (sometimes dignified with the name ~interactive fiction~) are a combination of second-person story and puzzle-solving game. An adventure game presents you with text that puts you in the position of protagonist, and invites you to type in commands.^"; print "^For example, a game might start like this:^"; print "^ You are standing in the street outside a college. ^ The gate is closed. ^ >^"; print "^The prompt invites you to type something. You respond with an imperative sentence and the game tries to understand your command and to carry it out. For example, you might type^"; print "^ > open the gate^"; print "^and the game might respond^"; print "^ Unfortunately, the gate is locked. ^ >^"; print "^Not to be defeated, you try something else:^"; print "^ > knock at gate ^ ~Come in!~ shouts a voice from inside. ^ The gate opens. ^ > go in ^ You enter the college ...^"; print "^and the game continues. Not all puzzles will be so easy, though!^"; print "^No game can hope to understand every possible input. If you try something and the game doesn't understand, then you should try rephrasing your command or substituting synonyms for some of the words. If you've made several obvious attempts and none of them have worked, then the likelihood is that you can't do what you wanted to, and you'll have to solve your problem in a different way.^"; 2: print "The landscape of an adventure game is notionally divided into ~rooms~; often these really are rooms, but they can be larger places (such as streets or fields or woods) or smaller places (such as the northwest corner of the hall).^"; print "^The name of the room you are in appears at the left of the ~status line~ at the top of the screen, and you can get a description of what you can see by typing ~look~.^"; print "^To move from one room to another, you generally enter commands like^"; print "^ go north^"; print "^or just ~north~ on its own (you are assumed to be blessed with an excellent sense of direction). Any of the eight compass points may be substituted for ~north~, and in some contexts the game also understands the directions ~in~, ~out~, ~up~ and ~down~.^"; print "^When there is a particular landmark to head for, you may be able to avoid specifying a compass direction, and instead try one of these:^"; print "^ go through the big door ^ enter phone box ^ climb tree ^ cross bridge^"; print "^Sometimes movement won't take you to a new room, but will let you enter and leave objects in the current room, for example:^"; print "^ enter car ^ sit in chair ^ stand on lawn^"; print "^To leave these objects, you might type ~get out~ or ~stand up~ or ~exit~.^"; print "^If you can get into the car and figure out how to turn the ignition on, then you may be able to drive it around; to do this, just use ~north~, ~south~, and so on. On the other hand, if you can't find the ignition keys, you might be reduced to trying^"; print "^ push car west^"; 3: print "You can try to pick something up with ~take thing~ and try to put it down with ~drop thing~. The command ~take inventory~ (or ~inventory~, or ~i~ for short) gives you a list of objects that you are carrying.^"; print "^To look at an object more closely, ~examine~ it (~x~ for short).^"; print "^Objects may be manipulated in many ways: put into (or on top of) other objects, pulled, pushed, turned, eaten, and so on. Here are some examples:^"; print "^ take the white rabbit ^ put rabbit in the hat ^ take rabbit out of the hat ^ look in the hat ^ unlock brass door with copper key ^ open door ^ offer shopkeeper the silver coin ^ give gold coin to merchant ^ turn the dial ^ turn on the lamp ^ light candle with match ^ empty sack into chest ^ put picture on mantelpiece ^ look under the wooden desk^"; print "^Some commands can act upon more than one object. ~take all~ will attempt to pick up all the loose items in the room; ~drop all~ will drop everything you're carrying (except for any clothing you're wearing). If you found a packing case with a number of things in it, you could type commands like:^"; print "^ get teddy bear, rabbit and piglet ^ remove everything but the brass key from the packing case ^ get all the coins except gold, silver and bronze^"; print "^If you are not explicit enough, the game will try to deduce what you meant, and if it succeeds it will tell you what it deduced. For example, in reply to ~get teddy bear, rabbit and piglet~, the game might say^"; print "^ (from the packing case)^"; print "^so that you know what has been assumed on your behalf. If there had been two rabbits you might have meant, it would reply with^"; print "^ Which do you mean, the white rabbit or the Welsh rabbit?^"; print "^You may tell it which (or reply ~either~ or ~both~ or ~all~), or else give up and do something else instead. The game can gradually accumulate information about a command, for example:^"; print "^ > unlock door ^ Which door do you mean, the big door or the small door? ^ > big ^ What do you want to unlock the big door with? ^ > the brass key ^ Which brass key do you mean, the brass doorkey or the Brass City key? ^ > either ^ (the brass doorkey) ^ That doesn't seem to fit the lock.^"; print "^If you don't mind which object you use, you can always say something like^"; print "^ put a coin in the slot^"; print "^and the game will make a sensible choice and tell you what it was.^"; print "^Sometimes the game deduces that you wish to do something that you didn't explicitly say you wanted to. In such circumstances, it will tell you what it assumed on your behalf. For example:^"; print "^ > give banana to gorilla ^ (first taking the banana) ^ The gorilla devours the banana, but it still won't let you pass.^"; print "^The object ~it~ refers to the last thing manipulated, and ~him~ or ~her~ to the last person of the appropriate sex to be mentioned.^"; print "^Sometimes an object will be mentioned in the description of a room purely for atmospheric value and will play no other part in the game. If you try to refer to such an object, the game is liable to respond^"; print "^ You don't need to refer to that.^"; print "^Your best course of action is to leave these non-existent objects alone.^"; 4: print "To say a single word, or a few words, to someone, you can use commands like^"; print "^ answer yes ^ say boo to goose ^ ask chemist about nitrogen ^ ask Einstein about the theory of relativity ^ ask the police constable the time^"; print "^and the characters in ~Coming Home~ tend to be quite talkative when you approach them like this.^^To order someone about, you can use commands like^"; print "^ police constable, give me your helmet ^ jailor, unlock the cell door ^ young man, go west ^ Sherlock, follow me^"; print "^though, of course, they are not guaranteed to obey you!^"; 5: print "The command ~read book~ will provide a quick summary of the contents of a book, but to get more information from certain texts you may have to look things up.^^To look up a single-word subject, you can type^"; print "^ look up Julius^"; print "^(where there is only one book you could have meant), or^"; print "^ look up Claudius in the Twelve Caesars ^ consult Suetonius about Augustus^"; print "^Where you have a more precise reference to hand, you can try commands like^"; print "^ read page 256 of the Decline and Fall ^ look up page 7 in Pliny ^ look up Genesis 14 in Bible^"; 6: print "To save the current state of your game into a file, type ~save~; to go back to a saved game, type ~restore~. These commands will ask you for the name of the file, so there is no reason why you shouldn't have as many saved games as you have room for on your computer.^"; print "^To start ~Coming Home~ again from the beginning, type ~restart~, and to stop playing, type ~quit~.^"; print "^If you want to save a transcript of your game for later perusal, use the command ~script on~ to start transcription (the game will prompt you for a file name) and ~script off~ to stop.^"; print "^The command ~score~ will give you your score, and ~fullscore~ or ~full~ will give a more detailed description of how you scored those points. When your score changes, you are notified of the fact by messages like^"; print "^ [Your score has just gone up by one point]^"; print "^The command ~notify off~ turns these messages off, and ~notify on~ turns them back on again.^"; print "^Usually the game will give you a long description of a location when you first visit it and short descriptions thereafter (unless you explicitly request a long one with ~look~). If you get bored of the long descriptions, you can turn them off with ~short~ or ~superbrief~. If you're forgetful and always want long descriptions, type ~long~ or ~verbose~. To restore the usual state of affairs, type ~normal~ or ~brief~.^"; print "^~Coming Home~ displays quotations in boxes from time to time; if you don't like this feature, you can turn it off using ~quotes off~ and back on again with ~quotes on~.^"; print "^If you regret your last command, then you can type ~undo~ to go back to the state before you typed it (you can even type ~undo~ at the ~Would you like to RESTART, RESTORE or QUIT?~ prompt after you have died). However, the ~undo~ command doesn't work on all interpreters, and you can only undo one command.^"; print "^The commands described above don't cause things to happen in the game and don't take up any game time; nor do any commands you type which the game fails to understand.^"; print "^Some simple typing mistakes can be correct with ~oops~ followed by the word you had intended to type, for example:^"; print "^ take the swrod from the stone ^ oops sword^"; print "^You can repeat the last command you typed with ~again~, you can do nothing for a game turn by typing ~wait~, and you can string several commands into a single input by separating them with ~then~ (or commas, or full stops), for example:^"; print "^ take coin. south. again. wait. put coin in box ^ unwrap chocolate then eat it^"; 7: print "These commands typically do nothing in the world of the game, but control how it is presented to you:^"; font off; print " ^brief use long and short room descriptions ^die quit the game ^fullscore show how your score was achieved ^inventory list your possessions ^inventory wide paragraphed inventory lists ^inventory tall one item per line inventory lists ^long always use long room descriptions ^normal use long and short room descriptions ^noscript turn transcripting off ^notify on/off turn score notification on and off ^nouns show current settings of ~it~, ~him~, ~her~ ^objects list the objects you have held ^oops correct mistake in previous input ^places list the places you have been ^pronouns show current settings of ~it~, ~him~, ~her~ ^quit quit the game ^quotes on/off turn the display of quotations on and off ^restart start the game again from the beginning ^restore restore a saved game from a file ^save save the game to a file ^score show your current score ^script on/off start and stop transcription to a file ^short always use short room descriptions ^superbrief always use short room descriptions ^undo undo last command, if possible ^unscript turn transcripting off ^verbose always use long room descriptions ^verify check that the story file is undamaged ^version give version and release numbers^"; font on; print "^These are useful commands that affect the world of the game:^"; font off; print " ^again repeat the last command ^close shut a container or a door ^drop let go of an object ^enter enter an object ^examine inspect something closely ^get pick up an object ^give x to y offer a gift to someone ^go travel in a compass direction ^in go in (if this is unambiguous) ^look describe your surroundings ^look up x in y look up something in a book ^open open a container or a door ^out go out (if this is unambiguous) ^put x in y put an object in a container ^take pick up an object ^unlock x with y unlock something with a key ^wait do nothing for a turn^"; font on; print "^There are, of course, many more.^"; 8: print "The game knows several useful abbreviations:^ ^ g for again ^ i for inventory ^ l for look ^ n for north (and so on) ^ o for oops ^ q for quit ^ x for examine ^ z for wait (short for ~zzz~).^"; } ]; Verb meta "help" * -> Help;