#include "std.h" int gate_is_open; object watchman,sturdy_sword,dog; #undef EXTRA_INIT #define EXTRA_INIT add_action("pull_ring"); add_verb("pull"); #undef EXTRA_RESET #define EXTRA_RESET\ gate_is_open = 0;\ extra_reset(); extra_reset() { if (!watchman || !living(watchman)) { watchman = clone_object("obj/monster"); call_other(watchman, "set_name", "watchman"); call_other(watchman, "set_level",14); call_other(watchman, "set_short", "The night watchman is here"); call_other(watchman, "set_ac", 4); call_other(watchman, "set_wc",15); call_other(watchman, "set_aggressive", 1); move_object(watchman, this_object()); sturdy_sword = clone_object("obj/weapon"); call_other(sturdy_sword, "set_name", "A sword"); call_other(sturdy_sword, "set_short", "A sturdy sword"); call_other(sturdy_sword, "set_class",15); call_other(sturdy_sword, "set_alt_name", "sword"); call_other(sturdy_sword, "set_alias","sword"); call_other(sturdy_sword, "set_value",700); call_other(sturdy_sword, "wield","sword"); move_object(sturdy_sword, watchman); dog = clone_object("obj/monster"); call_other(dog, "set_name", "dog"); call_other(dog, "set_short", "A guard dog is here"); call_other(dog, "set_ac",1); call_other(dog, "set_level",8); call_other(dog, "set_wc",10); move_object(dog, this_object()); } } THREE_EXIT("players/kantele/torture_chamber","west", "players/kantele/west_temple","east", "players/kantele/dungeon_corridor.c","south", "A guard room", "A guard room, you can leave to east into a hall, west into a torture room\n" + "and south into a dungeon corridor. A large iron ring is fastende in the\n" + "wall.",0) pull_ring(str) { if (str == "ring" && gate_is_open == 1) { write("you pull the ring.\n"); gate_is_open = 0; say(call_other(this_player(), "query_name") + " pulls the ring.\n"); tell_room(this_object(), "You hear a grinding sound.\n"); return 1; } if (str =="ring" && gate_is_open == 0) { write("you pull the ring.\n"); gate_is_open = 1; say(call_other(this_player(), "query_name") + " pulls the ring.\n"); tell_room(this_object(), "You hear a crunshing sound.\n"); return 1; } } id(str) { return str == "ring";} query_gate() { return !gate_is_open; }