Death system oddities
Posted: Tue Dec 11, 2007 8:13 pm
A few observations/bugs I'd like to fix, if possible- would welcome any advice on what may be causing them / how best to address them.
1. Nondecaying corpses: I haven't been able to replicate this independently, but it seems under some combination of conditions, we're ending up with PC corpses that no longer have "body" items contained inside. As such, they become immobile, and seem to persist in this "permanent" persistent state long after they should have been cleared by natural scripted decay. This may have to do with some combination of moving the corpse (CorpseOnAcquire, CorpseOnUnAquire), server reset(s), and/or subsequent PC deaths from the same player. Interested in angles on a clean fix, as well as ideas for a stopgap kludge (destroy corpse if there is no body inside,etc).
2. Deaths while in the morgue/fugue: Two dead PCs are in the morgue. One inadvertantly attacks the other, triggering the OnDying() events again on a PC already flagged as dead. Status effect blocks the double-dead PC from moving inside the morgue, and interferes with subsequent rez attempts. We could add some sort of invulnurability to PCs in the morgue/fugue, but then we'd need a pointer to the effect to clear it on resurrection, and there would be the danger of exceptions leading to the "dead" PC getting back out into the gameworld while enjoying invulnerability. Should we just check for the death flag OnDying, and heal back to 1 hp in that case? Seems like a fugue/morgue death is the only likely place for firing the OnPlayerDying event with the PC already flagged as dead in the database.
3. Resurrection Penalty 1: The Raise Dead spell triggers the ACR_DeathOnRessurect() hook, which is coded to apply PnP penalties to PCs who are the recipients of this spell. The standard penalty is loss of one level (adjusts PC to halfway through their prior level in terms of XP). This penalty cannot be applied properly to a level one PC receiving a rez, so the PhB offers a permanent loss of 2 points of constitution to reflect the traumatic nature of the resurrection. We currently do not have this CON penalty coded, but instead drop such PCs back down to 1 xp. The DMA has expressed a sentiment that the -2 CON penalty, while appropriate for PnP, is too great a penalty in a PW. As such, I will leave the scripts as is, though I could code the CON loss with a configuration switch in case there are mixed feelings on this.
4. Resurrection Penalty 2: Currently, the XP penalty is not applied when the caster of the spells is: 1. A DM Avatar, or 2. An NPC Possessed by a DM Avatar. I believe this is meant to put more control in the hands of the DMs- but in practice it means the death penalty must be applied manually whenever a DM is involved in any way with the rez. I propose to change this, so a casting DM avatar skips the penalty (but gets a warning sent to the DM channel, and a Tech Rez flagged to the central logs), while a DM-possessed NPC caster applies the scripted penalty as normal. If there is a compelling reason why possessed NPCs should skip the rez penalty, it'd be useful to know- to me a possessed NPC indicates an IC rez.
1. Nondecaying corpses: I haven't been able to replicate this independently, but it seems under some combination of conditions, we're ending up with PC corpses that no longer have "body" items contained inside. As such, they become immobile, and seem to persist in this "permanent" persistent state long after they should have been cleared by natural scripted decay. This may have to do with some combination of moving the corpse (CorpseOnAcquire, CorpseOnUnAquire), server reset(s), and/or subsequent PC deaths from the same player. Interested in angles on a clean fix, as well as ideas for a stopgap kludge (destroy corpse if there is no body inside,etc).
2. Deaths while in the morgue/fugue: Two dead PCs are in the morgue. One inadvertantly attacks the other, triggering the OnDying() events again on a PC already flagged as dead. Status effect blocks the double-dead PC from moving inside the morgue, and interferes with subsequent rez attempts. We could add some sort of invulnurability to PCs in the morgue/fugue, but then we'd need a pointer to the effect to clear it on resurrection, and there would be the danger of exceptions leading to the "dead" PC getting back out into the gameworld while enjoying invulnerability. Should we just check for the death flag OnDying, and heal back to 1 hp in that case? Seems like a fugue/morgue death is the only likely place for firing the OnPlayerDying event with the PC already flagged as dead in the database.
3. Resurrection Penalty 1: The Raise Dead spell triggers the ACR_DeathOnRessurect() hook, which is coded to apply PnP penalties to PCs who are the recipients of this spell. The standard penalty is loss of one level (adjusts PC to halfway through their prior level in terms of XP). This penalty cannot be applied properly to a level one PC receiving a rez, so the PhB offers a permanent loss of 2 points of constitution to reflect the traumatic nature of the resurrection. We currently do not have this CON penalty coded, but instead drop such PCs back down to 1 xp. The DMA has expressed a sentiment that the -2 CON penalty, while appropriate for PnP, is too great a penalty in a PW. As such, I will leave the scripts as is, though I could code the CON loss with a configuration switch in case there are mixed feelings on this.
4. Resurrection Penalty 2: Currently, the XP penalty is not applied when the caster of the spells is: 1. A DM Avatar, or 2. An NPC Possessed by a DM Avatar. I believe this is meant to put more control in the hands of the DMs- but in practice it means the death penalty must be applied manually whenever a DM is involved in any way with the rez. I propose to change this, so a casting DM avatar skips the penalty (but gets a warning sent to the DM channel, and a Tech Rez flagged to the central logs), while a DM-possessed NPC caster applies the scripted penalty as normal. If there is a compelling reason why possessed NPCs should skip the rez penalty, it'd be useful to know- to me a possessed NPC indicates an IC rez.