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 <[email protected]> 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 <[email protected]>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 <[email protected]> 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