* Scripts/BloodFurnace:
* cleanup InstanceScript
* fix broggok poison cloud

Scripts/Naxxramas/Grobbulus:
* fix poison cloud
* fix mutating injection
* Fix build
* DB/Spawns: remove duplicate NPCs on Zeppelin from Orgrimmar to Thunder Bluff

Closes #11420
* Core/SAI: drop unneeded code
* Scripts/PoS/Garfrost: cleanup saronit blocks after death
* Core/Battlefield: some codestyle changes
* Core/Spells: Fix potions cooldown in combat

Fix a cooldown issue related to potions allowing Players in combat to use more than 1 potion in a row, especially with high latency.
This also fixes an exploit about using infinite potions in combat just by skipping the client-side check.
The original implementation c064c2e2e1eebd43b273365583dd181293bafa22 was missing a check in Spell::CheckCast() about this particular case since Potion cooldown is added only after the Player goes out of combat.
Fixes #1259 .
* Core/Wintergrasp: Fix typo in CMSG_HEARTH_AND_RESURRECT handler

Fix CMSG_HEARTH_AND_RESURRECT handler trying to resurrect players with 100x hp/mana/energy ( SetHealth()/SetPower() were sanitizing the input anyway ) .
* Core/Battlegrounds: Fix offline players not being resurrected when Battleground ends

Fixes #7081
* Core/Entities: Don't allow to login while character is forced to rename
* Core/Entities: Implement SMSG_INVALIDATE_PLAYER
* Core&Conf: Small cosmetic fixes

Closes #11392

Signed-off-by: DDuarte <dnpd.dd@gmail.com>
* DB/Guild: Fix incorrect input length limits

There is one incorrect field length related to guilds in the database, which can be used to cause an overflow client-side, by sending CMSG_GUILD_INFO_TEXT with long strings.

The guild information has the same 500 characters client-side limit as the guild bank tab information, but on server-side it can be 65k characters long. A lengthy guild info makes the whole Guild panel unusable.

Length of the other fields match the client's limits in the database: guild bank tab name (16), public note (31), officer note (31), motd (128), guild bank tab info (500).

Closes #11395

Signed-off-by: DDuarte <dnpd.dd@gmail.com>
* Scripts/NPCs: Remove core script for rogue trainers which was overriding db conditions

SAI and conditions for rogue trainers to provide elegant leter to rogues provided that is level 24 or higher, does not have elegant letter and does not have taken, rewarded or complete the quest which elegant letter starts

Closes #11378

Signed-off-by: DDuarte <dnpd.dd@gmail.com>
* Scripting/Utgarde Pinnacle: Fix visual during Svala's transformation
* Core/Players: On CanRewardQuest, use the same item dest vector for all potential rewards
* Core/Movement: Add LOS check for fleeingmovement target point.

Prevents fleeing or feared units from going to upper floor ignoring walls/ceilings with mmaps on(and usually get stucked).

Current implementation just randomly selects a distance and angle against the frighting unit, when in narrow circumstance such as underground caves, such targeting point would be at another floor.

Closes #11300
Ref #9475 (needs fixed confirmation)
* Spells: Fix Alcohol-Free Brewfest Sampler

Closes #10956

Signed-off-by: Duarte Duarte <dnpd.dd@gmail.com>
* Core/SAI: Fix crash in SmartScript

Fix crash in SmartScript storing WorldObject* instead of guid as targets in SmartScript::mTargetStorage , used by SMART_TARGET_STORED target type , SMART_ESCORT_TARGETS and other escort related code.
Fixes #11228 , #10157 .

Valgrind log:
 Invalid read of size 4
  at : Object::GetTypeId() const (Object.h:140)
  by : SmartScript::IsPlayer(WorldObject*) (SmartScript.h:73)
  by : SmartScript::ProcessAction(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:330)
  by : SmartScript::ProcessEvent(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2662)
  by : SmartScript::ProcessAction(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2226)
  by : SmartScript::ProcessTimedAction(SmartScriptHolder&, unsigned int const&, unsigned int const&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2238)
  by : SmartScript::ProcessEvent(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2685)
  by : SmartScript::UpdateTimer(SmartScriptHolder&, unsigned int) (SmartScript.cpp:3198)
  by : SmartScript::OnUpdate(unsigned int) (SmartScript.cpp:3244)
  by : SmartAI::UpdateAI(unsigned int) (SmartAI.cpp:331)
  by : Creature::Update(unsigned int) (Creature.cpp:544)
  by : void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) (GridNotifiers.cpp:340)
* Core/Instances: Fix exploit too much players in instances/raids