bool DSManager::DeactivateDragonSoul(LPITEM pItem, bool bSkipRefreshOwnerActiveState) { if (NULL == pItem) return false; LPCHARACTER pOwner = pItem->GetOwner(); if (NULL == pOwner) return false; if (!IsActiveDragonSoul(pItem)) return false; char buf[128]; pItem->StopTimerBasedOnWearExpireEvent(); pItem->SetSocket(ITEM_SOCKET_DRAGON_SOUL_ACTIVE_IDX, 0); pItem->ModifyPoints(false); sprintf (buf, "LEFT TIME(%d)", LeftTime(pItem)); LogManager::instance().ItemLog(pOwner, pItem, "DS_DEACTIVATE", buf); if (false == bSkipRefreshOwnerActiveState) RefreshDragonSoulState(pOwner); return true; }