Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class spell_darkmoon_firework_achievement: public SpellScriptLoader
- {
- public:
- spell_darkmoon_firework_achievement() : SpellScriptLoader("spell_darkmoon_firework_achievement") { }
- class spell_darkmoon_firework_achievement_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_darkmoon_firework_achievement_SpellScript);
- enum eZoneId
- {
- DalaranLegion = 7202,
- DalaranTLK = 4395,
- Darnassus = 1657,
- Exodar = 3557,
- Ironforge = 1537,
- Shattrath = 3703,
- Stormwind = 1519,
- Silvermoon = 3487,
- Orgrimmar = 1637,
- ThunderBluff = 1638,
- Undercity = 1497
- }
- void HandleScriptEffect(SpellEffIndex /*effIndex*/)
- {
- Unit* caster = GetCaster();
- if(Player* p_Player = caster->ToPlayer())
- {
- uint32 criteriaId = 0;
- switch(p_Player->GetZoneId())
- {
- case eZoneId::DalaranLegion:
- case eZoneId::DalaranTLK:
- criteriaId = p_Player->GetTeam() == HORDE ? 20517 : 20578;
- break;
- case eZoneId::Darnassus:
- criteriaId = 20575;
- break;
- case eZoneId::Exodar:
- criteriaId = 20576;
- break;
- case eZoneId::Ironforge:
- criteriaId = 20574;
- break;
- case eZoneId::Shattrath:
- criteriaId = p_Player->GetTeam() == HORDE ? 20519 : 20577;
- break;
- case eZoneId::Stormwind:
- criteriaId = 20579;
- break;
- case eZoneId::Orgrimmar:
- criteriaId = 20518;
- break;
- case eZoneId::Silvermoon:
- criteriaId = 20521;
- break;
- case eZoneId::ThunderBluff:
- criteriaId = 20520;
- break;
- case eZoneId::Undercity:
- criteriaId = 20522;
- break;
- default:
- break;
- }
- if(criteriaId == 0)
- return;
- if(const AchievementCriteriaEntry* criteria = sAchievementCriteriaStore.LookupEntry(criteriaId))
- {
- p_Player->GetAchievementMgr().SetCriteriaProgress(criteria, 1, p_Player);
- AchievementEntry const *achievement = sAchievementStore.LookupEntry(criteria->referredAchievement);
- if (p_Player->GetAchievementMgr().IsCompletedAchievement(achievement))
- p_Player->GetAchievementMgr().CompletedAchievement(achievement);
- }
- }
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_darkmoon_firework_achievement_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
- SpellScript* GetSpellScript() const override
- {
- return new spell_darkmoon_firework_achievement_SpellScript();
- }
- };
- new spell_darkmoon_firework_achievement();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement