aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2017_01_12_20_world_2016_06_11_00_world.sql3
-rw-r--r--sql/updates/world/master/2017_01_12_21_world_2016_06_11_01_world.sql2
-rw-r--r--sql/updates/world/master/2017_01_12_22_world_2016_06_11_03_world.sql5
-rw-r--r--src/server/game/Movement/MotionMaster.cpp1
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp6
-rw-r--r--src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp9
6 files changed, 26 insertions, 0 deletions
diff --git a/sql/updates/world/master/2017_01_12_20_world_2016_06_11_00_world.sql b/sql/updates/world/master/2017_01_12_20_world_2016_06_11_00_world.sql
new file mode 100644
index 00000000000..ea81a3ce563
--- /dev/null
+++ b/sql/updates/world/master/2017_01_12_20_world_2016_06_11_00_world.sql
@@ -0,0 +1,3 @@
+-- Creature entry 19871 World Trigger (Not Immune NPC)
+-- set InhabitType [Flying] to enable hover mode for this creature
+UPDATE `creature_template` SET `InhabitType`= 4 WHERE `entry` = 19871;
diff --git a/sql/updates/world/master/2017_01_12_21_world_2016_06_11_01_world.sql b/sql/updates/world/master/2017_01_12_21_world_2016_06_11_01_world.sql
new file mode 100644
index 00000000000..c7185f6642c
--- /dev/null
+++ b/sql/updates/world/master/2017_01_12_21_world_2016_06_11_01_world.sql
@@ -0,0 +1,2 @@
+-- Correct page text for item 9568, Rune-Inscribed Parchment
+UPDATE `page_text` SET `Text` = "Lok'tar, $g brother:sister;. The elements beckon you closer and bid me to show you the path of the shaman. The spirits of our ancestors watch from beyond and swell with pride knowing you have joined our ranks.$B$BWhen you are ready, seek me out near the entrance to the Den. It is there that I will be training others of our kind. Until then, may the wind be at your back.$B$B-Shikrik, Shaman Trainer" WHERE `ID`= 2461;
diff --git a/sql/updates/world/master/2017_01_12_22_world_2016_06_11_03_world.sql b/sql/updates/world/master/2017_01_12_22_world_2016_06_11_03_world.sql
new file mode 100644
index 00000000000..47e3aefa366
--- /dev/null
+++ b/sql/updates/world/master/2017_01_12_22_world_2016_06_11_03_world.sql
@@ -0,0 +1,5 @@
+-- fix string in trinity_string incorrectly implying character customization is forced at login
+UPDATE `trinity_string` SET `content_default`='customization for player %s will be requested at next login.' WHERE `entry`=345;
+UPDATE `trinity_string` SET `content_default`='customization for player %s (GUID #%u) will be requested at next login.' WHERE `entry`=346;
+
+UPDATE `trinity_string` SET `content_default`='You already have a pet.' WHERE `entry`=344; -- add missing article
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index 94dcd71b5d5..7c747b9fe82 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -528,6 +528,7 @@ void MotionMaster::MoveSeekAssistance(float x, float y, float z)
TC_LOG_DEBUG("misc", "Creature (Entry: %u %s) seek assistance (X: %f Y: %f Z: %f)",
_owner->GetEntry(), _owner->GetGUID().ToString().c_str(), x, y, z);
_owner->AttackStop();
+ _owner->CastStop();
_owner->ToCreature()->SetReactState(REACT_PASSIVE);
Mutate(new AssistanceMovementGenerator(x, y, z), MOTION_SLOT_ACTIVE);
}
diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
index 76b8e29ff78..23d9fac49de 100644
--- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
@@ -38,6 +38,12 @@ void FleeingMovementGenerator<T>::_setTargetLocation(T* owner)
if (owner->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED))
return;
+ if (owner->HasUnitState(UNIT_STATE_CASTING) && !owner->CanMoveDuringChannel())
+ {
+ owner->CastStop();
+ return;
+ }
+
owner->AddUnitState(UNIT_STATE_FLEEING_MOVE);
float x, y, z;
diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
index 463f9c5e4e9..caa7d513796 100644
--- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
@@ -29,6 +29,12 @@
template<>
void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
{
+ if (creature->HasUnitState(UNIT_STATE_CASTING) && !creature->CanMoveDuringChannel())
+ {
+ creature->CastStop();
+ return;
+ }
+
float respX, respY, respZ, respO, destX, destY, destZ, travelDistZ;
creature->GetHomePosition(respX, respY, respZ, respO);
Map const* map = creature->GetBaseMap();
@@ -141,6 +147,9 @@ void RandomMovementGenerator<Creature>::DoFinalize(Creature* creature)
template<>
bool RandomMovementGenerator<Creature>::DoUpdate(Creature* creature, const uint32 diff)
{
+ if (!creature || !creature->IsAlive())
+ return false;
+
if (creature->HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DISTRACTED))
{
i_nextMoveTime.Reset(0); // Expire the timer