diff options
| author | Shauren <shauren.trinity@gmail.com> | 2019-10-26 23:58:29 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2019-10-27 00:12:45 +0200 |
| commit | 3ac790287aba5f7d7c3bccf79e608de9119e461a (patch) | |
| tree | 430abdcd4e7e17288c9edaf71980863e77518de9 /src/server/game/Entities | |
| parent | ee2e49429f4383732b4e0f39b493470b9c1dd10c (diff) | |
Core/DataStores: Updated db2 structures to 8.2.5
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Item/Item.cpp | 95 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/Item.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/ItemDefines.h | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 55 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 10 |
6 files changed, 73 insertions, 97 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 6bd47efb600..cecf6d8b103 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -414,7 +414,6 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans) stmt->setUInt16(++index, m_itemData->Durability); stmt->setUInt32(++index, m_itemData->CreatePlayedTime); stmt->setString(++index, m_text); - stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_UPGRADE_ID)); stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID)); stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA)); stmt->setUInt32(++index, GetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL)); @@ -545,7 +544,7 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans) static ItemModifier const modifiersTable[] = { - ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL, + ITEM_MODIFIER_TIMEWALKER_LEVEL, ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL }; @@ -557,7 +556,7 @@ void Item::SaveToDB(CharacterDatabaseTransaction& trans) { stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEM_INSTANCE_MODIFIERS); stmt->setUInt64(0, GetGUID().GetCounter()); - stmt->setUInt32(1, GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL)); + stmt->setUInt32(1, GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL)); stmt->setUInt32(2, GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL)); trans->Append(stmt); } @@ -621,15 +620,15 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie { // 0 1 2 3 4 5 6 7 8 9 10 11 12 // SELECT guid, itemEntry, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, - // 13 14 15 16 17 18 19 - // upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, - // 20 21 22 23 24 + // 13 14 15 16 17 18 + // battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, + // 19 20 21 22 23 // itemModifiedAppearanceAllSpecs, itemModifiedAppearanceSpec1, itemModifiedAppearanceSpec2, itemModifiedAppearanceSpec3, itemModifiedAppearanceSpec4, - // 25 26 27 28 29 + // 24 25 26 27 28 // spellItemEnchantmentAllSpecs, spellItemEnchantmentSpec1, spellItemEnchantmentSpec2, spellItemEnchantmentSpec3, spellItemEnchantmentSpec4, - // 30 31 32 33 34 35 36 37 38 39 40 41 + // 29 30 31 32 33 34 35 36 37 38 39 40 // gemItemId1, gemBonuses1, gemContext1, gemScalingLevel1, gemItemId2, gemBonuses2, gemContext2, gemScalingLevel2, gemItemId3, gemBonuses3, gemContext3, gemScalingLevel3 - // 42 43 + // 41 42 // fixedScalingLevel, artifactKnowledgeLevel FROM item_instance // create item before any checks for store correct guid @@ -692,67 +691,51 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie SetCreatePlayedTime(fields[11].GetUInt32()); SetText(fields[12].GetString()); - uint32 upgradeId = fields[13].GetUInt32(); - ItemUpgradeEntry const* rulesetUpgrade = sItemUpgradeStore.LookupEntry(sDB2Manager.GetRulesetItemUpgrade(entry)); - ItemUpgradeEntry const* upgrade = sItemUpgradeStore.LookupEntry(upgradeId); - if (!rulesetUpgrade || !upgrade || rulesetUpgrade->ItemUpgradePathID != upgrade->ItemUpgradePathID) - { - upgradeId = 0; - need_save = true; - } - - if (rulesetUpgrade && !upgradeId) - { - upgradeId = rulesetUpgrade->ID; - need_save = true; - } - - SetModifier(ITEM_MODIFIER_UPGRADE_ID, upgradeId); - SetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, fields[14].GetUInt32()); - SetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA, fields[15].GetUInt32()); - SetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL, fields[16].GetUInt16()); - SetModifier(ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID, fields[17].GetUInt32()); + SetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, fields[13].GetUInt32()); + SetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA, fields[14].GetUInt32()); + SetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL, fields[15].GetUInt16()); + SetModifier(ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID, fields[16].GetUInt32()); - SetContext(fields[18].GetUInt8()); + SetContext(fields[17].GetUInt8()); - Tokenizer bonusListString(fields[19].GetString(), ' '); + Tokenizer bonusListString(fields[18].GetString(), ' '); std::vector<int32> bonusListIDs; bonusListIDs.reserve(bonusListString.size()); for (char const* token : bonusListString) bonusListIDs.push_back(atoi(token)); SetBonuses(std::move(bonusListIDs)); - SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_ALL_SPECS, fields[20].GetUInt32()); - SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_1, fields[21].GetUInt32()); - SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2, fields[22].GetUInt32()); - SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_3, fields[23].GetUInt32()); - SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_4, fields[24].GetUInt32()); + SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_ALL_SPECS, fields[19].GetUInt32()); + SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_1, fields[20].GetUInt32()); + SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2, fields[21].GetUInt32()); + SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_3, fields[22].GetUInt32()); + SetModifier(ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_4, fields[23].GetUInt32()); - SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS, fields[25].GetUInt32()); - SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1, fields[26].GetUInt32()); - SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2, fields[27].GetUInt32()); - SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_3, fields[28].GetUInt32()); - SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_4, fields[29].GetUInt32()); + SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS, fields[24].GetUInt32()); + SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1, fields[25].GetUInt32()); + SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2, fields[26].GetUInt32()); + SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_3, fields[27].GetUInt32()); + SetModifier(ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_4, fields[28].GetUInt32()); uint32 const gemFields = 4; ItemDynamicFieldGems gemData[MAX_GEM_SOCKETS]; memset(gemData, 0, sizeof(gemData)); for (uint32 i = 0; i < MAX_GEM_SOCKETS; ++i) { - gemData[i].ItemId = fields[30 + i * gemFields].GetUInt32(); - Tokenizer gemBonusListIDs(fields[31 + i * gemFields].GetString(), ' '); + gemData[i].ItemId = fields[29 + i * gemFields].GetUInt32(); + Tokenizer gemBonusListIDs(fields[30 + i * gemFields].GetString(), ' '); uint32 b = 0; for (char const* token : gemBonusListIDs) if (uint32 bonusListID = atoul(token)) gemData[i].BonusListIDs[b++] = bonusListID; - gemData[i].Context = fields[32 + i * gemFields].GetUInt8(); + gemData[i].Context = fields[31 + i * gemFields].GetUInt8(); if (gemData[i].ItemId) - SetGem(i, &gemData[i], fields[33 + i * gemFields].GetUInt32()); + SetGem(i, &gemData[i], fields[32 + i * gemFields].GetUInt32()); } - SetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL, fields[42].GetUInt32()); - SetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL, fields[43].GetUInt32()); + SetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL, fields[41].GetUInt32()); + SetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL, fields[42].GetUInt32()); // Enchants must be loaded after all other bonus/scaling data Tokenizer enchantmentTokens(fields[8].GetString(), ' '); @@ -782,7 +765,6 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid ownerGuid, Field* fie stmt->setUInt32(index++, m_itemData->Expiration); stmt->setUInt32(index++, m_itemData->DynamicFlags); stmt->setUInt32(index++, m_itemData->Durability); - stmt->setUInt32(index++, GetModifier(ITEM_MODIFIER_UPGRADE_ID)); stmt->setUInt64(index++, guid); CharacterDatabase.Execute(stmt); } @@ -1319,7 +1301,8 @@ uint8 Item::GetGemCountWithLimitCategory(uint32 limitCategory) const bool Item::IsLimitedToAnotherMapOrZone(uint32 cur_mapId, uint32 cur_zoneId) const { ItemTemplate const* proto = GetTemplate(); - return proto && ((proto->GetMap() && proto->GetMap() != cur_mapId) || (proto->GetArea() && proto->GetArea() != cur_zoneId)); + return proto && ((proto->GetMap() && proto->GetMap() != cur_mapId) || + ((proto->GetArea(0) && proto->GetArea(0) != cur_zoneId) && (proto->GetArea(1) && proto->GetArea(1) != cur_zoneId))); } void Item::SendUpdateSockets() @@ -2134,11 +2117,11 @@ uint32 Item::GetItemLevel(Player const* owner) const uint32 minItemLevelCutoff = owner->m_unitData->MinItemLevelCutoff; uint32 maxItemLevel = GetTemplate()->GetFlags3() & ITEM_FLAG3_IGNORE_ITEM_LEVEL_CAP_IN_PVP ? 0 : owner->m_unitData->MaxItemLevel; bool pvpBonus = owner->IsUsingPvpItemLevels(); - return Item::GetItemLevel(GetTemplate(), _bonusData, owner->getLevel(), GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL), GetModifier(ITEM_MODIFIER_UPGRADE_ID), + return Item::GetItemLevel(GetTemplate(), _bonusData, owner->getLevel(), GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL), minItemLevel, minItemLevelCutoff, maxItemLevel, pvpBonus); } -uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 upgradeId, +uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 minItemLevel, uint32 minItemLevelCutoff, uint32 maxItemLevel, bool pvpBonus) { if (!itemTemplate) @@ -2166,8 +2149,6 @@ uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bon itemLevel += bonusData.GemItemLevelBonus[i]; uint32 itemLevelBeforeUpgrades = itemLevel; - if (ItemUpgradeEntry const* upgrade = sItemUpgradeStore.LookupEntry(upgradeId)) - itemLevel += upgrade->ItemLevelIncrement; if (pvpBonus) itemLevel += sDB2Manager.GetPvpItemLevelBonus(itemTemplate->GetId()); @@ -2210,7 +2191,7 @@ ItemDisenchantLootEntry const* Item::GetDisenchantLoot(ItemTemplate const* itemT if (itemTemplate->GetFlags() & (ITEM_FLAG_CONJURED | ITEM_FLAG_NO_DISENCHANT) || itemTemplate->GetBonding() == BIND_QUEST) return nullptr; - if (itemTemplate->GetArea() || itemTemplate->GetMap() || itemTemplate->GetMaxStackSize() > 1) + if (itemTemplate->GetArea(0) || itemTemplate->GetArea(1) || itemTemplate->GetMap() || itemTemplate->GetMaxStackSize() > 1) return nullptr; if (!Item::GetSellPrice(itemTemplate, quality, itemLevel) && !sDB2Manager.HasItemCurrencyCost(itemTemplate->GetId())) @@ -2578,7 +2559,7 @@ void Item::GiveArtifactXp(uint64 amount, Item* sourceItem, uint32 artifactCatego void Item::SetFixedLevel(uint8 level) { - if (!_bonusData.HasFixedLevel || GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL)) + if (!_bonusData.HasFixedLevel || GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL)) return; if (ScalingStatDistributionEntry const* ssd = sScalingStatDistributionStore.LookupEntry(_bonusData.ScalingStatDistribution)) @@ -2589,7 +2570,7 @@ void Item::SetFixedLevel(uint8 level) if ((contentTuning->Flags & 2 || contentTuning->MinLevel || contentTuning->MaxLevel) && !(contentTuning->Flags & 4)) level = std::min(std::max(int32(level), contentTuning->MinLevel), contentTuning->MaxLevel); - SetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL, level); + SetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL, level); } } @@ -2598,7 +2579,7 @@ int32 Item::GetRequiredLevel() const if (_bonusData.RequiredLevelOverride) return _bonusData.RequiredLevelOverride; else if (_bonusData.HasFixedLevel) - return GetModifier(ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL); + return GetModifier(ITEM_MODIFIER_TIMEWALKER_LEVEL); else return _bonusData.RequiredLevel; } diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index b5f9897a3e8..b8a8c242ba1 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -280,7 +280,7 @@ class TC_GAME_API Item : public Object bool IsRangedWeapon() const { return GetTemplate()->IsRangedWeapon(); } uint32 GetQuality() const { return _bonusData.Quality; } uint32 GetItemLevel(Player const* owner) const; - static uint32 GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 upgradeId, + static uint32 GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, uint32 minItemLevel, uint32 minItemLevelCutoff, uint32 maxItemLevel, bool pvpBonus); int32 GetRequiredLevel() const; int32 GetItemStatType(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return _bonusData.ItemStatType[index]; } diff --git a/src/server/game/Entities/Item/ItemDefines.h b/src/server/game/Entities/Item/ItemDefines.h index 594071587c3..47887c869df 100644 --- a/src/server/game/Entities/Item/ItemDefines.h +++ b/src/server/game/Entities/Item/ItemDefines.h @@ -194,7 +194,7 @@ enum ItemModifier : uint16 ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID = 6, ITEM_MODIFIER_ENCHANT_ILLUSION_ALL_SPECS = 7, ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID = 8, - ITEM_MODIFIER_SCALING_STAT_DISTRIBUTION_FIXED_LEVEL = 9, + ITEM_MODIFIER_TIMEWALKER_LEVEL = 9, ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_1 = 10, ITEM_MODIFIER_TRANSMOG_APPEARANCE_SPEC_2 = 11, ITEM_MODIFIER_ENCHANT_ILLUSION_SPEC_2 = 12, @@ -207,9 +207,11 @@ enum ItemModifier : uint16 ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_1 = 19, ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_2 = 20, ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_3 = 21, - ITEM_MODIFIER_CHALLENGE_KEYSTONE_IS_CHARGED = 22, + ITEM_MODIFIER_CHALLENGE_KEYSTONE_AFFIX_ID_4 = 22, ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL = 23, ITEM_MODIFIER_ARTIFACT_TIER = 24, + ITEM_MODIFIER_UNUSED_25 = 25, + ITEM_MODIFIER_PVP_RATING = 26, MAX_ITEM_MODIFIERS }; diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index e44d33063cf..2f3d5b805a4 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -766,7 +766,7 @@ struct TC_GAME_API ItemTemplate uint32 GetStartQuest() const { return ExtendedData->StartQuestID; } uint32 GetLockID() const { return ExtendedData->LockID; } uint32 GetItemSet() const { return ExtendedData->ItemSet; } - uint32 GetArea() const { return ExtendedData->ZoneBound; } + uint32 GetArea(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_ZONES); return ExtendedData->ZoneBound[index]; } uint32 GetMap() const { return ExtendedData->InstanceBound; } uint32 GetBagFamily() const { return ExtendedData->BagFamily; } uint32 GetTotemCategory() const { return ExtendedData->TotemCategoryID; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6b1d82452d7..1512b07540e 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4738,12 +4738,12 @@ void Player::RepopAtGraveyard() // and don't show spirit healer location if (ClosestGrave) { - TeleportTo(ClosestGrave->MapID, ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z, (ClosestGrave->Facing * M_PI) / 180); // Orientation is initially in degrees + TeleportTo(ClosestGrave->Loc); if (isDead()) // not send if alive, because it used in TeleportTo() { WorldPackets::Misc::DeathReleaseLoc packet; - packet.MapID = ClosestGrave->MapID; - packet.Loc = Position(ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z); + packet.MapID = ClosestGrave->Loc.GetMapId(); + packet.Loc = ClosestGrave->Loc; GetSession()->SendPacket(packet.Write()); } } @@ -11801,9 +11801,6 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat item->AddItemFlag(ITEM_FIELD_FLAG_NEW_ITEM); - if (uint32 upgradeID = sDB2Manager.GetRulesetItemUpgrade(itemId)) - item->SetModifier(ITEM_MODIFIER_UPGRADE_ID, upgradeID); - item->SetContext(context); item->SetBonuses(bonusListIDs); @@ -18575,17 +18572,17 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti { // 0 1 2 3 4 5 6 7 8 9 10 11 12 // SELECT guid, itemEntry, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, - // 13 14 15 16 17 18 19 - // upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, - // 20 21 22 23 24 + // 13 14 15 16 17 18 + // battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, + // 19 20 21 22 23 // itemModifiedAppearanceAllSpecs, itemModifiedAppearanceSpec1, itemModifiedAppearanceSpec2, itemModifiedAppearanceSpec3, itemModifiedAppearanceSpec4, - // 25 26 27 28 29 + // 24 25 26 27 28 // spellItemEnchantmentAllSpecs, spellItemEnchantmentSpec1, spellItemEnchantmentSpec2, spellItemEnchantmentSpec3, spellItemEnchantmentSpec4, - // 30 31 32 33 34 35 36 37 38 39 40 41 + // 29 30 31 32 33 34 35 36 37 38 39 40 // gemItemId1, gemBonuses1, gemContext1, gemScalingLevel1, gemItemId2, gemBonuses2, gemContext2, gemScalingLevel2, gemItemId3, gemBonuses3, gemContext3, gemScalingLevel3 - // 42 43 + // 41 42 // fixedScalingLevel, artifactKnowledgeLevel FROM item_instance - // 45 46 + // 43 44 // bag, slot // FROM character_inventory ci // JOIN item_instance ii ON ci.item = ii.guid @@ -18654,8 +18651,8 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti if (item->GetTemplate()->GetArtifactID() && artifactDataItr != artifactData.end()) item->LoadArtifactData(this, std::get<0>(artifactDataItr->second), std::get<1>(artifactDataItr->second), std::get<2>(artifactDataItr->second), std::get<3>(artifactDataItr->second)); - ObjectGuid bagGuid = fields[44].GetUInt64() ? ObjectGuid::Create<HighGuid::Item>(fields[44].GetUInt64()) : ObjectGuid::Empty; - uint8 slot = fields[45].GetUInt8(); + ObjectGuid bagGuid = fields[43].GetUInt64() ? ObjectGuid::Create<HighGuid::Item>(fields[43].GetUInt64()) : ObjectGuid::Empty; + uint8 slot = fields[44].GetUInt8(); GetSession()->GetCollectionMgr()->CheckHeirloomUpgrades(item); GetSession()->GetCollectionMgr()->AddItemAppearance(item); @@ -18782,7 +18779,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result) do { - // SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ? + // SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ? Field* fields = result->Fetch(); uint64 itemId = fields[0].GetUInt64(); @@ -18790,12 +18787,11 @@ void Player::_LoadVoidStorage(PreparedQueryResult result) uint8 slot = fields[2].GetUInt8(); ObjectGuid creatorGuid = fields[3].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64()) : ObjectGuid::Empty; ItemRandomBonusListId randomBonusListId = fields[4].GetUInt32(); - uint32 upgradeId = fields[5].GetUInt32(); - uint32 fixedScalingLevel = fields[6].GetUInt32(); - uint32 artifactKnowledgeLevel = fields[7].GetUInt32(); - uint8 context = fields[8].GetUInt8(); + uint32 fixedScalingLevel = fields[5].GetUInt32(); + uint32 artifactKnowledgeLevel = fields[6].GetUInt32(); + uint8 context = fields[7].GetUInt8(); std::vector<int32> bonusListIDs; - Tokenizer bonusListIdTokens(fields[9].GetString(), ' '); + Tokenizer bonusListIdTokens(fields[8].GetString(), ' '); for (char const* token : bonusListIdTokens) bonusListIDs.push_back(atoul(token)); @@ -18820,7 +18816,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result) continue; } - _voidStorageItems[slot] = new VoidStorageItem(itemId, itemEntry, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, + _voidStorageItems[slot] = new VoidStorageItem(itemId, itemEntry, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs); WorldPackets::Item::ItemInstance voidInstance; @@ -18997,7 +18993,7 @@ void Player::_LoadMailedItems(Mail* mail) Item* item = NewItemOrBag(proto); - ObjectGuid ownerGuid = fields[44].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[44].GetUInt64()) : ObjectGuid::Empty; + ObjectGuid ownerGuid = fields[43].GetUInt64() ? ObjectGuid::Create<HighGuid::Player>(fields[43].GetUInt64()) : ObjectGuid::Empty; if (!item->LoadFromDB(itemGuid, ownerGuid, fields, itemEntry)) { TC_LOG_ERROR("entities.player", "Player::_LoadMailedItems: Item (GUID: " UI64FMTD ") in mail (%u) doesn't exist, deleted from mail.", itemGuid, mail->messageID); @@ -20593,14 +20589,13 @@ void Player::_SaveVoidStorage(CharacterDatabaseTransaction& trans) stmt->setUInt8(3, i); stmt->setUInt64(4, _voidStorageItems[i]->CreatorGuid.GetCounter()); stmt->setUInt32(5, _voidStorageItems[i]->RandomBonusListId); - stmt->setUInt32(6, _voidStorageItems[i]->ItemUpgradeId); - stmt->setUInt32(7, _voidStorageItems[i]->FixedScalingLevel); - stmt->setUInt32(8, _voidStorageItems[i]->ArtifactKnowledgeLevel); - stmt->setUInt8(9, _voidStorageItems[i]->Context); + stmt->setUInt32(6, _voidStorageItems[i]->FixedScalingLevel); + stmt->setUInt32(7, _voidStorageItems[i]->ArtifactKnowledgeLevel); + stmt->setUInt8(8, _voidStorageItems[i]->Context); std::ostringstream bonusListIDs; for (int32 bonusListID : _voidStorageItems[i]->BonusListIDs) bonusListIDs << bonusListID << ' '; - stmt->setString(10, bonusListIDs.str()); + stmt->setString(9, bonusListIDs.str()); } trans->Append(stmt); @@ -23149,8 +23144,8 @@ void Player::SetBattlegroundEntryPoint() // If map is dungeon find linked graveyard if (GetMap()->IsDungeon()) { - if (const WorldSafeLocsEntry* entry = sObjectMgr->GetClosestGraveYard(*this, GetTeam(), this)) - m_bgData.joinPos = WorldLocation(entry->MapID, entry->Loc.X, entry->Loc.Y, entry->Loc.Z, 0.0f); + if (WorldSafeLocsEntry const* entry = sObjectMgr->GetClosestGraveYard(*this, GetTeam(), this)) + m_bgData.joinPos.WorldRelocate(entry->Loc.GetMapId(), entry->Loc.GetPositionX(), entry->Loc.GetPositionY(), entry->Loc.GetPositionZ()); else TC_LOG_ERROR("entities.player", "Player::SetBattlegroundEntryPoint: Dungeon (MapID: %u) has no linked graveyard, setting home location as entry point.", GetMapId()); } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 83a0e5fb60c..f7c8ae952d1 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -899,23 +899,21 @@ struct BGData struct VoidStorageItem { - VoidStorageItem() : ItemId(0), ItemEntry(0), RandomBonusListId(0), ItemUpgradeId(0), FixedScalingLevel(0), ArtifactKnowledgeLevel(0), Context(0) { } + VoidStorageItem() : ItemId(0), ItemEntry(0), RandomBonusListId(0), FixedScalingLevel(0), ArtifactKnowledgeLevel(0), Context(0) { } VoidStorageItem(uint64 id, uint32 entry, ObjectGuid const& creator, ItemRandomBonusListId randomBonusListId, - uint32 upgradeId, uint32 fixedScalingLevel, uint32 artifactKnowledgeLevel, uint8 context, std::vector<int32> const& bonuses) + uint32 fixedScalingLevel, uint32 artifactKnowledgeLevel, uint8 context, std::vector<int32> const& bonuses) : ItemId(id), ItemEntry(entry), CreatorGuid(creator), RandomBonusListId(randomBonusListId), - ItemUpgradeId(upgradeId), FixedScalingLevel(fixedScalingLevel), ArtifactKnowledgeLevel(artifactKnowledgeLevel), Context(context) + FixedScalingLevel(fixedScalingLevel), ArtifactKnowledgeLevel(artifactKnowledgeLevel), Context(context) { BonusListIDs.insert(BonusListIDs.end(), bonuses.begin(), bonuses.end()); } VoidStorageItem(VoidStorageItem&& vsi) noexcept : ItemId(vsi.ItemId), ItemEntry(vsi.ItemEntry), CreatorGuid(vsi.CreatorGuid), RandomBonusListId(vsi.RandomBonusListId), - ItemUpgradeId(vsi.ItemUpgradeId), FixedScalingLevel(vsi.FixedScalingLevel), - ArtifactKnowledgeLevel(vsi.ArtifactKnowledgeLevel), Context(vsi.Context), BonusListIDs(std::move(vsi.BonusListIDs)) { } + FixedScalingLevel(vsi.FixedScalingLevel), ArtifactKnowledgeLevel(vsi.ArtifactKnowledgeLevel), Context(vsi.Context), BonusListIDs(std::move(vsi.BonusListIDs)) { } uint64 ItemId; uint32 ItemEntry; ObjectGuid CreatorGuid; ItemRandomBonusListId RandomBonusListId; - uint32 ItemUpgradeId; uint32 FixedScalingLevel; uint32 ArtifactKnowledgeLevel; uint8 Context; |
