#pragma once #ifndef SERVER_GUILD_FACILITY_INFO_PARSER_H #define SERVER_GUILD_FACILITY_INFO_PARSER_H #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION #include #include #include "Struct.h" struct FACILITY_OPTION_PASSIVE { DWORD option_type; // g_ITEM_OPTION BYTE option_value_type; // ¼öÄ¡ ŸÀÔ // 1:¼öÄ¡, 2:ºñÀ² int option_value; // Àû¿ë ¼öÄ¡ }; struct FACILITY_OPTION_ACTIVE { CODETYPE active_item_code; // Ȱ¼ºÈ­ ¾ÆÀÌÅÛ ÄÚµå DWORD active_item_count; // Ȱ¼ºÈ­ ¾ÆÀÌÅÛ ÇÊ¿ä °¹¼ö SLOTCODE active_skill_code; // ½ºÅ³ ÄÚµå }; struct FACILITY_INFO { /** ½Ã¼³ **/ std::string facility_name; // ½Ã¼³¸í DWORD facility_index; // À妽º FCODE facility_code; // ½Ã¼³ÄÚµå FLEVEL facility_level; // ½Ã¼³·¹º§ BYTE upgrade_type; // ¾÷±×·¹À̵å ŸÀÔ DWORD upgrade_guild_point; // ¾÷±×·¹À̵å ÇÊ¿ä ±æµåÆ÷ÀÎÆ® CODETYPE upgrade_item_code; // ¾÷±×·¹À̵å ÇÊ¿ä ¾ÆÀÌÅÛ ÄÚµå DWORD upgrade_item_num; // ¾÷±×·¹À̵å ÇÊ¿ä ¾ÆÀÌÅÛ °¹¼ö /** ¿É¼Ç **/ FACILITY_OPTION_PASSIVE passive_option; FACILITY_OPTION_ACTIVE active_option; }; class GuildFacilityInfoParser : public util::Singleton, public IParser { public: typedef std::pair FACILITYTAG; typedef std::map FACILITY_MAP; public: GuildFacilityInfoParser(void){}; ~GuildFacilityInfoParser(void){}; public: /** Parser **/ virtual void Release(){}; virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload); /** ½Ã¼³ Á¤º¸ **/ const FACILITY_INFO* GetGuildFacilityInfo(FCODE facility_code, FLEVEL facility_level); const FACILITY_OPTION_PASSIVE* GetGuildFacilityPassive(FCODE facility_code, FLEVEL facility_level); const FACILITY_OPTION_ACTIVE* GetGuildFacilityActive(FCODE facility_code, FLEVEL facility_level); const FACILITY_MAP& GetGuildFacilityInfoMap() { return facility_map; } private: const bool IsValidFacilityInfo(FACILITY_INFO* info); FACILITY_MAP facility_map; }; #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION #endif // SERVER_GUILD_FACILITY_INFO_PARSER_H