Re: [NEWBIE] Help with CMD_IS("say")

From: Thomas Arp (t_arp@stofanet.dk)
Date: 02/11/03


From: "Josh Harris" <jharris2@ACSU.BUFFALO.EDU>
> this is my problem.  and my code.

> Right now when I say something this stuff is being sent out the problem is
> This is how it appears in the mud and I want the
>
> You say, line to go before naything else is said?  How can I fix this?

Your problem comes from the way spec_procs are implemented. Because they
need the ability to block other commands (think of list/buy), spec_procs
are called _before_ a call to for instance do_say(). The solution is as
simple as the problem is hard to explain...

Make your spec_proc call do_say, where you want it to. Then take control,
and return TRUE to prevent command_interpreter from calling do_say again.
>
> Code:
>
>    if(CMD_IS("say") || CMD_IS("'"))    {

+      do_say(ch, argument, 0, 0);

>      act("You just said something.", FALSE, ch, 0, 0, TO_CHAR);
>      act("Someone just disturbed Gollum.", FALSE, ch, 0, 0, TO_ROOM);
>      act("Gollum jumps up and down.", FALSE, ch, 0, 0, TO_ROOM);
>      act("Gollum jumps up and down.", FALSE, ch, 0 ,0, TO_CHAR);

+      return (1);

>    }

+    return (0);

Welcor

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/26/03 PDT