#pragma once #include "DNTableFile.h" #include "DNDataManagerBase.h" #include "DnItemCompounder.h" #include "DnSkillTreeSystem.h" #include "DnCostumeMixDataMgr.h" #ifdef PRE_ADD_COSRANDMIX #include "DnCostumeRandomMixDataMgr.h" #endif class QuestCondition; class CDNGameDataManager : public CDNDataManagerBase { public: typedef map TMapCollectionBook; // first: CollectionID #if !defined( _FINAL_BUILD ) && !defined (__COVERITY__) FRIEND_TEST( Trigger_unittest, PerformanceTest ); #endif // #if !defined( _FINAL_BUILD ) && !defined (__COVERITY__) #if defined(PRE_FIX_NEXTSKILLINFO) protected: static SKILL_LEVEL_INFO ms_SkillLevelTableInfo; SKILL_LEVEL_TABLEID_LIST m_SkillLevelTableIDList[2]; void InitSkillLevelTableIDList(); void AddSkillLevelTableID(int nSkillID, int nSkillLevel, int nSkillLevelTableID, int nApplyType); //rlkt_pvp_skills void AddToPvpSkillList(int iSkillLevelTableID, int nSkillID, int iSkillLevel, float fNewDamageMultiplier); #endif // PRE_FIX_NEXTSKILLINFO private: struct TUpdateLocalTime { DWORD dwUpdateTick; tm pCurLocalTime; }; public: struct TPVPSkills { int nSkillID; int nSkillLevel; float fPDamage; }; protected: std::map m_pPvpSkills; private: TUpdateLocalTime m_UpdateLocalTime[30]; typedef map TMapInfoMap; TMapInfoMap m_pMapInfo; typedef map TMapItemData; TMapItemData m_pItemData; typedef map TMapActorData; TMapActorData m_pActorData; typedef map TMapNpcData; TMapNpcData m_pNpcData; typedef map TMapWeaponData; TMapWeaponData m_pWeaponData; typedef map TMapPartData; TMapPartData m_pPartData; typedef map TMapPotentialJewelData; TMapPotentialJewelData m_pPotentialJewelData; typedef map TMapEnchantJewelData; TMapEnchantJewelData m_pEnchantJewelData; TALK_MAP m_TalkMap; TALK_ANSWER_MAP m_TalkAnswerMap; // NPC ´ë»ç º° ¹®´ÜÀÀ´ä(talk_answer / link_index) ½ºÆ®¸µÁýÇÕ(´ÜÁö Ŭ¶óÀÌ¾ðÆ® ´ë»ç¿äû ¹«°á¼º üũ ¿À·ù¸Þ½ÃÁö¸¦ ¸·´Â ¿ëµµ) typedef map TMapShopData; TMapShopData m_pShopData; typedef map TMapSkillShopData; TMapSkillShopData m_pSkillShop; typedef map TMapSkillData; TMapSkillData m_pSkillData; typedef map TMapSkillTreeData; TMapSkillTreeData m_pSkillTreeData; vector m_vlpSkillTreeData; typedef map TMapCoinCount; // first: Level TMapCoinCount m_pMapCoinCount; typedef map TXMLFileMap; TXMLFileMap m_XMLFileMap; typedef map TXMLIndexMap; TXMLIndexMap m_XMLIndexMap; typedef map TMapQuestReward; typedef TMapQuestReward::iterator TMapQuestRewardIt; TMapQuestReward m_QuestRewardMap; typedef vector TVecEventTable; TVecEventTable m_EventTable; //µðºñº£À̽º À̺¥Æ®¿Í´Â °ü°è¾øÀ½ typedef map, TQuestLevelCapReward> TMapQuestLevelCapReward; TMapQuestLevelCapReward m_QuestLevelCapRewards; typedef map > TMapQuestItemData; typedef TMapQuestItemData::iterator TMapQuestItemDataIt; TMapQuestItemData m_QuestItemData; typedef map TMapQuestConditionData; typedef TMapQuestConditionData::iterator TMapQuestConditionDataIt; TMapQuestConditionData m_QuestConditionData; typedef map TMapEnchantData; typedef map TMapEnchantLevelData; TMapEnchantData m_pEnchantTable; #ifdef PRE_FIX_MEMOPT_ENCHANT typedef map TMapEnchantNeedItemData; TMapEnchantNeedItemData m_EnchantNeedItemTable; #endif typedef map TMapPotentialData; TMapPotentialData m_pPotentialTable; typedef map TMapItemDropData; TMapItemDropData m_pItemDropTable; #if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD) typedef map TMapBonusDropTable; TMapBonusDropTable m_MapBonusDropTable; #endif // #if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD) #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD) typedef map TMapItemDropEnchantTable; TMapItemDropEnchantTable m_MapItemDropEnchantTable; #endif typedef map TMapAppellationData; TMapAppellationData m_MapAppellationData; std::vector m_pMissionTable; typedef map TMapDailyMissionData; TMapDailyMissionData m_pDailyMissionTable; std::vector m_pWeekendEventMissionTable; std::vector m_pGuildWarMissionTable; std::vector m_pGuildWarRewardData; std::vector m_pGuildCommonMissionTable; std::vector m_pWeekendRepeatMissionTable; #if defined(PRE_ADD_CHAT_MISSION) std::vector m_pTypingTable; #endif TMapCollectionBook m_MapCollectionBookData; typedef vector TVecTaxData; TVecTaxData m_pTaxData; typedef vector TVecSealCountData; TVecSealCountData m_pSealCountData; typedef map TMapPCBangData; TMapPCBangData m_pPCBangData; typedef vector> TVecVillagePermitLevel; TVecVillagePermitLevel m_vVillagePermitLevel; typedef vector> TVecPermitPartyCount; TVecPermitPartyCount m_vPermitPartyCount; typedef vector TVecPromotion; TVecPromotion m_vLvPromotion; // PvP typedef map TPvPMapTableData; TPvPMapTableData m_PvPMapTable; typedef map TPvPGameModeTableData; TPvPGameModeTableData m_PvPGameModeTable; typedef map TPvPGameStartConditionData; TPvPGameStartConditionData m_PvPGameStartConditionTable; typedef map TPvPRankTableData; TPvPRankTableData m_PvPRankTable; #ifdef PRE_MOD_PVPRANK UINT m_nThresholdPvPExpValue; #endif //#ifdef PRE_MOD_PVPRANK // Darklair typedef map TMapDLMapData; TMapDLMapData m_pDLMapTable; typedef map TMapDLClearData; TMapDLClearData m_pDLClearTable; typedef map TMapItemOptionTableData; TMapItemOptionTableData m_ItemOptionTableData; // È£°¨µµ #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM ) typedef map TMapReputeTableData; TMapReputeTableData m_ReputeTableData; typedef map TMapPresentTableData; TMapPresentTableData m_PresentTableData; typedef map TMapMailTableData; TMapMailTableData m_MailTableData; typedef multimap TMapStoreBenefitData; TMapStoreBenefitData m_StoreBenefitData; #endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM ) typedef map,TCombinedShopTableData> TMapCombinedShopTableData; TMapCombinedShopTableData m_CombinedShopTableData; std::map m_CombinedShopIndex; typedef map TMapMasterSystemDecreaseTableData; TMapMasterSystemDecreaseTableData m_MasterSystemDecreaseTableData; typedef map,TMasterSystemGainTableData> TMapMasterSystemGainTableData; TMapMasterSystemGainTableData m_MasterSystemGainTableData; #if defined( PRE_ADD_SECONDARY_SKILL ) typedef map TMapSecondarySkillTableData; TMapSecondarySkillTableData m_SecondarySkillTableData; typedef map> TMapSecondarySkillLevelTableData; TMapSecondarySkillLevelTableData m_SecondarySkillLevelTableData; typedef map TMapSecondarySkillRecipeTableData; TMapSecondarySkillRecipeTableData m_SecondarySkillRecipeTableData; #endif // #if defined( PRE_ADD_SECONDARY_SKILL ) typedef map TMapInstantItemTableData; TMapInstantItemTableData m_InstantItemTableData; typedef map TMapFarmCultivateTableData; TMapFarmCultivateTableData m_FarmCultivateTableData; typedef map TMapFishingTableData; TMapFishingTableData m_FishingTableData; typedef map TMapFishingPointTableData; TMapFishingPointTableData m_FishingPointTableData; typedef map TMapFishingAreaTableData; TMapFishingAreaTableData m_FishingAreaTableData; typedef map TMapJobTableData; TMapJobTableData m_JobTableData; #ifdef PRE_ADD_GACHA_JAPAN typedef map TMapGachaData_JP; TMapGachaData_JP m_mapGachaData; #endif // µðÆúÆ® creteskill Á¤º¸¸¸ ä¿öµÒ. map m_mapDefaultCreateData; // ¹®À庸¿Á/¾ÆÀÌÅÛ Á¶ÇÕ ´ã´çÇÏ´Â °´Ã¼. ºô¸®Áö ¼­¹ö¿¡¼­¸¸ ¾ÆÀÌÅÛÁ¶ÇÕ/¹®À庸¿Á »ç¿ëÇÔ CDnItemCompounder* m_pItemCompounder; // ½ºÅ³Æ®¸® CDnSkillTreeSystem* m_pSkillTreeSystem; CDnCostumeMixDataMgr m_CosMixDataMgr; #ifdef PRE_ADD_COSRANDMIX CDnCostumeRandomMixDataMgr m_CosRandMixDataMgr; #endif // CashShop typedef map TMapCashCommodityData; TMapCashCommodityData m_pCashCommodityData; typedef map TMapCashPackageData; TMapCashPackageData m_pCashPackageData; typedef vector TVecLevelupEvent; TVecLevelupEvent m_pVecLevelupEvent; #if defined(PRE_ADD_VIP) typedef vector TVecVIPData; TVecVIPData m_pVecVIPData; #endif // #if defined(PRE_ADD_VIP) typedef map TMapGlyphSkillData; TMapGlyphSkillData m_MapGlyphSkill; typedef vector TVecGlyphSlot; TVecGlyphSlot m_VecGlyphSlot; typedef vector TVecGlyphCharge; TVecGlyphCharge m_VecGlyphCharge; typedef map TMapCharmKeyItem; // first: CharmItemID TMapCharmKeyItem m_MapCharmKeyItem; typedef map TMapCharmItem; // first: CharmNo TMapCharmItem m_MapCharmItem; typedef map TMapCharmCount; TMapCharmCount m_MapCharmCount; typedef map TMapVehicleData; // first: ItemID TMapVehicleData m_MapVehicle; typedef map TMapVehicleParts; // first: ItemID TMapVehicleParts m_MapVehicleParts; typedef map TMapPetLevelData; // first: PetLevelTypeID TMapPetLevelData m_pPetLevelData; typedef map TMapPetFoodData; // first: ItemID TMapPetFoodData m_MapPetFoodData; #if defined (PRE_ADD_CHAOSCUBE) typedef map TMapChaosStuffItem; // first: ItemID TMapChaosStuffItem m_MapChaosStuffItem; typedef map TMapChaosItem; // first: ChaosNo TMapChaosItem m_MapChaosItem; #endif std::map m_GuildLimitItem; std::map m_GuildLimitCoin; int m_nGuildLimitMaxItem; int m_nGuildLimitMaxCoin; typedef map TMapGuilLevel; // first: Level TMapGuilLevel m_GuildLevel; typedef map TMapGuilWarPoint; // first: Level TMapGuilWarPoint m_GuildWarPoint; int m_nMaxGuildExp; int m_nMaxGuildLevel; typedef std::map TProhibitWord; #if defined(PRE_ADD_MULTILANGUAGE) std::map m_ProhibitWordList; #else //#if defined(PRE_ADD_MULTILANGUAGE) TProhibitWord m_ProhibitWordList; #endif //#if defined(PRE_ADD_MULTILANGUAGE) typedef map TMapQuestRewardID; TMapQuestRewardID m_MapQuestCommonRewardID; typedef map TMapExchangeTrade; // first: ItemID TMapExchangeTrade m_MapExchangeTrade; std::vector m_VecExchangeGroupID[ITEMEXCHANGEGROUP_MAX]; typedef std::map TMapPvPMissionRoom; // first: ItemID TMapPvPMissionRoom m_MapPvPMissionRoom; TVecPvPMissionRoom m_VecPvPMissionRoom; typedef vector TVecMonsterMutationGroup; TVecMonsterMutationGroup m_VecMonsterMutationGroup; typedef map TMapMonsterMutationData; TMapMonsterMutationData m_mMonsterMutationData; typedef vector TVecMonsterMutationSkill; TVecMonsterMutationSkill m_VecMonsterMutationSkill; typedef vector TVecGhoulModeCondition; TVecGhoulModeCondition m_VecGhoulModeCondition; map,vector>> m_mPvPGameModeSkillSetting; std::map m_mBattleGroundModeInfo; std::map > m_mBattleGroundPositionInfo; std::vector m_vBattleGroundSkill; std::vector m_vBattleGroundSkillLevel; typedef vector TVecUnionReputeBenefitData; TVecUnionReputeBenefitData m_VecUnionReputeBenefitData; typedef vector TVecGuildMarkData; TVecGuildMarkData m_VecGuildMarkData; std::map m_mPlayerCommonLevelTable; std::vector m_vMasterSysFeelTableInfo; typedef vector TVecGlobalEvent; TVecGlobalEvent m_VecGlobalEvent; typedef vector TVecEveryDayEvent; TVecEveryDayEvent m_VecEveryDayEvent; //Áö±ÝÀº cash°ü·Ã Å×ÀÌºí µÎ°³(TCASHCOMMODITY, TCASHPACKAGE)¿¡¸¸ »ç¿ëÇÑ´Ù. Ãß°¡·Î ¶óÀÌºê µµÁß ¸®·Îµå°¡ ÇÊ¿äÇÏ¿©Áú °æ¿ì »ç¿ë ¿µ¿ªÀ» ³ÐÈ÷ÀÚ Ã³¸®½Ã Æã¼Çµé ±¸Á¶¸¦ º¯°æÇؾßÇÔ(Áß¿ä!) CSyncLock m_Sync; typedef map TMapPeriodAppellationID; //first:ID second:arrayID TMapPeriodAppellationID m_mPeriodAppellation; typedef map TMapGuildAppellationID; TMapGuildAppellationID m_mGuildAppellation; #if defined( PRE_ADD_BESTFRIEND ) typedef map TMapBestFriendAppellationID; TMapBestFriendAppellationID m_mBestFriendAppellation; #endif typedef map TMapGuildReversionTableData; TMapGuildReversionTableData m_GuildReversionTableData; #if defined( PRE_PARTY_DB ) typedef std::map TMapPartySortWeight; TMapPartySortWeight m_PartySortWeight; typedef std::map TMapDungeonSortWeight; TMapDungeonSortWeight m_DungeonSortWeight; #endif // #if defined( PRE_PARTY_DB ) #ifdef _WORK bool m_bAllLoaded; #endif //#ifdef _WORK int m_nMaxPlayerLevel; typedef map TMapGuildRewardItem; TMapGuildRewardItem m_mGuildRewardItemTableData; #if defined(PRE_ADD_SALE_COUPON) typedef map TMapSaleCoupon; TMapSaleCoupon m_mSaleCouponItemTableData; #endif vector m_vVillageMaps; #if defined( PRE_ADD_NAMEDITEM_SYSTEM ) typedef map TMapNamedItem; TMapNamedItem m_mNamedItemTableData; #endif #ifdef PRE_ADD_EXCHANGE_POTENTIAL typedef vector TVecPotentialTransferItem; TVecPotentialTransferItem m_vPotentialTransferList; #endif //#ifdef PRE_ADD_EXCHANGE_POTENTIAL typedef vector TVecCashErasableType; TVecCashErasableType m_VecCashErasableType; #if defined( PRE_WORLDCOMBINE_PARTY ) typedef std::map TMapWorldCombinePartyData; TMapWorldCombinePartyData m_mWorldCombinePartyData; #endif #if defined( PRE_ADD_PCBANG_RENTAL_ITEM ) typedef std::map TMapPcBangRentItemData; TMapPcBangRentItemData m_mPcBangRentItemData; #endif #if defined(PRE_ADD_EXCHANGE_ENCHANT) typedef vector TVecExchangeEnchantData; TVecExchangeEnchantData m_vExchangeEnchantData; #endif #if defined(PRE_ADD_INSTANT_CASH_BUY) typedef map TMapCashBuyShortcut; TMapCashBuyShortcut m_MapCashBuyShortcut; #endif // #if defined(PRE_ADD_INSTANT_CASH_BUY) #if defined(PRE_ADD_WEEKLYEVENT) typedef map TMapWeeklyEvent; TMapWeeklyEvent m_pMapWeeklyEvent; #endif // #if defined(PRE_ADD_WEEKLYEVENT) #if defined( PRE_ADD_TOTAL_LEVEL_SKILL ) typedef map TMapTotalSkillLevelTable; TMapTotalSkillLevelTable m_MapTotalSkillLevelTabel; typedef map TMapTotalSkillSlotTable; TMapTotalSkillSlotTable m_MapTotalSkillSlotTabel; typedef map > TMapTotalSkillBlow; TMapTotalSkillBlow m_MapTotalSkillBlow; #endif #if defined(PRE_SPECIALBOX) typedef map TMapKeepBoxProvideItemData; TMapKeepBoxProvideItemData m_pMapKeepBoxProvideItemData; #endif // #if defined(PRE_SPECIALBOX) #ifdef PRE_ADD_JOINGUILD_SUPPORT typedef vector TVecGuildSupportData; TVecGuildSupportData m_VecGuildSupportData; #endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT #if defined(PRE_ADD_REMOTE_QUEST) typedef std::vector TVecRemoteQuestData; TVecRemoteQuestData m_pQuestRemoteTable; typedef map TMapRemoteQuestID; TMapRemoteQuestID m_MapRemoteQuestID; #endif #if defined(PRE_ADD_ACTIVEMISSION) typedef std::vector TVecActiveMissionData; TVecActiveMissionData m_pActiveMissionTable; std::map> m_ActiveSetTable; #endif #if defined( PRE_WORLDCOMBINE_PVP ) typedef std::map TMapWorldPvPMissionRoom; // first: ItemID TMapWorldPvPMissionRoom m_MapWorldPvPMissionRoom; TVecWorldPvPMissionRoom m_VecWorldPvPMissionRoom; std::list m_listWorldPvPRoomMode; #endif #if defined( PRE_ALTEIAWORLD_EXPLORE ) typedef std::map TMapAlteiaWorldMapInfo; // first: ItemID TMapAlteiaWorldMapInfo m_MapAlteiaWorldMapInfo; int m_nAlteiaWorldMapMaxCount; time_t m_tAlteiaWorldBeginTime; time_t m_tAlteiaWorldEndTime; #endif // #if defined( PRE_ALTEIAWORLD_EXPLORE ) #if defined( PRE_ADD_STAMPSYSTEM ) typedef std::map TMapStampTableData; // first: StartTime TMapStampTableData m_MapStampTableData; #endif // #if defined( PRE_ADD_STAMPSYSTEM ) #if defined(PRE_ADD_TALISMAN_SYSTEM) typedef std::vector TVecTalismanSlotData; TVecTalismanSlotData m_pTalismanSlotTable; typedef map TMapTalismanData; TMapTalismanData m_MapTalismanTable; #endif #if defined( PRE_DRAGONBUFF ) typedef map TMapWorldBuffData; TMapWorldBuffData m_MapWorldBuffData; #endif #if defined( PRE_PVP_GAMBLEROOM ) typedef std::map TMapPvPGambleRoom; // first: ItemID TMapPvPGambleRoom m_MapPvPGambleRoom; #endif #if defined( PRE_ADD_STAGE_WEIGHT ) typedef std::map> TMapStageWeightData; TMapStageWeightData m_MapStageWeightData; #endif // #if defined( PRE_ADD_STAGE_WEIGHT ) public: CDNGameDataManager(void); virtual ~CDNGameDataManager(void); bool AllLoad(); #ifdef _WORK bool GetLoaded() { return m_bAllLoaded; } #endif //#ifdef _WORK void DoUpdate(DWORD dwCurTick, int nThreadIndex); bool LoadMapInfo(); const TMapInfo * GetMapInfo(int nMapID) const; int GetMapIndexByGateNo( int nMapIndex, int nGateNo, int nSelect=0 ); int GetGateNoByGateNo( int nMapIndex, int nGateNo, int nSelect=0 ); GlobalEnum::eMapTypeEnum GetMapType( int nMapIndex ); GlobalEnum::eMapSubTypeEnum GetMapSubType( int nMapIndex ); bool IsFindValidMap( const TMapInfo* pMapInfo, int nTargetIndex ); bool CheckChangeMap( int nPrevMapIndex, int nNextMapIndex ); bool IsMapExpandable(int nMapIndex); bool IsVehicleMode(int nMapIndex); bool IsPetMode(int nMapIndex); int GetMapPermitLevel(int nMapID); TVecVillagePermitLevel GetVillageMapPermitLevel() const { return TVecVillagePermitLevel(m_vVillagePermitLevel); } #if defined(PRE_ADD_CHALLENGE_DARKLAIR) bool IsCloseGateByTime(int nMapIndex); #endif #if defined(PRE_ADD_VEHICLE_SPECIAL_ACTION) bool IsVehicleSpecialActionMode(int nMapIndex); #endif bool LoadItemData(); TItemData* GetItemData(int nItemID); const TItemData* GetItemData(int nItemID) const; bool IsItemNeedJob(int nItemID, int nJob); bool IsPermitItemJob(int nItemID, BYTE *cJobArray); bool IsItemNeedJobHistory( int nItemID, const BYTE* cJobArray, bool bForDice = false ); bool IsItemOnlyNeedJob(int nItemID, int nJob) const; int GetItemMainType(int nItemID); // ¾ÆÀÌÅÛ Å¸ÀÔÁß¿¡ eItemTypeEnum ÀÎÁö BYTE GetItemDetailType(int nItemID); // eItemTypeEnumÁß Çϳª¶ó¸é eWeaponType, eParts ... Áß¿¡ ÇϳªÀÎÁö BYTE GetItemDetailType(TItemData * pItemData); // eItemTypeEnumÁß Çϳª¶ó¸é eWeaponType, eParts ... Áß¿¡ ÇϳªÀÎÁö BYTE GetItemRank(int nItemID); int GetItemOverlapCount(int nItemID); BYTE GetItemReversion(int nItemID); int GetItemPrice(int nItemID); bool IsItemDestruction(int nItemID); char GetItemSkillUsingType(int nItemID); int GetItemTypeParam1(int nItemID); int GetItemTypeParam2(int nItemID); bool IsCashItem(int nItemID); int GetItemCashTradeCount(int nItemID); BYTE GetItemLevelLimit(int nItemID); char GetItemSealCount(int nItemID); bool IsUseItemAllowMapTypeCheck(int iItemID, int iMapIndex); int GetMapPermitPartyCount(int nMapID); const CDnCostumeMixDataMgr& GetCosMixDataMgr() const { return m_CosMixDataMgr; } #ifdef PRE_ADD_COSRANDMIX bool LoadCostumeRandomMixData(); CDnCostumeRandomMixDataMgr& GetCosRandomMixDataMgr() { return m_CosRandMixDataMgr; } #endif bool LoadActorData(); TActorData* GetActorData(int nActorIndex); bool LoadNpcData(); TNpcData* GetNpcData( int nNpcIndex ); bool LoadWeaponData(); TWeaponData* GetWeaponData(int nWeaponIndex); bool LoadPartData(); TPartData* GetPartData(int nPartIndex); const TPartData* GetPartData(int nPartIndex) const; bool IsSubParts(int nPartIndex); bool IsFaceParts(int nPartIndex); bool IsHairParts(int nPartIndex); bool LoadPotentialJewelData(); TPotentialJewelData *GetPotentialJewelData( int nItemID ); bool LoadEnchantJewelData(); TEnchantJewelData *GetEnchantJewelData( int nItemID ); int GetItemDurability( int nItemID ); int GetItemDurabilityRepairCoin(int nItemID); int GetExp(int nClass, BYTE cLevel); int GetFatigue(int nClass, char cLevel); int GetWeeklyFatigue(int nClass, char cLevel); BYTE GetLevel(int nClass, int nCurExp); #if defined(PRE_ADD_VIP) int GetVIPExp(int nClass, int nLevel); int GetVIPFatigue(int nClass, int nLevel); #endif // #if defined(PRE_ADD_VIP) // CoinTable bool LoadCoinCount(); int GetCoinCount(BYTE cLevel, char cWorldID); int GetCashCoinCount(BYTE cLevel, char cWorldID); #if defined(PRE_ADD_VIP) int GetVIPRebirthCoinCount(BYTE cLevel); #endif // #if defined(PRE_ADD_VIP) int GetCoinLimit(BYTE cLevel); int GetCashCoinLimit(BYTE cLevel); bool ReadTalkFile(const char* szFolderName); bool LoadTalkData(); bool AddTalk(const WCHAR* _wszTalkFileName); bool RemoveTalk(const WCHAR* wszTalkFileName); bool GetTalk(const WCHAR* wszTalkFileName, OUT TALK_PARAGRAPH_MAP& TalkParagraphMap ); bool GetTalkParagraph(IN std::wstring& wszIndex, IN std::wstring& wszTarget, OUT TALK_PARAGRAPH& talk ); TALK_PARAGRAPH & GetEmptyTalkParagraph(); void GetTalkFileList(IN OUT std::vector& TalkFileList); DWORD GetStringHashCode(const WCHAR* pString); bool GetTalkFileName(DWORD nHashCode, OUT std::wstring& wszIndex); bool GetTalkIndexName(DWORD nHashCode, OUT std::wstring& wszIndex); bool CheckTalkAnswer(IN std::wstring& wszIndex, IN std::wstring& wszTarget); bool LoadQuestReward(); bool GetQuestReward(UINT nRewardCheck, OUT TQuestReward& recom); bool GetQuestCommonRewardByQuestID(int nQuestID, OUT TQuestReward& recom); //Ŭ·¡½º °øÅë ¸®¿öµå Á¤º¸¸¸ ó¸®ÇÔ bool LoadPlayerCustomEventUI(); void GetPlayerCustomEventUIList(std::vector &vList); bool LoadQuestLevelCapReward(); const TQuestLevelCapReward* GetQuestLevelCapReward(char cType, char cClassID) const; // ÇØ´ç Äù½ºÆ®¿¡ ¿¬°üµÇ¾îÁø Äù½ºÆ®¾ÆÀÌÅÛ ¸ñ·ÏÀ» ¾ò´Â´Ù. bool GetQuestItemSet(UINT nQuestID, OUT std::set& questItemSet); void LoadQuestCondition(TiXmlElement* pRootElement, UINT nQuestID); QuestCondition * GetQuestCondition(UINT nQuestID); // Shop bool LoadShopData(); TShopData* GetShopData(int nShopID); TShopItem* GetShopItem(int nShopID, int nShopTabID, int nIndex); // SkillShop bool LoadSkillShopData(); TSkillShopData* GetSkillShopData(int nShopID); // Skill bool LoadSkillData(); TSkillData* GetSkillData(int nSkillID); TSkillLevelData* GetSkillLevelData(int nSkillID, char cSkillLevel); TSkillTreeData* GetSkillTreeData( int nSkillID ); int GetNumSkillTreeData() { return(int)m_vlpSkillTreeData.size(); }; TSkillTreeData* GetSkillTreeDataByIndex( int iIndex ); int GetSkillDelayTime(int nSkillID, char cSkillLevel); // skill delaytime = item cooltime int GetSkillGlobalCoolTime( int nSkillID ); int GetSkillGlobalGroupID( int nSkillID ); bool IsSkillNeedJob(int nSkillID, char cSkillLevel, int nJob); bool IsSkillLevel(int nSkillID, char cSkillLevel, BYTE cLevel); bool IsSkillShopData(int nSkillID, int nJob, BYTE cLevel); // ½ºÅ³»óÁ¡¿¡¼­ »ì Á¶°ÇÀÌ µÇ´Â°¡? int GetNeedSkillPoint(int nSkillID, char cSkillLevel); bool GetCreateDefaultSkill( char cClassID, int* aDefaultSkills ); // Enchant bool LoadEnchantData(); #ifdef PRE_FIX_MEMOPT_ENCHANT bool LoadEnchantMainTable(const DNTableFileFormat& mainTable); bool LoadEnchantNeedItemTable(const DNTableFileFormat& needItemTable); #endif bool LoadPotentialData(); TEnchantData *GetEnchantData( int nEnchantID ) const; TEnchantLevelData *GetEnchantLevelData( int nEnchantID, char cLevel ); #ifdef PRE_FIX_MEMOPT_ENCHANT const TEnchantNeedItemData* GetEnchantNeedItemData(int nEnchantID, char cLevel) const; const TEnchantNeedItemData* GetEnchantNeedItemData(const TEnchantLevelData& levelData) const; #endif int GetEnchantMaxLevel( int nEnchantID ); TPotentialData *GetPotentialData( int nPotentailID ); // Item Drop bool LoadItemDropData(); TItemDropData *GetItemDropData( int nDropItemTableID ); // Appellation int LoadAppellationData(); TAppellationData *GetAppellationData(int nAppellationItemID); int GetAppellationArrayIndex(int nAppellationItemID); int GetAppellationLevelLimit(int nAppellationItemID); void ResetPeriodAppellation(char *Appellation, std::map &mapDelAppellation); int GetPeriodAppellationArrayID(int nItemID); void ResetGuildAppellation(char *Appellation, std::map &mapDelAppellation); #if defined( PRE_ADD_BESTFRIEND ) void ResetBestFriendAppellation(char *Appellation, std::map &mapDelAppellation); #endif // Mission bool LoadMissionData(); TMissionData *GetMissionData( int nArrayIndex ); char GetMissionType(int nArrayIndex); int GetMissionMailID(int nArrayIndex); bool LoadDailyMissionData(); TDailyMissionData *GetDailyMissionData( int nItemID ); int GetDailyMissionRewarePoint(int nMissionID); TDailyMissionData *GetWeekendEventMissionData( int nArrayIndex ); TDailyMissionData *GetGuildWarMissionData( int nArrayIndex ); void GetRandomGuildMission( int nRandomSeed, int* vGuildMissionID ); bool LoadGuildWarRewardData(); TGuildWarRewardData* GetGuildWarRewardData(char cType, char cClass); TDailyMissionData *GetGuildCommonMissionData( int nArrayIndex ); TDailyMissionData *GetWeekendRepeatMissionData( int nArrayIndex ); #if defined(PRE_ADD_ACTIVEMISSION) bool LoadActiveMissionData(); TActiveMissionData* GetActiveMissionData(int nIndex); bool LoadActiveSetData(); TActiveMissionData* GetRandomActiveMission( int nMapIndex, int nRandomSeed ); #endif #if defined(PRE_ADD_WEEKLYEVENT_MISSION_ENDTIME) int GetWeekendMissionCount(eDailyMissionType eMissionType); #endif // #if defined(PRE_ADD_WEEKLYEVENT_MISSION_ENDTIME) #if defined(PRE_ADD_CHAT_MISSION) bool LoadTypingData(); bool CheckTypingData(int nUIStringMid); #endif // CollectionBook bool LoadCollectionBookData(); TCollectionBookData *GetCollectionBookData(int nID); const TMapCollectionBook &CollectionBookList() const { return m_MapCollectionBookData; } // Tax bool LoadTaxData(); float GetTaxRate(int nTaxType, int nLevel, INT64 nPrice); int GetTaxAmount(int nTaxType, int nLevel, INT64 nPrice); INT64 CalcTax(int nTaxType, int nLevel, INT64 nPrice); // Seal bool LoadSealData(); int GetTotalSealNeeds(int nTypeParam, int nType2, char cItemLevel); char GetSealSuccessRate(int nTypeParam, int nType2, char cItemLevel); // PCBang bool LoadPCBangData(); int GetPCBangDataCount(); TPCBangData *GetPCBangData(int nPCBangType); int GetPCBangParam1(int nPCBangType, int nPCBangGrade); // µ¥ÀÌÅÍ 1ÁÙ¸¸ Àִ°æ¿ì (PCBang::Type::)Exp, Appellation, Fatigue, RebirthCoin, Mission int GetPCBangParam2(int nPCBangType, int nPCBangGrade); // µ¥ÀÌÅÍ 1ÁÙ¸¸ Àִ°æ¿ì (PCBang::Type::)Exp, Appellation, Fatigue, RebirthCoin, Mission int GetPCBangNestClearCount(int nPCBangGrade, int nMapID); bool GetPCBangClearBoxFlag(int nPCBangGrade); bool CheckPcbangAppellation(int nAppllationIndex); //ÇǾ¾¹æÄªÈ£°¡ ¸Â´ÂÁö üũ // Item Compound bool LoadItemCompoundData(); #if defined( _GAMESERVER ) void EmblemCompound( CMultiRoom* pRoom, int iPlateItemID, CDnItemCompounder::S_ITEM_SETTING_INFO& ItemSetting, CDnItemCompounder::S_OUTPUT* pOutput ); void ItemCompound( CMultiRoom* pRoom, CDnItemCompounder::S_ITEM_SETTING_INFO& ItemSetting, CDnItemCompounder::S_OUTPUT* pOutput ); #else void EmblemCompound( int iPlateItemID, CDnItemCompounder::S_ITEM_SETTING_INFO& ItemSetting, CDnItemCompounder::S_OUTPUT* pOutput ); void ItemCompound( CDnItemCompounder::S_ITEM_SETTING_INFO& ItemSetting, CDnItemCompounder::S_OUTPUT* pOutput ); #endif // #if defined( _GAMESERVER ) CDnItemCompounder* GetItemCompounder() { return m_pItemCompounder; } bool LoadSkillTreeData(); CDnSkillTreeSystem* GetSkillTreeSystem() { return m_pSkillTreeSystem; }; // PvP bool LoadPvPMapTable(); bool LoadPvPGameModeTable(); bool LoadPvPGameStartConditionTable(); bool LoadPvPRankTable(); const TPvPMapTable* GetPvPMapTable( const int nItemID ); const TPvPGameModeTable* GetPvPGameModeTable( const int nItemID ); const TPvPGameStartConditionTable* GetPvPGameStartConditionTable( const UINT uiMaxUser ); const TPvPRankTable* GetPvPRankTable( const UINT uiLevel ); #ifdef PRE_MOD_PVPRANK UINT GetPvPExpThreshold(); int GetRelativePvPRank(int nExpAbsoluteRank, float fExpRateRank); #if defined(PRE_ADD_PVP_RANKING) void SetRelativePvPRank( BYTE *cPvPLevel, UINT uiExp, int iPvPRank, float fPvPRaito ); #endif #endif //#ifdef PRE_MOD_PVPRANK int GetRandomLadderMapIndex( LadderSystem::MatchType::eCode MatchType ); // CashShop bool LoadCashCommodityData(bool bReload = false); bool GetCashCommodityData(int nSN, TCashCommodityData &Data); int GetCashCommodityPrice(int nSN); bool IsReserveCommodity(int nSN); // Àû¸³±Ý °¡´É »óǰÀÎÁö bool IsPresentCommodity(int nSN); // ¼±¹° °¡´É »óǰÀÎÁö bool IsLimitCommodity(int nSN); // ÇÑÁ¤ÆÇ¸ÅÀÎÁö int GetCashCommodityPeriod(int nSN); int GetCashCommodityCount(int nSN); bool IsValidCashCommodityItemID(int nItemSN, int nItemID); #if defined(PRE_ADD_VIP) int GetCashCommodityVIPPoint(int nSN); // vippoint¾ò±â bool GetCashCommodityPay(int nSN); int GetCashCommodityVIPAutomaticPaySalePrice(int nSN); // VIPÀÚµ¿°áÁ¦¶§ ÇÒÀΰ¡°Ý bool IsVIPSell(int nSN); // VIP Àü¿ë¼¥ ¾ÆÀÌÅÛ int GetCashCommodityVIPLevel(int nSN); // »ì¼öÀÖ´Â ·¹º§ #endif // #if defined(PRE_ADD_VIP) int GetCashCommodityItem0(int nSN); int GetCashCommodityOverlapBuy(int nSN); // Áߺ¹±¸¸Å°¡´É¿©ºÎ int GetCashCommodityItemIDCount(int nSN); // ¿É¼Ç¾ÆÀÌÅÛ °³¼ö bool CheckCashSNItemID(int nItemSN, int nItemID); #if defined(PRE_ADD_CASH_REFUND) bool GetCashCommodityNoRefund(int nID, int nSN); // ij½¬ ȯºÒ ºÒ°¡´É¿©ºÎ #endif #if defined(PRE_ADD_CASHSHOP_CREDIT) bool GetCashCommodityCreditAble(int nSN); int GetCashCommodityCreditAbleLevel(int nSN); #endif // #if defined(PRE_ADD_CASHSHOP_CREDIT) #if defined(PRE_ADD_SALE_COUPON) bool IsSaleCouponByItem(int nSN); #endif #if defined( PRE_ADD_NEW_MONEY_SEED ) bool IsSeedCommodity(int nSN); #endif bool LoadCashPackageData(bool bReload = false); bool GetCashPackageData(int nSN, TCashPackageData &Data); bool IsCashPackageData(int nSN); bool GetCashCommodityItemSNListByPackage(int nPackageSN, std::vector &VecItemSNIDList); int GetCashPackageCount(int nPackageSN); #if defined(PRE_ADD_VIP) // Áß±¹ VIP bool LoadVIPData(); TVIPData *GetVIPData(); // ¾îÂ÷ÇÇ 1°³¸¸ ÀÖ´Ù°í ÇÑ´Ù -_-; int GetVIPAutoPayItemSN(); int GetVIP7DaysLeftMailID(); int GetVIP1DayLeftMailID(); int GetVIPCloseMailID(); int GetVIPShortCashMailID(); #endif // #if defined(PRE_ADD_VIP) // DarkLair bool LoadDarkLairMapData(); const TDLMapData *GetDLMapData( int nItemID ); bool LoadDarkLairClearData(); TDLClearDataItem *GetDLClearData( int nItemID, int nLevel, int nRound ); bool LoadItemOptionTableData(); const TItemOptionTableData* GetItemOptionTableData( int iItemID ); #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM ) bool LoadReputeTableData(); TReputeTableData* GetReputeTableData( int iItemID ); bool LoadPresentTableData(); TPresentTableData* GetPresentTableData( int iItemID ); bool LoadMailTableData(); TMailTableData* GetMailTableData( int iItemID ); bool LoadStoreBenefitData(); void GetStoreBenefitData( int iNpcID, /*IN OUT*/ vector& vlpDatas ); #endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM ) bool LoadCombinedShopTableData(); bool IsCombinedShop( int iShopID ); const TCombinedShopTableData* GetCombinedShopItemTableData( int iShopID, int iTabID, int iListID ); bool LoadMasterSystemDecreaseTableData(); TMasterSystemDecreaseTableData* GetMasterSystemDecreaseTableData( int iPupilLevel ); bool LoadMasterSystemGainTableData(); TMasterSystemGainTableData* GetMasterSystemGainTableData( int iLevel, TDUNGEONDIFFICULTY StageDifficulty ); #if defined( PRE_ADD_SECONDARY_SKILL ) bool LoadSecondarySkillTableData(); TSecondarySkillTableData* GetSecondarySkillTableData( int iSecondarySkillID ); bool LoadSecondarySkillLevelTableData(); TSecondarySkillLevelTableData* GetSecondarySkillLevelTableData( int iSecondarySkillID, SecondarySkill::Grade::eType Grade, int iSkillLevel ); TSecondarySkillLevelTableData* GetSecondarySkillLevelTableData( int iSecondarySkillID, int iExp ); bool LoadSecondarySkillRecipeTableData(); TSecondarySkillRecipeTableData* GetSecondarySkillRecipeTableData( int iItemID ); #endif // #if defined( PRE_ADD_SECONDARY_SKILL ) bool LoadInstantItemTableData(); bool bIsInstantItem( int iItemID ); bool LoadFarmCultivateTableData(); TFarmCultivateTableData* GetFarmCultivateTableData( int iItemID ); bool LoadFishingTableData(); TFishingTableData * GetFishingTableData(int nItemID); bool LoadFishingPointTableData(); TFishingPointTableData * GetFishingPointTableData(int nItemID); bool LoadFishingAreaTableData(); TFishingAreaTableData * GetFishingAreaTableData(int nItemID); void GetFishingAreaTableDataByMapID(int nMapID, std::vector &vFishingArea); // Gachapon_JP #ifdef PRE_ADD_GACHA_JAPAN bool LoadGachaData_JP(); TGachaponData_JP *GetGachaponData_JP( int nGachaShopID ); #endif bool LoadJobTableData(); TJobTableData* GetJobTableData( int nJobTableID ); int GetBaseClass( int iJob ); // ÇöÀç Á÷¾÷ÀÇ ±âº» Ŭ·¡½º int GetParentJob( int iJob ); // ºÎ¸ðÁ÷¾÷ ¾ò¾î¿À±â int GetJobNumber( int iJob ); // Á÷¾÷ÀÇ ÀüÁ÷ Â÷¼ö ¾ò¾î¿À±â int GetClass( int iJob ); // Ŭ·¡½º ¾ò¾î¿À±â void GetJobGroupID(int nItemID, char cJobCode[]); //LevelUp Event bool LoadLevelupEvent(); void GetLevelupEvent(int nLevel, int nClass, int nJob, std::vector &VecEventList); bool GetLevelupEventbyType(int nLevel, TLevelupEvent::eEventType eType, TLevelupEvent &Event); //PromotionData bool LoadPromotionData(); int GetPromotionCount(); const TPromotionData * GetPromotionByIdx(int nIndex); const TPromotionData * GetPromotionByIID(int nID); // GlyphSkill bool LoadGlyphSkillData(); TGlyphSkillData *GetGlyphSkillData(int nGlyphID); int GetGlyphType(int nGlyphID); // GlyphSlot bool LoadGlyphSlotData(); int GLYPHINDEX_2_SLOTINDEX(int nGlyphIndex); bool IsGlyphSlotLevel(int nGlyphIndex, int nCharLevel); bool IsGlyphLevel(int nGlyphID, int nCharLevel); // GlyphCharge bool LoadGlyphChargeData(); int GetGlyphCharge(char cGlyphType, char cGlyphRank); // CharmItemKeyTable bool LoadCharmItemKeyData(); TCharmItemKeyData *GetCharmKeyData(int nItemID); // CharmItemTable bool LoadCharmItemData(); TCharmItemData *GetCharmItemData(int nCharmNo); #if defined(PRE_ADD_GETITEM_WITH_RANDOMVALUE) // CharmCountTable bool LoadCharmCountData(); TCharmCountData *GetCharmCountData(int nID); #endif // #if defined(PRE_ADD_GETITEM_WITH_RANDOMVALUE) #if defined (PRE_ADD_CHAOSCUBE) // ChaosCubeStuffTable bool LoadChaosCubeStuffData(); TChaosStuffItem *GetChaosStuffItemData(int nItemID); // ChaosCubeResultTable bool LoadChaosCubeResultData(); TChaosItemData *GetChaosItemData(int nChaosNo); #endif // #if defined (PRE_ADD_CHAOSCUBE) int GetMaxGuildExp(); int GetMaxMaxGuildLevel(); bool LoadGuildLevelData(); TGuildLevel *GetGuildLevelData(int nLevel); bool LoadGuildWarPointData(); TGuildWarPoint *GetGuildWarPointData(int nRank); // GuildWareHouse bool LoadGuildWareData(); int GetGuildLimitItem(int nIndex); int GetGuildLimitCoin(int nIndex); int GetGuildLimitMaxItem(); int GetGuildLimitMaxCoin(); // VehicleTable bool LoadVehicleData(); TVehicleData *GetVehicleData(int nItemID); int GetVehicleClassID(int nItemID); int GetVehicleActorID(int nItemID); int GetPetLevelTypeID(int nItemID); // VehiclePartsTable bool LoadVehiclePartsData(); TVehiclePartsData *GetVehiclePartsData(int nItemID); int GetVehiclePartsType(int nItemID); bool LoadPetLevelData(); TPetLevelData *GetPetLevelData(int nPetLevelType); TPetLevelDetail *GetPetLevelDetail(int nPetBodyItemID, int nPetExp); int GetPetLevelTableIndex(int nPetBodyItemID, int nPetExp); bool LoadPetFoodData(); TPetFoodData *GetPetFoodData(int nItemID); // ±ÝÄ¢¾î unsigned int MemoryToRSHashKey(const wchar_t* pszData, long nSize); #if defined(PRE_ADD_MULTILANGUAGE) bool LoadProhibitWord(int nLanguage, const char * pszFilePath); TProhibitWord * GetLanguageSlangFilter(int nLanguage); bool CheckProhibitWord(int nLanguage, const wchar_t *pwszWord); #else //#if defined(PRE_ADD_MULTILANGUAGE) bool LoadProhibitWord(); bool CheckProhibitWord(const wchar_t *pwszWord); #endif //#if defined(PRE_ADD_MULTILANGUAGE) bool LoadExchangeTradeData(); bool GetExchangeGroupID(int nGroupID, char cItemChange[]); TExchangeTrade* GetExchageTradeData(int nItemID); std::map> m_LadderMatchTypeMapIndex; bool LoadPVPMissionRoom(); TPvPMissionRoom* GetPvPMissionRoom(int nItemID); TVecPvPMissionRoom& GetVecPvPMissionRoom(); bool LoadMonsterLevel(); bool LoadGhoulModeCondition(); void GetGhoulGroup(int nUserCount, TMonsterMutationGroup &Group, int &nGhoulCount); bool LoadMonsterMutationGroupData(); bool GetMonsterMutationGroup(int nGroupID, TMonsterMutationGroup &Group); bool LoadMonsterMutationData(); bool GetMonsterMutationData(int nMutationDataID, TMonsterMutationData &Data); int GetMonsterMutationActorID( int nMutationDataID ); int GetMonsterMutationMoveSpeed( int nMutationDataID ); bool LoadMonsterMutationSkillData(); #if defined( _GAMESERVER ) bool LoadPvPGameModeSkillSetting(); bool GetPvPGameModeSkillSetting( int iGroupID, int iClassID, std::vector>& vData ); #endif // #if defined( _GAMESERVER ) bool LoadBattleGroundMode(); //ÀÏ´ÜÀº Å×À̺íÀÌ ÀÌ·¸°Ô ¼³Á¤µÇ¾î À̸§ÀÌ ÀÌ·±µ¥ ³ªÁß¿¡ PvPMode·Î ÅëÇÕÀÌ µÉÁöµµ? bool GetBattleGroundModeInfo(int nPvPModeID, TBattleGourndModeInfo &ModeInfo); bool LoadBattleGroundResourceArea(); //¸¶Âú°¡Áö·Î Á¡·ÉÀü¿¡ ´ëÇÑ ¿µ¿ª¼³Á¤ bool GetBattleGroundResourceAreaInfo(int nMapID, int nPvPModeID, std::vector &vList); bool LoadBattleGroundSkillSet(); TBattleGroundSkillInfo * GetBattleGroundSkill(int nSkillID); TBattleGroundEffectValue * GetBattleGroundSkillLevel(int nSkillID, int nLevel); bool LoadReputeBenefitData(); TUnionReputeBenefitData* GetUnionReputeBenefitByItemID(int nItemID); bool LoadGuildMarkData(); int IsValidCompleteMark(int nItemID, int nType); bool IsValidGuildMark(int nItemID, bool bCheckCash); bool LoadPlayerCommonLeaveTable(); int GetFatigue10000RatioFromPlayerCommonLevelTable( int iLevel ); TPlayerCommonLevelTableInfo* GetPlayerCommonLevelTable(int nLevel); #if defined(PRE_ADD_TALISMAN_SYSTEM) int GetTalismanCostFromPlayerCommonLevelTable( int iLevel ); #endif bool LoadMasterSysFeelTable(); int GetMasterSysFeelAddExp(int nFavor); bool LoadGlobalEventData(); TGlobalEventData* GetGlobalEventData(int nScheduleID); bool LoadEveryDayEventData(); TEveryDayEventData* GetEveryDayEventRewardMailID(int iOngoingDay); bool CheckEveryDayEventTime(WORD *index); //¸¶Áö¸·À¸·Î üũÇÑ È¸Â÷°¡ ÀÏÄ¡ÇÏ´ÂÁö üũ. ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù¸é »õ·Î¿î À̺¥Æ®À̹ǷΠ±âÁ¸ µ¥ÀÌÅÍ ¸®¼Â #ifdef PRE_FIX_MEMOPT_EXT char* GetFileNameFromFileEXT(DNTableFileFormat* pRawSox, int itemId, const char* pFieldName, DNTableFileFormat* pFileNameSox = NULL); void GetFileNameFromFileEXT(std::string& result, DNTableFileFormat* pRawSox, int itemId, const char* pFieldName, DNTableFileFormat* pFileNameSox = NULL); void GetFileNameFromFileEXT(std::string& result, DNTableFileFormat* pRawSox, int itemId, int fieldIndex, DNTableFileFormat* pFileNameSox = NULL); char* GetFileNameFromFileEXT(int index, DNTableFileFormat* pFileSox = NULL); #endif bool bIsGuildReversionItem( int iItemID ); #if defined( PRE_PARTY_DB ) bool LoadPartySortWeightTable(); int GetPartySortWeight( Party::SortWeightIndex::eCode Type ); bool LoadDungeonSortWeightTable(); int GetDungeonSortWeight( int iMapindex ); #endif // #if defined( PRE_PARTY_DB ) bool LoadGuildRewardItemData(); TGuildRewardItemData* GetGuildRewardItemData(int nItemID); vector GetVillageMaps() const { return vector(m_vVillageMaps); } #if defined( PRE_ADD_SALE_COUPON) bool LoadSaleCouponData(); TSaleCouponData* GetSaleCouponItemData(int nItemID); bool IsSaleCouponItemBuyItem(int nCouponItemID, int nBuyItemSN); #endif // #if defined( PRE_ADD_SALE_COUPON) #if defined( PRE_ADD_NAMEDITEM_SYSTEM ) bool LoadNamedItemData(); int GetNamedItemMaxCount(int nItemID); int GetNamedItemSwapID(int nItemID); #endif #ifdef PRE_ADD_EXCHANGE_POTENTIAL bool LoadPotentialTransferData(); int GetPotentialTransConsumptionCount(int nExtractLevel, int nExtractRank, int nInjectLevel, int nInjectRank, int nMainType, int nSubType); #endif //#ifdef PRE_ADD_EXCHANGE_POTENTIAL bool LoadCashErasableType(); bool IsCashErasableType(int nItemID); #if defined( PRE_WORLDCOMBINE_PARTY ) bool LoadCombinePartyData(); WorldCombineParty::WrldCombinePartyData* GetCombinePartyData(int nPrimaryIndex); void CheckCombinePartyData(std::map ExistCombineParty, std::map &CreateCombineParty); #endif #if defined( PRE_ADD_PCBANG_RENTAL_ITEM) bool LoadPcCafeRentData(); bool IsPcCafeRentItem(int nItemID); int GetPcCafeRentItemID(BYTE cLevel, char cClassID, BYTE cJob, BYTE cPcCafeGrade, std::map &vList ); #endif #if defined(PRE_ADD_INSTANT_CASH_BUY) bool LoadCashBuyShortcut(); TCashBuyShortcutData *GetCashBuyShortcut(int nType); bool IsCashBuyShortcut(int nType, int nMapIndex, int nItemSN); #endif // #if defined(PRE_ADD_INSTANT_CASH_BUY) #if defined(PRE_ADD_EXCHANGE_ENCHANT) bool LoadEnchantTransferData(); TExchangeEnchantData* GetExchangeEnchantData(BYTE cRank, BYTE cLevelLimit, BYTE cEnchantLevel); #endif #if defined(PRE_FIX_NEXTSKILLINFO) SKILL_LEVEL_INFO* GetSkillLevelTableIDList(int nSkillID, int nApplyType); #endif // #if defined(PRE_FIX_NEXTSKILLINFO) #if defined(PRE_ADD_WEEKLYEVENT) bool LoadWeeklyEvent(); WeeklyEvent::TWeeklyEvent *GetWeeklyEvent(int nDayOfWeek); int GetWeeklyEventValue(int nRaceType, int nClassType, int nEventType, int nThreadIndex); float GetWeeklyEventValuef(int nRaceType, int nClassType, int nEventType, int nThreadIndex); void WeeklyEventClear(); #endif // #if defined(PRE_ADD_WEEKLYEVENT) #if defined( PRE_ADD_TOTAL_LEVEL_SKILL ) bool LoadTotalLevelSkill(); int GetTotalLevelSkillType( int nSkillID ); float GetTotalLevelSkillValue( int nSkillID, TotalLevelSkill::Common::eVillageEffectType eType ); int GetintTotalLevelSkillValue( int nSkillID, TotalLevelSkill::Common::eVillageEffectType eType ); bool bIsTotalLevelSkillLimitLevel( int nSlotIndex, int nSkillID, int nTotalLevel, int nCharacterLevel); bool bIsTotalLevelSkillCashSlot( int nSlotIndex ); #endif #if defined(PRE_SPECIALBOX) bool LoadKeepBoxProvideItem(); TKeepBoxProvideItemData *GetKeepBoxProvideItemData(int nType); #endif // #if defined(PRE_SPECIALBOX) #ifdef PRE_ADD_JOINGUILD_SUPPORT bool LoadGuildSupport(); int GetRewardGuildSupportMailID(int nLevel); int GetRewardFisrtGuildJoinMailID(int nLevel); #endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT #if defined(PRE_ADD_REMOTE_QUEST) bool LoadRemoteQuestData(); int GetRemoteQuestDataSize(); TRemoteQuestData * GetRemoteQuestData( int nArrayIndex ); TRemoteQuestData * GetRemoteQuestDataByQuestID( int nQuestID ); #endif #if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD) bool LoadBonusDropTable(void); int GetBonusDropGroupID(int nMapID, int nNeedItemID); #endif // #if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD) #if defined( PRE_WORLDCOMBINE_PVP ) bool LoadWorldPVPMissionRoom(); TWorldPvPMissionRoom* GetWorldPvPMissionRoom(int nItemID); TVecWorldPvPMissionRoom& GetWorldVecPvPMissionRoom(); bool bIsWorldPvPRoomAllowMode( int nMode ); #endif #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD) bool LoadDropItemEnchant(); TItemDropEnchantData* GetDropItemEnchant(int nDropTableID) ; #endif // #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD) #if defined( PRE_ALTEIAWORLD_EXPLORE ) bool LoadAlteiaWorldMapInfo(); TAlteiaWorldMapInfo* GetAlteiaWorldMapInfo(int nIndex); int GetAlteiaWorldMapMaxCount() { return m_nAlteiaWorldMapMaxCount;} bool bIsAlteiaWorldEventTime(); time_t GetAlteiaWorldEventBeginTime() { return m_tAlteiaWorldBeginTime;} time_t GetAlteiaWorldEventEndTime() { return m_tAlteiaWorldEndTime;} #endif // #if defined( PRE_ALTEIAWORLD_EXPLORE ) #if defined( PRE_ADD_STAMPSYSTEM ) bool LoadStampTable(); const StampSystem::TStampTableData * GetStampTableData( INT64 biTime ) const; #endif // #if defined( PRE_ADD_STAMPSYSTEM ) #if defined(PRE_ADD_TALISMAN_SYSTEM) bool LoadTalismanData(); TTalismanData* GetTalismanData(int nTalismanID); bool LoadTalismanSlotData(); TTalismanSlotData* GetTalismanSlotData(int nIndex); float GetTalismanSlotEfficiency(int nIndex); bool IsTalismanSlotLevel(int nTalismanIndex, int nCharLevel); #endif #if defined( PRE_DRAGONBUFF ) void AddWorldBuffData( int nItemID ); bool bIsWorldBuffData( int nItemID ); #endif #if defined( PRE_PVP_GAMBLEROOM ) bool LoadPVPGambleRoomData(); TPvPMissionRoom* GetPvPGambleRoom(int nItemID); #endif #if defined( PRE_ADD_STAGE_WEIGHT ) bool LoadStageWeightData(); const TStageWeightData* GetStageWeigthData( int nStageWeightID, DWORD dwUserCount ); #endif // #if defined( PRE_ADD_STAGE_WEIGHT ) TPVPSkills* GetPVPSkillPDamage(int nSkillID, int iSkillLevel); }; extern CDNGameDataManager* g_pDataManager;