SSL Posted March 13, 2016 Share Posted March 13, 2016 The bug: On passing through load doors, reanimated thralls (zombies) will often disintegrate into an un-lootable ash pile, or even fail to come through the door at all. Sometimes a zombie will come through a load door, only to turn around and go back through it, disappearing forever. The fix: Zombies have all effects stripped when passing through load doors, which ends the ReanimateSecondaryFFAimed effect and prematurely triggers distintegration. This is prevented by removing the OnEffectFinish handler from the ReanimateAshPile script. Handling of this event is redundant given that the OnDying event consistently triggers when any reanimate spell terminates or the zombie is killed, so removing it seems to pose no issues. Removing the finish handler prevents the vanilla ash pile effect from working properly. Applying a modified version via scripted magic effect fixes this issue. The script re-applies the reanimate visuals, ash pile effect, and forces the zombie to pathfind and/or teleport to the player. It also dispels the Dead Thrall spell from the player when a thrall dies. All of this seems to work in the testing that I have done so far. The only thing left to implement is the Dark Souls perk fix. Dark Souls fix applied as well; zombies will retain their health bonus after load doors.My questions:Is this a fix that is within the scope of the Unofficial Patch? And is this considered a good solution that will be compatible with other mods? Right now I'm using the "Apply Reanimate Spell" perk entry point, but maybe it would be better to just add my script that fills the quest alias to every playable reanimate spell in the game. I went ahead and added a new magic effect to the vanilla renamiate spells as it seems that only one instance of any "Apply Spell" perk entry can apply. Link to comment Share on other sites More sharing options...
SSL Posted March 14, 2016 Author Share Posted March 14, 2016 Full code for the fix: https://github.com/npacker/reanimate-disintegration-fix Link to comment Share on other sites More sharing options...
Hana Posted March 17, 2016 Share Posted March 17, 2016 Hey, nice avatar. Link to comment Share on other sites More sharing options...
SSL Posted March 18, 2016 Author Share Posted March 18, 2016 Hey, nice avatar. Likewise. Link to comment Share on other sites More sharing options...
Arthmoor Posted March 18, 2016 Share Posted March 18, 2016 Hmm. I'm not comfortable with the idea of fundamentally altering the ReanimateAshPile script to remove part of it just on the basis of zombies not passing a load door intact. There would need to be a lot more wrong with the way things are done than this to warrant what might be a large intrusion into how things are expected to behave. Link to comment Share on other sites More sharing options...
SSL Posted March 18, 2016 Author Share Posted March 18, 2016 Hmm. I'm not comfortable with the idea of fundamentally altering the ReanimateAshPile script to remove part of it just on the basis of zombies not passing a load door intact. There would need to be a lot more wrong with the way things are done than this to warrant what might be a large intrusion into how things are expected to behave. I recommend reviewing my code, and the OP. I realized that simply modifying the script would not be sufficient and that creating a second script with the necessary changes is the safest method. The final itereation of my fix only changes which effects are applied by the playable reanimate spells. The ReanimateAshPile script and ReanimateSecondayFFAimed effect are not changed, and thus mods relying on them will not be affected. The behavior of the reanimate spells is not changed, so mods relying on that behavior should not be affected. The playable spells themselves are not even used anywhere by other game assets, so I'm not sure what risk there would be in changing them. Incidentally, the expected behavior of the ReanimateAshPile script is fundametally wrong. It should act purely as a listener for the death event and respond with the desired behavior. Instead, the OnEffectFinish listener means that it takes an active - and redundant - role in terminating a reanimate spell. This conflict of responsibility is what makes the ash piles unlootable when a thrall is prematurely disintegrated; more than that, it's the cause of this bug in the first place. It's just poor design. You might want to check out my bug report concerning the previous non-fix to #919. My solution to this problem takes care of that one, too. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now