#ifndef MESSAGE_H #define MESSAGE_H #pragma once #define MAX_QUEST_MESSAGE 1000 #define MAX_GENERAL_MESSAGE 1000 #define MAX_TIP_MESSAGE 1000 #define EXTRA_MESSAGE 1000 #define MESSAGE_TOTAL_MAX (MAX_QUEST_MESSAGE+MAX_GENERAL_MESSAGE+MAX_TIP_MESSAGE+EXTRA_MESSAGE) enum eMESSAGE_TYPE { MESSAGE_TYPE_AREA_NAME = 0, // (0)Áö¿ª¸í MESSAGE_TYPE_NORMAL, // (1)°¡¿îµ¥ ½Ã½ºÅÛ ¸Þ½ÃÁö + äÆÃ⠽ýºÅÛ ¸Þ½ÃÁö MESSAGE_TYPE_NPC, // (2)°¡¿îµ¥ ½Ã½ºÅÛ ¸Þ½ÃÁö + À̱״ϽºÃ¢ MESSAGE_TYPE_TRIGGER, // (3)°¡¿îµ¥ ½Ã½ºÅÛ ¸Þ½ÃÁö + ¾ÆÀÌÅÛ Á¤º¸Ã¢ MESSAGE_TYPE_EVENT, // (4)¹Ì¼Ç ½ÃÀ۽à À̺¥Æ® È­¸é¿ë ¸Þ½ÃÁö MESSAGE_TYPE_NPC_ONLY, // (5)À̱״ϽºÃ¢ MESSAGE_TYPE_TRIGGER_ONLY, // (6)¾ÆÀÌÅÛ Á¤º¸Ã¢ MESSAGE_TYPE_CENTER_MSG_ONLY, // (7)°¡¿îµ¥ ¸Þ¼¼Áö MESSAGE_TYPE_GUILD_MESSAGE, // (8)±æµå¸Þ¼¼Áö // _NA_0_20091118_GAMEROOM_BATTLE_RESULT MESSAGE_TYPE_BATTLE_RESULT, // (9)ÀüÅõ °á°úâ ¶ç¿ì±â MESSAGE_TYPE_OBJECT_BALLOON_MSGBOX, // (10)¿ÀºêÁ§Æ® ¸»Ç³¼± ´ë»ç MESSAGE_TYPE_OBJECT_BALLOON_MSGBOX_WITH_SYSTEM, // (11)¿ÀºêÁ§Æ® ¸»Ç³¼± ´ë»ç ¹× ½Ã½ºÅÛ¸Þ½ÃÁö MESSAGE_TYPE_MAX, }; typedef struct _MESSAGE_INFO { size_t MessageLen; TCHAR* pszMessage; int iTime; // À¯Áö½Ã°£ BYTE byType; // ŸÀÔ DWORD dwImgCode; // À̹ÌÁö ÄÚµå DWORD dwNCode; // À̸§ÄÚµå DWORD dwDCode; // ¼³¸íÄÚµå } MESSAGE_INFO; typedef stdext::hash_map MESSAGE_INFO_HASH; typedef MESSAGE_INFO_HASH::iterator MESSAGE_INFO_ITR; typedef std::pair MESSAGE_INFO_PAIR; #include #include #include class MessageInfoParser : public util::Singleton, public IParser { public: MessageInfoParser(void); virtual ~MessageInfoParser(void); public: void Init(DWORD dwMaxSize); //VOID Init(DWORD dwMaxSize, char * pszPackFileName); virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload); void Release(); MESSAGE_INFO* GetMessage(DWORD dwID); bool SetMessage(DWORD message_id, TCHAR *string); protected: void UnLoad(); private: DWORD m_dwMaxSize; MESSAGE_INFO_HASH m_MessageHashmap; util::CMemoryPoolFactory *m_pMessagePool; }; #endif // MESSAGE_H