Alright, I found the problem. The main source is in "server/player_command.cpp" in the "void CPlayerMove::FinishMove( CBasePlayer *player, CUserCmd *ucmd, CMoveData *move )" function :
float pitch = move->m_vecAngles[ PITCH ]; > if ( pitch > 180.0f ) > { > pitch -= 360.0f; > } > pitch = clamp( pitch, -90, 90 ); > > move->m_vecAngles[ PITCH ] = pitch; > > player->SetBodyPitch( pitch ); > > player->SetLocalAngles( move->m_vecAngles ); // <- This is the problem > I made the same lazy fix they did in the hl2mp code : void CHL2MP_Player::PostThink( void ) > { > ... > QAngle angles = GetLocalAngles(); > angles[PITCH] = 0; > SetLocalAngles( angles ); > ... > } > And in addition I override the "FinishMove" method in my "server/asw_playermove.cpp" file, and copied the old code from "CPlayerMove::FinishMove" and removed the problematic line. //PsyCommando : Rewrote this here to remove the bit of code that made the > player hitboxes move with the camera pitch !!!; > void CASW_PlayerMove::FinishMove( CBasePlayer *player, CUserCmd *ucmd, > CMoveData *move ) > { > VPROF( "CPlayerMove::FinishMove" ); > > player->m_flMaxspeed = move->m_flClientMaxSpeed; > player->SetAbsOrigin( move->GetAbsOrigin() ); > player->SetAbsVelocity( move->m_vecVelocity ); > player->SetPreviouslyPredictedOrigin( move->GetAbsOrigin() ); > > player->m_Local.m_nOldButtons = move->m_nButtons; > > // Convert final pitch to body pitch > float pitch = move->m_vecAngles[ PITCH ]; > if ( pitch > 180.0f ) > { > pitch -= 360.0f; > } > pitch = clamp( pitch, -90, 90 ); > > move->m_vecAngles[ PITCH ] = pitch; > > player->SetBodyPitch( pitch ); > > //player->SetLocalAngles( move->m_vecAngles ); //<- this was the > source of headaches - psycommando > > // The class had better not have changed during the move!! > if ( player->m_hConstraintEntity ) > Assert( move->m_vecConstraintCenter == > player->m_hConstraintEntity.Get()->GetAbsOrigin() ); > else > Assert( move->m_vecConstraintCenter == > player->m_vecConstraintCenter ); > Assert( move->m_flConstraintRadius == player->m_flConstraintRadius ); > Assert( move->m_flConstraintWidth == player->m_flConstraintWidth ); > Assert( move->m_flConstraintSpeedFactor == > player->m_flConstraintSpeedFactor ); > Assert( move->m_bConstraintPastRadius == > player->m_bConstraintPastRadius ); > } > On Mon, Nov 7, 2011 at 4:17 PM, Psy_Commando <psycomma...@gmail.com> wrote: > Thanks, but I was pretty much expecting that the viewangles were affected > to the player's entity somewhere. I'm not sure where to look though. > > I noticed that setting third person platformer to 1 stops the problem, > until you set it back to 0. > > > On Mon, Nov 7, 2011 at 5:17 AM, Saul Rennison <saul.renni...@gmail.com>wrote: > >> Looks like your hitboxes are using pitch from m_angViewAngles, or that >> you have a SetAbsAngles(m_angViewAngles) somewhere. >> >> >> Kind regards, >> *Saul Rennison* >> >> >> On 7 November 2011 02:06, Psy_Commando <psycomma...@gmail.com> wrote: >> >>> Hello, I've been looking around for info on why it does this : >>> http://www.youtube.com/watch?v=yP3ZGKfCehQ >>> >>> Basically the hitboxes are moving with the camera on the y axis and the >>> hitboxes get out of sync when I strafe. >>> I use a modified Alien Swarm player (not the marine npc), with the hl2mp >>> animstates. >>> >>> Anybody, has an idea where I should look, or how to fix this ? >>> >>> _______________________________________________ >>> 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