diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 0b612f98e..e35ae87d5 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2314,8 +2314,8 @@ void ObjectMgr::LoadItemTemplates() itemTemplate.Flags = fields[7].GetUInt32(); itemTemplate.Flags2 = fields[8].GetUInt32(); itemTemplate.BuyCount = uint32(fields[9].GetUInt8()); - itemTemplate.BuyPrice = int32(fields[10].GetInt64()); - itemTemplate.SellPrice = fields[11].GetUInt32(); + itemTemplate.BuyPrice = int32(fields[10].GetInt64() * sWorld->getRate((Rates)(RATE_BUYVALUE_ITEM_POOR + itemTemplate.Quality))); + itemTemplate.SellPrice = uint32(fields[11].GetUInt32() * sWorld->getRate((Rates)(RATE_SELLVALUE_ITEM_POOR + itemTemplate.Quality))); itemTemplate.InventoryType = uint32(fields[12].GetUInt8()); itemTemplate.AllowableClass = fields[13].GetInt32(); itemTemplate.AllowableRace = fields[14].GetInt32(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 5131961a4..d4664c44b 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -546,6 +546,25 @@ void World::LoadConfigSettings(bool reload) rate_values[RATE_XP_QUEST] = sConfigMgr->GetFloatDefault("Rate.XP.Quest", 1.0f); rate_values[RATE_XP_EXPLORE] = sConfigMgr->GetFloatDefault("Rate.XP.Explore", 1.0f); rate_values[RATE_REPAIRCOST] = sConfigMgr->GetFloatDefault("Rate.RepairCost", 1.0f); + + rate_values[RATE_SELLVALUE_ITEM_POOR] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Poor", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_NORMAL] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Normal", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_UNCOMMON] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Uncommon", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_RARE] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Rare", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_EPIC] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Epic", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_LEGENDARY] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Legendary", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_ARTIFACT] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Artifact", 1.0f); + rate_values[RATE_SELLVALUE_ITEM_HEIRLOOM] = sConfigMgr->GetFloatDefault("Rate.SellValue.Item.Heirloom", 1.0f); + + rate_values[ RATE_BUYVALUE_ITEM_POOR] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Poor", 1.0f); + rate_values[ RATE_BUYVALUE_ITEM_NORMAL] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Normal", 1.0f); + rate_values[ RATE_BUYVALUE_ITEM_UNCOMMON] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Uncommon", 1.0f); + rate_values[ RATE_BUYVALUE_ITEM_RARE] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Rare", 1.0f); + rate_values[ RATE_BUYVALUE_ITEM_EPIC] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Epic", 1.0f); + rate_values[ RATE_BUYVALUE_ITEM_LEGENDARY] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Legendary", 1.0f); + rate_values[RATE_BUYVALUE_ITEM_ARTIFACT] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Artifact", 1.0f); + rate_values[RATE_BUYVALUE_ITEM_HEIRLOOM] = sConfigMgr->GetFloatDefault("Rate.BuyValue.Item.Heirloom", 1.0f); + if (rate_values[RATE_REPAIRCOST] < 0.0f) { sLog->outError("Rate.RepairCost (%f) must be >=0. Using 0.0 instead.", rate_values[RATE_REPAIRCOST]); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index cb7243a8c..5e0652af8 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -377,6 +377,22 @@ enum Rates RATE_DROP_ITEM_ARTIFACT, RATE_DROP_ITEM_REFERENCED, RATE_DROP_ITEM_REFERENCED_AMOUNT, + RATE_SELLVALUE_ITEM_POOR, + RATE_SELLVALUE_ITEM_NORMAL, + RATE_SELLVALUE_ITEM_UNCOMMON, + RATE_SELLVALUE_ITEM_RARE, + RATE_SELLVALUE_ITEM_EPIC, + RATE_SELLVALUE_ITEM_LEGENDARY, + RATE_SELLVALUE_ITEM_ARTIFACT, + RATE_SELLVALUE_ITEM_HEIRLOOM, + RATE_BUYVALUE_ITEM_POOR, + RATE_BUYVALUE_ITEM_NORMAL, + RATE_BUYVALUE_ITEM_UNCOMMON, + RATE_BUYVALUE_ITEM_RARE, + RATE_BUYVALUE_ITEM_EPIC, + RATE_BUYVALUE_ITEM_LEGENDARY, + RATE_BUYVALUE_ITEM_ARTIFACT, + RATE_BUYVALUE_ITEM_HEIRLOOM, RATE_DROP_MONEY, RATE_XP_KILL, RATE_XP_BG_KILL, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index f74249e76..f5ed7e31a 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2307,6 +2307,62 @@ Rate.Drop.Item.Artifact = 1 Rate.Drop.Item.Referenced = 1 Rate.Drop.Money = 1 +# +# Rate.SellValue.Item.Poor +# Rate.SellValue.Item.Normal +# Rate.SellValue.Item.Uncommon +# Rate.SellValue.Item.Rare +# Rate.SellValue.Item.Epic +# Rate.SellValue.Item.Legendary +# Rate.SellValue.Item.Artifact +# Rate.SellValue.Item.Heirloom +# Description: Item Sale Value rates based on quality. +# Default: 1 - (Rate.SellValue.Item.Poor) +# 1 - (Rate.SellValue.Item.Normal) +# 1 - (Rate.SellValue.Item.Uncommon) +# 1 - (Rate.SellValue.Item.Rare) +# 1 - (Rate.SellValue.Item.Epic) +# 1 - (Rate.SellValue.Item.Legendary) +# 1 - (Rate.SellValue.Item.Artifact) +# 1 - (Rate.SellValue.Item.Heirloom) + +Rate.SellValue.Item.Poor = 1 +Rate.SellValue.Item.Normal = 1 +Rate.SellValue.Item.Uncommon = 1 +Rate.SellValue.Item.Rare = 1 +Rate.SellValue.Item.Epic = 1 +Rate.SellValue.Item.Legendary = 1 +Rate.SellValue.Item.Artifact = 1 +Rate.SellValue.Item.Heirloom = 1 + +# +# Rate.BuyValue.Item.Poor +# Rate.BuyValue.Item.Normal +# Rate.BuyValue.Item.Uncommon +# Rate.BuyValue.Item.Rare +# Rate.BuyValue.Item.Epic +# Rate.BuyValue.Item.Legendary +# Rate.BuyValue.Item.Artifact +# Rate.BuyValue.Item.Heirloom +# Description: Item Sale Value rates based on quality. +# Default: 1 - (Rate.BuyValue.Item.Poor) +# 1 - (Rate.BuyValue.Item.Normal) +# 1 - (Rate.BuyValue.Item.Uncommon) +# 1 - (Rate.BuyValue.Item.Rare) +# 1 - (Rate.BuyValue.Item.Epic) +# 1 - (Rate.BuyValue.Item.Legendary) +# 1 - (Rate.BuyValue.Item.Artifact) +# 1 - (Rate.BuyValue.Item.Heirloom) + +Rate.BuyValue.Item.Poor = 1 +Rate.BuyValue.Item.Normal = 1 +Rate.BuyValue.Item.Uncommon = 1 +Rate.BuyValue.Item.Rare = 1 +Rate.BuyValue.Item.Epic = 1 +Rate.BuyValue.Item.Legendary = 1 +Rate.BuyValue.Item.Artifact = 1 +Rate.BuyValue.Item.Heirloom = 1 + # # Rate.Drop.Item.ReferencedAmount # Description: Multiplier for referenced loot amount.