diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 76313d2011..32d81fbe78 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3276,10 +3276,6 @@ void SmartScript::InitTimer(SmartScriptHolder& e) case SMART_EVENT_UPDATE_OOC: RecalcTimer(e, e.event.minMaxRepeat.min, e.event.minMaxRepeat.max); break; - case SMART_EVENT_IC_LOS: - case SMART_EVENT_OOC_LOS: - RecalcTimer(e, e.event.los.cooldownMin, e.event.los.cooldownMax); - break; case SMART_EVENT_DISTANCE_CREATURE: case SMART_EVENT_DISTANCE_GAMEOBJECT: RecalcTimer(e, e.event.distance.repeat, e.event.distance.repeat); diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp index 7c87b5420a..72fb1961df 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp +++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp @@ -290,10 +290,11 @@ void BattlegroundQueue::RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount) itr = m_QueuedPlayers.find(guid); if (itr == m_QueuedPlayers.end()) { + //This happens if a player logs out while in a bg because WorldSession::LogoutPlayer() notifies the bg twice std::string playerName = "Unknown"; if (Player* player = ObjectAccessor::FindPlayer(guid)) playerName = player->GetName(); - TC_LOG_ERROR("bg.battleground", "BattlegroundQueue: couldn't find player %s (%s)", playerName.c_str(), guid.ToString().c_str()); + TC_LOG_DEBUG("bg.battleground", "BattlegroundQueue: couldn't find player %s (%s)", playerName.c_str(), guid.ToString().c_str()); return; } diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index 0523c8b36f..140f138c83 100644 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -743,7 +743,7 @@ void LoadDBCStores(const std::string& dataPath) for (TaxiPathSetForSource::const_iterator dest_i = src_i->second.begin(); dest_i != src_i->second.end(); ++dest_i) { // not spell path - if (spellPaths.find(dest_i->second.ID) == spellPaths.end()) + if (dest_i->second.price || spellPaths.find(dest_i->second.ID) == spellPaths.end()) { ok = true; break; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e49920169f..d38373193c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2099,6 +2099,9 @@ uint32 Unit::CalculateDamage(WeaponAttackType attType, bool normalized, bool add } } + minDamage = std::max(0.f, minDamage); + maxDamage = std::max(0.f, maxDamage); + if (minDamage > maxDamage) std::swap(minDamage, maxDamage); diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 02bada6db5..78b10c9254 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2912,6 +2912,19 @@ AuctionHouseBot.Horde.Price.Ratio = 100 AuctionHouseBot.Neutral.Price.Ratio = 100 +# +# AuctionHouseBot.Items.QUALITY.Price.Ratio +# Description: Percentage by which the price of items sold of each quality is incremented / decreased (for all houses) +# Default: 100 - (No change) + +AuctionHouseBot.Items.Gray.Price.Ratio = 100 +AuctionHouseBot.Items.White.Price.Ratio = 100 +AuctionHouseBot.Items.Green.Price.Ratio = 100 +AuctionHouseBot.Items.Blue.Price.Ratio = 100 +AuctionHouseBot.Items.Purple.Price.Ratio = 100 +AuctionHouseBot.Items.Orange.Price.Ratio = 100 +AuctionHouseBot.Items.Yellow.Price.Ratio = 100 + # # AuctionHouseBot.Items.ItemLevel.* # Description: Prevent seller from listing items below/above this item level