Re: newbie multi attacks - ascii pfiles..

From: Steve Postema (spostema1@attbi.com)
Date: 01/25/03


Ok, here is my perform_violence from fight.c
I've tried putting the loop in all kinds of places...I still get 1 whole
attack no matter what GET_PC_ATTACKS is set at..
I'm about ready throw this thing out the window :P

Steve


void perform_violence(void)
{
  struct char_data *ch;
  int attacks = 1, i;

  for (ch = combat_list; ch; ch = next_combat_list) {
    next_combat_list = ch->next_fighting;
    attacks = 1;
    if(!IS_NPC(ch) && (GET_PC_ATTACKS(ch) > 0))
       attacks = GET_PC_ATTACKS(ch);
    if(IS_NPC(ch))
       attacks = 3;

    if (FIGHTING(ch) == NULL || IN_ROOM(ch) != IN_ROOM(FIGHTING(ch))) {
      stop_fighting(ch);
      continue;
    }

    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(ch, "You can't fight while sitting!!\r\n");
      continue;
    }

    for(i = 0; i < attacks; i++)
         hit(ch, FIGHTING(ch), TYPE_UNDEFINED);

      if (MOB_FLAGGED(ch, MOB_SPEC) && GET_MOB_SPEC(ch) && !MOB_FLAGGED(ch,
MOB_NOTDEADYET)) {
      char actbuf[MAX_INPUT_LENGTH] = "";
      (GET_MOB_SPEC(ch)) (ch, ch, 0, actbuf);
      }
  }
}

--
   +---------------------------------------------------------------+
   | 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/26/03 PDT