mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Compare commits
5 Commits
c871193a52
...
99b3156088
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99b3156088 | ||
|
|
62a8cfd735 | ||
|
|
6f684b6c41 | ||
|
|
6fb4b03caa | ||
|
|
8fc208cf54 |
@@ -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,
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user