Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // q12261
- enum
- {
- NPC_TOTEM_DEFENSIVE = 27430,
- NPC_SUMMON_DRAKES = 10000, //TODO need entry npc
- QUEST_NO_PLACE_TO_RUN = 12261,
- NPC_KREDIT_DRAKES = 28820
- };
- struct npc_totem_defensiveAI : public ScriptedAI
- {
- npc_totem_defensiveAI(Creature* c) : ScriptedAI(c){}
- uint32 uiPhaseTimer;
- uint8 Phase;
- void Reset()
- {
- Phase = 1;
- uiPhaseTimer = 20000;
- }
- void UpdateAI(const uint32 diff)
- {
- if (uiPhaseTimer <= diff)
- {
- float nx = m_creature->GetPositionX() + irand(5,15);
- float ny = m_creature->GetPositionY() + irand(5,15);
- float nz = m_creature->GetPositionZ();
- switch(Phase)
- {
- case 1:
- if (Creature* pTemp = m_creature->SummonCreature(NPC_SUMMON_DRAKES,nx,ny,nz,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 40000))
- pTemp->AI()->AttackStart(m_creature);
- Phase++;
- uiPhaseTimer = 20000;
- break;
- case 2:
- if (Creature* pTemp = m_creature->SummonCreature(NPC_SUMMON_DRAKES,nx,ny,nz,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 40000))
- pTemp->AI()->AttackStart(m_creature);
- Phase++;
- uiPhaseTimer = 20000;
- break;
- case 3:
- if (Creature* pTemp = m_creature->SummonCreature(NPC_SUMMON_DRAKES,nx,ny,nz,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 40000))
- pTemp->AI()->AttackStart(m_creature);
- Phase++;
- uiPhaseTimer = 20000;
- break;
- case 4:
- if (Creature* pTemp = m_creature->SummonCreature(NPC_SUMMON_DRAKES,nx,ny,nz,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 40000))
- pTemp->AI()->AttackStart(m_creature);
- Phase++;
- uiPhaseTimer = 20000;
- break;
- case 5:
- if (Creature* pTemp = m_creature->SummonCreature(NPC_SUMMON_DRAKES,nx,ny,nz,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 40000))
- pTemp->AI()->AttackStart(m_creature);
- Phase++;
- uiPhaseTimer = 20000;
- break;
- case 6:
- if (m_creature->isSummon())
- if (Unit* pTemp = CAST_SUM(m_creature)->GetSummoner())
- if (pTemp->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(pTemp)->KilledMonsterCredit(NPC_KREDIT_DRAKES, 0);
- m_creature->ForcedDespawn();
- break;
- }
- } else uiPhaseTimer -= diff;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement