> > > Replying to myself: this is incorrect. I assumed that when called by
> > > perform_violence(), the special procedure would have ch == FIGHTING(ch),
> > > but this is incorrect. It's also unfortunate because it makes it
> > > impossible to differentiate between spec proc calls on mob and violence
> > > pulses.
> >
> > I'm easily confused, but, I thought there were only ever 2
> > triggers for spec procs; by command, or by pulse. All pulse (whether
> > moving, or casting 'poison' or the sort) happen in the mobile_activities()
> > loop. The 'violence' pulses don't trigger mob spec procs.
> >
> > Unless that changed.
> >
> Cut from perform_violence(), fight.c: bpl20 (actually the same snip dak
> used)
>
> hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
> if (MOB_FLAGGED(ch, MOB_SPEC) && mob_index[GET_MOB_RNUM(ch)].func !=
> NULL) {
> char actbuf[MAX_INPUT_LENGTH] = "";
> (mob_index[GET_MOB_RNUM(ch)].func) (ch, ch, 0, actbuf);
>
> This is actually the part where snakes bite, mages cast, etc. when fighting.
>
> And, as a side note that change happened long ago (at least before bpl16,
> which was when I entered the Circle community).
>
Ack, You're right.
In recent versions, I always rewrite the perform_violence loop,
and now that you bring it up - I always remove that call from the interior
loop because it is so prone to causing crashes. Much of the perform
violence loop was ... difficult .. to say the least :)
*watches another newbie put in non-functional multi-hit code*
Ohwell, time to update that documentation I wrote so it's valid ;)
PjD
--
+---------------------------------------------------------------+
| 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/25/03 PDT