*code cleanup
*totally destroyed m_creature, use "me" for future coding --HG-- branch : trunk
This commit is contained in:
@@ -89,7 +89,7 @@ struct mob_mature_netherwing_drakeAI : public ScriptedAI
|
||||
if (bCanEat || bIsEating)
|
||||
return;
|
||||
|
||||
if (pCaster->GetTypeId() == TYPEID_PLAYER && pSpell->Id == SPELL_PLACE_CARCASS && !m_creature->HasAura(SPELL_JUST_EATEN))
|
||||
if (pCaster->GetTypeId() == TYPEID_PLAYER && pSpell->Id == SPELL_PLACE_CARCASS && !me->HasAura(SPELL_JUST_EATEN))
|
||||
{
|
||||
uiPlayerGUID = pCaster->GetGUID();
|
||||
bCanEat = true;
|
||||
@@ -105,7 +105,7 @@ struct mob_mature_netherwing_drakeAI : public ScriptedAI
|
||||
{
|
||||
bIsEating = true;
|
||||
EatTimer = 7000;
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_ATTACKUNARMED);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACKUNARMED);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,36 +117,36 @@ struct mob_mature_netherwing_drakeAI : public ScriptedAI
|
||||
{
|
||||
if (bCanEat && !bIsEating)
|
||||
{
|
||||
if (Unit* pUnit = Unit::GetUnit(*m_creature, uiPlayerGUID))
|
||||
if (Unit* pUnit = Unit::GetUnit(*me, uiPlayerGUID))
|
||||
{
|
||||
if (GameObject* pGo = pUnit->FindNearestGameObject(GO_CARCASS, 10))
|
||||
{
|
||||
if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
|
||||
m_creature->GetMotionMaster()->MovementExpired();
|
||||
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
|
||||
m_creature->GetMotionMaster()->MoveIdle();
|
||||
m_creature->StopMoving();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->StopMoving();
|
||||
|
||||
m_creature->GetMotionMaster()->MovePoint(POINT_ID, pGo->GetPositionX(), pGo->GetPositionY(), pGo->GetPositionZ());
|
||||
me->GetMotionMaster()->MovePoint(POINT_ID, pGo->GetPositionX(), pGo->GetPositionY(), pGo->GetPositionZ());
|
||||
}
|
||||
}
|
||||
bCanEat = false;
|
||||
}
|
||||
else if (bIsEating)
|
||||
{
|
||||
DoCast(m_creature, SPELL_JUST_EATEN);
|
||||
DoScriptText(SAY_JUST_EATEN, m_creature);
|
||||
DoCast(me, SPELL_JUST_EATEN);
|
||||
DoScriptText(SAY_JUST_EATEN, me);
|
||||
|
||||
if (Player* pPlr = Unit::GetPlayer(uiPlayerGUID))
|
||||
{
|
||||
pPlr->KilledMonsterCredit(NPC_EVENT_PINGER, m_creature->GetGUID());
|
||||
pPlr->KilledMonsterCredit(NPC_EVENT_PINGER, me->GetGUID());
|
||||
|
||||
if (GameObject* pGo = pPlr->FindNearestGameObject(GO_CARCASS, 10))
|
||||
pGo->Delete();
|
||||
}
|
||||
|
||||
Reset();
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->Clear();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -160,7 +160,7 @@ struct mob_mature_netherwing_drakeAI : public ScriptedAI
|
||||
|
||||
if (CastTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_NETHER_BREATH);
|
||||
DoCast(me->getVictim(), SPELL_NETHER_BREATH);
|
||||
CastTimer = 5000;
|
||||
} else CastTimer -= diff;
|
||||
|
||||
@@ -202,11 +202,11 @@ struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
if (!Tapped)
|
||||
m_creature->setFaction(FACTION_DEFAULT);
|
||||
me->setFaction(FACTION_DEFAULT);
|
||||
|
||||
FlyTimer = 10000;
|
||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
m_creature->SetVisibility(VISIBILITY_ON);
|
||||
me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
me->SetVisibility(VISIBILITY_ON);
|
||||
}
|
||||
|
||||
void SpellHit(Unit* caster, const SpellEntry* spell)
|
||||
@@ -219,18 +219,18 @@ struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
Tapped = true;
|
||||
PlayerGUID = caster->GetGUID();
|
||||
|
||||
m_creature->setFaction(FACTION_FRIENDLY);
|
||||
me->setFaction(FACTION_FRIENDLY);
|
||||
DoCast(caster, SPELL_FORCE_OF_NELTHARAKU, true);
|
||||
|
||||
Unit* Dragonmaw = me->FindNearestCreature(CREATURE_DRAGONMAW_SUBJUGATOR, 50);
|
||||
|
||||
if (Dragonmaw)
|
||||
{
|
||||
m_creature->AddThreat(Dragonmaw, 100000.0f);
|
||||
me->AddThreat(Dragonmaw, 100000.0f);
|
||||
AttackStart(Dragonmaw);
|
||||
}
|
||||
|
||||
HostileReference* ref = m_creature->getThreatManager().getOnlineContainer().getReferenceByTarget(caster);
|
||||
HostileReference* ref = me->getThreatManager().getOnlineContainer().getReferenceByTarget(caster);
|
||||
if (ref)
|
||||
ref->removeReference();
|
||||
}
|
||||
@@ -245,16 +245,16 @@ struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
{
|
||||
if (PlayerGUID)
|
||||
{
|
||||
Unit* plr = Unit::GetUnit((*m_creature), PlayerGUID);
|
||||
Unit* plr = Unit::GetUnit((*me), PlayerGUID);
|
||||
if (plr)
|
||||
DoCast(plr, SPELL_FORCE_OF_NELTHARAKU, true);
|
||||
|
||||
PlayerGUID = 0;
|
||||
}
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
m_creature->RemoveCorpse();
|
||||
me->SetVisibility(VISIBILITY_OFF);
|
||||
me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
me->RemoveCorpse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,10 +274,10 @@ struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
DoCast(plr, SPELL_FORCE_OF_NELTHARAKU, true);
|
||||
/*
|
||||
float x,y,z;
|
||||
m_creature->GetPosition(x,y,z);
|
||||
me->GetPosition(x,y,z);
|
||||
|
||||
float dx,dy,dz;
|
||||
m_creature->GetRandomPoint(x, y, z, 20, dx, dy, dz);
|
||||
me->GetRandomPoint(x, y, z, 20, dx, dy, dz);
|
||||
dz += 20; // so it's in the air, not ground*/
|
||||
|
||||
Position pos;
|
||||
@@ -285,12 +285,12 @@ struct mob_enslaved_netherwing_drakeAI : public ScriptedAI
|
||||
EscapeDummy->GetPosition(&pos);
|
||||
else
|
||||
{
|
||||
m_creature->GetRandomNearPosition(pos, 20);
|
||||
me->GetRandomNearPosition(pos, 20);
|
||||
pos.m_positionZ += 25;
|
||||
}
|
||||
|
||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
m_creature->GetMotionMaster()->MovePoint(1, pos);
|
||||
me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
me->GetMotionMaster()->MovePoint(1, pos);
|
||||
}
|
||||
}
|
||||
} else FlyTimer -= diff;
|
||||
@@ -336,10 +336,10 @@ struct mob_dragonmaw_peonAI : public ScriptedAI
|
||||
|
||||
Tapped = true;
|
||||
float x, y, z;
|
||||
caster->GetClosePoint(x, y, z, m_creature->GetObjectSize());
|
||||
caster->GetClosePoint(x, y, z, me->GetObjectSize());
|
||||
|
||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||
m_creature->GetMotionMaster()->MovePoint(1, x, y, z);
|
||||
me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||
me->GetMotionMaster()->MovePoint(1, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ struct mob_dragonmaw_peonAI : public ScriptedAI
|
||||
|
||||
if (id)
|
||||
{
|
||||
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_EAT);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_EAT);
|
||||
PoisonTimer = 15000;
|
||||
}
|
||||
}
|
||||
@@ -364,10 +364,10 @@ struct mob_dragonmaw_peonAI : public ScriptedAI
|
||||
{
|
||||
Player* plr = Unit::GetPlayer(PlayerGUID);
|
||||
if (plr && plr->GetQuestStatus(11020) == QUEST_STATUS_INCOMPLETE)
|
||||
plr->KilledMonsterCredit(23209, m_creature->GetGUID());
|
||||
plr->KilledMonsterCredit(23209, me->GetGUID());
|
||||
}
|
||||
PoisonTimer = 0;
|
||||
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
} else PoisonTimer -= diff;
|
||||
}
|
||||
};
|
||||
@@ -692,14 +692,14 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
Step = 0;
|
||||
|
||||
Event = false;
|
||||
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 2);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, 2);
|
||||
}
|
||||
|
||||
void StartEvent()
|
||||
{
|
||||
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
|
||||
Unit* Illidan = m_creature->SummonCreature(C_ILLIDAN, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
me->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
|
||||
Unit* Illidan = me->SummonCreature(C_ILLIDAN, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
if (Illidan)
|
||||
{
|
||||
IllidanGUID = Illidan->GetGUID();
|
||||
@@ -709,7 +709,7 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
{
|
||||
Player* pPlayer = Unit::GetPlayer(PlayerGUID);
|
||||
if (pPlayer)
|
||||
DoScriptText(OVERLORD_SAY_1, m_creature, pPlayer);
|
||||
DoScriptText(OVERLORD_SAY_1, me, pPlayer);
|
||||
}
|
||||
ConversationTimer = 4200;
|
||||
Step = 0;
|
||||
@@ -718,9 +718,9 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
|
||||
uint32 NextStep(uint32 Step)
|
||||
{
|
||||
Unit* plr = Unit::GetUnit((*m_creature), PlayerGUID);
|
||||
Unit* plr = Unit::GetUnit((*me), PlayerGUID);
|
||||
|
||||
Unit* Illi = Unit::GetUnit((*m_creature), IllidanGUID);
|
||||
Unit* Illi = Unit::GetUnit((*me), IllidanGUID);
|
||||
|
||||
if (!plr || !Illi)
|
||||
{
|
||||
@@ -731,22 +731,22 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
switch(Step)
|
||||
{
|
||||
case 0: return 0; break;
|
||||
case 1: m_creature->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838); return 9000; break;
|
||||
case 2: DoScriptText(OVERLORD_YELL_1, m_creature, plr); return 4500; break;
|
||||
case 3: m_creature->SetInFront(plr); return 3200; break;
|
||||
case 4: DoScriptText(OVERLORD_SAY_2, m_creature, plr); return 2000; break;
|
||||
case 1: me->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838); return 9000; break;
|
||||
case 2: DoScriptText(OVERLORD_YELL_1, me, plr); return 4500; break;
|
||||
case 3: me->SetInFront(plr); return 3200; break;
|
||||
case 4: DoScriptText(OVERLORD_SAY_2, me, plr); return 2000; break;
|
||||
case 5: Illi->SetVisibility(VISIBILITY_ON);
|
||||
Illi->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); return 350; break;
|
||||
case 6:
|
||||
Illi->CastSpell(Illi, SPELL_ONE, true);
|
||||
Illi->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, IllidanGUID);
|
||||
Illi->SetUInt64Value(UNIT_FIELD_TARGET, me->GetGUID());
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, IllidanGUID);
|
||||
return 2000; break;
|
||||
case 7: DoScriptText(OVERLORD_YELL_2, m_creature); return 4500; break;
|
||||
case 8: m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 8); return 2500; break;
|
||||
case 9: DoScriptText(OVERLORD_SAY_3, m_creature); return 6500; break;
|
||||
case 7: DoScriptText(OVERLORD_YELL_2, me); return 4500; break;
|
||||
case 8: me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8); return 2500; break;
|
||||
case 9: DoScriptText(OVERLORD_SAY_3, me); return 6500; break;
|
||||
case 10: DoScriptText(LORD_ILLIDAN_SAY_1, Illi); return 5000; break;
|
||||
case 11: DoScriptText(OVERLORD_SAY_4, m_creature, plr); return 6000; break;
|
||||
case 11: DoScriptText(OVERLORD_SAY_4, me, plr); return 6000; break;
|
||||
case 12: DoScriptText(LORD_ILLIDAN_SAY_2, Illi); return 5500; break;
|
||||
case 13: DoScriptText(LORD_ILLIDAN_SAY_3, Illi); return 4000; break;
|
||||
case 14: Illi->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); return 1500; break;
|
||||
@@ -769,17 +769,17 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
Illi->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
return 500; break;
|
||||
case 21: DoScriptText(OVERLORD_SAY_5, m_creature); return 500; break;
|
||||
case 21: DoScriptText(OVERLORD_SAY_5, me); return 500; break;
|
||||
case 22:
|
||||
Illi->SetVisibility(VISIBILITY_OFF);
|
||||
Illi->setDeathState(JUST_DIED);
|
||||
return 1000; break;
|
||||
case 23: m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); return 2000; break;
|
||||
case 24: m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); return 5000; break;
|
||||
case 25: DoScriptText(OVERLORD_SAY_6, m_creature); return 2000; break;
|
||||
case 23: me->SetUInt32Value(UNIT_FIELD_BYTES_1,0); return 2000; break;
|
||||
case 24: me->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); return 5000; break;
|
||||
case 25: DoScriptText(OVERLORD_SAY_6, me); return 2000; break;
|
||||
case 26:
|
||||
if (plr)
|
||||
CAST_PLR(plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature);
|
||||
CAST_PLR(plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, me);
|
||||
return 6000; break;
|
||||
case 27:
|
||||
{
|
||||
@@ -815,7 +815,7 @@ struct npc_overlord_morghorAI : public ScriptedAI
|
||||
Yarzill->CastSpell(plr, 41540, true);
|
||||
return 1000;}
|
||||
break;
|
||||
case 32: m_creature->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719); return 5000; break;
|
||||
case 32: me->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719); return 5000; break;
|
||||
case 33: Reset(); return 100; break;
|
||||
|
||||
default : return 0;
|
||||
@@ -901,14 +901,14 @@ struct npc_earthmender_wildaAI : public npc_escortAI
|
||||
switch(uiPointId)
|
||||
{
|
||||
case 13:
|
||||
DoScriptText(SAY_WIL_PROGRESS1, m_creature, pPlayer);
|
||||
DoScriptText(SAY_WIL_PROGRESS1, me, pPlayer);
|
||||
DoSpawnAssassin();
|
||||
break;
|
||||
case 14:
|
||||
DoSpawnAssassin();
|
||||
break;
|
||||
case 15:
|
||||
DoScriptText(SAY_WIL_FIND_EXIT, m_creature, pPlayer);
|
||||
DoScriptText(SAY_WIL_FIND_EXIT, me, pPlayer);
|
||||
break;
|
||||
case 19:
|
||||
DoRandomSay();
|
||||
@@ -935,7 +935,7 @@ struct npc_earthmender_wildaAI : public npc_escortAI
|
||||
DoSpawnAssassin();
|
||||
break;
|
||||
case 39:
|
||||
DoScriptText(SAY_WIL_JUST_AHEAD, m_creature, pPlayer);
|
||||
DoScriptText(SAY_WIL_JUST_AHEAD, me, pPlayer);
|
||||
break;
|
||||
case 43:
|
||||
DoRandomSay();
|
||||
@@ -944,10 +944,10 @@ struct npc_earthmender_wildaAI : public npc_escortAI
|
||||
DoSpawnAssassin();
|
||||
break;
|
||||
case 50:
|
||||
DoScriptText(SAY_WIL_END, m_creature, pPlayer);
|
||||
DoScriptText(SAY_WIL_END, me, pPlayer);
|
||||
|
||||
if (Player* pPlayer = GetPlayerForEscort())
|
||||
pPlayer->GroupEventHappens(QUEST_ESCAPE_COILSCAR, m_creature);
|
||||
pPlayer->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -955,13 +955,13 @@ struct npc_earthmender_wildaAI : public npc_escortAI
|
||||
void JustSummoned(Creature* pSummoned)
|
||||
{
|
||||
if (pSummoned->GetEntry() == NPC_COILSKAR_ASSASSIN)
|
||||
pSummoned->AI()->AttackStart(m_creature);
|
||||
pSummoned->AI()->AttackStart(me);
|
||||
}
|
||||
|
||||
//this is very unclear, random say without no real relevance to script/event
|
||||
void DoRandomSay()
|
||||
{
|
||||
DoScriptText(RAND(SAY_WIL_PROGRESS2,SAY_WIL_PROGRESS4,SAY_WIL_PROGRESS5), m_creature);
|
||||
DoScriptText(RAND(SAY_WIL_PROGRESS2,SAY_WIL_PROGRESS4,SAY_WIL_PROGRESS5), me);
|
||||
}
|
||||
|
||||
void DoSpawnAssassin()
|
||||
@@ -993,11 +993,11 @@ struct npc_earthmender_wildaAI : public npc_escortAI
|
||||
return;
|
||||
|
||||
//TODO: add more abilities
|
||||
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 30)
|
||||
if (me->GetHealth()*100 / me->GetMaxHealth() <= 30)
|
||||
{
|
||||
if (m_uiHealingTimer <= uiDiff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_HEALING_WAVE);
|
||||
DoCast(me, SPELL_HEALING_WAVE);
|
||||
m_uiHealingTimer = 15000;
|
||||
}
|
||||
else
|
||||
@@ -1148,17 +1148,17 @@ struct mob_illidari_spawnAI : public ScriptedAI
|
||||
|
||||
if (!Timers)
|
||||
{
|
||||
if (m_creature->GetEntry() == 22075)//Illidari Soldier
|
||||
if (me->GetEntry() == 22075)//Illidari Soldier
|
||||
{
|
||||
SpellTimer1 = SpawnCast[0].Timer1 + (rand()%4 * 1000);
|
||||
}
|
||||
if (m_creature->GetEntry() == 22074)//Illidari Mind Breaker
|
||||
if (me->GetEntry() == 22074)//Illidari Mind Breaker
|
||||
{
|
||||
SpellTimer1 = SpawnCast[1].Timer1 + (rand()%10 * 1000);
|
||||
SpellTimer2 = SpawnCast[2].Timer1 + (rand()%4 * 1000);
|
||||
SpellTimer3 = SpawnCast[3].Timer1 + (rand()%4 * 1000);
|
||||
}
|
||||
if (m_creature->GetEntry() == 19797)// Illidari Highlord
|
||||
if (me->GetEntry() == 19797)// Illidari Highlord
|
||||
{
|
||||
SpellTimer1 = SpawnCast[4].Timer1 + (rand()%4 * 1000);
|
||||
SpellTimer2 = SpawnCast[5].Timer1 + (rand()%4 * 1000);
|
||||
@@ -1166,16 +1166,16 @@ struct mob_illidari_spawnAI : public ScriptedAI
|
||||
Timers = true;
|
||||
}
|
||||
//Illidari Soldier
|
||||
if (m_creature->GetEntry() == 22075)
|
||||
if (me->GetEntry() == 22075)
|
||||
{
|
||||
if (SpellTimer1 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[0].SpellId);//Spellbreaker
|
||||
DoCast(me->getVictim(), SpawnCast[0].SpellId);//Spellbreaker
|
||||
SpellTimer1 = SpawnCast[0].Timer2 + (rand()%5 * 1000);
|
||||
} else SpellTimer1 -= diff;
|
||||
}
|
||||
//Illidari Mind Breaker
|
||||
if (m_creature->GetEntry() == 22074)
|
||||
if (me->GetEntry() == 22074)
|
||||
{
|
||||
if (SpellTimer1 <= diff)
|
||||
{
|
||||
@@ -1191,28 +1191,28 @@ struct mob_illidari_spawnAI : public ScriptedAI
|
||||
|
||||
if (SpellTimer2 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[2].SpellId);//Psychic Scream
|
||||
DoCast(me->getVictim(), SpawnCast[2].SpellId);//Psychic Scream
|
||||
SpellTimer2 = SpawnCast[2].Timer2 + (rand()%13 * 1000);
|
||||
} else SpellTimer2 -= diff;
|
||||
|
||||
if (SpellTimer3 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[3].SpellId);//Mind Blast
|
||||
DoCast(me->getVictim(), SpawnCast[3].SpellId);//Mind Blast
|
||||
SpellTimer3 = SpawnCast[3].Timer2 + (rand()%8 * 1000);
|
||||
} else SpellTimer3 -= diff;
|
||||
}
|
||||
//Illidari Highlord
|
||||
if (m_creature->GetEntry() == 19797)
|
||||
if (me->GetEntry() == 19797)
|
||||
{
|
||||
if (SpellTimer1 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[4].SpellId);//Curse Of Flames
|
||||
DoCast(me->getVictim(), SpawnCast[4].SpellId);//Curse Of Flames
|
||||
SpellTimer1 = SpawnCast[4].Timer2 + (rand()%10 * 1000);
|
||||
} else SpellTimer1 -= diff;
|
||||
|
||||
if (SpellTimer2 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[5].SpellId);//Flamestrike
|
||||
DoCast(me->getVictim(), SpawnCast[5].SpellId);//Flamestrike
|
||||
SpellTimer2 = SpawnCast[5].Timer2 + (rand()%7 * 13000);
|
||||
} else SpellTimer2 -= diff;
|
||||
}
|
||||
@@ -1246,20 +1246,20 @@ struct mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
AggroTargetGUID = 0;
|
||||
Timers = false;
|
||||
|
||||
m_creature->addUnitState(UNIT_STAT_ROOT);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||
me->addUnitState(UNIT_STAT_ROOT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who){}
|
||||
|
||||
void HandleAnimation()
|
||||
{
|
||||
Creature* pCreature = m_creature;
|
||||
Creature* pCreature = me;
|
||||
|
||||
if (TorlothAnim[AnimationCount].pCreature == 1)
|
||||
{
|
||||
pCreature = (Unit::GetCreature(*m_creature, LordIllidanGUID));
|
||||
pCreature = (Unit::GetCreature(*me, LordIllidanGUID));
|
||||
|
||||
if (!pCreature)
|
||||
return;
|
||||
@@ -1273,28 +1273,28 @@ struct mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
switch(AnimationCount)
|
||||
{
|
||||
case 0:
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8);
|
||||
me->SetUInt32Value(UNIT_FIELD_BYTES_1,8);
|
||||
break;
|
||||
case 3:
|
||||
m_creature->RemoveFlag(UNIT_FIELD_BYTES_1,8);
|
||||
me->RemoveFlag(UNIT_FIELD_BYTES_1,8);
|
||||
break;
|
||||
case 5:
|
||||
if (Player* AggroTarget = (Unit::GetPlayer(AggroTargetGUID)))
|
||||
{
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, AggroTarget->GetGUID());
|
||||
m_creature->AddThreat(AggroTarget, 1);
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, AggroTarget->GetGUID());
|
||||
me->AddThreat(AggroTarget, 1);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (Player* AggroTarget = (Unit::GetPlayer(AggroTargetGUID)))
|
||||
{
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->clearUnitState(UNIT_STAT_ROOT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->clearUnitState(UNIT_STAT_ROOT);
|
||||
|
||||
float x, y, z;
|
||||
AggroTarget->GetPosition(x,y,z);
|
||||
m_creature->GetMotionMaster()->MovePoint(0,x,y,z);
|
||||
me->GetMotionMaster()->MovePoint(0,x,y,z);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1313,7 +1313,7 @@ struct mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
|
||||
if (AnimationCount < 6)
|
||||
{
|
||||
m_creature->CombatStop();
|
||||
me->CombatStop();
|
||||
} else if (!Timers)
|
||||
{
|
||||
|
||||
@@ -1327,19 +1327,19 @@ struct mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
{
|
||||
if (SpellTimer1 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[6].SpellId);//Cleave
|
||||
DoCast(me->getVictim(), SpawnCast[6].SpellId);//Cleave
|
||||
SpellTimer1 = SpawnCast[6].Timer2 + (rand()%10 * 1000);
|
||||
} else SpellTimer1 -= diff;
|
||||
|
||||
if (SpellTimer2 <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SpawnCast[7].SpellId);//Shadowfury
|
||||
DoCast(me->getVictim(), SpawnCast[7].SpellId);//Shadowfury
|
||||
SpellTimer2 = SpawnCast[7].Timer2 + (rand()%5 * 1000);
|
||||
} else SpellTimer2 -= diff;
|
||||
|
||||
if (SpellTimer3 <= diff)
|
||||
{
|
||||
DoCast(m_creature, SpawnCast[8].SpellId);
|
||||
DoCast(me, SpawnCast[8].SpellId);
|
||||
SpellTimer3 = SpawnCast[8].Timer2 + (rand()%7 * 1000);//Spell Reflection
|
||||
} else SpellTimer3 -= diff;
|
||||
}
|
||||
@@ -1355,15 +1355,15 @@ struct mob_torloth_the_magnificentAI : public ScriptedAI
|
||||
case TYPEID_UNIT:
|
||||
if (Unit *owner = slayer->GetOwner())
|
||||
if (owner->GetTypeId() == TYPEID_PLAYER)
|
||||
CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
|
||||
CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
|
||||
break;
|
||||
|
||||
case TYPEID_PLAYER:
|
||||
CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
|
||||
CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me);
|
||||
break;
|
||||
}
|
||||
|
||||
if (Creature* LordIllidan = (Unit::GetCreature(*m_creature, LordIllidanGUID)))
|
||||
if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID)))
|
||||
{
|
||||
DoScriptText(END_TEXT, LordIllidan, slayer);
|
||||
LordIllidan->AI()->EnterEvadeMode();
|
||||
@@ -1404,7 +1404,7 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
Announced = false;
|
||||
Failed = false;
|
||||
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
me->SetVisibility(VISIBILITY_OFF);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) {}
|
||||
@@ -1426,7 +1426,7 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
float Y = SpawnLocation[locIndex + i].y;
|
||||
float Z = SpawnLocation[locIndex + i].z;
|
||||
float O = SpawnLocation[locIndex + i].o;
|
||||
Spawn = m_creature->SummonCreature(WavesInfo[WaveCount].CreatureId, X, Y, Z, O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
|
||||
Spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, X, Y, Z, O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
|
||||
++LiveCount;
|
||||
|
||||
if (Spawn)
|
||||
@@ -1463,12 +1463,12 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
Spawn->GetMotionMaster()->MovePoint(0,x, y, z);
|
||||
}
|
||||
}
|
||||
CAST_AI(mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
|
||||
CAST_AI(mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
|
||||
}
|
||||
|
||||
if (WavesInfo[WaveCount].CreatureId == 22076) // Torloth
|
||||
{
|
||||
CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
|
||||
CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = me->GetGUID();
|
||||
if (PlayerGUID)
|
||||
CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID;
|
||||
}
|
||||
@@ -1501,7 +1501,7 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
GroupMember = (Unit::GetPlayer(itr->guid));
|
||||
if (!GroupMember)
|
||||
continue;
|
||||
if (!GroupMember->IsWithinDistInMap(m_creature, EVENT_AREA_RADIUS) && GroupMember->GetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH) == QUEST_STATUS_INCOMPLETE)
|
||||
if (!GroupMember->IsWithinDistInMap(me, EVENT_AREA_RADIUS) && GroupMember->GetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
GroupMember->FailQuest(QUEST_BATTLE_OF_THE_CRIMSON_WATCH);
|
||||
GroupMember->SetQuestStatus(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, QUEST_STATUS_NONE);
|
||||
@@ -1534,7 +1534,7 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
}
|
||||
Failed = true;
|
||||
}
|
||||
} else if (pPlayer->isDead() || !pPlayer->IsWithinDistInMap(m_creature, EVENT_AREA_RADIUS))
|
||||
} else if (pPlayer->isDead() || !pPlayer->IsWithinDistInMap(me, EVENT_AREA_RADIUS))
|
||||
{
|
||||
pPlayer->FailQuest(QUEST_BATTLE_OF_THE_CRIMSON_WATCH);
|
||||
Failed = true;
|
||||
@@ -1557,7 +1557,7 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
{
|
||||
if (!Announced && AnnounceTimer <= diff)
|
||||
{
|
||||
DoScriptText(WavesInfo[WaveCount].WaveTextId, m_creature);
|
||||
DoScriptText(WavesInfo[WaveCount].WaveTextId, me);
|
||||
Announced = true;
|
||||
} else AnnounceTimer -= diff;
|
||||
|
||||
@@ -1575,8 +1575,8 @@ struct npc_lord_illidan_stormrageAI : public ScriptedAI
|
||||
|
||||
void mob_illidari_spawnAI::JustDied(Unit *slayer)
|
||||
{
|
||||
m_creature->RemoveCorpse();
|
||||
if (Creature* LordIllidan = (Unit::GetCreature(*m_creature, LordIllidanGUID)))
|
||||
me->RemoveCorpse();
|
||||
if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID)))
|
||||
if (LordIllidan)
|
||||
CAST_AI(npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter();
|
||||
}
|
||||
@@ -1676,7 +1676,7 @@ struct npc_enraged_spiritAI : public ScriptedAI
|
||||
uint32 entry = 0;
|
||||
uint32 credit = 0;
|
||||
|
||||
switch(m_creature->GetEntry()) {
|
||||
switch(me->GetEntry()) {
|
||||
case ENTRY_ENRAGED_FIRE_SPIRIT:
|
||||
entry = ENTRY_FIERY_SOUL;
|
||||
//credit = SPELL_FIERY_SOUL_CAPTURED_CREDIT;
|
||||
|
||||
Reference in New Issue
Block a user