#pragma once #include #include #include struct PKOptionInfo { enum { ignore_BoundaryPart = 0x01, ignore_NomalPart = 0x02, ignore_FreePart = 0x04, ignore_Domination = 0x08, //_NA001385_20090924_DOMINATION_BASE ignore_SafetyPart = 0x10, //_NA001415_091123_CHANGE_MOB_AI_IN_SAFETY_AREA_ }; //__NA_0_POSSESSION_ITEM_DROP enum ePoessessionDropOption { ENUM_POSSESSION_DROP_NO = 0, //±Í¼Ó ¾ÆÀÌÅÛ µå¶ø ¾ÊÇÔ ENUM_POSSESSION_DROP_ORIGINAL = 1, //±Í¼Ó ¾ÆÀÌÅÛ ¿øÇü ±×´ë·Î µå¶ø ENUM_POSSESSION_DROP_DESTROY = 2, //±Í¼Ó ¾ÆÀÌÅÛ ÆÄ±«Çؼ­ µå¶ø ENUM_DROP_MAX, }; LEVELTYPE m_PKAllowableLV; // PK °¡´É ·¹º§ LEVELTYPE m_PKProtectLV; // PK º¸È£ ·¹º§ int m_BadFriendDropRatio; // ³ª»ÛÄ£±¸(¸®º¥Áö) µå¶ø·ü int m_PreChaoDropRatio; // ÇÁ¸®Ä«¿À µå¶ø·ü int m_ChaoDropRatio; // Ä«¿À µå¶ø·ü int m_EquipDropRatio; // Àåºñ µå¶ø·ü(Àåºñ/Àκ¥ ¼±ÅÃ) DWORD m_PreChaoTime; // ÇÁ¸®Ä«¿À À¯Áö½Ã°£(ÃÊ´ÜÀ§) DWORD m_ChaoTime; // Ä«¿À À¯Áö½Ã°£ DWORD m_AddChaoTime; // Ä«¿À Ãß°¡½Ã°£ DWORD m_BoradoriAttackTime; // ºÎÁ¤°ø°ÝÀÚ º¸¶óµ¹ÀÌ Àû¿ë½Ã°£ DWORD m_BoradoriNormalTime; // Á¤´ç°ø°ÝÀÚ º¸¶óµ¹ÀÌ Àû¿ë½Ã°£ BYTE m_IgnorePKTile; WORD m_wEND_ROW_KEY; // ³¡À» Ç¥½ÃÇÏ´Â ÆÄ¶ó¹ÌÅÍ ePoessessionDropOption m_ePossessionDropOption; }; class PKScriptParser : public util::Singleton, public IParser { public: PKScriptParser(); ~PKScriptParser(); VOID Reload(); virtual VOID Release(); inline PKOptionInfo& GetPKOptionInfo() { return m_PKOptionInfo; } public: BOOL LoadScript( eSCRIPT_CODE ScriptCode, BOOL bReload ); private: BOOL _Load( BOOL bReload ); private: BOOL CheckValidity(); VOID Unload(); PKOptionInfo m_PKOptionInfo; TCHAR m_pszFileName[MAX_PATH]; };