#include "std.h" int gate_is_open1,gate_is_open2,gate_is_open3; object watchman,sturdy_sword,dog; #undef EXTRA_INIT #define EXTRA_INIT add_action("pull_ring"); add_verb("pull"); #undef EXTRA_LONG #define EXTRA_LONG\ if (str == "ring" || str == "rings") {\ write("it looks like the rings is fastened to some sort of wire.\n");\ return 1;\ } #undef EXTRA_RESET #define EXTRA_RESET\ gate_is_open1 = 0;\ gate_is_open2 = 0;\ gate_is_open3 = 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_bridge.c","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. Three large iron rings is fastend in the\n" + "wall.",0) pull_ring(str) { if (str == "ring 1" && gate_is_open1 == 1) { write("you pull the ring.\n"); gate_is_open1 = 0; say(call_other(this_player(), "query_name") + " pulls ring 1.\n"); tell_room(this_object(), "You hear a grinding sound.\n"); return 1; } if (str =="ring 1" && gate_is_open1 == 0) { write("you pull the ring.\n"); gate_is_open1 = 1; say(call_other(this_player(), "query_name") + " pulls ring 1.\n"); tell_room(this_object(), "You hear a crunshing sound.\n"); return 1; } if (str == "ring 2" && gate_is_open2 == 1) { write("you pull the ring.\n"); gate_is_open2 = 0; say(call_other(this_player(), "query_name") + " pulls ring 2.\n"); tell_room(this_object(), "You hear a grinding sound.\n"); return 1; } if (str =="ring 2" && gate_is_open2 == 0) { write("you pull the ring.\n"); gate_is_open2 = 1; say(call_other(this_player(), "query_name") + " pulls ring 2.\n"); tell_room(this_object(), "You hear a crunshing sound.\n"); return 1; } if (str == "ring 3" && gate_is_open3 == 1) { write("you pull the ring.\n"); gate_is_open3 = 0; say(call_other(this_player(), "query_name") + " pulls ring 3.\n"); tell_room(this_object(), "You hear a grinding sound.\n"); return 1; } if (str =="ring 3" && gate_is_open3 == 0) { write("you pull the ring.\n"); gate_is_open3 = 1; say(call_other(this_player(), "query_name") + " pulls ring 3.\n"); tell_room(this_object(), "You hear a crunshing sound.\n"); return 1; } } id(str) { return str == "ring 1" || str == "ring 2" || str == "ring 3" || str == "ring"|| str == "rings"; } query_gate2() { return !gate_is_open2; } query_gate1() { return !gate_is_open1; } query_gate3() { return !gate_is_open3; }