Here is my show_status:
void show_status( CHAR_DATA *ch )
{
if (WANT_TELNET_INFO (ch))
{
CHAR_DATA * victim = NULL;
if (ch->fighting)
victim = ch->fighting;
char buf[MAX_STRING_LENGTH];
snprintf(buf, sizeof (buf),
"\xFF\xFA\x66" // IAC SB 102
"tt=\"status\";" // transaction type: status
"hp=%d;maxhp=%d;" // hp points
"move=%d;maxmove=%d;" // movement
"xp=%d;maxxp=%d;" // experience
"level=%d;" // level
"plat=%d;" // plat on char
"gold=%d;" // gold on char
"silver=%d;" // silver on char
"copper=%d;" // copper on char
"bpp=%d;" // Bank Plat
"bgp=%d;" // Bank Gold
"bsp=%d;" // Bank Silver
"bcp=%d;" // Bank Copper
"combat=%s;", // Combat?
/*
"hitroll=%d;" // Hitroll
"dualhitroll=%d;" // Dual Wielding Hitroll
"damroll=%d;" // Damroll
"dualdamroll=%d;" // Dual Wielding Damroll
"strength=%d;" // Strength
"wisdom=%d;" // Wisdom
"constitution=%d;" // Constitution
"intelligence=%d;" // Intelligence
"dexterity=%d;" // Dexterity
"armor=%d;" // Armor
"alignment=%d", // Alignment
*/
ch->hit,
ch->max_hit,
ch->move,
ch->max_move,
ch->exp,
xp_for_level(ch,ch->level+1),
ch->level,
ch->coins[COIN_PP],
ch->coins[COIN_GP],
ch->coins[COIN_SP],
ch->coins[COIN_CP],
ch->pcdata->bank_coins[COIN_PP],
ch->pcdata->bank_coins[COIN_GP],
ch->pcdata->bank_coins[COIN_SP],
ch->pcdata->bank_coins[COIN_CP],
(ch->fighting && ch->fighting->fighting) ? "true" : "false"
/*
get_hitroll(ch, WEAR_WIELD),
get_hitroll(ch, WEAR_WIELD_2),
get_damroll(ch, WEAR_WIELD_2),
get_damroll(ch, WEAR_WIELD_2),
get_curr_str(ch),
get_curr_wis(ch),
get_curr_con(ch),
get_curr_int(ch),
get_curr_dex(ch),
GET_AC(ch),
ch->alignment
*/
);
if (victim)
{
const char * p = "You";
char * pName;
if (ch != victim)
{
if (IS_NPC( victim ) )
p = color_strip(victim->short_descr);
else
p = color_strip(victim->name);
}
pName = fixup_lua_strings (p);
snprintf(&buf [strlen (buf)], sizeof (buf) - strlen (buf),
"victim={name=%s;" // name
"hp=%d;maxhp=%d;" // hp points
"level=%d;" // level
"};",
pName,
victim->hit,
victim->max_hit,
victim->level
);
free (pName);
}
//finish telnet negotiation after the combat info
strncpy(&buf [strlen (buf)], "\xFF\xF0", sizeof (buf) - strlen (buf)); // IAC SE
send_to_char( buf, ch );
}
}
The blocked out parts are what I added when it started messing up plugins. |