Anyone knows how to change gain_exp function so the players won't be able to advance more than one level per kill ? Also, when they gain a level their exp should be set on 0. Here is the function: ---------------------------------- void gain_exp(struct char_data * ch, int gain) { int is_altered = FALSE; int num_levels = 0; char buf[128]; if (!IS_NPC(ch) && ((GET_LEVEL(ch) < 1 || GET_LEVEL(ch) >= LVL_IMMORT))) return; if (IS_NPC(ch)) { GET_EXP(ch) += gain; return; } if (gain > 0) { gain = MIN(max_exp_gain, gain); /* put a cap on the max gain per kill */ GET_EXP(ch) += gain; while (GET_LEVEL(ch) < LVL_IMMORT && GET_EXP(ch) >= titles[(int) GET_CLASS(ch)][GET_LEVEL(ch) + 1].exp) { GET_LEVEL(ch) += 1; num_levels++; advance_level(ch); is_altered = TRUE; } if (is_altered) { if (num_levels == 1) send_to_char("You rise a level!\r\n", ch); else { sprintf(buf, "You rise %d levels!\r\n", num_levels); send_to_char(buf, ch); } set_title(ch, NULL); check_autowiz(ch); } } else if (gain < 0) { gain = MAX(-max_exp_loss, gain); /* Cap max exp lost per death */ GET_EXP(ch) += gain; if (GET_EXP(ch) < 0) GET_EXP(ch) = 0; } } -------------------------------------- Thanks, Iggy
This archive was generated by hypermail 2b30 : 12/18/00 PST