MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // (c) by Padreic (Padreic@mg.mud.de) |
| 2 | |
| 3 | #include "../files.h" |
| 4 | #include <combat.h> |
| 5 | #include <new_skills.h> |
| 6 | |
| 7 | inherit NPC("stdnpc"); |
| 8 | |
| 9 | void create() |
| 10 | { |
| 11 | ::create(); |
| 12 | SetProp(P_NAME, "Waechter des Waldes"); |
| 13 | SetProp(P_SHORT, "Der Waechter des Waldes"); |
| 14 | SetProp(P_LONG, |
| 15 | "Vor Dir steht eine sehr sehr alte Eiche. Doch diese Eiche ist keine\n" |
| 16 | +"gewoehnliche Eiche, wie Du sie bereits an vielen anderen Stellen gesehn hast.\n" |
| 17 | +"Diese Eiche lebt! Du kannst deutlich einen Mund, eine Nase und sogar zwei\n" |
| 18 | +"Ohren erkennen. Sie ist eigentlich sehr friedlich gesonnen, kann aber auch\n" |
| 19 | +"sehr sehr boese werden, wenn es jemand wagt die Ruhe des Waldes zu stoeren.\n"); |
| 20 | SetProp(P_RACE, "eiche"); |
| 21 | SetProp(P_AGGRESSIVE, 0); |
| 22 | SetProp(P_LEVEL, 100); |
| 23 | SetProp(P_ATTRIBUTES, (["int":80,"con":100,"str":100,"dex":20]) ); |
| 24 | SetProp(P_GENDER, MALE); |
| 25 | SetProp(P_MAX_HP, 1000); |
| 26 | SetProp(P_HP, 1000); |
| 27 | SetProp(P_ALIGN, 500); |
| 28 | SetProp(P_BODY, 100); |
| 29 | SetProp(P_SIZE, 1500); |
| 30 | SetProp(P_DISABLE_ATTACK, -10000); // is nich :) |
| 31 | AddId(({"eiche", "waechter","waechter des waldes", WALDID("waechtereiche") })); |
| 32 | SetProp(P_HANDS, ({" mit einem seiner langen Aeste",550,DT_WHIP}) ); |
| 33 | SetProp(P_SKILL_ATTRIBUTE_OFFSETS, ([SA_SPEED:210])); |
| 34 | SetProp(P_NOCORPSE, 1); |
| 35 | SetProp(P_XP, 1000*550*5); |
| 36 | SetProp(P_DEFAULT_INFO, "bleibt absolut regungslos und reagiert ueberhaupt nicht.\n"); |
| 37 | SetProp(P_RESISTANCE_STRENGTHS, |
| 38 | ([DT_SLASH: 0.1, |
| 39 | DT_MAGIC: -1.0, |
| 40 | DT_BLUDGEON: -0.5, |
| 41 | DT_POISON: 0.25, |
| 42 | DT_HOLY: -1.0, |
| 43 | DT_RIP: 0.25, |
| 44 | DT_FIRE: 0.25, |
| 45 | DT_PIERCE: -0.5, |
| 46 | DT_WHIP: -1.0 ]) ); |
| 47 | AddCmd(({"osten", "westen"}), "cmd_blocken"); |
| 48 | } |
| 49 | |
| 50 | static string _query_info() |
| 51 | { |
| 52 | if (!PL || PL->QueryProp(ZAUBERWALD)<=time()) |
| 53 | return "Die alte Eiche ist Dir sehr friedlich gesonnen. Es ist jedoch auch sicher\n" |
| 54 | +"klug dieses nicht zu aendern, da sie mit ihren Aesten wohl auch sehr kraeftig\n" |
| 55 | +"zuschlagen kann.\n"; |
| 56 | return "Du hast den Zorn der alten Waechtereiche auf Dich gezogen, das war ganz und\n" |
| 57 | +"gar nicht klug von Dir. Jetzt lebe auch mit den Konsequenzen....\n"; |
| 58 | } |
| 59 | |
| 60 | static int cmd_blocken() |
| 61 | { |
| 62 | if (PL->QueryProp(P_RACE)=="Dunkelelf" && |
| 63 | PL->QueryProp(AUSGANG)==query_verb()) { |
| 64 | write(BS(Name(WER, 1)+" laesst Dich nicht vorbei.") |
| 65 | +break_string("Du solltest hier besser verschwinden, " |
| 66 | +"so Typen wie Du sind hier nicht gern gesehn!", |
| 67 | 78, Name(WER, 1)+" sagt: ")); |
| 68 | return 1; |
| 69 | } |
| 70 | if (PL && PL->QueryProp(ZAUBERWALD) && |
| 71 | PL->QueryProp(AUSGANG)==query_verb()) { |
| 72 | write(BS(Name(WER, 1)+" steht Dir da leider im Weg und laesst Dich nicht vorbei.")); |
| 73 | return 1; |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | int remove() |
| 78 | { |
| 79 | call_other(ROOM("weg1"), "delay_reset"); |
| 80 | return (int)::remove(); |
| 81 | } |
| 82 | |
| 83 | void NotifyPlayerDeath(object who, object killer, object lost_exp) |
| 84 | { |
| 85 | if (!who || killer!=ME) return; // uninteressant |
| 86 | log_file("padreic/kill", ctime(time())+" "+capitalize(getuid(who))+" getoetet von /zauberwald/waechter\n"); |
| 87 | } |