Compare commits

...

3 Commits

Author SHA1 Message Date
Grimfeather
a5c8e9e263 fix Cadaverous Worm - Dire Maul West (#858)
fix loot and display scale
2025-11-16 06:30:16 +01:00
Grimfeather
e715f29e1d some file changes (#857) 2025-11-16 05:59:35 +01:00
Grimfeather
0aa4cf52f9 isAllowedToCastSpell Wishmaster Adjustments (#856) 2025-11-16 03:40:59 +01:00
5 changed files with 39 additions and 146 deletions

View File

@@ -389,6 +389,11 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_
(14400, 0, 1, 0, 0, 0, 100, 0, 0, 0, 15000, 30000, 0, 0, 11, 12550, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcane Feedback - In Combat - Cast Lightning Shield'); (14400, 0, 1, 0, 0, 0, 100, 0, 0, 0, 15000, 30000, 0, 0, 11, 12550, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Arcane Feedback - In Combat - Cast Lightning Shield');
-- Cadaverous Worm
DELETE FROM `creature_loot_template` WHERE `entry` = 14370;
UPDATE `creature_template` SET `lootid` = 0 WHERE `entry` = 14370;
UPDATE `creature_template_model` SET `DisplayScale` = 0.25 WHERE `CreatureID` = 14370;
-- fix waypoints -- fix waypoints
DELETE FROM `creature` WHERE `id1` IN (11459, 11484, 11488, 14308); DELETE FROM `creature` WHERE `id1` IN (11459, 11484, 11488, 14308);
DELETE FROM `creature` WHERE `guid` IN (247932, 247933); -- unused Eldreth Phantasm guids DELETE FROM `creature` WHERE `guid` IN (247932, 247933); -- unused Eldreth Phantasm guids

View File

@@ -451,7 +451,7 @@ class spell_loatheb_corrupted_mind_40 : public SpellScript
switch (playerTarget->getClass()) switch (playerTarget->getClass())
{ {
case CLASS_PRIEST: case CLASS_PRIEST:
spell_id = 29185; spell_id = 29194; // priests should be getting 29185, but it triggers on dmg effects as well
break; break;
case CLASS_DRUID: case CLASS_DRUID:
spell_id = 29194; spell_id = 29194;
@@ -483,29 +483,40 @@ class isAllowedToCastSpell : public SpellScript
SpellCastResult CheckCorruptedMind() SpellCastResult CheckCorruptedMind()
{ {
if (Unit* caster = GetCaster()) Unit* caster = GetCaster();
if (!caster)
return SPELL_CAST_OK;
Player* player = caster->ToPlayer();
if (!player)
return SPELL_CAST_OK;
Map* map = player->GetMap();
if (!map)
return SPELL_CAST_OK;
// Only enforce the check in Naxxramas 10HC (map 533, 10-man heroic).
if (map->GetId() != 533 || map->GetDifficulty() != RAID_DIFFICULTY_10MAN_HEROIC)
return SPELL_CAST_OK;
// Check class override auras (Corrupted Mind) on the player.
Unit::AuraEffectList const& auraClassScripts =
player->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
for (AuraEffect const* auraEff : auraClassScripts)
{ {
Player* player = caster->ToPlayer(); if (!auraEff)
continue;
if (!player) SpellInfo const* auraInfo = auraEff->GetSpellInfo();
return SPELL_CAST_OK; if (!auraInfo)
continue;
int mapId = player->GetMapId(); // Corrupted Mind override (class script) block the cast.
if (auraInfo->Effects[EFFECT_0].MiscValue == 4327)
if ((player->GetRaidDifficulty() != RAID_DIFFICULTY_10MAN_HEROIC) || (mapId != 533)) return SPELL_FAILED_FIZZLE;
return SPELL_CAST_OK;
Unit::AuraEffectList const& auraClassScripts = player->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
for (auto itr = auraClassScripts.begin(); itr != auraClassScripts.end(); ++itr)
{
if ((*itr)->GetSpellInfo())
{
if ((*itr)->GetSpellInfo()->Effects[0].MiscValue == 4327)
return SPELL_FAILED_FIZZLE;
}
}
} }
return SPELL_CAST_OK; return SPELL_CAST_OK;
} }

View File

@@ -24,10 +24,11 @@ public:
{ {
if (player->IsGameMaster()) if (player->IsGameMaster())
{ {
return true; return false;
} }
Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID()); Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID());
return sIndividualProgression->isBeforeProgression(target, PROGRESSION_NAXX40); return sIndividualProgression->isBeforeProgression(target, PROGRESSION_PRE_TBC);
} }
}; };

View File

@@ -1,124 +0,0 @@
/*
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by the
* Free Software Foundation; either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_BLACKWING_LAIR_60_1_H
#define DEF_BLACKWING_LAIR_60_1_H
#include "CreatureAIImpl.h"
constexpr uint32 EncounterCount = 8;
#define BWLScriptName "instance_blackwing_lair"
#define DataHeader "BWL"
enum BWLEncounter
{
// Encounter States/Boss GUIDs
DATA_RAZORGORE_THE_UNTAMED = 0,
DATA_VAELASTRAZ_THE_CORRUPT = 1,
DATA_BROODLORD_LASHLAYER = 2,
DATA_FIREMAW = 3,
DATA_EBONROC = 4,
DATA_FLAMEGOR = 5,
DATA_CHROMAGGUS = 6,
DATA_NEFARIAN = 7,
// Additional Data
DATA_LORD_VICTOR_NEFARIUS = 8,
// Doors
DATA_GO_CHROMAGGUS_DOOR = 9
};
enum BWLCreatureIds
{
NPC_RAZORGORE = 12435,
NPC_BLACKWING_DRAGON = 12422,
NPC_BLACKWING_TASKMASTER = 12458,
NPC_BLACKWING_LEGIONAIRE = 12416,
NPC_BLACKWING_WARLOCK = 12459,
NPC_BLACKWING_MAGE = 12420,
NPC_VAELASTRAZ = 13020,
NPC_BROODLORD = 12017,
NPC_FIREMAW = 11983,
NPC_EBONROC = 14601,
NPC_FLAMEGOR = 11981,
NPC_CHROMAGGUS = 14020,
NPC_VICTOR_NEFARIUS = 10162,
NPC_NEFARIAN = 11583,
// Nefarian fight
NPC_BLACK_SPAWNER = 14307,
NPC_RED_SPAWNER = 14309,
NPC_GREEN_SPAWNER = 14310,
NPC_BRONZE_SPAWNER = 14311,
NPC_BLUE_SPAWNER = 14312,
NPC_BRONZE_DRAKONID = 14263,
NPC_BLUE_DRAKONID = 14261,
NPC_RED_DRAKONID = 14264,
NPC_GREEN_DRAKONID = 14262,
NPC_BLACK_DRAKONID = 14265,
NPC_CHROMATIC_DRAKONID = 14302,
NPC_BONE_CONSTRUCT = 14605
};
enum BWLGameObjectIds
{
GO_BLACK_DRAGON_EGG = 177807,
GO_PORTCULLIS_RAZORGORE = 175946,
GO_PORTCULLIS_RAZORGORE_ROOM = 176964,
GO_PORTCULLIS_VAELASTRASZ = 175185,
GO_PORTCULLIS_BROODLORD = 179365,
GO_PORTCULLIS_THREEDRAGONS = 179115,
GO_CHROMAGGUS_LEVER = 179148,
GO_PORTCULLIS_CHROMAGGUS = 179116,
GO_PORTCULLIS_NEFARIAN = 179117,
GO_SUPPRESSION_DEVICE = 179784
};
enum BWLEvents
{
EVENT_RAZOR_SPAWN = 1,
EVENT_RAZOR_PHASE_TWO = 2,
EVENT_RESPAWN_NEFARIUS = 3
};
enum BWLMisc
{
// Razorgore Egg Event
ACTION_PHASE_TWO = 1,
DATA_EGG_EVENT = 2,
TALK_EGG_BROKEN_RAND = 3,
SAY_NEFARIAN_VAEL_INTRO = 14,
// Nefarian fight
DATA_NEFARIAN_LEFT_TUNNEL = 15,
DATA_NEFARIAN_RIGHT_TUNNEL = 16,
ACTION_NEFARIUS_ADD_KILLED = 2
};
template <class AI, class T>
inline AI* GetBlackwingLairAI(T* obj)
{
return GetInstanceAI<AI>(obj, BWLScriptName);
}
#define RegisterBlackwingLairCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetBlackwingLairAI)
#endif