Compare commits

...

5 Commits

Author SHA1 Message Date
Grimfeather
99b3156088 Update ipp_aware_npcs.sql 2025-11-27 19:04:24 +01:00
Grimfeather
62a8cfd735 Update IndividualProgression.h 2025-11-27 19:02:02 +01:00
Grimfeather
6f684b6c41 Update cs_individualProgression.cpp 2025-11-27 19:00:09 +01:00
Grimfeather
6fb4b03caa Update IndividualProgressionPlayer.cpp 2025-11-27 18:58:20 +01:00
Grimfeather
8fc208cf54 Update zone_eastern_plaguelands.sql (#891)
Hide Argent Dawn token quests until Naxx40
2025-11-27 17:04:45 +01:00
5 changed files with 46 additions and 27 deletions

View File

@@ -10,7 +10,7 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc' WHERE `entry` IN (16
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_ds2' WHERE `entry` IN (15270, 15282, 16012, 16013);
-- Phasing Cenarion Hold NPCs
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_preaq' WHERE `entry` IN (15176, 15180, 15181, 15183, 15188, 15189, 15190, 15191, 15293, 15194,
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_preaq' WHERE `entry` IN (15176, 15180, 15181, 15183, 15188, 15189, 15190, 15191, 15293, 15194,
15306, 15419, 15599, 15612, 15613, 15614, 15693, 15903, 16543, 17081, 17082);
-- Phasing Cenarion Hold guards
UPDATE `creature` SET `ScriptName` = 'npc_ipp_preaq' WHERE `id1` = 15184 AND `guid` IN (42782, 42783, 42768);
@@ -21,17 +21,17 @@ UPDATE `creature` SET `ScriptName` = 'npc_ipp_preaq' WHERE `id1` IN (14902, 1490
-- Phasing NPCs until after the outdoors AQ war has been completed
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_aq' WHERE `entry` IN (15498, 15499, 15500, 15540, 16091); -- Cenarion Hold
UPDATE `creature` SET `phaseMask` = @IPPPHASE_II WHERE `id1` IN (15612, 15613, 15615, 15616, 15617, 17070, 17079, 17766, -- Orgrimmar Legion Post
UPDATE `creature` SET `phaseMask` = @IPPPHASE_II WHERE `id1` IN (15612, 15613, 15615, 15616, 15617, 17070, 17079, 17766, -- Orgrimmar Legion Post
15440, 15441, 15442, 15443, 15444, 15903, 17068, 17080, 17765); -- Ironforge Brigade post
-- Phasing Wanted Poster Deathclasp
UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_preaq' WHERE `entry` IN (180448);
-- Phasing Lights Hope Chapel npcs
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_naxx40' WHERE `entry` IN
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_naxx40' WHERE `entry` IN
(11102, 16112, 16113, 16114, 16115, 16116, 16131, 16132, 16133, 16134, 16135, 16212, 16225, 16228, 16229, 16256, 16283, 16284, 16376, 16378, 17069, 17072);
-- Phasing Lights Hope Chapel game objects
UPDATE `gameobject` SET `ScriptName` = 'gobject_ipp_naxx40' WHERE `guid` IN
UPDATE `gameobject` SET `ScriptName` = 'gobject_ipp_naxx40' WHERE `guid` IN
(45603, 45606, 45607, 45764, 45765, 45766, 45767, 45768, 45769, 45770, 45771, 45838, 45839, 45840);
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_wotlk' WHERE `entry` IN (28602, 29611, 34084);
@@ -67,7 +67,7 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc_t4' WHERE `entry` IN
UPDATE `creature` SET `phaseMask` = @IPPPHASE WHERE `id1` IN (17076, 19475, 24932, 24938, 25115, 25134, 25135, 25136, 25137, 25138, 25141, 25142, 25143, 25153, 25155, 25167, 27666, 27667);
-- TBC, Terrace of Light, phasing T5 game objects
UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_tbc_t4' WHERE `entry` IN
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
@@ -80,7 +80,7 @@ UPDATE `creature` SET `phaseMask` = @IPPPHASE WHERE `id1` IN (14887, 14888, 1488
UPDATE `creature` SET `phaseMask` = @IPPPHASE WHERE `id1` = 33993; -- Emalon the Storm Watcher
UPDATE `creature` SET `phaseMask` = @IPPPHASE_II WHERE `id1` = 35013; -- Koralon the Flame Watcher
UPDATE `creature` SET `phaseMask` = @IPPPHASE_III WHERE `id1` = 38433; -- Toravon the Ice Watcher
-- Argent Tournament
UPDATE `creature` SET `phaseMask` = @IPPPHASE WHERE `guid` IN (25, 63129, 63236, 63370, 63371, 65274, 65275, 65283, 65284, 65285, 65325, 65327, 65350, 65351, 65371, 65451,
65522, 65523, 65526, 65901, 66478, 66479, 66741, 66753, 66788, 66790, 66792, 66910, 66941, 67185, 67187, 68005, 68457, 68583, 68906, 68941, 68947, 68987, 68989, 68990, 69010,

View File

@@ -217,6 +217,25 @@ INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES
(601014, 1, 'Warlord Thresh\'jin - EPL'),
(601015, 1, 'Zul\'Brin Warpbranch - EPL');
-- Marris, not Morris.
UPDATE `quest_template` SET `QuestCompletionLog` = 'Return to Nathanos Blightcaller at Marris Stead in Eastern Plaguelands.' WHERE `ID` IN (6022, 6042, 6133, 6135, 6145, 6148, 6163, 14350);
-- Hide Argent Dawn token quests until Naxx40
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 3461 AND `ConditionValue1` = 66006;
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 19 AND `SourceGroup` = 0 AND `ConditionValue1` = 66006 AND `SourceEntry` BETWEEN 9221 AND 9228;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`,
`ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
--
(15, 3461, 2, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Miranda Breechlock - only show Gossip Menu Insignia Cost after player reaches Naxx40'),
(15, 3461, 2, 0, 1, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Miranda Breechlock - only show Gossip Menu Insignia Cost after player reaches Naxx40'),
(15, 3461, 2, 0, 2, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Miranda Breechlock - only show Gossip Menu Insignia Cost after player reaches Naxx40'),
--
(19, 0, 9221, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Superior Armaments of Battle - Friend of the Dawn\' until Naxx40'),
(19, 0, 9223, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Superior Armaments of Battle - Honored Amongst the Dawn\' until Naxx40'),
(19, 0, 9226, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Superior Armaments of Battle - Revered Amongst the Dawn\' until Naxx40'),
(19, 0, 9227, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Superior Armaments of Battle - Exalted Amongst the Dawn\' until Naxx40'),
--
(19, 0, 9222, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Epic Armaments of Battle - Friend of the Dawn\' until Naxx40'),
(19, 0, 9224, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Epic Armaments of Battle - Honored Amongst the Dawn\' until Naxx40'),
(19, 0, 9225, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Epic Armaments of Battle - Revered Amongst the Dawn\' until Naxx40'),
(19, 0, 9228, 0, 0, 8, 0, 66006, 0, 0, 0, 0, 0, '', 'Hide \'Epic Armaments of Battle - Exalted Amongst the Dawn\' until Naxx40');

View File

@@ -45,7 +45,7 @@ enum ProgressionBossIDs
YOGGSARON = 33288,
ANUBARAK = 34564,
LICH_KING = 36597,
HALION = 39863,
HALION = 39863,
RHAHK_ZOR = 644,
SNEED = 643,
GILNID = 1763
@@ -204,7 +204,7 @@ enum ProgressionState : uint8 // Progression stands for what has been co
{
PROGRESSION_START = 0,
PROGRESSION_MOLTEN_CORE = 1, // BWL available
PROGRESSION_ONYXIA = 2,
PROGRESSION_ONYXIA = 2,
PROGRESSION_BLACKWING_LAIR = 3, // ZG, AQ War effort, AQ quest line
PROGRESSION_PRE_AQ = 4, // AQ gates open, raids available, AQ outdoors war
PROGRESSION_AQ_WAR = 5, // AQ gates open, raids, Field Duty quests and all Cenarion Hold npcs available
@@ -220,7 +220,7 @@ enum ProgressionState : uint8 // Progression stands for what has been co
PROGRESSION_WOTLK_TIER_2 = 15, // TotC
PROGRESSION_WOTLK_TIER_3 = 16, // ICC
PROGRESSION_WOTLK_TIER_4 = 17, // Ruby Sanctum
PROGRESSION_WOTLK_TIER_5 = 18
PROGRESSION_WOTLK_TIER_5 = 18
};
enum RandomDungeonIds : uint16
@@ -397,7 +397,7 @@ public:
bool hasCustomProgressionValue(uint32 creatureEntry);
bool isExcludedFromProgression(Player* player);
bool isAttuned(Player* player);
void checkIPPhasing(Player* player, uint32 newArea);
void checkIPPhasing(Player* player, uint32 newArea);
void checkIPProgression(Player* player);
void UpdateProgressionQuests(Player* player);
void UpdateProgressionAchievements(Player* player, uint16 achievementID);

View File

@@ -38,7 +38,7 @@ public:
sIndividualProgression->checkIPProgression(player);
sIndividualProgression->UpdateProgressionQuests(player);
}
if (sIndividualProgression->ExcludedAccountsEarnPvPTitles || !sIndividualProgression->isExcludedFromProgression(player))
{
sIndividualProgression->AwardEarnedVanillaPvpTitles(player);
@@ -47,7 +47,7 @@ public:
if (sIndividualProgression->isExcludedFromProgression(player))
{
sIndividualProgression->UpdateProgressionState(player, static_cast<ProgressionState>(0));
sIndividualProgression->UpdateProgressionState(player, static_cast<ProgressionState>(0));
}
sIndividualProgression->CheckAdjustments(player);
@@ -107,7 +107,7 @@ public:
{
return false;
}
// Player is still in Vanilla content - give money at 60 level cap
return ((!sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_TBC) && player->GetLevel() == IP_LEVEL_VANILLA) ||
// Player is in TBC content - give money at 70 level cap
@@ -159,7 +159,7 @@ public:
static bool isAttuned(Player* player)
{
if ((player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED) ||
if ((player->GetQuestStatus(NAXX40_ATTUNEMENT_1) == QUEST_STATUS_REWARDED) ||
(player->GetQuestStatus(NAXX40_ATTUNEMENT_2) == QUEST_STATUS_REWARDED) ||
(player->GetQuestStatus(NAXX40_ATTUNEMENT_3) == QUEST_STATUS_REWARDED))
{
@@ -172,11 +172,11 @@ public:
}
bool OnPlayerBeforeTeleport(Player* player, uint32 mapid, float x, float y, float z, float /*orientation*/, uint32 /*options*/, Unit* /*target*/) override
{
{
if (!sIndividualProgression->enabled || player->IsGameMaster() || sIndividualProgression->isExcludedFromProgression(player))
{
return true;
}
}
if (mapid == MAP_BLACKWING_LAIR && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_MOLTEN_CORE))
{
ChatHandler(player->GetSession()).PSendSysMessage("Progression Level Required = |cff00ffff{}|r", PROGRESSION_MOLTEN_CORE);
@@ -194,9 +194,9 @@ public:
}
}
if (mapid == MAP_ZUL_GURUB)
{
{
ProgressionState REQUIRED_ZG_PROGRESSION = static_cast<ProgressionState>(sIndividualProgression->RequiredZulGurubProgression);
if (!sIndividualProgression->hasPassedProgression(player, REQUIRED_ZG_PROGRESSION))
{
ChatHandler(player->GetSession()).PSendSysMessage("Progression Level Required = |cff00ffff{}|r", REQUIRED_ZG_PROGRESSION);
@@ -271,7 +271,7 @@ public:
{
return false;
}
if (instanceTemplate->Parent == MAP_NORTHREND && mapid == MAP_NAXXRAMAS && player->GetLevel() <= IP_LEVEL_TBC && (!isAttuned(player) || sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) ))
if (instanceTemplate->Parent == MAP_NORTHREND && mapid == MAP_NAXXRAMAS && player->GetLevel() <= IP_LEVEL_TBC && (!isAttuned(player) || sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5) ))
{
return false;
}
@@ -338,7 +338,7 @@ public:
{
return true;
}
if (sIndividualProgression->enforceGroupRules) // enforceGroupRules enabled
{
if (!sIndividualProgression->isExcludedFromProgression(player)) // player has a normal account
@@ -453,7 +453,7 @@ public:
if (currentState != otherPlayerState)
{
sIndividualProgression->UpdateProgressionState(player, static_cast<ProgressionState>(otherPlayerState));
}
}
return true;
}
@@ -486,12 +486,12 @@ public:
killer->RemoveAura(IPP_PHASE);
killer->RemoveAura(IPP_PHASE_II);
killer->RemoveAura(IPP_PHASE_III);
killer->CastSpell(killer, IPP_PHASE, false);
killer->CastSpell(killer, IPP_PHASE, false);
killer->CastSpell(killer, IPP_PHASE_II, false);
killer->CastSpell(killer, IPP_PHASE_III, false);
break;
}
if (killed->GetCreatureTemplate()->rank > CREATURE_ELITE_NORMAL)
{
sIndividualProgression->checkKillProgression(killer, killed);
@@ -684,7 +684,7 @@ public:
{
if (!sIndividualProgression->enabled || !attacker)
return;
bool isPet = attacker->GetOwner() && attacker->GetOwner()->GetTypeId() == TYPEID_PLAYER;
if (!isPet && attacker->GetTypeId() != TYPEID_PLAYER)
{

View File

@@ -117,7 +117,7 @@ public:
}
sIndividualProgression->ForceUpdateProgressionState(target, static_cast<ProgressionState>(progressionLevel));
sIndividualProgression->UpdateProgressionQuests(target);
sIndividualProgression->UpdateProgressionQuests(target);
sIndividualProgression->checkIPPhasing(target, currentArea);
handler->PSendSysMessage("Updated Progression Level for |cff00ffff{}|r = |cff00ffff{}|r", playername, progressionLevel);
@@ -125,7 +125,7 @@ public:
}
static bool HandleTeleIndividualProgressionCommand(ChatHandler* handler, Optional<PlayerIdentifier> player, std::string location)
{
{
if (location != "naxx40" && location != "onyxia40" && location != "naxx" && location != "onyxia")
{
handler->PSendSysMessage("|cff00ffff{}|r is not a valid teleport location.", location);