DragonNest/Server/DNGameServer/MAScanner.h

40 lines
1 KiB
C
Raw Normal View History

2024-12-19 09:48:26 +08:00
#pragma once
#include "MAScannerFilter.h"
class MAScanner : public CSingleton<MAScanner>
{
public:
MAScanner();
~MAScanner();
enum eType
{
OpponentTeamScan = 0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ĵ(NPC <20><><EFBFBD><EFBFBD>)
MonsterSkillSameTeam, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ĵ
MonsterSkillSameTeamExpectMe, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ĵ
MonsterSkillOpponentTeam, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ĵ
Max,
};
void Scan( MAScanner::eType Type, DnActorHandle hActor, float fMinRange, float fMaxRange, DNVector(DnActorHandle)& vOutputActor );
private:
void _CreateFilter();
void _CreateScanner();
void _CreateOpponentTeamScanner();
void _CreateMonsterSkillSameTeamScanner();
void _CreateMonsterSkillSameTeamExpectMeScanner();
void _CreateMonsterSkillOpponentTeamScanner();
IMAScanFilter* _GetFilter( IMAScanFilter::eFilterType Type );
std::vector<IMAScanFilter*> m_vFilterRepository;
std::vector<IMAScanFilter*> m_vScanner[MAScanner::eType::Max];
};
#define GetMAScanner() MAScanner::GetInstance()