Merge remote-tracking branch 'origin/master' into 4.3.4

Conflicts:
	dep/PackageList.txt
	src/server/game/Battlegrounds/Battleground.cpp
	src/server/game/Combat/ThreatManager.cpp
	src/server/game/Entities/Object/Object.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Unit/Unit.cpp
	src/server/game/Handlers/BattleGroundHandler.cpp
	src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
	src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
	src/server/game/Movement/Spline/MoveSplineInit.cpp
	src/server/game/Spells/Auras/SpellAuraEffects.cpp
	src/server/game/Spells/SpellEffects.cpp
	src/server/game/World/World.cpp
	src/server/game/World/World.h
	src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
	src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
	src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
	src/server/scripts/Spells/spell_druid.cpp
	src/server/scripts/Spells/spell_mage.cpp
	src/server/scripts/Spells/spell_paladin.cpp
	src/server/scripts/Spells/spell_priest.cpp
	src/server/scripts/Spells/spell_rogue.cpp
	src/server/scripts/Spells/spell_shaman.cpp
	src/server/scripts/Spells/spell_warlock.cpp
	src/server/scripts/Spells/spell_warrior.cpp
	src/tools/map_extractor/CMakeLists.txt
	src/tools/map_extractor/System.cpp
	src/tools/map_extractor/loadlib.cpp
	src/tools/map_extractor/mpq_libmpq.cpp
	src/tools/map_extractor/mpq_libmpq04.h
	src/tools/vmap4_assembler/CMakeLists.txt
	src/tools/vmap4_extractor/CMakeLists.txt
	src/tools/vmap4_extractor/mpq_libmpq.cpp
	src/tools/vmap4_extractor/mpq_libmpq04.h
This commit is contained in:
Nay committed 2013-01-28 01:04:37 +00:00
commit b404e0bec1
274 files changed
+28968 -2768

No files matched your search

