diff options
Diffstat (limited to 'src/server/scripts/Outland')
12 files changed, 101 insertions, 109 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index e990a6f6825..5d18026c1ca 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -2264,7 +2264,7 @@ public: if (CheckTimer <= diff) { GETUNIT(Illidan, IllidanGUID); - if (!Illidan || CAST_CRE(Illidan)->IsInEvadeMode()) + if (!Illidan || Illidan->ToCreature()->IsInEvadeMode()) { me->SetVisible(false); me->setDeathState(JUST_DIED); diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 5eb9ffcabc8..1681ecfb00e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -349,10 +349,10 @@ public: { /*float x, y, z; ghost->GetPosition(x, y, z); - Creature* control = me->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000); - if (control) + if (Creature* control = me->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000)) { - CAST_PLR(ghost)->Possess(control); + if (Player* player = ghost->ToPlayer()) + player->Possess(control); ghost->DealDamage(ghost, ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); }*/ diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index d63e8ee20b0..57b7d484004 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -305,7 +305,7 @@ public: { Unit* member = Unit::GetUnit(*me, Council[i]); if (member && member->isAlive()) - CAST_CRE(member)->AI()->AttackStart(target); + member->ToCreature()->AI()->AttackStart(target); } } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index b9df26d11c6..38f02622e5a 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -542,27 +542,31 @@ public: if (Spitfire_Timer <= diff) { DoCast(me, SPELL_SPITFIRE_TOTEM); - Unit* SpitfireTotem = Unit::GetUnit(*me, CREATURE_SPITFIRE_TOTEM); - if (SpitfireTotem) - { - CAST_CRE(SpitfireTotem)->AI()->AttackStart(me->getVictim()); - } + if (Unit* SpitfireTotem = Unit::GetUnit(*me, CREATURE_SPITFIRE_TOTEM)) + SpitfireTotem->ToCreature()->AI()->AttackStart(me->getVictim()); + Spitfire_Timer = 60000; - } else Spitfire_Timer -= diff; + } + else + Spitfire_Timer -= diff; //PoisonCleansing_Timer if (PoisonCleansing_Timer <= diff) { DoCast(me, SPELL_POISON_CLEANSING_TOTEM); PoisonCleansing_Timer = 30000; - } else PoisonCleansing_Timer -= diff; + } + else + PoisonCleansing_Timer -= diff; //Earthbind_Timer if (Earthbind_Timer <= diff) { DoCast(me, SPELL_EARTHBIND_TOTEM); Earthbind_Timer = 45000; - } else Earthbind_Timer -= diff; + } + else + Earthbind_Timer -= diff; DoMeleeAttackIfReady(); } @@ -665,17 +669,19 @@ public: { //DoCast(me, SPELL_SUMMON_CYCLONE); // Doesn't work Cyclone_Timer = 30000+rand()%10000; - Creature* Cyclone = me->SummonCreature(CREATURE_CYCLONE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000); - if (Cyclone) + + if (Creature* Cyclone = me->SummonCreature(CREATURE_CYCLONE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000)) { - CAST_CRE(Cyclone)->SetObjectScale(3.0f); + Cyclone->ToCreature()->SetObjectScale(3.0f); Cyclone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); Cyclone->setFaction(me->getFaction()); Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_CYCLONE, true); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) Cyclone->AI()->AttackStart(target); } - } else Cyclone_Timer -= diff; + } + else + Cyclone_Timer -= diff; //Heal_Timer if (Heal_Timer <= diff) @@ -684,14 +690,14 @@ public: Unit* unit = NULL; while (unit == NULL || !unit->isAlive()) - { unit = selectAdvisorUnit(); - } if (unit && unit->isAlive()) DoCast(unit, SPELL_HEAL); Heal_Timer = 60000; - } else Heal_Timer -= diff; + } + else + Heal_Timer -= diff; DoMeleeAttackIfReady(); } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index 19b57509093..ae63ed67af1 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -786,7 +786,7 @@ public: { // check if vashj is death Unit* Vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); - if (!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && CAST_AI(boss_lady_vashj::boss_lady_vashjAI, CAST_CRE(Vashj)->AI())->Phase != 3)) + if (!Vashj || !Vashj->isAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3) { // remove me->setDeathState(DEAD); @@ -796,7 +796,9 @@ public: } CheckTimer = 1000; - } else CheckTimer -= diff; + } + else + CheckTimer -= diff; } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index ac261cc5936..89a585e415f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -306,7 +306,7 @@ class boss_warbringer_omrogg : public CreatureScript pLeftHead->AI()->Talk(YELL_DIE_L); - CAST_AI(mob_omrogg_heads::mob_omrogg_headsAI, CAST_CRE(pRightHead)->AI())->DoDeathYell(); + CAST_AI(mob_omrogg_heads::mob_omrogg_headsAI, pRightHead->ToCreature()->AI())->DoDeathYell(); if (instance) instance->SetData(TYPE_OMROGG, DONE); diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index 13f47b276ef..2cfe73ea719 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -167,9 +167,9 @@ class boss_warchief_kargath_bladefist : public CreatureScript Unit* temp = Unit::GetUnit(*me, *itr); if (temp && temp->isAlive()) { - (*temp).GetMotionMaster()->Clear(true); + temp->GetMotionMaster()->Clear(true); me->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - CAST_CRE(temp)->RemoveCorpse(); + temp->ToCreature()->RemoveCorpse(); } } adds.clear(); @@ -179,9 +179,9 @@ class boss_warchief_kargath_bladefist : public CreatureScript Unit* temp = Unit::GetUnit(*me, *itr); if (temp && temp->isAlive()) { - (*temp).GetMotionMaster()->Clear(true); + temp->GetMotionMaster()->Clear(true); me->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - CAST_CRE(temp)->RemoveCorpse(); + temp->ToCreature()->RemoveCorpse(); } } assassins.clear(); diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp index fd193aa4835..148bfeaeefe 100644 --- a/src/server/scripts/Outland/zone_nagrand.cpp +++ b/src/server/scripts/Outland/zone_nagrand.cpp @@ -339,17 +339,15 @@ public: if (!who) return; - if (who->GetTypeId() == TYPEID_PLAYER) + Player* player = who->ToPlayer(); + if (player && player->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) { - if (CAST_PLR(who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) + uint32 creditMarkerId = me->GetEntry(); + if (creditMarkerId >= 18840 && creditMarkerId <= 18843) { - uint32 creditMarkerId = me->GetEntry(); - if ((creditMarkerId >= 18840) && (creditMarkerId <= 18843)) - { - // 18840: Sunspring, 18841: Laughing, 18842: Garadar, 18843: Bleeding - if (!CAST_PLR(who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) - CAST_PLR(who)->KilledMonsterCredit(creditMarkerId, me->GetGUID()); - } + // 18840: Sunspring, 18841: Laughing, 18842: Garadar, 18843: Bleeding + if (!player->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) + player->KilledMonsterCredit(creditMarkerId, me->GetGUID()); } } } diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp index 779ab3261ed..c0adddd51fc 100644 --- a/src/server/scripts/Outland/zone_netherstorm.cpp +++ b/src/server/scripts/Outland/zone_netherstorm.cpp @@ -118,36 +118,33 @@ public: if (someplayer) { - Unit* p = Unit::GetUnit(*me, someplayer); - if (p && p->GetTypeId() == TYPEID_PLAYER) + if (Player* player = ObjectAccessor::GetPlayer(*me, someplayer)) { switch (me->GetEntry()) { case ENTRY_BNAAR_C_CONSOLE: - CAST_PLR(p)->FailQuest(10299); - CAST_PLR(p)->FailQuest(10329); + player->FailQuest(10299); + player->FailQuest(10329); break; case ENTRY_CORUU_C_CONSOLE: - CAST_PLR(p)->FailQuest(10321); - CAST_PLR(p)->FailQuest(10330); + player->FailQuest(10321); + player->FailQuest(10330); break; case ENTRY_DURO_C_CONSOLE: - CAST_PLR(p)->FailQuest(10322); - CAST_PLR(p)->FailQuest(10338); + player->FailQuest(10322); + player->FailQuest(10338); break; case ENTRY_ARA_C_CONSOLE: - CAST_PLR(p)->FailQuest(10323); - CAST_PLR(p)->FailQuest(10365); + player->FailQuest(10323); + player->FailQuest(10365); break; } } } if (goConsole) - { if (GameObject* go = GameObject::GetGameObject(*me, goConsole)) go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); - } } void DoWaveSpawnForCreature(Creature* creature) @@ -275,27 +272,30 @@ public: Talk(EMOTE_COMPLETE); if (someplayer) { - Unit* u = Unit::GetUnit(*me, someplayer); - if (u && u->GetTypeId() == TYPEID_PLAYER) - CAST_PLR(u)->KilledMonsterCredit(me->GetEntry(), me->GetGUID()); + if (Player* player = ObjectAccessor::GetPlayer(*me, someplayer)) + player->KilledMonsterCredit(me->GetEntry(), me->GetGUID()); DoCast(me, SPELL_DISABLE_VISUAL); } + if (goConsole) - { if (GameObject* go = GameObject::GetGameObject(*me, goConsole)) go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); - } + ++Phase; break; } - } else Event_Timer -= diff; + } + else + Event_Timer -= diff; if (Wave) { if (Wave_Timer <= diff) { DoWaveSpawnForCreature(me); - } else Wave_Timer -= diff; + } + else + Wave_Timer -= diff; } } }; diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index b8f96e373f3..644fd71e7a2 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -1377,20 +1377,19 @@ public: { case TYPEID_UNIT: if (Unit* owner = killer->GetOwner()) - if (owner->GetTypeId() == TYPEID_PLAYER) - CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me); + if (Player* player = owner->ToPlayer()) + player->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me); break; case TYPEID_PLAYER: - CAST_PLR(killer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me); + if (Player* player = killer->ToPlayer()) + player->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, me); break; default: break; } if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID))) - { LordIllidan->AI()->EnterEvadeMode(); - } } }; }; @@ -1865,10 +1864,9 @@ public: Summoned->setFaction(ENRAGED_SOUL_FRIENDLY); Summoned->GetMotionMaster()->MovePoint(0, totemOspirits->GetPositionX(), totemOspirits->GetPositionY(), Summoned->GetPositionZ()); - Unit* Owner = totemOspirits->GetOwner(); - if (Owner && Owner->GetTypeId() == TYPEID_PLAYER) - // DoCast(Owner, credit); -- not working! - CAST_PLR(Owner)->KilledMonsterCredit(credit, 0); + if (Unit* owner = totemOspirits->GetOwner()) + if (Player* player = owner->ToPlayer()) + player->KilledMonsterCredit(credit, 0); DoCast(totemOspirits, SPELL_SOUL_CAPTURED); } } diff --git a/src/server/scripts/Outland/zone_shattrath_city.cpp b/src/server/scripts/Outland/zone_shattrath_city.cpp index 14553be0ef4..95ba9476905 100644 --- a/src/server/scripts/Outland/zone_shattrath_city.cpp +++ b/src/server/scripts/Outland/zone_shattrath_city.cpp @@ -167,10 +167,9 @@ public: void DamageTaken(Unit* done_by, uint32 &damage) { - if (done_by->GetTypeId() == TYPEID_PLAYER) - if (me->HealthBelowPctDamaged(20, damage)) + if (done_by->GetTypeId() == TYPEID_PLAYER && me->HealthBelowPctDamaged(20, damage)) { - CAST_PLR(done_by)->GroupEventHappens(QUEST_10004, me); + done_by->ToPlayer()->GroupEventHappens(QUEST_10004, me); damage = 0; EnterEvadeMode(); } @@ -410,20 +409,18 @@ public: if (HasEscortState(STATE_ESCORT_ESCORTING)) return; - if (who->GetTypeId() == TYPEID_PLAYER) + Player* player = who->ToPlayer(); + if (player && player->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE) { - if (CAST_PLR(who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE) + float Radius = 10.0f; + if (me->IsWithinDistInMap(who, Radius)) { - float Radius = 10.0f; - if (me->IsWithinDistInMap(who, Radius)) - { - Start(false, false, who->GetGUID()); - } + Start(false, false, who->GetGUID()); } } } - void Reset() {} + void Reset() { } }; }; @@ -477,17 +474,16 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->setFaction(1194); - Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); - if (Creepjack) + if (Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20)) { - CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); + Creepjack->ToCreature()->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } - Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); - if (Malone) + + if (Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20)) { - CAST_CRE(Malone)->AI()->EnterEvadeMode(); + Malone->ToCreature()->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -561,18 +557,17 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->RemoveAllAuras(); - Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); - if (Creepjack) + if (Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20)) { - CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); + Creepjack->ToCreature()->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->GetMotionMaster()->MoveTargetedHome(); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } - Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); - if (Malone) + + if (Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20)) { - CAST_CRE(Malone)->AI()->EnterEvadeMode(); + Malone->ToCreature()->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->GetMotionMaster()->MoveTargetedHome(); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -583,9 +578,8 @@ public: me->DeleteThreatList(); me->CombatStop(); me->GetMotionMaster()->MoveTargetedHome(); - Player* player = Unit::GetPlayer(*me, PlayerGUID); - if (player) - CAST_PLR(player)->GroupEventHappens(QUEST_WBI, me); + if (Player* player = Unit::GetPlayer(*me, PlayerGUID)) + player->GroupEventHappens(QUEST_WBI, me); } DoMeleeAttackIfReady(); } diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index caa31ed472c..85a45193931 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -98,10 +98,11 @@ public: void DamageTaken(Unit* done_by, uint32 &damage) { - if (done_by->GetTypeId() == TYPEID_PLAYER) - if (me->HealthBelowPctDamaged(30, damage)) + Player* player = done_by->ToPlayer(); + + if (player && me->HealthBelowPctDamaged(30, damage)) { - if (Group* group = CAST_PLR(done_by)->GetGroup()) + if (Group* group = player->GetGroup()) { for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) { @@ -115,11 +116,11 @@ public: CanDoQuest = true; } } - } else - if (CAST_PLR(done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && - CAST_PLR(done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10) + } + else if (player->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && + player->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10) { - CAST_PLR(done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); + player->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); CanDoQuest = true; } } @@ -229,20 +230,13 @@ public: if (HasEscortState(STATE_ESCORT_ESCORTING)) return; - if (who->GetTypeId() == TYPEID_PLAYER) - { - if (CAST_PLR(who)->GetQuestStatus(10898) == QUEST_STATUS_INCOMPLETE) - { - float Radius = 10.0f; - if (me->IsWithinDistInMap(who, Radius)) - { - Start(false, false, who->GetGUID()); - } - } - } + Player* player = who->ToPlayer(); + if (player && player->GetQuestStatus(10898) == QUEST_STATUS_INCOMPLETE) + if (me->IsWithinDistInMap(who, 10.0f)) + Start(false, false, who->GetGUID()); } - void Reset() {} + void Reset() { } void UpdateAI(uint32 diff) { |
