area/
src/
 /***************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
 *                                                                         *
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael          *
 *  Chastain, Michael Quan, and Mitchell Tse.                              *
 *                                                                         *
 *  In order to use any part of this Merc Diku Mud, you must comply with   *
 *  both the original Diku license in 'license.doc' as well the Merc       *
 *  license in 'license.txt'.  In particular, you may not remove either of *
 *  these copyright notices.                                               *
 *                                                                         *
 *  Much time and thought has gone into this software and you are          *
 *  benefitting.  We hope that you share your changes too.  What goes      *
 *  around, comes around.                                                  *
 ***************************************************************************/

#if defined(macintosh)
#include<types.h>
#else
#include <sys/types.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"


// HAHAHA -Xrak my who messages :)

void do_setxrakwho(CHAR_DATA *ch, char *argument) 
{  
  char buf[MAX_STRING_LENGTH];
   
  if (IS_NPC(ch)) return;
  smash_tilde(argument);
  sprintf(buf,"#n");
  strcpy(buf,argument);
  SET_BIT(ch->pcdata->jflags, JFLAG_XRAKWHO);
  free_string(ch->pcdata->xrakwho);
  ch->pcdata->xrakwho = str_dup(wordwrapchange(argument));
  send_to_char("done.\n\r",ch);
  return;
}    


