I fixed it :D The asserts had nothing to do with it :( Its some code that was modified in the asw codebase, in "game\server\basecombatweapon.cpp" In the "Operator_FrameUpdate" method. Basically the code in the orange box called Dispatch anim events for NPCs and Players, but the new code in ASW calls it just for the player.
Before (line 123) : > CBasePlayer *pOwner = ToBasePlayer( GetOwner() ); > if ( pOwner == NULL ) // < --- That's the problem, it exits here > before calling DispatchAnimEvent ! > return; > > CBaseViewModel *vm = pOwner->GetViewModel( m_nViewModelIndex ); > if ( vm == NULL ) > return; > > // HACK: Player weapon and view model often use the same mdl, which > results > // in duplicate anim events. For now, let the view model handle the > events > // if they're the same, which is the preferred behavior in general. > CStudioHdr *w_hdr = GetModelPtr(); > CStudioHdr *v_hdr = vm->GetModelPtr(); > if ( w_hdr->GetRenderHdr() != v_hdr->GetRenderHdr() ) > { > // Animation events are passed back to the weapon's owner/operator > DispatchAnimEvents( pOperator ); > } > > // Update and dispatch the viewmodel events > if ( vm != NULL ) > { > vm->StudioFrameAdvance(); > vm->DispatchAnimEvents( this ); > } > Fixed (line 123) CBasePlayer *pOwner = ToBasePlayer( GetOwner() ); > if ( pOwner == NULL ) > { > //NPCs Please ! > DispatchAnimEvents( pOperator ); //< -- just add a call to > DispatchAnimEvents before returning for NPCs > return; > } > > CBaseViewModel *vm = pOwner->GetViewModel( m_nViewModelIndex ); > if ( vm == NULL ) > return; > > // HACK: Player weapon and view model often use the same mdl, which > results > // in duplicate anim events. For now, let the view model handle the > events > // if they're the same, which is the preferred behavior in general. > CStudioHdr *w_hdr = GetModelPtr(); > CStudioHdr *v_hdr = vm->GetModelPtr(); > if ( w_hdr->GetRenderHdr() != v_hdr->GetRenderHdr() ) > { > // Animation events are passed back to the weapon's owner/operator > DispatchAnimEvents( pOperator ); > } > > // Update and dispatch the viewmodel events > if ( vm != NULL ) > { > vm->StudioFrameAdvance(); > vm->DispatchAnimEvents( this ); > } > After that fix npcs now fire their guns ! http://www.youtube.com/watch?v=r0TUzPwD81s By the way, I read in some comments in the code that there was a new system handling NPCs firing their guns, but I couldn't find it. Has anybody anything to say about that ? On Mon, Nov 28, 2011 at 8:01 PM, Psy_Commando <psycomma...@gmail.com> wrote: > I did some debbuging, and I tracked down some of the problem, it seems > HandleAnimEvent isn't called when the npc fires. It runs the firing anims > all fines but the event doesn't trigger the firebullet ... > > And also the assert about the leaf system has some references to a > basenpc, which I guess is the metropolice, so I guess you're right that its > related. > > But how to fix it ? > > On Sun, Nov 27, 2011 at 6:19 PM, Psy_Commando <psycomma...@gmail.com>wrote: > >> Here's the stacktrace for the attachment not found assert : >> >> Server.dll!CBaseAnimating::LookupAttachment(const char * >> szName=0x19853144) Line 1960 + 0xdf bytes C++ >> Server.dll!CAI_BaseActor::HeadTargetValidity(const Vector & >> lookTargetPos={...}) Line 852 + 0xd bytes C++ >> Server.dll!CAI_BaseActor::MaintainLookTargets(float >> flInterval=0.10000002) Line 1685 + 0x26 bytes C++ >> Server.dll!CAI_BaseNPC::PostMovement() Line 2997 + 0x1d bytes C++ >> Server.dll!CAI_BaseNPC::NPCThink() Line 4081 C++ >> Server.dll!CAI_BaseNPC::CallNPCThink() Line 3888 + 0x12 bytes C++ >> Server.dll!CBaseEntity::Think() Line 712 + 0x39 bytes C++ >> Server.dll!CBaseEntity::PhysicsDispatchThink(void (void)* >> thinkFunc=0x18821222) Line 1023 + 0x8 bytes C++ >> Server.dll!CBaseEntity::PhysicsRunSpecificThink(int >> nContextIndex=-1, void (void)* thinkFunc=0x18821222) Line 2108 C++ >> Server.dll!CBaseEntity::PhysicsRunThink(CBaseEntity::thinkmethods_t >> thinkMethod=THINK_FIRE_BASE_ONLY) Line 1903 + 0xf bytes C++ >> Server.dll!CBaseEntity::StepSimulationThink(float dt=0.10000006) >> Line 1738 C++ >> Server.dll!CBaseEntity::PhysicsStep() Line 1881 C++ >> Server.dll!CBaseEntity::PhysicsSimulate() Line 1862 C++ >> Server.dll!Physics_SimulateEntity(CBaseEntity * pEntity=0x07f4f100) >> Line 2112 + 0x12 bytes C++ >> Server.dll!Physics_RunThinkFunctions(bool simulating=true) Line >> 2169 + 0xf bytes C++ >> Server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line >> 1310 + 0xa bytes C++ >> engine.dll!0ae2a425() >> ... >> >> >> And here's the one about the vectors are equals: >> Client.dll!CClientLeafSystem::ComputeBounds(int nCount=101, >> CClientLeafSystem::RenderableInfo_t * * ppRenderables=0x0018324c, >> CClientLeafSystem::BuildRenderListInfo_t * pRLInfo=0x001825b0) Line 2315 + >> 0xa1 bytes C++ >> Client.dll!CClientLeafSystem::BuildRenderablesList(const >> SetupRenderInfo_t & info={...}) Line 2607 C++ >> Client.dll!CRendering3dView::SetupRenderablesList(int viewID=0) >> Line 3530 + 0x24 bytes C++ >> Client.dll!CRendering3dView::BuildRenderableRenderLists(int >> viewID=0) Line 3645 C++ >> Client.dll!CBaseWorldView::DrawSetup(float waterHeight=0.00000000, >> int nSetupFlags=10272, float waterZAdjust=0.00000000, int >> iForceViewLeaf=-1) Line 5448 C++ >> Client.dll!CSimpleWorldView::Draw() Line 5600 C++ >> Client.dll!CSimpleRenderExecutor::AddView(CRendering3dView * >> pView=0x02c93200) Line 953 + 0xf bytes C++ >> Client.dll!CViewRender::AddViewToScene(CRendering3dView * >> pView=0x02c93200) Line 329 + 0x3f bytes C++ >> Client.dll!CViewRender::DrawWorldAndEntities(bool bDrawSkybox=true, >> const CViewSetup & viewIn={...}, int nClearFlags=34, ViewCustomVisibility_t >> * pCustomVisibility=0x00000000) Line 2920 C++ >> Client.dll!CViewRender::ViewDrawScene(bool bDrew3dSkybox=false, >> SkyboxVisibility_t nSkyboxVisible=SKYBOX_3DSKYBOX_VISIBLE, const CViewSetup >> & view={...}, int nClearFlags=34, view_id_t viewID=VIEW_MAIN, bool >> bDrawViewModel=true, int baseDrawFlags=0, ViewCustomVisibility_t * >> pCustomVisibility=0x00000000) Line 1448 C++ >> Client.dll!CViewRender::RenderView(const CViewSetup & view={...}, >> const CViewSetup & hudViewSetup={...}, int nClearFlags=34, int >> whatToDraw=3) Line 2408 C++ >> Client.dll!CViewRender::Render(vrect_t * rect=0x0018e588) Line 1002 >> + 0x2b bytes C++ >> Client.dll!CHLClient::View_Render(vrect_t * rect=0x0018e588) Line >> 1607 + 0x19 bytes C++ >> engine.dll!0ae1b796() >> ... >> >> >> They both seems completely unrelated to the issue to me. Could you at >> least explain how those could affect npc not firing at their targets ? >> >> >> >> On Sun, Nov 27, 2011 at 6:01 PM, Tony "omega" Sergi >> <omegal...@gmail.com>wrote: >> >>> and i'm pretty sure both of them are by the soldier trying to fire the >>> gun. >>> >>> >>> >>> On Mon, Nov 28, 2011 at 7:37 AM, Psy_Commando <psycomma...@gmail.com>wrote: >>> >>>> They are holding a weapon, its just underground. >>>> >>>> About the errors, I don't know, those are asserts mostly having to do >>>> with the stunstick and the combine soldier model. >>>> >>>> These 2 are repeated infinitely : >>>> " >>>> e:\project sfr local\asw_sfr\src\game\client\clientleafsystem.cpp >>>> (2315) : Assertion Failed: VectorsAreEqual( vecTestMaxs, >>>> pInfo->m_vecAbsMaxs, 1e-3 ) >>>> e:\project sfr local\asw_sfr\src\game\server\baseanimating.cpp (1960) : >>>> Couldn't find attachment forward on skeleton Combine_Soldier.mdl for object >>>> comb1 >>>> " >>>> But I'm pretty sure its some kind of conflict in the ai or weapon. >>>> >>>> On Sun, Nov 27, 2011 at 4:43 PM, Tony "omega" Sergi < >>>> omegal...@gmail.com> wrote: >>>> >>>>> I'm not entirely sure because it was hard to read, but if you fix all >>>>> of the errors in the console spam, you might solve your issue... >>>>> >>>>> >>>>> >>>>> On Mon, Nov 28, 2011 at 5:25 AM, Psy_Commando >>>>> <psycomma...@gmail.com>wrote: >>>>> >>>>>> yeah, they have smg1 >>>>>> >>>>>> >>>>>> On Sun, Nov 27, 2011 at 3:04 PM, Saul Rennison < >>>>>> saul.renni...@gmail.com> wrote: >>>>>> >>>>>>> Do they even have their weapon equipped? >>>>>>> >>>>>>> >>>>>>> Kind regards, >>>>>>> *Saul Rennison* >>>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> 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 >>>> >>>> >>>> >>> >>> >>> -- >>> -Tony >>> >>> >>> _______________________________________________ >>> 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