----- Original Message ----- >From: Victor Wennberg <Victor.Wennberg@Swipnet.se> >To: <CIRCLE@post.queensu.ca> >Sent: Friday, June 02, 2000 11:05 AM >Subject: [CIRCLE] Stats > >How do i change the max stats from like 25 to 200? Any tips / ideas / pointers please. >Victor Wennberg For future reference, please do not send your messages in html format; use plain text. And now to your question... There are many things to consider when increasing the maximum value of stats. Much of the CircleMUD code emulates the Dungeons and Dragons game system -- and that includes the use of THAC0 values, saving throws, and the very stats (attributes) the maximum values of which you want to increase. The biggest hurdle you'll have to overcome is the use of arrays and structures everywhere that are accessed by functions that reference a character's stats in determining success. Most of these structures are in constants.c under the comment "str, int, wis, dex, con applies." Since nearly all of these arrays abruptly stop at element 25, you'll find yourself crashing all over the place if you increase the attribute values beyond that number. Adding more problems is the lack of a generalized error-trapping function that will prevent calls to a stat-based array in excess of the MAX_STAT_VALUE (if you were to #define such a thing). If you do decide to increase these values, you'll have to make some major changes in the values these array elements return, since they'd suddenly be grossly out of proportion. You'd have to decide if you want to arbitrarily decide upon the values of the 200 elements for *every single* stat-based structure or switch over to a simplified way of determining stat-based bonuses and penalties. You might want to go with something along the lines of: if (GET_STR(ch) >= 13) damage_bonus += (GET_STR(ch) - 12); else if (GET_STR(ch) <= 8) damage_bonus += MAX(-8, (GET_STR(ch) - 9)); Of course, this is still based upon the premise that stat values of 9-12 are considered "average" in the D&D world (and are, in fact, the most commonly rolled bell curve numbers (with equal chance for each) when stats are determined via 3d6. The above example would provide a +1 bonus to damage for every value beyond 12 and apply a penalty of -1 for every value below 9, to a minimum of -8. Of course, you'd soon get gigantic damage bonuses when you entered the triple digits in Strength, which would require a rescaling of the entire hit point system. Alternatively, you could add to the calculation to only give a +1 bonus for every 3 numbers above 12, or you could set the average stat value from 9-12 to 100 and do bonuses and penalties based on that. The bottom line is that this is a significant overhaul of "how things work" and will change many aspects of the game mechanics. Before jumping in with a tweak here and there, decide exactly what kind of game system you want. Think to yourself "do I *really* need stats in the 200 range -- and if so, why? Is it because big numbers look "cool?" Is it because you want to stretch out the scale from weakling to Titan over a broader range? Whatever you decide, make sure you know what you're doing, or else you'll have a nightmare of a time fixing the bugs that will creep up all over the place. --Rob. ---------------- ICQ: 14598527 +------------------------------------------------------------+ | 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