final_realms_fluffos_v1/
final_realms_fluffos_v1/bin/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/ChangeLog.old/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/Win32/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/simuls/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/clone/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/command/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/data/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/etc/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/master/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/log/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/compiler/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/efuns/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/operators/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/u/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/tmp/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/windows/
final_realms_fluffos_v1/lib/baseobs/guilds/
final_realms_fluffos_v1/lib/baseobs/misc/
final_realms_fluffos_v1/lib/baseobs/races/shadows/
final_realms_fluffos_v1/lib/cmds/god/
final_realms_fluffos_v1/lib/cmds/handlers/
final_realms_fluffos_v1/lib/cmds/handlers/cmds/
final_realms_fluffos_v1/lib/d/heaven/
final_realms_fluffos_v1/lib/d/heaven/heaven/ave/
final_realms_fluffos_v1/lib/d/mudlib/
final_realms_fluffos_v1/lib/d/newbie/
final_realms_fluffos_v1/lib/d/newbie/docs/
final_realms_fluffos_v1/lib/d/newbie/drow/armour/
final_realms_fluffos_v1/lib/d/newbie/drow/items/
final_realms_fluffos_v1/lib/d/newbie/drow/mobs/
final_realms_fluffos_v1/lib/d/newbie/drow/oldmobs/
final_realms_fluffos_v1/lib/d/newbie/drow/weapons/
final_realms_fluffos_v1/lib/d/newbie/duergar/weapons/
final_realms_fluffos_v1/lib/d/newbie/dwarf/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/cafe/
final_realms_fluffos_v1/lib/d/newbie/elf/chars/equip/
final_realms_fluffos_v1/lib/d/newbie/elf/items/armours/
final_realms_fluffos_v1/lib/d/newbie/elf/items/obj/
final_realms_fluffos_v1/lib/d/newbie/elf/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/quick_fix/
final_realms_fluffos_v1/lib/d/newbie/gnome/armour/
final_realms_fluffos_v1/lib/d/newbie/gnome/buildings/
final_realms_fluffos_v1/lib/d/newbie/gnome/items/
final_realms_fluffos_v1/lib/d/newbie/gnome/npcs/clones/
final_realms_fluffos_v1/lib/d/newbie/gnome/rooms/northrooms/
final_realms_fluffos_v1/lib/d/newbie/gnome/weapons/
final_realms_fluffos_v1/lib/d/newbie/goblin/armour/
final_realms_fluffos_v1/lib/d/newbie/goblin/items/
final_realms_fluffos_v1/lib/d/newbie/grads/log/
final_realms_fluffos_v1/lib/d/newbie/grads/npcs/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/cave1/
final_realms_fluffos_v1/lib/d/newbie/grads/temp/
final_realms_fluffos_v1/lib/d/newbie/guests/weapons/
final_realms_fluffos_v1/lib/d/newbie/half-elf/items/
final_realms_fluffos_v1/lib/d/newbie/half-elf/newroomss/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/castle/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/drows/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/savannah/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/secret/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/town/
final_realms_fluffos_v1/lib/d/newbie/halfling/
final_realms_fluffos_v1/lib/d/newbie/halfling/misc/
final_realms_fluffos_v1/lib/d/newbie/halfling/rooms/cave/
final_realms_fluffos_v1/lib/d/newbie/human/
final_realms_fluffos_v1/lib/d/newbie/human/armour/
final_realms_fluffos_v1/lib/d/newbie/human/monsters/
final_realms_fluffos_v1/lib/d/newbie/human/obj/
final_realms_fluffos_v1/lib/d/newbie/human/weapons/
final_realms_fluffos_v1/lib/d/newbie/lizard/armour/
final_realms_fluffos_v1/lib/d/newbie/lizard/items/
final_realms_fluffos_v1/lib/d/newbie/lizard/underwater/
final_realms_fluffos_v1/lib/d/newbie/lizard/weapons/
final_realms_fluffos_v1/lib/d/newbie/logs/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/rooms/
final_realms_fluffos_v1/lib/d/newbie/newelf/
final_realms_fluffos_v1/lib/d/newbie/newelf/chars/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/recopied/
final_realms_fluffos_v1/lib/d/newbie/newelf/obj/
final_realms_fluffos_v1/lib/d/newbie/newelf/quest_docs./
final_realms_fluffos_v1/lib/d/newbie/newken/
final_realms_fluffos_v1/lib/d/newbie/newken/chars/
final_realms_fluffos_v1/lib/d/newbie/newken/misc/
final_realms_fluffos_v1/lib/d/newbie/newken/npcs/
final_realms_fluffos_v1/lib/d/newbie/newken/obj/
final_realms_fluffos_v1/lib/d/newbie/newliz/
final_realms_fluffos_v1/lib/d/newbie/newliz/cave/
final_realms_fluffos_v1/lib/d/newbie/newliz/npcs/
final_realms_fluffos_v1/lib/d/newbie/orc/items/misc/
final_realms_fluffos_v1/lib/d/newbie/orc/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/orc/tower/
final_realms_fluffos_v1/lib/d/vehicle/
final_realms_fluffos_v1/lib/doc/
final_realms_fluffos_v1/lib/doc/driver/
final_realms_fluffos_v1/lib/doc/driver/concepts/
final_realms_fluffos_v1/lib/doc/driver/driver/
final_realms_fluffos_v1/lib/doc/driver/efuns/arrays/
final_realms_fluffos_v1/lib/doc/driver/efuns/bitstrings/
final_realms_fluffos_v1/lib/doc/driver/efuns/communication/
final_realms_fluffos_v1/lib/doc/driver/efuns/core/
final_realms_fluffos_v1/lib/doc/driver/efuns/debugging/
final_realms_fluffos_v1/lib/doc/driver/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/driver/efuns/interactive/
final_realms_fluffos_v1/lib/doc/driver/efuns/mappings/
final_realms_fluffos_v1/lib/doc/driver/efuns/objects/
final_realms_fluffos_v1/lib/doc/driver/efuns/security/
final_realms_fluffos_v1/lib/doc/driver/efuns/strings/
final_realms_fluffos_v1/lib/doc/driver/efuns/system/
final_realms_fluffos_v1/lib/doc/driver/efuns/types/
final_realms_fluffos_v1/lib/doc/driver/lpc/constructs/
final_realms_fluffos_v1/lib/doc/driver/lpc/types/
final_realms_fluffos_v1/lib/doc/driver/platforms/
final_realms_fluffos_v1/lib/doc/lpc/
final_realms_fluffos_v1/lib/doc/mail/
final_realms_fluffos_v1/lib/doc/man/
final_realms_fluffos_v1/lib/doc/man/html/
final_realms_fluffos_v1/lib/doc/man/html/applies/
final_realms_fluffos_v1/lib/doc/man/html/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/html/driver/
final_realms_fluffos_v1/lib/doc/man/html/efuns/
final_realms_fluffos_v1/lib/doc/man/html/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/html/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/html/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/html/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/html/efuns/general/
final_realms_fluffos_v1/lib/doc/man/html/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/
final_realms_fluffos_v1/lib/doc/man/local/applies/
final_realms_fluffos_v1/lib/doc/man/local/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/local/applies/master/
final_realms_fluffos_v1/lib/doc/man/local/concepts/
final_realms_fluffos_v1/lib/doc/man/local/defines/
final_realms_fluffos_v1/lib/doc/man/local/driver/
final_realms_fluffos_v1/lib/doc/man/local/efuns/
final_realms_fluffos_v1/lib/doc/man/local/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/local/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/local/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/local/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/local/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/local/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/local/efuns/general/
final_realms_fluffos_v1/lib/doc/man/local/efuns/interactive/
final_realms_fluffos_v1/lib/doc/man/local/efuns/internals/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/local/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/objects/
final_realms_fluffos_v1/lib/doc/man/local/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/efuns/sockets/
final_realms_fluffos_v1/lib/doc/man/local/efuns/strings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/system/
final_realms_fluffos_v1/lib/doc/man/local/historical/
final_realms_fluffos_v1/lib/doc/man/local/lfun/QC/
final_realms_fluffos_v1/lib/doc/man/local/lfun/events/
final_realms_fluffos_v1/lib/doc/man/local/lfun/monster/
final_realms_fluffos_v1/lib/doc/man/local/lfun/properties/
final_realms_fluffos_v1/lib/doc/man/local/lpc/
final_realms_fluffos_v1/lib/doc/man/local/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/local/lpc/types/
final_realms_fluffos_v1/lib/doc/man/local/standards/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/basic/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/intermediate/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/concepts/
final_realms_fluffos_v1/lib/doc/man/mudos/driver/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/general/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mixed/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/types/
final_realms_fluffos_v1/lib/doc/races/
final_realms_fluffos_v1/lib/doc/races/old_race/
final_realms_fluffos_v1/lib/global/virtual/
final_realms_fluffos_v1/lib/global/wiz_backup/
final_realms_fluffos_v1/lib/net/config/
final_realms_fluffos_v1/lib/net/daemon/chars/
final_realms_fluffos_v1/lib/net/inherit/
final_realms_fluffos_v1/lib/net/intermud3/
final_realms_fluffos_v1/lib/net/intermud3/cmds/
final_realms_fluffos_v1/lib/net/intermud3/save/
final_realms_fluffos_v1/lib/net/intermud3/services/
final_realms_fluffos_v1/lib/net/obj/
final_realms_fluffos_v1/lib/net/old/
final_realms_fluffos_v1/lib/net/old/intermud/
final_realms_fluffos_v1/lib/net/old/intermud/adm/
final_realms_fluffos_v1/lib/net/old/intermud/services/
final_realms_fluffos_v1/lib/net/old/intermud/udp/
final_realms_fluffos_v1/lib/net/virtual/
final_realms_fluffos_v1/lib/obj/b_day/
final_realms_fluffos_v1/lib/obj/chars/
final_realms_fluffos_v1/lib/obj/handlers/lists/
final_realms_fluffos_v1/lib/obj/handlers/useless/
final_realms_fluffos_v1/lib/obj/monsters/
final_realms_fluffos_v1/lib/obj/roomgen/
final_realms_fluffos_v1/lib/obj/soul/
final_realms_fluffos_v1/lib/obj/vegetation/
final_realms_fluffos_v1/lib/obj/weapons/oldsys/
final_realms_fluffos_v1/lib/open/
final_realms_fluffos_v1/lib/players/g/
final_realms_fluffos_v1/lib/releasefiles/d/heaven/
final_realms_fluffos_v1/lib/releasefiles/d/mudlib/
final_realms_fluffos_v1/lib/releasefiles/d/newbie/
final_realms_fluffos_v1/lib/releasefiles/doc/
final_realms_fluffos_v1/lib/releasefiles/players/g/
final_realms_fluffos_v1/lib/releasefiles/save/
final_realms_fluffos_v1/lib/releasefiles/save/environ/
final_realms_fluffos_v1/lib/releasefiles/save/roomgen/
final_realms_fluffos_v1/lib/releasefiles/secure/
final_realms_fluffos_v1/lib/releasefiles/w/
final_realms_fluffos_v1/lib/releasefiles/w/god/
final_realms_fluffos_v1/lib/room/
final_realms_fluffos_v1/lib/save/
final_realms_fluffos_v1/lib/save/environ/
final_realms_fluffos_v1/lib/save/roomgen/
final_realms_fluffos_v1/lib/scripts/
final_realms_fluffos_v1/lib/secure/crerem/
final_realms_fluffos_v1/lib/secure/dom/
final_realms_fluffos_v1/lib/secure/log/
final_realms_fluffos_v1/lib/secure/misc/
final_realms_fluffos_v1/lib/std/adnd/
final_realms_fluffos_v1/lib/std/commands/shadows/
final_realms_fluffos_v1/lib/std/creator/
final_realms_fluffos_v1/lib/std/curses/
final_realms_fluffos_v1/lib/std/curses/old_sys/
final_realms_fluffos_v1/lib/std/curses/shadows/
final_realms_fluffos_v1/lib/std/dom/
final_realms_fluffos_v1/lib/std/effects/
final_realms_fluffos_v1/lib/std/effects/healing/
final_realms_fluffos_v1/lib/std/effects/other/
final_realms_fluffos_v1/lib/std/effects/poisons/
final_realms_fluffos_v1/lib/std/environ/
final_realms_fluffos_v1/lib/std/guilds/
final_realms_fluffos_v1/lib/std/guilds/priests/samples/
final_realms_fluffos_v1/lib/std/guilds/wizards/
final_realms_fluffos_v1/lib/std/living/baldy/
final_realms_fluffos_v1/lib/std/living/divstuff/
final_realms_fluffos_v1/lib/std/paran/
final_realms_fluffos_v1/lib/std/poisons/
final_realms_fluffos_v1/lib/std/poisons/shadows/
final_realms_fluffos_v1/lib/std/poisons/weapons/
final_realms_fluffos_v1/lib/std/race_groups/
final_realms_fluffos_v1/lib/std/room/
final_realms_fluffos_v1/lib/std/room/old/
final_realms_fluffos_v1/lib/std/rooms/
final_realms_fluffos_v1/lib/std/shadows/
final_realms_fluffos_v1/lib/std/shadows/test_shad/
final_realms_fluffos_v1/lib/std/socket/
final_realms_fluffos_v1/lib/std/spells/
final_realms_fluffos_v1/lib/std/vaults/
final_realms_fluffos_v1/lib/tmp/
final_realms_fluffos_v1/lib/w/
final_realms_fluffos_v1/lib/w/god/
final_realms_fluffos_v1/old/
final_realms_fluffos_v1/win32/
/*****************************************************************************
*                                         *
*            Domain comunicator. Common for all the domains.             *
*                      Khelben, 1997                     *
*                 Lover of cut and paste :=)                 *
*                                         *
******************************************************************************/

