mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 08:55:32 +01:00
Merge pull request #2991 from megamage/master
Core/Entities: Do not call AddObjectToRemoveList(Pet*) in Map::MoveAllCreaturesInMoveList() - Closes #2892. Scripts: Fix a crash in npc_brunnhildar_prisoner script. Closes #2825.
This commit is contained in:
@@ -558,7 +558,7 @@ public:
|
||||
{
|
||||
npc_brunnhildar_prisonerAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
Unit* drake;
|
||||
uint64 drakeGUID;
|
||||
uint16 enter_timer;
|
||||
bool hasEmptySeats;
|
||||
|
||||
@@ -566,14 +566,25 @@ public:
|
||||
{
|
||||
me->CastSpell(me, SPELL_ICE_PRISON, true);
|
||||
enter_timer = 0;
|
||||
drake = NULL;
|
||||
drakeGUID = 0;
|
||||
hasEmptySeats = false;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//TODO: not good script
|
||||
if (!drakeGUID)
|
||||
return;
|
||||
|
||||
Creature* drake = Unit::GetCreature(*me, drakeGUID);
|
||||
if (!drake)
|
||||
{
|
||||
drakeGUID = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// drake unsummoned, passengers dropped
|
||||
if (drake && !me->IsOnVehicle(drake) && !hasEmptySeats)
|
||||
if (!me->IsOnVehicle(drake) && !hasEmptySeats)
|
||||
me->ForcedDespawn(3000);
|
||||
|
||||
if (enter_timer <= 0)
|
||||
@@ -593,9 +604,16 @@ public:
|
||||
|
||||
void MoveInLineOfSight(Unit* unit)
|
||||
{
|
||||
if (!unit || !drake)
|
||||
if (!unit || !drakeGUID)
|
||||
return;
|
||||
|
||||
Creature* drake = Unit::GetCreature(*me, drakeGUID);
|
||||
if (!drake)
|
||||
{
|
||||
drakeGUID = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!me->IsOnVehicle(drake) && !me->HasAura(SPELL_ICE_PRISON))
|
||||
{
|
||||
if (unit->IsVehicle() && me->IsWithinDist(unit, 25.0f, true) && unit->ToCreature() && unit->ToCreature()->GetEntry() == 29709)
|
||||
@@ -651,7 +669,7 @@ public:
|
||||
enter_timer = 500;
|
||||
|
||||
if (hitter->IsVehicle())
|
||||
drake = hitter;
|
||||
drakeGUID = hitter->GetGUID();
|
||||
else
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user