Hmm.. I think there's no such thing as BL_CHAR...
So you need to put the code under BL_PC..
case BL_PC:
{
struct map_session_data *ssd = (struct map_session_data *)bl;
struct party_data *p = NULL;
struct guild *g = NULL;
char charhp[50], *str_p = charhp;
str_p += sprintf(str_p, "[%u/%u] %s\n", ssd->status.base_level,ssd->status.job_level,ssd->status.name);
//Requesting your own "shadow" name. [skotlex]
if (ssd->fd == fd && ssd->disguise)
WBUFL(buf,2) = -bl->id;
if( ssd->fakename[0] )
{
WBUFW(buf, 0) = cmd = 0x195;
memcpy(WBUFP(buf,6), ssd->fakename, NAME_LENGTH);
WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0;
break;
}
if( str_p != charhp )
{
if( battle_config.show_char_info&1 ){
memcpy(WBUFP(buf,6), charhp,NAME_LENGTH);
}
else {
memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);
}
}
if( ssd->status.party_id )
{
p = party_search(ssd->status.party_id);
}
if( ssd->status.guild_id )
{
if( ( g = guild_search(ssd->status.guild_id) ) != NULL )
{
ARR_FIND(0, g->max_member, i, g->member[i].account_id == ssd->status.account_id && g->member[i].char_id == ssd->status.char_id);
if( i < g->max_member ) ps = g->member[i].position;
}
}
if( !battle_config.display_party_name && g == NULL )
{// do not display party unless the player is also in a guild
p = NULL;
}
if (p == NULL && g == NULL)
break;
WBUFW(buf, 0) = cmd = 0x195;
if (p)
memcpy(WBUFP(buf,30), p->party.name, NAME_LENGTH);
else
WBUFB(buf,30) = 0;
if (g && ps >= 0 && ps < MAX_GUILDPOSITION)
{
memcpy(WBUFP(buf,54), g->name,NAME_LENGTH);
memcpy(WBUFP(buf,78), g->position[ps].name, NAME_LENGTH);
} else { //Assume no guild.
WBUFB(buf,54) = 0;
WBUFB(buf,78) = 0;
}
}
break;
try changing your BL_PC with the above code..
The problem I have encountered with this are for names that are very long... You need @refresh and then the level will show then the name will be cut,