Re: New improved Assassins

From: Doppleganger Software (doppsoft@junctionnet.com)
Date: 02/18/97


I am just going to clear up 2 things.  The Graph.c code is in yhr 
function hunt_victim.  Just replace your hunt_victim with this one, as I 
can't remember where the code changes.

void hunt_victim(struct char_data * ch)
{
  ACMD(do_say);
  extern struct char_data *character_list;

  int dir;
  byte found;
  struct char_data *tmp;

  if (!ch || !HUNTING(ch))
    return;
  if (GET_POS(ch) <= POS_FIGHTING)
    return;

  /* make sure the char still exists */
  for (found = 0, tmp = character_list; tmp && !found; tmp = tmp->next)
    if (HUNTING(ch) == tmp)
      found = 1;

  if (!found) {
    do_say(ch, "Damn!  My prey is gone!!", 0, 0);
    HUNTING(ch) = 0;
    return;
  }
  dir = find_first_step(ch->in_room, HUNTING(ch)->in_room);
  if ((dir < 0) && (ch->in_room != HUNTING(ch)->in_room)) {
    act("$n says, 'Damn!  I lost $N!!'", FALSE, ch, 0, (HUNTING(ch)), 
TO_ROOM);
    HUNTING(ch) = 0;
    return;
  } else if (ch->in_room != HUNTING(ch)->in_room) {
    perform_move(ch, dir, 1);
    if (ch->in_room == HUNTING(ch)->in_room) {
      if (!ROOM_FLAGGED(ch->in_room, ROOM_PEACEFUL)) {
        do_say(ch, "You coward!  I will kill you!!", 0, 0);
        act("$n lunges at $N!!", FALSE, ch, 0, (HUNTING(ch)), TO_ROOM);
        hit(ch, HUNTING(ch), TYPE_UNDEFINED);
      } else {
        if (!MOB_FLAGGED(ch, MOB_ASSASSIN))
          act("$n says, 'Coward!  Come out of here and fight me $N!'", 
FALSE, c$
        }
    }
    return;
  }
}



Also, about adding the HUNTING to mobact, find this lines:
    /* Mob Movement */
change the statements to:
    if (HUNTING(ch))
      hunt_victim(ch);
    else if (!MOB_FLAGGED(ch, MOB_SENTINEL) && (GET_POS(ch) == 
POS_STANDING) &&
        ((door = number(0, 18)) < NUM_OF_DIRS) && CAN_GO(ch, door) &&
        !ROOM_FLAGGED(EXIT(ch, door)->to_room, ROOM_NOMOB | ROOM_DAMAGE)) 
{
      perform_move(ch, door, 1);
    }

Also, make sure you have this declaration somewhere in the file.

void hunt_victim(struct char_data * ch);
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
|    Or send 'info circle' to majordomo@cspo.queensu.ca     |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST