On Sun, 26 Oct 1997, Søren P. Skou wrote:
> Problem is simple, and I'm pretty sure I just overlook the obvious. But
> how on earth do I remove the RAFF_ thingie again, only thing I can see
> is that it *HAS* to run out of ticks. Which is pretty Silly, since I
> want to be able to negate light effect if you cast darkness and negate
> darkness effect if you cast light, no matter if you cast it 10000 times
> right after each other. (In which cast I would seriously look at the
> mana that person has. :)
As you said... The spell wears off after a certain duration.
[gunzip roomaff.txt.gz]
[pico roomaff.txt] (I've never looked at the code before. :) )
I found this:
/* update the room affections */
for (raff = raff_list; raff; raff = next_raff) {
next_raff = raff->next;
raff->timer--;
if (raff->timer <= 0) {
/* this room affection has expired */
send_to_room(spell_wear_off_msg[raff->spell],
raff->room);
send_to_room("\r\n", raff->room);
/* remove the affection */
REMOVE_BIT(world[(int)raff->room].room_affections,
raff->affection);
REMOVE_FROM_LIST(raff, raff_list, next)
free(raff);
}
}
Notice the comment "remove the affection"?
Those three lines are probably what you are looking for. :)
John Evans <evansj@hi-line.net>
May the source be with you.
+------------------------------------------------------------+
| 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/08/00 PST