Hi i downloaded the code snippet to a retreat skill however the mud
always seems
to crash when i specify a valid directino once i'm fighting. I was
wondering if anyone could help me out.. Thanks.
ACMD(do_retreat)
{
int prob, percent, dir = 0;
int retreat_type;
one_argument(argument, arg);
if (!FIGHTING(ch))
{
send_to_char("You are not fighting!", ch);
return;
}
if (!*arg)
{
send_to_char("Retreat where?!?", ch);
return;
}
retreat_type = search_block(argument + 1, dirs, FALSE);
if (retreat_type < 0 || !EXIT(ch, retreat_type) ||
EXIT(ch, retreat_type)->to_room == NOWHERE)
{
send_to_char("Retreat where?\r\n", ch);
return;
}
percent = GET_SKILL(ch, SKILL_RETREAT);
prob = number(0, 101);
if (prob <= percent){
if (CAN_GO(ch, dir) && !IS_SET(ROOM_FLAGS(EXIT(ch,dir)->to_room),
ROOM_DEATH))
{
act("$n skillfully retreats from combat.", TRUE, ch, 0, 0,
TO_ROOM);
send_to_char("You skillfully retreat from combat.\r\n", ch);
WAIT_STATE(ch, PULSE_VIOLENCE);
improve_skill(ch, SKILL_RETREAT, 2);
do_simple_move(ch, dir, TRUE);
if (FIGHTING(FIGHTING(ch)) == ch)
stop_fighting(FIGHTING(ch));
stop_fighting(ch);
} else {
act("$n tries to retreat from combat but has no where to go!", TRUE,
ch,
0, 0, TO_ROOM);
send_to_char("You cannot retreat in that direction!", ch);
return;
}
} else {
send_to_char("You fail your attempt to retreat!\r\n", ch);
WAIT_STATE(ch, PULSE_VIOLENCE);
return;
}
}
+------------------------------------------------------------+
| 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