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

49 lines
1.6 KiB
C++

//------------------------------------------------------------------------------
// SkillStateBloodRain.cpp
// (C) 2005 Webzen Sunstudio
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "statebase.h"
#include "SkillState.h"
#include "SkillStateBlazeArrow.h"
#include "Character.h"
#include "ProjectileManagerEx.h"
#include "Camera.h"
#include "Hero.h"
BOOL SkillStateBlazeArrow::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 )
{
cProjectileUnit* pProjectile = new cProjectileUnit();
pProjectile->SetArrowStartPosition( pCharacter->GetWeaponBonePos(0) );
pProjectile->SetArrowTargetObjectKey( pTarget->GetObjectKey(), TRUE );
pProjectile->SetLifeTime( 166 ); // ÀÏ´Ü ´ëÃæ
pProjectile->SetHitData( pCharacter->GetObjectKey(), pCharacter->GetCurrentAttackSerial(), 0, FALSE, 0, TRUE );
pProjectile->CreateEffect( StrToWzID("E084"), pCharacter->GetObjectKey(), pTarget->GetObjectKey() );
pProjectile->SetUnitCode( eProjectile_SRC_ARROW );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
// Ä«¸Þ¶ó Èçµé±â
if( pCharacter->GetObjectKey()==g_pHero->GetObjectKey())
{
g_Camera.SetVibeType(Camera::VIBE_TYPE_HORISONTAL);
g_Camera.StartVibration(10,0.05f);
}
return FALSE;
}
return TRUE;
}