// Incoming emote for a user private void emoteto_reply(mixed *packet) { object user; mixed *err; if (sizeof(packet) != (S_P + SIZEOF_EMOTETO)) { packet_invalid(packet); return; } if (!(user = find_player(packet[P_RECIPIENT]))) { err = packet_allocate(ERROR_PACKET); err[P_DESTINATION] = packet[P_SOURCE]; err[P_RECIPIENT] = packet[P_SENDER]; err[S_P + ERROR_CODE] = "unk-user"; err[S_P + ERROR_MESSAGE] = MUD_ERRORS["unk-user"]; err[S_P + ERROR_ERRPACKET] = packet; add_buffer(0, err); send_buffer(0); return; } tell_object(user, sprintf("%s@%s %s\n", packet[S_P + EMOTETO_SHORT], packet[P_SOURCE], packet[S_P + EMOTETO_MESSAGE])); } /* emote_reply() */ // Initiate a remote emote int emote(string user, string mud, string message) { mixed *packet; if ((shutdown) || (!mud_exists(mud))) return 0; // Service is unavailable packet = packet_allocate(EMOTETO_PACKET); packet[P_SENDER] = TU -> query_name(); packet[P_DESTINATION] = mud; packet[P_RECIPIENT] = user; packet[S_P + EMOTETO_SHORT] = TU -> query_cap_name(); packet[S_P + EMOTETO_MESSAGE] = message; add_buffer(0, packet); send_buffer(0); return 1; } /* emote() */