At 05:42 PM 1/21/98 -0600, you wrote: >Just curious, those out there with 100+ levels, what did you do to your >Thac0 tables. Did you simply reflect 20 accross your max levels or >do some tweaking? I have only a single thac0 table, which looks nothing like the original (stock) table. My thac0 is an integer array; there is a single element in the table for each class - here's what it looks like: const int thaco[NUM_CLASSES] = { LVL_IMMORT * 1.3, /* mage */ LVL_IMMORT * 1, /* cleric */ LVL_IMMORT * .95, /* thief * LVL_IMMORT * .85 /* warrior */ }; What it defines is the level at which thac0 for the class is 1. (It is assumed that level 1 for every class has a thac0 of 20.) With this, in (i think it was fight.c), where the initial value of calc_thaco was originally pulled from a table, I assign it as follows: calc_thaco - MAX(1, ((-19 / thaco[(int) GET_CLASS(ch)]) * GET_LEVEL(ch)) + 20); This (unless I've messed up the math) spreads thac0 out from 20 to 1 linearly, with a slope based on the table above, and clips the bottom end at 1. +------------------------------------------------------------+ | 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/15/00 PST