Thanks alot for commening :) > > + if (op->type == PLAYER && !kill_player(op)) > > + return maxdam; > > I'm not sure, but it seems to me that kill_object() should return -1 if > op was not killed. I wasn't quite sure either. This is the very end of the kill_object() function: /* This was return -1 - that doesn't seem correct - if we return -1, process * continues in the calling function. */ return maxdam; That's why I felt I should just leave it as it was. Searched for some more clues as to what it should be. These lines are found at the beginning of kill_object() if (op->stats.hp>=0) return -1; kill_object() is called in two places. attack.c : /* See if the creature has been killed */ rtn_kill = kill_object(op, maxdam, hitter, type); if (rtn_kill != -1) return rtn_kill; plugins.c: /*****************************************************************************/ /* kill_object wrapper. */ /*****************************************************************************/ /* 0 - killed object; */ /* 1 - damage done; */ /* 2 - killer object; */ /* 3 - type of killing. */ /*****************************************************************************/ CFParm* CFWKillObject(CFParm* PParm) { CFParm *CFP; static int val; CFP = (CFParm*)(malloc(sizeof(CFParm))); val = kill_object( (object *)(PParm->Value[0]), *(int *)(PParm->Value[1]), (object *)(PParm->Value[2]), *(int *)(PParm->Value[3]) ); CFP->Value[0] = &val; return CFP; }; This looks like what you said: kill_object() should return -1 if op is not dead _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel