> I use InvalidateBoneCache before calling CreateServerRagdoll
> and don't work, still appears in Spawn point.

Did you try the other tests I mentioned?  Do other server ragdolls
appear in the right places in your mod?  It's important to figure out
which code is broken.  You need to isolate the problem to a small
section of code or data to make it easier to figure out what is wrong.
If other server ragdolls can be created fine in your mod, then the
problem is likely related to the state or implementation of the strider
entity, not the server ragdoll code itself.

> I tell you what I'm doing. I create a driveable strider in my
> mod: Pilotable Strider Mod.
>
> I derived it from CPropVehicleDrivable and I use the
> calculateIKlocks functions in npc_strider and c_strider.

It would be a lot less complex if you derived CNPC_Strider from
IServerVehicle and implemented the relevant vehicle stuff in the
strider.  Are you using a four-wheel simulation for the strider?
(that's the main thing you gain by using CPropVehicleDriveable) How does
the strider move?

It's really hard to know what could be wrong - there isn't much
information here.  I'd want to step through CreateServerRagdoll in your
mod in the debugger and see where the positions are wrong.


But I can offer another guess - perhaps you are creating a four-wheel
vehicle for the strider.  But you aren't using the physics for that
vehicle in your mod - you're just animating the strider and moving it
like the NPC code does.  So the strider ragdoll is synchronized to the
position of the vehicle instead of the animated entity.  Anyway, the
easiest way to fix that would be to teleport the vehicle (or destroy it)
before you create the ragodll.  What is the movetype of your strider?

I guess another simple way to check this is to do this:
Physics_prop_ragdoll.cpp

CBaseEntity *CreateServerRagdoll( CBaseAnimating *pAnimating, int
forceBone, const CTakeDamageInfo &info, int collisionGroup, bool
bUseLRURetirement )
{
        // comment out this line!
        //SyncAnimatingWithPhysics( pAnimating );

//...

If that fixes the problem, then you've got some physics object attached
to the strider that is causing the ragdoll to spawn at the other
location.  This shouldn't be possible if your movetype is
MOVETYPE_VPHYSICS, but if you're using MOVETYPE_STEP then it's likely to
be the problem.

Jay

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to