inherit "/obj/armour.c";



void setup()
{
   set_name("Domain Communication Badge");
   add_alias("commbadge");
   add_alias("badge");
   reset_drop();
   set_wearable(1);
   set_short("%^BOLD%^%^YELLOW%^Domain Communication Badge%^RESET%^");
   set_long("%^BOLD%^%^YELLOW%^   Domain Communication Badge:%^RESET%^\n\n"
   "     This is the common communication badge. This will let you  "
   "chat with other members of your domain. It also have some interesting "
   "things. For more info, type 'help badge'.\n\n");
   set_value(0);
   add_alias("commbadge");
   add_alias("badge");
   reset_drop();
   call_out("badge_hi",2);
}

void badge_hi()
{
   if( ETO && interactive(ETO) && 
       "/d/ss/master.c"->query_member(ETO->query_name()) ) 
   {
      write("%^CYAN%^\n\nThe waves of Sword Sea welcome you my Lord.%^RESET%^\n\n");
      ETO->add_timed_property("free_action",1,3000000);
   }
}


void init()
{
   add_action("do_help","help");
   add_action("do_who","who");
   add_action("exit","exits");
   add_action("show_in", "in");
   add_action("qatt_me", "qatt");
   add_action("do_peace","peace");
   add_action("do_rain","rain");
   add_action("do_times","times");
   add_action("light","light");
   add_action("mudfind","mudfind");

    //Channels
   add_action("sschan","ss");
   add_action("bfchan","bf");
   add_action("sfchan","sf");
   add_action("mmchan","mm");
   add_action("dlchan","dl");
   add_action("fpchan","fp");
   add_action("umchan","um");
   add_action("ofchan","of");
   add_action("hoerkchan","hoerk");   
   add_action("apriorchan","aprior");
   add_action("omiqchan","omiq");
   add_action("mudlibchan","mudlib");
   add_action("heavenchan","heaven");   
   add_action("radishchan", "radish");
   ::init();
}
            
