mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
TBC - Terrace of Light phasing (#860)
phasing Shattered Sun NPCs and game objects until TBC T5
This commit is contained in:
@@ -63,6 +63,16 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t4' WHERE `entry` IN
|
|||||||
-- Phasing TBC vendors and trainers - Copies are added to replace them until TBC T4.
|
-- Phasing TBC vendors and trainers - Copies are added to replace them until TBC T4.
|
||||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t4' WHERE `entry` IN (18754, 18771, 19187, 21087);
|
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t4' WHERE `entry` IN (18754, 18771, 19187, 21087);
|
||||||
|
|
||||||
|
-- TBC, Terrace of Light, phasing Shattered Sun offensive NPCs
|
||||||
|
UPDATE `creature` SET `phaseMask` = @IPPPHASE WHERE `id1` IN (24932, 25115, 25142, 25153, 25155);
|
||||||
|
|
||||||
|
-- TBC, Terrace of Light, phasing T5 game objects
|
||||||
|
UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_tbc_t4' WHERE `entry` IN
|
||||||
|
(187056, -- Shattrath portal to Isle of Quel'Danas
|
||||||
|
187345, -- Sunwell Plateau model
|
||||||
|
187356, -- Shattered Sun Banner
|
||||||
|
187357); -- Shattered Sun Banner
|
||||||
|
|
||||||
-- Phasing for General Tiras'alan and Dathris Sunstriker - prevent early access to Isle of Quel'Danas
|
-- Phasing for General Tiras'alan and Dathris Sunstriker - prevent early access to Isle of Quel'Danas
|
||||||
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t5' WHERE `entry` IN (25167, 18594);
|
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t5' WHERE `entry` IN (25167, 18594);
|
||||||
|
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ enum ProgressionAreas
|
|||||||
AREA_HIVE_ASHI = 2742,
|
AREA_HIVE_ASHI = 2742,
|
||||||
AREA_HIVE_ZORA = 2743,
|
AREA_HIVE_ZORA = 2743,
|
||||||
AREA_HIVE_REGAL = 2744,
|
AREA_HIVE_REGAL = 2744,
|
||||||
|
AREA_TERRACE_OF_LIGHT = 3897,
|
||||||
AREA_ARGENT_SUNREAVER_PAVILION = 4666,
|
AREA_ARGENT_SUNREAVER_PAVILION = 4666,
|
||||||
AREA_ARGENT_SILVER_COVENANT_PAVILION = 4667,
|
AREA_ARGENT_SILVER_COVENANT_PAVILION = 4667,
|
||||||
AREA_ARGENT_PAVILION = 4674
|
AREA_ARGENT_PAVILION = 4674
|
||||||
|
|||||||
@@ -210,6 +210,32 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class gobject_ipp_tbc_t4 : public GameObjectScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
gobject_ipp_tbc_t4() : GameObjectScript("gobject_ipp_tbc_t4") { }
|
||||||
|
|
||||||
|
struct gobject_ipp_tbc_t4AI: GameObjectAI
|
||||||
|
{
|
||||||
|
explicit gobject_ipp_tbc_t4AI(GameObject* object) : GameObjectAI(object) { };
|
||||||
|
|
||||||
|
bool CanBeSeen(Player const* player) override
|
||||||
|
{
|
||||||
|
if (player->IsGameMaster() || !sIndividualProgression->enabled)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID());
|
||||||
|
return sIndividualProgression->hasPassedProgression(target, PROGRESSION_TBC_TIER_4);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
GameObjectAI* GetAI(GameObject* object) const override
|
||||||
|
{
|
||||||
|
return new gobject_ipp_tbc_t4AI(object);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class gobject_ipp_wotlk : public GameObjectScript
|
class gobject_ipp_wotlk : public GameObjectScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -757,6 +783,7 @@ void AddSC_mod_individual_progression_awareness()
|
|||||||
new gobject_ipp_naxx40();
|
new gobject_ipp_naxx40();
|
||||||
new gobject_ipp_pre_tbc(); // Stormwind pvp room
|
new gobject_ipp_pre_tbc(); // Stormwind pvp room
|
||||||
new gobject_ipp_tbc();
|
new gobject_ipp_tbc();
|
||||||
|
new gobject_ipp_tbc_t4(); // Shattered Sun
|
||||||
new gobject_ipp_wotlk();
|
new gobject_ipp_wotlk();
|
||||||
new gobject_ipp_pvp_closed(); // pvp officer doors
|
new gobject_ipp_pvp_closed(); // pvp officer doors
|
||||||
new gobject_ipp_pvp_open(); // pvp officer doors
|
new gobject_ipp_pvp_open(); // pvp officer doors
|
||||||
|
|||||||
@@ -1017,7 +1017,15 @@ public:
|
|||||||
player->CastSpell(player, IPP_PHASE, false);
|
player->CastSpell(player, IPP_PHASE, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AREA_LIGHTS_HOPE:
|
case AREA_TERRACE_OF_LIGHT:
|
||||||
|
if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_4))
|
||||||
|
{
|
||||||
|
player->RemoveAura(IPP_PHASE);
|
||||||
|
player->RemoveAura(IPP_PHASE_II);
|
||||||
|
player->RemoveAura(IPP_PHASE_III);
|
||||||
|
player->CastSpell(player, IPP_PHASE, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case AREA_ARGENT_TOURNAMENT_GROUNDS:
|
case AREA_ARGENT_TOURNAMENT_GROUNDS:
|
||||||
case AREA_ARGENT_SUNREAVER_PAVILION:
|
case AREA_ARGENT_SUNREAVER_PAVILION:
|
||||||
case AREA_ARGENT_SILVER_COVENANT_PAVILION:
|
case AREA_ARGENT_SILVER_COVENANT_PAVILION:
|
||||||
|
|||||||
Reference in New Issue
Block a user