On Wed, 11 Oct 1995, E.I. wrote:
>
> About the memory of the mobile you are correct unless you have
> changed your fight system allowing a random hit to every attacker fo every
> attacker and funny-bunny things like this. Hmm one solution can be to
> look for the group of the memorized person and summon randomly one guy
> from there, that is insane, or simply summon the guy that attacked him
> 1st hence as you call'im "the tank".
> To summon everyone in the group: a cheap and buggy version is as I said
> check the descriptors for the guy in memory,
> above: do a ch->master check and a follower check and then with a for
> loop do a char_to_room stuff to get them in the room of yer mob.
>
> Urm I do not see yer point but, a very silly way is to trap the
> flee command! do a if check for fight and for flee command and
> summon the guy.
>
> Hope that was a helpfullllzzz :)
>
> Emre
>
>
Instead, don't even let them flee, in do_flee:
if (FIGHTING(ch) && IS_NPC(FIGHTING(ch))) {
struct char_data * mob;
mob = FIGHTING(ch);
if (IS_SET(MOB_FLAGS, MOB_STOP_FLEE)) {
sprintf( buf, "The %s thwarts your desperate attempts to flee.\r\n",
GET_NAME(FIGHTING(ch)) );
send_to_char( buf, ch );
}
}
Or, you can do like I did and make a 'trip' skill, and then which not
only trips people during battle (it should be an auto-skill), but
randomly if they flee, this provides it for players, then, for mobiles,
instead of checking for the skill, check for MOB_STOP_FLEE and then make
a quick level/hp check to prevent them from fleing. For instance:
if (GET_HIT(ch) > GET_MAXHIT(ch) / 2) {
/* *
* Person is tripped *
* this also helps to *
* stop thieves from *
* backstabbing and *
* fleing. */
}
else {
/* The person flees */
}
This archive was generated by hypermail 2b30 : 12/07/00 PST