void JustDied(Unit* Killer) { if (pInstance) { switch(me->GetEntry()) { case SH_AELMAR: SetInstanceData(TYPE_SH_AELMAR, 2); break; case SH_CATHELA: SetInstanceData(TYPE_SH_CATHELA, 2); break; case SH_GREGOR: SetInstanceData(TYPE_SH_GREGOR, 2); break; case SH_NEMAS: SetInstanceData(TYPE_SH_NEMAS, 2); break; case SH_VICAR: SetInstanceData(TYPE_SH_VICAR, 2); break; } if (pInstance->GetData(TYPE_SH_QUEST) && Killer->GetTypeId() == TYPEID_PLAYER) ((Player*)Killer)->KilledMonsterCredit(SH_QUEST_CREDIT,me->GetGUID()); } }
void OnCreatureDeath(Creature* pVictim, Unit* pKiller) { EncounterMap::iterator Iter = mEncounters.find(pVictim->GetEntry()); if(Iter == mEncounters.end()) return; (*Iter).second.mState = State_Finished; GameObject* pDoors = NULL; GameObject* pAltar = NULL; switch(pVictim->GetEntry()) { case CN_MOORABI: { SetInstanceData(Data_EncounterState, CN_MOORABI, State_Finished); if(pAltar = GetGameObjectByGuid(mMoorabiAltarGUID)) pAltar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNCLICKABLE); if(mInstance->iInstanceMode != MODE_HEROIC) return; if(pDoors = GetGameObjectByGuid(mEckDoorsGUID)) pDoors->SetState(GAMEOBJECT_STATE_OPEN); } break; case CN_GAL_DARAH: { SetInstanceData(Data_EncounterState, CN_GAL_DARAH, State_Finished); if(pDoors = GetGameObjectByGuid(mDoor1GUID)) pDoors->SetState(GAMEOBJECT_STATE_OPEN); if(pDoors = GetGameObjectByGuid(mDoor2GUID)) pDoors->SetState(GAMEOBJECT_STATE_OPEN); } break; case CN_SLADRAN: { SetInstanceData(Data_EncounterState, CN_SLADRAN, State_Finished); if(pAltar = GetGameObjectByGuid(mSladranAltarGUID)) pAltar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNCLICKABLE); } break; case CN_DRAKKARI_COLOSSUS: { SetInstanceData(Data_EncounterState, CN_DRAKKARI_COLOSSUS, State_Finished); if(pAltar = GetGameObjectByGuid(mColossusAltarGUID)) pAltar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNCLICKABLE); } break; case CN_ECK: SetInstanceData(Data_EncounterState, CN_ECK, State_Finished); break; } }
void OnCreatureDeath(Creature* pVictim, Unit* pKiller) { EncounterMap::iterator Iter = mEncounters.find(pVictim->GetEntry()); if(Iter == mEncounters.end()) return; (*Iter).second.mState = State_Finished; GameObject* pDoors = NULL; switch(pVictim->GetEntry()) { case CN_GENERAL_BJARNGRIM: { SetInstanceData(Data_EncounterState, CN_GENERAL_BJARNGRIM, State_Finished); pDoors = GetGameObjectByGuid(mGeneralDoorsGUID); if(pDoors) pDoors->SetState(0); } break; case CN_VOLKHAN: { SetInstanceData(Data_EncounterState, CN_VOLKHAN, State_Finished); pDoors = GetGameObjectByGuid(mVolkhanDoorsGUID); if(pDoors) pDoors->SetState(0); } break; case CN_LOKEN: { SetInstanceData(Data_EncounterState, CN_LOKEN, State_Finished); pDoors = GetGameObjectByGuid(mLokenDoorsGUID); if(pDoors) pDoors->SetState(0); } break; case CN_IONAR: { SetInstanceData(Data_EncounterState, CN_IONAR, State_Finished); pDoors = GetGameObjectByGuid(mIonarDoors1GUID); if(pDoors) pDoors->SetState(0); pDoors = GetGameObjectByGuid(mIonarDoors2GUID); if(pDoors) pDoors->SetState(0); } break; }; };
void JustDied(Unit *victim) { if (pInstance) { SetInstanceData(TYPE_JARAXXUS, DONE); Speak(CHAT_TYPE_SAY,16147,"Un autre prendra ma place. Votre monde est condamné."); if (Creature* Ann = ((Creature*)Unit::GetUnit(*me, pInstance ? pInstance->GetData64(DATA_ANNOUNCER) : 0))) ((npc_toc10_announcerAI*)Ann->AI())->StartEvent(NULL,EVENT_TYPE_JARAXXUS_OUTRO); } switch(m_difficulty) { case RAID_DIFFICULTY_10MAN_NORMAL: GiveEmblemsToGroup(CONQUETE,2); break; case RAID_DIFFICULTY_25MAN_NORMAL: GiveEmblemsToGroup(TRIOMPHE,2); break; case RAID_DIFFICULTY_10MAN_HEROIC: GiveEmblemsToGroup(TRIOMPHE,3); break; case RAID_DIFFICULTY_25MAN_HEROIC: GiveEmblemsToGroup(TRIOMPHE,3); break; } me->ForcedDespawn(TEN_MINS*1000); }
void Aggro(Unit* who) { DoScriptText(SAY_EVIL_AGGRO, me); if (pInstance) SetInstanceData(TYPE_KALECGOS, IN_PROGRESS); }
void JustDied(Unit *victim) { DoScriptText(SAY_DEATH, me); if (pInstance) SetInstanceData(TYPE_RIFT,DONE); }
void InstanceSave::InsertToDB() { std::string data; uint32 completedEncounters = 0; Map* map = sMapMgr->FindMap(GetMapId(), m_instanceid); if (map) { ASSERT(map->IsDungeon()); if (InstanceScript* instanceScript = map->ToInstanceMap()->GetInstanceScript()) { data = instanceScript->GetSaveData(); completedEncounters = instanceScript->GetCompletedEncounterMask(); // pussywizard: SetInstanceData(data); SetCompletedEncounterMask(completedEncounters); } } PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_INSTANCE_SAVE); stmt->setUInt32(0, m_instanceid); stmt->setUInt16(1, GetMapId()); stmt->setUInt32(2, uint32(GetResetTimeForDB())); stmt->setUInt8(3, uint8(GetDifficulty())); stmt->setUInt32(4, completedEncounters); stmt->setString(5, data); CharacterDatabase.Execute(stmt); }
void JustDied(Unit* victim) { DoScriptText(SAY_DEATH, me); if (pInstance) SetInstanceData(TYPE_MOROES, DONE); DeSpawnAdds(); //remove aura from spell Garrote when Moroes dies Map *map = me->GetMap(); if (map->IsDungeon()) { Map::PlayerList const &PlayerList = map->GetPlayers(); if (PlayerList.isEmpty()) return; for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_GARROTE,0)) i->getSource()->RemoveAurasDueToSpell(SPELL_GARROTE); } } }
void JustDied(Unit* pKiller) { DoScriptText(YELL_DEATH, me); if (pInstance) SetInstanceData(TYPE_BRUTALLUS, DONE); }
void WaypointReached(uint32 i) { switch(i) { case 0: DoScriptText(-1000000, me);//2 CanWalk = false; Event_Timer = 5000; break; case 1: DoScriptText(-1000000, me);//4 CanWalk = false; Event_Timer = 5000; break; case 2: CanWalk = false; break; case 3: DoScriptText(-1000000, me);//5 break; case 4: DoScriptText(-1000000, me);//6 CanWalk = false; Event_Timer = 5000; break; case 5: if (pInstance) { SetInstanceData(TYPE_RING_OF_LAW,DONE); debug_log("SD2: npc_grimstone: event reached end and set complete."); } break; } }
void JustDied(Unit* Killer) { Tasks.CleanMyAdds(); if (pInstance) SetInstanceData(TYPE_GROBBULUS, DONE); GiveEmblemsToGroup((m_bIsHeroic) ? VAILLANCE : HEROISME); }
void Aggro(Unit* pWho) { DoScriptText(YELL_AGGRO, me); if (pInstance) SetInstanceData(TYPE_BRUTALLUS, IN_PROGRESS); }
void JustDied(Unit *victim) { if (pInstance) SetInstanceData(TYPE_BLOODBOIL, DONE); DoScriptText(SAY_DEATH, me); }
void JustDied(Unit *victim) { if (pInstance) SetInstanceData(TYPE_FREYA, DONE); Say(15531,"Son emprise sur moi se dissipe. J'y vois de nouveau clair. Merci, héros"); uint8 TreeAlive = 0; if(Creature* IronBranch = GetInstanceCreature(DATA_FREYA_ANCIENT_1)) if(IronBranch->isAlive()) TreeAlive++; if(Creature* BrightLeaf = GetInstanceCreature(DATA_FREYA_ANCIENT_2)) if(BrightLeaf->isAlive()) TreeAlive++; if(Creature* StoneBark = GetInstanceCreature(DATA_FREYA_ANCIENT_3)) if(StoneBark->isAlive()) TreeAlive++; switch(TreeAlive) { case 1: pInstance->CompleteAchievementForGroup(m_difficulty ? 3185 : 3177); break; case 2: pInstance->CompleteAchievementForGroup(m_difficulty ? 3186 : 3178); break; case 3: pInstance->CompleteAchievementForGroup(m_difficulty ? 3187 : 3179); break; default: break; } GiveEmblemsToGroup((m_difficulty) ? CONQUETE : VAILLANCE); }
void JustDied(Unit* Killer) { DoScriptText(SAY_DEATH, me); if (pInstance) SetInstanceData(TYPE_THEKAL, DONE); }
void Aggro(Unit* pWho) { DoScriptText(SAY_AGGRO, me); me->SetInCombatWithZone(); if (pInstance) SetInstanceData(TYPE_VOIDREAVER, IN_PROGRESS); }
void Aggro(Unit* pWho) { if (pInstance) SetInstanceData(TYPE_ROTFACE, IN_PROGRESS); Yell(16986,"Ouiiiiiiiiiii ! Hahahaha !"); me->SetInCombatWithZone(); }
void JustDied(Unit* killer) { DoScriptText(SAY_DEATH, me); if (pInstance) SetInstanceData(DATA_DRAKOS_EVENT, DONE); // GiveEmblemsToGroup(m_bIsHeroic ? HEROISME : 0,1,true); }
void StartEvent() { if (!pInstance) return; if (pInstance) SetInstanceData(TYPE_MOROES, IN_PROGRESS); }
void JustDied(Unit* Killer) { for(uint8 i = 0; i < 30; ++i) me->SummonCreature(C_MINDLESS_UNDEAD,3969.35,-3391.87,119.11,5.91,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,1800000); if (pInstance) SetInstanceData(TYPE_RAMSTEIN,DONE); }
void Aggro(Unit* pWho) { me->SetInCombatWithZone(); if (pInstance) SetInstanceData(TYPE_JARAXXUS, IN_PROGRESS); Yell(16144,"Devant vous se tient Jaraxxus seigneur Eredar de la Légion Ardente !"); }
void JustDied(Unit* Killer) { DoScriptText(SAY_DEATH, me); if (!pInstance) return; SetInstanceData(TYPE_NALORAKK, DONE); }
void Aggro(Unit* pWho) { if (!pInstance) return; if (pInstance->GetData(TYPE_BLACK_KNIGHT) == DONE) me->ForcedDespawn(); else SetInstanceData(TYPE_BLACK_KNIGHT, IN_PROGRESS); }
void KilledUnit(Unit *victim) { if(urand(0,1)) Speak(CHAT_TYPE_SAY,16145,"Cafard insignifiant !"); else Speak(CHAT_TYPE_SAY,16146,"Banni, au néant !"); if(victim->GetTypeId() == TYPEID_PLAYER) SetInstanceData(TYPE_TRY,1); }
void Aggro(Unit *who) { me->SetInCombatWithZone(); DoScriptText(SAY_AGGRO, me); if (pInstance) SetInstanceData(TYPE_BLOODBOIL, IN_PROGRESS); }
void JustDied(Unit *killer) { if (InstanceData* pInstance = me->GetInstanceData()) { SetInstanceData(TYPE_THEOLEN, DONE); if (pInstance->GetData(TYPE_GANDLING) == SPECIAL) me->SummonCreature(1853, 180.73, -9.43856, 75.507, 1.61399, TEMPSUMMON_DEAD_DESPAWN, 0); } }
void StartRageGen(Unit *caster) { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); DoCastMe(SPELL_WARLORDS_RAGE_NAGA,true); if (pInstance) SetInstanceData(TYPE_DISTILLER,IN_PROGRESS); }
void hyjalAI::Retreat() { //this will trigger ancient gem respawn if (pInstance) SetInstanceData(TYPE_RETREAT, SPECIAL); DoCastMe( SPELL_MASS_TELEPORT); m_bIsRetreating = true; }
void JustDied(Unit* killer) { if (pInstance) { if (pInstance->GetData(DATA_BUG_TRIO_DEATH) < 2) // Unlootable if death me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); SetInstanceData(DATA_BUG_TRIO_DEATH, 1); } }
void hyjalAI::Reset() { // GUIDs m_uiBossGUID[0] = 0; m_uiBossGUID[1] = 0; // Timers m_uiNextWaveTimer = 10000; m_uiWaveMoveTimer = 15000; m_uiCheckTimer = 0; m_uiRetreatTimer = 25000; // Misc m_uiWaveCount = 0; m_uiEnemyCount = 0; // Set base area based on creature entry switch(me->GetEntry()) { case NPC_JAINA: m_uiBase = BASE_ALLY; DoCastMe( SPELL_BRILLIANCE_AURA, true); break; case NPC_THRALL: m_uiBase = BASE_HORDE; break; } // Bools m_bIsEventInProgress = false; m_bIsSummoningWaves = false; m_bIsRetreating = false; m_bDebugMode = false; // Flags me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); // Reset World States pInstance->DoUpdateWorldState(WORLD_STATE_WAVES, 0); pInstance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); pInstance->DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, 0); if (!pInstance) return; m_bIsFirstBossDead = m_uiBase ? pInstance->GetData(TYPE_KAZROGAL) : pInstance->GetData(TYPE_WINTERCHILL); m_bIsSecondBossDead = m_uiBase ? pInstance->GetData(TYPE_AZGALOR) : pInstance->GetData(TYPE_ANETHERON); // Reset Instance Data for trash count SetInstanceData(DATA_RESET_TRASH_COUNT, 0); }