// File : /cmds/xtra/_zap.c // Creator : Watcher@TMI (03/27/93) // // This is the wizard zap command which kills the intended target. #include <mudlib.h> #include <logs.h> inherit DAEMON; #define SYNTAX "Syntax: zap [target]\n" #define GUEST_NO_ZAP 1 int cmd_zap(string str) { object target, targetenv; notify_fail( SYNTAX ); if(!str || str == "") return 0; #ifdef GUEST_NO_ZAP if (getuid(this_player())=="guest") { notify_fail ("Guest is not permitted to zap.\n") ; return 0 ; } #endif str = lower_case(str); targetenv = environment(this_player()); if (!targetenv) { write("A flash of lightning is consumed in the dark void.\n"); return 1; } target = present(str, targetenv); if(!target) { write("Zap: There is no such living object here.\n"); return 1; } if(!living(target)) { write("Zap: That object is not alive.\n"); return 1; } if(target->link_data("dead") || target->query_dead() || target->query("dead")) { write("Zap: That object is already dead.\n"); return 1; } if(wizardp(target) && target->query("immortal")) { write("Zap: That wizard is immortal, and cannot be killed.\n"); return 1; } // Mobydick thinks this'll be really funny. if (interactive(target) && adminp(getuid(this_player()))==0) target = this_player() ; tell_room(environment(this_player()), (string)this_player()->query("cap_name") + " summons a flash " + "of lightning from the heavens, and " + (string)target->query("cap_name") + " is\nstruck down dead by its " + "destructive power.\n", ({ this_player(), target })); if(target != this_player()) tell_object(target, (string)this_player()->query("cap_name") + " summons a flash " + "of lightning from the heavens. It strikes\nyou in the chest " + "and everything suddenly goes dark.\n"); if(target != this_player()) write("You zap " + (string)target->query("cap_name") + ".\n"); else write("You zap yourself.\n"); target->receive_damage( 1000 ); // Overkill <grin> #ifdef ZAP_LOG if(interactive(target)) log_file(ZAP_LOG, (string)this_player()->query("cap_name") + " zapped " + (string)target->query("cap_name") + " [" + extract(ctime(time()), 4, 15) + "]\n"); #endif return 1; } int help() { write( SYNTAX + "\n" + "This command allows a wizard to strike dead any living mortal object.\n" + "If a wizard has their \"immortal\" property set, they cannot be " + "killed.\nZapping players or other wizards without their permission"+ " is a\nviolation of the rules, and may get your character dewizzed or "+ "nuked, or\nyour site banned.\n") ; return 1; }