varargs void say(mixed str, object ob) { if(!this_player()) error("say() makes no sense with no this_player()\n"); if(!environment(this_player())) return; message("say", str+"", environment(this_player()), (objectp(ob) ? ({ this_player(), ob }) : ({ this_player() }))); } void tell_object(object ob, mixed str) { message("tell", str+"", ob); } varargs void tell_room(object ob, mixed str, mixed exclude) { if(!ob) return; message("environment", (str ? str+"" : ""), ob, (exclude ? (pointerp(exclude) ? exclude : ({exclude})) : ({}))); } varargs void shout(mixed str, mixed exclude) { if(objectp(exclude)) exclude = ({ exclude }); else if(!pointerp(exclude)) exclude = ({}); if(this_player()) exclude += ({ this_player() }); message("shout", str+"", users(), exclude); }