ds2.9a10/bin/
ds2.9a10/extra/
ds2.9a10/extra/crat/
ds2.9a10/extra/creremote/
ds2.9a10/extra/mingw/
ds2.9a10/extra/wolfpaw/
ds2.9a10/fluffos-2.14-ds06/
ds2.9a10/fluffos-2.14-ds06/Win32/
ds2.9a10/fluffos-2.14-ds06/compat/
ds2.9a10/fluffos-2.14-ds06/compat/simuls/
ds2.9a10/fluffos-2.14-ds06/include/
ds2.9a10/fluffos-2.14-ds06/testsuite/
ds2.9a10/fluffos-2.14-ds06/testsuite/clone/
ds2.9a10/fluffos-2.14-ds06/testsuite/command/
ds2.9a10/fluffos-2.14-ds06/testsuite/data/
ds2.9a10/fluffos-2.14-ds06/testsuite/etc/
ds2.9a10/fluffos-2.14-ds06/testsuite/include/
ds2.9a10/fluffos-2.14-ds06/testsuite/inherit/
ds2.9a10/fluffos-2.14-ds06/testsuite/inherit/master/
ds2.9a10/fluffos-2.14-ds06/testsuite/log/
ds2.9a10/fluffos-2.14-ds06/testsuite/single/
ds2.9a10/fluffos-2.14-ds06/testsuite/single/tests/compiler/
ds2.9a10/fluffos-2.14-ds06/testsuite/single/tests/efuns/
ds2.9a10/fluffos-2.14-ds06/testsuite/single/tests/operators/
ds2.9a10/fluffos-2.14-ds06/testsuite/u/
ds2.9a10/lib/cmds/admins/
ds2.9a10/lib/cmds/common/
ds2.9a10/lib/cmds/creators/include/
ds2.9a10/lib/daemon/services/
ds2.9a10/lib/daemon/tmp/
ds2.9a10/lib/doc/
ds2.9a10/lib/doc/bguide/
ds2.9a10/lib/doc/efun/all/
ds2.9a10/lib/doc/efun/arrays/
ds2.9a10/lib/doc/efun/buffers/
ds2.9a10/lib/doc/efun/compile/
ds2.9a10/lib/doc/efun/floats/
ds2.9a10/lib/doc/efun/functions/
ds2.9a10/lib/doc/efun/general/
ds2.9a10/lib/doc/efun/mixed/
ds2.9a10/lib/doc/efun/numbers/
ds2.9a10/lib/doc/efun/parsing/
ds2.9a10/lib/doc/hbook/
ds2.9a10/lib/doc/help/classes/
ds2.9a10/lib/doc/help/races/
ds2.9a10/lib/doc/lfun/
ds2.9a10/lib/doc/lfun/all/
ds2.9a10/lib/doc/lfun/lib/abilities/
ds2.9a10/lib/doc/lfun/lib/armor/
ds2.9a10/lib/doc/lfun/lib/bank/
ds2.9a10/lib/doc/lfun/lib/bot/
ds2.9a10/lib/doc/lfun/lib/clay/
ds2.9a10/lib/doc/lfun/lib/clean/
ds2.9a10/lib/doc/lfun/lib/clerk/
ds2.9a10/lib/doc/lfun/lib/client/
ds2.9a10/lib/doc/lfun/lib/combat/
ds2.9a10/lib/doc/lfun/lib/connect/
ds2.9a10/lib/doc/lfun/lib/container/
ds2.9a10/lib/doc/lfun/lib/corpse/
ds2.9a10/lib/doc/lfun/lib/creator/
ds2.9a10/lib/doc/lfun/lib/daemon/
ds2.9a10/lib/doc/lfun/lib/damage/
ds2.9a10/lib/doc/lfun/lib/deterioration/
ds2.9a10/lib/doc/lfun/lib/donate/
ds2.9a10/lib/doc/lfun/lib/door/
ds2.9a10/lib/doc/lfun/lib/equip/
ds2.9a10/lib/doc/lfun/lib/file/
ds2.9a10/lib/doc/lfun/lib/fish/
ds2.9a10/lib/doc/lfun/lib/fishing/
ds2.9a10/lib/doc/lfun/lib/flashlight/
ds2.9a10/lib/doc/lfun/lib/follow/
ds2.9a10/lib/doc/lfun/lib/ftp_client/
ds2.9a10/lib/doc/lfun/lib/ftp_data_connection/
ds2.9a10/lib/doc/lfun/lib/fuel/
ds2.9a10/lib/doc/lfun/lib/furnace/
ds2.9a10/lib/doc/lfun/lib/genetics/
ds2.9a10/lib/doc/lfun/lib/holder/
ds2.9a10/lib/doc/lfun/lib/id/
ds2.9a10/lib/doc/lfun/lib/interactive/
ds2.9a10/lib/doc/lfun/lib/lamp/
ds2.9a10/lib/doc/lfun/lib/leader/
ds2.9a10/lib/doc/lfun/lib/light/
ds2.9a10/lib/doc/lfun/lib/limb/
ds2.9a10/lib/doc/lfun/lib/living/
ds2.9a10/lib/doc/lfun/lib/load/
ds2.9a10/lib/doc/lfun/lib/look/
ds2.9a10/lib/doc/lfun/lib/manipulate/
ds2.9a10/lib/doc/lfun/lib/meal/
ds2.9a10/lib/doc/lfun/lib/messages/
ds2.9a10/lib/doc/lfun/lib/player/
ds2.9a10/lib/doc/lfun/lib/poison/
ds2.9a10/lib/doc/lfun/lib/position/
ds2.9a10/lib/doc/lfun/lib/post_office/
ds2.9a10/lib/doc/lfun/lib/potion/
ds2.9a10/lib/doc/lfun/lib/room/
ds2.9a10/lib/doc/lfun/lib/server/
ds2.9a10/lib/doc/lfun/lib/spell/
ds2.9a10/lib/doc/lfun/lib/torch/
ds2.9a10/lib/doc/lfun/lib/vendor/
ds2.9a10/lib/doc/lfun/lib/virt_sky/
ds2.9a10/lib/doc/lfun/lib/weapon/
ds2.9a10/lib/doc/lfun/lib/worn_storage/
ds2.9a10/lib/doc/lpc/basic/
ds2.9a10/lib/doc/lpc/concepts/
ds2.9a10/lib/doc/lpc/constructs/
ds2.9a10/lib/doc/lpc/etc/
ds2.9a10/lib/doc/lpc/intermediate/
ds2.9a10/lib/doc/lpc/types/
ds2.9a10/lib/doc/misc/
ds2.9a10/lib/doc/old/
ds2.9a10/lib/domains/
ds2.9a10/lib/domains/Praxis/adm/
ds2.9a10/lib/domains/Praxis/attic/
ds2.9a10/lib/domains/Praxis/cemetery/mon/
ds2.9a10/lib/domains/Praxis/data/
ds2.9a10/lib/domains/Praxis/death/
ds2.9a10/lib/domains/Praxis/mountains/
ds2.9a10/lib/domains/Praxis/obj/armour/
ds2.9a10/lib/domains/Praxis/obj/magic/
ds2.9a10/lib/domains/Praxis/obj/weapon/
ds2.9a10/lib/domains/Praxis/orc_valley/
ds2.9a10/lib/domains/Ylsrim/
ds2.9a10/lib/domains/Ylsrim/adm/
ds2.9a10/lib/domains/Ylsrim/armor/
ds2.9a10/lib/domains/Ylsrim/broken/
ds2.9a10/lib/domains/Ylsrim/fish/
ds2.9a10/lib/domains/Ylsrim/meal/
ds2.9a10/lib/domains/Ylsrim/npc/
ds2.9a10/lib/domains/Ylsrim/obj/
ds2.9a10/lib/domains/Ylsrim/virtual/
ds2.9a10/lib/domains/Ylsrim/weapon/
ds2.9a10/lib/domains/campus/adm/
ds2.9a10/lib/domains/campus/etc/
ds2.9a10/lib/domains/campus/meals/
ds2.9a10/lib/domains/campus/save/
ds2.9a10/lib/domains/campus/txt/ai/charles/
ds2.9a10/lib/domains/campus/txt/ai/charles/bak2/
ds2.9a10/lib/domains/campus/txt/ai/charles/bak2/bak1/
ds2.9a10/lib/domains/campus/txt/ai/charly/
ds2.9a10/lib/domains/campus/txt/ai/charly/bak/
ds2.9a10/lib/domains/campus/txt/jenny/
ds2.9a10/lib/domains/default/creator/
ds2.9a10/lib/domains/default/doors/
ds2.9a10/lib/domains/default/etc/
ds2.9a10/lib/domains/default/vehicles/
ds2.9a10/lib/domains/default/virtual/
ds2.9a10/lib/domains/default/weap/
ds2.9a10/lib/domains/town/txt/shame/
ds2.9a10/lib/domains/town/virtual/
ds2.9a10/lib/domains/town/virtual/bottom/
ds2.9a10/lib/domains/town/virtual/space/
ds2.9a10/lib/estates/
ds2.9a10/lib/ftp/
ds2.9a10/lib/lib/comp/
ds2.9a10/lib/lib/daemons/
ds2.9a10/lib/lib/daemons/include/
ds2.9a10/lib/lib/lvs/
ds2.9a10/lib/lib/user/
ds2.9a10/lib/lib/virtual/
ds2.9a10/lib/log/
ds2.9a10/lib/log/adm/
ds2.9a10/lib/log/archive/
ds2.9a10/lib/log/chan/
ds2.9a10/lib/log/errors/
ds2.9a10/lib/log/law/adm/
ds2.9a10/lib/log/law/email/
ds2.9a10/lib/log/law/names/
ds2.9a10/lib/log/law/sites-misc/
ds2.9a10/lib/log/law/sites-register/
ds2.9a10/lib/log/law/sites-tempban/
ds2.9a10/lib/log/law/sites-watch/
ds2.9a10/lib/log/open/
ds2.9a10/lib/log/reports/
ds2.9a10/lib/log/router/
ds2.9a10/lib/log/secure/
ds2.9a10/lib/log/watch/
ds2.9a10/lib/obj/book_source/
ds2.9a10/lib/obj/include/
ds2.9a10/lib/powers/prayers/
ds2.9a10/lib/powers/spells/
ds2.9a10/lib/realms/template/adm/
ds2.9a10/lib/realms/template/area/armor/
ds2.9a10/lib/realms/template/area/npc/
ds2.9a10/lib/realms/template/area/obj/
ds2.9a10/lib/realms/template/area/room/
ds2.9a10/lib/realms/template/area/weap/
ds2.9a10/lib/realms/template/bak/
ds2.9a10/lib/realms/template/cmds/
ds2.9a10/lib/save/kills/o/
ds2.9a10/lib/secure/cfg/classes/
ds2.9a10/lib/secure/cmds/builders/
ds2.9a10/lib/secure/cmds/creators/include/
ds2.9a10/lib/secure/cmds/players/
ds2.9a10/lib/secure/cmds/players/include/
ds2.9a10/lib/secure/daemon/imc2server/
ds2.9a10/lib/secure/daemon/include/
ds2.9a10/lib/secure/lib/
ds2.9a10/lib/secure/lib/include/
ds2.9a10/lib/secure/lib/net/include/
ds2.9a10/lib/secure/lib/std/
ds2.9a10/lib/secure/log/adm/
ds2.9a10/lib/secure/log/bak/
ds2.9a10/lib/secure/log/intermud/
ds2.9a10/lib/secure/log/network/
ds2.9a10/lib/secure/modules/
ds2.9a10/lib/secure/npc/
ds2.9a10/lib/secure/obj/include/
ds2.9a10/lib/secure/room/
ds2.9a10/lib/secure/save/
ds2.9a10/lib/secure/save/backup/
ds2.9a10/lib/secure/save/boards/
ds2.9a10/lib/secure/tmp/
ds2.9a10/lib/secure/upgrades/files/
ds2.9a10/lib/secure/verbs/creators/
ds2.9a10/lib/std/board/
ds2.9a10/lib/std/lib/
ds2.9a10/lib/tmp/
ds2.9a10/lib/verbs/admins/include/
ds2.9a10/lib/verbs/builders/
ds2.9a10/lib/verbs/common/
ds2.9a10/lib/verbs/common/include/
ds2.9a10/lib/verbs/creators/
ds2.9a10/lib/verbs/creators/include/
ds2.9a10/lib/verbs/rooms/
ds2.9a10/lib/verbs/rooms/include/
ds2.9a10/lib/www/client/
ds2.9a10/lib/www/errors/
ds2.9a10/lib/www/images/
ds2.9a10/lib/www/lpmuds/downloads_files/
ds2.9a10/lib/www/lpmuds/intermud_files/
ds2.9a10/lib/www/lpmuds/links_files/
ds2.9a10/win32/
#include <lib.h>
#include <daemons.h>
inherit LIB_ROOM;

