mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53b21879bd | ||
|
|
a2c37f3956 | ||
|
|
9b6ce221dd | ||
|
|
4f61c1767c | ||
|
|
eabd55b91b | ||
|
|
f975b32513 | ||
|
|
3c16b0a782 | ||
|
|
4efc565a77 | ||
|
|
f436107cf0 | ||
|
|
cb723a31f9 |
@@ -129,6 +129,17 @@ IndividualProgression.HunterPetLevelFix = 1
|
|||||||
|
|
||||||
IndividualProgression.RequirePreAQQuests = 1
|
IndividualProgression.RequirePreAQQuests = 1
|
||||||
#
|
#
|
||||||
|
# IndividualProgression.RequireNaxxStrathEntrance
|
||||||
|
# Description: If enabled, requires players to first enter Naxx 40 through the original beta entrance in the back of Stratholme
|
||||||
|
# before being able to use the teleportation crystal in EPL. This is consistent behavior with other Vanilla raids (MC, BL).
|
||||||
|
# If disabled, players can enter Naxx 40 through the crystal as soon as they are attuned and they have reached the correct
|
||||||
|
# progression level - no Stratholme run will be required.
|
||||||
|
# Default: 1 - Enabled
|
||||||
|
# 0 - Disabled
|
||||||
|
#
|
||||||
|
|
||||||
|
IndividualProgression.RequireNaxxStrathEntrance = 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# IndividualProgression.MoltenCore.ManualRuneHandling
|
# IndividualProgression.MoltenCore.ManualRuneHandling
|
||||||
|
|||||||
@@ -22,3 +22,6 @@ DELETE FROM `creature_questender` WHERE `id`=18481 AND `quest`=13430;
|
|||||||
DELETE FROM `creature_queststarter` WHERE `id`=18481 AND `quest`=13430;
|
DELETE FROM `creature_queststarter` WHERE `id`=18481 AND `quest`=13430;
|
||||||
DELETE FROM `creature_queststarter` WHERE `id`=18481 AND `quest`=10888;
|
DELETE FROM `creature_queststarter` WHERE `id`=18481 AND `quest`=10888;
|
||||||
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES (18481, 10888);
|
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES (18481, 10888);
|
||||||
|
|
||||||
|
/* A Distraction for Akama(13429) - Restore pre-3.0 version */
|
||||||
|
UPDATE `quest_template` SET `RewardNextQuest` = 10985 WHERE `ID` = 10949;
|
||||||
|
|||||||
@@ -40,6 +40,27 @@ INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionTex
|
|||||||
/* Wrathgate NPCs - just deleting for now, but maybe can implement a post-Wrathgate world state later */
|
/* Wrathgate NPCs - just deleting for now, but maybe can implement a post-Wrathgate world state later */
|
||||||
DELETE FROM `creature` WHERE `guid` IN (43466, 79263);
|
DELETE FROM `creature` WHERE `guid` IN (43466, 79263);
|
||||||
|
|
||||||
|
/* Restore quests series The Deathstalkers */
|
||||||
|
DELETE FROM `creature_questender` WHERE `id` = 6467 AND `quest` = 14420;
|
||||||
|
DELETE FROM `creature_questender` WHERE `id` = 6467 AND `quest` = 14421;
|
||||||
|
DELETE FROM `creature_questender` WHERE `id` = 6522 AND `quest` = 14419;
|
||||||
|
DELETE FROM `creature_questender` WHERE `id` = 36517 AND `quest` = 14418;
|
||||||
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (6467, 1886);
|
||||||
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (6467, 1899);
|
||||||
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (6522, 1898);
|
||||||
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (36517, 1978);
|
||||||
|
DELETE FROM `creature_queststarter` WHERE `id` = 6467 AND `quest` = 14418;
|
||||||
|
DELETE FROM `creature_queststarter` WHERE `id` = 6467 AND `quest` = 14419;
|
||||||
|
DELETE FROM `creature_queststarter` WHERE `id` = 6467 AND `quest` = 14420;
|
||||||
|
DELETE FROM `creature_queststarter` WHERE `id` = 6522 AND `quest` = 14421;
|
||||||
|
REPLACE INTO `creature_queststarter` (`id`, `quest`) VALUES (6467, 1886);
|
||||||
|
REPLACE INTO `creature_queststarter` (`id`, `quest`) VALUES (6467, 1898);
|
||||||
|
REPLACE INTO `creature_queststarter` (`id`, `quest`) VALUES (6522, 1899);
|
||||||
|
|
||||||
|
UPDATE `quest_template` SET `RewardNextQuest` = 1898 WHERE `ID` = 1886;
|
||||||
|
UPDATE `quest_template` SET `RewardNextQuest` = 1899 WHERE `ID` = 1898;
|
||||||
|
UPDATE `quest_template` SET `RewardNextQuest` = 1978 WHERE `ID` = 1899;
|
||||||
|
|
||||||
/* Restore Varimathras */
|
/* Restore Varimathras */
|
||||||
UPDATE `creature` SET `id1`=2425, `equipment_id`=0 WHERE `id1`=36273;
|
UPDATE `creature` SET `id1`=2425, `equipment_id`=0 WHERE `id1`=36273;
|
||||||
|
|
||||||
@@ -60,10 +81,15 @@ REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (2425, 14355);
|
|||||||
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (2425, 14356);
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (2425, 14356);
|
||||||
|
|
||||||
DELETE FROM `creature_queststarter` WHERE `id`=2215 AND `quest`=14351;
|
DELETE FROM `creature_queststarter` WHERE `id`=2215 AND `quest`=14351;
|
||||||
|
REPLACE INTO `creature_queststarter` (`id`, `quest`) VALUES (2215, 550);
|
||||||
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (2425, 550);
|
REPLACE INTO `creature_questender` (`id`, `quest`) VALUES (2425, 550);
|
||||||
|
UPDATE `quest_template` SET `RewardNextQuest` = 550 WHERE `ID` = 541;
|
||||||
|
|
||||||
DELETE FROM `creature_loot_template` WHERE `Entry`=4421 AND `Item`=49205 AND `Reference`=0 AND `GroupId`=0;
|
DELETE FROM `creature_loot_template` WHERE `Entry`=4421 AND `Item`=49205 AND `Reference`=0 AND `GroupId`=0;
|
||||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES (4421, 17008, 0, 100, 0, 1, 0, 1, 1, 'Charlga Razorflank - Small Scroll');
|
REPLACE INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES (4421, 17008, 0, 100, 0, 1, 0, 1, 1, 'Charlga Razorflank - Small Scroll');
|
||||||
|
|
||||||
|
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 1 AND `SourceGroup` = 4421 AND `SourceEntry` = 49205 AND `SourceId` = 0 AND `ElseGroup` = 0 AND `ConditionTypeOrReference` = 6 AND `ConditionTarget` = 0 AND `ConditionValue1` = 67 AND `ConditionValue2` = 0 AND `ConditionValue3` = 0;
|
||||||
|
REPLACE INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES (1, 4421, 17008, 0, 0, 6, 0, 67, 0, 0, 0, 0, 0, '', NULL);
|
||||||
|
|
||||||
UPDATE `item_template` SET `flags` = 2048 WHERE `entry` = 17008;
|
UPDATE `item_template` SET `flags` = 2048 WHERE `entry` = 17008;
|
||||||
UPDATE `item_template` SET `description` = 'To be opened by Lord Varimathras.' WHERE `entry` = 3701;
|
UPDATE `item_template` SET `description` = 'To be opened by Lord Varimathras.' WHERE `entry` = 3701;
|
||||||
|
|||||||
@@ -293,6 +293,7 @@ private:
|
|||||||
sIndividualProgression->questXpFix = sConfigMgr->GetOption<bool>("IndividualProgression.QuestXPFix", true);
|
sIndividualProgression->questXpFix = sConfigMgr->GetOption<bool>("IndividualProgression.QuestXPFix", true);
|
||||||
sIndividualProgression->hunterPetLevelFix = sConfigMgr->GetOption<bool>("IndividualProgression.HunterPetLevelFix", true);
|
sIndividualProgression->hunterPetLevelFix = sConfigMgr->GetOption<bool>("IndividualProgression.HunterPetLevelFix", true);
|
||||||
sIndividualProgression->requirePreAQQuests = sConfigMgr->GetOption<bool>("IndividualProgression.RequirePreAQQuests", true);
|
sIndividualProgression->requirePreAQQuests = sConfigMgr->GetOption<bool>("IndividualProgression.RequirePreAQQuests", true);
|
||||||
|
sIndividualProgression->requireNaxxStrath = sConfigMgr->GetOption<bool>("IndividualProgression.RequireNaxxStrathEntrance", true);
|
||||||
sIndividualProgression->enforceGroupRules = sConfigMgr->GetOption<bool>("IndividualProgression.EnforceGroupRules", true);
|
sIndividualProgression->enforceGroupRules = sConfigMgr->GetOption<bool>("IndividualProgression.EnforceGroupRules", true);
|
||||||
sIndividualProgression->fishingFix = sConfigMgr->GetOption<bool>("IndividualProgression.FishingFix", true);
|
sIndividualProgression->fishingFix = sConfigMgr->GetOption<bool>("IndividualProgression.FishingFix", true);
|
||||||
sIndividualProgression->simpleConfigOverride = sConfigMgr->GetOption<bool>("IndividualProgression.SimpleConfigOverride", true);
|
sIndividualProgression->simpleConfigOverride = sConfigMgr->GetOption<bool>("IndividualProgression.SimpleConfigOverride", true);
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ public:
|
|||||||
std::map<uint32, uint8> customProgressionMap;
|
std::map<uint32, uint8> customProgressionMap;
|
||||||
questXpMapType questXpMap;
|
questXpMapType questXpMap;
|
||||||
float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning;
|
float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning;
|
||||||
bool enabled, questXpFix, hunterPetLevelFix, requirePreAQQuests, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2;
|
bool enabled, questXpFix, hunterPetLevelFix, requirePreAQQuests, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath;
|
||||||
int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression;
|
int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression;
|
||||||
|
|
||||||
bool hasPassedProgression(Player* player, ProgressionState state) const;
|
bool hasPassedProgression(Player* player, ProgressionState state) const;
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "GameObjectAI.h"
|
#include "GameObjectAI.h"
|
||||||
#include "naxxramas.h"
|
#include "naxxramas.h"
|
||||||
|
#include "IndividualProgression.h"
|
||||||
|
|
||||||
const float HeiganPos[2] = {2796, -3707};
|
const float HeiganPos[2] = {2796, -3707};
|
||||||
const float HeiganEruptionSlope[3] =
|
const float HeiganEruptionSlope[3] =
|
||||||
@@ -1354,7 +1355,7 @@ public:
|
|||||||
|
|
||||||
bool OnGossipHello(Player* player, GameObject* go) override
|
bool OnGossipHello(Player* player, GameObject* go) override
|
||||||
{
|
{
|
||||||
if (player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED && isAttuned(player))
|
if ((!sIndividualProgression->requireNaxxStrath || player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED) && isAttuned(player))
|
||||||
{
|
{
|
||||||
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
|
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
|
||||||
player->TeleportTo(533, 3005.51f, -3434.64f, 304.195f, 6.2831f);
|
player->TeleportTo(533, 3005.51f, -3434.64f, 304.195f, 6.2831f);
|
||||||
|
|||||||
Reference in New Issue
Block a user