DragonNest/Server/ServerCommon/DNNpc.h
2024-12-19 09:48:26 +08:00

35 lines
761 B
C++

#pragma once
#include "DNTalk.h"
class CDNUserBase;
class CDnNpc : public CDNTalk
{
public:
enum NpcTypeEnum {
ActorNpc,
PropNpc,
};
protected:
// first - ´ëÈ­ÆÄÀϳ×ÀÓ, second
typedef std::map<std::wstring, CDNTalk*> TALK_MAP;
typedef TALK_MAP::iterator TALK_MAP_IT;
TALK_MAP m_TalkMap;
TNpcData m_NpcData;
NpcTypeEnum m_NpcType;
public:
CDnNpc();
virtual ~CDnNpc();
virtual bool Create(TNpcData* pNpcData);
virtual TNpcData* GetNpcData() { return &m_NpcData; }
virtual bool Talk(CDNUserBase* pUserBase, UINT nNpcUniqueID, IN std::wstring& wszIndex, IN std::wstring& wszTarget) { DN_RETURN(false); }
bool HasQuest(int nQuestIdx);
int GetNpcClassID() { return m_NpcData.nNpcID; }
NpcTypeEnum GetNpcType() { return m_NpcType; }
};