Ok, I traced poisoning, and here are my results: poison cloud create 'poison cloud' artifacts, that hit map squares, and ultimately call 'poison_player' on living creatures. function prototype: void poison_player(object *op, object *hitter, int dam) with op = victim, hitter = hitting object, 'poison cloud' here But poison_player: 1) uses 'poisoning' archetype even though hitter->other_arch is set (to poisoninig, all right). This isn't that an issue, assuming poison_player is not used for other things. 2) does *not* copy the 'skill' field from 'hitter', which contains 'sorcery' in the case of poison cloud. Therefore, if you do the following: * cast some poison cloud * change skill before monsters die Then the result is probably that you'll have experience in the 'wrong' skill... What can happen, too, is that you drop your talisman of sorcery, thus your skill changes to 'nothing', and kill_object will complain BUT use an invalid (uninitialized) skill name... I would guess copying the 'skill' field in 'poison_player' fixes some things. Will require some testing, though. Just my 2 cents Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel