Skip to content

Commit 462447d

Browse files
author
Github Actions
committed
Merge 3.3.5-base_patch to 3.3.5-passive_anticheat
2 parents c701cbb + fd5c3cc commit 462447d

File tree

2 files changed

+150
-0
lines changed

2 files changed

+150
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_bem_q10720_poison_keg';
2+
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_bem_coax_marmot';
3+
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_bem_charm_rexxars_rodent';
4+
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
5+
(38629, 'spell_bem_q10720_poison_keg'),
6+
(38544, 'spell_bem_coax_marmot'),
7+
(38586, 'spell_bem_charm_rexxars_rodent');
8+
9+
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=38629;
10+
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
11+
(13, 1, 38629, 0, 0, 31, 0, 3, 22356, 0, 0, 0, 0, '', 'Poison Keg Targets [DND]Green Spot Grog Keg Credit'),
12+
(13, 1, 38629, 0, 1, 31, 0, 3, 22367, 0, 0, 0, 0, '', 'Poison Keg Targets [DND]Ripe Moonshine Keg Credit'),
13+
(13, 1, 38629, 0, 2, 31, 0, 3, 22368, 0, 0, 0, 0, '', 'Poison Keg Targets [DND]Fermented Seed Beer Keg Credit');
14+
15+
UPDATE `creature_template` SET `ScriptName`='npc_q10720_keg_credit' WHERE `entry` IN (22356,22367,22368);
16+
UPDATE `creature_template` SET `ScriptName`='npc_q10720_marmot' WHERE `entry`=22189;
17+
18+
UPDATE `creature_template` SET `AIName`='' WHERE `entry`=20330;
19+
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=20330;

src/server/scripts/Outland/zone_blades_edge_mountains.cpp

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ EndContentData */
3030
#include "ScriptMgr.h"
3131
#include "CellImpl.h"
3232
#include "CreatureAIImpl.h"
33+
#include "DBCStores.h"
3334
#include "GameObjectAI.h"
3435
#include "GridNotifiersImpl.h"
3536
#include "MotionMaster.h"
@@ -1069,6 +1070,131 @@ class spell_bem_wicked_strong_fetish : public SpellScript
10691070
}
10701071
};
10711072

