Files
2022-10-26 12:25:11 +08:00

68 lines
2.4 KiB
C++

//------------------------------------------------------------------------------
// SkillStateFireSpear.cpp
// (C) 2005 Webzen Sunstudio
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "statebase.h"
#include "SkillState.h"
#include "SkillStateFireSpear.h"
#include "ProjectileManagerEx.h"
#include "Character.h"
BOOL SkillStateFireSpear::OnProcessCustemEvent( int nEventIndex, Object* pOwner, DWORD CurTime,DWORD dwTick )
{
if( nEventIndex == 1 )
{
ReleaseCastingEffect();
Character* pCharacter = (Character*)pOwner;
WzVector StartPosition = pCharacter->GetCurrentAction()->SKILL.vTargePos + pCharacter->GetDirection() * -5.2f;
StartPosition.z +=10.0f;
WzVector TargetPosition = pCharacter->GetCurrentAction()->SKILL.vTargePos;
TargetPosition.z -= 0.5f;
{
cProjectileUnit* pProjectile = new cProjectileUnit();
pProjectile->SetArrowStartPosition( StartPosition );
pProjectile->SetArrowTargetPosition( TargetPosition );
pProjectile->SetLifeTime( 333 );
pProjectile->SetRemainTime( 1500 );
pProjectile->SetEffectFadeOut( TRUE );
pProjectile->CreateEffect( StrToWzID("E057"), pCharacter->GetObjectKey(), 0 );
pProjectile->SetHitData( pCharacter->GetObjectKey(), pCharacter->GetCurrentAttackSerial(), 0, TRUE, 333, TRUE );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
{
cProjectileChaseTarget* pProjectile = new cProjectileChaseTarget();
pProjectile->SetTargetPosition( pCharacter->GetCurrentAction()->SKILL.vTargePos );
pProjectile->SetLifeTime( 3000 );
pProjectile->SetActiveDelayTime( 350 );
pProjectile->CreateEffect( StrToWzID("A012"), pCharacter->GetObjectKey(), 0 );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
{
cProjectileChaseTarget* pProjectile = new cProjectileChaseTarget();
pProjectile->SetTargetPosition( pCharacter->GetCurrentAction()->SKILL.vTargePos );
pProjectile->SetLifeTime( 200 );
pProjectile->SetActiveDelayTime( 333 );
pProjectile->CreateEffect( StrToWzID("F021"), pCharacter->GetObjectKey(), 0 );
g_ProjectileManagerEx.InsertProjectile( pProjectile );
}
return FALSE;
}
return TRUE;
}