Compare commits

...

12 Commits

Author SHA1 Message Date
郑佩茹
3dbc2e0a56 Fix periodic healing auras being scaled twice 2023-11-03 09:51:14 -06:00
郑佩茹
f5bfc52729 Update SimpleConfigOverride description in config file 2023-09-29 08:15:49 -06:00
郑佩茹
a84a3452d3 Set DBC.EnforceItemAttributes to false when SimpleConfigOverride is enabled 2023-09-29 08:13:35 -06:00
郑佩茹
be4496c034 Disable LFG when SimpleConfigOverride is enabled 2023-09-29 08:10:44 -06:00
郑佩茹
d1bb3f2f23 Do not apply healing scaling to Max Health heals (LoH, etc.) 2023-09-29 08:05:30 -06:00
ZhengPeiRu21
f3a82db829 Merge pull request #190 from Day36512/master
RDF Exceptions for Holidays and Crypt Scarab enhancements
2023-09-29 07:58:06 -06:00
Dinkledork
ba20397ea1 Update individualProgression.conf.dist 2023-09-28 11:38:44 -06:00
Dinkledork
b3cb2bedae Update boss_anubrekhan_40.cpp
Ensures Corpse Scarabs engage in combat.
2023-09-27 19:08:20 -06:00
Dinkledork
35e9f4dbdd Holiday Exceptions for Disable RDF
Added Holiday events to the exception list.
2023-09-27 18:55:14 -06:00
Dinkledork
4ad27208ff Undo RDF Holliday Commit 2023-09-27 18:32:59 -06:00
Dinkledork
fa7d7ed502 RDF Disable Holliday Exceptions
Added exceptions to Headless Horseman, Frost Lord Ahune, Coren Direbrew, and Crown Chemical Co.
2023-09-27 18:02:54 -06:00
Dinkledork
a11fd7113e Update naxx40_creatures.sql
Movement type set to 0 for Scarab Corpse. Was set to wp path movement type, which is incorrect.
2023-09-27 11:42:51 -06:00
5 changed files with 62 additions and 32 deletions

View File

@@ -184,6 +184,8 @@ IndividualProgression.FishingFix = 1
# Water Breath Timer to 1 Minute (Vanilla value, changed to 3 Minutes in WotLK)
# Disable Quest Object sparkle and object quest markers (added in patch 2.3)
# Enable PlayerSettings (required by Individual Progression module)
# Disable the LFG tool, aside from special Holiday events otherwise inaccessible
# Do not enforce DBC Item Attributes, so that Vanilla item changes can override client values
#
# Default: 1 - Enabled
# 0 - Disabled
@@ -331,7 +333,8 @@ IndividualProgression.PvPGearRequirements = 1
#
# IndividualProgression.DisableRDF
# Description: Enable or disable the Random Dungeon Finder feature within the context of Individual Progression.
# Queing for specific dungeons will still be possible. (See worldserver.conf for total LFG removal).
# Queuing for specific dungeons and Holiday Events will still be possible. (Use DungeonFinder.OptionsMask in worldserver.conf to completely disable the LFG tool.)
# Please note that the LFG tool is disabled (except for Holiday events) by default if SimpleConfigOverride is enabled.
# Default: 0 - Enabled
# 1 - Disabled
#

View File

