# Prompts

Ian Macintosh (siman@ihug.co.nz)
Mon, 4 Mar 1996 21:23:46 PST

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    Hi John, and everyone else.

    I've been a tad busy of late, and if anyone thinks I've been ignoring
    them, please email me again.  My ISP's pop3 burped and ate my message
    queue, so it might have not been deliberate :)

    Anyway, on to the prompt question...

    I  followed the thread here, and see you are probably still looking for a
    solution.

    At 02:19 PM 22/02/96 PST, you wrote:
    >Hey, was talking to a few people (Kipp, and a few others) about setting
    >up a prompt similar to those on MUDs.  Kipp tells me that a while back
    >Pavel wrote about how to set this up, and I'm wondering if anyone could
    >either a) point me to a FAQ file with this in it, or b) tell me how to do
    >it.  Kipp gave me the verb code for a verb named Prompt, but I'm not sure
    >how it functions and where it goes.

    The MUD type prompt will not be solved entirely by 1.8.0, as over and
    above the ability of sending a non CR/LF terminated line, you will need
    the ability to send a prompt under all circumstances.

    What has been proposed in the other followups will require you to call
    something like player:do_prompt() at the end of every non 'this none this'
    verb.  A task sure to daunt even the most fearless programmer.

    The solution is to have the server call a verb after decoding and
    processing every input from the player, even a blank line (such as when
    the player presses ENTER or RETURN only).  I wrote a patch for this, and
    can dig it up if nobody else still has a copy of it for you.

    Unfortunately, you will have to patch it for 1.7.9 as I wrote it for
    1.7.8p4.  However, there is the distinct possibility that you can
    insert the patch without modification.

    All it really does is, inside server.c, in the main program loop, after
    decoding AND executing the line of text typed by the player, it calls
    the verb #0:do_prompt() IF the verb exists.  I found the best thing to
    do inside there is to just call player:do_prompt() which handled things
    like prompt enabling, disabling, customizing, etc.

    The nice part about it is that the prompt will display even if the verb
    you are calling suspends for any reason, as well as when the player
    just presses ENTER, something no in-db verb can do.

    Regards,

            Ian.