Anubrekhan and Faerlina spell power corrections

This commit is contained in:
郑佩茹
2022-09-06 19:31:34 -06:00
parent 8789bff489
commit 61d4182fc5
3 changed files with 49 additions and 15 deletions

View File

@@ -0,0 +1,6 @@
DELETE FROM `spell_dbc` WHERE `ID` BETWEEN 90000 AND 90002;
INSERT INTO spell_dbc (`ID`,`Category`,`DispelType`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`AttributesEx6`,`AttributesEx7`,`ShapeshiftMask`,`unk_320_2`,`ShapeshiftExclude`,`unk_320_3`,`Targets`,`TargetCreatureType`,`RequiresSpellFocus`,`FacingCasterFlags`,`CasterAuraState`,`TargetAuraState`,`ExcludeCasterAuraState`,`ExcludeTargetAuraState`,`CasterAuraSpell`,`TargetAuraSpell`,`ExcludeCasterAuraSpell`,`ExcludeTargetAuraSpell`,`CastingTimeIndex`,`RecoveryTime`,`CategoryRecoveryTime`,`InterruptFlags`,`AuraInterruptFlags`,`ChannelInterruptFlags`,`ProcTypeMask`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`PowerType`,`ManaCost`,`ManaCostPerLevel`,`ManaPerSecond`,`ManaPerSecondPerLevel`,`RangeIndex`,`Speed`,`ModalNextSpell`,`CumulativeAura`,`Totem_1`,`Totem_2`,`Reagent_1`,`Reagent_2`,`Reagent_3`,`Reagent_4`,`Reagent_5`,`Reagent_6`,`Reagent_7`,`Reagent_8`,`ReagentCount_1`,`ReagentCount_2`,`ReagentCount_3`,`ReagentCount_4`,`ReagentCount_5`,`ReagentCount_6`,`ReagentCount_7`,`ReagentCount_8`,`EquippedItemClass`,`EquippedItemSubclass`,`EquippedItemInvTypes`,`Effect_1`,`Effect_2`,`Effect_3`,`EffectDieSides_1`,`EffectDieSides_2`,`EffectDieSides_3`,`EffectRealPointsPerLevel_1`,`EffectRealPointsPerLevel_2`,`EffectRealPointsPerLevel_3`,`EffectBasePoints_1`,`EffectBasePoints_2`,`EffectBasePoints_3`,`EffectMechanic_1`,`EffectMechanic_2`,`EffectMechanic_3`,`ImplicitTargetA_1`,`ImplicitTargetA_2`,`ImplicitTargetA_3`,`ImplicitTargetB_1`,`ImplicitTargetB_2`,`ImplicitTargetB_3`,`EffectRadiusIndex_1`,`EffectRadiusIndex_2`,`EffectRadiusIndex_3`,`EffectAura_1`,`EffectAura_2`,`EffectAura_3`,`EffectAuraPeriod_1`,`EffectAuraPeriod_2`,`EffectAuraPeriod_3`,`EffectMultipleValue_1`,`EffectMultipleValue_2`,`EffectMultipleValue_3`,`EffectChainTargets_1`,`EffectChainTargets_2`,`EffectChainTargets_3`,`EffectItemType_1`,`EffectItemType_2`,`EffectItemType_3`,`EffectMiscValue_1`,`EffectMiscValue_2`,`EffectMiscValue_3`,`EffectMiscValueB_1`,`EffectMiscValueB_2`,`EffectMiscValueB_3`,`EffectTriggerSpell_1`,`EffectTriggerSpell_2`,`EffectTriggerSpell_3`,`EffectPointsPerCombo_1`,`EffectPointsPerCombo_2`,`EffectPointsPerCombo_3`,`EffectSpellClassMaskA_1`,`EffectSpellClassMaskA_2`,`EffectSpellClassMaskA_3`,`EffectSpellClassMaskB_1`,`EffectSpellClassMaskB_2`,`EffectSpellClassMaskB_3`,`EffectSpellClassMaskC_1`,`EffectSpellClassMaskC_2`,`EffectSpellClassMaskC_3`,`SpellVisualID_1`,`SpellVisualID_2`,`SpellIconID`,`ActiveIconID`,`SpellPriority`,`Name_Lang_enUS`,`Name_Lang_enGB`,`Name_Lang_koKR`,`Name_Lang_frFR`,`Name_Lang_deDE`,`Name_Lang_enCN`,`Name_Lang_zhCN`,`Name_Lang_enTW`,`Name_Lang_zhTW`,`Name_Lang_esES`,`Name_Lang_esMX`,`Name_Lang_ruRU`,`Name_Lang_ptPT`,`Name_Lang_ptBR`,`Name_Lang_itIT`,`Name_Lang_Unk`,`Name_Lang_Mask`,`NameSubtext_Lang_enUS`,`NameSubtext_Lang_enGB`,`NameSubtext_Lang_koKR`,`NameSubtext_Lang_frFR`,`NameSubtext_Lang_deDE`,`NameSubtext_Lang_enCN`,`NameSubtext_Lang_zhCN`,`NameSubtext_Lang_enTW`,`NameSubtext_Lang_zhTW`,`NameSubtext_Lang_esES`,`NameSubtext_Lang_esMX`,`NameSubtext_Lang_ruRU`,`NameSubtext_Lang_ptPT`,`NameSubtext_Lang_ptBR`,`NameSubtext_Lang_itIT`,`NameSubtext_Lang_Unk`,`NameSubtext_Lang_Mask`,`Description_Lang_enUS`,`Description_Lang_enGB`,`Description_Lang_koKR`,`Description_Lang_frFR`,`Description_Lang_deDE`,`Description_Lang_enCN`,`Description_Lang_zhCN`,`Description_Lang_enTW`,`Description_Lang_zhTW`,`Description_Lang_esES`,`Description_Lang_esMX`,`Description_Lang_ruRU`,`Description_Lang_ptPT`,`Description_Lang_ptBR`,`Description_Lang_itIT`,`Description_Lang_Unk`,`Description_Lang_Mask`,`AuraDescription_Lang_enUS`,`AuraDescription_Lang_enGB`,`AuraDescription_Lang_koKR`,`AuraDescription_Lang_frFR`,`AuraDescription_Lang_deDE`,`AuraDescription_Lang_enCN`,`AuraDescription_Lang_zhCN`,`AuraDescription_Lang_enTW`,`AuraDescription_Lang_zhTW`,`AuraDescription_Lang_esES`,`AuraDescription_Lang_esMX`,`AuraDescription_Lang_ruRU`,`AuraDescription_Lang_ptPT`,`AuraDescription_Lang_ptBR`,`AuraDescription_Lang_itIT`,`AuraDescription_Lang_Unk`,`AuraDescription_Lang_Mask`,`ManaCostPct`,`StartRecoveryCategory`,`StartRecoveryTime`,`MaxTargetLevel`,`SpellClassSet`,`SpellClassMask_1`,`SpellClassMask_2`,`SpellClassMask_3`,`MaxTargets`,`DefenseType`,`PreventionType`,`StanceBarOrder`,`EffectChainAmplitude_1`,`EffectChainAmplitude_2`,`EffectChainAmplitude_3`,`MinFactionID`,`MinReputation`,`RequiredAuraVision`,`RequiredTotemCategoryID_1`,`RequiredTotemCategoryID_2`,`RequiredAreasID`,`SchoolMask`,`RuneCostID`,`SpellMissileID`,`PowerDisplayID`,`EffectBonusMultiplier_1`,`EffectBonusMultiplier_2`,`EffectBonusMultiplier_3`,`SpellDescriptionVariableID`,`SpellDifficultyID`) VALUES
(90001,0,0,0,8388864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,101,0,0,0,0,21,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,28,0,0,1,0,0,0,0,0,4,0,0,0,0,0,18,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,351083,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7626,0,1,0,0,'Summon Corpse Scarabs (5)','','','','','','','','','','','','','','','',16712190,'','','','','','','','','','','','','','','','',16712172,'','','','','','','','','','','','','','','','',16712188,'','','','','','','','','','','','','','','','',16712188,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0), # 29105 - Corpse Scarabs (5)
(90002,0,0,0,8388864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,101,0,0,0,0,21,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,28,0,0,1,0,0,0,0,0,9,0,0,0,0,0,18,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,351083,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7626,0,1,0,0,'Summon Corpse Scarabs (10)','','','','','','','','','','','','','','','',16712190,'','','','','','','','','','','','','','','','',16712172,'','','','','','','','','','','','','','','','',16712188,'','','','','','','','','','','','','','','','',16712188,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0); # 28864 - Corpse Scarabs (10