int domain_member(string name, string verb)
{
   string str;
   
   str = "/d/";
   str += verb;
   str += "/master.c";

   if( str->query_member(name) )
      return 1;
   if(find_player(name)->query_lord())
      return 1;

   return 0;   
}

int do_help(string arg)
{
    if(!(arg))
    return 0;
    if(arg=="badge")
    {
    write("\n%^BOLD%^%^RED%^As a member of your domain you can do the "
      "following:%^RESET%^\n\n"
      "  <domain>       :  Send message to the other members of <domain>\n"+
      "  who <domain>   :  Shows list of <domain> coders that are logged on\n"+
      "  in <domain>    :  Shows who is in <domain>\n"+
      "  mudfind <path> :  Search for the objects <path> cloned in the mud.\n"+
          "  exit           :  Checks the exits of the room you're in.\n"+                
      "  qatt           :  Show who is in battle on the mud\n"+
      "  peace          :  Stops fighting in a room.\n"+
      "  rain           :  Make money the easy way, rain <amt><type>\n"+
      "  light <amt>    :  Adjust the light in a room.\n"+ 
      "  times          :  Give selected times from states and Norway.\n\n");
    return 1;
    }
    else return 0;
}

int have_power(object ob)
{
   if ( ob->query_thane() || ob->query_lord() )
      return 1;
   else
      return 0;
}

