Wierd bug here. When I moved to the first linux server my mud was on, I transferred over from Solaris and got everything working except the stat rolling crashed the mud. So I commented it out and ignored it for a few months. Then I moved from that server to another linux server and now am trying to get it to work again. My roll_real_abils is slightly different than the stock but it's a 4/5 rolls on 5-sided dice and it works no problem. Here's the stuff from my interpreter.c nanny section: case CON_QCLASS: load_result = parse_class(*arg); if (load_result == CLASS_UNDEFINED) { SEND_TO_Q("\r\nThat's not a class.\r\nClass: ", d); return; } else GET_CLASS(d->character) = load_result; SEND_TO_Q("\r\nPress enter to roll your stats.", d); log("QCLASS state almost ended.\r\n"); STATE(d) = CON_RROLL; break; case CON_RROLL: log("Before roll_real_abils"); roll_real_abils(d->character); log("After roll_real_abils"); sprintf(buf, "Str: %d", GET_STR(d->character)); log(buf); sprintf(buf, "Int: %d", GET_INT(d->character)); log(buf); sprintf(buf, "Wis: %d", GET_WIS(d->character)); log(buf); sprintf(buf, "Dex: %d", GET_DEX(d->character)); log(buf); sprintf(buf, "Con: %d", GET_CON(d->character)); log(buf); sprintf(buf, "Cha: %d", GET_CHA(d->character)); log(buf); sprintf(buf, "\r\n" " Strength: [%d]\r\n" " Intelligence: [%d]\r\n" " Wisdom: [%d]\r\n" " Dexterity: [%d]\r\n" " Constitution: [%d]\r\n" " Charisma: [%d]\r\n", GET_STR(d->character), GET_INT(d->character), GET_WIS(d->character), GET_DEX(d->character), GET_CON(d->character), GET_CHA(d->character)); SEND_TO_Q(buf, d); SEND_TO_Q("\r\n\r\nKeep these stats? (y/N)", d); STATE(d) = CON_QROLLSTATS; break; case CON_QROLLSTATS: log("Entering QROLLSTATS state.\r\n"); switch (*arg) { case 'y': case 'Y': break; case 'n': case 'N': default: log("Before roll_real_abils"); roll_real_abils(d->character); log("After roll_real_abils"); sprintf(buf, "\r\n" " Strength: [%d]\r\n" " Intelligence: [%d]\r\n" " Wisdom: [%d]\r\n" " Dexterity: [%d]\r\n" " Constitution: [%d]\r\n" " Charisma: [%d]\r\n", GET_STR(d->character), GET_INT(d->character), GET_WIS(d->character), GET_DEX(d->character), GET_CON(d->character), GET_CHA(d->character)); SEND_TO_Q(buf, d); SEND_TO_Q("\r\n\r\nKeep these stats? (y/N)", d); return; } if (GET_PFILEPOS(d->character) < 0) GET_PFILEPOS(d->character) = create_entry(GET_NAME(d->character)); init_char(d->character); save_char(d->character, r_mortal_start_room); SEND_TO_Q(motd, d); SEND_TO_Q("\r\n\n*** PRESS RETURN: ", d); STATE(d) = CON_RMOTD; sprintf(buf, "%s [%s] new player.", GET_NAME(d->character), d->host); mudlog(buf, NRM, LVL_IMMORT, TRUE); break; It gets past roll_real_abils, logs the stats to a file, and the next thing in the syslog is: Wed Dec 24 14:02:15 :: Cha: 13 Wed Dec 24 14:02:15 :: Warning: Missed more than 30 seconds worth of pulses and it eventually shuts down because of nonupdated ticks. Any clues? StormeRider --- http://www.windsofstorm.net/wos/ silk@ici.net --- telnet://cmoo.com:4004 +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST