I'm trying to write a code so if a certain flag, PLR_WATCHED for
example, is affecting a player then everything that player types and
sees is recorded in a file. Basically snoop into a file. I added the
flag and the following in process_output in comm.c:
if (!t->prompt_mode) /* && !t->connected) */
result = write_to_descriptor(t->descriptor, i);
else
result = write_to_descriptor(t->descriptor, i + 2);
/* handle snooping: prepend "% " and send to snooper */
if (t->snoop_by) {
SEND_TO_Q("% ", t->snoop_by);
SEND_TO_Q(t->output, t->snoop_by);
SEND_TO_Q("%%", t->snoop_by);
}
> if (PLR_FLAGGED(t->character, PLR_WATCHED)){
> sprintf(buf, "echo \"%s\" >> ../log/snoop/\"%s\"", t->output, GET_NAME(t->character));
> system(buf);
> }
And simular in process_input. It crashes the mud as soon as anyone tries
to connect.
However if I put the block inside the if (t->snoop_by) block then
whenever someone is
snooping a player everything is logged. Like this:
if (!t->prompt_mode) /* && !t->connected) */
result = write_to_descriptor(t->descriptor, i);
else
result = write_to_descriptor(t->descriptor, i + 2);
/* handle snooping: prepend "% " and send to snooper */
if (t->snoop_by) {
SEND_TO_Q("% ", t->snoop_by);
SEND_TO_Q(t->output, t->snoop_by);
SEND_TO_Q("%%", t->snoop_by);
> if (PLR_FLAGGED(t->character, PLR_WATCHED)){
> sprintf(buf, "echo \"%s\" >> ../log/snoop/\"%s\"", t->output, GET_NAME(t->character));
> system(buf);
> }
}
Any way I can get this to work? I think I've seen a code for this
somewhere but I've checked
both the FTP site and the snippits page and no one has it. Any help
would be appreciated.
Pheonix Shadowflame
+------------------------------------------------------------+
| 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