/* Filename : biggnome.c * Description : an big unfriendly gnome * * written : 04-10-1996 - Gunner * last modified : 28-05-1998 - Gunner * HTML-Version : 04-02-2000 - Ghorwin */ #include <mudlib.h> inherit I_MONSTER; #define FUNC "/doc/crashcourse/course08/gnomefuncs" create() { ::create(); set_name("Big gnome"); add_id(({"gnome","really big gnome"})); set_short("A big gnome"); set_long("This is one big gnome. He's really big.\n"); set_level(20); set_race("gnome"); load_chat(20,({"The big gnome says: Tiny!\n", "The big gnome says: Pissant!\n", "The big gnome says: Turd!\n"})); add_hook("__catch_tell",({FUNC,"catch_biggnome"}),this_object()); replace_program(I_MONSTER); }
/* Filename : smallgnome.c * Description : an small unfriendly gnome * * written : 04-10-1996 - Gunner * last modified : 28-05-1998 - Gunner * HTML-Version : 04-02-2000 - Ghorwin */ #include <mudlib.h> inherit I_MONSTER; #define FUNC "/doc/crashcourse/course08/gnomefuncs" create() { ::create(); set_name("Small gnome"); add_id(({"gnome","really small gnome"})); set_short("A small gnome"); set_long("This is one small gnome. He's really small.\n"); set_level(2); set_race("gnome"); load_chat(20,({"The small gnome says: Turkey!\n", "The small gnome says: Goofball!\n", "The small gnome says: Goon!\n"})); add_hook("__catch_tell",({FUNC,"catch_smallgnome"}),this_object()); replace_program(I_MONSTER); }
/* Filename : gnomefuncs.c * Description : functionfile for gnomes * * written : 04-10-1996 - Gunner * last modified : 28-05-1998 - Gunner * HTML-Version : 04-02-2000 - Ghorwin */ #include <mudlib.h> #include "/doc/crashcourse/defs.h" inherit I_DAEMON; /* * catch_biggnome : The big gnome receives a message */ void catch_biggnome(object gnome, string message) { string insult, tell; // Delete the last '\n' from the message, if any if (message[-1..-1] == "\n") message = message[0..strlen(message)-2]; if (sscanf(message,"The small gnome says: %s",insult) != 1) return; // Nothing happens... tell = "The big gnome thunders: What? Who are you calling " "a " + insult + "?!?\n"; call_out("send_message",2,ENV(gnome),tell); } /* * catch_smallgnome : The small gnome receives a message */ void catch_smallgnome(object gnome, string message) { string insult, tell; // Delete the last '\n' from the message, if any if (message[-1..-1] == "\n") message = message[0..strlen(message)-2]; if (sscanf(message,"The big gnome says: %s",insult) != 1) return; // Nothing happens... tell = "The small gnome wimpers: Hey! Why are you hacking " "on me? I'm not a " + insult + "\n"; call_out("send_message",2,ENV(gnome),tell); } /* * send_message : Delay the reply so it won't get before the insult. ;-) */ void send_message(object room, string message) { if (room) tell_room(room,message); }