int light(string str)
{  
   int num;

   num = to_int(str);
   set_light(num);
   return 1;
}

int mudfind(string str)
{
   object *ob;
   int i;

   if(!str)
      return 0;
   if( file_size(str) < 0 )
   {
      write("That file does not exist.\n");   
      return 1;
   }
   else
   {
      write("Searching for "+str+".\n\n");
      ob = children(str);
      for(i=0;i<sizeof(ob);i++)
      {        
         write(ob[i]->query_name()+" at "+file_name(environment(ob[i]))+
                ".\n");
      }
   }
   return 1;
}      

int show_in(string input)
{
    string *doms;
    object *ob;
    int i;
    string str;
    int yep = 0;
    object env;
    string *bass;

    if( !have_power(TP) )
    {
       write("Only thanes and upper can use this command.\n");
       return 1;
    }

    ob = users();
    for (i=0; i<sizeof(ob); i++) 
    {
    if ((string)ob[i]->query_gender_string() != "blue") 
    {
        str = file_name(environment(ob[i]));
        bass = explode (str, "/");
        doms = get_dir("/d/");
        if (member_array(input, doms) == -1) { return 0; }
        if (bass[1] == input) 
        {
        yep = 1;
        write (ob[i]->query_cap_name()+ " in "+
            environment(ob[i])->query_short()+ "   ("+
        file_name(environment(ob[i]))+ ")\n");
        }
    }
    }
    if (yep == 0) 
    {
    write (sprintf("Noone in %s domain at the moment. *weep*\n", 
           capitalize(input)));
    return 1;
    }
    return 1;
}

