Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tracking down the problem causing fireball/disease kills' exp
- To:
- Subject: Tracking down the problem causing fireball/disease kills' exp
- From: Peter Mardahl <>
- Date: Sat, 3 Jun 2000 20:57:59 -0700 (PDT)
to go into tthe wrong experience category.
I've discovered the problem.
The problem isn't in the fireball or the disease code. It is in
"hit_player".
Here is the problem (line 921 is the actual problem, some context is given.)
/* Pet killed something. */
if(get_owner(hitter)!=NULL) {
(void) sprintf(buf,"%s killed %s with %s.",hitter->owner->name,
query_name(op),query_name(hitter));
#ifdef ALLOW_SKILLS
old_hitter = hitter;
owner->exp_obj=hitter->exp_obj;
#endif
hitter=hitter->owner;
This doesn't apply to pets but to any known object. It switches
the hitter from the pet or whatever to the owner of the object,
which in the case of a disease or a pet or fireball, is the player.
add_exp then sticks any kill into the players current chosen_skill,
allowing the widely noted abuse.
I think this code can be safely removed.
I'll try that and test it.
(but this isn't going into the repository quite yet.)
PeterM