DragonNest/Server/DNGameServer/DnNLPAAssassin.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"
#ifdef PRE_ADD_ASSASSIN
#include "DnNLPAAssassin.h"
#include "DnWeapon.h"
TDnPlayerAssassin< CDnPlayerActor >::RotateBoneStruct TDnPlayerAssassin< CDnPlayerActor >::s_RotateBoneDefine[] = {
{ "Bip01 Spine", -1, 0.3f },
{ "Bip01 Spine1", -1, 0.3f },
{ "Bip01 Neck", -1, 0.4f },
NULL,
};
CDnNLPAAssassin::CDnNLPAAssassin( CMultiRoom *pRoom, int nClassID )
: TDnPlayerAssassin< CDnPlayerActor >( pRoom, nClassID )
{
m_fPitchDelta = 0.f;
m_fTargetPitchAngle = 0.f;
m_fCurrentPitchAngle = 0.f;
}
CDnNLPAAssassin::~CDnNLPAAssassin()
{
}
void CDnNLPAAssassin::Process( LOCAL_TIME LocalTime, float fDelta )
{
TDnPlayerAssassin< 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 CDnNLPAAssassin::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;
}
TDnPlayerAssassin< CDnPlayerActor >::OnDispatchMessage( pSession, dwActorProtocol, pPacket );
}
#endif // #ifdef PRE_ADD_ASSASSIN