[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