diff --git a/server/common/item_length.h b/server/common/item_length.h index 2f44961..35c2e84 100755 --- a/server/common/item_length.h +++ b/server/common/item_length.h @@ -22,15 +22,9 @@ enum EItemMisc const BYTE ITEM_SOCKET_REMAIN_SEC = 0; enum EItemValueIdice { - ITEM_VALUE_DRAGON_SOUL_POLL_OUT_BONUS_IDX = 0, ITEM_VALUE_CHARGING_AMOUNT_IDX = 0, ITEM_VALUE_SECONDARY_COIN_UNIT_IDX = 0, }; -enum EItemDragonSoulSockets -{ - ITEM_SOCKET_DRAGON_SOUL_ACTIVE_IDX = 2, - ITEM_SOCKET_CHARGING_AMOUNT_IDX = 2, -}; // Çæ À̰йÌÄ£°Å ¾Æ´Ï¾ß? // ³ªÁß¿¡ ¼ÒÄÏ È®ÀåÇÏ¸é ¾î¼·Á°í ÀÌÁö¶ö -_-;;; enum EItemUniqueSockets @@ -127,33 +121,6 @@ enum EDragonSoulSubType DS_SLOT_MAX, }; -enum EDragonSoulGradeTypes -{ - DRAGON_SOUL_GRADE_NORMAL, - DRAGON_SOUL_GRADE_BRILLIANT, - DRAGON_SOUL_GRADE_RARE, - DRAGON_SOUL_GRADE_ANCIENT, - DRAGON_SOUL_GRADE_LEGENDARY, - DRAGON_SOUL_GRADE_MAX, - -}; - -enum EDragonSoulStepTypes -{ - DRAGON_SOUL_STEP_LOWEST, - DRAGON_SOUL_STEP_LOW, - DRAGON_SOUL_STEP_MID, - DRAGON_SOUL_STEP_HIGH, - DRAGON_SOUL_STEP_HIGHEST, - DRAGON_SOUL_STEP_MAX, -}; -#define DRAGON_SOUL_STRENGTH_MAX 7 - -enum EDSInventoryMaxNum -{ - DRAGON_SOUL_INVENTORY_MAX_NUM = DS_SLOT_MAX * DRAGON_SOUL_GRADE_MAX * DRAGON_SOUL_BOX_SIZE, -}; - enum EFishSubTypes { FISH_ALIVE, @@ -219,12 +186,6 @@ enum EUseSubTypes USE_PUT_INTO_RING_SOCKET, // 30 ¹ÝÁö ¼ÒÄÏ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¾ÆÀÌÅÛ (À¯´ÏÅ© ¹ÝÁö ¸»°í, »õ·Î Ãß°¡µÈ ¹ÝÁö ½½·Ô) }; -enum EExtractSubTypes -{ - EXTRACT_DRAGON_SOUL, - EXTRACT_DRAGON_HEART, -}; - enum EAutoUseSubTypes { AUTOUSE_POTION, diff --git a/server/common/length.h b/server/common/length.h index fba03e3..789eec9 100755 --- a/server/common/length.h +++ b/server/common/length.h @@ -56,10 +56,6 @@ enum EMisc MOB_SKILL_MAX_NUM = 5, POINT_MAX_NUM = 255, - DRAGON_SOUL_BOX_SIZE = 32, - DRAGON_SOUL_BOX_COLUMN_NUM = 8, - DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM, - DRAGON_SOUL_REFINE_GRID_SIZE = 15, MAX_AMOUNT_OF_MALL_BONUS = 20, WEAR_MAX_NUM = 32, @@ -141,8 +137,6 @@ enum EWearPositions enum EDragonSoulDeckType { - DRAGON_SOUL_DECK_0, - DRAGON_SOUL_DECK_1, DRAGON_SOUL_DECK_MAX_NUM = 2, DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 3, // NOTE: Áß¿ä! ¾ÆÁ÷ »ç¿ëÁßÀÌÁø ¾ÊÁö¸¸, 3ÆäÀÌÁö ºÐ·®À» ¿¹¾à ÇØ µÒ. DS DECKÀ» ´Ã¸± °æ¿ì ¹Ýµå½Ã ±× ¼ö¸¸Å­ RESERVED¿¡¼­ Â÷°¨ÇØ¾ß ÇÔ! @@ -732,8 +726,6 @@ typedef struct SItemPos case EQUIPMENT: case BELT_INVENTORY: return cell < INVENTORY_AND_EQUIP_SLOT_MAX; - case DRAGON_SOUL_INVENTORY: - return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM); // µ¿ÀûÀ¸·Î Å©±â°¡ Á¤ÇØÁö´Â window´Â valid üũ¸¦ ÇÒ ¼ö°¡ ¾ø´Ù. case SAFEBOX: case MALL: diff --git a/server/game/src/affect.h b/server/game/src/affect.h index 756e778..1792590 100755 --- a/server/game/src/affect.h +++ b/server/game/src/affect.h @@ -95,9 +95,9 @@ enum EAffectTypes AFFECT_AUTO_HP_RECOVERY = 534, AFFECT_AUTO_SP_RECOVERY = 535, - AFFECT_DRAGON_SOUL_QUALIFIED = 540, - AFFECT_DRAGON_SOUL_DECK_0 = 541, - AFFECT_DRAGON_SOUL_DECK_1 = 542, + // AFFECT_DRAGON_SOUL_QUALIFIED = 540, // reserviert, Drachenseelensystem entfernt, Werte nicht wiederverwenden (alte DB-Zeilen) + // AFFECT_DRAGON_SOUL_DECK_0 = 541, + // AFFECT_DRAGON_SOUL_DECK_1 = 542, AFFECT_RAMADAN_ABILITY = 300, diff --git a/server/game/src/char.cpp b/server/game/src/char.cpp index 7bc34e8..208bfc4 100755 --- a/server/game/src/char.cpp +++ b/server/game/src/char.cpp @@ -60,7 +60,6 @@ #ifdef __PET_SYSTEM__ #include "PetSystem.h" #endif -#include "DragonSoul.h" extern const BYTE g_aBuffOnAttrPoints; extern bool RaceToJob(unsigned race, unsigned *ret_job); @@ -382,8 +381,6 @@ void CHARACTER::Initialize() m_fAttMul = 1.0f; m_fDamMul = 1.0f; - m_pointsInstant.iDragonSoulActiveDeck = -1; - memset(&m_tvLastSyncTime, 0, sizeof(m_tvLastSyncTime)); m_iSyncHackCount = 0; } @@ -469,7 +466,6 @@ void CHARACTER::Destroy() if (NULL == m_pkMobData) { - DragonSoul_CleanUp(); ClearItem(); } @@ -2384,24 +2380,6 @@ void CHARACTER::ComputePoints() } } - // ¿ëÈ¥¼® ½Ã½ºÅÛ - // ComputePoints¿¡¼­´Â Äɸ¯ÅÍÀÇ ¸ðµç ¼Ó¼º°ªÀ» ÃʱâÈ­Çϰí, - // ¾ÆÀÌÅÛ, ¹öÇÁ µî¿¡ °ü·ÃµÈ ¸ðµç ¼Ó¼º°ªÀ» Àç°è»êÇϱ⠶§¹®¿¡, - // ¿ëÈ¥¼® ½Ã½ºÅÛµµ ActiveDeck¿¡ ÀÖ´Â ¸ðµç ¿ëÈ¥¼®ÀÇ ¼Ó¼º°ªÀ» ´Ù½Ã Àû¿ë½ÃÄÑ¾ß ÇÑ´Ù. - if (DragonSoul_IsDeckActivated()) - { - for (int i = WEAR_MAX_NUM + DS_SLOT_MAX * DragonSoul_GetActiveDeck(); - i < WEAR_MAX_NUM + DS_SLOT_MAX * (DragonSoul_GetActiveDeck() + 1); i++) - { - LPITEM pItem = GetWear(i); - if (pItem) - { - if (DSManager::instance().IsTimeLeftDragonSoul(pItem)) - pItem->ModifyPoints(true); - } - } - } - if (GetHP() > GetMaxHP()) PointChange(POINT_HP, GetMaxHP() - GetHP()); diff --git a/server/game/src/char.h b/server/game/src/char.h index bab619a..2b1e8a0 100755 --- a/server/game/src/char.h +++ b/server/game/src/char.h @@ -397,10 +397,6 @@ typedef struct character_point_instant LPITEM pItems[INVENTORY_AND_EQUIP_SLOT_MAX]; BYTE bItemGrid[INVENTORY_AND_EQUIP_SLOT_MAX]; - // ¿ëÈ¥¼® Àκ¥Å丮. - LPITEM pDSItems[DRAGON_SOUL_INVENTORY_MAX_NUM]; - WORD wDSItemGrid[DRAGON_SOUL_INVENTORY_MAX_NUM]; - // by mhh LPITEM pCubeItems[CUBE_MAX_NUM]; LPCHARACTER pCubeNpc; @@ -415,8 +411,6 @@ typedef struct character_point_instant BYTE bBlockMode; - int iDragonSoulActiveDeck; - LPENTITY m_pDragonSoulRefineWindowOpener; } CHARACTER_POINT_INSTANT; #define TRIGGERPARAM LPCHARACTER ch, LPCHARACTER causer @@ -1129,8 +1123,6 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider void AutoGiveItem(LPITEM item, bool longOwnerShip = false); int GetEmptyInventory(BYTE size) const; - int GetEmptyDragonSoulInventory(LPITEM pItem) const; - void CopyDragonSoulItemGrid(std::vector& vDragonSoulItemGrid) const; int CountEmptyInventory() const; @@ -2009,38 +2001,6 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider void SetItemAward_cmd(char* cmd) { strcpy(itemAward_cmd,cmd); } //void SetItemAward_flag(bool flag) { itemAward_flag = flag; } - public: - //¿ëÈ¥¼® - - // ij¸¯ÅÍÀÇ affect, quest°¡ load µÇ±â Àü¿¡ DragonSoul_Initialize¸¦ È£ÃâÇÏ¸é ¾ÈµÈ´Ù. - // affect°¡ °¡Àå ¸¶Áö¸·¿¡ ·ÎµåµÇ¾î LoadAffect¿¡¼­ È£ÃâÇÔ. - void DragonSoul_Initialize(); - - bool DragonSoul_IsQualified() const; - void DragonSoul_GiveQualification(); - - int DragonSoul_GetActiveDeck() const; - bool DragonSoul_IsDeckActivated() const; - bool DragonSoul_ActivateDeck(int deck_idx); - - void DragonSoul_DeactivateAll(); - // ¹Ýµå½Ã ClearItem Àü¿¡ ºÒ·¯¾ß ÇÑ´Ù. - // ¿Ö³ÄÇϸé.... - // ¿ëÈ¥¼® Çϳª Çϳª¸¦ deactivateÇÒ ¶§¸¶´Ù µ¦¿¡ activeÀÎ ¿ëÈ¥¼®ÀÌ ÀÖ´ÂÁö È®ÀÎÇϰí, - // activeÀÎ ¿ëÈ¥¼®ÀÌ Çϳªµµ ¾ø´Ù¸é, ij¸¯ÅÍÀÇ ¿ëÈ¥¼® affect¿Í, Ȱ¼º »óŸ¦ Á¦°ÅÇÑ´Ù. - // - // ÇÏÁö¸¸ ClearItem ½Ã, ij¸¯ÅͰ¡ Âø¿ëÇϰí ÀÖ´Â ¸ðµç ¾ÆÀÌÅÛÀ» unequipÇÏ´Â ¹Ù¶÷¿¡, - // ¿ëÈ¥¼® Affect°¡ Á¦°ÅµÇ°í, °á±¹ ·Î±×ÀÎ ½Ã, ¿ëÈ¥¼®ÀÌ È°¼ºÈ­µÇÁö ¾Ê´Â´Ù. - // (UnequipÇÒ ¶§¿¡´Â ·Î±×¾Æ¿ô »óÅÂÀÎÁö, ¾Æ´ÑÁö ¾Ë ¼ö ¾ø´Ù.) - // ¿ëÈ¥¼®¸¸ deactivate½Ã۰í ij¸¯ÅÍÀÇ ¿ëÈ¥¼® µ¦ Ȱ¼º »óÅ´ °Çµå¸®Áö ¾Ê´Â´Ù. - void DragonSoul_CleanUp(); - // ¿ëÈ¥¼® °­È­Ã¢ - public: - bool DragonSoul_RefineWindow_Open(LPENTITY pEntity); - bool DragonSoul_RefineWindow_Close(); - LPENTITY DragonSoul_RefineWindow_GetOpener() { return m_pointsInstant.m_pDragonSoulRefineWindowOpener; } - bool DragonSoul_RefineWindow_CanRefine(); - private: // SyncPositionÀ» ¾Ç¿ëÇÏ¿© ŸÀ¯Àú¸¦ ÀÌ»óÇÑ °÷À¸·Î º¸³»´Â ÇÙ ¹æ¾îÇϱâ À§ÇÏ¿©, // SyncPositionÀÌ ÀϾ ¶§¸¦ ±â·Ï. diff --git a/server/game/src/char_affect.cpp b/server/game/src/char_affect.cpp index 5fd655d..cbd6d4a 100755 --- a/server/game/src/char_affect.cpp +++ b/server/game/src/char_affect.cpp @@ -16,7 +16,6 @@ #include "arena.h" #include "horsename_manager.h" #include "item.h" -#include "DragonSoul.h" #define IS_NO_SAVE_AFFECT(type) ((type) == AFFECT_WAR_FLAG || (type) == AFFECT_REVIVE_INVISIBLE || ((type) >= AFFECT_PREMIUM_START && (type) <= AFFECT_PREMIUM_END)) #define IS_NO_CLEAR_ON_DEATH_AFFECT(type) ((type) == AFFECT_BLOCK_CHAT || ((type) >= 500 && (type) < 600)) @@ -529,8 +528,6 @@ void CHARACTER::LoadAffect(DWORD dwCount, TPacketAffectElement * pElements) m_bIsLoadedAffect = true; - // ¿ëÈ¥¼® ¼ÂÆÃ ·Îµå ¹× ÃʱâÈ­ - DragonSoul_Initialize(); } bool CHARACTER::AddAffect(DWORD dwType, BYTE bApplyOn, long lApplyValue, DWORD dwFlag, long lDuration, long lSPCost, bool bOverride, bool IsCube ) diff --git a/server/game/src/char_item.cpp b/server/game/src/char_item.cpp index bcc72eb..f174d29 100755 --- a/server/game/src/char_item.cpp +++ b/server/game/src/char_item.cpp @@ -42,7 +42,6 @@ #include "shop.h" #include "../../common/VnumHelper.h" -#include "DragonSoul.h" #include "buff_on_attributes.h" #include "belt_inventory_helper.h" @@ -221,7 +220,7 @@ bool CHARACTER::CanHandleItem(bool bSkipCheckRefine, bool bSkipObserver) if (m_bUnderRefine) return false; - if (IsCubeOpen() || NULL != DragonSoul_RefineWindow_GetOpener()) + if (IsCubeOpen()) return false; if (IsWarping()) @@ -250,13 +249,6 @@ LPITEM CHARACTER::GetItem(TItemPos Cell) const return NULL; } return m_pointsInstant.pItems[wCell]; - case DRAGON_SOUL_INVENTORY: - if (wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM) - { - sys_err("CHARACTER::GetInventoryItem: invalid DS item cell %d", wCell); - return NULL; - } - return m_pointsInstant.pDSItems[wCell]; default: return NULL; @@ -338,61 +330,6 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) m_pointsInstant.pItems[wCell] = pItem; } break; - // ¿ëÈ¥¼® Àκ¥Å丮 - case DRAGON_SOUL_INVENTORY: - { - LPITEM pOld = m_pointsInstant.pDSItems[wCell]; - - if (pOld) - { - if (wCell < DRAGON_SOUL_INVENTORY_MAX_NUM) - { - for (int i = 0; i < pOld->GetSize(); ++i) - { - int p = wCell + (i * DRAGON_SOUL_BOX_COLUMN_NUM); - - if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM) - continue; - - if (m_pointsInstant.pDSItems[p] && m_pointsInstant.pDSItems[p] != pOld) - continue; - - m_pointsInstant.wDSItemGrid[p] = 0; - } - } - else - m_pointsInstant.wDSItemGrid[wCell] = 0; - } - - if (pItem) - { - if (wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM) - { - sys_err("CHARACTER::SetItem: invalid DS item cell %d", wCell); - return; - } - - if (wCell < DRAGON_SOUL_INVENTORY_MAX_NUM) - { - for (int i = 0; i < pItem->GetSize(); ++i) - { - int p = wCell + (i * DRAGON_SOUL_BOX_COLUMN_NUM); - - if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM) - continue; - - // wCell + 1 ·Î ÇÏ´Â °ÍÀº ºó°÷À» üũÇÒ ¶§ °°Àº - // ¾ÆÀÌÅÛÀº ¿¹¿Üó¸®Çϱâ À§ÇÔ - m_pointsInstant.wDSItemGrid[p] = wCell + 1; - } - } - else - m_pointsInstant.wDSItemGrid[wCell] = wCell + 1; - } - - m_pointsInstant.pDSItems[wCell] = pItem; - } - break; default: sys_err ("Invalid Inventory type %d", window_type); return; @@ -411,7 +348,7 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) pack.vnum = pItem->GetVnum(); pack.flags = pItem->GetFlag(); pack.anti_flags = pItem->GetAntiFlag(); - pack.highlight = (Cell.window_type == DRAGON_SOUL_INVENTORY); + pack.highlight = false; thecore_memcpy(pack.alSockets, pItem->GetSockets(), sizeof(pack.alSockets)); @@ -445,9 +382,6 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) else pItem->SetWindow(EQUIPMENT); break; - case DRAGON_SOUL_INVENTORY: - pItem->SetWindow(DRAGON_SOUL_INVENTORY); - break; } } } @@ -455,7 +389,7 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) LPITEM CHARACTER::GetWear(BYTE bCell) const { // > WEAR_MAX_NUM : ¿ëÈ¥¼® ½½·Ôµé. - if (bCell >= WEAR_MAX_NUM + DRAGON_SOUL_DECK_MAX_NUM * DS_SLOT_MAX) + if (bCell >= WEAR_MAX_NUM) { sys_err("CHARACTER::GetWear: invalid wear cell %d", bCell); return NULL; @@ -467,7 +401,7 @@ LPITEM CHARACTER::GetWear(BYTE bCell) const void CHARACTER::SetWear(BYTE bCell, LPITEM item) { // > WEAR_MAX_NUM : ¿ëÈ¥¼® ½½·Ôµé. - if (bCell >= WEAR_MAX_NUM + DRAGON_SOUL_DECK_MAX_NUM * DS_SLOT_MAX) + if (bCell >= WEAR_MAX_NUM) { sys_err("CHARACTER::SetItem: invalid item cell %d", bCell); return; @@ -504,17 +438,6 @@ void CHARACTER::ClearItem() SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255); } } - for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i) - { - if ((item = GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i)))) - { - item->SetSkipSave(true); - ITEM_MANAGER::instance().FlushDelayedSave(item); - - item->RemoveFromCharacter(); - M2_DESTROY_ITEM(item); - } - } } bool CHARACTER::IsEmptyItemGrid(TItemPos Cell, BYTE bSize, int iExceptionCell) const @@ -614,67 +537,6 @@ bool CHARACTER::IsEmptyItemGrid(TItemPos Cell, BYTE bSize, int iExceptionCell) c } } break; - case DRAGON_SOUL_INVENTORY: - { - WORD wCell = Cell.cell; - if (wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM) - return false; - - // bItemCellÀº 0ÀÌ falseÀÓÀ» ³ªÅ¸³»±â À§ÇØ + 1 ÇØ¼­ ó¸®ÇÑ´Ù. - // µû¶ó¼­ iExceptionCell¿¡ 1À» ´õÇØ ºñ±³ÇÑ´Ù. - iExceptionCell++; - - if (m_pointsInstant.wDSItemGrid[wCell]) - { - if (m_pointsInstant.wDSItemGrid[wCell] == iExceptionCell) - { - if (bSize == 1) - return true; - - int j = 1; - - do - { - BYTE p = wCell + (DRAGON_SOUL_BOX_COLUMN_NUM * j); - - if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM) - return false; - - if (m_pointsInstant.wDSItemGrid[p]) - if (m_pointsInstant.wDSItemGrid[p] != iExceptionCell) - return false; - } - while (++j < bSize); - - return true; - } - else - return false; - } - - // Å©±â°¡ 1À̸é ÇÑÄ­À» Â÷ÁöÇÏ´Â °ÍÀ̹ǷΠ±×³É ¸®ÅÏ - if (1 == bSize) - return true; - else - { - int j = 1; - - do - { - BYTE p = wCell + (DRAGON_SOUL_BOX_COLUMN_NUM * j); - - if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM) - return false; - - if (m_pointsInstant.bItemGrid[p]) - if (m_pointsInstant.wDSItemGrid[p] != iExceptionCell) - return false; - } - while (++j < bSize); - - return true; - } - } } } @@ -688,34 +550,6 @@ int CHARACTER::GetEmptyInventory(BYTE size) const return -1; } -int CHARACTER::GetEmptyDragonSoulInventory(LPITEM pItem) const -{ - if (NULL == pItem || !pItem->IsDragonSoul()) - return -1; - if (!DragonSoul_IsQualified()) - { - return -1; - } - BYTE bSize = pItem->GetSize(); - WORD wBaseCell = DSManager::instance().GetBasePosition(pItem); - - if (WORD_MAX == wBaseCell) - return -1; - - for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; ++i) - if (IsEmptyItemGrid(TItemPos(DRAGON_SOUL_INVENTORY, i + wBaseCell), bSize)) - return i + wBaseCell; - - return -1; -} - -void CHARACTER::CopyDragonSoulItemGrid(std::vector& vDragonSoulItemGrid) const -{ - vDragonSoulItemGrid.resize(DRAGON_SOUL_INVENTORY_MAX_NUM); - - std::copy(m_pointsInstant.wDSItemGrid, m_pointsInstant.wDSItemGrid + DRAGON_SOUL_INVENTORY_MAX_NUM, vDragonSoulItemGrid.begin()); -} - int CHARACTER::CountEmptyInventory() const { int count = 0; @@ -1962,23 +1796,6 @@ bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell) else UnequipItem(item); break; - // Âø¿ëÇÏÁö ¾ÊÀº ¿ëÈ¥¼®Àº »ç¿ëÇÒ ¼ö ¾ø´Ù. - // Á¤»óÀûÀΠŬ¶ó¶ó¸é, ¿ëÈ¥¼®¿¡ °üÇÏ¿© item use ÆÐŶÀ» º¸³¾ ¼ö ¾ø´Ù. - // ¿ëÈ¥¼® Âø¿ëÀº item move ÆÐŶÀ¸·Î ÇÑ´Ù. - // Âø¿ëÇÑ ¿ëÈ¥¼®Àº ÃßÃâÇÑ´Ù. - case ITEM_DS: - { - if (!item->IsEquipped()) - return false; - return DSManager::instance().PullOut(this, NPOS, item); - break; - } - case ITEM_SPECIAL_DS: - if (!item->IsEquipped()) - EquipItem(item); - else - UnequipItem(item); - break; case ITEM_FISH: { @@ -2098,14 +1915,6 @@ bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell) } } - if( (dwBoxVnum > 51500 && dwBoxVnum < 52000) || (dwBoxVnum >= 50255 && dwBoxVnum <= 50260) ) // ¿ëÈ¥¿ø¼®µé - { - if( !(this->DragonSoul_IsQualified()) ) - { - ChatPacket(CHAT_TYPE_INFO,LC_TEXT("¸ÕÀú ¿ëÈ¥¼® Äù½ºÆ®¸¦ ¿Ï·áÇÏ¼Å¾ß ÇÕ´Ï´Ù.")); - return false; - } - } if (GiveItemFromSpecialItemGroup(dwBoxVnum, dwVnums, dwCounts, item_gets, count)) { @@ -2435,94 +2244,6 @@ bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell) switch (item->GetSubType()) { - case USE_TIME_CHARGE_PER: - { - LPITEM pDestItem = GetItem(DestCell); - if (NULL == pDestItem) - { - return false; - } - // ¿ì¼± ¿ëÈ¥¼®¿¡ °üÇØ¼­¸¸ Çϵµ·Ï ÇÑ´Ù. - if (pDestItem->IsDragonSoul()) - { - int ret; - char buf[128]; - if (item->GetVnum() == DRAGON_HEART_VNUM) - { - ret = pDestItem->GiveMoreTime_Per((float)item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX)); - } - else - { - ret = pDestItem->GiveMoreTime_Per((float)item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - } - if (ret > 0) - { - if (item->GetVnum() == DRAGON_HEART_VNUM) - { - sprintf(buf, "Inc %ds by item{VN:%d SOC%d:%d}", ret, item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX)); - } - else - { - sprintf(buf, "Inc %ds by item{VN:%d VAL%d:%d}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - } - - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%dÃÊ ¸¸Å­ ÃæÀüµÇ¾ú½À´Ï´Ù."), ret); - item->SetCount(item->GetCount() - 1); - LogManager::instance().ItemLog(this, item, "DS_CHARGING_SUCCESS", buf); - return true; - } - else - { - if (item->GetVnum() == DRAGON_HEART_VNUM) - { - sprintf(buf, "No change by item{VN:%d SOC%d:%d}", item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX)); - } - else - { - sprintf(buf, "No change by item{VN:%d VAL%d:%d}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - } - - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÃæÀüÇÒ ¼ö ¾ø½À´Ï´Ù.")); - LogManager::instance().ItemLog(this, item, "DS_CHARGING_FAILED", buf); - return false; - } - } - else - return false; - } - break; - case USE_TIME_CHARGE_FIX: - { - LPITEM pDestItem = GetItem(DestCell); - if (NULL == pDestItem) - { - return false; - } - // ¿ì¼± ¿ëÈ¥¼®¿¡ °üÇØ¼­¸¸ Çϵµ·Ï ÇÑ´Ù. - if (pDestItem->IsDragonSoul()) - { - int ret = pDestItem->GiveMoreTime_Fix(item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - char buf[128]; - if (ret) - { - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%dÃÊ ¸¸Å­ ÃæÀüµÇ¾ú½À´Ï´Ù."), ret); - sprintf(buf, "Increase %ds by item{VN:%d VAL%d:%d}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - LogManager::instance().ItemLog(this, item, "DS_CHARGING_SUCCESS", buf); - item->SetCount(item->GetCount() - 1); - return true; - } - else - { - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÃæÀüÇÒ ¼ö ¾ø½À´Ï´Ù.")); - sprintf(buf, "No change by item{VN:%d VAL%d:%d}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX)); - LogManager::instance().ItemLog(this, item, "DS_CHARGING_FAILED", buf); - return false; - } - } - else - return false; - } - break; case USE_SPECIAL: switch (item->GetVnum()) @@ -5207,33 +4928,6 @@ bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell) } } break; - case ITEM_EXTRACT: - { - LPITEM pDestItem = GetItem(DestCell); - if (NULL == pDestItem) - { - return false; - } - switch (item->GetSubType()) - { - case EXTRACT_DRAGON_SOUL: - if (pDestItem->IsDragonSoul()) - { - return DSManager::instance().PullOut(this, NPOS, pDestItem, item); - } - return false; - case EXTRACT_DRAGON_HEART: - if (pDestItem->IsDragonSoul()) - { - return DSManager::instance().ExtractDragonHeart(this, pDestItem, item); - } - return false; - default: - return false; - } - } - break; - case ITEM_NONE: sys_err("Item type NONE %s", item->GetName()); break; @@ -5444,8 +5138,6 @@ bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount) if (!CanHandleItem()) { - if (NULL != DragonSoul_RefineWindow_GetOpener()) - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°­È­Ã¢À» ¿¬ »óÅ¿¡¼­´Â ¾ÆÀÌÅÛÀ» ¿Å±æ ¼ö ¾ø½À´Ï´Ù.")); return false; } @@ -5648,8 +5340,6 @@ bool CHARACTER::MoveItem(TItemPos Cell, TItemPos DestCell, BYTE count) if (!CanHandleItem()) { - if (NULL != DragonSoul_RefineWindow_GetOpener()) - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°­È­Ã¢À» ¿¬ »óÅ¿¡¼­´Â ¾ÆÀÌÅÛÀ» ¿Å±æ ¼ö ¾ø½À´Ï´Ù.")); return false; } @@ -5677,27 +5367,6 @@ bool CHARACTER::MoveItem(TItemPos Cell, TItemPos DestCell, BYTE count) } else { - if (item->IsDragonSoul()) - { - if (item->IsEquipped()) - { - return DSManager::instance().PullOut(this, DestCell, item); - } - else - { - if (DestCell.window_type != DRAGON_SOUL_INVENTORY) - { - return false; - } - - if (!DSManager::instance().IsValidCellForThisItem(item, DestCell)) - return false; - } - } - // ¿ëÈ¥¼®ÀÌ ¾Æ´Ñ ¾ÆÀÌÅÛÀº ¿ëÈ¥¼® Àκ¥¿¡ µé¾î°¥ ¼ö ¾ø´Ù. - else if (DRAGON_SOUL_INVENTORY == DestCell.window_type) - return false; - LPITEM item2; if ((item2 = GetItem(DestCell)) && item != item2 && item2->IsStackable() && @@ -5952,30 +5621,15 @@ bool CHARACTER::PickupItem(DWORD dwVID) } int iEmptyCell; - if (item->IsDragonSoul()) - { - if ((iEmptyCell = GetEmptyDragonSoulInventory(item)) == -1) - { - sys_log(0, "No empty ds inventory pid %u size %ud itemid %u", GetPlayerID(), item->GetSize(), item->GetID()); - ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÁöÇϰí ÀÖ´Â ¾ÆÀÌÅÛÀÌ ³Ê¹« ¸¹½À´Ï´Ù.")); - return false; - } - } - else - { if ((iEmptyCell = GetEmptyInventory(item->GetSize())) == -1) { sys_log(0, "No empty inventory pid %u size %ud itemid %u", GetPlayerID(), item->GetSize(), item->GetID()); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÁöÇϰí ÀÖ´Â ¾ÆÀÌÅÛÀÌ ³Ê¹« ¸¹½À´Ï´Ù.")); return false; } - } item->RemoveFromGround(); - if (item->IsDragonSoul()) - item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell)); - else item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell)); char szHint[32+1]; @@ -6001,21 +5655,6 @@ bool CHARACTER::PickupItem(DWORD dwVID) int iEmptyCell; - if (item->IsDragonSoul()) - { - if (!(owner && (iEmptyCell = owner->GetEmptyDragonSoulInventory(item)) != -1)) - { - owner = this; - - if ((iEmptyCell = GetEmptyDragonSoulInventory(item)) == -1) - { - owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÁöÇϰí ÀÖ´Â ¾ÆÀÌÅÛÀÌ ³Ê¹« ¸¹½À´Ï´Ù.")); - return false; - } - } - } - else - { if (!(owner && (iEmptyCell = owner->GetEmptyInventory(item->GetSize())) != -1)) { owner = this; @@ -6026,13 +5665,9 @@ bool CHARACTER::PickupItem(DWORD dwVID) return false; } } - } item->RemoveFromGround(); - if (item->IsDragonSoul()) - item->AddToCharacter(owner, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell)); - else item->AddToCharacter(owner, TItemPos(INVENTORY, iEmptyCell)); char szHint[32+1]; @@ -6147,9 +5782,6 @@ bool CHARACTER::UnequipItem(LPITEM item) if (false == CanUnequipNow(item)) return false; - if (item->IsDragonSoul()) - pos = GetEmptyDragonSoulInventory(item); - else pos = GetEmptyInventory(item->GetSize()); // HARD CODING @@ -6157,11 +5789,6 @@ bool CHARACTER::UnequipItem(LPITEM item) ShowAlignment(true); item->RemoveFromCharacter(); - if (item->IsDragonSoul()) - { - item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, pos)); - } - else item->AddToCharacter(this, TItemPos(INVENTORY, pos)); CheckMaximumPoints(); @@ -6286,25 +5913,6 @@ bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) LogManager::instance().ItemLog(this, item, "ITEM_SPLIT", szSplitBuf); } - // ¿ëÈ¥¼® Ư¼ö ó¸® - if (item->IsDragonSoul()) - { - // °°Àº ŸÀÔÀÇ ¿ëÈ¥¼®ÀÌ ÀÌ¹Ì µé¾î°¡ ÀÖ´Ù¸é Âø¿ëÇÒ ¼ö ¾ø´Ù. - // ¿ëÈ¥¼®Àº swapÀ» Áö¿øÇÏ¸é ¾ÈµÊ. - if(GetInventoryItem(INVENTORY_MAX_NUM + iWearCell)) - { - ChatPacket(CHAT_TYPE_INFO, "ÀÌ¹Ì °°Àº Á¾·ùÀÇ ¿ëÈ¥¼®À» Âø¿ëÇϰí ÀÖ½À´Ï´Ù."); - return false; - } - - if (!item->EquipTo(this, iWearCell)) - { - return false; - } - } - // ¿ëÈ¥¼®ÀÌ ¾Æ´Ô. - else - { // Âø¿ëÇÒ °÷¿¡ ¾ÆÀÌÅÛÀÌ ÀÖ´Ù¸é, if (GetWear(iWearCell) && !IS_SET(GetWear(iWearCell)->GetFlag(), ITEM_FLAG_IRREMOVABLE)) { @@ -6326,7 +5934,6 @@ bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) SyncQuickslot(QUICKSLOT_TYPE_ITEM, bOldCell, iWearCell); } } - } if (true == item->IsEquipped()) { @@ -6650,20 +6257,10 @@ void CHARACTER::AutoGiveItem(LPITEM item, bool longOwnerShip) } int cell; - if (item->IsDragonSoul()) - { - cell = GetEmptyDragonSoulInventory(item); - } - else - { cell = GetEmptyInventory (item->GetSize()); - } if (cell != -1) { - if (item->IsDragonSoul()) - item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, cell)); - else item->AddToCharacter(this, TItemPos(INVENTORY, cell)); LogManager::instance().ItemLog(this, item, "SYSTEM", item->GetName()); @@ -6770,11 +6367,6 @@ LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool } int iEmptyCell; - if (item->IsDragonSoul()) - { - iEmptyCell = GetEmptyDragonSoulInventory(item); - } - else iEmptyCell = GetEmptyInventory(item->GetSize()); if (iEmptyCell != -1) @@ -6782,9 +6374,6 @@ LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool if (bMsg) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¾ÆÀÌÅÛ È¹µæ: %s"), item->GetName()); - if (item->IsDragonSoul()) - item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell)); - else item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell)); LogManager::instance().ItemLog(this, item, "SYSTEM", item->GetName()); @@ -7584,9 +7173,6 @@ bool CHARACTER::IsValidItemPosition(TItemPos Pos) const case EQUIPMENT: return cell < (INVENTORY_AND_EQUIP_SLOT_MAX); - case DRAGON_SOUL_INVENTORY: - return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM); - case SAFEBOX: if (NULL != m_pkSafebox) return m_pkSafebox->IsValidPosition(cell); @@ -7725,9 +7311,6 @@ bool CHARACTER::CanUnequipNow(const LPITEM item, const TItemPos& srcCell, const { int pos = -1; - if (item->IsDragonSoul()) - pos = GetEmptyDragonSoulInventory(item); - else pos = GetEmptyInventory(item->GetSize()); VERIFY_MSG( -1 == pos, "¼ÒÁöǰ¿¡ ºó °ø°£ÀÌ ¾ø½À´Ï´Ù." ); diff --git a/server/game/src/char_quickslot.cpp b/server/game/src/char_quickslot.cpp index 884cd3b..1c4376e 100755 --- a/server/game/src/char_quickslot.cpp +++ b/server/game/src/char_quickslot.cpp @@ -137,8 +137,6 @@ bool CHARACTER::SwapQuickslot(BYTE a, BYTE b) void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos) { - if (pItem->IsDragonSoul()) - return; for ( int i=0; i < QUICKSLOT_MAX_NUM; ++i ) { if ( m_quickslot[i].type == bType && m_quickslot[i].pos == bOldPos ) diff --git a/server/game/src/cmd.cpp b/server/game/src/cmd.cpp index 3eef280..5ae7834 100755 --- a/server/game/src/cmd.cpp +++ b/server/game/src/cmd.cpp @@ -272,8 +272,6 @@ ACMD (do_attr_full_set); ACMD (do_all_skill_master); // ¾ÆÀÌÅÛ Âø¿ë. iconÀÌ ¾ø¾î Ŭ¶ó¿¡¼­ È®ÀÎ ÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛ Âø¿ëÀ» À§ÇØ ¸¸µê. ACMD (do_use_item); -ACMD (do_dragon_soul); -ACMD (do_ds_list); ACMD (do_clear_affect); struct command_info cmd_info[] = @@ -584,8 +582,6 @@ struct command_info cmd_info[] = { "all_skill_master", do_all_skill_master, 0, POS_DEAD, GM_LOW_WIZARD}, { "use_item", do_use_item, 0, POS_DEAD, GM_LOW_WIZARD}, - { "dragon_soul", do_dragon_soul, 0, POS_DEAD, GM_PLAYER }, - { "ds_list", do_ds_list, 0, POS_DEAD, GM_PLAYER }, { "do_clear_affect", do_clear_affect, 0, POS_DEAD, GM_LOW_WIZARD}, { "\n", NULL, 0, POS_DEAD, GM_IMPLEMENTOR } /* ¹Ýµå½Ã ÀÌ °ÍÀÌ ¸¶Áö¸·À̾î¾ß ÇÑ´Ù. */ diff --git a/server/game/src/cmd_gm.cpp b/server/game/src/cmd_gm.cpp index e3ada84..c6a80ae 100755 --- a/server/game/src/cmd_gm.cpp +++ b/server/game/src/cmd_gm.cpp @@ -35,7 +35,6 @@ #include "pcbang.h" #include "threeway_war.h" #include "unique_item.h" -#include "DragonSoul.h" extern bool DropEvent_RefineBox_SetValue(const std::string& name, int value); @@ -533,28 +532,6 @@ ACMD(do_item) if (item) { - if (item->IsDragonSoul()) - { - int iEmptyPos = ch->GetEmptyDragonSoulInventory(item); - - if (iEmptyPos != -1) - { - item->AddToCharacter(ch, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyPos)); - LogManager::instance().ItemLog(ch, item, "GM", item->GetName()); - } - else - { - M2_DESTROY_ITEM(item); - if (!ch->DragonSoul_IsQualified()) - { - ch->ChatPacket(CHAT_TYPE_INFO, "Àκ¥ÀÌ È°¼ºÈ­ µÇÁö ¾ÊÀ½."); - } - else - ch->ChatPacket(CHAT_TYPE_INFO, "Not enough inventory space."); - } - } - else - { int iEmptyPos = ch->GetEmptyInventory(item->GetSize()); if (iEmptyPos != -1) @@ -567,7 +544,6 @@ ACMD(do_item) M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, "Not enough inventory space."); } - } } else { @@ -931,13 +907,6 @@ ACMD(do_item_purge) ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255); } } - for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i) - { - if ((item = ch->GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i )))) - { - ITEM_MANAGER::instance().RemoveItem(item, "PURGE"); - } - } } ACMD(do_state) @@ -4373,39 +4342,3 @@ ACMD (do_clear_affect) ch->ClearAffect(true); } -ACMD (do_dragon_soul) -{ - char arg1[512]; - const char* rest = one_argument (argument, arg1, sizeof(arg1)); - switch (arg1[0]) - { - case 'a': - { - one_argument (rest, arg1, sizeof(arg1)); - int deck_idx; - if (str_to_number(deck_idx, arg1) == false) - { - return; - } - ch->DragonSoul_ActivateDeck(deck_idx); - } - break; - case 'd': - { - ch->DragonSoul_DeactivateAll(); - } - break; - } -} - -ACMD (do_ds_list) -{ - for (int i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; i++) - { - TItemPos cell(DRAGON_SOUL_INVENTORY, i); - - LPITEM item = ch->GetItem(cell); - if (item != NULL) - ch->ChatPacket(CHAT_TYPE_INFO, "cell : %d, name : %s, id : %d", item->GetCell(), item->GetName(), item->GetID()); - } -} diff --git a/server/game/src/exchange.cpp b/server/game/src/exchange.cpp index a59452d..97fc180 100755 --- a/server/game/src/exchange.cpp +++ b/server/game/src/exchange.cpp @@ -12,7 +12,6 @@ #include "locale_service.h" #include "../../common/length.h" #include "exchange.h" -#include "DragonSoul.h" void exchange_packet(LPCHARACTER ch, BYTE sub_header, bool is_me, DWORD arg1, TItemPos arg2, DWORD arg3, void * pvData = NULL); @@ -325,68 +324,11 @@ bool CExchange::CheckSpace() s_grid2.Put(i - INVENTORY_MAX_NUM / 2, 1, item->GetSize()); } - // ¾Æ... ¹º°¡ °³º´½Å °°Áö¸¸... ¿ëÈ¥¼® Àκ¥À» ³ë¸Ö Àκ¥ º¸°í µû¶ó ¸¸µç ³» À߸øÀÌ´Ù ¤Ð¤Ð - static std::vector s_vDSGrid(DRAGON_SOUL_INVENTORY_MAX_NUM); - - // ÀÏ´Ü ¿ëÈ¥¼®À» ±³È¯ÇÏÁö ¾ÊÀ» °¡´É¼ºÀÌ Å©¹Ç·Î, ¿ëÈ¥¼® Àκ¥ º¹»ç´Â ¿ëÈ¥¼®ÀÌ ÀÖÀ» ¶§ Çϵµ·Ï ÇÑ´Ù. - bool bDSInitialized = false; - for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i) { if (!(item = m_apItems[i])) continue; - if (item->IsDragonSoul()) - { - if (!victim->DragonSoul_IsQualified()) - { - return false; - } - - if (!bDSInitialized) - { - bDSInitialized = true; - victim->CopyDragonSoulItemGrid(s_vDSGrid); - } - - bool bExistEmptySpace = false; - WORD wBasePos = DSManager::instance().GetBasePosition(item); - if (wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM) - return false; - - for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; i++) - { - WORD wPos = wBasePos + i; - // if (0 == s_vDSGrid[wBasePos]) - if (0 == s_vDSGrid[wPos]) // Fix - { - bool bEmpty = true; - for (int j = 1; j < item->GetSize(); j++) - { - if (s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM]) - { - bEmpty = false; - break; - } - } - if (bEmpty) - { - for (int j = 0; j < item->GetSize(); j++) - { - s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM] = wPos + 1; - } - bExistEmptySpace = true; - break; - } - } - if (bExistEmptySpace) - break; - } - if (!bExistEmptySpace) - return false; - } - else - { int iPos = s_grid1.FindBlank(1, item->GetSize()); if (iPos >= 0) @@ -407,7 +349,6 @@ bool CExchange::CheckSpace() } } } - } return true; } @@ -425,9 +366,6 @@ bool CExchange::Done() if (!(item = m_apItems[i])) continue; - if (item->IsDragonSoul()) - empty_pos = victim->GetEmptyDragonSoulInventory(item); - else empty_pos = victim->GetEmptyInventory(item->GetSize()); if (empty_pos < 0) @@ -448,9 +386,6 @@ bool CExchange::Done() m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255); item->RemoveFromCharacter(); - if (item->IsDragonSoul()) - item->AddToCharacter(victim, TItemPos(DRAGON_SOUL_INVENTORY, empty_pos)); - else item->AddToCharacter(victim, TItemPos(INVENTORY, empty_pos)); ITEM_MANAGER::instance().FlushDelayedSave(item); diff --git a/server/game/src/input_db.cpp b/server/game/src/input_db.cpp index caae600..27e5dc4 100755 --- a/server/game/src/input_db.cpp +++ b/server/game/src/input_db.cpp @@ -46,7 +46,6 @@ #include "map_location.h" // #include "HackShield.h" -#include "DragonSoul.h" #ifdef __AUCTION__ #include "auction_manager.h" @@ -928,7 +927,6 @@ void CInputDB::Boot(const char* data) char szSpecialItemGroupFileName[FILE_NAME_LEN]; char szMapIndexFileName[FILE_NAME_LEN]; char szItemVnumMaskTableFileName[FILE_NAME_LEN]; - char szDragonSoulTableFileName[FILE_NAME_LEN]; snprintf(szCommonDropItemFileName, sizeof(szCommonDropItemFileName), "%s/common_drop_item.txt", LocaleService_GetBasePath().c_str()); @@ -944,8 +942,6 @@ void CInputDB::Boot(const char* data) "%s/index", LocaleService_GetMapPath().c_str()); snprintf(szItemVnumMaskTableFileName, sizeof(szItemVnumMaskTableFileName), "%s/ori_to_new_table.txt", LocaleService_GetBasePath().c_str()); - snprintf(szDragonSoulTableFileName, sizeof(szDragonSoulTableFileName), - "%s/dragon_soul_table.txt", LocaleService_GetBasePath().c_str()); sys_log(0, "Initializing Informations of Cube System"); if (!Cube_InformationInitialize()) @@ -1009,14 +1005,6 @@ void CInputDB::Boot(const char* data) return; } - sys_log(0, "LoadLocaleFile: DragonSoulTable: %s", szDragonSoulTableFileName); - if (!DSManager::instance().ReadDragonSoulTableFile(szDragonSoulTableFileName)) - { - sys_err("cannot load DragonSoulTable: %s", szDragonSoulTableFileName); - //thecore_shutdown(); - //return; - } - // END_OF_LOCALE_SERVICE @@ -1577,7 +1565,6 @@ void CInputDB::ItemLoad(LPDESC d, const char * c_pData) switch (p->window) { case INVENTORY: - case DRAGON_SOUL_INVENTORY: item->AddToCharacter(ch, TItemPos(p->window, p->pos)); break; diff --git a/server/game/src/input_main.cpp b/server/game/src/input_main.cpp index cde05b4..be46c4a 100755 --- a/server/game/src/input_main.cpp +++ b/server/game/src/input_main.cpp @@ -40,7 +40,6 @@ #include "locale_service.h" // #include "HackShield.h" // #include "XTrapManager.h" -#include "DragonSoul.h" extern void SendShout(const char * szText, BYTE bEmpire); extern int g_nPortalLimitTime; @@ -2105,7 +2104,6 @@ void CInputMain::SafeboxCheckin(LPCHARACTER ch, const char * c_pData) } pkItem->RemoveFromCharacter(); - if (!pkItem->IsDragonSoul()) ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, p->ItemPos.cell, 255); pkSafebox->Add(p->bSafePos, pkItem); @@ -2139,40 +2137,6 @@ void CInputMain::SafeboxCheckout(LPCHARACTER ch, const char * c_pData, bool bMal if (!ch->IsEmptyItemGrid(p->ItemPos, pkItem->GetSize())) return; - // ¾ÆÀÌÅÛ ¸ô¿¡¼­ Àκ¥À¸·Î ¿Å±â´Â ºÎºÐ¿¡¼­ ¿ëÈ¥¼® Ư¼ö ó¸® - // (¸ô¿¡¼­ ¸¸µå´Â ¾ÆÀÌÅÛÀº item_proto¿¡ Á¤Àǵȴë·Î ¼Ó¼ºÀÌ ºÙ±â ¶§¹®¿¡, - // ¿ëÈ¥¼®ÀÇ °æ¿ì, ÀÌ Ã³¸®¸¦ ÇÏÁö ¾ÊÀ¸¸é ¼Ó¼ºÀÌ Çϳªµµ ºÙÁö ¾Ê°Ô µÈ´Ù.) - if (pkItem->IsDragonSoul()) - { - if (bMall) - { - DSManager::instance().DragonSoulItemInitialize(pkItem); - } - - if (DRAGON_SOUL_INVENTORY != p->ItemPos.window_type) - { - ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â°í> ¿Å±æ ¼ö ¾ø´Â À§Ä¡ÀÔ´Ï´Ù.")); - return; - } - - TItemPos DestPos = p->ItemPos; - if (!DSManager::instance().IsValidCellForThisItem(pkItem, DestPos)) - { - int iCell = ch->GetEmptyDragonSoulInventory(pkItem); - if (iCell < 0) - { - ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â°í> ¿Å±æ ¼ö ¾ø´Â À§Ä¡ÀÔ´Ï´Ù.")); - return ; - } - DestPos = TItemPos (DRAGON_SOUL_INVENTORY, iCell); - } - - pkSafebox->Remove(p->bSafePos); - pkItem->AddToCharacter(ch, DestPos); - ITEM_MANAGER::instance().FlushDelayedSave(pkItem); - } - else - { if (DRAGON_SOUL_INVENTORY == p->ItemPos.window_type) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â°í> ¿Å±æ ¼ö ¾ø´Â À§Ä¡ÀÔ´Ï´Ù.")); @@ -2195,7 +2159,6 @@ void CInputMain::SafeboxCheckout(LPCHARACTER ch, const char * c_pData, bool bMal } pkItem->AddToCharacter(ch, p->ItemPos); ITEM_MANAGER::instance().FlushDelayedSave(pkItem); - } DWORD dwID = pkItem->GetID(); db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_FLUSH, 0, sizeof(DWORD)); @@ -3349,33 +3312,6 @@ int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData) // } // break; - case HEADER_CG_DRAGON_SOUL_REFINE: - { - TPacketCGDragonSoulRefine* p = reinterpret_cast ((void*)c_pData); - switch(p->bSubType) - { - case DS_SUB_HEADER_CLOSE: - ch->DragonSoul_RefineWindow_Close(); - break; - case DS_SUB_HEADER_DO_REFINE_GRADE: - { - DSManager::instance().DoRefineGrade(ch, p->ItemGrid); - } - break; - case DS_SUB_HEADER_DO_REFINE_STEP: - { - DSManager::instance().DoRefineStep(ch, p->ItemGrid); - } - break; - case DS_SUB_HEADER_DO_REFINE_STRENGTH: - { - DSManager::instance().DoRefineStrength(ch, p->ItemGrid); - } - break; - } - } - - break; } return (iExtraLen); } diff --git a/server/game/src/item.cpp b/server/game/src/item.cpp index c7945ec..2007797 100755 --- a/server/game/src/item.cpp +++ b/server/game/src/item.cpp @@ -17,7 +17,6 @@ #include "item.h" #include "item_manager.h" #include "affect.h" -#include "DragonSoul.h" #include "buff_on_attributes.h" #include "belt_inventory_helper.h" #include "../../common/VnumHelper.h" @@ -251,8 +250,6 @@ bool CItem::SetCount(DWORD count) RemoveFromCharacter(); - if (!IsDragonSoul()) - { LPITEM pItem = pOwner->FindSpecifyItem(GetVnum()); if (NULL != pItem) @@ -263,16 +260,12 @@ bool CItem::SetCount(DWORD count) { pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, wCell, 255); } - } M2_DESTROY_ITEM(this); } else { - if (!IsDragonSoul()) - { m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, m_wCell, 255); - } M2_DESTROY_ITEM(RemoveFromCharacter()); } @@ -308,15 +301,6 @@ LPITEM CItem::RemoveFromCharacter() { if (GetWindow() != SAFEBOX && GetWindow() != MALL) { - if (IsDragonSoul()) - { - if (m_wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM) - sys_err("CItem::RemoveFromCharacter: pos >= DRAGON_SOUL_INVENTORY_MAX_NUM"); - else - pOwner->SetItem(TItemPos(m_bWindow, m_wCell), NULL); - } - else - { TItemPos cell(INVENTORY, m_wCell); if (false == cell.IsDefaultInventoryPosition() && false == cell.IsBeltInventoryPosition()) // ¾Æ´Ï¸é ¼ÒÁöǰ¿¡? @@ -325,7 +309,6 @@ LPITEM CItem::RemoveFromCharacter() { pOwner->SetItem(cell, NULL); } - } } m_pOwner = NULL; @@ -352,14 +335,6 @@ bool CItem::AddToCharacter(LPCHARACTER ch, TItemPos Cell) return false; } } - else if (DRAGON_SOUL_INVENTORY == window_type) - { - if (m_wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM) - { - sys_err("CItem::AddToCharacter: cell overflow: %s to %s cell %d", m_pProto->szName, ch->GetName(), m_wCell); - return false; - } - } if (ch->GetDesc()) m_dwLastOwnerPID = ch->GetPlayerID(); @@ -483,34 +458,10 @@ bool CItem::CanUsedBy(LPCHARACTER ch) int CItem::FindEquipCell(LPCHARACTER ch, int iCandidateCell) { // ÄÚ½ºÃõ ¾ÆÀÌÅÛ(ITEM_COSTUME)Àº WearFlag ¾ø¾îµµ µÊ. (sub typeÀ¸·Î Âø¿ëÀ§Ä¡ ±¸ºÐ. ±ÍÂú°Ô ¶Ç wear flag ÁÙ Çʿ䰡 ÀÖ³ª..) - // ¿ëÈ¥¼®(ITEM_DS, ITEM_SPECIAL_DS)µµ SUB_TYPEÀ¸·Î ±¸ºÐ. ½Å±Ô ¹ÝÁö, º§Æ®´Â ITEM_TYPEÀ¸·Î ±¸ºÐ -_- - if ((0 == GetWearFlag() || ITEM_TOTEM == GetType()) && ITEM_COSTUME != GetType() && ITEM_DS != GetType() && ITEM_SPECIAL_DS != GetType() && ITEM_RING != GetType() && ITEM_BELT != GetType()) + if ((0 == GetWearFlag() || ITEM_TOTEM == GetType()) && ITEM_COSTUME != GetType() && ITEM_RING != GetType() && ITEM_BELT != GetType()) return -1; - // ¿ëÈ¥¼® ½½·ÔÀ» WEAR·Î ó¸®ÇÒ ¼ö°¡ ¾ø¾î¼­(WEAR´Â ÃÖ´ë 32°³±îÁö °¡´ÉÇѵ¥ ¿ëÈ¥¼®À» Ãß°¡Çϸé 32°¡ ³Ñ´Â´Ù.) - // Àκ¥Å丮ÀÇ Æ¯Á¤ À§Ä¡((INVENTORY_MAX_NUM + WEAR_MAX_NUM)ºÎÅÍ (INVENTORY_MAX_NUM + WEAR_MAX_NUM + DRAGON_SOUL_DECK_MAX_NUM * DS_SLOT_MAX - 1)±îÁö)¸¦ - // ¿ëÈ¥¼® ½½·ÔÀ¸·Î Á¤ÇÔ. - // return ÇÒ ¶§¿¡, INVENTORY_MAX_NUMÀ» »« ÀÌÀ¯´Â, - // º»·¡ WearCellÀÌ INVENTORY_MAX_NUM¸¦ »©°í return Çϱ⠶§¹®. - if (GetType() == ITEM_DS || GetType() == ITEM_SPECIAL_DS) - { - if (iCandidateCell < 0) - { - return WEAR_MAX_NUM + GetSubType(); - } - else - { - for (int i = 0; i < DRAGON_SOUL_DECK_MAX_NUM; i++) - { - if (WEAR_MAX_NUM + i * DS_SLOT_MAX + GetSubType() == iCandidateCell) - { - return iCandidateCell; - } - } - return -1; - } - } - else if (GetType() == ITEM_COSTUME) + if (GetType() == ITEM_COSTUME) { if (GetSubType() == COSTUME_BODY) return WEAR_COSTUME_BODY; @@ -813,8 +764,6 @@ bool CItem::IsEquipable() const case ITEM_ROD: case ITEM_PICK: case ITEM_UNIQUE: - case ITEM_DS: - case ITEM_SPECIAL_DS: case ITEM_RING: case ITEM_BELT: return true; @@ -832,23 +781,11 @@ bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell) return false; } - // ¿ëÈ¥¼® ½½·Ô index´Â WEAR_MAX_NUM º¸´Ù Å­. - if (IsDragonSoul()) - { - if (bWearCell < WEAR_MAX_NUM || bWearCell >= WEAR_MAX_NUM + DRAGON_SOUL_DECK_MAX_NUM * DS_SLOT_MAX) - { - sys_err("EquipTo: invalid dragon soul cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetSubType(), bWearCell - WEAR_MAX_NUM); - return false; - } - } - else - { if (bWearCell >= WEAR_MAX_NUM) { sys_err("EquipTo: invalid wear cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetWearFlag(), bWearCell); return false; } - } if (ch->GetWear(bWearCell)) { @@ -899,12 +836,6 @@ bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell) m_pOwner->SetImmuneFlag(dwImmuneFlag); //P3NG3R immun fix end - if (IsDragonSoul()) - { - DSManager::instance().ActivateDragonSoul(this); - } - else - { ModifyPoints(true); StartUniqueExpireEvent(); if (-1 != GetProto()->cLimitTimerBasedOnWearIndex) @@ -913,7 +844,6 @@ bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell) // ACCESSORY_REFINE StartAccessorySocketExpireEvent(); // END_OF_ACCESSORY_REFINE - } ch->BuffOnAttr_AddBuffsFromItem(this); @@ -947,14 +877,7 @@ bool CItem::Unequip() if (IsRideItem()) ClearMountAttributeAndAffect(); - if (IsDragonSoul()) - { - DSManager::instance().DeactivateDragonSoul(this); - } - else - { ModifyPoints(false); - } StopUniqueExpireEvent(); @@ -1391,15 +1314,7 @@ EVENTFUNC(timer_based_on_wear_expire_event) pkItem->SetTimerBasedOnWearExpireEvent(NULL); pkItem->SetSocket(ITEM_SOCKET_REMAIN_SEC, 0); - // ÀÏ´Ü timer based on wear ¿ëÈ¥¼®Àº ½Ã°£ ´Ù µÇ¾ú´Ù°í ¾ø¾ÖÁö ¾Ê´Â´Ù. - if (pkItem->IsDragonSoul()) - { - DSManager::instance().DeactivateDragonSoul(pkItem); - } - else - { ITEM_MANAGER::instance().RemoveItem(pkItem, "TIMER_BASED_ON_WEAR_EXPIRE"); - } return 0; } pkItem->SetSocket(ITEM_SOCKET_REMAIN_SEC, remain_time); @@ -2062,61 +1977,6 @@ void CItem::CopyToRawData (TPlayerItem* new_item) } #endif -bool CItem::IsDragonSoul() -{ - return GetType() == ITEM_DS; -} - -int CItem::GiveMoreTime_Per(float fPercent) -{ - if (IsDragonSoul()) - { - DWORD duration = DSManager::instance().GetDuration(this); - int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC); - int given_time = fPercent * duration / 100; - if (remain_sec == duration) - return false; - if ((given_time + remain_sec) >= duration) - { - SetSocket(ITEM_SOCKET_REMAIN_SEC, duration); - return duration - remain_sec; - } - else - { - SetSocket(ITEM_SOCKET_REMAIN_SEC, given_time + remain_sec); - return given_time; - } - } - // ¿ì¼± ¿ëÈ¥¼®¿¡ °üÇØ¼­¸¸ Çϵµ·Ï ÇÑ´Ù. - else - return 0; -} - -int CItem::GiveMoreTime_Fix(DWORD dwTime) -{ - if (IsDragonSoul()) - { - DWORD duration = DSManager::instance().GetDuration(this); - int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC); - if (remain_sec == duration) - return false; - if ((dwTime + remain_sec) >= duration) - { - SetSocket(ITEM_SOCKET_REMAIN_SEC, duration); - return duration - remain_sec; - } - else - { - SetSocket(ITEM_SOCKET_REMAIN_SEC, dwTime + remain_sec); - return dwTime; - } - } - // ¿ì¼± ¿ëÈ¥¼®¿¡ °üÇØ¼­¸¸ Çϵµ·Ï ÇÑ´Ù. - else - return 0; -} - - int CItem::GetDuration() { if(!GetProto()) diff --git a/server/game/src/item.h b/server/game/src/item.h index 2c012f5..84c47f8 100755 --- a/server/game/src/item.h +++ b/server/game/src/item.h @@ -254,11 +254,6 @@ class CItem : public CEntity DWORD GetMaskVnum() { return m_dwMaskVnum; } bool IsMaskedItem() { return m_dwMaskVnum != 0; } - // ¿ëÈ¥¼® - bool IsDragonSoul(); - int GiveMoreTime_Per(float fPercent); - int GiveMoreTime_Fix(DWORD dwTime); - private: TItemTable const * m_pProto; // ÇÁ·ÎÅä ŸÀÙ diff --git a/server/game/src/item_manager.cpp b/server/game/src/item_manager.cpp index b69e4db..b7ad5c3 100755 --- a/server/game/src/item_manager.cpp +++ b/server/game/src/item_manager.cpp @@ -20,7 +20,6 @@ #include "high_risk.h" #include "../../common/VnumHelper.h" -#include "DragonSoul.h" #include "cube.h" ITEM_MANAGER::ITEM_MANAGER() @@ -409,11 +408,6 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi } } - // »õ·Î »ý¼ºµÇ´Â ¿ëÈ¥¼® ó¸®. - if (item->IsDragonSoul() && 0 == id) - { - DSManager::instance().DragonSoulItemInitialize(item); - } return item; } @@ -1579,13 +1573,6 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, pkKiller->AutoGiveItem (xmas_sock, 1); } - //if (pkChr->GetLevel() >= 30 && (GetDropPerKillPct(50, 100, iDeltaPercent, "ds_drop") >= number(1, iRandRange))) - //{ - // const static DWORD dragon_soul_gemstone = 30270; - // if ((item = CreateItem(dragon_soul_gemstone, 1, 0, true))) - // vec_item.push_back(item); - //} - if ( GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "halloween_drop") >= number(1, iRandRange) ) { const static DWORD halloween_item = 30321; diff --git a/server/game/src/main.cpp b/server/game/src/main.cpp index 7c7e186..b6a36f0 100755 --- a/server/game/src/main.cpp +++ b/server/game/src/main.cpp @@ -62,7 +62,6 @@ #include "skill_power.h" #include "SpeedServer.h" // #include "XTrapManager.h" -#include "DragonSoul.h" #include #ifndef __WIN32__ #include "limit_time.h" @@ -515,7 +514,6 @@ int main(int argc, char **argv) // CXTrapManager XTManager; CSpeedServerManager SSManager; - DSManager dsManager; #ifdef __AUCTION__ AuctionManager auctionManager; diff --git a/server/game/src/packet.h b/server/game/src/packet.h index 2653d3e..70acc30 100755 --- a/server/game/src/packet.h +++ b/server/game/src/packet.h @@ -107,7 +107,6 @@ enum HEADER_CG_HS_ACK = 203, HEADER_CG_XTRAP_ACK = 204, - HEADER_CG_DRAGON_SOUL_REFINE = 205, HEADER_CG_STATE_CHECKER = 206, HEADER_CG_CLIENT_VERSION = 0xfd, @@ -293,7 +292,6 @@ enum HEADER_GC_SPECIFIC_EFFECT = 208, - HEADER_GC_DRAGON_SOUL_REFINE = 209, HEADER_GC_RESPOND_CHANNELSTATUS = 210, @@ -2332,47 +2330,6 @@ typedef struct SPacketGCSpecificEffect char effect_file[MAX_EFFECT_FILE_NAME]; } TPacketGCSpecificEffect; -// ¿ëÈ¥¼® -enum EDragonSoulRefineWindowRefineType -{ - DragonSoulRefineWindow_UPGRADE, - DragonSoulRefineWindow_IMPROVEMENT, - DragonSoulRefineWindow_REFINE, -}; - -enum EPacketCGDragonSoulSubHeaderType -{ - DS_SUB_HEADER_OPEN, - DS_SUB_HEADER_CLOSE, - DS_SUB_HEADER_DO_REFINE_GRADE, - DS_SUB_HEADER_DO_REFINE_STEP, - DS_SUB_HEADER_DO_REFINE_STRENGTH, - DS_SUB_HEADER_REFINE_FAIL, - DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE, - DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, - DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY, - DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL, - DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL, - DS_SUB_HEADER_REFINE_SUCCEED, -}; -typedef struct SPacketCGDragonSoulRefine -{ - SPacketCGDragonSoulRefine() : header (HEADER_CG_DRAGON_SOUL_REFINE) - {} - BYTE header; - BYTE bSubType; - TItemPos ItemGrid[DRAGON_SOUL_REFINE_GRID_SIZE]; -} TPacketCGDragonSoulRefine; - -typedef struct SPacketGCDragonSoulRefine -{ - SPacketGCDragonSoulRefine() : header(HEADER_GC_DRAGON_SOUL_REFINE) - {} - BYTE header; - BYTE bSubType; - TItemPos Pos; -} TPacketGCDragonSoulRefine; - typedef struct SPacketCGStateCheck { BYTE header; diff --git a/server/game/src/packet_info.cpp b/server/game/src/packet_info.cpp index 7d2916b..eaff3a4 100755 --- a/server/game/src/packet_info.cpp +++ b/server/game/src/packet_info.cpp @@ -226,7 +226,6 @@ CPacketInfoCG::CPacketInfoCG() // Set(HEADER_CG_HS_ACK, sizeof(TPacketGCHSCheck), "HackShieldResponse", false); // Set(HEADER_CG_XTRAP_ACK, sizeof(TPacketXTrapCSVerify), "XTrapResponse", false); - Set(HEADER_CG_DRAGON_SOUL_REFINE, sizeof(TPacketCGDragonSoulRefine), "DragonSoulRefine", false); Set(HEADER_CG_STATE_CHECKER, sizeof(BYTE), "ServerStateCheck", false); } diff --git a/server/game/src/questlua.cpp b/server/game/src/questlua.cpp index def9dcb..6ae45c0 100755 --- a/server/game/src/questlua.cpp +++ b/server/game/src/questlua.cpp @@ -489,7 +489,6 @@ namespace quest RegisterDanceEventFunctionTable(); RegisterDragonLairFunctionTable(); RegisterSpeedServerFunctionTable(); - RegisterDragonSoulFunctionTable(); { luaL_reg member_functions[] = diff --git a/server/game/src/questlua.h b/server/game/src/questlua.h index 43b7043..bd0b2d0 100755 --- a/server/game/src/questlua.h +++ b/server/game/src/questlua.h @@ -33,7 +33,6 @@ namespace quest extern void RegisterDanceEventFunctionTable(); extern void RegisterDragonLairFunctionTable(); extern void RegisterSpeedServerFunctionTable(); - extern void RegisterDragonSoulFunctionTable(); extern void combine_lua_string(lua_State* L, std::ostringstream &s); diff --git a/server/game/src/shop.cpp b/server/game/src/shop.cpp index 28a5c1b..fb78322 100755 --- a/server/game/src/shop.cpp +++ b/server/game/src/shop.cpp @@ -268,14 +268,7 @@ int CShop::Buy(LPCHARACTER ch, BYTE pos) } int iEmptyPos; - if (item->IsDragonSoul()) - { - iEmptyPos = ch->GetEmptyDragonSoulInventory(item); - } - else - { iEmptyPos = ch->GetEmptyInventory(item->GetSize()); - } if (iEmptyPos < 0) { @@ -362,9 +355,6 @@ int CShop::Buy(LPCHARACTER ch, BYTE pos) } item->RemoveFromCharacter(); - if (item->IsDragonSoul()) - item->AddToCharacter(ch, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyPos)); - else item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos)); ITEM_MANAGER::instance().FlushDelayedSave(item); @@ -388,9 +378,6 @@ int CShop::Buy(LPCHARACTER ch, BYTE pos) } else { - if (item->IsDragonSoul()) - item->AddToCharacter(ch, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyPos)); - else item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos)); ITEM_MANAGER::instance().FlushDelayedSave(item); LogManager::instance().ItemLog(ch, item, "BUY", item->GetName()); diff --git a/server/game/src/shopEx.cpp b/server/game/src/shopEx.cpp index 5f291cc..403e8f6 100755 --- a/server/game/src/shopEx.cpp +++ b/server/game/src/shopEx.cpp @@ -173,14 +173,7 @@ int CShopEx::Buy(LPCHARACTER ch, BYTE pos) return SHOP_SUBHEADER_GC_SOLD_OUT; int iEmptyPos; - if (item->IsDragonSoul()) - { - iEmptyPos = ch->GetEmptyDragonSoulInventory(item); - } - else - { iEmptyPos = ch->GetEmptyInventory(item->GetSize()); - } if (iEmptyPos < 0) { @@ -200,9 +193,6 @@ int CShopEx::Buy(LPCHARACTER ch, BYTE pos) } - if (item->IsDragonSoul()) - item->AddToCharacter(ch, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyPos)); - else item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos)); ITEM_MANAGER::instance().FlushDelayedSave(item); diff --git a/server/game/src/unique_item.h b/server/game/src/unique_item.h index f3b0990..804579f 100755 --- a/server/game/src/unique_item.h +++ b/server/game/src/unique_item.h @@ -106,12 +106,6 @@ enum REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE = 76007, - // ¿ëÈ¥¼® ÃßÃâ È®·üÀ» ³ô¿©ÁÖ´Â ¾ÆÀÌÅÛ - DRAGON_SOUL_EXTRACTOR_GROUP = 10600, - // ¿ë½É ÃßÃâÇØÁÖ´Â ¾ÆÀÌÅÛ - DRAGON_HEART_EXTRACTOR_GROUP = 10601, - // ¿ëÈ¥¼®¿¡¼­ ÃßÃâÇÒ ¶§ ÁÖ´Â ¿ë½É. - DRAGON_HEART_VNUM = 100000, }; #endif /* __INC_METIN2_UNIQUE_ITEM_H */