ok i found the problems you were right it set dir = 0 and also in the
do_simple_ move(ch, dir, TRUE) dir should be retreat_type also noticed a
few bugs in then stop_fighting parts that caused the mud to crash so i
updated those. If anyone wants this code i have included it sorry for the
spam. Also someone may want to update the snippets page. Scorn
ACMD(do_retreat)
{
int prob, percent, dir;
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);
do_simple_move(ch, retreat_type, TRUE);
if (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