Jump to content

SetCriticalStage Help


RoyBatterian

Recommended Posts

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

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

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

  • 4 weeks later...

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 by Athelbras
Link to comment
Share on other sites

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

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...