diff --git a/sp/src/game/server/ai_basenpc_schedule.cpp b/sp/src/game/server/ai_basenpc_schedule.cpp index ec5d612d621..62fd8bafa71 100644 --- a/sp/src/game/server/ai_basenpc_schedule.cpp +++ b/sp/src/game/server/ai_basenpc_schedule.cpp @@ -2800,14 +2800,22 @@ void CAI_BaseNPC::StartTask( const Task_t *pTask ) case TASK_SMALL_FLINCH: { Remember(bits_MEMORY_FLINCHED); - SetIdealActivity( GetFlinchActivity( false, false ) ); + Activity flinchActivity = GetFlinchActivity( false, false ); + if ( HaveSequenceForActivity( flinchActivity ) ) + SetIdealActivity( flinchActivity ); + else + TaskComplete(); m_flNextFlinchTime = gpGlobals->curtime + random->RandomFloat( 3, 5 ); break; } case TASK_BIG_FLINCH: { Remember(bits_MEMORY_FLINCHED); - SetIdealActivity( GetFlinchActivity( true, false ) ); + Activity flinchActivity = GetFlinchActivity( true, false ); + if ( HaveSequenceForActivity( flinchActivity ) ) + SetIdealActivity( flinchActivity ); + else + TaskComplete(); m_flNextFlinchTime = gpGlobals->curtime + random->RandomFloat( 3, 5 ); break; } diff --git a/sp/src/game/server/physics_prop_ragdoll.cpp b/sp/src/game/server/physics_prop_ragdoll.cpp index cf2a4a1861c..efd2870cf55 100644 --- a/sp/src/game/server/physics_prop_ragdoll.cpp +++ b/sp/src/game/server/physics_prop_ragdoll.cpp @@ -1656,7 +1656,8 @@ CBaseAnimating *CreateServerRagdollSubmodel( CBaseAnimating *pOwner, const char if (pOwner && pOwner->m_ScriptScope.IsInitialized() && CBaseAnimating::g_Hook_OnServerRagdoll.CanRunInScope( pOwner->m_ScriptScope )) { // ragdoll, submodel - ScriptVariant_t args[] = { ScriptVariant_t( pRagdoll->GetScriptInstance() ), true }; + HSCRIPT hRagdoll = pRagdoll ? pRagdoll->GetScriptInstance() : NULL; + ScriptVariant_t args[] = { ScriptVariant_t( hRagdoll ), true }; CBaseAnimating::g_Hook_OnServerRagdoll.Call( pOwner->m_ScriptScope, NULL, args ); } #endif @@ -1690,7 +1691,8 @@ CBaseEntity *CreateServerRagdoll( CBaseAnimating *pAnimating, int forceBone, con if (pAnimating->m_ScriptScope.IsInitialized() && CBaseAnimating::g_Hook_OnServerRagdoll.CanRunInScope( pAnimating->m_ScriptScope )) { // ragdoll, submodel - ScriptVariant_t args[] = { ScriptVariant_t( pRagdoll->GetScriptInstance() ), false }; + HSCRIPT hRagdoll = pRagdoll ? pRagdoll->GetScriptInstance() : NULL; + ScriptVariant_t args[] = { ScriptVariant_t( hRagdoll ), false }; CBaseAnimating::g_Hook_OnServerRagdoll.Call( pAnimating->m_ScriptScope, NULL, args ); } #endif