From: fantasia Subject: roll_real_abils() Because so many ppl asked for this here it is my roll_real_abils(). you will note that i made very little modifications to it. void roll_real_abils(struct char_data * ch) { int i, j, k, temp; ubyte table[6]; ubyte rolls[4]; for (i = 0; i < 6; i++) table[i] = 0; for (i = 0; i < 6; i++) { for (j = 0; j < 4; j++) rolls[j] = number(1, 6); temp = rolls[0] + rolls[1] + rolls[2] + rolls[3] - MIN(rolls[0], MIN(rolls[1], MIN(rolls[2], rolls[3]))); for (k = 0; k < 6; k++) if (table[k] < temp) { temp ^= table[k]; table[k] ^= temp; temp ^= table[k]; } } ch->real_abils.str_add = 0; ch->real_abils.str = table[0]; ch->real_abils.intel = table[1]; ch->real_abils.dex = table[2]; ch->real_abils.con = table[3]; ch->real_abils.wis = table[4]; ch->real_abils.cha = table[5]; ch->aff_abils = ch->real_abils; }