Scripts/Icecrown Citadel: Fixed crash in Blood-Queen Lana'thel script

Closes #234

Signed-off-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
Shauren
2011-01-14 21:54:17 +01:00
parent 8c48704b23
commit 4cb3a9c6ca

View File

@@ -229,7 +229,8 @@ class boss_blood_queen_lana_thel : public CreatureScript
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
me->SetFlying(false);
me->SetReactState(REACT_AGGRESSIVE);
AttackStart(me->getVictim());
if (Unit *victim = me->SelectVictim())
AttackStart(victim);
events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500, EVENT_GROUP_CANCELLABLE);
break;
default:
@@ -266,19 +267,23 @@ class boss_blood_queen_lana_thel : public CreatureScript
break;
case EVENT_BLOOD_MIRROR:
{
Player* newOfftank = SelectRandomTarget(true);
if (offtank != newOfftank)
// victim can be NULL when this is processed in the same update tick as EVENT_AIR_PHASE
if (me->getVictim())
{
offtank = newOfftank;
if (offtank)
Player* newOfftank = SelectRandomTarget(true);
if (offtank != newOfftank)
{
offtank->CastSpell(me->getVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
me->getVictim()->CastSpell(offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
DoCastVictim(SPELL_BLOOD_MIRROR_VISUAL);
if (Item* shadowsEdge = offtank->GetWeaponForAttack(BASE_ATTACK, true))
if (!offtank->HasAura(SPELL_THIRST_QUENCHED) && shadowsEdge->GetEntry() == ITEM_SHADOW_S_EDGE && !offtank->HasAura(SPELL_GUSHING_WOUND))
offtank->CastSpell(offtank, SPELL_GUSHING_WOUND, true);
offtank = newOfftank;
if (offtank)
{
offtank->CastSpell(me->getVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
me->getVictim()->CastSpell(offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
DoCastVictim(SPELL_BLOOD_MIRROR_VISUAL);
if (Item* shadowsEdge = offtank->GetWeaponForAttack(BASE_ATTACK, true))
if (!offtank->HasAura(SPELL_THIRST_QUENCHED) && shadowsEdge->GetEntry() == ITEM_SHADOW_S_EDGE && !offtank->HasAura(SPELL_GUSHING_WOUND))
offtank->CastSpell(offtank, SPELL_GUSHING_WOUND, true);
}
}
}
events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500, EVENT_GROUP_CANCELLABLE);