Alright, sorry for the spam - but it's me again...
So with help from somebody who saw my last message, I basically fixed up this
code so that people take damage when hungry/thirsty.
Now... my players aren't regenerating... or rather, they do - until they rest
or sleep. Then, even if they get up/quit, etc... they still don't regen.
The code is attached below...
Any help is appreciated,
Thanks,
Viper (ICQ 10883068)
void point_update(void)
{
struct char_data *i, *next_char;
struct obj_data *j, *next_thing, *jj, *next_thing2;
/* characters */
for (i = character_list; i; i = next_char) {
next_char = i->next;
gain_condition(i, FULL, -1);
gain_condition(i, DRUNK, -1);
gain_condition(i, THIRST, -1);
if (GET_POS(i) >= POS_STUNNED) {
GET_HIT(i) = MIN(GET_HIT(i) + hit_gain(i), GET_MAX_HIT(i));
GET_MANA(i) = MIN(GET_MANA(i) + mana_gain(i), GET_MAX_MANA(i));
GET_MOVE(i) = MIN(GET_MOVE(i) + move_gain(i), GET_MAX_MOVE(i));
if (AFF_FLAGGED(i, AFF_POISON))
damage(i, i, 2, SPELL_POISON);
if (GET_POS(i) <= POS_STUNNED)
update_pos(i);
} else if (GET_POS(i) == POS_INCAP)
damage(i, i, 1, TYPE_SUFFERING);
else if (GET_POS(i) == POS_MORTALLYW)
damage(i, i, 2, TYPE_SUFFERING);
if (!IS_NPC(i)) {
update_char_objects(i);
if (GET_LEVEL(i) < idle_max_level)
check_idling(i);
}
/* Hunger damage */
if (IS_NPC(i)) { /* No NPC damage */
return;
}
if (GET_LEVEL(i) < 10) { /* No newbie (lvl 9 and below) damage */
return;
}
if (GET_HIT(i) < 20) { /* No killing people */
send_to_char("Aarrrgh... you're starving - go eat something! \r\n", i);
sprintf(buf, "%s is below 20 hp (abusing hunger/thirst stop).", GET_NAME(i));
mudlog(buf, BRF, LVL_GRGOD, TRUE);
return;
}
switch (GET_COND(i, FULL)){
case 0:
GET_HIT(i) -= 15;
send_to_char("You feel a pain in your chest as you realize how hungry you
are. \r\n", i);
break;
case 1:
GET_HIT(i) -= 12;
send_to_char("You feel a pain in your chest as you realize how hungry you
are. \r\n", i);
break;
case 2:
GET_HIT(i) -= 9;
send_to_char("Your hunger seems to hurt. \r\n", i);
break;
case 3:
GET_HIT(i) -= 6;
send_to_char("Your stomach growls hungrily. \r\n", i);
break;
case 4:
GET_HIT(i) -= 4;
send_to_char("Your stomach rumbles hungrily. \r\n", i);
break;
case 5:
GET_HIT(i) -= 2;
send_to_char("Maybe you ought to find something to eat.\r\n", i);
break;
default:
break;
}
/* Thirst Damage */
switch (GET_COND(i, THIRST)){
case 0:
GET_HIT(i) -= 15;
send_to_char("Your throat cracks with pain at your lack of water. \r\n",
i);
return;
case 1:
GET_HIT(i) -= 12;
send_to_char("Your throat &rhurts&n you greatily because of your lack of
water. \r\n", i);
return;
case 2:
GET_HIT(i) -= 7;
send_to_char("You thirst seems to &rhurt&n you.\r\n", i);
return;
case 3:
GET_HIT(i) -= 6;
send_to_char("You feel your mouth dry up due to lack of liquids. \r\n",
i);
return;
case 4:
GET_HIT(i) -= 4;
send_to_char("You feel your mouth begin to dry up due to lack of liquids.
\r\n", i);
return;
case 5:
GET_HIT(i) -= 2;
send_to_char("Maybe you ought to find something to drink.\r\n", i);
return;
default:
break;
}
}
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST