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