/* file "/u/k/kalypso/workroom.c" *code stollen from "~leto/workroom.c" *original header follows: */ /* * leto's workroom. * (first thing he ever coded on a mud, so kind of historical) * (And it euh, got sort of updated a few times, so sort of * not so historical anymore ;) */ // //created stardate 960319.1032 #include <mudlib.h> #include <config.h> #include <uid.h> inherit ROOM ; #define FRIENDS ({"quozl","kalypso","anakin","kitten","kalypso"}) private int shield; private string *allowed; void create() { :: create() ; seteuid(getuid()); allowed = FRIENDS ; set ("short", "kalypso's workroom"); set ("long", wrap( " You find yourself in a room filled with codebooks, printers and\n" "computer parts. There are files scattered all over the place. stuff\n" "like config.h mudlib.h and even a player.o or two.\n" "There are Ozzy posters all over the walls. Guns ~n~ Roses are jamming\n" "on the cd player \n" )); set ("exits", ([ "start" : START, "void" : VOID, "punkette" : "/u/p/punkette/workroom", ]) ) ; set ("light", 1); shield = 1; } void init() { if(getuid(previous_object()) == "kalypso") { add_action("lock","lock"); add_action("unlock","unlock"); add_action("eject","eject"); } if(member_array(getuid(previous_object()),allowed)!=-1) return; else { if(shield) { if( !(member_array(getuid(this_player()), allowed)!=-1) ) { write(wrap("Sorry, kalypso does not want to be disturbed right " "now. He is probably teaching or having a private" " conversation. Either try and ask him or try " "again later...Thanks.\n")); tell_object(find_player("kalypso"),(this_player()->query("name")+ " tried to barge in here.\n")); this_player()->move(this_player()->query("last_location")); return; } } } } int lock() { if(getuid(this_player()) != "kalypso") return 0; shield =1; write("Room is now locked.\n"); return 1; } int unlock() { if(getuid(this_player()) != "kalypso") return 0; shield=0; write("Room is now unlocked.\n"); return 1; } int eject(string arg) { object ob; object last; string name; if(!arg || arg=="") return 0; if(getuid(this_player()) != "kalypso") return 0; if(!(ob=present(arg,this_object()))) { notify_fail(arg+" is not here\n"); return 0; } if(!(last=(object)ob->query("last_location"))) last=load_object(VOID); name=(string)ob->query("cap_name"); ob->move_player(last,name + " is ejected from the room",""); return 1; }