object my_player; void dest_shadow(); int test_add() { return 0; } void setup_shadow(object ob, int length) { if(!length) length = 100; shadow(ob,1); my_player = ob; add_action("do_suppress", ""); call_out("dest_shadow", length); } int do_suppress(string str) { if (str == "wake") dest_shadow(); if (str == "quit" || str == "l" || str == "look") return 0; write("You are paralyzed, and can do nothing.\n"); return 1; } attack_by(object ob) { tell_object(ob, "You kill the paralyzed "+my_player->query_cap_name()+".\n"); tell_object(my_player, "You were killed while paralyzed by the " "infamous "+ob->query_cap_name()+".\n"); my_player->do_death(); return 1; } string short() { if (!my_player) return "Paralyze shadow"; return my_player->short()+" [paralyzed]"; } void dest_shadow() { remove_action("do_suppress", "*"); tell_object(my_player, "You are released from you paralysis.\n"); tell_room(environment(my_player), my_player->query_cap_name()+" regains "+ my_player->query_possessive()+" mobility.\n", my_player); destruct(this_object()); }