REPLY TO: eagle@virtual.zipnet.net 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, and i threw in parse_class() for the hell of it to demonstrate how to limit classes to certain races, you throw in checks in parse_class() to limit classes by attributes also. I hope everyone enjoys these. 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; } int parse_class(struct char_data * ch, char arg) { arg = LOWER(arg); switch (arg) { case 'm': if (GET_RACE(ch) != RACE_DWARF) { return CLASS_MAGIC_USER; } else { return CLASS_UNDEFINED; } break; case 'c': if (GET_RACE(ch) != RACE_DWARF) { return CLASS_MAGIC_USER; } else { return CLASS_UNDEFINED; } return CLASS_CLERIC; break; case 'w': return CLASS_WARRIOR; break; case 't': return CLASS_THIEF; break; default: return CLASS_UNDEFINED; break; } }
This archive was generated by hypermail 2b30 : 12/07/00 PST