mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Compare commits
3 Commits
1319a39819
...
a5c8e9e263
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5c8e9e263 | ||
|
|
e715f29e1d | ||
|
|
0aa4cf52f9 |
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
Player* player = caster->ToPlayer();
|
return SPELL_CAST_OK;
|
||||||
|
|
||||||
|
Player* player = caster->ToPlayer();
|
||||||
if (!player)
|
if (!player)
|
||||||
return SPELL_CAST_OK;
|
return SPELL_CAST_OK;
|
||||||
|
|
||||||
int mapId = player->GetMapId();
|
Map* map = player->GetMap();
|
||||||
|
if (!map)
|
||||||
if ((player->GetRaidDifficulty() != RAID_DIFFICULTY_10MAN_HEROIC) || (mapId != 533))
|
|
||||||
return SPELL_CAST_OK;
|
return SPELL_CAST_OK;
|
||||||
|
|
||||||
Unit::AuraEffectList const& auraClassScripts = player->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
|
// 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;
|
||||||
|
|
||||||
for (auto itr = auraClassScripts.begin(); itr != auraClassScripts.end(); ++itr)
|
// 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)
|
||||||
{
|
{
|
||||||
if ((*itr)->GetSpellInfo())
|
if (!auraEff)
|
||||||
{
|
continue;
|
||||||
if ((*itr)->GetSpellInfo()->Effects[0].MiscValue == 4327)
|
|
||||||
|
SpellInfo const* auraInfo = auraEff->GetSpellInfo();
|
||||||
|
if (!auraInfo)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Corrupted Mind override (class script) – block the cast.
|
||||||
|
if (auraInfo->Effects[EFFECT_0].MiscValue == 4327)
|
||||||
return SPELL_FAILED_FIZZLE;
|
return SPELL_FAILED_FIZZLE;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
return SPELL_CAST_OK;
|
return SPELL_CAST_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user