mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 08:28:32 +01:00
Scripts/Misc: fixed instance teleporter for Throne of the Tides, The Stonecore and Blackrock Caverns
This commit is contained in:
76
sql/updates/world/4.3.4/2020_07_14_03_world.sql
Normal file
76
sql/updates/world/4.3.4/2020_07_14_03_world.sql
Normal file
@@ -0,0 +1,76 @@
|
||||
-- Throne of the Tides
|
||||
UPDATE `creature_template_addon` SET `auras`= '95293' WHERE `entry` IN (51395, 51391);
|
||||
UPDATE `creature_addon` SET `auras`= '95293' WHERE `guid` IN (254995, 254849);
|
||||
|
||||
DELETE FROM `creature_template_movement` WHERE `CreatureId` IN (51395, 51391);
|
||||
INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`) VALUES
|
||||
(51395, 0, 0, 1, 0),
|
||||
(51391, 0, 0, 1, 0);
|
||||
|
||||
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (51391, 51395);
|
||||
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
|
||||
(51391, 95284, 1, 0),
|
||||
(51395, 95285, 1, 0);
|
||||
|
||||
-- The Stonecore
|
||||
DELETE FROM `creature_template_movement` WHERE `CreatureId` IN (51396, 51397);
|
||||
INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`) VALUES
|
||||
(51396, 0, 0, 1, 0),
|
||||
(51397, 0, 0, 1, 0);
|
||||
|
||||
DELETE FROM `creature_addon` WHERE `guid` IN (340437, 340628);
|
||||
INSERT INTO `creature_addon` (`guid`, `bytes1`, `auras`) VALUES
|
||||
(340437, 50331648, '95299'),
|
||||
(340628, 50331648, '95299');
|
||||
|
||||
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (51396, 51397);
|
||||
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
|
||||
(51396, 95284, 1, 0),
|
||||
(51397, 95285, 1, 0);
|
||||
|
||||
UPDATE `creature_template` SET `unit_flags`= 0, `flags_extra`= 0, `AIName`= 'NullCreatureAI' WHERE `entry` IN (51396, 51397);
|
||||
|
||||
-- Blackrock Caverns
|
||||
UPDATE `creature_template` SET `VehicleId`= 1536, `unit_flags`= 0, `unit_flags2`= 67110912, `npcflag`= 0x01000000, `flags_extra`= 0 WHERE `entry`= 51340;
|
||||
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`= 51340;
|
||||
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
|
||||
(51340, 84965, 1, 1);
|
||||
|
||||
SET @ENTRY := 51340;
|
||||
SET @GUID := -361878;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`= @ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(@GUID, 0, 0, 0, 27, 0, 100, 0, 0, 0, 0, 0, 11, 95210, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "On passenger boarded (vehicle) - Self: Cast spell 95210 on Action invoker // ");
|
||||
|
||||
SET @GUID := -361877;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(@GUID, 0, 0, 0, 27, 0, 100, 0, 0, 0, 0, 0, 11, 95012, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "On passenger boarded (vehicle) - Self: Cast spell 95012 on Action invoker // ");
|
||||
|
||||
|
||||
-- Conditions
|
||||
DELETE FROM `conditions` WHERE `SourceEntry` IN (95284, 95285, 95209, 95013) AND `SourceTypeOrReferenceId`= 13;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 95284, 0, 0, 31, 0, 3, 51395, 0, 0, 0, '', 'Teleport - Target Throne of the Tides Teleporter'),
|
||||
(13, 1, 95284, 0, 1, 31, 0, 3, 51397, 0, 0, 0, '', 'Teleport - Target Stonecore Teleporter'),
|
||||
(13, 1, 95285, 0, 0, 31, 0, 3, 51391, 0, 0, 0, '', 'Teleport - Target Throne of the Tides Teleporter'),
|
||||
(13, 1, 95285, 0, 1, 31, 0, 3, 51396, 0, 0, 0, '', 'Teleport - Target Stonecore Teleporter'),
|
||||
(13, 1, 95209, 0, 1, 31, 0, 3, 51340, 361877, 0, 0, '', 'Twilight Portal - Target Twilight Portal'),
|
||||
(13, 1, 95013, 0, 1, 31, 0, 3, 51340, 361878, 0, 0, '', 'Twilight Portal - Target Twilight Portal');
|
||||
|
||||
DELETE FROM `spell_target_position` WHERE `ID` IN (95284, 95285);
|
||||
|
||||
-- Spawn Groups
|
||||
DELETE FROM `spawn_group_template` WHERE `groupId`= 434;
|
||||
INSERT INTO `spawn_group_template` (`groupId`, `groupName`, `groupFlags`) VALUES
|
||||
(434, 'Blackrock Caverns - Twilight Portals', 4);
|
||||
|
||||
DELETE FROM `instance_spawn_groups` WHERE `instanceMapId`= 645 AND `spawnGroupId`= 434;
|
||||
INSERT INTO `instance_spawn_groups` (`instanceMapId`, `bossStateId`, `bossStates`, `spawnGroupId`, `flags`) VALUES
|
||||
(645, 2, 8, 434, 1);
|
||||
|
||||
DELETE FROM `spawn_group` WHERE `groupId`= 434;
|
||||
INSERT INTO `spawn_group` (`groupId`, `spawnType`, `spawnId`) VALUES
|
||||
(434, 0, 361878),
|
||||
(434, 0, 361877);
|
||||
@@ -4195,13 +4195,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
//
|
||||
// STONECORE SPELLS
|
||||
//
|
||||
ApplySpellFix({
|
||||
95284, // Teleport (from entrance to Slabhide)
|
||||
95285 // Teleport (from Slabhide to entrance)
|
||||
}, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_DEST_DB);
|
||||
});
|
||||
|
||||
// Paralyze
|
||||
ApplySpellFix({ 92426 }, [](SpellInfo* spellInfo)
|
||||
@@ -4834,6 +4827,15 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
spellInfo->AuraInterruptFlags &= ~AURA_INTERRUPT_FLAG_TURNING;
|
||||
});
|
||||
|
||||
// Twilight Portal
|
||||
ApplySpellFix({
|
||||
95210,
|
||||
95012
|
||||
}, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].AuraPeriod = 1250;
|
||||
});
|
||||
|
||||
// ENDOF BLACKROCK CAVERNS SPELLS
|
||||
|
||||
//
|
||||
|
||||
@@ -72,8 +72,10 @@ enum BRCCreatureIds
|
||||
/*Ascendant Lord Obsidius*/
|
||||
NPC_SHADOW_OF_OBSIDIUS = 40817,
|
||||
|
||||
// Generic Creatures
|
||||
NPC_TWILIGHT_FLAME_CALLER = 39708,
|
||||
NPC_RAZ_THE_CRAZED = 39670
|
||||
NPC_RAZ_THE_CRAZED = 39670,
|
||||
NPC_TWILIGHT_PORTAL = 51340
|
||||
};
|
||||
|
||||
enum BRCActions
|
||||
|
||||
@@ -87,6 +87,9 @@ class instance_blackrock_caverns : public InstanceMapScript
|
||||
if (Creature* karsh = GetCreature(DATA_KARSH_STEELBENDER))
|
||||
karsh->AI()->JustSummoned(creature);
|
||||
break;
|
||||
case NPC_TWILIGHT_PORTAL:
|
||||
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); // Set spellclick flag manually because the seats are flagged as unusable due to their flags
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -30,16 +30,18 @@
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ BOSS_LADY_NAZJAR, DATA_LADY_NAZJAR },
|
||||
{ BOSS_COMMANDER_ULTHOK, DATA_COMMANDER_ULTHOK },
|
||||
{ BOSS_MINDBENDER_GURSHA, DATA_MINDBENDER_GURSHA },
|
||||
{ BOSS_OZUMAT, DATA_OZUMAT },
|
||||
{ NPC_LADY_NAZJAR, DATA_LADY_NAZJAR_GAUNTLET },
|
||||
{ NPC_OZUMAT_VEHICLE_BIG, DATA_OZUMAT_VEHICLE_BIG },
|
||||
{ NPC_OZUMAT_VEHICLE, DATA_OZUMAT_VEHICLE },
|
||||
{ NPC_NEPTULON, DATA_NEPTULON },
|
||||
{ NPC_OZUMAT, DATA_OZUMAT_PASSENGER },
|
||||
{ 0, 0 } // END
|
||||
{ BOSS_LADY_NAZJAR, DATA_LADY_NAZJAR },
|
||||
{ BOSS_COMMANDER_ULTHOK, DATA_COMMANDER_ULTHOK },
|
||||
{ BOSS_MINDBENDER_GURSHA, DATA_MINDBENDER_GURSHA },
|
||||
{ BOSS_OZUMAT, DATA_OZUMAT },
|
||||
{ NPC_LADY_NAZJAR, DATA_LADY_NAZJAR_GAUNTLET },
|
||||
{ NPC_OZUMAT_VEHICLE_BIG, DATA_OZUMAT_VEHICLE_BIG },
|
||||
{ NPC_OZUMAT_VEHICLE, DATA_OZUMAT_VEHICLE },
|
||||
{ NPC_NEPTULON, DATA_NEPTULON },
|
||||
{ NPC_OZUMAT, DATA_OZUMAT_PASSENGER },
|
||||
{ NPC_THRONE_OF_THE_TIDES_TELEPORTER_1, DATA_THRONE_OF_THE_TIDES_TELEPORTER_1 },
|
||||
{ NPC_THRONE_OF_THE_TIDES_TELEPORTER_2, DATA_THRONE_OF_THE_TIDES_TELEPORTER_2 },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
ObjectData const gameobjectData[] =
|
||||
@@ -173,6 +175,11 @@ class GeyserActivationEvent : public BasicEvent
|
||||
Creature* _owner;
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_TELEPORTER_ACTIVE_VISUAL = 95296
|
||||
};
|
||||
|
||||
class instance_throne_of_the_tides : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
@@ -198,8 +205,23 @@ class instance_throne_of_the_tides : public InstanceMapScript
|
||||
{
|
||||
case DATA_LADY_NAZJAR:
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* defenseSystem = GetGameObject(DATA_THRONE_OF_THE_TIDES_DEFENSE_SYSTEM))
|
||||
defenseSystem->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (Creature* teleporter1 = GetCreature(DATA_THRONE_OF_THE_TIDES_TELEPORTER_1))
|
||||
{
|
||||
teleporter1->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
teleporter1->CastSpell(teleporter1, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
}
|
||||
|
||||
if (Creature* teleporter2 = GetCreature(DATA_THRONE_OF_THE_TIDES_TELEPORTER_2))
|
||||
{
|
||||
teleporter2->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
teleporter2->CastSpell(teleporter2, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case DATA_COMMANDER_ULTHOK:
|
||||
if (state == FAIL)
|
||||
@@ -264,6 +286,14 @@ class instance_throne_of_the_tides : public InstanceMapScript
|
||||
if (Creature* neptulon = GetCreature(DATA_NEPTULON))
|
||||
neptulon->AI()->JustSummoned(creature);
|
||||
break;
|
||||
case NPC_THRONE_OF_THE_TIDES_TELEPORTER_1:
|
||||
case NPC_THRONE_OF_THE_TIDES_TELEPORTER_2:
|
||||
if (GetBossState(DATA_LADY_NAZJAR == DONE))
|
||||
{
|
||||
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
creature->CastSpell(creature, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,9 @@ enum TotTDataTypes
|
||||
DATA_NEPTULON = 15,
|
||||
DATA_OZUMAT_VEHICLE = 16,
|
||||
DATA_LADY_NAZJAR_GEYSERS = 17,
|
||||
DATA_OZUMAT_PASSENGER = 18
|
||||
DATA_OZUMAT_PASSENGER = 18,
|
||||
DATA_THRONE_OF_THE_TIDES_TELEPORTER_1 = 19,
|
||||
DATA_THRONE_OF_THE_TIDES_TELEPORTER_2 = 20
|
||||
};
|
||||
|
||||
enum TotTCreatureIds
|
||||
@@ -97,7 +99,9 @@ enum TotTCreatureIds
|
||||
NPC_GEYSER_DUMMY = 48983,
|
||||
NPC_GILGOBLIN_HUNTER = 40935,
|
||||
NPC_FACELESS_WATCHER = 40936,
|
||||
NPC_GILGOBLIN_AQUAMAGE = 40943
|
||||
NPC_GILGOBLIN_AQUAMAGE = 40943,
|
||||
NPC_THRONE_OF_THE_TIDES_TELEPORTER_1 = 51391, // Entrance
|
||||
NPC_THRONE_OF_THE_TIDES_TELEPORTER_2 = 51395 // Neptulon's Rise
|
||||
};
|
||||
|
||||
enum TotTGameObjectIds
|
||||
|
||||
@@ -41,11 +41,16 @@ ObjectData const creatureData[] =
|
||||
{ BOSS_SLABHIDE, DATA_SLABHIDE },
|
||||
{ BOSS_OZRUK, DATA_OZRUK, },
|
||||
{ BOSS_HIGH_PRIESTESS_AZIL, DATA_HIGH_PRIESTESS_AZIL },
|
||||
{ NPC_STONECORE_TELEPORTER, DATA_STONECORE_TELEPORTER },
|
||||
{ NPC_STONECORE_TELEPORTER_1, DATA_STONECORE_TELEPORTER_1 },
|
||||
{ NPC_STONECORE_TELEPORTER_2, DATA_STONECORE_TELEPORTER_2 },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_TELEPORTER_ACTIVE_VISUAL = 95298
|
||||
};
|
||||
|
||||
class instance_stonecore : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
@@ -111,10 +116,13 @@ class instance_stonecore : public InstanceMapScript
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_STONECORE_TELEPORTER:
|
||||
case NPC_STONECORE_TELEPORTER_1:
|
||||
case NPC_STONECORE_TELEPORTER_2:
|
||||
if (GetBossState(DATA_SLABHIDE) == DONE)
|
||||
ActivateTeleporter(creature);
|
||||
{
|
||||
creature->CastSpell(creature, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
}
|
||||
break;
|
||||
case BOSS_CORBORUS:
|
||||
case BOSS_SLABHIDE:
|
||||
@@ -162,8 +170,17 @@ class instance_stonecore : public InstanceMapScript
|
||||
// Activate teleporters
|
||||
if (state == DONE)
|
||||
{
|
||||
ActivateTeleporter(GetCreature(DATA_STONECORE_TELEPORTER));
|
||||
ActivateTeleporter(GetCreature(DATA_STONECORE_TELEPORTER_2));
|
||||
if (Creature* teleporter1 = GetCreature(DATA_STONECORE_TELEPORTER_1))
|
||||
{
|
||||
teleporter1->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
teleporter1->CastSpell(teleporter1, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
}
|
||||
|
||||
if (Creature* teleporter2 = GetCreature(DATA_STONECORE_TELEPORTER_2))
|
||||
{
|
||||
teleporter2->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
teleporter2->CastSpell(teleporter2, SPELL_TELEPORTER_ACTIVE_VISUAL);
|
||||
}
|
||||
}
|
||||
|
||||
if (state == FAIL)
|
||||
@@ -280,15 +297,6 @@ class instance_stonecore : public InstanceMapScript
|
||||
creature->DespawnOrUnsummon(Seconds(3));
|
||||
}
|
||||
|
||||
void ActivateTeleporter(Creature* teleporter)
|
||||
{
|
||||
if (!teleporter)
|
||||
return;
|
||||
|
||||
teleporter->CastSpell(teleporter, SPELL_TELEPORTER_ACTIVE_VISUAL, true);
|
||||
teleporter->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
}
|
||||
|
||||
EventMap _events;
|
||||
GuidVector _millhouseTrashGUIDs;
|
||||
GuidVector _millhouseLastGroupGUIDs;
|
||||
|
||||
@@ -42,7 +42,7 @@ enum SCDataTypes
|
||||
DATA_EVENT_PROGRESS,
|
||||
|
||||
// Teleporters
|
||||
DATA_STONECORE_TELEPORTER,
|
||||
DATA_STONECORE_TELEPORTER_1,
|
||||
DATA_STONECORE_TELEPORTER_2,
|
||||
};
|
||||
|
||||
@@ -72,7 +72,11 @@ enum SCCreatureIds
|
||||
|
||||
// High Priestess Azil
|
||||
NPC_DEVOUT_FOLLOWER = 42428,
|
||||
NPC_SEISMIC_SHARD = 42355
|
||||
NPC_SEISMIC_SHARD = 42355,
|
||||
|
||||
// Generic Creatures
|
||||
NPC_STONECORE_TELEPORTER_1 = 51396,
|
||||
NPC_STONECORE_TELEPORTER_2 = 51397
|
||||
};
|
||||
|
||||
enum SCGameobjectIds
|
||||
@@ -90,9 +94,6 @@ enum SCMisc
|
||||
|
||||
// Stonecore Teleporter misc
|
||||
MAX_STONECORE_TELEPORTERS = 2,
|
||||
NPC_STONECORE_TELEPORTER = 51396, // Entrance teleporter
|
||||
NPC_STONECORE_TELEPORTER_2 = 51397, // Slabhide teleporter
|
||||
SPELL_TELEPORTER_ACTIVE_VISUAL = 95298,
|
||||
SPELL_RING_WYRM_KNOCKBACK = 81235,
|
||||
|
||||
// Creature Formation IDs
|
||||
|
||||
Reference in New Issue
Block a user