RoyBatterian Posted April 13, 2015 Share Posted April 13, 2015 So, the wiki is fabulously devoid on any information about what this function actually does. Could someone more knowledgeable please enlighten me? Specifically SetCriticalStage DisintegrateStart and SetCriticalStage DisintegrateEnd Thank you much. Link to comment Share on other sites More sharing options...
claustromaniac Posted April 13, 2015 Share Posted April 13, 2015 Sup Roy!I certainly don't consider myself someone more knowledgeable than you and I may not be able to give you a sufficiently accurate answer, but I can tell you what little I understand about it.AFAIK DisintegrateStart and GooStart modify the ragdoll constrains to allow a ragdoll to take an otherwise impossible shape briefly.You may have noticed that the movement of the limbs of corpses in this game is limited. It approximately simulates the real life limits of the skeleton and articulations. Those two critical stages modify those restrains to allow the body to fall like a heap of a different substance.All I know about DisintegrateEnd is that it removes the havok data of the reference, which causes it to stop dead (now that's kind of redundant, isn't it?) right where it is.If this function didn't exist, critical kills with energy weapons, for example, would still send your enemies flying at least a few feet before they finally fell to the ground, and they would still retain their skeleton's constrains.Anyway, I think the best way to understand it is to test it by yourself. Link to comment Share on other sites More sharing options...
RoyBatterian Posted April 13, 2015 Author Share Posted April 13, 2015 TYVM, that definitely helps me understand what is going on. I will experiment a bit and see what effect it has on things. Link to comment Share on other sites More sharing options...
rickerhk Posted April 14, 2015 Share Posted April 14, 2015 I use those in an NPC script to detect if my follower has been Disintegrated. That way if the player want's her revived, the iGooFlag tells me I need to find and remove the ash pile after resurrection. if (gethealthpercentage < .01) if ((IsInCriticalStage GooStart) || (IsInCriticalStage GooEnd)) set RHKWendyMN.iGooFlag to 1 endif if ((IsInCriticalStage DisintegrateStart) || (IsInCriticalStage DisintegrateEnd)) set RHKWendyMN.iGooFlag to 1 endif endif Link to comment Share on other sites More sharing options...
RoyBatterian Posted April 14, 2015 Author Share Posted April 14, 2015 rQickerhk: Oh thanks for that, and how to do you go about finding the ash/goo pile? Link to comment Share on other sites More sharing options...
rickerhk Posted April 17, 2015 Share Posted April 17, 2015 I find it through a refwalk. When you resurrect the NPC, they are right on top of it. So the nearest ash pile to them. Link to comment Share on other sites More sharing options...
Athelbras Posted May 12, 2015 Share Posted May 12, 2015 (edited) Another observation ... When SetCriticalStage DisintegrateStart and SetCriticalStage DisintegrateEnd are used on an object (such as a recently killed NPC which subsequently collapses to the ground), the game's physics engine seems to maintain a better understanding of where the object is actually positioned in 3D space over time. Without them, calls like GetPos appeared to sometimes yield screwy results. For the example mentioned above (EVE v1.17 critical deaths), Start is applied at the moment of death and End is applied once the corpse has come to rest (at which point we create an ash pile or goo puddle in its place). Edited May 12, 2015 by Athelbras Link to comment Share on other sites More sharing options...
RoyBatterian Posted May 12, 2015 Author Share Posted May 12, 2015 Yep that's exactly why I was learning about this as I'm working on TTW EVE merge, and the scripts for the FO3 side appear to have been horribly mangled from what Cipscis had made. I'm trying to unify all the scripts to conform to some kind of standard as some things work and some don't. It's a lot of work, but I've learned a lot from it. I've fixed a lot of bugs in it already, like the plasma entities hanging around forever and other stuff. When I first did the merge I barely had a grasp on scripting and frankly I'm surprised what I did worked as well as it did. I have to go back now and fix it properly ;) Critical Stage seems to turn havok off or limit it severely while the NPC/Creature is in the death animations. Link to comment Share on other sites More sharing options...
Athelbras Posted May 12, 2015 Share Posted May 12, 2015 If you are tinkering with individual scripts for pile/puddle placement, be aware that the FO3 version *might* have a problem that I had to fix for the FNV side. Which is that a SetPos call was being immediately made after a PlaceAtMe call, in order to reposition the newly created pile. That fails more often than not, because positionality is not necessarily defined/correct until the object (which is being created by the PlaceAtMe) actually appears in the world. Which necessitates waiting a few frames (or a small period of time) before issuing the SetPos. Without a built-in delay ... the game's collision detection and physics engine can go truly bonkers. Link to comment Share on other sites More sharing options...
rickerhk Posted May 12, 2015 Share Posted May 12, 2015 You could set a ref variable to the placeatme object then loop till HasLoaded3D returns true on the ref Link to comment Share on other sites More sharing options...
Recommended Posts