diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-09-28 15:45:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-28 15:45:25 +0200 |
commit | ef694cc251844d34a64ae03f79d28a5c76719f6b (patch) | |
tree | b39910eb2e5cda69a8724c4c312744cb6e83834a | |
parent | c1e3d79a4fb5b7b1a9bca36ecd16b9bb902ced92 (diff) |
Scripts: Fix crossfaction combat issue (#23818)
* Scripts/PitOfSaron: Fix Martin Victus combat in crossfaction groups
Fix Martin Victus attacking players in crossfaction groups because it was spawned as summon of the boss, triggering DoCombatInZone()
* Scripts/ForgeOfSouls: Fix guards combat in crossfaction groups
Fix Devourer of Souls guardians attacking players in crossfaction groups because they were spawned as summons of the boss, triggering DoCombatInZone()
* Scripts/Misc: Fix no PCH build
-rw-r--r-- | src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp | 3 | ||||
-rw-r--r-- | src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp | 21 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index ca9fa333654..b2c1513ecce 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -210,8 +210,9 @@ class boss_devourer_of_souls : public CreatureScript for (int8 i = 0; outroPositions[i].entry[entryIndex] != 0; ++i) { - if (Creature* summon = me->SummonCreature(outroPositions[i].entry[entryIndex], spawnPoint, TEMPSUMMON_DEAD_DESPAWN)) + if (TempSummon* summon = instance->instance->SummonCreature(outroPositions[i].entry[entryIndex], spawnPoint)) { + summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN); summon->GetMotionMaster()->MovePoint(0, outroPositions[i].movePosition); if (summon->GetEntry() == NPC_JAINA_PART2) summon->AI()->Talk(SAY_JAINA_OUTRO); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp index 03e5373740d..1baa344b075 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp @@ -21,6 +21,7 @@ #include "Map.h" #include "pit_of_saron.h" #include "Player.h" +#include "TemporarySummon.h" // positions for Martin Victus (37591) and Gorkun Ironskull (37592) Position const SlaveLeaderPos = {689.7158f, -104.8736f, 513.7360f, 0.0f}; @@ -157,9 +158,15 @@ class instance_pit_of_saron : public InstanceMapScript if (Creature* summoner = instance->GetCreature(_garfrostGUID)) { if (_teamInInstance == ALLIANCE) - summoner->SummonCreature(NPC_MARTIN_VICTUS_1, SlaveLeaderPos, TEMPSUMMON_MANUAL_DESPAWN); + { + if (TempSummon* summon = instance->SummonCreature(NPC_MARTIN_VICTUS_1, SlaveLeaderPos)) + summon->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN); + } else - summoner->SummonCreature(NPC_GORKUN_IRONSKULL_2, SlaveLeaderPos, TEMPSUMMON_MANUAL_DESPAWN); + { + if (TempSummon* summon = instance->SummonCreature(NPC_GORKUN_IRONSKULL_2, SlaveLeaderPos)) + summon->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN); + } } } break; @@ -169,9 +176,15 @@ class instance_pit_of_saron : public InstanceMapScript if (Creature* summoner = instance->GetCreature(_tyrannusGUID)) { if (_teamInInstance == ALLIANCE) - summoner->SummonCreature(NPC_JAINA_PART2, EventLeaderPos2, TEMPSUMMON_MANUAL_DESPAWN); + { + if (TempSummon * summon = instance->SummonCreature(NPC_JAINA_PART2, EventLeaderPos2)) + summon->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN); + } else - summoner->SummonCreature(NPC_SYLVANAS_PART2, EventLeaderPos2, TEMPSUMMON_MANUAL_DESPAWN); + { + if (TempSummon * summon = instance->SummonCreature(NPC_SYLVANAS_PART2, EventLeaderPos2)) + summon->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN); + } } } break; |