> From: Dann Fuller <dannimal@umich.edu>
>
> As near as I can tell, when you cast STR, nowhere does it check to make
> sure you don't go over the limit of 18/100. This is bad, because if
> you're at 18/100 when you cast it, bad thigns happen to your stats.
>
> After looking at the code, I can think of a couple of places to put the
> check in, but before I do, I was wondering if others had noticed this,
> and how they went about fixing it if they have. TIA
>
> Dann
>
> _____________________________________________________________________________
> Dann Fuller dannimal@umich.edu
> ITD Contract Services System Administrator www.umich.edu/~dannimal
> Kinesiology Administration 764-4015
> School of Public Policy 764-8004
> "He fell out of the Stupid tree and hit every branch on the way down."
>
>
There is already a check for this. If you check the function calls from
mag_affects <magic.c> you will see that it calls affect_join <handler.c>.
If you continue tracing function calls from affect_join you will end up
in affect_total <handler.c>. In the second half of this function the check
is made:
/* Make certain values are between 0..25, not < 0 and not > 25! */
i = (IS_NPC(ch) ? 25 : 18);
GET_DEX(ch) = MAX(0, MIN(GET_DEX(ch), i));
GET_INT(ch) = MAX(0, MIN(GET_INT(ch), i));
GET_WIS(ch) = MAX(0, MIN(GET_WIS(ch), i));
GET_CON(ch) = MAX(0, MIN(GET_CON(ch), i));
GET_STR(ch) = MAX(0, GET_STR(ch));
if (IS_NPC(ch)) {
GET_STR(ch) = MIN(GET_STR(ch), i);
} else {
|-> if (GET_STR(ch) > 18) {
|-> i = GET_ADD(ch) + ((GET_STR(ch) - 18) * 10);
|-> GET_ADD(ch) = MIN(i, 100);
|-> GET_STR(ch) = 18;
| }
| }
|
|
This part sets the str_add to a maximum of 100.
-Johan
This archive was generated by hypermail 2b30 : 12/18/00 PST