Hey there, great! This worked perfectly. I've simply put UTIL_Remove(this) at the end of CAI_BaseNPC::RunDieTask() and now the corpse gets removed after the death animation is played. Thanks for the help!
Regards from Germany xs57 Ryan Sheffer wrote: > I was a bit off with what I said, the death thing I was thinking about is > actually a task set called TASK_DIE and it handles the wait cycle for the > NPC while it does its death animation. > > Find this function in ai_basenpc_schedule > > void CAI_BaseNPC::RunDieTask() > { > AutoMovement(); > > if ( IsActivityFinished() && GetCycle() >= 1.0f ) > { > m_lifeState = LIFE_DEAD; > > SetThink ( NULL ); > StopAnimation(); > ............... > > You will notice IsActivityFinished() there, that is how it waits for the > death animation to complete. It will run this task until the time in which > it is safe to stop thinking. > You can see there the think is set to NULL, overriding this function should > help you set a new think instead of nothing which you can add your timer > too. Also keep in mind if the NPC turns into a ragdoll on the client, the > NPC itself will be destroyed along with the chance to think. > > On Fri, Jul 3, 2009 at 2:36 AM, Biz <b...@cs-dsf-clan.de> wrote: > > >> Heya, >> >> >>> When an NPC becomes a ragdoll it is essentially an independent object to >>> >> the >> >>> npc and generally one that is generated client-side versus server-side. >>> >> If >> >>> you are trying to remove the corpse after 5 seconds then you may need to >>> >> be >> >>> looking for the ragdoll entity then. >>> >>> Chris >>> >>> >> Thanks for the hint, but my NPC is not becoming a ragdoll. I think a >> ragdoll would cost too much performance as i'm working with many NPCs. >> That's why i only have them play simple death animations. >> >> >>> Instead of removing the npc go to the client side ragdoll in >>> c_baseanimating and have it remove itself after 5s. If you aren't >>> using a ragdoll and just animations, then you need to look in >>> combatcharacter for a deadthink function or something similar and add >>> your timer there. By setting the think on your npc, you are taking >>> away the natural thinking process that contains the wait for death >>> animation completion stuff. Hope this helps. >>> >>> ~Ryan / skidz >>> >> Ryan: What you described with the death-think function is exactly what >> i'm trying to figure out. I'm looking for what you called the "natural >> thinking process that contains the wait for death animation completion >> stuff". I need to find exactly that function, but i'm having trouble >> with it ;) Thanks for the hint though. >> >> Regards from Germany >> xs57 >> >> >>> -----Original Message----- >>> From: hlcoders-boun...@list.valvesoftware.com >>> [mailto:hlcoders-boun...@list.valvesoftware.com] On Behalf Of Biz >>> Sent: Thursday, July 02, 2009 10:41 AM >>> To: hlcoders@list.valvesoftware.com >>> Subject: [hlcoders] Remove corpse 5s after NPC death >>> >>> Hi list, >>> >>> i've ported my mod to ob-engine and now my NPC corpse fade after 5 >>> seconds isn't working anymore. Does anyone have an idea what the last >>> function that is called after NPC death is? When i try to define a new >>> think-function Dying() at the end of the Event_Killed() function like: >>> SetThink( &Bla::Dying ); >>> SetNextThink( gpGlobals->curtime + 5.0f ); >>> >>> void Dying() >>> { >>> UTIL_Remove(this); >>> } >>> >>> This works, but my death animation won't play anymore then. That is if i >>> kill an NPC it just freezes and disappears after 5s. >>> >>> So i would either need a command that resumes my animation or i would >>> have to know which function is called after death. I've tried figuring >>> it out myself, but i didn't find it. >>> >>> Any help greatly appreciated :-) >>> >>> >>> Greets from Germany >>> xs57 >>> >>> _______________________________________________ >>> To unsubscribe, edit your list preferences, or view the list archives, >>> please visit: >>> http://list.valvesoftware.com/mailman/listinfo/hlcoders >>> >>> >>> _______________________________________________ >>> To unsubscribe, edit your list preferences, or view the list archives, >>> >> please visit: >> >>> http://list.valvesoftware.com/mailman/listinfo/hlcoders >>> >>> >>> >>> >> _______________________________________________ >> To unsubscribe, edit your list preferences, or view the list archives, >> please visit: >> http://list.valvesoftware.com/mailman/listinfo/hlcoders >> >> >> > > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders