if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
char buf[MAX_STRING_LENGTH];
char buf2[MAX_STRING_LENGTH];
char mort[MAX_STRING_LENGTH];
char avat[MAX_STRING_LENGTH];
char god[MAX_STRING_LENGTH];
char a1[MAX_STRING_LENGTH];
char a2[MAX_STRING_LENGTH];
char a3[MAX_STRING_LENGTH];
char a4[MAX_STRING_LENGTH];
char a5[MAX_STRING_LENGTH];
char a6[MAX_STRING_LENGTH];
char a7[MAX_STRING_LENGTH];
char a0[MAX_STRING_LENGTH];
char immo[MAX_STRING_LENGTH];
char kav[MAX_STRING_LENGTH];
char bty[MAX_STRING_LENGTH];
char wizi[MAX_STRING_LENGTH];
typedef char charmax[MAX_STRING_LENGTH];
charmax buf, buf2, mort, avat, god, a[8], immo, kav, bty, wizi, (etc ad nauseam);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (wch->race <0>race <10>race <20>race <30>race <40>race <50>race <60>class > 0)
{
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
else if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
else
sprintf(kav,"%sNone%s",openb,closeb);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (wch->race <0>race <10>race <20>race <30>race <40>race <50>race <60>class > 0)
if (wch->race <0>race <10>race <20>race <30>race <40>race <50>race <60>class > 0)
void do_newwho(CHAR_DATA *ch,char *argument)
{
char buf[MAX_STRING_LENGTH];
char buf2[MAX_STRING_LENGTH];
char mort[MAX_STRING_LENGTH];
char avat[MAX_STRING_LENGTH];
char god[MAX_STRING_LENGTH];
char a1[MAX_STRING_LENGTH];
char a2[MAX_STRING_LENGTH];
char a3[MAX_STRING_LENGTH];
char a4[MAX_STRING_LENGTH];
char a5[MAX_STRING_LENGTH];
char a6[MAX_STRING_LENGTH];
char a7[MAX_STRING_LENGTH];
char a0[MAX_STRING_LENGTH];
char immo[MAX_STRING_LENGTH];
char kav[MAX_STRING_LENGTH];
char bty[MAX_STRING_LENGTH];
char wizi[MAX_STRING_LENGTH];
char openb[5];
char namething[MAX_STRING_LENGTH];
char closeb[5];
DESCRIPTOR_DATA *d;
int iLevelLower;
int iLevelUpper;
int nNumber;
int immMatch, nMatch;
int mor, ava, imm;
bool fClassRestrict;
bool fImmortalOnly;
if (IS_NPC(ch)) return;
/*
* Set default arguments.
*/
iLevelLower = 0;
iLevelUpper = MAX_LEVEL +1;
fClassRestrict = FALSE;
fImmortalOnly = FALSE;
/*
* Parse arguments.
*/
nNumber = 0;
for ( ;; )
{
char arg[MAX_STRING_LENGTH];
argument = one_argument( argument, arg );
if ( arg[0] == '\0' ) break;
if ( is_number( arg ) )
{
stc("Enter 'Avatar' for level 3's, or 'God' for level 4's and 5's.\n\r",ch);
return;
}
else
{
/*
* Look for classes to turn on.
*/
arg[3] = '\0';
if (!str_cmp(arg,"imm") || !str_cmp(arg,"immortal")
|| !str_cmp(arg,"ava") || !str_cmp(arg,"avatar"))
{
fClassRestrict = TRUE;
}
else if (!str_cmp(arg,"god") || !str_cmp(arg,"imp"))
{
fImmortalOnly = TRUE;
}
else
{
stc("Enter 'Avatar' for level 3's, or 'God' for level 4's and 5's.\n\r",ch);
return;
}
}
}
/*
* Now show matching chars.
*/
immMatch = 0;
nMatch = 0;
buf[0] = '\0';
mort[0] = '\0';
avat[0] = '\0';
immo[0] = '\0';
a1[0] = '\0';
a2[0] = '\0';
a3[0] = '\0';
a4[0] = '\0';
a5[0] = '\0';
a6[0] = '\0';
a7[0] = '\0';
a0[0] = '\0';
mor = ava = imm = 0;
for ( d = descriptor_list; d != NULL; d = d->next )
{
CHAR_DATA *wch;
char const *class;
char const *lstatus;
/*
* Check for match against restrictions.
* Don't use trust as that exposes trusted mortals.
*/
if (d->connected != CON_PLAYING || (!can_see(ch,d->character) && (!IS_SET(ch->act,PLR_WATCHER))))
continue;
wch = (d->original != NULL) ? d->original : d->character;
if (wch->level < iLevelLower || wch->level > iLevelUpper
|| (fImmortalOnly && wch->level < LEVEL_IMMORTAL)
|| (fClassRestrict && wch->level != LEVEL_HERO))
continue;
if IS_IMMORTAL(wch)
immMatch++;
else
nMatch++;
/*
* Figure out what to print for class.
*/
class = " ";
lstatus = " ";
if (IS_SET(wch->extra,EXTRA_AFK)) class = "#r->AFK<-#n ";
switch( wch->lstatus )
{
default: lstatus = "{DUnknown {x"; break;
case L_CIT: lstatus = "{mCitizen {x"; break;
case L_LEG: lstatus = "{bLegend {x"; break;
case L_MYT: lstatus = "{YMyth {x"; break;
case L_TIT: lstatus = "{BTitan {x"; break;
case L_ORA: lstatus = "{COracle {x"; break;
case L_IMM: lstatus = "{rImmortal{x"; break;
case L_DEM: lstatus = "{CDemigod {x"; break;
case L_DEI: lstatus = "{RDeity {x"; break;
case L_ALM: lstatus = "{WAlmighty{x"; break;
}
if ((IS_HEAD(wch,LOST_HEAD) || IS_EXTRA(wch,EXTRA_OSWITCH)) && wch->pcdata->chobj != NULL)
{
if (wch->pcdata->chobj->pIndexData->vnum == 12)
lstatus = " A Head ";
else if (wch->pcdata->chobj->pIndexData->vnum == 30005)
lstatus = "A Brain ";
else
lstatus = "-Object-";
}
switch ( wch->level )
{
default: break;
case MAX_LEVEL - 0:
if (!str_cmp(wch->name,"Igabod"))
class= "#c Owner #n";
else if (!str_cmp(wch->name,"NONAME"))
class= "WHONAMEHERE";
else class = "#rImplementor#n"; break;
case MAX_LEVEL - 1:
class = "#y HighJudge #n"; break;
case MAX_LEVEL - 2:
class = "#g Judge #n"; break;
case MAX_LEVEL - 3:
class = "#c Enforcer #n"; break;
case MAX_LEVEL - 4:
class = "#pQuest Maker#n"; break;
case MAX_LEVEL - 5:
class = "#b Builder #n"; break;
case MAX_LEVEL - 6:
case MAX_LEVEL - 7:
case MAX_LEVEL - 8:
case MAX_LEVEL - 9:
if (wch->race <= 0 )
class = "#r Avatar #n";
else if (wch->race <= 10)
class = "#b Immortal #n";
else if (wch->race <= 20)
class = "#g Godling #n";
else if (wch->race <= 30)
class = "#y Demigod #n";
else if (wch->race <= 40)
class = "#cLesser God #n";
else if (wch->race <= 50)
class = "#pGreater God#n";
else if (wch->race <= 60)
class = "#wSupreme God#n";
else
class = "#wSupreme God#n"; break;
case MAX_LEVEL - 10:
class = "#y Mortal #n"; break;
case MAX_LEVEL - 11:
class = "#y Mortal #n"; break;
case MAX_LEVEL - 12:
class = "#y Newbie #n"; break;
}
/*
* Format it up.
*/
if (IS_CLASS(wch,CLASS_VAMPIRE))
{
strcpy(openb,"{r<<-");
strcpy(closeb,"->>{x");
}
else if (IS_CLASS(wch,CLASS_WEREWOLF))
{
strcpy(openb,"{y-+(");
strcpy(closeb,")+-{x");
}
else if (IS_CLASS(wch,CLASS_HIGHLANDER))
{
strcpy(openb,"{C-=");
strcpy(closeb,"=-{x");
}
else if (IS_CLASS(wch,CLASS_NINJA))
{
strcpy(openb," {m*+*");
strcpy(closeb, "*+*{x");
}
else if (IS_CLASS(wch,CLASS_MOOGLE))
{
strcpy(openb," {Y-=+{W");
strcpy(closeb,"{Y+=-{x ");
}
else if (IS_CLASS(wch,CLASS_MONK))
{
strcpy(openb,"{c(O0o.{C");
strcpy(closeb,"{c.o0O){x ");
}
else if (IS_CLASS(wch,CLASS_DROW))
{
strcpy(openb,"{b.o0 ");
strcpy(closeb," 0o.{x" );
}
else if (IS_CLASS(wch,CLASS_NONE))
{
strcpy(openb,"{D….");
strcpy(closeb,"….{x");}
else if (IS_CLASS(wch,CLASS_DEMON))
{
strcpy(openb," {R[-]");
strcpy(closeb,"[-]{x");
}
if (ch->class > 0)
{
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if (wch->pcdata->bounty > 0)
sprintf(bty,"%d",wch->pcdata->bounty);
else
strcpy( bty, " ");
if (wch->pcdata->wizinvis> 6)
sprintf(wizi," (%d)",wch->pcdata->wizinvis);
else
strcpy(wizi,"");
sprintf(namething,"#y%s#e%s",wch->name,wch->pcdata->title);
if (wch->level > 6)
{
sprintf(immo + strlen(immo),"{m[{x%s{m]{D%s {m[{x%s{m]{Y %s#e%-21s#n%-20s %s\n\r",
class,wizi,lstatus,wch->name,wch->pcdata->title,kav,king_table[wch->pcdata->kingdom].who_name);
imm++;
}
else if (wch->level > 2 && wch->level < 7)
{
sprintf(a0 + strlen(a0),"{m[{x%s{m]{x {m[{x%s{m]{x %-31s%-20s %s\n\r",
class,lstatus,namething,kav,king_table[wch->pcdata->kingdom].who_name);
ava++;
}
else
{
sprintf(mort + strlen(mort),"{m[%s{m]{x %-31s %s\n\r",
class,namething,king_table[wch->pcdata->kingdom].who_name);
mor++;
}
}
stc("\n\r",ch);
stc("{m+=–=+=–=+=–=+=–=+=–=+=–=+ {CName Pending Mud {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r",ch);
stc(" #n\n\r",ch);
if (ava > 0)
{
if (ava > 1)
sprintf(buf,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {CAvatars {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
else
sprintf(buf,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {CAvatars {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
stc(buf,ch);
stc(a0,ch);
}
if (mor > 0)
{
if (mor > 1)
sprintf(buf,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {GMortals {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
else
sprintf(buf,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {GMortals {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
stc(buf,ch);
stc(mort,ch);
}
if (imm > 0)
{
if (imm > 1)
sprintf(god,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {YImmortals {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
else
sprintf(god,"{m+=–=+=–=+=–=+=–=+=–=+=–=+ {YImmortals {m+=–=+=–=+=–=+=–=+=–=+=–=+{x\n\r");
stc(god,ch);
stc(immo,ch);
}
if (immMatch == 1)
sprintf(god,"#wThere is 1 visible immortal connected.#n");
else if (immMatch > 1)
sprintf(god,"#wThere are a total of %d visible immortals connected.#n",immMatch);
if (nMatch == 1)
sprintf(buf2,"#wThere is 1 visible player connected.#n");
else
sprintf(buf2,"#wThere are a total of %d visible players connected.#n",nMatch);
stc("{m+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–={x\n\r",ch);
if (nMatch > 0)
cent_to_char(buf2,ch);
if (imm > 0)
cent_to_char(god,ch);
stc("{m+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–=+=–={x\n\r",ch);
return;
}
char openb[16];
char closeb[16];
if (IS_CLASS(wch,CLASS_VAMPIRE))
{
strcpy(openb,"{r<<-");
strcpy(closeb,"->>{x");
}
else if (IS_CLASS(wch,CLASS_WEREWOLF))
{
strcpy(openb,"{y-+(");
strcpy(closeb,")+-{x");
}
else if (IS_CLASS(wch,CLASS_HIGHLANDER))
{
strcpy(openb,"{C-=");
strcpy(closeb,"=-{x");
}
else if (IS_CLASS(wch,CLASS_NINJA))
{
strcpy(openb," {m*+*");
strcpy(closeb, "*+*{x");
}
else if (IS_CLASS(wch,CLASS_MOOGLE))
{
strcpy(openb," {Y-=+{W");
strcpy(closeb,"{Y+=-{x ");
}
else if (IS_CLASS(wch,CLASS_MONK))
{
strcpy(openb,"{c(O0o.{C");
strcpy(closeb,"{c.o0O){x ");
}
else if (IS_CLASS(wch,CLASS_DROW))
{
strcpy(openb,"{b.o0 ");
strcpy(closeb," 0o.{x" );
}
else if (IS_CLASS(wch,CLASS_NONE))
{
strcpy(openb,"{D….");
strcpy(closeb,"….{x");}
else if (IS_CLASS(wch,CLASS_DEMON))
{
strcpy(openb," {R[-]");
strcpy(closeb,"[-]{x");
}
if (wch->class > 0)
{
if (IS_CLASS(wch,CLASS_VAMPIRE))
sprintf(kav,"%sVampire%s",openb,closeb);
if (IS_CLASS(wch,CLASS_WEREWOLF))
sprintf(kav,"%sWerewolf%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DEMON))
sprintf(kav,"%sDemon%s",openb,closeb);
if (IS_CLASS(wch,CLASS_NINJA))
sprintf(kav,"%sNinja%s",openb,closeb);
if (IS_CLASS(wch,CLASS_DROW))
sprintf(kav,"%sDrow%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MONK))
sprintf(kav,"%sMonk%s",openb,closeb);
if (IS_CLASS(wch,CLASS_HIGHLANDER))
sprintf(kav,"%sHighlander%s",openb,closeb);
if (IS_CLASS(wch,CLASS_MOOGLE))
sprintf(kav,"%sMoogle%s",openb,closeb);
}
else if (IS_CLASS(wch,CLASS_NONE))
sprintf(kav,"%sNone%s",openb,closeb);
if(IS_CLASS(wch, CLASS_VAMPIRE))
strcpy(kav, "{r<<-Vampire->>{x");
else if(IS_CLASS(wch, CLASS_WEREWOLF))
strcpy(kav, "{y-+(Werewolf)+-{x");
else if(IS_CLASS(wch, CLASS_DEMON))
strcpy(kav, " {R[-]Demon[-]{x");
else if(IS_CLASS(wch, CLASS_NINJA))
strcpy(kav, " {m*+*Ninja*+*{x");
else if(IS_CLASS(wch, CLASS_DROW))
strcpy(kav, "{b.o0 Drow 0o.{x");
else if(IS_CLASS(wch, CLASS_MONK))
strcpy(kav, "{c(O0o.{CMonk{c.o0O){x ");
else if(IS_CLASS(wch, CLASS_HIGHLANDER))
strcpy(kav, "{C-=Highlander=-{x");
else if(IS_CLASS(wch, CLASS_MOOGLE))
strcpy(kav, " {Y-=+{WMoogle{Y+=-{x ");
else
strcpy(kav, "{D….None….{x");
else if (IS_CLASS(wch,CLASS_MOOGLE))
{
strcpy(openb," {Y-=+{W");
strcpy(closeb,"{Y+=-{x ");
}
I'll start by describing my problem then I'll show you what I've got for a do_who function.
do_who shows every classed avatar and all the mortals and immortals correctly but whenever I log on with an avatar with no class It displays the class incorrectly. My imm char is classed as a werewolf so when my Imm is the only one on, my classless avatar "Nonetest" is displayed as a werewolf. Whenever I log on with my highlander too, Nonetest is displayed as a highlander. The weird thing though, is that if I shut down the mud then restart it and Nonetest is the first to log on, he is displayed semi-correctly, in that it doesn't show any class name at all. But if I log on as any classed char, log off then log on with nonetest as the only active player, he is displayed as whatever class the last person on was. This is a very weird problem to me and I could use some help figuring it out. Here's my do_who function:
I know, it's kinda long but it's a LOT shorter than the original do_who was. It's pretty sloppy right now but I haven't gotten around to cleaning it up yet, that will have to wait till I get this working correctly.