@@ -83,7 +83,7 @@ REPLACE INTO `creature_template` (`entry`, `modelid1`, `name`, `subname`, `minle
(351080, 16605, "Naxxramas Follower", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 59.2, 2000, 1265, 1.0, 1.0, 8, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 45.0, 10.0, 1.15, 1.0, 144, 1, 1023391482, 0, 0, ''),
(351081, 16603, "Naxxramas Worshipper", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 35.0, 2000, 1265, 1.0, 1.0, 8, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 40.0, 10.0, 1.0, 1.0, 144, 1, 1023391482, 0, 0, ''),
(351082, 14698, "Crypt Guard", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 14.7, 1000, 1265, 1.0, 1.0, 1, 64, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 65.0, 1.0, 1.15, 1.0, 144, 1, 1023391482, 0, 0, ''),
(351083, 10005, "Corpse Scarab", "", 60, 60, 21, 0.833332, 2.14286, 18.0, 1.0, 0, 0, 2.1, 1000, 1265, 1.0, 1.0, 1, 0, 2048, 0, 10, 72, 0, 0, 0, 0, 0, 'SmartAI', 2, 1.0, 2.0, 1.0, 0.7, 1.0, 188, 1, 1022042641, 0, 0, ''),
(351083, 10005, "Corpse Scarab", "", 60, 60, 21, 0.833332, 2.14286, 18.0, 1.0, 0, 0, 2.1, 1000, 1265, 1.0, 1.0, 1, 0, 2048, 0, 10, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 2.0, 1.0, 0.7, 1.0, 188, 1, 1022042641, 0, 0, ''),
(351084, 16539, "Deathknight Understudy", "", 60, 60, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 45.5, 3500, 1265, 1.0, 1.0, 1, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, '', 0, 1.0, 30.0, 2.0, 2.0, 1.0, 144, 1, 1022049874, 0, 0, 'boss_razuvious_minion_40'),
(351085, 2606, "Plagued Guardian", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 24.25, 3000, 2000, 1.0, 1.0, 8, 0, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 8.0, 18.0, 1.15, 1.0, 144, 1, 1015751184, 0, 0, ''),
(351086, 7847, "Plagued Champion", "", 61, 61, 21, 0.888888, 1.42857, 20.0, 1.0, 1, 0, 26.85, 2000, 2000, 1.0, 1.0, 1, 64, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 11.0, 1.0, 1.15, 1.0, 144, 1, 1015226896, 0, 0, ''),

View File

@@ -352,10 +352,12 @@ public:
if (sIndividualProgression->simpleConfigOverride)
{
sWorld->setIntConfig(CONFIG_WATER_BREATH_TIMER, 60000);
sWorld->setIntConfig(CONFIG_LFG_OPTIONSMASK, 4);
sWorld->setBoolConfig(CONFIG_OBJECT_QUEST_MARKERS, false);
sWorld->setBoolConfig(CONFIG_OBJECT_SPARKLES, false);
sWorld->setBoolConfig(CONFIG_PLAYER_SETTINGS_ENABLED, true);
sWorld->setBoolConfig(CONFIG_LOW_LEVEL_REGEN_BOOST, false);
sWorld->setBoolConfig(CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, false);
}
}
};

View File

@@ -348,10 +348,16 @@ public:
void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override
{
// List of exceptions for seasonal event dungeons
std::set<uint32> seasonalEventDungeons = { 285, 286, 287, 288 };
if (seasonalEventDungeons.find(rDungeonId) != seasonalEventDungeons.end())
{
return;
}
// Check if RDF is disabled in the context of Individual Progression
if (sConfigMgr->GetOption<bool>("IndividualProgression.DisableRDF", false))
{
// Notify the player
player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module.");
rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing
return;
@@ -570,6 +576,13 @@ public:
}
// Skip percentage based heals or spells already nerfed by damage reduction
for (uint8 i = 0; i < 3; i++)
{
if (spellInfo->Effects[i].Effect == SPELL_EFFECT_HEAL_MAX_HEALTH)
{
return;
}
}
if (spellInfo->Id == SPELL_RUNE_TAP || spellInfo->Id == SPELL_LIFE_STEAL)
{
return;
@@ -650,11 +663,20 @@ public:
}
}
void ModifyPeriodicDamageAurasTick(Unit* /*target*/, Unit* attacker, uint32& damage, SpellInfo const* /*spellInfo*/) override
void ModifyPeriodicDamageAurasTick(Unit* /*target*/, Unit* attacker, uint32& damage, SpellInfo const* spellInfo) override
{
if (!sIndividualProgression->enabled || !attacker)
return;
// Do not apply reductions to healing auras - these are already modified in the ModifyHeal hook
for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
{
if (spellInfo->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA && spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_HEAL)
{
return;
}
}
bool isPet = attacker->GetOwner() && attacker->GetOwner()->GetTypeId() == TYPEID_PLAYER;
if (!isPet && attacker->GetTypeId() != TYPEID_PLAYER)
{

View File

@@ -94,7 +94,6 @@ public:
me->SummonCreature(NPC_CRYPT_GUARD, 3299.086f, -3450.929f, 287.077f, 3.999f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}
void Reset() override
{
BossAI::Reset();
@@ -114,11 +113,15 @@ public:
{
if (me->IsInCombat())
{
cr->SetInCombatWithZone();
cr->SetInCombatWithZone(); // This line will set the creature in combat with the zone.
if (cr->GetEntry() == NPC_CRYPT_GUARD)
{
cr->AI()->Talk(EMOTE_SPAWN, me);
}
else if (cr->GetEntry() == NPC_CORPSE_SCARAB) // Explicitly check for Corpse Scarabs here.
{
cr->SetInCombatWithZone(); // Set the Corpse Scarabs in combat with the zone too.
}
}
summons.Summon(cr);
}