/* ========================================================================== * ÆÄ ÀÏ : StatusScript.h * ¸ñ Àû : µ¥¹ÌÁö °è»ê¿¡ ÇÊ¿äÇÑ ¸®¼Ò½ºÆÄÀÏÀ» Àоî¿Â´Ù. * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2007-01-12 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Status_Common.h" class cParser; class cLexer; class cStatusScript { public: static cStatusScript* mpStatusScript; public: cStatusScript(void); ~cStatusScript(void){}; bool Init(); void Release(); /// ½ºÅ©¸³Æ®¿¡¼­ ½ºÅÝ ±âº»Á¤º¸ ·Îµå bool LoadStateBase(); /// ÇØ½¬¸Ê¿¡ À§Ä¡ÇÑ ½ºÅÝ ±âº»Á¤º¸ ·Îµå sStatusBaseScript* GetStatusBaseInfo( unsigned long idx ); /// ½ºÅ©¸³Æ®¿¡¼­ ½ºÅÝ Áõ°¡¼öÄ¡ ·Îµå bool LoadStateMultipl(); /// ÇØ½¬¸Ê¿¡ À§Ä¡ÇÑ ½ºÅÝ Áõ°¡¼öÄ¡ ·Îµå sStatusMultiplScript* GetStatusMultiplInfo( unsigned long idx ); /// ½ºÅ©¸³Æ®¿¡¼­ ½ºÅÝ È®Àå ±âº»Á¤º¸ ·Îµå bool LoadStatusExtBase(); /// ÇØ½¬¸Ê¿¡ À§Ä¡ÇÑ ½ºÅÝ È®Àå ±âº»Á¤º¸ ·Îµå float GetStatusExtBaseInfo( unsigned long statusExt, unsigned long jobCode ); /// ½ºÅ©¸³Æ®¿¡¼­ ½ºÅÝ È®Àå Áõ°¡¼öÄ¡ ·Îµå bool LoadStatusExtMultipl(); /// ÇØ½¬¸Ê¿¡ À§Ä¡ÇÑ ½ºÅÝ È®Àå Áõ°¡¼öÄ¡ ·Îµå float GetStatusExtMultiplInfo( eEXT_MULTIPL statusExtBase, ePLAYER_STATUS type ); /// ½ºÅ©¸³Æ®¿¡¼­ µ¥¹ÌÁö °è»ê°ø½Ä¿¡ ¼öÄ¡°ª ·Îµå bool LoadDamageCalcNumerical(); /// ÇØ½¬¸Ê¿¡ À§Ä¡ÇÑ µ¥¹ÌÁö °è»ê °ø½Ä ¼öÄ¡°ª ·Îµå float GetDamageCalcNumericalInfo( unsigned long idx ); /// Á÷¾÷ Á¤º¸ ·Îµå bool LoadPlayerJob(); bool LoadPlayerJobInfo( cParser& parser ); bool LoadPlayerJobTree( cParser& parser, unsigned int depth ); void RemovePlayerJobInfo(); /// Á÷¾÷ Á¤º¸ ȹµæ.. tArray* GetParentJob( unsigned long currentJob ); unsigned int GetJobStep( unsigned long jobIdx ); tPointerHashMap* GetJobTree() { return &mJobTree; } protected: float SearchParentStatusExtbaseInfo( unsigned long statusExt, unsigned long jobcode ); private: typedef tPointerHashMap cPointerHashMap; typedef tHashMap cHashMap; typedef tArray cJobIndexArray; /// ½ºÅÝ ±âº»Á¤º¸ // typedef tPointerHashMap cStatusBase; cPointerHashMap* mpStatusBaseMap; /// ½ºÅÝ Á÷¾÷º° Áõ°¡ ¼öÄ¡ // typedef tPointerHashMap cStatusMultipl; cPointerHashMap* mpStatusMultiplMap; /// ½ºÅÝ È®Àå ±âº»Á¤º¸ - statusext·Î °Ë»öÇϸé Á÷¾÷º° ±âº»°ªÀÌ µé¾îÀÖ´Â hashmapÀÌ °Ë»öµÈ´Ù. // typedef tHashMap cJobDefaultMap; // typedef tPointerHashMap cStatusExtJobDefault; cPointerHashMap* mpStatusExtBaseMap; /// ½ºÅÝ È®Àå Á÷¾÷º° Áõ°¡ ¼öÄ¡ // typedef tPointerHashMap cStatusExtMultipl; cPointerHashMap* mpStatusExtMultiplMap; /// µ¥¹ÌÁö °è»ê±â Á¶Àý °ª cHashMap mDamageCalcNumericalMap; /// Á÷¾÷À» key·Î ÇÏ´Â ÀüÁ÷ Á÷¾÷µéÀÇ ¸®½ºÆ®¸¦ ÁØ´Ù. cPointerHashMap mJobTree; }; #define STATUSSCRIPT cStatusScript::mpStatusScript