object ob;
mapping Levels = PLAYERS_D->GetLevelList();
int ReadSign();
int ReadScroll();

static void create() {
    room::create();
    SetClimate("indoors");
    SetAmbientLight(30);
    SetShort("The Adventurers' Guild");
    SetLong("This small building is where adventurers can record their adventures and leave messages and announcements for other brave souls. This is also the place one can seek advancement, so if you deserve to be a higher level adventurer, asking the guild master for it will make it so. A scroll lists quests one may perform, and a sign contains some instructions. The Creator's Hall is south of here. A special skills training area is west. A conference room is east, where folks can discuss things in privacy.");
    SetItems( ([
        ({ "list","scroll"}) : "A scroll hangs from the wall, listing "
        "some adventures you can perform which may have rewards "
        "for you.",
        ({"sign","instructions"}) : "This sign contains some "
        "general instructions on how to gain experience and "
        "attain advancement.",
        ({"building","small building","here"}) : "You are in the "
        "Adventurers' Guild.",
      ]) );
    SetExits( ([
        "north" : "/domains/town/room/vill_road2",
        "south" : "/domains/default/room/builder_hall",
        "east" : "/domains/town/room/confroom",
        "up" : "/domains/town/room/training.c",
      ]) );
    SetInventory(([
        "/domains/town/obj/bin" : 1,
        "/domains/town/obj/table" : 1,
        "/domains/town/npc/dirk" : ({60, 1})
      ]));
    SetRead( ([
        ({"list","scroll"}) : (: ReadScroll :),
        ({"instructions","sign"}) : (: ReadSign :)
      ]) );

    SetProperty("no attack", 1);
    ob = new("/lib/bboard");
    ob->SetKeyName("chalkboard");
    ob->SetId( ({ "board", "chalkboard", "dusty board", "dusty chalkboard" }) );    ob->set_board_id("adv_guild_board");
    ob->set_max_posts(30);
    ob->SetShort("a dusty chalkboard");
    SetLong("This small building is where adventurers can record their adventures and leave messages and announcements for other brave souls. This is also the place one can seek advancement, so if you deserve to be a higher level adventurer, asking the guild master for it will make it so. A scroll lists quests one may perform, and a sign contains some instructions. The Creator's Hall is south of here. A special skills training area is west. A conference room is east, where folks can discuss things in privacy.");
    ob->eventMove(this_object());
    SetNoClean(1);
}
mixed ReadSign(){
    int i;
    string ret = read_file("/domains/town/txt/advancement.txt");
    ret += "\n";
    for(i=1;i<21;i++){
        //tc("Levels["+i+"]: "+identify(Levels[i]));
        ret +=  sprintf("%:-3s     %:-28s %:-5s %:16s\n", i+"",
          Levels[i]["title"], Levels[i]["xp"]+"", (Levels[i]["qp"] || "none")+"");
    }
    ret += "\nTo advance, ask the guildmaster.\nExample:\n\n";
    ret += "ask dirk to advance";
    return (mixed)this_player()->eventPage(({ret}));
}

mixed ReadScroll(){
    return (mixed)this_player()->eventPage("/domains/town/txt/quests.txt");
}
void init(){
    ::init();
}