DragonNest/Server/DNGameServer/DnNLPAAcademic.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

60 lines
No EOL
1.7 KiB
C++

#include "StdAfx.h"
#if defined(PRE_ADD_ACADEMIC)
#include "DnNLPAAcademic.h"
#include "DnWeapon.h"
TDnPlayerAcademic< CDnPlayerActor >::RotateBoneStruct TDnPlayerAcademic< CDnPlayerActor >::s_RotateBoneDefine[] = {
{ "Bip01 Spine", -1, 0.3f },
{ "Bip01 Spine1", -1, 0.3f },
{ "Bip01 Neck", -1, 0.4f },
NULL,
};
CDnNLPAAcademic::CDnNLPAAcademic( CMultiRoom *pRoom, int nClassID )
: TDnPlayerAcademic< CDnPlayerActor >( pRoom, nClassID )
{
m_fPitchDelta = 0.f;
m_fTargetPitchAngle = 0.f;
m_fCurrentPitchAngle = 0.f;
}
CDnNLPAAcademic::~CDnNLPAAcademic()
{
}
void CDnNLPAAcademic::Process( LOCAL_TIME LocalTime, float fDelta )
{
TDnPlayerAcademic< CDnPlayerActor >::Process( LocalTime, fDelta );
if( strcmp( GetCurrentAction(), "Stand" ) == NULL && !m_bShootMode)
{
if( strstr( m_szCustomAction.c_str(), "Shoot" ) ) {
float fFrame = ( ( CDnActionBase::m_LocalTime - m_CustomActionTime ) / 1000.f ) * CDnActionBase::m_fFPS;
CmdStop( "Shoot_Stand", 0, 8.f, fFrame );
ResetCustomAction();
}
}
if( m_fPitchDelta > 0.f ) {
m_fPitchDelta -= fDelta;
if( m_fPitchDelta < 0.f ) m_fPitchDelta = 0.f;
m_fPitchAngle = m_fTargetPitchAngle + ( ( m_fCurrentPitchAngle - m_fTargetPitchAngle ) * ( 1.f / 0.2f * m_fPitchDelta ) );
}
}
void CDnNLPAAcademic::OnDispatchMessage( CDNUserSession *pSession, DWORD dwActorProtocol, BYTE *pPacket )
{
switch( dwActorProtocol ) {
case eActor::CS_PLAYERPITCH:
{
CMemoryStream Stream( pPacket, 256 );
m_fCurrentPitchAngle = m_fPitchAngle;
Stream.Read( &m_fTargetPitchAngle, sizeof(float) );
m_fPitchDelta = 0.2f;
}
return;
}
TDnPlayerAcademic< CDnPlayerActor >::OnDispatchMessage( pSession, dwActorProtocol, pPacket );
}
#endif // #if defined(PRE_ADD_ACADEMIC)