aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiacomo Pozzoni <giacomopoz@gmail.com>2019-09-28 15:45:25 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-18 22:27:40 +0100
commit02c2ee9a439bae9aa22b63afa417f14f3a52ba22 (patch)
treed2a0ef386d9831fb27d12a431b1a994260137731
parent091084353869b843f700969e017746310492bdf6 (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 (cherry picked from commit ef694cc251844d34a64ae03f79d28a5c76719f6b)
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp3
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp21
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 e4108362ed6..6f3689083c7 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
@@ -209,8 +209,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 a5f212e0369..3194315b881 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;