int filter_snoopers(object ob) { object tmp; seteuid(UID_SNOOP); tmp = query_snoop(ob); seteuid(getuid()); return !(!tmp); }
int cmd_st(string str) { mixed *user_list; object who; int loop; if (!adminp(geteuid(TP)) && !lawp(geteuid(TP))) { notify_fail("St: Permission denied.\n"); return 0; } if(!str || str == "") { user_list = users(); user_list = filter_array(user_list, "filter_snoop", this_object()); if(!user_list || !sizeof(user_list)) { write("St: No one is presently being snooped.\n"); return 1; } printf("Snoop Trace Display [%d user%s]\n", sizeof(user_list), ((sizeof(user_list) > 1) ? "s" : "")); write("===================\n\n"); for(loop=0; loop<sizeof(user_list); loop++) printf("%s is being snooped by %s\n", (string)user_list[loop]->link_data("cap_name"), (string)query_snoop(user_list[loop])->link_data("cap_name") ); write("\n"); return 1; } str = lower_case(str); who = find_player(str); if(!who) { notify_fail("St: No such user.\n"); return 0; } if(query_snoop(who)) printf("St: %s is being snooped by %s.\n", (string)who->query("cap_name"), (string)query_snoop(who)->link_data("cap_name")); else printf("St: %s is not presently being snooped.\n", (string)who->query("cap_name")); return 1; }
int main(object me, string arg) { object ob, ob1; if( !arg ) { if( objectp(ob = query_snooping(me)) ) write("─у╧╓╘┌╒¤╘┌╝р╠¤" + ob->query("name") + "╦∙╩╒╡╜╡─╤╢╧вбг\n"); else write("─у╧╓╘┌▓╗╘┌╝р╠¤╚╬║╬╨┼╧вбг\n"); return 1; } else if( arg=="none" ) { if( objectp(ob = query_snooping(me)) && wiz_level(ob) >= wiz_level(me) ) tell_object(ob, HIW + me->name(1) + "═г╓╣╝р╠¤─у╦∙╩╒╡╜╡─╤╢╧вбг\n" NOR); snoop(me); if (objectp(ob)) write("─у╧╓╘┌═г╓╣╝р╠¤" + ob->query("name") + "╦∙╩╒╡╜╡─╤╢╧вбг\n"); else write("─у╧╓╘┌▓╗╘┌╝р╠¤╚╬║╬╨┼╧вбг\n"); return 1; } ob = find_player(arg); if(!ob) ob = find_living(arg); if(!ob || !me->visible(ob)) return notify_fail("├╗╙╨╒т╕Ў╚╦бг\n"); if( wizhood(me) != "(admin)" && wiz_level(me) <= wiz_level(ob) ) return notify_fail("─у├╗╙╨╝р╠¤" + ob->name() + "╦∙╩╒╠¤╤╢╧в╡─╚и└√бг\n"); if( me==ob ) return notify_fail("╟ы╙├ snoop none ╜т│¤╝р╠¤бг\n"); if (objectp(ob1=query_snoop(ob))) return notify_fail(ob1->name()+"╒¤╘┌╝р╠¤"+ob->name()+"╡─╨┼╧вбг\n"); if (ob->query_temp("netdead",1)) return notify_fail("┤╦╚╦╒¤┤ж╘┌╢╧╧▀╫┤╠мбг\n"); if (!userp(ob)) return notify_fail("├╗╖и╟╘╠¤NPC╨┼╧в╡─бг\n"); snoop(me, ob); write("─у╧╓╘┌┐к╩╝╟╘╠¤" + ob->name(1) + "╦∙╩╒╡╜╡─╤╢╧вбг\n"); if( userp(ob) ) log_file("SNOOP_PLAYER", sprintf("%s(%s) snoops %s on %s.\n", me->name(1), geteuid(me), ob->name(1), ctime(time()) ) ); if( wizardp(ob) && wizhood(me) != "(admin)") tell_object(ob, HIW + me->name(1) + "┐к╩╝╝р╠¤─у╦∙╩╒╡╜╡─╤╢╧вбг\n" + NOR); return 1; }
int cmd_snoopers(string str) { object *who; object snooper; int i, max; // if(!archp(previous_object())) return 0; who=users(); if(!(max = sizeof(who))) { write("No one is snooping anyone.\n"); return 1; } for (i = 0; i < sizeof(who); i++) { seteuid(UID_SNOOP); snooper = query_snoop(who[i]); seteuid(getuid()); if(member_group(geteuid(snooper), "superuser") && !member_group(geteuid(previous_object()), "superuser")) continue; write(capitalize((string)who[i]->query_name())+" is being snooped by "+capitalize((string)snooper->query_name())+".\n"); } return 1; }
static object filter_snoop(object obj) { return query_snoop(obj); }