void do_who(CHAR_DATA *ch, char *argument)
{
  DESCRIPTOR_DATA *d;
  CHAR_DATA *wch;
  CHAR_DATA *victim;
  char sexbuf[MSL];
  char arg[MAX_INPUT_LENGTH];
  char pkratio[MAX_STRING_LENGTH];
  char kav[MAX_STRING_LENGTH];
  char faith[MAX_STRING_LENGTH];
  char god[MAX_STRING_LENGTH];
  char openb[20];
  char closeb[20];
  int b, c, a;
  char buf[MAX_STRING_LENGTH]; // banners
  char buf1[MAX_STRING_LENGTH]; // Admin.
  char buf2[MAX_STRING_LENGTH];
  char buf3[MAX_STRING_LENGTH];
  char buf4[MAX_STRING_LENGTH];
  char buf5[MAX_STRING_LENGTH];
  char buf6[MAX_STRING_LENGTH];
  char buf7[MAX_STRING_LENGTH];
  char buf8[MAX_STRING_LENGTH]; // avatars : buf2 - buf16
  char buf9[MAX_STRING_LENGTH];
  char buf10[MAX_STRING_LENGTH];
  char buf11[MAX_STRING_LENGTH];
  char buf12[MAX_STRING_LENGTH];
  char buf13[MAX_STRING_LENGTH];
  char buf14[MAX_STRING_LENGTH];
  char buf15[MAX_STRING_LENGTH];
  char buf16[MAX_STRING_LENGTH];
  char buf17[MAX_STRING_LENGTH]; // mortals.
  char buf18[MAX_STRING_LENGTH];
  char buf19[MAX_STRING_LENGTH];
  int nPlayerAll = 0;
  int nPlayerVis = 0;
  int nImmVis = 0;
  int mightRate;
  int i, x, v;
  bool rangeOnly = FALSE;
  bool canDecap;
  bool canKillYou;
  bool avatars = FALSE;
  bool a1 = FALSE;
  bool a2 = FALSE;
  bool a3 = FALSE;
  bool a4 = FALSE;
  bool a5 = FALSE;
  bool a6 = FALSE;
  bool a7 = FALSE;
  bool a8 = FALSE;
  bool a9 = FALSE;
  bool a10 = FALSE;
  bool a11 = FALSE;
  bool a12 = FALSE;
  bool a13 = FALSE;
  bool a14 = FALSE;
  bool a15 = FALSE;
  bool a16 = FALSE;
  bool a17 = FALSE;

  if (IS_NPC(ch)) return;

  one_argument(argument, arg);

  if (!str_cmp(arg, "kill")) rangeOnly = TRUE;

  buf1[0] = '\0';
  buf2[0] = '\0';
  buf3[0] = '\0';
  buf4[0] = '\0';
  buf5[0] = '\0';
  buf6[0] = '\0';
  buf7[0] = '\0';
  buf8[0] = '\0';
  buf9[0] = '\0';
  buf10[0] = '\0';
  buf11[0] = '\0';
  buf12[0] = '\0';   
  buf13[0] = '\0';
  buf14[0] = '\0';
  buf15[0] = '\0';
  buf16[0] = '\0';
  buf17[0] = '\0';

//    do_save( ch, " " );
//    save_char_obj_backup( ch );
//    save_char_obj( ch );
//    save_char_obj( wch );
//    save_char_obj_backup( wch );
  
  for (d = descriptor_list; d != NULL; d = d->next)
  {
    char const *title;
    
    if (d->connected != CON_PLAYING) continue;
    if ((wch = d->character) == NULL) continue;

    /*
     * Immortals are not players, and should not be counted as such.
     */
    if (wch->level < 7) nPlayerAll++;

    /*
     * Visibility :-)
     */
    if (!can_see(ch, wch)) continue;

    if (wch->level < 7) nPlayerVis++;
    else nImmVis++;

    /*
     * The playerkill range is decided
     */
    if (!str_cmp(ch->pcdata->last_decap[0], wch->name)) canDecap = FALSE;
    else canDecap = fair_fight(ch, wch);
    if (!str_cmp(wch->pcdata->last_decap[0], ch->name)) canKillYou = FALSE;
    else canKillYou = fair_fight(wch, ch);

    if (rangeOnly && !canDecap) continue;
   
     if ( wch->sex == 1 )
    {
    sprintf (sexbuf, "#n*%s#n*#n  ", "#LM" );
    }
    if ( wch->sex == 2 )
    {
    sprintf (sexbuf, "#n*%s#n*#n  ", "#PF" );
    }
    if ( wch->fight_timer > 0 )
    {
    sprintf (sexbuf, "#n[#YF#yT#n] ");
    }
    /*
     * Let's calculate the pkratio and the color of the symbols for players to be guided by.
     */

    if (!IS_SET(wch->immune, IMM_HYBRID))
    {
	sprintf(pkratio,"#7[#n%2d#7]#n",wch->pStatus);
    }
    else
    {
        sprintf(pkratio,"#7[#n%2d#7]#n",wch->pStatus);
    }

    /*
     * Now let's parse the title.
     */

    mightRate = getMight(wch);
    
    if ((IS_HEAD(wch,LOST_HEAD) || IS_EXTRA(wch,EXTRA_OSWITCH)) && wch->pcdata->chobj != NULL)
    {
      if (wch->pcdata->chobj->pIndexData->vnum == 12) title = " #CA Head#n     #n ";
      else if (wch->pcdata->chobj->pIndexData->vnum == 30005) title = " #CA Brain#n     ";
      else title = " #RAn Object#n       ";
    }
    else
    {
      switch (wch->level )
      {
        default:
          title = " ";
          break;
        case MAX_LEVEL:
        case MAX_LEVEL - 1:
        case MAX_LEVEL - 2:
        case MAX_LEVEL - 3:
        case MAX_LEVEL - 4:
        case MAX_LEVEL - 5:
          if (IS_EXTRA(wch, EXTRA_AFK)) title = " #C*#0***A#CF#0K***#C*#n ";
          else if (IS_SET(wch->newbits2, NEW2_CODING)) title = "#r-#0[#rCODING#0]#r-#n     ";
          else if (wch->prefix != NULL && strlen(wch->prefix) > 1 && str_cmp(wch->prefix,"off")) title = wch->prefix;
          else if (!str_cmp(wch->pcdata->switchname, "Xrakisis")) title = "#G(#C=-#gOWNER#C-=#G)#n";
          else if (!str_cmp(wch->pcdata->switchname, "Sneak")) title = "#G(#C=-#PGoat#C-=#G)#n";
          else if (!str_cmp(wch->pcdata->switchname, "Drexx")) title = "#LC#7oder#n";
          else if (!str_cmp(wch->pcdata->switchname, "Akurei")) title = "#G(#C=-#rCoder#C-=#G)#n";
          else if (!str_cmp(wch->pcdata->switchname, "Anubis")) title = "#R|#0)-#RD#remo#Rn #rW#Rarlor#rd#0-(#R|#n";   
          else title = "#Y>>>#0GoD#Y<<<#n";
          break;
        case MAX_LEVEL - 6:
        case MAX_LEVEL - 7:
        case MAX_LEVEL - 8:
        case MAX_LEVEL - 9:
          if (IS_EXTRA(wch, EXTRA_AFK)) title = "  #C*#0***A#CF#0K***#C*#n   ";
          else if (IS_SET(wch->act, PLR_SILENCE)) title = "  #LSI#7LENC#LED#n      ";

				else if (IS_RACE(wch, RACE_HUMAN))
					title = "  #0Human#n         ";
                                else if (IS_RACE(wch, RACE_ELF))
                                        title = "  #0High Elf#n      ";
                                else if (IS_RACE(wch, RACE_GNOME))
                                        title = "  #0Gnome#n         ";
                                else if (IS_RACE(wch, RACE_GULLYDWARF))
                                        title = "  #0Gully Dwarf#n   ";
                                else if (IS_RACE(wch, RACE_HILLDWARF))
                                        title = "  #0Hill Dwarf#n    ";
                                else if (IS_RACE(wch, RACE_MTDWARF))
                                        title = "  #0Mountain Dwarf#n";
                                else if (IS_RACE(wch, RACE_DRAGONKIND))
                                        title = "  #0DragonKind#n    ";
                                else if (IS_RACE(wch, RACE_HOBBIT))
                                        title = "  #0Hobbit#n        ";
                                else if (IS_RACE(wch, RACE_KENDER))
                                        title = "  #0Kender#n        ";
                                else if (IS_RACE(wch, RACE_DROW))
                                        title = "  #0Drow#n          ";
                                else if (IS_RACE(wch, RACE_GIANT))
                                        title = "  #0Giant#n         ";
                                else if (IS_RACE(wch, RACE_HALFELF))
                                        title = "  #0Half Elf#n      ";
                                else if (IS_RACE(wch, RACE_OGRE))
                                        title = "  #0Ogre#n          ";
                                else if (IS_RACE(wch, RACE_HALFOGRE))
                                        title = "  #0Half Ogre#n     ";
                                else if (IS_RACE(wch, RACE_MINOTAUR))
                                        title = "  #0Minotaur#n      ";
                                else if (IS_RACE(wch, RACE_GOBLIN))
                                        title = "  #0Goblin#n        ";
                                else if (IS_RACE(wch, RACE_HOBGOBLIN))
                                        title = "  #0HobGoblin#n     ";
                                else if (IS_RACE(wch, RACE_DUERGARDWARF))
                                        title = "  #0Duergar#n       ";
                                else if (IS_RACE(wch, RACE_TROLL))
                                        title = "  #0Troll#n         ";
                                else if (IS_RACE(wch, RACE_HALFTROLL))
                                        title = "  #0Half Troll#n    ";
                                else if (IS_RACE(wch, RACE_ORC))
                                        title = "  #0Orc#n           ";
                                else if (IS_RACE(wch, RACE_HALFORC))
                                        title = "  #0Half Orc#n      ";
                                else if (IS_RACE(wch, RACE_CENTAUR))
                                        title = "  #0Centaur#n       ";
                                else if (IS_RACE(wch, RACE_WILDELF))
                                        title = "  #0Wild Elf#n      ";
                                else if (IS_RACE(wch, RACE_ARCHDEMON))
                                        title = "  #0Arch-Demon#n    ";
                                else if (IS_RACE(wch, RACE_ARCHANGEL))
                                        title = "  #0Arch-Angel#n    ";
				else 
					title = "                ";
                                break;
         break;
         case MAX_LEVEL - 10:
          title = " #YM#yortal#n          ";
          break;
        case MAX_LEVEL - 11:
          title = " #YN#yewbie#n          ";
          break;
        case MAX_LEVEL - 12:
          title = " #YU#yndefined#n          ";
          break;
      }   
    }  
       
    /*
     * Time to parse the class name, first we do the symbols.
     */
    if (IS_CLASS(wch, CLASS_TANARRI))
      {strcpy(openb, "#y{#n"); strcpy(closeb, "#y}#n");}
    else if (IS_CLASS(wch, CLASS_ANGEL))
      {strcpy(openb, "#y.x#0[#n" ); strcpy( closeb, "#0]#yx.#n" );}
    else if (IS_CLASS(wch, CLASS_UNDEAD_KNIGHT))
      {strcpy(openb, "#0|[#n" ); strcpy( closeb, "#0]|#n" );}
    else if (IS_CLASS(wch, CLASS_VAMPIRE))
      {strcpy(openb, "#R<<#n" ); strcpy( closeb, "#R>>#n" );}
    else if (IS_CLASS(wch, CLASS_WEREWOLF))
      {strcpy(openb, "#y((#n" ); strcpy( closeb, "#y))#n" );}
    else if (IS_CLASS(wch, CLASS_DROW))
      {strcpy(openb, "#P.o0"); strcpy(closeb, "#P0o.#n" );}
    else if (IS_CLASS(wch, CLASS_ASSASSIN))
      {strcpy(openb, "#g[#rX#g]#n"); strcpy(closeb, "#g[#rX#g]#n");}
    else if (IS_CLASS(wch, CLASS_GHOUL))
      {strcpy(openb, "#GX#gx#G(#n");strcpy(closeb, "#G)#gx#GX#n");}
    else if (IS_CLASS(wch, CLASS_ANTIPALADIN))
      {strcpy(openb, "#R^-^#n"); strcpy(closeb, "#R^-^#n");}
    else if (IS_CLASS(wch, CLASS_PRIEST))
      {strcpy(openb, "#W]#w>#B*#n"); strcpy(closeb, "#B*#w<#W[#n");}
    else if (IS_CLASS(wch, CLASS_GIANT))
      {strcpy(openb, "#c<>#n"); strcpy(closeb, "#c<>#n");}
    else if (IS_CLASS(wch, CLASS_SKYBLADE))
      {strcpy(openb, "#B=#R*#W>#n");strcpy(closeb, "#W<#R*#B=#n");}
    else if ( IS_CLASS(wch, CLASS_WRAITH))
      {strcpy( openb, "#o-#R(#0*#R)#o>#n"); strcpy(closeb, "#o<#R(#0*#R)#o-#n");}
    else if ( IS_CLASS(wch, CLASS_ELEMENTAL))
      {strcpy( openb, "#rx#RX#C[#n"); strcpy(closeb, "#C]#RX#rx#n");}
    else if ( IS_CLASS(wch, CLASS_PALADIN))
      {strcpy( openb, "#y<#7/#y+#7>#n"); strcpy(closeb, "#7<#y+#7\\#y>#n");}
    else if (IS_CLASS(wch, CLASS_DRAGON))
      {strcpy(openb, "#r:=#n"); strcpy(closeb, "#r=:#n");}
   else if (IS_CLASS(wch, CLASS_UNDEAD_ASSASSIN))
    {strcpy(openb, "#0|#g[#n"); strcpy(closeb, "#g]#0|#n");}
    else
      {strcpy(openb, "#0[#n" ); strcpy( closeb, "#0]#n" );}

    /*
     * and then the class name.
     */
    if (wch->class > 0)
    {
      if( IS_CLASS(wch, CLASS_ANGEL) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#7Arch Angel#n%s        ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#7Cherubim#n%s          ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#7Seraphim#n%s          ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#7Guardian Angel#n%s    ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#7Angel#n%s             ", openb, closeb );
        else 
          sprintf( kav, "%s#7Nephalim#n%s          ", openb, closeb );
      }
      else if( IS_CLASS(wch, CLASS_UNDEAD_KNIGHT) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#LFallen Paladin#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#LUndead Lord#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#LUndead Knight#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#LUndead Knight#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#LUndead Knight#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#LSkeleton Knight#n%s     ", openb, closeb );
      }
      else if( IS_CLASS(wch, CLASS_SHADOW_DRAGON) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g[#cS#lhado#cw D#lrago#cn#g]#n#n%s       ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#c[#rD#Re#rm#Ro#rn#Ri#rc #gd#lrago#gn#c]#n#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#c[#gd#lrago#gn #rl#Ro#rr#Rd#n#c]#n#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s[#0b#nl#0a#nc#0k#ne#0n#nd #gd#lrago#gn#c]#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#c[#rA#Rb#ry#Rs#rs#Rm#ra#Rl #gD#lrago#gn#n]#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#c[#gD#lrago#gn #ri#Rm#rp#n]#n%s     ", openb, closeb );
      }

      else if( IS_CLASS(wch, CLASS_SHADOW_FIEND) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g[#rS#chado#rw F#cien#rd#g]#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#g[#rD#0e#rm#0o#rn#0i#rc #rS#chado#rw#g]#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#g[#rD#0e#rm#0o#rn#0i#rc #nM#7i#ns#7t#g]#n#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#g[#0C#7h#0a#7o#0s #nM#7i#ns#7t#g]#n#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#g[#rR#Re#rd #nM#7i#ns#7t#g]#n#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#g[#0D#na#0r#nk #nM#7i#ns#7t#g]#n%s     ", openb, closeb );
      }

      else if( IS_CLASS(wch, CLASS_STALKER) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#r[#gS#rtalke#gr#g]#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#r[#pM#Pa#pg#Pu#ps #lW#yol#lf#r]#n#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#r[#pS#0h#pa#0w#pm#0e#pn #RB#reas#Rt#r]#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#r[#0S#7h#0a#7d#0o#7w #lW#yol#lf#r]#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#r[#0Dark #RB#reas#Rt#r]#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#r[#pL#Pl#po#Pt#ph #rB#Re#ra#Rs#rt]#n%s     ", openb, closeb );
      }

      else if( IS_CLASS(wch, CLASS_SHADOWBORN) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g[#rS#chado#rw#cb#ro#cr#rn#g]#n%s          ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#g[#rS#chado#rw #RW#rarrio#Rr#g]#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#g[#PC#phose#Pn #rS#chado#rw#g]#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#g[#cS#Cpiri#ct #nof #PL#plot#Ph#n#g]#n%s     ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#g[#PP#purpl#Pe #rS#chado#rw#g]#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#g[#pM#Pa#pg#Pu#ps #7M#0i#7s#0t#g]#n%s     ", openb, closeb );
      }



      else if( IS_CLASS(wch, CLASS_HELL_SPAWN) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g[#rH#gELL#rS #rS#gPAW#rN#g]#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#g[#rB#Rl#ro#Ro#rd #0T#ra#0n#ra#0r#rr#0i#g]#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#g[#rM#Re#rthu#Rs#rel#Ra#rh #0Fig#rh#0ter#g]#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#g[#rA#0n#rc#0i#rl#0l#ra #rFo#0d#0d#rer#g]#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#g[#rB#Rl#ro#Ro#rd #rB#ya#rl#yo#rr#g]#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#g[#RB#rl#Ro#ro#Rd #rS#gpaw#rn#g]#n%s     ", openb, closeb );
      }


      else if( IS_CLASS(wch, CLASS_DEVA) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g[#GD#gEV#GA#g]#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#g[#GG#ga#Gi#ga #RD#remo#Rn#g]#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#g[#rF#Ri#rr#Re #RD#remo#Rn#g]#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#g[#CW#la#Ct#le#Cr #RD#remo#Rn#g]#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#g[#oE#ya#or#yt#oh #RD#remo#Rn#g]#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s-#g[#7A#ni#7r #RD#remo#Rn#g]#n%s     ", openb, closeb );
      }

      else if( IS_CLASS(wch, CLASS_NAZGUL) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g|[#lN#Lazgu#ll#g]|#n%s            ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#g|[#gH#Gydr#ga #lZ#Lo#0mb#Li#le#g]|#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#g|[#3#lh#Leade#ld #lK#Lnigh#lt#g]|#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#g|[#lU#Ln#0de#La#ld #gH#Gydr#ga]|#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#g|[#lD#Lea#ld #GS#gcale#Gs#g]|#n%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#g|[#lF#Lalle#ln #gH#Gydr#ga]|#n%s     ", openb, closeb );
      }
   else if( IS_CLASS(wch, CLASS_VAMPIRIC_MIST) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#g<<#rVampyric #oMist#g>>#n%s     ", openb, closeb );
        else 
          sprintf( kav, "%s#g<<#rVampyric #oMist#g>>#n%s     ", openb, closeb );
      }
   else if ( IS_CLASS(wch, CLASS_BETRAYER) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#7-#0[#RB#ret#0r#7a#rye#Rr#0]#7-#n%s          ", openb, closeb );
        else 
          sprintf( kav, "%s#7-#0[#RB#ret#0r#7a#rye#Rr#0]#7-#n%s          ", openb, closeb );
      }
      else if( IS_CLASS(wch, CLASS_NECROMANCER) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#rx#RX#C[#gNecromancer#C]#RX#rx#n%s     ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#rx#RX#C[#GG#ga#Gi#ga #lZ#Lo#0mb#Li#le#C]#RX#rx#n%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#rx#RX#C[#rF#Ri#rr#Re #lZ#Lo#0mb#Li#le#C]#RX#rx#n%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#rx#RX#C[#CW#la#Ct#le#Cr #lZ#Lo#0mb#Li#le#C]#RX#rx#n%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#rx#RX#C[#0A#7i#0r #lZ#Lo#0mb#Li#le#C]#RX#rx#n%s      ", openb, closeb );
        else 
          sprintf( kav, "%s#rx#RX#C[#yE#oa#yr#ot#yh #lZ#Lo#0mb#Li#le#C]#RX#rx#n%s     ", openb, closeb );
      }


      else if( IS_CLASS(wch, CLASS_SILVER_DRAGON) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#y.x#g(#7Silver Dragon#g)#yx.%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#y.x#g(#CG#co#Cd#cs #gH#Gachlin#Gg#g)#yx.%s         ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#y.x#g(#gS#0c#ga#0l#ge#0y #CS#ce#Cr#ca#Cp#ch#Ci#cm#g)#yx.%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#y.x#g(#GD#grago#Gn #nof #7Light#g)#yx.%s       ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#y.x#g(#CH#ceavan#Cs #GD#gragoo#Gn#g)#yx.%s       ", openb, closeb );
        else 
          sprintf( kav, "%s#y.x#g(#7Nephalim #GD#gr#0ag#go#Gn#g)#yx.%s     ", openb, closeb );
      }
      else if ( IS_CLASS(wch, CLASS_WEREWOLF))
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#LChieftain#n%s           ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#LTribe Shaman#n%s        ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#LPack Leader#n%s         ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#LFenris Wolf#n%s         ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#LStalker#n%s             ", openb, closeb );
        else if (wch->generation == 6)
          sprintf( kav, "%s#LHunter#n%s              ", openb, closeb );
        else if (wch->generation == 7) 
          sprintf( kav, "%s#LPup of Gaia#n%s         ", openb, closeb );
        else
          sprintf( kav, "%s#LHalfbreed Bastard#n%s   ", openb, closeb );
      }
      else if ( IS_CLASS(wch, CLASS_DROW)) 
      {
        if (wch->generation == 1)
          sprintf(kav,"%s#0Matron Mother#n%s     ", openb, closeb);   
        else if (wch->generation == 2)
          sprintf(kav,"%s#0Weaponmaster#n%s      ", openb, closeb);   
        else if (wch->generation == 3)
          sprintf(kav,"%s#0High Priestess#n%s    ", openb, closeb);   
        else if (wch->generation == 4)
          sprintf(kav,"%s#0Favored of Lloth#n%s  ", openb, closeb);   
        else if (wch->generation == 5)
          sprintf(kav,"%s#0Black Widow#n%s       ", openb, closeb);   
        else if (wch->generation == 6)
          sprintf(kav,"%s#0Drow#n%s              ", openb, closeb);   
        else if (wch->generation == 7)
          sprintf(kav,"%s#0Drow Male#n%s         ", openb, closeb);
        else
          sprintf(kav,"%s#0Drider#n%s            ", openb, closeb);
      }
      else if ( IS_CLASS(wch, CLASS_VAMPIRE))
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#RI#0nner #RC#0ircle#n%s        ", openb, closeb);
        else if (wch->generation == 2)
          sprintf( kav, "%s#RV#0ampire #RJ#0usticar#n%s    ", openb, closeb);
        else if (wch->generation == 3)
          sprintf( kav, "%s#RV#0ampire #RP#0rince#n%s      ", openb, closeb);
        else if (wch->generation == 4)
          sprintf( kav, "%s#RV#0ampire #RA#0ncilla#n%s     ", openb, closeb);
        else if (wch->generation == 5)
          sprintf( kav, "%s#RV#0ampire #RA#0rchon#n%s      ", openb, closeb);
        else if (wch->generation == 6)
          sprintf( kav, "%s#RV#0ampire#n%s             ", openb, closeb);
        else if (wch->generation == 7)
          sprintf( kav, "%s#RV#0ampire #RA#0narch#n%s      ", openb, closeb);
        else
          sprintf( kav, "%s#RB#0loodsucker#n%s         ", openb, closeb);
      }
      else if ( IS_CLASS(wch, CLASS_TANARRI))
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#RTanar'ri Balor#n%s        ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#RTanar'ri Marilith#n%s     ", openb, closeb );
        else if (wch->generation == 3) 
          sprintf( kav, "%s#RGreater Tanar'ri#n%s      ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#RTrue Tanar'ri#n%s         ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#RTanar'ri#n%s              ", openb, closeb );
        else
          sprintf( kav, "%s#RCambion#n%s               ", openb, closeb );
      }
   	   else if (IS_CLASS(wch, CLASS_SHINOBI)){
		switch(wch->pcdata->powers[S_ELEMENT]){
			case S_FIRE:
				sprintf(buf19, "%s", "#R");
				break;
			case S_EARTH:
				sprintf(buf19, "%s", "#o");
				break;
			case S_WIND:
				sprintf(buf19, "%s", "#C");
				break;
			case S_WATER:
				sprintf(buf19, "%s", "#L");
				break;
			case S_HOLY:
				sprintf(buf19, "%s", "#7");
				break;
			case S_SHADOW:
				sprintf(buf19, "%s", "#0");
				break;
	     }
		switch(wch->pcdata->powers[S_RANK]){
			case S_APPRENTICE:
				sprintf(kav,"%s\\#0|%s/#l-%sA#0pprentic%se#l-%s\\#0|%s/#n      ", buf19, buf19,buf19,buf19,buf19,buf19);
				break;
			case S_GENIN:
				sprintf(kav,"%s\\#0|%s/#l-%sG#0eni%sn#l-%s\\#0|%s/#n           ", buf19, buf19,buf19,buf19,buf19,buf19);
				break;
			case S_JOUNIN:
				sprintf(kav,"%s\\#0|%s/#l-%sJ#0ouni%sn#l-%s\\#0|%s/#n          ", buf19, buf19,buf19,buf19,buf19,buf19);
				break;
			case S_KAGE:
				sprintf(kav,"%s\\#0|%s/#l-%sK#0ag%se#l-%s\\#0|%s/#n            ", buf19, buf19,buf19,buf19,buf19,buf19);
				break;
		}
	}


      else if ( IS_CLASS(wch, CLASS_DEMON) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#RPit Lord#n%s              ", openb, closeb);
        else if (wch->generation == 2)
          sprintf( kav, "%s#RPit Fiend#n%s             ", openb, closeb);
        else if (wch->generation == 3)
          sprintf( kav, "%s#RGateKeeper#n%s            ", openb, closeb);
        else if (wch->generation == 4)
          sprintf( kav, "%s#RImp Lord#n%s              ", openb, closeb);
        else if (wch->generation == 5)
          sprintf( kav, "%s#RHell Spawn#n%s            ", openb, closeb);
        else if (wch->generation == 6)
          sprintf( kav, "%s#RDemon#n%s                 ", openb, closeb);
        else if (wch->generation == 7)
          sprintf( kav, "%s#RSpawnling#n%s             ", openb, closeb);
        else 
          sprintf( kav, "%s#RImp#n%s                   ", openb, closeb);
      }
      else if( IS_CLASS(wch, CLASS_ASSASSIN) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#CDeath Dealer#n%s      ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#CMaster Assassin#n%s   ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#CAssassin#n%s          ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#CAssassin#n%s          ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#CKiller#n%s            ", openb, closeb );
        else 
          sprintf( kav, "%s#CM#ci#Cs#cc#Cr#ce#Ca#cn#Ct#n%s         ", openb, closeb );
      }

       else  if (IS_CLASS(wch, CLASS_PRIEST))
                        {
                                if (wch->generation == 1)
                                        sprintf(kav,
                                                "%s#WHoly Priest#n%s       ",
                                                openb, closeb);
                                else
                                        sprintf(kav,
                                                "%s#WPriest#n%s            ",
                                                openb, closeb);
                        }
                        else if (IS_CLASS(wch, CLASS_GHOUL))
                        {
                                if (wch->generation == 1)
                                        sprintf(kav,
                                                "%s#gNec#Grite#n%s           ",
                                                openb, closeb);
                                else if (wch->generation == 2)
                                        sprintf(kav,
                                                "%s#wSwamp #0Thing#n%s        ",
                                                openb, closeb);
                                else if (wch->generation == 3)
                                        sprintf(kav,
                                                "%s#gUndead#n%s             ",
                                                openb, closeb);
                                else if (wch->generation == 4)
                                        sprintf(kav,
                                                "%s#0Zom#wbie#n%s             ",
                                                openb, closeb);
                                else if (wch->generation == 5)
                                        sprintf(kav,
                                                "%s#GFlesh #0Eater#n%s        ",
                                                openb, closeb);
                                else if (wch->generation == 6)
                                        sprintf(kav,
                                                "%s#gGhoul#n%s              ",
                                                openb, closeb);
                                else
                                        sprintf(kav,
                                                "%s#GScum Bag#n%s           ",
                                                openb, closeb);
                        }


	else if (IS_CLASS(wch, CLASS_ANTIPALADIN))
	sprintf( kav,   "%s#0Warlord#n%s           ", openb, closeb );

                        else if (IS_CLASS(wch, CLASS_SKYBLADE))
                        {
                                if (wch->generation == 1)
                                        sprintf(kav,
                                                "%s#WWind Sword#n%s        ",
                                                openb, closeb);
                                else if (wch->generation == 2)
                                        sprintf(kav,
                                                "%s#WCloud Defender#n%s    ",
                                                openb, closeb);
                                else if (wch->generation == 3)
                                        sprintf(kav,
                                                "%s#WCloud #0Knight#n%s      ",
                                                openb, closeb);
                                else if (wch->generation == 4)
                                        sprintf(kav,
                                                "%s#WTempest Knight#n%s    ",
                                                openb, closeb);
                                else if (wch->generation == 5)
                                        sprintf(kav,
                                                "%s#WSkyBlade#n%s          ",
                                                openb, closeb);
                                else if (wch->generation == 6)
                                        sprintf(kav,
                                                "%s#CSky#wTrainee#n%s        ",
                                                openb, closeb);
                                else
                                        sprintf(kav,
                                                "%s#CSky#WWimp#n%s            ",
                                                openb, closeb);
                        }


                        else if (IS_CLASS(wch, CLASS_GIANT))
                        {
                                if (wch->generation == 1)
                                        sprintf(kav,
                                                "%s#GS#gtorm Gian#Gt#n%s         ",
                                                openb, closeb);
                                else if (wch->generation == 2)
                                        sprintf(kav,
                                                "%s#GC#gloud Gian#Gt#n%s         ",
                                                openb, closeb);
                                else if (wch->generation == 3)
                                        sprintf(kav,
                                                "%s#GF#gire Gian#Gt#n%s          ",
                                                openb, closeb);
                                else if (wch->generation == 4)
                                        sprintf(kav,
                                                "%s#GS#gtone Gian#Gt#n%s         ",
                                                openb, closeb);
                                else if (wch->generation == 5)
                                        sprintf(kav,
                                                "%s#GH#gill Gian#Gt#n%s          ",
                                                openb, closeb);
                                else if (wch->generation == 6)
                                        sprintf(kav,
                                                "%s#GG#gian#Gt#n%s               ",
                                                openb, closeb);
                                else
                                        sprintf(kav,
                                                "%s#GO#ggr#Ge#n%s                ",
                                                openb, closeb);
                        }


      else if( IS_CLASS(wch, CLASS_WRAITH) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#yW#0raith Lor#yd#n%s   ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#yD#0ark Wrait#yh#n%s   ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#yU#0ndead Sou#yl#n%s   ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#yW#0ailing Sou#yl#n%s  ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#yS#0piri#yt#n%s        ", openb, closeb );
        else 
          sprintf( kav, "%s#yD#0ead Bod#yy#n%s     ", openb, closeb );
      }
      else if( IS_CLASS(wch, CLASS_ELEMENTAL) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%s#CF#corc#Ce of N#catur#Ce%s   ", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%s#CH#carbringe#Cr%s        ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%s#CS#ctor#Cm #CR#cide#Cr%s       ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%s#CN#catura#Cl #CD#cisaste#Cr%s  ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%s#CE#clde#Cr E#clementa#Cl%s   ", openb, closeb );
        else 
          sprintf( kav, "%s#CM#cino#Cr E#clementa#Cl%s   ", openb, closeb );
      }
      else if( IS_CLASS(wch, CLASS_PALADIN) )
      {
        if (wch->generation == 1)
          sprintf( kav, "%sAscended Paladin%s", openb, closeb );
        else if (wch->generation == 2)
          sprintf( kav, "%sCaptain General%s ", openb, closeb );
        else if (wch->generation == 3)
          sprintf( kav, "%sCrusader%s        ", openb, closeb );
        else if (wch->generation == 4)
          sprintf( kav, "%sCavalier%s        ", openb, closeb );
        else if (wch->generation == 5)
          sprintf( kav, "%sKnight Templar%s  ", openb, closeb );
        else if (wch->generation <= 7)
          sprintf( kav, "%sLance Knight%s    ", openb, closeb );
        else if (wch->generation <= 9)
          sprintf( kav, "%sRecruit%s         ", openb, closeb );
        else 
          sprintf( kav, "%sSquire%s          ", openb, closeb );
      }
      else if ( IS_CLASS(wch, CLASS_DRAGON) )
      {
        if (wch->generation <= 1)
          sprintf( kav, "%s#CAncient One#n%s         ", openb, closeb);
        else if (wch->generation <= 2)
          sprintf( kav, "%s#CElder Wyrm#n%s          ", openb, closeb);
        else if (wch->generation <= 3)
          sprintf( kav, "%s#CWyrm#n%s                ", openb, closeb);
        else if (wch->generation <= 4)
          sprintf( kav, "%s#CElder Dragon#n%s        ", openb, closeb);
        else if (wch->generation <= 5)
          sprintf( kav, "%s#CAdult Dragon#n%s        ", openb, closeb);
        else if (wch->generation <= 6)
          sprintf( kav, "%s#CDragon#n%s              ", openb, closeb);
        else if (wch->generation <= 9)
          sprintf( kav, "%s#CYoung Dragon#n%s        ", openb, closeb);
        else
          sprintf( kav, "%s#CHatchling#n%s             ", openb, closeb);
      }

      else if( IS_CLASS(wch, CLASS_ZOMBIE) ){
	if(wch->generation <= 1)
	  sprintf( kav, "%s#7Doombringer#n%s           ", openb, closeb );
	else if(wch->generation <= 2)
	  sprintf( kav, "%s#7Deathlord#n%s             ", openb, closeb );	
	else if(wch->generation <= 3)
	  sprintf( kav, "%s#7Soulless#n%s              ", openb, closeb );	
	else if(wch->generation <= 4)
	  sprintf( kav, "%s#7Tainted#n%s               ", openb, closeb );	
	else if(wch->generation <= 5)
	  sprintf( kav, "%s#7Cursed#n%s                ", openb, closeb );	
	else if(wch->generation <= 6)
	  sprintf( kav, "%s#7Nightmare#n%s             ", openb, closeb );	
	else if(wch->generation <= 7)
	  sprintf( kav, "%s#7Servant#n%s               ", openb, closeb );	
	else if(wch->generation <= 8)
	  sprintf( kav, "%s#7Cannibal#n%s              ", openb, closeb );	
	else if(wch->generation <= 9)
	  sprintf( kav, "%s#7Ghost#n%s                 ", openb, closeb );	
	else
	  sprintf( kav, "%s#7Zombie#n%s              ", openb, closeb );	

      }

  else if( IS_CLASS(wch, CLASS_BAATEZU) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#gBAATEZU#n%s          ", openb, closeb );
        else 
      sprintf( kav, "%s#C**#r{#yBa#r'#yatezu#r}#C**#n%s               ", openb, closeb );
}
  else if( IS_CLASS(wch, CLASS_BLADE_MASTER) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#C-=#CB#rlad#CeM#raste#Cr#C=-#n%s       ", openb, closeb );
        else
      sprintf( kav, "%s#C-=#CB#rlad#CeM#raste#Cr#C=-#n%s       ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_BLACK_ASSASSIN) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#CBlack Assassin#n%s        ", openb, closeb );
        else 
      sprintf( kav, "%s#G{#g/*\#G}#CBlack Assassin#G{#g/*\#G}#n%s               ", openb, closeb );
}


  else if( IS_CLASS(wch, CLASS_DRUID) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#gDruid#n%s                 ", openb, closeb );
        else 
      sprintf( kav, "%s#C-=#y(#rx#gDruid#rx#y)#C=-#n%s         ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_HYDRA) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#C***#yHydra#C***#n%s           ", openb, closeb );
        else 
      sprintf( kav, "%s#C***#yHydra#C***#n%s           ", openb, closeb );
}
  else if( IS_CLASS(wch, CLASS_HEAVENS_SOLDIER) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#G<#G>Heaven's Soldier#G<#G>#n%s", openb, closeb );
        else
      sprintf( kav, "%s#G<#G>Heaven's Soldier#G<#G>#n%s  ", openb, closeb );
}
  else if( IS_CLASS(wch, CLASS_GAIA_WOLF) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#C-=#y(#rx#gG#Gaia Wol#gf#rx#y)#C=-#n%s          ", openb, closeb );
        else
      sprintf( kav, "%s#C-=#y(#rx#gG#Gaia Wol#gf#rx#y)#C=-#n%s     ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_SCORPION) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#C-=#r<<#n#rS#Rcorpio#rn#r>>#C=-#n%s          ", openb, closeb );
        else
      sprintf( kav, "%s#C-=#r<<#n#rS#Rcorpio#rn#r>>#C=-#n%s               ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_HUMAN) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#G+#g-#G+Cyber-Mage#G+#g-#G+#n%s      ", openb, closeb );
        else
      sprintf( kav, "%s#g+#G-#g+#0Te#Gch#0no#GMa#0ge#g+#G-#g+#0#n%s      ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_TYPHON) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#C**#yX#C(#yTyphon#C)#yX#C**#n%s               ", openb, closeb );
        else 
      sprintf( kav, "%s#C**#yX#C(#yTyphon#C)#yX#C**#n%s               ", openb, closeb );
}

  else if( IS_CLASS(wch, CLASS_HELLS_SOLDIER) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#gH#rell#gs #gS#roldie#gr#n%s         ", openb, closeb );
        else 
      sprintf( kav, "%s#gH#rell#gs #gS#roldie#gr#n%s         ", openb, closeb );
}
  else if( IS_CLASS(wch, CLASS_HEAVENS_SOLDIER) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#G<#G>Heaven's Soldier#G<#G>#n%s", openb, closeb );
        else 
      sprintf( kav, "%s#G<#G>Heaven's Soldier#G<#G>#n%s  ", openb, closeb );
}
  else if( IS_CLASS(wch, CLASS_UNDEAD_LYCAN) )
      {
    if (wch->generation == 1)
      sprintf( kav, "%s#gU#rndea#gd L#ryca#gn#n%s          ", openb, closeb );
        else 
      sprintf( kav, "%s#gU#rndea#gd L#ryca#gn#n%s          ", openb, closeb );
      }
  else if( IS_CLASS(wch, CLASS_UNDEAD_ASSASSIN) )
  {
    if (wch->generation == 1)
    sprintf( kav, "%s#lU#Lndea#ld #oM#yercenar#oy#n%s         ", openb, closeb );
    else
    sprintf( kav, "%s#lU#Lndea#ld #oA#yssassi#on#n%s          ", openb, closeb );
  }
      else
        sprintf( kav, "#nNone#n                    " );
    }
    else sprintf(kav, "#nNone#n                    " );

    /* I'm aware it says faith, but I was just to lazy to change it to kingdom - Jobo */
//    if (wch->pcdata->kingdom >= 1 && wch->pcdata->kingdom <= MAX_KINGDOM)
    	if (!IS_NPC(ch))
    	{
	if (wch->pcdata->kingdom == 1)
        sprintf(faith, "#YR#yu#7le#yr#Ys#n           ");    	
  	else if (wch->pcdata->kingdom == 2)
       	sprintf(faith, "#BF#bo#nr#7sa#nk#be#Bn#n     ");
       	else if (wch->pcdata->kingdom == 3)
       	sprintf(faith, "#RS#ry#yn#Yd#7i#Yc#ya#rt#Re#n");
       	else if (wch->pcdata->kingdom == 4)
       	sprintf(faith, "#7+#n)#0)#ROn#riw#Rab#ran#0(#n(#7+#n");
       	else if (wch->pcdata->kingdom == 5)
       	sprintf(faith, "#GP#gl#na#7g#nu#ge#Gs#n      ");
       	else if (wch->pcdata->kingdom == 6)
       	sprintf(faith, "#l=#0<>#RA#rka#Rts#ruk#Ri#0<>#l=#n");
       	else
       	sprintf(faith, "");
	}

	if (!IS_NPC(ch))
	{
	if (wch->god == 0) sprintf(god,"Athiest     ");
	if (wch->god == 1) sprintf(god,"Astinus     ");
	if (wch->god ==2) sprintf(god,"Chemosh     ");
	if (wch->god ==3) sprintf(god,"Hiddukel    ");
	if (wch->god ==4) sprintf(god,"Nuitari     ");
	if (wch->god ==5) sprintf(god,"Sargonnas   ");
	if (wch->god ==6) sprintf(god,"Zeboim      ");
	if (wch->god ==7) sprintf(god,"Branchala   ");
	if (wch->god ==8) sprintf(god,"Habbakuk    ");
	if (wch->god ==9) sprintf(god,"Kiri-Jolith ");
	if (wch->god ==10) sprintf(god,"Majere      ");
	if (wch->god ==11) sprintf(god,"Mishakal    ");
	if (wch->god ==12) sprintf(god,"Solinari    ");
	if (wch->god ==13) sprintf(god,"Chislev     ");
	if (wch->god ==14) sprintf(god,"Gilean      ");
	if (wch->god ==15) sprintf(god,"Lunitari    ");
	if (wch->god ==16) sprintf(god,"Reorx       ");
	if (wch->god ==17) sprintf(god,"Shinare     ");
	if (wch->god ==18) sprintf(god,"Sirrion     ");
	if (wch->god ==19) sprintf(god,"Zivilyn     ");
	if (wch->god ==20) sprintf(god,"Takhisis    ");
	if (wch->god ==21) sprintf(god,"Paladine    ");
	}
    /* 
     * Let's figure out where to place the player.
     */
        
    if (wch->level > 6 )
    {
      sprintf(buf1 + strlen(buf1), " %37s   %s\n\r", wch->pcdata->switchname, title);
      a1 = TRUE;
    }
    else if (wch->level >= 3 && wch->level <= 6)
    {
      if (mightRate > 3500)
      {
        sprintf(buf2 + strlen(buf2), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a2 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 3250)
      {
        sprintf(buf3 + strlen(buf3), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a3 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 3000)
      {
        sprintf(buf4 + strlen(buf4), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a4 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 2750)
      {
        sprintf(buf5 + strlen(buf5), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a5 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 2500)
      {
        sprintf(buf6 + strlen(buf6), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a6 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 2250)
      {
        sprintf(buf7 + strlen(buf7), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",   
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a7 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 2000)
      {
        sprintf(buf8 + strlen(buf8), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",   
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a8 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 1750)
      {
        sprintf(buf9 + strlen(buf9), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a9 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 1500)
      {
        sprintf(buf10 + strlen(buf10), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a10 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 1250)
      {
        sprintf(buf11 + strlen(buf11), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a11 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 1000)
      {
        sprintf(buf12 + strlen(buf12), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a12 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 750)
      {
        sprintf(buf13 + strlen(buf13), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a13 = TRUE; avatars = TRUE;
      }
      else if (mightRate > 500)  
      {
        sprintf(buf14 + strlen(buf14), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a14 = TRUE; avatars = TRUE;
      }
      else if (mightRate >= 150)   
      {
        sprintf(buf15 + strlen(buf15), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a15 = TRUE; avatars = TRUE;
      }
      else
      {
        sprintf(buf16 + strlen(buf16), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
          title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
        a16 = TRUE; avatars = TRUE;
      }
    }
    else if (wch->level < 3)
    {
      sprintf(buf17 + strlen(buf17), " %-16s %-6s %-6s %-24s #7%-12s %-6s#n %s\n\r",
        title, pkratio, sexbuf, kav, wch->pcdata->switchname, faith, god);
      a17 = TRUE;
    }
  }

  /*   
   * Let's send the whole thing to the player.
   */

//    switch(number_range(1,4))
//      {
//    case 1:
     

//    sprintf(buf, "\n\r #R(*)*********************(**)= #rKinder von der Nacht#R =(**)*********************(*)#n\n\r");
//    send_to_char(buf, ch);
//
//    sprintf(buf, "\n\r #R(*)*********************(**)= #rXraks Message#R =(**)*********************(*)#n\n\r");
//    send_to_char(buf, ch);
    
//    if(!IS_NPC(ch)){
//    sprintf(buf, "%s\n\r",ch->pcdata->xrakwho); 
//      send_to_char(NULL,buf); 


//}


// if (wch->xrakwho != NULL && strlen(wch->xrakwho) > 1) 
//{
//	sprintf(buf, "%s\n\r",ch->xrakwho); 
//      send_to_char(buf, ch);
//
//}

// if (wch->xrakwho == NULL && strlen(wch->xrakwho) == 1) 
//{
//         stc( "#gHRM\n\r", ch);
//
//}

// else (wch->xrakwho == NULL)
//   return;


char *wordwrapchange(char *word)
{
  char newword[MAX_STRING_LENGTH];
  char newword2[MAX_STRING_LENGTH];
  int i = 0, x = 0, n = 0, v = 0;

  // i = original word position
  // x = newword position
  // n = spacer
  // v = letter count

  for ( i = 0; i < strlen(word); i++ )
  {
    if ( word[i] == ' ' && v > 500 )
    {
      v = 0;
      newword[x++] = '\n';
      for ( n = 0; n < 29; n++ ) { newword[x++] = ' '; }
    }
    newword[x++] = word[i];
    v++;
  }
  newword[x++] = '\0';
  strcpy(newword2,newword);
  return str_dup(newword2);
}



    sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n       #7Ch#ni#0ld#nr#7en #Co#cf #Ct#ch#Ce #7N#ni#0g#nh#7t        #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n#n\n\r"); 
    send_to_char(buf, ch);

    if (a1)
    {
    sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n                #YS#ytaff               #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n#n\n\r"); 



    send_to_char(buf, ch);
    send_to_char(buf1, ch);
  }         
  if (avatars)
  {
//    sprintf(buf, "\n\r #g*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>=<*><>     #gAvatars     #g<><*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>#n\n\r");
    sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n                #YA#yvatars             #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n\n\r"); 


    send_to_char(buf, ch);
    if (a2) send_to_char(buf2, ch);
    if (a3) send_to_char(buf3, ch);
    if (a4) send_to_char(buf4, ch);
    if (a5) send_to_char(buf5, ch);
    if (a6) send_to_char(buf6, ch);
    if (a7) send_to_char(buf7, ch);
    if (a8) send_to_char(buf8, ch);
    if (a9) send_to_char(buf9, ch);
    if (a10) send_to_char(buf10, ch);
    if (a11) send_to_char(buf11, ch);
    if (a12) send_to_char(buf12, ch);
    if (a13) send_to_char(buf13, ch);
    if (a14) send_to_char(buf14, ch);
    if (a15) send_to_char(buf15, ch);
    if (a16) send_to_char(buf16, ch);
  }
  if (a17)
  {
//    sprintf(buf, "\n\r #R<*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>=<*><>     #gMortals     #R<><*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>=<*>#n\n\r");
//    sprintf(buf, "#4    -   -  - - -#6- ---===#7            #gMortals             #6===--- -#4- - -  -   -#n\n\r"); 
    sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X                #YM#yortals             #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n\n\r");

    send_to_char(buf, ch);
    send_to_char(buf17, ch);
  }
    sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X                #YM#yud #YI#ynfo            #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n\n\r");
  send_to_char(buf, ch);
  send_to_char("\n\r",ch);
  sprintf(buf, "   #7%d#n/#7%d #YV#yisible #Yp#ylayers #Ya#ynd #7%d #Yv#yisible #Yi#ymmortals #Yc#yonnected #Yt#yo#n  #7Ch#ni#0ld#nr#7en #Co#cf #Ct#ch#Ce #7N#ni#0g#nh#7t#n\n\r",
    nPlayerVis, nPlayerAll, nImmVis);
  send_to_char(buf, ch);
  a = mudinfo[MUDINFO_UPDATED] / 120;
  b = a / 24;
  c = a - b * 24;
  sprintf(buf, "    #n[#YS#ytatistics #YR#yeset#n:#7 %d #Yd#yays #Ya#ynd #7%d #Yh#yours #Ya#ygo#n][#YA#yverage #YO#ynline#n:#7 %d#n][#YP#yeak #YO#ynline#n:#7 %d#n]#n\n\r",
  b, c, (mudinfo[MUDINFO_MCCP_USERS] + mudinfo[MUDINFO_OTHER_USERS]) / mudinfo[MUDINFO_UPDATED],
  mudinfo[MUDINFO_PEAK_USERS]);
  send_to_char(buf, ch);


// New stuff starts here -Xrak
  a = mudinfo[MUDINFO_MBYTE] * 1024 + mudinfo[MUDINFO_BYTE] / 1024;
  b = a / (mudinfo[MUDINFO_UPDATED] * 3);
  c = b / 10;
  c = c * 10;
  c = b - c;
  sprintf(buf, "    #n[#YP#ylayers #YS#yince #YM#yarch#7 29 2005#n:#7 %d#n][#YD#yatatransfer #n:#Y A#yverage #YR#yate#c: #n%d.%d #Yk#yb/#Ys#yec#n]\n\r",
  top_playerid, b / 10, c);
  send_to_char(buf, ch);
  b = mudinfo[MUDINFO_DATA_PEAK] / (3 * 1024);
  c = b / 10;
  c = c * 10;
  c = b - c;
  sprintf(buf, "    #n[#YD#yata #YT#yransfers#n]#R:#n [#YP#yeak #YR#yate#7: %d.%d #Yk#yb/#Ys#yec#n][#YT#yhis #YR#yeboot#n:#7 %dMB#n][#YT#yhis #YW#yeek#n:#7 %dMB#n]=- - -#n\n\r",
  b / 10, c, mudinfo[MUDINFO_MBYTE_S], mudinfo[MUDINFO_MBYTE] );

  send_to_char(buf, ch);
// The comment used to end here -xrak
  send_to_char("\n\r",ch);
   sprintf(buf, "#7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X       #7Ch#ni#0ld#nr#7en #Co#cf #Ct#ch#Ce #7N#ni#0g#nh#7t#n        #7X#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#R=#r=#7X#n\n\r");
  send_to_char(buf, ch);
  return;
}