DragonNest/GameCommon/DnForceAggroTargetBlow.h
2024-12-19 09:48:26 +08:00

44 lines
1.2 KiB
C++

#pragma once
#include "dnblow.h"
class CDnForceAggroTargetBlow : public CDnBlow, public TBoostMemoryPool< CDnForceAggroTargetBlow >
{
private:
public:
CDnForceAggroTargetBlow( DnActorHandle hActor, const char* szValue );
virtual ~CDnForceAggroTargetBlow(void);
virtual void OnBegin( LOCAL_TIME LocalTime, float fDelta );
virtual void Process( LOCAL_TIME LocalTime, float fDelta );
virtual void OnEnd( LOCAL_TIME LocalTime, float fDelta );
#ifdef _GAMESERVER
protected:
void ForceAggroTarget();
void FindAggroTargetWhenProcessSkill();
DnActorHandle FindRandomAggroTarget();
#endif
protected:
#ifdef _GAMESERVER
DnActorHandle m_hTargetActor;
LOCAL_TIME m_tLastRefreshTime;
LOCAL_TIME m_tLastFindTargetTime;
bool m_bFindRandomAggroTarget;
bool m_bFindPlayerActorOnly;
float m_fForceIncreaseAggroValue;
int m_nServerGraphicBlowID;
int m_nTargetEffectIndex;
#endif
#if defined(PRE_ADD_PREFIX_SYSTE_RENEW)
public:
static void AddStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue);
static void RemoveStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue);
#endif // PRE_ADD_PREFIX_SYSTE_RENEW
};