| ! $Id: howtoplay.h,v 1.3 2017/10/24 13:36:34 michael Exp $ | |
| ! ---------------------------------------------------------------------------- | |
| ! howtoplay.h for Inform 6, by Michael J. Coyne | |
| ! How to Play text Copyright 2003 Fredrik Ramsberg | |
| ! | |
| ! ---------------------------------------------------------------------------- | |
| ! Installation: add the lines: | |
| ! | |
| ! Include "Menus"; ! optional | |
| ! Include "Howtoplay"; | |
| ! | |
| ! anywhere in your game AFTER the Include "VerbLib"; directive | |
| ! | |
| ! ---------------------------------------------------------------------------- | |
| ! Based on the structure of Roger Firth's ccpl.h | |
| ! | |
| ! Implements a HELP verb which uses Menus.h (or any compatible menu | |
| ! package) to display a menu of Fredrik Ramsberg's "How to Play" | |
| ! instructions from "A Beginner's Guide to Playing Interactive Fiction". | |
| ! Fredrik's full text can be found at: | |
| ! http://IFGuide.ramsberg.net | |
| ! | |
| ! Define NO_HOWTO_GRAMMAR to prevent the Help verb from being included. You | |
| ! will then have to provide an alternate means of running HowToMenu.select() | |
| ! | |
| ! If you are not using Menus, then HowToMenu.select will just dump the | |
| ! text to the screen. | |
| ! | |
| ! If you wish to include this in an existing menu in your game instead of | |
| ! just having it available through the help verb, you can do this: | |
| ! | |
| ! Menu MyMenu "My Menu Object" | |
| ! with description "Please select one of the following items.^", | |
| ! number 2; | |
| ! | |
| ! Option -> "How to Play" | |
| ! with description [; | |
| ! howtoplay.description(); | |
| ! ]; | |
| ! | |
| ! $Log: howtoplay.h,v $ | |
| ! Revision 1.3 2017/10/24 13:36:34 michael | |
| ! Make it work properly with DMenus as found on IF Archive. | |
| ! | |
| ! Revision 1.2 2003/05/24 13:36:34 michael | |
| ! Removed DOS carriage-returns introduced by opening on DOS machine. | |
| ! | |
| ! Revision 1.1 2003/05/24 13:32:44 michael | |
| ! Initial revision. | |
| ! | |
| ! ---------------------------------------------------------------------------- ! | |
| system_file; | |
| Class Menu with select [; | |
| howtoplay.description(); | |
| ]; | |
| Class Option; | |
| [ bf text; style bold; print (string) text; style roman; ]; | |
| Menu HowToMenu | |
| with short_name [; | |
| print "How to Play ", (string) Story; | |
| rtrue; | |
| ]; | |
| Option -> howtoplay | |
| with short_name [; | |
| print "How to Play ", (string) Story; | |
| rtrue; | |
| ], | |
| description [; | |
| print "These general instructions are an excerpt from: | |
| ~A Beginner's Guide to Playing Interactive Fiction~. | |
| The full text can be found at http://IFGuide.ramsberg.net", | |
| (bf) "^^The game starts"; | |
| print " | |
| ^When you start a game, you will first see an introduction, usually | |
| consisting of one or a few screenfuls of text, giving you some | |
| background on who you are, where you are, and perhaps even what your | |
| objectives in the game are. Whenever the game has printed a | |
| screenful of text, it will wait until you press ENTER or some other | |
| key, so that you get a chance to read everything before it scrolls | |
| off the top of the screen.^", | |
| (bf) "^How to interact"; | |
| print " | |
| ^When the introduction is over, you will get a prompt, usually ~>~, | |
| but it may be a little different from game to game. The prompt means | |
| that the game is now waiting for you to tell it what you want to do. | |
| You do this by typing in imperative commands, as if you were | |
| commanding someone. Let's say the introduction told you that you are | |
| in a kitchen, and that you can see a closed glass jar standing on | |
| the kitchen counter. Commands you could try at this point include | |
| TAKE THE JAR, or OPEN THE JAR, or perhaps EXAMINE THE JAR | |
| (Throughout this document, things that are written in capital | |
| letters are complete commands that can be typed into an IF game. | |
| They don't have to be typed in capital letters when entered into a | |
| game). If you want to, you can skip the articles: TAKE JAR will work | |
| just at well as TAKE THE JAR. If there are several different jars | |
| you could mean, the game may ask you which one you mean. Just type | |
| one or more words that uniquely identifies one of the items. For | |
| instance, if the game says ~Which jar do you mean, the blue glass | |
| jar or the green glass jar?~, you might reply BLUE to take the blue | |
| one. You can also choose to ignore the question altogether, just | |
| typing a new command.^", | |
| (bf) "^Movement"; | |
| print " | |
| ^To go to another location, most games expect you to type in which | |
| direction you want to go. You can type GO SOUTH, but just SOUTH will | |
| also do the trick, as will S (which is the commonly accepted | |
| abbreviation for SOUTH). Other directions and their abbreviations | |
| are NORTH (N), EAST (E), WEST (W), NORTHEAST (NE), SOUTHEAST (SE), | |
| NORTHWEST (NW), SOUTHWEST (SW), UP (U), DOWN (D), IN and OUT. If you | |
| are aboard a ship of some kind you may also be able to use FORE, | |
| AFT, STARBOARD and PORT.^ | |
| ^Other ways to move around may include commands like ENTER CAR, GO | |
| CAR, SIT ON MOTORCYCLE, GET ON BIKE, CLIMB ONTO SHIP, JUMP ONTO | |
| PLATFORM, DIVE INTO LAKE, BOARD SHIP, EXIT CAR, EXIT, LEAVE, GET | |
| OUT. Exactly which commands are "; | |
| print "recognized"; | |
| print "recognised"; | |
| print " vary from game to game as well as from situation to | |
| situation in those games. When interacting with IF games, always | |
| try to express yourself as simply as possible. | |
| If you have tried several ways of expressing yourself and the game | |
| refuses to understand what you want to do, you are most probably on | |
| the wrong track; it's time to try something completely different.^", | |
| (bf) "^Common verbs"; | |
| print " | |
| ^As you know by now, you can use the verb TAKE to pick up items in | |
| the game. Of course, you can also use DROP to drop items. Most | |
| modern games actually "; | |
| print "recognize"; | |
| print "recognise"; | |
| print " a hundred different verbs or more. With some of the most | |
| used verbs, you can also use multiple items, like this: TAKE GREEN | |
| BALL AND SCREWDRIVER or DROP ALL or PUT ALL BUT HAMMER IN BAG. | |
| You'll find that ALL is often a very useful word, although it only | |
| works with certain verbs, most notably TAKE and | |
| DROP. Here are some of most important verbs, with examples:^"; | |
| font off; | |
| print "^ | |
| LOOK or L L or LOOK AT BOB or LOOK IN JAR or LOOK UNDER BED^ | |
| TAKE TAKE KNIFE^ | |
| DROP DROP KNIFE^ | |
| EXAMINE or X EXAMINE KNIFE or X KNIFE^ | |
| SEARCH SEARCH DESK^ | |
| INVENTORY or I I^ | |
| OPEN OPEN DRAWER^ | |
| CLOSE CLOSE DRAWER^ | |
| LOCK LOCK DOOR WITH RUSTY KEY^ | |
| UNLOCK UNLOCK DOOR WITH RUSTY KEY^ | |
| ASK ASK JOHN ABOUT POLICE OFFICER^ | |
| TELL TELL JOHN ABOUT MURDER^ | |
| SAY SAY HELLO TO JOHN^ | |
| GIVE GIVE RABBIT TO BOB^ | |
| SHOW SHOW KNIFE TO POLICE OFFICER^ | |
| WAIT or Z Z^ | |
| AGAIN or G G^"; | |
| font on; | |
| print "^Other verbs you will need from time to time include ATTACK, | |
| BUY, COVER, DRINK, EAT, FILL, JUMP, KISS, KNOCK, LISTEN, MOVE, PULL, | |
| PUSH, REMOVE, READ, SIT, SLEEP, STAND, THROW, TIE, TOUCH, TURN, | |
| TYPE, UNTIE, WEAR. There are lots more. Hopefully they will seem | |
| natural to you when you need them.^", | |
| (bf) "^How time works"; | |
| print " | |
| ^Almost all IF games count time in turns, rather than hours and | |
| minutes. Every time you type something and press ENTER, one turn | |
| passes. This also means that until you press ENTER, no time passes. | |
| You could think of a turn as being something like a minute, but how | |
| long it actually is depends on what you do during that turn. If you | |
| want time to pass, but don't want to perform any actions, just type | |
| WAIT or Z. This will prove useful while waiting for someone to | |
| arrive or something to get ready in the oven etc (in the game world, | |
| not in the real world!).^ | |
| ^There are games that use real-time instead of turn-based play, but | |
| they are few and far between, and they will tell you about their | |
| real-time system at the beginning of the game.^", | |
| (bf) "^Talking to people"; | |
| print " | |
| ^The most useful ways of talking to people usually involve the verbs | |
| ASK and TELL. When using them, try to pin down the best keyword for | |
| what you are interested in, rather than longer constructs. For | |
| example, TELL BOB ABOUT HOW I SAW SHEILA GIVE A STRANGE AMULET TO | |
| ANOTHER WOMAN is not likely to yield any useful results, but TELL | |
| BOB ABOUT AMULET or perhaps TELL BOB ABOUT SHEILA may indeed be | |
| useful. In other words, you tell the game the subject you want to | |
| talk about or ask about, not exactly what to say. The game will try | |
| to make reasonable assumptions on what you want to say regarding the | |
| subject.^"; | |
| print "^Also note that many games are quite primitive when it comes | |
| to modelling people. The author has to put in an enormous amount of | |
| work to make people in the game behave realistically and respond | |
| well to conversation. In general, don't expect too much from people | |
| in the game, but there are of course games that shine in this area | |
| too. You'll also see that some authors prefer menu-based | |
| conversation, to facilitate interaction.^ | |
| ^To tell someone else to do something, type the name of the person, | |
| a comma, and then a command. Example: BOB, BREAK THE JAR. Just like | |
| in real life, most people won't automatically do something just | |
| because you tell them to. If you think Bob knows what to do with the | |
| jar, you can also try GIVE JAR TO BOB or SHOW JAR TO BOB.^", | |
| (bf) "^Special verbs"; | |
| print "^All games "; | |
| print "recognize"; | |
| print "recognise"; | |
| print " some verbs that don't do anything in the game world, but | |
| tells the game something about how you want it to behave, | |
| or some special task you want it to peform. These verbs include:^"; | |
| font off; | |
| print "^ | |
| UNDO Takes back the last move you made.^ | |
| QUIT or Q Ends the current game.^ | |
| RESTART Starts the game over from the beginning.^ | |
| SAVE Saves your current position to a file on disk.^ | |
| RESTORE Loads a previously saved game position.^ | |
| HELP or ABOUT Shows some information about the game and its | |
| author, in some cases even hints to some of the | |
| puzzles.^ | |
| VERBOSE Tells the game you want a long description of every | |
| room you enter, even if you've been there before.^ | |
| BRIEF Tells the game you want a long description the first | |
| time you enter a room, and a short description when | |
| you come back. This is the default mode.^ | |
| SUPERBRIEF Tells the game you always want short descriptions of | |
| all rooms.^"; | |
| font on; | |
| print (bf) "^Getting stuck and unstuck"; | |
| print " | |
| ^While playing IF, you will get stuck. This is part of the deal -- | |
| where there are puzzles, there will also be stuckness. If you grow | |
| tired of being stuck in the same spot for too long, you can either | |
| type HELP in the game to see if there are any hints available, or | |
| you can ask other players for hints. A good place to ask for hints | |
| is the newsgroup rec.games.int-fiction (can be reached at | |
| http://groups.google.com/groups?group=rec.games.int-fiction ). | |
| That's also one of the best | |
| places to meet other IF players, discuss games you've played, get | |
| tips on games you should play and more.^ | |
| ^Oh, one last thing about playing interactive fiction. Make a map as | |
| you play. You are very likely to need it."; | |
| ]; | |
| #Ifdef dmenus_h; | |
| [ HowToSub; ShowMenu(HowToMenu); ]; | |
| #Ifnot dmenus_h; | |
| [ HowToSub; HowToMenu.select(); ]; | |
| #Endif; | |
| #IFNDEF NO_HOWTO_GRAMMAR; | |
| Verb meta 'help' 'howto' 'instructions' | |
| * -> HowTo; | |
| #ENDIF; | |
| ! ---------------------------------------------------------------------------- ! | |
Xet Storage Details
- Size:
- 13.1 kB
- Xet hash:
- 376694042897689dc13e77dcb401be8be1bf4aa2f04f769eadabf90266d26c3d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.