I'm stumped. I am trying to implement multi-attacks for mobs that is independent of the skill based multi-attack that PCs have. I have it set up as a field in the enhanced mobile field. I am using Circle3.0 bpl8. I altered the code in this manner: In db.c in function interpret_espec I added a case CASE("NumAttacks") { RANGE(1, 10); mob_proto[i].mob_specials.numattacks = num_arg; } In utils.c I added #define GET_MOB_ATT(ch) ((ch)->mob_specials.numattacks) In structs.h, in the structure mob_special_data, I added a field int numattacks; /* Number of attacks */ And finally, in fight.c, the relevant code in perform_violence looks like this: hit(ch, FIGHTING(ch), TYPE_UNDEFINED); if (FIGHTING(ch) == NULL || ch->in_room != FIGHTING(ch)->in_room) { stop_fighting(ch); continue; } else if (!IS_NPC(ch)) { percent = number(1, 101); /* 101% is complete failure */ if (percent < GET_SKILL(ch, SKILL_SECOND_ATTACK)) hit(ch, FIGHTING(ch), TYPE_UNDEFINED); } else if (IS_NPC(ch) && GET_MOB_ATT(ch) > 1) { for (j = 2; j < (GET_MOB_ATT(ch) + 1); j++) 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, ""); } } The added code is between the first hit function and the if (MOB_FLAGGED) statement. The first else if is for the player. It works fine. The second else if does not work properly. I sure I defined everything, I can see no flaw in the logic, but I'm getting unexpected results. 1. I created a hydra with 9 attacks 2. I have the hydra attack Puff 3. Puff gets 9 attacks against the Hydra. The hydra only gets one. 4. I have the hydra attack Jupiter. Both only get one attack. Based on the result from Puff, I tried to reverse the arguments in hit(), but that caused a segmentation fault. Normally, I view stuff like this as a good learning experience (much like my troubles implementing racial maximums), but this problem makes no sense to me. Could someone please point out my mistake, or, better yet, tell me a better way of doing it? **************************************************************************** Donald Karpovich * I am myself alone **************************** Realise I never need to use No-one dlk2@ra.msstate.edu * Money, Power, Holy Roads, 74547.2546@compuserve.com * Freedom puts my faith in None of the above **************************** -Duran Duran (1993) *************************************************
This archive was generated by hypermail 2b30 : 12/07/00 PST