grruffin@netcom.com (Giovanni Ruffini) writes: > I've been trying to figure out the best way to do a send_to_zone in the > same vein as send_to_room, send_to_all, etc, but I've never been really > good at reconciling rnums and vnums for rooms and zones, and that's pretty > important for a piece of code like that, so if any of you have done > anything like this, or have ideas how it should be done, I'd appreciate > input. I'm envisioning calling send_to_zone from spec_procs, or anything > like that, but I'm not sure if it would be best to send the zones rnum or > vnum as a parameter, or from there, how to get the rnums of the lower > and upper ranged rooms in the zone (I was considering a loop of send_to_ > rooms, but that doesn't strike me as very efficient). > Ideas, anyone? Here's what we use for a "zecho" command for Circle v2.01: ACMD(do_zecho) { int i; struct descriptor_data *pt; if (IS_NPC(ch)) return; for (i = 0; *(argument + i) == ' '; i++) ; if (!*(argument + i)) send_to_char("That must be a mistake...\n\r", ch); else { sprintf(buf, "%s\n\r", argument + i); for (pt = descriptor_list; pt; pt = pt->next) if (!pt->connected && pt->character && pt->character != ch && world[pt->character->in_room].zone == world[ch->in_room].zone) act(buf, FALSE, ch, 0, pt->character, TO_VICT); if (PRF_FLAGGED(ch, PRF_NOREPEAT)) send_to_char("Ok.\n\r", ch); else send_to_char(buf, ch); } } You'll need to change it to ask for a zone argument, but other than that, it should work fine. -Jeff
This archive was generated by hypermail 2b30 : 12/07/00 PST