Ok, I'll bite... (This is all mailer code so I take no responsibility for it). In fight.c, take a look at the damage function, and look for the lines if (ch != victim && MOB_FLAGGED(victim, MOB_WIMPY)) do_flee(victim, NULL, 0, 0); This is where we check to see if the Mob is wimpy and call our flee function passing the mob struct as the first parameter. This then calls do_flee from act.offensive.c in do_flee, look for the following lines: if (CAN_GO(ch, attempt) && !ROOM_FLAGGED(EXIT(ch, attempt)->to_room,ROOM_DEATH)) Try changing to: if (CAN_GO(ch, attempt) && (GET_POS(ch) != POS_SITTING) && !ROOM_FLAGGED(EXIT(ch, attempt)->to_room,ROOM_DEATH)) This will stop mobs fleeing when they're in POS_SITTING (i.e. bashed). Personally I do another check like the following: /* If person tries to flee while they're not on their feet make them stand */ if (GET_POS(ch) == POS_SITTING) { act("$n madly scrambles to their feet!", TRUE, ch, 0, 0, TO_ROOM); GET_POS(ch) = POS_FIGHTING; send_to_char("You scamble madly to your feet!\r\n", ch); return 0; } Hopefully this helps you out a bit... someone slap me if I've posted buggy code :) Owen B-R. -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT