#include "StdAfx.h" #include "./MasterScriptParserManager.h" #include "MasterServerEx.h" #include "AbusingOptionParser.h" #include #include BOOL ICompressConverter::SolarLoad( eSCRIPT_CODE ScriptCode, BYTE* pSTREAM, DWORD dwSize, BOOL bBigData ) { const DWORD ERR_CANT_FIND_SCRIPT = 10; const DWORD ERR_NOT_MATCHED_SIZE = 20; const DWORD ERR_UNCOMPRESSED = 30; const DWORD ERR_SCRIPT_PROCESS = 40; typedef CompressStreamIO::STREAM_INFO_NODE STREAM_INFO_NODE; FlowControl flow; FLOWCONTROL_START() { // start LOGIC_BLOCK SCRIPT_COMPRESS_INFO_TABLE_IT itFind = m_CompressInfos.find(ScriptCode); if(itFind == m_CompressInfos.end()) { SetFailFc(!"Find", ERR_CANT_FIND_SCRIPT); break; } const sCOMPRESS_INFO& rINFO = itFind->second; IfFailThenBreak(rINFO.CompressSz == dwSize, ERR_NOT_MATCHED_SIZE); STREAM_INFO_NODE rPlain; { STREAM_INFO_NODE rCompressed; rCompressed.STREAM = pSTREAM; rCompressed.SIZE = dwSize; rPlain.SIZE = rINFO.PlainSz; IfFailThenBreak(CompressStreamIO::Uncompress(rCompressed, rPlain), ERR_UNCOMPRESSED); }; const eSCRIPT_DATA_CMD command = SCRIPT_DATA_CMD::SET | (SCRIPT_DATA_CMD::BUFFERINFO::BUFFER_SIZE | SCRIPT_DATA_CMD::BUFFERINFO::BUFFER); IfFailThenBreak( ScriptDataManager::DataStreamCommand(command, ScriptCode, rPlain.STREAM, rPlain.SIZE), ERR_SCRIPT_PROCESS); return TRUE; } FLOWCONTROL_END; //switch( flow.GetErrorCode() ) //{ //case ERR_CANT_FIND_SCRIPT: case ERR_NOT_MATCHED_SIZE: case ERR_UNCOMPRESSED: // break; //default: // break; //} MessageOut( eCRITICAL_LOG, _T("Can't Convert ScriptStream [%u] %s"), flow.GetErrorCode(), flow.GetErrorString() ); return FALSE; } //SolarAuth¿ë VOID ICompressConverter::Release() { } VOID ICompressConverter::SetCompressInfo( const eSCRIPT_CODE scriptCode, const DWORD compressSz, const DWORD plainSz ) { sCOMPRESS_INFO& rINFO = m_CompressInfos[scriptCode]; rINFO.CompressSz = compressSz; rINFO.PlainSz = plainSz; } VOID IParserInMaster::SetParser( const eSCRIPT_CODE scriptCode, IParser* const pParser ) { sCOMPRESS_INFO& rINFO = m_CompressInfos[scriptCode]; rINFO.IParserPtr = pParser; } BOOL IParserInMaster::SolarLoad( eSCRIPT_CODE scriptCode, BYTE* pSTREAM, DWORD dwSize, BOOL bBigData ) { if( ICompressConverter::SolarLoad( scriptCode, pSTREAM, dwSize, bBigData ) ) { sCOMPRESS_INFO& rINFO = m_CompressInfos[scriptCode]; IParser* const pIParser = rINFO.IParserPtr; if( pIParser ) { const eSCRIPT_DATA_CMD cmd = SCRIPT_DATA_CMD::GET | SCRIPT_DATA_CMD::BUFFERINFO::BUFFER | SCRIPT_DATA_CMD::BUFFERINFO::BUFFER_SIZE; BYTE* pOutStream = NULL; DWORD rOutSize = 0; ScriptDataManager::DataStreamCommand( cmd, scriptCode, pOutStream, rOutSize ); //return IParser::SolarLoad( scriptCode, pOutStream, rOutSize, bBigData ); const CHAR* pFileName = FindFileName( scriptCode ); pIParser->InsertFileName( scriptCode, pFileName ); return pIParser->SolarLoad( scriptCode, pOutStream, rOutSize, bBigData ); } return TRUE; } return FALSE; } //BOOL //IParserInMaster::LoadScript( eSCRIPT_CODE scriptCode, BOOL bReload ) //{ // sCOMPRESS_INFO& rINFO = m_CompressInfos[scriptCode]; // IParser* const pIParser = rINFO.IParserPtr; // if( pIParser ) // return pIParser->LoadScript( scriptCode, bReload ); // return FALSE; //} MasterScriptParserManager::MasterScriptParserManager(void) { } MasterScriptParserManager::~MasterScriptParserManager(void) { } VOID MasterScriptParserManager::InitParserPool( VOID* pPoolOption ) { AbusingOptionParser::Instance()->Init( 0 ); } BOOL MasterScriptParserManager::RegisterParser() { #ifdef __WAVERIX_SOLAR_AUTH_SERVER_IMPLEMENTATION__ #define IPARSER_INTRUDER (&m_CompressConverter) ERROR_PARSER( RegisterScriptData(SCRIPT_ACCESSORYITEMINFO, NULL, IPARSER_INTRUDER ) ); //C_NA_0_20100520_ACSYSTEM_CHANGED ERROR_PARSER(RegisterScriptData(SCRIPT_ACHIEVEMENT_INFO, NULL, IPARSER_INTRUDER)); ERROR_PARSER( RegisterScriptData(SCRIPT_AICOMMONINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_AITYPEINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ARMORITEMINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ARMORTYPEDAMAGEINFO, NULL, IPARSER_INTRUDER ) ); //ERROR_PARSER( RegisterScriptData(SCRIPT_COMPOSITE_NPC, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_DROPRATIOINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ENCHANT, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_EXPVALUEINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_EXTRASTONEOPTIONINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_FATIGUEOPTION, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_FIELD, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_FORMULARATIO, NULL, IPARSER_INTRUDER ) ); #ifdef _NA000000_GM_COMMAND_CHANGE_CONCEPT_ ERROR_PARSER(RegisterScriptData(SCRIPT_GMRIGHTS, NULL, IPARSER_INTRUDER)); #else ERROR_PARSER( RegisterScriptData(SCRIPT_DEVCOMMAND, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_GMCOMMAND, NULL, IPARSER_INTRUDER ) ); #endif ERROR_PARSER( RegisterScriptData(SCRIPT_GROUP, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_INITCHARINFO, NULL, IPARSER_INTRUDER ) ); //ERROR_PARSER( RegisterScriptData(SCRIPT_INITCHARINFOLIST, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMCOMPOSELIST, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMCOMPOSITEINFO, NULL, IPARSER_INTRUDER ) ); //ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMCOMPOSITERESULTINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMCRYSTALIZELIST, NULL, IPARSER_INTRUDER ) ); //ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMDROPINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMTYPEDROPRATIO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ITEMTYPELIST, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_MAPENTERANCEPORTAL, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_MATCHINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_MISSIONREWARDINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_NPCEXTRAINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_NPCINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_PKSCRIPT, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_QUESTINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_RANKOPTIONINFO, NULL, IPARSER_INTRUDER ) ); //ERROR_PARSER( RegisterScriptData(SCRIPT_RAREITEMDROPINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_REGEN, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_REGEN_POS, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_REQUIREFIELDLEVELINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_REWARDINFOLIST, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_SHOPINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_SHOUTRANGE, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_SKILLINFO, NULL, IPARSER_INTRUDER ) ); #ifdef _NA_001699_20110104_SOCKET_OPTION_POINT ERROR_PARSER( RegisterScriptData(SCRIPT_ZARD_OPTION_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ZARD_POINT_INFO, NULL, IPARSER_INTRUDER ) ); #else ERROR_PARSER( RegisterScriptData(SCRIPT_SOCKETOPTIONINFO, NULL, IPARSER_INTRUDER ) ); #endif // _NA_001699_20110104_SOCKET_OPTION_POINT ERROR_PARSER( RegisterScriptData(SCRIPT_STATEINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_STYLEINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_STYLEQUICKREGISTINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_SUNEVENTINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_VSHUNTINGREWARDINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_WASTEITEMINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_WEAPONITEMINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_WORLD, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_FIELDWMO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_FIELDWUT, NULL, IPARSER_INTRUDER ) ); #ifdef _NA_008012_20150130_RANKING_SYSTEM ERROR_PARSER( RegisterScriptData(SCRIPT_MISSIONRANKINGREWARD, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_MISSIONRANKINGLVAREA, NULL, IPARSER_INTRUDER ) ); #endif // _NA_008012_20150130_RANKING_SYSTEM ERROR_PARSER( RegisterScriptData(SCRIPT_CHARGEITEMINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_MONSTERSUMMON, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_MAP_PARTIAL_LOADING, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_FILTER, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_FILTERNAME, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_WORLD_SUB_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_CURSE_TOWER_TIME, NULL, IPARSER_INTRUDER ) ); #ifdef _NA_008012_20150130_RANKING_SYSTEM ERROR_PARSER( RegisterScriptData( SCRIPT_POINT_RANKING, NULL, IPARSER_INTRUDER ) ); #endif // _NA_008012_20150130_RANKING_SYSTEM #ifdef __NA_001027_20080423_RANDOM_REWARD_EVENT_ ERROR_PARSER( RegisterScriptData( SCRIPT_EXCHANGE_REWARD_INFO, NULL, IPARSER_INTRUDER ) ); #endif ERROR_PARSER( RegisterScriptData( SCRIPT_GUILD_RANK_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_SERVER_OPTION, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_GAME_OPTION, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_SETITEM_OPTION_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_GUILD_RIGHT_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_GAMBLE_OPTION, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_LIMITED_ITEM_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_FATE_ITEM_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_EVENTREWARD_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_MAX_GUILD_MEMBER_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_SSQINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_SSQPATTERN, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_ABUSING_OPTION_TXT, "data\\AbusingOption.txt", IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_PET_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_ETHER_BULLET_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_LOTTO_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData( SCRIPT_NEW_CHARACTER_ITEM_INFO, NULL, IPARSER_INTRUDER ) ); #ifdef __NA_001062_20080623_STRENGTH_PENALTY ERROR_PARSER( RegisterScriptData( SCRIPT_STRENGTH_PENALTY, NULL, IPARSER_INTRUDER ) ); #endif ERROR_PARSER( RegisterScriptData(SCRIPT_COLLECT, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_GROUPINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_RIDING_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_DOMINATIONINFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_DOMINATION_EVENT_INFO, NULL, IPARSER_INTRUDER ) ); #ifdef _NA_1419_20100121_ACCUMULATE_POINT ERROR_PARSER( RegisterScriptData(SCRIPT_ACCUMULATE_POINT, NULL, IPARSER_INTRUDER ) ); #endif #ifdef _NA002217_100728_EP2_PERK_SYSTEM_ ERROR_PARSER(RegisterScriptData(SCRIPT_PERKINFO, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA_002253_20100811_CUBE_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_CUBE_COMPOSE, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_CUBE_DECOMPOSE, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA_0_20100727_SOCKET_SYSTEM_PARSER ERROR_PARSER( RegisterScriptData(SCRIPT_SOCKET_ITEM_RATIO_INFO, NULL, IPARSER_INTRUDER ) ); ERROR_PARSER( RegisterScriptData(SCRIPT_ZARD_COMPOSE_INFO, NULL, IPARSER_INTRUDER ) ); #endif #ifdef _NA_0_20100901_SKILLTREE_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_SKILL_INVEN_STORE, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA_0_20101015_SOLAR_SHOP_TEMP_REFACTORING ERROR_PARSER(RegisterScriptData(SCRIPT_CASHCATEGORY, NULL, IPARSER_INTRUDER)); #endif #ifdef _USE_MAX_CHAR_LIST_PARSER ERROR_PARSER(RegisterScriptData(SCRIPT_MAX_CHAR_LIST, NULL, IPARSER_INTRUDER)); #endif //_NA_20110630_BATTLE_ZONE_RENEWAL ERROR_PARSER(RegisterScriptData(SCRIPT_BATTLEZONE_TREE, NULL, IPARSER_INTRUDER)); #ifdef _NA_003027_20111013_HONOR_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_FAME_LIST, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_REPUTE_LIST, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_TITLE_LIST, NULL, IPARSER_INTRUDER)); #endif //_NA_002935_20110704_ITEM_SCORE ERROR_PARSER(RegisterScriptData(SCRIPT_ITEM_SCORE_COMMON, NULL, IPARSER_INTRUDER)); #ifdef _NA_003649_20111115_BATTLE_ZONE_HARDMODE ERROR_PARSER(RegisterScriptData(SCRIPT_NPCREPLACE_INFO, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA_003740_20111122_RANDOM_ITEM ERROR_PARSER(RegisterScriptData(SCRIPT_RANDOM_ITEM_VALUE, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_RANDOM_ITEM_OPTION_TYPE, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_RANDOM_ITEM_INFO, NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_RANDOM_ITEM_KEY, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA004034_20120102_POINT_WALLET_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_CURRENCY_INFO, NULL, IPARSER_INTRUDER)); #endif //_NA004034_20120102_POINT_WALLET_SYSTEM #ifdef _NA_003923_20120130_GUILD_RENEWAL ERROR_PARSER(RegisterScriptData(SCRIPT_GUILDINFO, NULL, IPARSER_INTRUDER)); #endif #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND ERROR_PARSER(RegisterScriptData(SCRIPT_CHAOSZONE_INFO, /*"data\\ChaosZoneInfo.txt"*/ NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_BATTLE_GROUND_INFO, /*"data\\BattleGroundInfo.txt"*/ NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_BATTLE_GROUND_FLAG_INFO, /*"data\\BattleGroundFlagInfo.txt"*/ NULL, IPARSER_INTRUDER)); #endif // _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND ERROR_PARSER(RegisterScriptData(SCRIPT_BATTLE_GROUND_TIME_INFO, /*"data\\BattleGroundTimeInfo.txt"*/ NULL, IPARSER_INTRUDER)); #endif // _NA_008679_20160202_REWORK_BATTLEGROUND #ifdef _NA_007065_20140217_CHAOSZONE_GOLDRUSH ERROR_PARSER(RegisterScriptData(SCRIPT_GOLDRUSH_INFO, /*"data\\GoldRushInfo.txt"*/ NULL, IPARSER_INTRUDER)); ERROR_PARSER(RegisterScriptData(SCRIPT_GOLDRUSH_MONSTERPOINT, /*"data\\GoldRushMonsterPoint.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_007065_20140217_CHAOSZONE_GOLDRUSH #ifdef _NA_007086_20140318_MONSTERBOOK ERROR_PARSER(RegisterScriptData(SCRIPT_MONSTER_BOOK, /*"data\\MonsterBook.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_007086_20140318_MONSTERBOOK #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION ERROR_PARSER(RegisterScriptData(SCRIPT_GUILD_FACILITY_INFO, /*"data\\GuildFacilityInfo.txt"*/ NULL, IPARSER_INTRUDER)); #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION #ifdef _NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_ATTENDANCE, /*"data\\Attendance.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM #ifdef _NA_008012_20150204_SUN_RANKING_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_SUN_RANKING, /*"data\\SunRanking.ini"*/ NULL, IPARSER_INTRUDER ) ); #endif // _NA_008012_20150204_SUN_RANKING_SYSTEM #ifdef _NA_008124_20150313_AWAKENING_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_AWAKENING_INFO, /*"data\\AwakeningInfo.txt"*/ NULL, IPARSER_INTRUDER ) ); #endif // _NA_008124_20150313_AWAKENING_SYSTEM #ifdef _NA_008283_20150511_NOTIFICATIONS_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_NOTIFICATION_INFO, /*"data\\NotificationInfo.txt"*/ NULL, IPARSER_INTRUDER ) ); #endif // _NA_008283_20150511_NOTIFICATIONS_SYSTEM #ifdef _NA_008404_20150712_MINIGAME_SYSTEM ERROR_PARSER(RegisterScriptData(SCRIPT_MINIGAME, /*"data\\MiniGame.ini"*/ NULL, IPARSER_INTRUDER ) ); #endif // _NA_008404_20150712_MINIGAME_SYSTEM #ifdef _NA_008334_20150608_SONNENSCHEIN ERROR_PARSER( RegisterScriptData(SCRIPT_SONNENSCHEIN_REWARDINFO, /*"data\\SonnenScheinReward.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_008334_20150608_SONNENSCHEIN #ifdef _NA_008543_20151027_ONE_DAYS_GUILD_MISSION ERROR_PARSER( RegisterScriptData(SCRIPT_ONEDAYSBUILDMISSION, /*"data\\OneDaysGuildmissionInfo.txt"*/ NULL, IPARSER_INTRUDER)); //_NA_008801_20160429_ADD_GUILDMISSION_TIMEINFO_SCRIPT ERROR_PARSER( RegisterScriptData(SCRIPT_GUILDMISSIONTIME_INFO, /*"data\\GuildMissionTimeInfo.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_008543_20151027_ONE_DAYS_GUILD_MISSION #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND ERROR_PARSER( RegisterScriptData(SCRIPT_BATTLE_GROUND_COSTUME, /*"data\\BattleCostume.txt"*/ NULL, IPARSER_INTRUDER)); ERROR_PARSER( RegisterScriptData(SCRIPT_BATTLE_GROUND_WEAPON, /*"data\\BattleWeapon.txt"*/ NULL, IPARSER_INTRUDER)); #endif //_NA_008679_20160202_REWORK_BATTLEGROUND sSCRIPT_DATA_INFO_NODE pNodeTable[SCRIPT_LIST_SIZE]; if( !GetScriptDataNodeList( pNodeTable, SCRIPT_LIST_SIZE ) ) return FALSE; // Master°¡ Àд ½ºÅ©¸³Æ® ÆÄ¼­ m_CompressConverter.SetParser( SCRIPT_ABUSING_OPTION_TXT, AbusingOptionParser::Instance() ); ScriptDataManager::RegisterDataList( pNodeTable ); ScriptDataManager::RegisterCallbackAllDataLoaded( MasterServerEx::StartDataService ); #else //!__WAVERIX_SOLAR_AUTH_SERVER_IMPLEMENTATION__ ERROR_PARSER( RegisterScriptData( SCRIPT_ABUSING_OPTION_TXT, "data\\AbusingOption.txt", AbusingOptionParser::Instance() ) ); #endif //!__WAVERIX_SOLAR_AUTH_SERVER_IMPLEMENTATION__ return TRUE; } VOID MasterScriptParserManager::DestroyInstanceEx() { AbusingOptionParser::DestroyInstance(); }