Questions, continued

From: Kyle Smith (Kcsral@AOL.COM)
Date: 09/22/98


Dear All,
     Dropped the list a message yesterday on non-functional multiple attack
code, here's the code in question, in case any of you change your mind. You
can see from the way that I have commented things in it, I have tried a great
many different things.

/* control the fights going on.  Called every 2 seconds from comm.c. */
void perform_violence(void)
{
  struct char_data *ch;
  int apr;

  apr = MAX(-1, min(apr, 2));

  for (ch = combat_list; ch; ch = next_combat_list) {
    next_combat_list = ch->next_fighting;
    apr = 0;

    if (GET_SKILL(ch, SKILL_SECOND_ATTACK) >=number(1, 101)) {
       if (GET_SKILL(ch, SKILL_THIRD_ATTACK) >=number(1, 201)) apr++;
    apr++;
    }

/*    apr = MAX(-1, min(apr, 2)); */

    if (apr >=0) {
      for (; apr>=0 && FIGHTING(ch); apr--)
        hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
      if (MOB_FLAGGED(ch, MOB_SPEC) && mob_index[GET_MOB_RNUM(ch)].func !=
NULL)
        (mob_index[GET_MOB_RNUM(ch)].func) (ch, ch, 0, "");
     }


    if (FIGHTING(ch) == NULL || ch->in_room != FIGHTING(ch)->in_room) {
      stop_fighting(ch);
      continue;
    }
/*
    if (GET_SKILL(ch, SKILL_SECOND_ATTACK) >=number(1, 101)) {
       if (GET_SKILL(ch, SKILL_THIRD_ATTACK) >=number(1, 201)) apr++;
    apr++;
    }

    if (apr >=0) {
      for (; apr>=0 && FIGHTING(ch); apr--)
        hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
      if (MOB_FLAGGED(ch, MOB_SPEC) && mob_index[GET_MOB_RNUM(ch)].func !=
NULL)
        (mob_index[GET_MOB_RNUM(ch)].func) (ch, ch, 0, "");
     } */
    if (IS_NPC(ch)) {
      if (GET_MOB_WAIT(ch) > 0) {
        GET_MOB_WAIT(ch) -= PULSE_VIOLENCE;
        continue;
      }
      GET_MOB_WAIT(ch) = 0;
      if (GET_POS(ch) < POS_FIGHTING) {
        GET_POS(ch) = POS_FIGHTING;
        act("$n scrambles to $s feet!", TRUE, ch, 0, 0, TO_ROOM);
      }
    }

    if (GET_POS(ch) < POS_FIGHTING) {
      send_to_char("You can't fight while sitting!!\r\n", ch);
      continue;
    }

    hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
    /* XXX: Need to see if they can handle "" instead of NULL. */
    if (MOB_FLAGGED(ch, MOB_SPEC) && mob_index[GET_MOB_RNUM(ch)].func != NULL)
      (mob_index[GET_MOB_RNUM(ch)].func) (ch, ch, 0, "");
  }
}

Note: I wasn't sure where to stop, and since there wasn't much left in the
file, I just copied it to the end.

Thanks,

Prisma


     +------------------------------------------------------------+
     | 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