#include "std.h" string rope; object ogre; int payed,bridge_is_down; #undef EXTRA_INIT #define EXTRA_INIT\ add_action("pay_troll"); add_verb("pay");\ add_action("down"); add_verb("down");\ add_action("down"); add_verb("climb");\ add_action("west"); add_verb("west");\ add_action("tie"); add_verb("tie");\ add_action("untie"); add_verb("untie");\ add_action("jump_down"); add_verb("jump"); pay_troll(str) { if (str && str =="troll" && ogre) { write("The troll don't want you'r stinking money !\n"); return 1; } } west() { if (call_other(this_player(), "query_level", 0) < 20) { if (bridge_is_down == 1) { write("The bridge is down.\n"); return 1; } else { if (ogre && present(ogre, this_object()) && payed ==1) { write("The Troll bars your way !\n"); return 1; } } } call_other(this_player(), "move_player", "west#players/kantele/west_bridge"); return 1; } #undef EXTRA_RESET #define EXTRA_RESET\ extra_reset(); extra_reset() { payed=1; bridge_is_down=0; if (!ogre || !living(ogre)) { ogre = clone_object("obj/monster"); call_other(ogre, "set_name", "troll"); call_other(ogre, "set_level",19); call_other(ogre, "set_al", -300); call_other(ogre, "set_short", "A large Troll is here"); call_other(ogre, "set_wc",25); call_other(ogre, "set_ac",2); call_other(ogre, "add_money", random(1000)+100); move_object(ogre, this_object()); } } ONE_EXIT("players/kantele/dirty_temple.c","east", "Besides a rickety wooden bridge", "A rickety wooden bridge extends across the chasm to the west\n" + "vanishing into the darkness. A sign posted on the bridge reads:\n" + "'stop! pay troll!' ",0) down() { if (!rope) { write("You would fall down the chasm and possible hurt yourself.\n"); return 1; } call_other(this_player(), "move_player", "down#players/kantele/bottom_chasm"); } tie(str) { if (str != "bridge") return 0; rope = 1; return 1; } untie(str) { rope = 0; return 1; } query_rope() { return rope; } jump_down(arg) { if (arg != "down") { write("You throw yourself into the chasm !\n"); write("You hit the dirt hard......\n"); call_other(this_player(), "hit_player",20); call_other(this_player(), "move_player", "jump_down#players/kantele/bottom_chasm") ; } } id(str) { if (str == "bridge") return 1; if (str == "chasm") return 1; }