+335
View File
@@ -72,6 +72,97 @@ class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
}
};
// 28764 - Adaptive Warding (Frostfire Regalia Set)
enum AdaptiveWarding
{
SPELL_GEN_ADAPTIVE_WARDING_FIRE = 28765,
SPELL_GEN_ADAPTIVE_WARDING_NATURE = 28768,
SPELL_GEN_ADAPTIVE_WARDING_FROST = 28766,
SPELL_GEN_ADAPTIVE_WARDING_SHADOW = 28769,
SPELL_GEN_ADAPTIVE_WARDING_ARCANE = 28770
};
class spell_gen_adaptive_warding : public SpellScriptLoader
{
public:
spell_gen_adaptive_warding() : SpellScriptLoader("spell_gen_adaptive_warding") { }
class spell_gen_adaptive_warding_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_adaptive_warding_AuraScript);
bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_FIRE) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_NATURE) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_FROST) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_SHADOW) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_ARCANE))
return false;
return true;
}
bool CheckProc(ProcEventInfo& eventInfo)
{
if (eventInfo.GetDamageInfo()->GetSpellInfo()) // eventInfo.GetSpellInfo()
return false;
// find Mage Armor
if (!GetTarget()->GetAuraEffect(SPELL_AURA_MOD_MANA_REGEN_INTERRUPT, SPELLFAMILY_MAGE, 0x10000000, 0x0, 0x0))
return false;
switch (GetFirstSchoolInMask(eventInfo.GetSchoolMask()))
{
case SPELL_SCHOOL_NORMAL:
case SPELL_SCHOOL_HOLY:
return false;
default:
break;
}
return true;
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
uint32 spellId = 0;
switch (GetFirstSchoolInMask(eventInfo.GetSchoolMask()))
{
case SPELL_SCHOOL_FIRE:
spellId = SPELL_GEN_ADAPTIVE_WARDING_FIRE;
break;
case SPELL_SCHOOL_NATURE:
spellId = SPELL_GEN_ADAPTIVE_WARDING_NATURE;
break;
case SPELL_SCHOOL_FROST:
spellId = SPELL_GEN_ADAPTIVE_WARDING_FROST;
break;
case SPELL_SCHOOL_SHADOW:
spellId = SPELL_GEN_ADAPTIVE_WARDING_SHADOW;
break;
case SPELL_SCHOOL_ARCANE:
spellId = SPELL_GEN_ADAPTIVE_WARDING_ARCANE;
break;
default:
return;
}
GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff);
}
void Register()
{
DoCheckProc += AuraCheckProcFn(spell_gen_adaptive_warding_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_gen_adaptive_warding_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const
{
return new spell_gen_adaptive_warding_AuraScript();
}
};
// 41337 Aura of Anger
class spell_gen_aura_of_anger : public SpellScriptLoader
{
@@ -226,6 +317,245 @@ class spell_gen_cannibalize : public SpellScriptLoader
}
};
// 63845 - Create Lance
enum CreateLanceSpells
{
SPELL_CREATE_LANCE_ALLIANCE = 63914,
SPELL_CREATE_LANCE_HORDE = 63919
};
class spell_gen_create_lance : public SpellScriptLoader
{
public:
spell_gen_create_lance() : SpellScriptLoader("spell_gen_create_lance") { }
class spell_gen_create_lance_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_create_lance_SpellScript);
bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_ALLIANCE) || !sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_HORDE))
return false;
return true;
}
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
if (Player* target = GetHitPlayer())
{
if (target->GetTeam() == ALLIANCE)
GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_ALLIANCE, true);
else
GetCaster()->CastSpell(target, SPELL_CREATE_LANCE_HORDE, true);
}
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_gen_create_lance_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_gen_create_lance_SpellScript();
}
};
// 28702 - Netherbloom
enum Netherbloom
{
SPELL_NETHERBLOOM_POLLEN_1 = 28703
};
class spell_gen_netherbloom : public SpellScriptLoader
{
public:
spell_gen_netherbloom() : SpellScriptLoader("spell_gen_netherbloom") { }
class spell_gen_netherbloom_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_netherbloom_SpellScript);
bool Validate(SpellInfo const* /*spellInfo*/)
{
for (uint8 i = 0; i < 5; ++i)
if (!sSpellMgr->GetSpellInfo(SPELL_NETHERBLOOM_POLLEN_1 + i))
return false;
return true;
}
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
if (Unit* target = GetHitUnit())
{
// 25% chance of casting a random buff
if (roll_chance_i(75))
return;
// triggered spells are 28703 to 28707
// Note: some sources say, that there was the possibility of
// receiving a debuff. However, this seems to be removed by a patch.
// don't overwrite an existing aura
for (uint8 i = 0; i < 5; ++i)
if (target->HasAura(SPELL_NETHERBLOOM_POLLEN_1 + i))
return;
target->CastSpell(target, SPELL_NETHERBLOOM_POLLEN_1 + urand(0, 4), true);
}
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_gen_netherbloom_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_gen_netherbloom_SpellScript();
}
};
// 28720 - Nightmare Vine
enum NightmareVine
{
SPELL_NIGHTMARE_POLLEN = 28721
};
class spell_gen_nightmare_vine : public SpellScriptLoader
{
public:
spell_gen_nightmare_vine() : SpellScriptLoader("spell_gen_nightmare_vine") { }
class spell_gen_nightmare_vine_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_nightmare_vine_SpellScript);
bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_NIGHTMARE_POLLEN))
return false;
return true;
}
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
if (Unit* target = GetHitUnit())
{
// 25% chance of casting Nightmare Pollen
if (roll_chance_i(25))
target->CastSpell(target, SPELL_NIGHTMARE_POLLEN, true);
}
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_gen_nightmare_vine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_gen_nightmare_vine_SpellScript();
}
};
// 27539 - Obsidian Armor
enum ObsidianArmor
{
SPELL_GEN_OBSIDIAN_ARMOR_HOLY = 27536,
SPELL_GEN_OBSIDIAN_ARMOR_FIRE = 27533,
SPELL_GEN_OBSIDIAN_ARMOR_NATURE = 27538,
SPELL_GEN_OBSIDIAN_ARMOR_FROST = 27534,
SPELL_GEN_OBSIDIAN_ARMOR_SHADOW = 27535,
SPELL_GEN_OBSIDIAN_ARMOR_ARCANE = 27540
};
class spell_gen_obsidian_armor : public SpellScriptLoader
{
public:
spell_gen_obsidian_armor() : SpellScriptLoader("spell_gen_obsidian_armor") { }
class spell_gen_obsidian_armor_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_obsidian_armor_AuraScript);
bool Validate(SpellInfo const* /*spellInfo*/)
{
if (!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_HOLY) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FIRE) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_NATURE) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FROST) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_SHADOW) ||
!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_ARCANE))
return false;
return true;
}
bool CheckProc(ProcEventInfo& eventInfo)
{
if (eventInfo.GetDamageInfo()->GetSpellInfo()) // eventInfo.GetSpellInfo()
return false;
if (GetFirstSchoolInMask(eventInfo.GetSchoolMask()) == SPELL_SCHOOL_NORMAL)
return false;
return true;
}
void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
uint32 spellId = 0;
switch (GetFirstSchoolInMask(eventInfo.GetSchoolMask()))
{
case SPELL_SCHOOL_HOLY:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_HOLY;
break;
case SPELL_SCHOOL_FIRE:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_FIRE;
break;
case SPELL_SCHOOL_NATURE:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_NATURE;
break;
case SPELL_SCHOOL_FROST:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_FROST;
break;
case SPELL_SCHOOL_SHADOW:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_SHADOW;
break;
case SPELL_SCHOOL_ARCANE:
spellId = SPELL_GEN_OBSIDIAN_ARMOR_ARCANE;
break;
default:
return;
}
GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff);
}
void Register()
{
DoCheckProc += AuraCheckProcFn(spell_gen_obsidian_armor_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_gen_obsidian_armor_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const
{
return new spell_gen_obsidian_armor_AuraScript();
}
};
// 45472 Parachute
enum ParachuteSpells
{
@@ -3320,10 +3650,15 @@ class spell_gen_darkflight : public SpellScriptLoader
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
new spell_gen_adaptive_warding();
new spell_gen_aura_of_anger();
new spell_gen_av_drekthar_presence();
new spell_gen_burn_brutallus();
new spell_gen_cannibalize();
new spell_gen_create_lance();
new spell_gen_netherbloom();
new spell_gen_nightmare_vine();
new spell_gen_obsidian_armor();
new spell_gen_parachute();
new spell_gen_pet_summoned();
new spell_gen_remove_flight_auras();