From: Robert Sinland Subject: HP/Mana/Move Regen Items Plus HP and Mana regen items. By Robert Sinland With thanks to Chris Proctor for his advice, and Eduo for testing Update with New Flag From: Matt Roach ** structs.h Search for struct char_special_data int timer; /* Timer for update */ + sbyte hitgain; + sbyte managain; + sbyte movegain; ** handler.c Search for void affect_modify case APPLY_HIT: GET_MAX_HIT(ch) += mod; break; + case APPLY_MANA_REGEN: + ch->char_specials.managain += mod; + break; + case APPLY_HIT_REGEN: + ch->char_specials.hitgain += mod; + break; + case APPLY_MOVE_REGEN: + ch->char_specials.movegain += mod; + break; ** limits.c search for int hit_gain } else { gain = graf(age(ch).year, 8, 12, 20, 32, 16, 10, 4); + gain = gain + ch->char_specials.hitgain; search for int mana_gain } else { gain = graf(age(ch).year, 4, 8, 12, 16, 12, 10, 8); + gain = gain + ch->char_specials.managain; search for int move_gain } else { gain = graf(age(ch).year, 16, 20, 24, 20, 16, 12, 10); + gain = gain + cha->char_specials.movegain; ** db.c note: I dont know if this _has_ to be here, but it doesn't seem to hurt anything. under void reset_char(struct char_data * ch) ch->char_specials.carry_weight = 0; ch->char_specials.carry_items = 0; + ch->char_specials.hitgain = 0; + ch->char_specials.managain = 0; + ch->char_specials.movegain = 0; Now to be able to create those objects... ** Structs.h #define APPLY_SAVING_SPELL 24 /* Apply to save throw: spells */ #define APPLY_RACE 25 /* Reserved */ + #define APPLY_HIT_REGEN 26 + #define APPLY_MANA_REGEN 27 + #define APPLY_MOVE_REGEN 28 Change your numbers to match your setup. ** constants.c In const char *apply_types "SAVING_SPELL", "RACE", + "HIT_REGEN", + "MANA_REGEN", + "MOVE_REGEN", "\n"