Here's a bit of code some of you might find of use. I've modified Strom's
LostLands Engraver special proc, to make a special proc for a machine that
recharges STAFF's and WANDS. I've had this running in my MUD for a while
now and it seems to be working fine. Remember to assign the object the
spec_proc in spec_assign.c. This can easily be modified for use with a
MOB if you prefer. You will also need to add the RECHARGE command to
interpreter.c.
================ Spec_Proc Recharge below ====================
SPECIAL(recharger)
{
char buf[MAX_STRING_LENGTH];
struct obj_data *obj;
int maxcharge = 0, mincharge = 0, chargeval = 0;
if (CMD_IS("list"))
{
send_to_char("You may use the SWEET machine to recharge a staff or
wand.\r\n", ch);
send_to_char("It costs 10000 coins to recharge a staff or wand.\r\n",
ch);
send_to_char("To recharge and item say: Recharge Staff or Recharge
Wand.\r\n", ch);
return (TRUE);
} else
if (CMD_IS("recharge")) {
argument = one_argument(argument, buf);
if (!(obj = get_obj_in_list_vis(ch, buf, ch->carrying)))
{
send_to_char("You don't have that!\r\n", ch);
return (TRUE);
}
if (GET_OBJ_TYPE(obj) != ITEM_STAFF &&
GET_OBJ_TYPE(obj) != ITEM_WAND)
{
send_to_char("Are you daff!!! You can't recharge that!!\r\n", ch);
return (TRUE);
}
if (GET_GOLD(ch) < 10000) {
send_to_char("You don't have enough gold!\r\n", ch);
return (TRUE);
}
maxcharge = GET_OBJ_VAL(obj, 1);
mincharge = GET_OBJ_VAL(obj, 2);
if (mincharge < maxcharge)
{
chargeval = maxcharge - mincharge;
GET_OBJ_VAL(obj, 2) += chargeval;
GET_GOLD(ch) -= 10000;
send_to_char("Grrrr...Hmmmmm.....Belch....BING!\r\n",ch);
sprintf(buf, "The item now has %d charges remaining.\r\n", maxcharge);
send_to_char(buf, ch);
act("The machine hums and churns as it recharges the item.",
FALSE, ch, obj, 0, TO_ROOM);
}
else
{
send_to_char("Item does not need recharging.\r\n", ch);
act("The machine hums, churns, and then goes quiet.",
FALSE, ch, obj, 0, TO_ROOM);
}
return 1;
}
return 0;
}
===================== End Recharge ======================
Thought for the day:
The only thing that hurts more than paying income tax
is not having to pay income tax.
+==================================================================+
| David Carver, Programmer Analyst "Spooooooooonnnnnn!!!" |
| Columbus State Community College -- The Tick |
| Email: dcarver@cougar.colstate.cc.oh.us |
+==================================================================+
This archive was generated by hypermail 2b30 : 12/07/00 PST