//---------------------------------------------------------------------------- /** @desc : ½ºÅ³ ÀÌÆåÆ® ½ºÅ©¸³Æ® @author : ±èÁö¿Ï @remark : */ #pragma once #include #include #include enum eEffect_Type { eEffect_Type_Start, eEffect_Type_End, eEffect_Type_Buff, eEffect_Type_Damage, eEffect_Type_Max, }; struct EffectInfo { tagWZID m_wzidEffectCode; //½ÃÀ۽à ½ºÅ³ ÀÌÆåÆ® ÄÚµå BOOL m_bChase; //ij¸¯Å͸¦ µû¶ó ´Ù´Ò°ÍÀΰ¡ À¯¹« DWORD m_dwLifeTime; //½ÃÀÛ ÀÌÆåÆ® ¶óÀÌÇÁ ŸÀÓ eSKILLEFFECT_POS m_dwPositionType; //½ÃÀÛ ÀÌÆåÆ® Æ÷Áö¼Ç ŸÀÔ WORD m_wBoneIndex; //Æ÷Áö¼Ç ŸÀÔÀÌ º»ÀÏ °æ¿ì ¸¸ »ç¿ë ´ë»óÀÇ º» À妽º BOOL m_bRot; //ȸÀü °ªÀ» Àû¿ë ÇÒ°Í Àΰ¡ }; struct SkillEffectInfo { SLOTCODE m_SkillClassCode; //½ºÅ³ Ŭ·¡½º ÄÚµå char m_szSkillName[MAX_SKILLNAME_LENGTH]; //½ºÅ³ À̸§ BYTE m_byWeaponType; //¿þÆù ŸÀÔ EffectInfo m_EffectInfo[eEffect_Type_Max]; tagWZID m_wzidEffectCode1; tagWZID m_wzidEffectCode2; }; class SkillEffectInfoParser : public Singleton, public IParser { public: SkillEffectInfoParser(); ~SkillEffectInfoParser(); VOID Init(DWORD dwPoolSize); VOID Init(DWORD dwPoolSize, char * pszPackFileName); VOID Release(); virtual BOOL LoadScript(eSCRIPT_CODE ScriptCode, BOOL bReload); SkillEffectInfo* GetSkillEffectInfo(SLOTCODE SkillClassCode); private: BOOL _Load(BOOL bReload); VOID Unload(); util::SolarHashTable *m_pDataTable; };