Fairly important if you use the snippet, and people may find it as a good idea for thief skills. (Note that I am not an e-mail gateway but this has merit.) ---------- Forwarded message ---------- Date: Fri, 27 Nov 1998 14:37:26 -0500 From: the count <eglamkowski@angelfire.com> To: greerga@circlemud.org Subject: eavesdrop snippet I put in to subscribe to the mailing list, but haven't gotten added yet, and I know if I don't tell somebody about this now, I'll forget later... ;) So, I went a downloaded the eavesdrop snippet and added it to my mud. Then I started it up and set some characters eavesdropping and... nothing! Upon closer inspection, eavesdrop does its work in send_to_room() which is used by... purge! Yes, that's it, only the purge command uses send_to_room(). It isn't in any macros, so I know that is it. In order for the command to actually be useful, you need to add the eavsdropping code that the snippet tells you to put in send_to_room() in perform_act() as well. Something like (untested): struct char_data *eavesdropper = NULL; for (eavesdropper = world[ch->in_room].listening; eavesdropper; eavesdropper = eavesdropper->next_listener) { if (eavesdropper->desc) { /* the ------'s are used to differentiate eavesdropped stuff from * the stuff that is happening in the same room as the char.. * looks like: * ------- * john dropped a sword * ------ */ sprintf(buf2, "----------\r\n%s----------\r\n", lbuf); SEND_TO_Q(CAP(buf2), eavesdropper->desc); } } Well, I just wanted to point that out, since it is otherwise a very interesting idea for a thief skill. I also think it should have some penalty to use, such as a small movement cost, but I digress... ;) I also added in the two scan commands from the ftp site, one as a general scan command for anybody (the one that goes out three rooms) and one as a thief skill (the one that goes out up to seven rooms, depending on level) called scout. In case you are looking for interesting ways to beef up the thief class, I find these skills work well. Also the listen snippet, since that is very different from the eavesdrop as you can listen behind a door, but only get info on numbers of mobs/pc's in that room. ----------------------- Date: Fri, 27 Nov 1998 17:14:42 -0700 From: Edward J Glamkowski <eglamkowski@angelfire.com> To: George <greerga@circlemud.org> Subject: Re: eavesdrop snippet >> I put in to subscribe to the mailing list, but >> haven't gotten added yet, and I know if I don't tell >> somebody about this now, I'll forget later... ;) > >Want me to forward it? Actually, you can forward the tested, working version ;) at the beginning of act() in comm.c, add: struct char_data *evasdropper; and then at the end of act(): for (; to; to = to->next_in_room) { if (!SENDOK(to) || (to == ch)) continue; if (hide_invisible && ch && !CAN_SEE(to, ch)) continue; if (type != TO_ROOM && to == vict_obj) continue; perform_act(str, ch, obj, vict_obj, to); } /* ADD EAVESDROP STUFF HERE: */ /* Send action to any eavesdroppers in neighboring rooms */ for (eavesdropper = world[ch->in_room].listening; eavesdropper; eavesdropper = eavesdropper->next_listener) { if (eavesdropper->desc) { /* the ------'s are used to differentiate eavesdropped stuff from * the stuff that is happening in the same room as the char.. * looks like: * ------- * john dropped a sword * ------ */ SEND_TO_Q("----------\r\n", eavesdropper->desc); perform_act(str, ch, obj, vict_obj, eavesdropper); SEND_TO_Q("----------\r\n", eavesdropper->desc); } } +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST