[CF-Devel] Experience bug, continued
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Sat Oct 25 03:00:06 CDT 2003
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
More information about the crossfire
mailing list