int do_peace() 
{
    object *ob;
    object *att;
    object *call;
    int i, s;

    ob=all_inventory(environment(this_player()));
    i=0;
    for(i=0; i<sizeof(ob); i++) 
    {
    if(living(ob[i])) 
    {
        att=ob[i]->query_attacker_list();
        call=ob[i]->query_call_outed();
        for(s=0; s<sizeof(att); s++) 
        {
        ob[i]->stop_fight(att[s]);
        att[s]->stop_fight(ob[i]);
        }
        for(s=0; s<sizeof(call); s++) 
        {
        ob[i]->stop_fight(call[s]);
        call[s]->stop_fight(ob[i]);
        }
    }
    }
    write("You raise your hand and say: "+
          "%^YELLOW%^STOP FIGHTING MORTALS! %^RESET%^\n");
    tell_room(environment(this_player()), this_player()->query_cap_name()+
              " raises his hand and says: %^YELLOW%^STOP FIGTING MORTALS! 
              %^RESET%^\n", ({this_player()}));
    return 1;
} 

int do_times() 
{
    if(!this_player()->query_creator()) 
    return 0;
    write("It is now "+ctime(time())+" Norway Time.\n");
    write("It is now "+ctime(time() - 21600)+" Eastern Time.\n");
    write("It is now "+ctime(time() - 25200)+" Central Time.\n");
    write("It is now "+ctime(time() - 28800)+" Mountain Time.\n");
    write("It is now "+ctime(time() - 32400)+" Pacific Time.\n");
    return 1;
} 

string get_type(string str) 
{          
    if(str=="c" || str=="copper")   
    return "copper";            
    if(str=="b" || str=="brass")  
    return "brass";           
    if(str=="s" || str=="silver")        
    return "silver";                 
    if(str=="g" || str=="gold")        
    return "gold";                 
    if(str=="p" || str=="platinum")  
    return "platinum";           
    return"none";                  
} 

int do_rain(string str) 
{      

    string type, cktype;      
    int amt;                 

    if(!str) 
    {
    write("Usuage: rain <amount> <type of money>\n");      
    return 1;                                             
    }     
    if(sscanf(str,"%d %s",amt,type)!=2) 
    {       
    write("Usuage: rain <amount> <type of money>\n");      
    return 1;                                             
    }     
    cktype=get_type(type);        
    if(cktype=="none") 
    {         
    write("Please use an existing moneytype.\n"); 
    return 1;                                    
    }    
    if(TP->adjust_money(amt, cktype)) 
    {         
        write("You have been given "+amt+" "+cktype+" coins\n");
    tell_room(environment(this_player()), this_player()->query_cap_name()+
                  " motions crest at "+this_player()->query_possessive()+
                  " purse, presses a button, and the purse gets"+
                  " visibly larger.\n", this_player());  
    return 1;
    } 
    else 
    {
    write("Nothing happened! What's wrong?\n");                           
    return 1;                                                            
    }                                                                      

}                                                        

int qatt_me()
{
    object *ob;
    int i;
    int yep = 0;
    object *fig;
    int f;
    
    if( !have_power(TP) )
    {
       write("Only thanes and upper can use this command.\n");
       return 1;
    }
    
    ob = users();
    for (i=0;i<sizeof(ob);i++)
    {
    if (sizeof(ob[i]->query_attacker_list())) 
    {
        write ("\n"+ ob[i]->query_cap_name()+ " is fighting:\n");
        fig = ob[i]->query_attacker_list();
        for (f=0;f<sizeof(fig);f++) 
        {
        write ("\t"+ fig[f]->query_short()+ "\t("+ file_name(fig[f])+ ")\n");
        yep = 1;
        }
        }
    }
    if (yep == 0) 
    {
    write ("Wow, noone is fighting at the moment.\n");
    return 1;
    }
    return 1;
}

string adjust_string_size(string str,int size) 
{
  int q;
  q=sizeof(explode(str,""));
  if(q<=size) return str;
  return("..."+str[q-(size-3)..q]);
}

int exit() 
{
  int i,j;
  mixed* dirs,dirs2;
  mapping opposite = (["north":"south","south":"north","west":"east",
               "east":"west","northwest":"southeast",
               "southeast":"northwest","northeast":"southwest",
               "southwest":"northeast","up":"down","down":"up",
               "out":"in","in":"out"]);
  if(!environment(this_player())) 
  {
    write("You have no environment.\n");
    return 1;
  }
  dirs = environment(this_player())->query_dest_dir();
  if(!sizeof(dirs)) 
  {
    write("There are no exits in this room.\n");
    return 1;
  }
  for(i=0;i<sizeof(dirs);i=i+2) 
  {
    string match;
    printf("%-10s: ",dirs[i][0..8]);
    sscanf(dirs[i+1],"%s.c",dirs[i+1]);
    dirs[i+1] = dirs[i+1]+".c";
    write(adjust_string_size(dirs[i+1],67)+"\n            ");
    if(file_size(dirs[i+1]) == -1)
      write("The file "+adjust_string_size(dirs[i+1],42)+" does not exist.\n");
    else 
    {
      string ppp;
      if(ppp=catch(dirs2 = dirs[i+1]->query_dest_dir())) 
      {
        write(adjust_string_size(dirs[i+1],66)+" won't load.\n");
    write(ppp);
      }
      else 
      {
        match = 0;
        if(sizeof(dirs2))
        for(j=0;j<sizeof(dirs2);j=j+2) 
        {
      sscanf(dirs2[j+1],"%s.c",dirs2[j+1]); 
      if(file_name(environment(this_player()))==dirs2[j+1])
        match = dirs2[j];
        }
        if(!match)
        write("There are no exit from "+adjust_string_size(dirs[i+1],30)+
            " to this room.\n");
        else 
        {
      if(opposite[dirs[i]] == match)
        write("Ok.\n");
          else
        write("The exit from "+adjust_string_size(dirs[i+1],24)+
              " to this room is: "+match[0..8]+".\n");
        }
      }
    }
  }
  return 1;
}

string query_rank_string(object ob) 
{

   string type;
   string rank = ob->query_object_type();

   if(rank == "B") 
      type = "Builder";
   if(rank == "P") 
   {
      if((int)this_player()->query_gender() == 2)
         type = "Patroness";
      else
         type = "Patron";
   }
   if(rank == "T") 
      type = "Thane";
   if(rank == "D" || rank == "H") 
   {
      //if("/secure/lords"->query_boo(this_player()->query_name()))
         type = "Demi-God";
      //else
      //   type = "Alchemist";        
   }
   if(rank == "G") 
     type = "God";

  return type;
}

int valid_domain(string str)
{
   string *domains;

   domains = get_dir("/d/");
   if( !sizeof(domains) || (member_array(str, domains) == -1) ) 
      return 0;
   return 1;
}      

int do_who(string str) 
{
   
   object *ob;
   string nam, gende, rank, htype,dom;
   int i;
   string ip;
   
   if( !valid_domain(str) )
      return 0;
   
   ob = users();
   write("\n"
         "========================================================================\n"
         "                        "+capitalize(str)+" STAFF LOGGED IN                  \n"
         "========================================================================"
          "\n\n");
   for (i=0; i<sizeof(ob); i++) 
   {
      gende=(ob[i]->query_gender_string());
      nam=(ob[i]->query_name());
      ip=query_ip_number(ob[i]);
      nam = capitalize(nam);
      gende = capitalize(gende);
      htype = query_rank_string(ob[i]); 
      if( domain_member((string)ob[i]->query_name() , str) )
          printf("%-15s  %-8s  %-11s %-15s\n", ip, gende, htype, nam);
   }
   write("\n========================================================================\n\n");
   return 1;
}


/*****************************************************************************
   Chat stuff. Since "/global/do_chat" uses query_verb  I didn't found a 
way of doing this. Also is easier type 'ss message' than 'channel ss message'.
That is way I used all those add_action.
*****************************************************************************/

int sschan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int bfchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}
int fpchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int sfchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int radishchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat.c"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
   return 1;
}

int mmchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int dlchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int umchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int ofchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int hoerkchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int apriorchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int omiqchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int mudlibchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}

int heavenchan(string str)
{
   if( domain_member((string)TP->query_name(), query_verb()) )
   {
      "/global/do_chat"->do_chat(str);
      return 1;
   }
   else
      write("You are not a member of the "+query_verb()+" domain.\n");
     
   return 1;
}