[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