1073+
enum TheSmallestCreature
1074+
{
1075+
SPELL_CHARM_REXXARS_RODENT = 38586,
1076+
SPELL_COAX_MARMOT = 38544,
1077+
SPELL_STEALTH_MARMOT = 42347,
1078+
SPELL_GREEN_EYE_GROG_CREDIT = 38996,
1079+
SPELL_RIPE_MOONSHINE_CREDIT = 38997,
1080+
SPELL_FERMENTED_SEED_BEER_CREDIT = 38998,
1081+
1082+
NPC_MARMOT = 22189,
1083+
NPC_GREEN_SPOT_GROG_KEG_CREDIT = 22356,
1084+
NPC_RIPE_MOONSHINE_KEG_CREDIT = 22367,
1085+
NPC_FERMENTED_SEED_BEER_KEG_CREDIT = 22368
1086+
};
1087+
1088+
struct npc_q10720_keg_credit : public ScriptedAI
1089+
{
1090+
npc_q10720_keg_credit(Creature * creature) : ScriptedAI(creature)
1091+
{
1092+
// Neccessary hack to allow spell 38629 to hit the keg credit (visibility is checked against the summoner, not the caster)
1093+
creature->m_invisibilityDetect.AddFlag(INVISIBILITY_UNK4);
1094+
}
1095+
};
1096+
1097+
struct npc_q10720_marmot : public ScriptedAI
1098+
{
1099+
using ScriptedAI::ScriptedAI;
1100+
1101+
void IsSummonedBy(WorldObject* summoner) override
1102+
{
1103+
summoner->CastSpell(me, SPELL_CHARM_REXXARS_RODENT, true);
1104+
}
1105+
};
1106+
1107+
// 38544 - Coax Marmot
1108+
class spell_bem_coax_marmot : public AuraScript
1109+
{
1110+
PrepareAuraScript(spell_bem_coax_marmot);
1111+
1112+
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
1113+
{
1114+
// prevent loading the aura from db
1115+
if (GetTarget()->GetCharmedGUID().IsEmpty())
1116+
Remove();
1117+
}
1118+
1119+
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
1120+
{
1121+
if (Creature* marmot = Object::ToCreature(GetTarget()->GetCharmed()))
1122+
if (marmot->GetUInt32Value(UNIT_CREATED_BY_SPELL) == SPELL_COAX_MARMOT)
1123+
marmot->DespawnOrUnsummon();
1124+
}
1125+
1126+
void Register() override
1127+
{
1128+
AfterEffectApply += AuraEffectApplyFn(spell_bem_coax_marmot::HandleEffectApply, EFFECT_1, SPELL_AURA_MOD_INVISIBILITY, AURA_EFFECT_HANDLE_REAL);
1129+
AfterEffectRemove += AuraEffectApplyFn(spell_bem_coax_marmot::HandleEffectRemove, EFFECT_1, SPELL_AURA_MOD_INVISIBILITY, AURA_EFFECT_HANDLE_REAL);
1130+
}
1131+
};
1132+
1133+
// 38586 - [DND]Charm Rexxar's Rodent
1134+
class spell_bem_charm_rexxars_rodent : public AuraScript
1135+
{
1136+
PrepareAuraScript(spell_bem_charm_rexxars_rodent);
1137+
1138+
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
1139+
{
1140+
if (Unit* caster = GetCaster())
1141+
caster->RemoveAurasDueToSpell(SPELL_COAX_MARMOT);
1142+
1143+
if (Creature* creature = GetTarget()->ToCreature())
1144+
creature->DespawnOrUnsummon(1ms);
1145+
}
1146+
1147+
void Register() override
1148+
{
1149+
AfterEffectRemove += AuraEffectRemoveFn(spell_bem_charm_rexxars_rodent::OnRemove, EFFECT_0, SPELL_AURA_MOD_POSSESS, AURA_EFFECT_HANDLE_REAL);
1150+
}
1151+
};
1152+
1153+
// 38629 - Poison Keg
1154+
class spell_bem_q10720_poison_keg : public SpellScript
1155+
{
1156+
PrepareSpellScript(spell_bem_q10720_poison_keg);
1157+
1158+
bool Validate(SpellInfo const* /*spellEntry*/) override
1159+
{
1160+
return ValidateSpellInfo(
1161+
{
1162+
SPELL_GREEN_EYE_GROG_CREDIT,
1163+
SPELL_RIPE_MOONSHINE_CREDIT,
1164+
SPELL_FERMENTED_SEED_BEER_CREDIT
1165+
});
1166+
}
1167+
1168+
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
1169+
{
1170+
if (Player* player = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself())
1171+
{
1172+
uint32 spellId = 0;
1173+
switch (GetHitUnit()->GetEntry())
1174+
{
1175+
case NPC_GREEN_SPOT_GROG_KEG_CREDIT:
1176+
spellId = SPELL_GREEN_EYE_GROG_CREDIT;
1177+
break;
1178+
case NPC_RIPE_MOONSHINE_KEG_CREDIT:
1179+
spellId = SPELL_RIPE_MOONSHINE_CREDIT;
1180+
break;
1181+
case NPC_FERMENTED_SEED_BEER_KEG_CREDIT:
1182+
spellId = SPELL_FERMENTED_SEED_BEER_CREDIT;
1183+
break;
1184+
default:
1185+
return;
1186+
}
1187+
1188+
player->CastSpell(nullptr, spellId, true);
1189+
}
1190+
}
1191+
1192+
void Register() override
1193+
{
1194+
OnEffectHitTarget += SpellEffectFn(spell_bem_q10720_poison_keg::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
1195+
}
1196+
};
1197+
10721198
void AddSC_blades_edge_mountains()
10731199
{
10741200
new npc_nether_drake();
@@ -1080,4 +1206,9 @@ void AddSC_blades_edge_mountains()
10801206
new spell_oscillating_field();
10811207
RegisterSpellScript(spell_bem_dispelling_analysis);
10821208
RegisterSpellScript(spell_bem_wicked_strong_fetish);
1209+
RegisterCreatureAI(npc_q10720_keg_credit);
1210+
RegisterCreatureAI(npc_q10720_marmot);
1211+
RegisterSpellScript(spell_bem_coax_marmot);
1212+
RegisterSpellScript(spell_bem_charm_rexxars_rodent);
1213+
RegisterSpellScript(spell_bem_q10720_poison_keg);
10831214
}

0 commit comments

Comments
 (0)