Compare commits

...

10 Commits

Author SHA1 Message Date
ZhengPeiRu21
53b21879bd Merge pull request #110 from AlvinZhu/PR7
fix quest: Battle of Hillsbrad
2023-03-26 10:21:20 -06:00
ZhengPeiRu21
a2c37f3956 Merge pull request #111 from AlvinZhu/PR8
A Distraction for Akama(13429) - Restore pre-3.0 version
2023-03-26 10:20:12 -06:00
Alvin Zhu
9b6ce221dd A Distraction for Akama(13429) - Restore pre-3.0 version 2023-03-26 15:07:00 +08:00
Alvin Zhu
4f61c1767c fix quest: Battle of Hillsbrad 2023-03-26 15:06:31 +08:00
ZhengPeiRu21
eabd55b91b Merge pull request #109 from AlvinZhu/PR6
Restore quests series The Deathstalkers
2023-03-25 13:11:25 -06:00
Alvin Zhu
f975b32513 fix RewardNextQuest 2023-03-24 20:43:01 +08:00
Alvin Zhu
3c16b0a782 Restore quests series The Deathstalkers 2023-03-24 18:22:39 +08:00
ZhengPeiRu21
4efc565a77 Merge pull request #107 from AlvinZhu/PR5
fix conditions: Charlga Razorflank - Small Scroll
2023-03-22 09:19:04 -06:00
Alvin Zhu
f436107cf0 fix conditions: Charlga Razorflank - Small Scroll 2023-03-22 17:43:42 +08:00
郑佩茹
cb723a31f9 Add config option for Naxx40 Strath Entrance requirement 2023-03-21 09:32:28 -06:00
6 changed files with 45 additions and 3 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);