Hello, I seem to be creating more of a mess then creating something better. I've recently redone the mana_gain, hit_gain etc etc to something that will update a few hitpoints a time, time being every three seconds. Problem is though, instead of updating ever 3 second, it updates every second and in leeps and bounds: below is my mana_gain() and the call I have in hear_beat in comm.c, also how I call the the three function is PointUpdated which I have posted below as well. Am I calling something incorrectly? Or have I just done something wrong minor or huge? void PointUpdate(void) { struct char_data *i, *next_char; for (i = character_list; i; i = next_char) { next_char = i->next; if (GET_HIT(i) != GET_MAX_HIT(i)) GET_HIT(i) = (GET_HIT(i) + hit_gain(i)); if (GET_MANA(i) != GET_MAX_MANA(i)) GET_MANA(i) = (GET_MANA(i) + mana_gain(i)); if (GET_MOVE(i) != GET_MAX_MOVE(i)) GET_MOVE(i) = (GET_MOVE(i) + move_gain(i)); } } int mana_gain(struct char_data * ch) { int gain; gain = 0; switch (GET_POS(ch)) { case POS_DEAD: gain = 0; break; case POS_MORTALLYW: gain = 0; break; case POS_INCAP: gain = 0; break; case POS_STUNNED: gain = 0; break; case POS_SLEEPING: gain = 4; break; case POS_RECLINING: gain = 3; break; case POS_RESTING: gain = 3; break; case POS_SITTING: gain = 2; break; case POS_FIGHTING: gain = 1; break; case POS_STANDING: gain = 1; break; } if ((GET_COND(ch, FULL) == 0) || (GET_COND(ch, THIRST) == 0)) gain = 1; if (AFF_FLAGGED(ch, AFF_POISON)) gain = 1; return (gain); } in comm.c: if (!(pulse % (5 * PASSES_PER_SEC))) UpdateRacialAffs(); PointUpdate(); Any help would be greatly appreciated. Thanks, Dave -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT