inherit "/obj/monster"; int ob; mapping treewalking_quest; void setup() { treewalking_quest = ([ ]); set_name("treewalker"); set_main_plural("treewalkers"); set_race("elf"); set_short("treewalker"); set_long("An agile young elf, skilled at walking from tree " "branch to tree branch.\n"); set_random_stats(10,18); set_level(15); set_wimpy(0); set_al(-200); // add_attack("spell", 0, 10, 210, 50, 0, "magic"); } void init() { ::init(); add_action("train","train"); if (!this_player()->query_property("treewalk") && interactive(this_player()) && !sizeof(query_attacker_list())) { treewalking_quest[this_player()] = 1; call_out("start_quest", 0, this_player()); } } void event_exit(object ob, string mess, object *avoid) { if (treewalking_quest[ob]) treewalking_quest = m_delete(treewalking_quest, ob); } void start_quest(object ob) { do_command("say " + (string) ob->query_cap_name()+ ", have you come here to study the elven art of treewalking?\n"); } void event_person_say(object ob, string str, string mess) { string s1, s2; string *list; mess = lower_case(mess); //tell_room(environment(this_object()),(string)ob->query_name()+"["+str+"]["+mess+"]\n"); list = explode(mess," "); if(member_array("yes",list) >=0|| member_array("study",list) >= 0 || member_array("learn",list) >= 0) if (treewalking_quest[ob] == 1) call_out("second_question", 0, ob); } void second_question(object ob) { if(ob->query_al() < 40) { tell_object(ob,(string)ob->query_cap_name()+ ", you are a healthy young elf. You should be able to " "learn this skill I can teach. Please 'train' with me, " "and I'll instruct you in the art of crossing trees.\n"); treewalking_quest[ob] = 2; } else { tell_object(ob,"I will teach nothing to unworthy people. If you ever " "learn to follow the path of goodness, you may come back to learn.\n"); treewalking_quest = m_delete(treewalking_quest, ob); } } int train() { if (!ob==2) return 0; else { write(this_player()->query_cap_name()+" studies the ancient elven skill.\n"); say("You master the ancient elven skill.\n"); call_out("give_treewalking",0,(this_player())); return 1; } } void give_treewalking(object ob) { tell_room(environment(this_object()), "The Treewalker quickly " "teaches "+ob->query_cap_name()+" the art of walking on trees.\n", ({ ob })); tell_object(ob, "The treewalker proclaims proudly to you:" "You are taught a useful skill. You now have the treewalking skill.\n"); treewalking_quest = m_delete(treewalking_quest, ob); ob->add_property("treewalking", 1); }