void HandleAchievementCredit(SpellEffIndex /*effIndex*/)
            {
                uint32 _creditSpell = 0;
                Unit* caster = GetOriginalCaster();
                if (!caster)
                    return;

                if (GetSpellInfo()->Id == SPELL_SEAFORIUM_BLAST)
                    _creditSpell = SPELL_A_BOMB_INABLE_CREDIT;
                else if (GetSpellInfo()->Id == SPELL_HUGE_SEAFORIUM_BLAST)
                    _creditSpell = SPELL_A_BOMB_INATION_CREDIT;

                if (GetHitGObj() && GetHitGObj()->IsDestructibleBuilding())
                    caster->CastSpell(caster, _creditSpell, true);
            }
            void HandleActivateObject(SpellEffIndex effIndex)
            {
				PreventHitDefaultEffect(effIndex);
				if (GameObject* go = GetHitGObj())
				{
					go->SetGoState(GO_STATE_ACTIVE);
					if (Map* map = go->GetMap())
					{
                        Map::PlayerList const &PlayerList = map->GetPlayers();
						for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
                            if (i->GetSource())
                            {
                                UpdateData data;
                                WorldPacket pkt;
                                go->BuildValuesUpdateBlockForPlayer(&data, i->GetSource());
                                data.BuildPacket(&pkt);
                                i->GetSource()->GetSession()->SendPacket(&pkt);
                            }
                    }
				}
            }
Exemple #3
0
 void Activate(SpellEffIndex index)
 {
     PreventHitDefaultEffect(index);
     GetHitGObj()->SendCustomAnim(0);
 }
 void Activate(SpellEffIndex index)
 {
     PreventHitDefaultEffect(index);
     GetHitGObj()->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
 }