Files
Sun1602/Client/GameClient/State/SkillStateSaintAid.cpp
T
2022-10-26 12:25:11 +08:00

65 lines
2.3 KiB
C++

//------------------------------------------------------------------------------
// SkillStateBloodRain.cpp
// (C) 2005 Webzen Sunstudio
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "StateBase.h"
#include "SkillState.h"
#include "SkillStateSaintAid.h"
#include "Character.h"
#include "ProjectileManagerEx.h"
#include "SkillInfoParser.h"
BOOL SkillStateSaintAid::OnProcessCustemEvent( int nEventIndex, Object* pOwner, DWORD CurTime,DWORD dwTick )
{
if( nEventIndex == 1 )
{
Character* pCharacter = (Character*)pOwner;
Character* pTarget = (Character *)pCharacter->GetTargetObject();
if( pCharacter != NULL && pTarget != NULL )
{
BASE_SKILLINFO* pInfo = GetSkillInfo();
float range = ((float)pInfo->m_wSkillRange / 10.0f);
WzVector wzVec1 = pTarget->GetVisiblePos() - pCharacter->GetVisiblePos();
float fLength = VectorLength(&wzVec1);
DWORD MoveTime = max(100, (DWORD)(1000.0f * (float)(fLength/range)) );
{ // ¹ß»çü
cProjectileUnit* pProjectile = new cProjectileUnit();
pProjectile->SetArrowStartPosition( pCharacter->GetWeaponBonePos(0) );
pProjectile->SetArrowTargetObjectKey( pTarget->GetObjectKey(), TRUE );
pProjectile->SetLifeTime( MoveTime );
pProjectile->CreateEffect( StrToWzID("K755"), pCharacter->GetObjectKey(), pTarget->GetObjectKey() );
//pProjectile->SetHitData( pCharacter->GetObjectKey(), 0, StrToWzID("K756"), FALSE, 0, FALSE );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
{ // Çǰݽà ÀÌÆåÆ®
cProjectileChaseTarget* pProjectile = new cProjectileChaseTarget();
pProjectile->SetTargetObjectKey( pTarget->GetObjectKey(), TRUE );
pProjectile->SetLifeTime( MoveTime + 2000 );
pProjectile->SetActiveDelayTime( MoveTime );
pProjectile->CreateEffect( StrToWzID("K756"), pCharacter->GetObjectKey(), pTarget->GetObjectKey() );
//pProjectile->SetHitData( pCharacter->GetObjectKey(), 0, StrToWzID("K756"), FALSE, 0, FALSE );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
}
}
return TRUE;
}