Re: OS & coding.doc: communication channels

From: Raf (picard@INDIGO.IE)
Date: 09/16/97


On Tue, 16 Sep 1997, Pete Wolfe wrote:

> I was wondering what is the most popular, efficient os to compile and
> run circle mud under. I have heard Linux is good and am considering
> getting it. Anyone wanna convince me yeah or nay?

From experience, Linux is the best OS for compiling a mud. I may be wrong
however, as ive heard SunOS is great too. One advantage with Linux was
that it was pretty simple to set up, presuming you can read a FAQ :)
The Slackware linux distribution can also be run off an MS-DOS partition,
which I believe no other unix-type OS can offer. I think anyway :)
In conclusion, linux is cool.

Hmm...this really isnt a circle post. Might need an ObCircle.

ObCircle:
Umm...<thinks frantically>
Okay a coding.doc addition maybe, since I cant think of anything else.

coding.doc (3.8?): How to add new communication channels.

This is a walkthrough for adding generalised communication channels, such
as gossip. The channel we will use for this example will be a 'newbie'
channel.

The files needed to be changed to add a channel are the following:
interpreter.h , structs.h , act.comm.c , interpreter.c , act.other.c

-- interpreter.h --
Find the do_gen_tog defines. Add a "#define SCMD_NONEWBIE   <next number>"
to the end of the list. This is to be able to toggle on and off the newbie
channel.

Next, fine the do_gen_comm defines. Add "#define SCMD_NEWBIE     <next number>"
to the end of the list once again.
This is the define for the actual channel.

-- structs.h --
Find the preference flags, PRF_AUTOEXIT, etc.
Add "#define PRF_NONEWBIE (1 << <next number>)" to the end of this list.
This is the preference flag for wether or not a person can hear the channel.

-- act.comm.c --
In the do_gen_comm function, there is an array of preference flags which
must NOT be set for the channel to be heard.
Add "PRF_NONEWBIE," _before_ the 0 at the end. The comments following this
array are pretty clear.

com_msgs: [0] Message if you can't perform the action because of noshout
          [1] name of the action
             This is the name of the channel :)
          [2] message if you're not on the channel
             If you have NONEWBIE toggled.
          [3] a color string.
             What colour the channel will be displayed in. eg yellow for gossip.
             The colour codes can be found in colours.doc (colors.doc?)

-- interpreter.c --

Add:  { "nonewbie" , POS_DEAD    , do_gen_tog  , 0, SCMD_NONEWBIE },
to the master command list, just after nod.
This is the actual command to toggle on and off the newbie channel.

-- act.other.c --

Find the do_gen_tog function. You will see a long list of toggle messages,
such as "Autoexits disabled," etc. On the last line of this, add a "," as
you will be adding 2 more messages. After this, insert:

{"You will no longer hear the newbie channel.\r\n",
"You will now hear the newbie channel.\r\n"}

The first is the message shown when you turn OFF the channel,
(ie. have the PRF_NONEWBIE flag set) , and the second when you turn it ON.

Below these messages, there is a switch which contains all the things
which actually happen when you toggle stuff on and off. Usually this will
be a preference toggle check.
The syntax for this is PRF_TOG_CHK(ch, <preference flag>);
Just before the "default:" entry, add in a:

case SCMD_NONEWBIE:
result = PRF_TOG_CHK(ch, PRF_NONEWBIE);
break;

-- constants.c --
Search for "PRF_x".
This is a list of all the preference flags, as they show up on stat.
At the end of this, before "\n" , add -"!NEWBIE,"-
When this shows up on stat character , it means the person has the newbie
channel turned OFF.

End of code.

Thats it, and as you can see, it's pretty simple to add a communication
channel. But then, its pretty simple to add a command, and that has a
section in the docs too.

EOF


--Raf
--Implementor of AbysmalMUD
--gate.dev.jhu.edu 4000


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/08/00 PST