MOO-cows Mailing List Archive


[PROG] Re: chat rooms

(Have to reply from a different address, I dont' have a copy of the original post to quote)

On the subject of chat rooms, and the specific implementation you talked about, hows this idea:

One room has a microphone in it, and that microphone listens to what is said in the room, then 
broadcasts to a series of other rooms:

@create $thing named microphone
@prop microphone.broadcast_to {}
@verb microphone:tell this none this rx
@program microphone:tell
msg = tostr("[from ", this.location:name(), "] ", @args);
for room in (this.broadcast_to)

Then, just drop the microphone in the room that is the 'stage', restrict access to the stage (locked 
with a 'backstage pass' or something?!?), and then the people who are in the auditorium will hear 
everything that is said on the stage, and will also be able to talk amoungst themselves.  The rooms that 
make up the auditorium could be connected via exits (of course) so the listeners can move between them 
and such.  Could even make it so that a look at the 'north' exit or an exit that faces the 'stage' could 
return the stage's description.  Oh, be sure to add the rooms that are the auditorium to the 
.broadcast_to prop on the microphone. Note that this won't work if someone is holding the microphone, it 
needs to be in the same room as the speaker/people on the stage.

Note that if you disable turning @paranoid on (or no one has it turned on) and/or you really simplify 
$player:tell, you can decrease the amount of time (in ticks and seconds) that it takes to tell an entire 
room.  LambdaCore's :tell stack has a lot of extra/useless stuff in it that isn't really necessary at 
places where players/programmers can't spoof (I'm getting the impression that there will be few, if any, 
programmers on the MOO you mention you are developing).


Home | Subject Index | Thread Index