#include "std.h" object knight,chainmail,blade; #undef EXTRA_RESET #define EXTRA_RESET\ extra_reset(); extra_reset() { if (!knight || !living(knight)) { knight = clone_object("obj/monster"); call_other(knight, "set_name", "knight"); call_other(knight, "set_short", "A black knight is here"); call_other(knight, "set_level",19); call_other(knight, "set_whimpy"); call_other(knight, "set_al",- 200); call_other(knight, "set_hp",250); call_other(knight, "set_wc",25); call_other(knight, "set_ac", 4); call_other(knight, "set_aggressive", 1); call_other(knight, "set_move_at_reset"); move_object(knight, this_object()); chainmail = clone_object("obj/armour"); call_other(chainmail, "set_ac",4); call_other(chainmail, "set_alias","armour"); call_other(chainmail, "set_type","armour"); call_other(chainmail, "set_alias","mail"); call_other(chainmail, "set_name", "chainmail"); call_other(chainmail, "set_value", 500); call_other(chainmail, "set_short", "A death black chainmail"); call_other(chainmail, "set_weight",5); move_object(chainmail, knight); blade = clone_object("obj/weapon"); call_other(blade, "set_name", "A black demon blade"); call_other(blade, "set_short", "A black demon blade"); call_other(blade, "set_hit_func", this_object()); call_other(blade, "set_alt_name", "blade"); call_other(blade, "set_value",5000); call_other(blade, "set_wield_func", this_object()); call_other(blade,"set_alias","sword"); move_object(blade, knight); } } TWO_EXIT("players/kantele/office2","west", "players/kantele/training_room","east", "Knights room", "You are in 'the knights room', the rooms simple furnishing and\n"+ "and black dekor, shows what type of man he is, you can enter the\n"+ "training room to the east. ",1) wield(weap) { int alig,evil; alig = call_other(this_player(),"query_alignment"); if(alig > 0) { write("The blade gives you an electric jolt.\n"); write("The blade don't like you, you're too stinking good.\n"); call_other(this_player(),"hit_player",20); return 0; } else { if (evil ==0) { evil =1; call_other(this_player(),"add_alignment",-4); write("You feel more evil.\n"); } return 1; } } weapon_hit(attacker) { int alig,dam; alig = call_other(attacker,"query_alignment"); if(alig > 0){ dam = random(25); if(dam < 10) return 0; if(dam < 15) write("The blade flashes.\n"); else if(dam < 20) write("The blade flashes happily.\n"); else if(dam < 24) write("The blade flashes happily, and gives out a happy cry.\n"); else if(dam == 24) { write("The blade flashes happily, and you can feel its evil might.\n"); tell_room(this_object(), "The black demon blade flashes !\n"); call_other(this_player(),"heal_self",random(10)); write("You feel stronger.\n"); dam = dam + random(20); if (dam == 63) { write("And the blade flashes.\n"); call_other(this_player(),"heal_self",random(10)); write("You feel stronger.\n"); tell_room(this_object(), "The black demon blade flashes, and gives out a happy cry.\n"); } } return dam; } dam = random(15); return dam; }