I am using circle30bp17RS-win98 and when I use the score command, it crashes
the game. The code below is from act.informative.c.
Thanks for any help!
ACMD(do_score)
{
struct time_info_data playing_time;
if (IS_NPC(ch))
return;
sprintf(buf + strlen(buf), "You are a %d year old %d.", GET_AGE(ch),
GET_RACE(ch));
if (age(ch)->month == 0 && age(ch)->day == 0)
strcat(buf, " It's your birthday today.\r\n");
else
strcat(buf, "\r\n");
sprintf(buf + strlen(buf),
"You have %d(%d) hit, %d(%d) mana and %d(%d) movement points.\r\n",
GET_HIT(ch), GET_MAX_HIT(ch), GET_MANA(ch), GET_MAX_MANA(ch),
GET_MOVE(ch), GET_MAX_MOVE(ch));
sprintf(buf + strlen(buf), "Your armor class is %d/10, and your alignment
is %d.\r\n",
compute_armor_class(ch), GET_ALIGNMENT(ch));
sprintf(buf + strlen(buf), "You have scored %d exp, and have %d gold
coins.\r\n",
GET_EXP(ch), GET_GOLD(ch));
if (GET_LEVEL(ch) < LVL_IMMORT)
sprintf(buf + strlen(buf), "You need %d exp to reach your next
level.\r\n",
level_exp(GET_CLASS(ch), GET_LEVEL(ch) + 1) - GET_EXP(ch));
playing_time = *real_time_passed((time(0) - ch->player.time.logon) +
ch->player.time.played, 0);
sprintf(buf + strlen(buf), "You have been playing for %d day%s and %d
hour%s.\r\n",
playing_time.day, playing_time.day == 1 ? "" : "s",
playing_time.hours, playing_time.hours == 1 ? "" : "s");
sprintf(buf + strlen(buf), "This ranks you as %s %s (level %d).\r\n",
GET_NAME(ch), GET_TITLE(ch), GET_LEVEL(ch));
switch (GET_POS(ch)) {
case POS_DEAD:
strcat(buf, "You are DEAD!\r\n");
break;
case POS_MORTALLYW:
strcat(buf, "You are mortally wounded! You should seek help!\r\n");
break;
case POS_INCAP:
strcat(buf, "You are incapacitated, slowly fading away...\r\n");
break;
case POS_STUNNED:
strcat(buf, "You are stunned! You can't move!\r\n");
break;
case POS_SLEEPING:
strcat(buf, "You are sleeping.\r\n");
break;
case POS_RESTING:
strcat(buf, "You are resting.\r\n");
break;
case POS_SITTING:
strcat(buf, "You are sitting.\r\n");
break;
case POS_FIGHTING:
if (FIGHTING(ch))
sprintf(buf + strlen(buf), "You are fighting %s.\r\n",
PERS(FIGHTING(ch), ch));
else
strcat(buf, "You are fighting thin air.\r\n");
break;
case POS_STANDING:
strcat(buf, "You are standing.\r\n");
break;
default:
strcat(buf, "You are floating.\r\n");
break;
}
if (GET_COND(ch, DRUNK) > 10)
strcat(buf, "You are intoxicated.\r\n");
if (GET_COND(ch, FULL) == 0)
strcat(buf, "You are hungry.\r\n");
if (GET_COND(ch, THIRST) == 0)
strcat(buf, "You are thirsty.\r\n");
if (AFF_FLAGGED(ch, AFF_BLIND))
strcat(buf, "You have been blinded!\r\n");
if (AFF_FLAGGED(ch, AFF_INVISIBLE))
strcat(buf, "You are invisible.\r\n");
if (AFF_FLAGGED(ch, AFF_DETECT_INVIS))
strcat(buf, "You are sensitive to the presence of invisible
things.\r\n");
if (AFF_FLAGGED(ch, AFF_SANCTUARY))
strcat(buf, "You are protected by Sanctuary.\r\n");
if (AFF_FLAGGED(ch, AFF_POISON))
strcat(buf, "You are poisoned!\r\n");
if (AFF_FLAGGED(ch, AFF_CHARM))
strcat(buf, "You have been charmed!\r\n");
if (affected_by_spell(ch, SPELL_ARMOR))
strcat(buf, "You feel protected.\r\n");
if (AFF_FLAGGED(ch, AFF_INFRAVISION))
strcat(buf, "Your eyes are glowing red.\r\n");
if (PRF_FLAGGED(ch, PRF_SUMMONABLE))
strcat(buf, "You are summonable by other players.\r\n");
send_to_char(buf, ch);
}
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
Share information about yourself, create your own public profile at
http://profiles.msn.com.
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT