Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@oemit/list - oemit() #95

Open
brazilofmux opened this issue Mar 24, 2015 · 5 comments
Open

@oemit/list - oemit() #95

brazilofmux opened this issue Mar 24, 2015 · 5 comments

Comments

@brazilofmux
Copy link
Owner

Original issue 92 created by brazilofmux on 2006-09-12T07:03:10.000Z:

@pemit allows for the /list command for sending to a list of dbref#s, and this behavior is also
replicated by the handy-dandy side-effect function pemit(). However, @oemit has no such
switch, which while not quite essential, would be nice if you're sending specific messages to
different players.

IE: Suppose you have a softcoded command that allows a player to perform a specific action on
another player, let's call it 'badoof'. It generates three messages: 'You badoofed player!' is sent
to the enactor. '%n badoofed you!' is sent to victim. '%n badoofed player!' is sent to everyone else
in the room. For bonus points we throw in color highlighting to the enactor and victim to get
their attention, but not to everyone else.

Current hardcode allows this, but requires filtering of your pemit() targets by setdiff()ing out the
enactor and victim. Not terrible, but likely to break if used in high population rooms. (IE,
Shangrila's # 0, # 69, OBG, perhaps).

I would suggest @oemit/list, that would behave in the following manner: An @oemit would be
sent to the room of the first dbref# on the list, except to players on the list. As the default
@oemit behavior sends messages to the locations of the targets, this would ensure that only one
location is spammed with the oemit.

@brazilofmux
Copy link
Owner Author

Comment #1 originally posted by brazilofmux on 2006-09-12T13:58:06.000Z:

Classified as an Enhancment not a defect.

@brazilofmux
Copy link
Owner Author

Comment #2 originally posted by brazilofmux on 2006-11-15T20:21:55.000Z:

The would be divergent behavior from PennMUSH. PennMUSH does not require /list in
order to provide a list, and PennMUSH will @oemit to the location of each <object>
in the list -- not just the location of the first one.

@oemit[/<switch>] [<room>/]<object> [<object>...] = <message>

This command shows <message> to everyone in the location of <object>
EXCEPT <object>. The object can be specified by name if in your current
location, or by DBREF number. A list of objects can be given, in
which case the message is shown in all locations to all except those
objects.

If a room is specified (usually via dbref), this command shows
<message> to everyone in <room> except for <object> (which may be
a list, as above). In this case, object(s) are matched with reference to
<room>. Therefore, if you want to send a message to everything but an
object called "spy" in # 100, you can simply use "@oemit # 100/spy=Test";
you don't need to know the dbref of "spy".

The /noeval switch prevents the MUSH from evaluating the message.
The /spoof switch causes nospoof notifications to show the enactor's
dbref instead of the executor's dbref, and requires control over
the enactor or the Can_nspemit power.

See also: @emit, @pemit, NOSPOOF and SPOOFING.

@brazilofmux
Copy link
Owner Author

Comment #3 originally posted by brazilofmux on 2006-11-28T05:55:24.000Z:

Take all speech stuff for the same milestone.

@brazilofmux
Copy link
Owner Author

Comment #4 originally posted by brazilofmux on 2007-01-10T03:53:19.000Z:

Schedule for later. There are too many items in 7.2A02.

@brazilofmux
Copy link
Owner Author

Comment #5 originally posted by brazilofmux on 2007-09-21T00:43:20.000Z:

<empty>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant