I have a problem with my stable spec_proc. I can manage to rent my mount,
but when I wish to retrieve it, the MUD crashes.
Can anyone look through the code I attach to this mail and help me out?
SPECIAL(stables)
{
struct char_data *horse;
int mount, vnum;
one_argument(argument, arg);
if (CMD_IS("rent")) {
if (!(horse = get_char_room_vis(ch, arg))) {
send_to_char("That mount isn't here.\r\n", ch);
return 0;
}
if (!MOB_FLAGGED(horse, MOB_MOUNTABLE)) {
send_to_char("They aren't a mount!\r\n", ch);
return 0;
}
if (horse->carrying) {
send_to_char("You better remove your stuff from your mount before
renting it.\r\n", ch);
return 0;
}
if (GET_GOLD(ch) < (GET_LEVEL(horse) * 10)) {
send_to_char("You are too short on funds.\r\n", ch);
return 0;
}
vnum = GET_MOB_VNUM(horse);
act("A stableboy takes care of $N.", FALSE, ch, 0, horse, TO_CHAR);
act("A stableboy takes care of you.", FALSE, ch, 0, horse, TO_VICT);
act("A stableboy takes care of $n's $N.", FALSE, ch, 0, horse,
TO_NOTVICT);
GET_MOUNT(ch) = vnum;
GET_GOLD(ch) -= (GET_LEVEL(horse) * 10);
extract_char(horse);
return 0;
}
if (CMD_IS("retrieve")) {
if (GET_MOUNT(ch) == NULL) {
send_to_char("You have no mount rented here.\r\n", ch);
return 0;
}
horse = GET_MOUNT(ch);
mount = read_mobile(horse, VIRTUAL);
char_to_room(horse, ch->in_room);
act("A stableboy arrives with your mount.", FALSE, ch, 0, horse,
TO_CHAR);
act("A stableboy arrives with $n's mount.", FALSE, ch, 0, horse,
TO_ROOM);
add_follower(horse, ch);
}
return 0;
}
/Avatar
+------------------------------------------------------------+
| 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