View File

@@ -35,13 +35,19 @@ enum GuardSays
enum Spells enum Spells
{ {
SPELL_IMPALE_10 = 28783, SPELL_IMPALE = 28783,
SPELL_LOCUST_SWARM_10 = 28785, SPELL_LOCUST_SWARM = 28785,
SPELL_SUMMON_CORPSE_SCRABS_5 = 29105, SPELL_SUMMON_CORPSE_SCRABS_5 = 90001, // Changed from 29105 to Level 60 Mob ID for summon
SPELL_SUMMON_CORPSE_SCRABS_10 = 28864, SPELL_SUMMON_CORPSE_SCRABS_10 = 90002, // Changed from 29105 to Level 60 Mob ID for summon
SPELL_BERSERK = 26662 SPELL_BERSERK = 26662
}; };
enum SpellValues : int32
{
IMPALE_BP1 = 3937,
IMPALE_BP2 = 299
};
enum Events enum Events
{ {
EVENT_IMPALE = 1, EVENT_IMPALE = 1,
@@ -219,13 +225,15 @@ public:
case EVENT_IMPALE: case EVENT_IMPALE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
{ {
me->CastSpell(target, SPELL_IMPALE_10, false); int32 bp1 = IMPALE_BP1;
int32 bp2 = IMPALE_BP2;
me->CastCustomSpell(target, SPELL_IMPALE, 0, &bp1, &bp2, false, nullptr, nullptr, ObjectGuid::Empty);
} }
events.RepeatEvent(20000); events.RepeatEvent(20000);
break; break;
case EVENT_LOCUST_SWARM: case EVENT_LOCUST_SWARM:
Talk(EMOTE_LOCUST); Talk(EMOTE_LOCUST);
me->CastSpell(me, SPELL_LOCUST_SWARM_10, false); me->CastSpell(me, SPELL_LOCUST_SWARM, false);
events.ScheduleEvent(EVENT_SPAWN_GUARD, 3000); events.ScheduleEvent(EVENT_SPAWN_GUARD, 3000);
events.RepeatEvent(90000); events.RepeatEvent(90000);
break; break;

View File

@@ -33,12 +33,22 @@ enum Yells
enum Spells enum Spells
{ {
SPELL_POISON_BOLT_VOLLEY_10 = 28796, SPELL_POISON_BOLT_VOLLEY = 28796,
SPELL_RAIN_OF_FIRE_10 = 28794, SPELL_RAIN_OF_FIRE = 28794,
SPELL_FRENZY_10 = 28798, SPELL_FRENZY = 28798,
SPELL_WIDOWS_EMBRACE = 28732 SPELL_WIDOWS_EMBRACE = 28732
}; };
enum SpellValues : int32
{
POISON_BOLT_VOLLEY_BP0 = 1224,
POISON_BOLT_VOLLEY_BP1 = 416,
RAIN_OF_FIRE_BP0 = 1849,
FRENZY_BP0 = 149,
FRENZY_BP1 = 74,
FRENZY_BP2 = 49
};
enum Events enum Events
{ {
EVENT_POISON_BOLT = 1, EVENT_POISON_BOLT = 1,
@@ -194,23 +204,33 @@ public:
case EVENT_POISON_BOLT: case EVENT_POISON_BOLT:
if (!me->HasAura(SPELL_WIDOWS_EMBRACE)) if (!me->HasAura(SPELL_WIDOWS_EMBRACE))
{ {
me->CastCustomSpell(SPELL_POISON_BOLT_VOLLEY_10, SPELLVALUE_MAX_TARGETS, 10, me, false); CustomSpellValues values;
int32 bp0 = POISON_BOLT_VOLLEY_BP0;
int32 bp1 = POISON_BOLT_VOLLEY_BP1;
values.AddSpellMod(SPELLVALUE_MAX_TARGETS, 10);
values.AddSpellMod(SPELLVALUE_BASE_POINT0, bp0);
values.AddSpellMod(SPELLVALUE_BASE_POINT1, bp1);
me->CastCustomSpell(SPELL_POISON_BOLT_VOLLEY, values, me, TRIGGERED_NONE, nullptr, nullptr, ObjectGuid::Empty);
} }
events.RepeatEvent(urand(7000, 12000)); events.RepeatEvent(urand(7000, 12000));
break; break;
case EVENT_RAIN_OF_FIRE: case EVENT_RAIN_OF_FIRE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
{ {
me->CastSpell(target, SPELL_RAIN_OF_FIRE_10, false); int32 bp0 = RAIN_OF_FIRE_BP0;
me->CastCustomSpell(target, SPELL_RAIN_OF_FIRE, &bp0, 0, 0, false, nullptr, nullptr, ObjectGuid::Empty);
} }
events.RepeatEvent(urand(8000, 12000)); events.RepeatEvent(urand(8000, 12000));
break; break;
case EVENT_FRENZY: case EVENT_FRENZY:
if (!me->HasAura(SPELL_FRENZY_10)) if (!me->HasAura(SPELL_FRENZY))
{ {
Talk(SAY_FRENZY); Talk(SAY_FRENZY);
Talk(EMOTE_FRENZY); Talk(EMOTE_FRENZY);
me->CastSpell(me, SPELL_FRENZY_10, true); int32 bp0 = FRENZY_BP0;
int32 bp1 = FRENZY_BP1;
int32 bp2 = FRENZY_BP2;
me->CastCustomSpell(me, SPELL_FRENZY, &bp0, &bp1, &bp2, true, nullptr, nullptr, ObjectGuid::Empty);
events.RepeatEvent(60000); events.RepeatEvent(60000);
} }
else else
@@ -227,9 +247,9 @@ public:
if (spell->Id == SPELL_WIDOWS_EMBRACE) if (spell->Id == SPELL_WIDOWS_EMBRACE)
{ {
Talk(EMOTE_WIDOWS_EMBRACE); Talk(EMOTE_WIDOWS_EMBRACE);
if (me->HasAura(SPELL_FRENZY_10)) if (me->HasAura(SPELL_FRENZY))
{ {
me->RemoveAurasDueToSpell(SPELL_FRENZY_10); me->RemoveAurasDueToSpell(SPELL_FRENZY);
events.RescheduleEvent(EVENT_FRENZY, 60000); events.RescheduleEvent(EVENT_FRENZY, 60000);
} }
pInstance->SetData(DATA_FRENZY_REMOVED, 0); pInstance->SetData(DATA_FRENZY_REMOVED, 0);