//------------------------------------------------------------------------------ // StateRevive.cpp // (C) 2005 Webzen Sunstudio //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "statebase.h" #include "StateRevive.h" #include "character.h" #include "HeroActionInput.h" #include "InterfaceManager.h" #include "npc.h" #include "Monster.h" #include "AppearanceManager.h" //------------------------------------------------------------------------------ /** */ StateRevive::StateRevive(void) { } //------------------------------------------------------------------------------ /** */ StateRevive::~StateRevive(void) { } //------------------------------------------------------------------------------ /** */ BOOL StateRevive::CanTransite(Object* pOwner, DWORD CurTime, StateBase* pToTransiteState) { switch(pToTransiteState->GetStateKind()) { case 0: break; } return TRUE; } //------------------------------------------------------------------------------ /** */ STATECHANGE::TYPE StateRevive::OnStart(Object* pOwner, DWORD CurTime) { Character* pChr = (Character*)pOwner; if( pChr->GetTransformData().GetAppearanceKind() == APPEARANCEINFO::PLAYERTRANSFORM ) { if (pChr->IsKindOfObject(PLAYER_OBJECT)) { Player* pPlayer = (Player*)pChr; pPlayer->ForceUnTransForm(); //WzID animationID = pPlayer->GetCurrentDeathAnimation(); //pPlayer->SetAnimation( animationID, FALSE ); //pPlayer->GetBasePart()->SetFrame( 1000.0f ); // ¸¶Áö¸· ÇÁ·¹ÀÓÀ¸·Î ¼³Á¤ if (pChr == (Character *)g_pHero) { g_HeroInput.ClearTransFromQueue(); } } } WzID AnimID = pChr->GetCurrentReviveAnimation(); pChr->SetAnimation(AnimID,FALSE); return STATECHANGE::SUCCESS; } //------------------------------------------------------------------------------ /** */ STATEPROCESS::TYPE StateRevive::OnProcess(Object* pOwner, DWORD CurTime,DWORD dwTick) { Character* pChr = (Character*)pOwner; // ¿¡´Ï¸ÞÀÌ¼Ç ¾÷µ¥ÀÌÆ® pChr->ProcessInterpolation(dwTick,0.9999f); // ¾Ö´Ï´ÙÇßÀ¸¸é ³¡ if( 100.0f == pChr->ProcessAnimation( dwTick ) ) { return STATEPROCESS::END; } // ´ëºÎºÐÀÇ State¿¡¼­ °øÅëÀûÀ¸·Î ó¸®ÇÏ´Â »óź¯È­¸¦ ó¸®ÇÑ´Ù. if (pChr->CommonStateProcess()) { return STATEPROCESS::SUSPEND; } // ´ÙÀ½ µ¿ÀÛÀÌ ÀÖÀ¸¸é ¹Ù·Î ¼öÇàÇØÁÖ¼¼¿ä~ if (pChr->GetActionQueueCount()) { pChr->ProcessNextAction(); return STATEPROCESS::SUSPEND; } return STATEPROCESS::SUSPEND; } //------------------------------------------------------------------------------ /** */ STATECHANGE::TYPE StateRevive::OnEnd(Object* pOwner, DWORD CurTime) { Character* pChr = (Character*)pOwner; return STATECHANGE::SUCCESS; }