// _protect.c // The protection command. One player may protect another. If A protects B, // then all attacks directed against player B hit player A instead. // Protection loops are not allowed; that is, if A protects B and B // protects C, then attacks against A hit B regardless of C's best // intentions. // This makes it possible for fighters to protect spellcasters while // spells are cast, for high-skill players to protect low-skill ones, // whatever you like. // Mobydick, 6-13-93 #include <mudlib.h> inherit DAEMON ; int help() ; int cmd_protect (string str) { object damsel ; string *foo ; if (!str) return help() ; damsel = present(str,environment(this_player())) ; if (!damsel || !userp(damsel)) { notify_fail ("There's no one by that name to protect.\n") ; return 0 ; } write ("You begin protecting "+capitalize(str)+".\n") ; tell_object (damsel, this_player()->query("cap_name")+ "begins protecting you.\n") ; damsel->add("protectors", ({ this_player()->query("name") }) ) ; this_player()->add("protectees", ({ str }) ) ; return 1 ; } int help() { write ("Usage: protect <player>\n\n"+ "The protect command lets you protect a given player against attacks by\n"+ "monsters or other players. If you are protecting another player, then\n"+ "when you are in the same room as that player, all weapon attacks against\n"+ "that player will hit you instead. Spell attacks will not be stopped.\n"+ "\nSee also: unprotect.\n") ; return 1 ; }