Switch to edit mode.
Name(s): say_action do_action1: "$you:say_action(message [,who [,thing, [,where [, excluding-whom]]]])"
2: "announce 'message' with pronoun substitution as if it were just "
3: " where:announce_all_but(excluding-whom, "
4: " $string_utils:pronoun_sub(message, who, thing, where));"
5: "except that who (player), dobj, and iobj get modified messages, with the appropriate use of 'you' instead of their name, and except that `excluding-whom' isn't really a valid variable name."
6: "who default player"
7: "thing default object that called this verb"
8: "where default who.location"
9: "excluding default {}"
10: {msg, ?who = player, ?thing = caller, ?where = who.location, ?excluding = {}} = args
11: you = this
12: if (typeof(msg) == $LIST)
13: tell = ""
14: for x in (msg)
15: tell = tell + (typeof(x) == $STR ? x | x[random(length(x))])
16: endfor
17: else
18: tell = msg
19: endif
20: if (!(who in excluding))
21: who:tell($string_utils:pronoun_sub(this:fixpos(tell, "%n"), you, thing, where))
22: endif
23: if ($object_utils:has_callable_verb(where, "announce_all_but"))
24: where:announce_all_but({dobj, who, iobj, @excluding}, $string_utils:pronoun_sub(tell, who, thing, where))
25: endif
26: if (valid(dobj) && dobj != who && !(dobj in excluding))
27: x = dobj
28: dobj = you
29: x:tell($string_utils:pronoun_sub(this:fixpos(tell, "%d"), who, thing, where))
30: dobj = x
31: endif
32: if (valid(iobj) && !(iobj in {who, dobj, @excluding}))
33: x = iobj
34: iobj = you
35: x:tell($string_utils:pronoun_sub(this:fixpos(tell, "%i"), who, thing, where))
36: iobj = x
37: endif
38: "Last modified by Dax (#789) on Tue May 3 14:03:27 2005 MDT."