# [PROG] Re: chat rooms

ThwartedEfforts (abakun@interaccess.com)
Sat, 4 Nov 1995 10:40:53 PST

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

    (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)
      room:announce_all(msg);
    endfor

    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).

    ThwartedEfforts
    http://tecfa.unige.ch:4243/~tef/