Violet Hold: Blizzliker portals (merge from ckegg's SD2 patch)
--HG-- branch : trunk
This commit is contained in:
@@ -38,7 +38,7 @@ enum Spells
|
|||||||
SPELL_SPLASH = 59516,
|
SPELL_SPLASH = 59516,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Creatures
|
enum IchoronCreatures
|
||||||
{
|
{
|
||||||
NPC_ICHOR_GLOBULE = 29321,
|
NPC_ICHOR_GLOBULE = 29321,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ enum Spells
|
|||||||
H_SPELL_ZUMARAT_ADD_2 = 59747
|
H_SPELL_ZUMARAT_ADD_2 = 59747
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Creatures
|
enum ZuramatCreatures
|
||||||
{
|
{
|
||||||
CREATURE_VOID_SENTRY = 29364
|
CREATURE_VOID_SENTRY = 29364
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,19 +16,6 @@
|
|||||||
4 - Xevozz
|
4 - Xevozz
|
||||||
5 - Zuramat
|
5 - Zuramat
|
||||||
6 - Cyanigosa */
|
6 - Cyanigosa */
|
||||||
enum Creatures
|
|
||||||
{
|
|
||||||
CREATURE_TELEPORTATION_PORTAL = 31011,
|
|
||||||
CREATURE_XEVOZZ = 29266,
|
|
||||||
CREATURE_LAVANTHOR = 29312,
|
|
||||||
CREATURE_ICHORON = 29313,
|
|
||||||
CREATURE_ZURAMAT = 29314,
|
|
||||||
CREATURE_EREKEM = 29315,
|
|
||||||
CREATURE_EREKEM_GUARD = 29395,
|
|
||||||
CREATURE_MORAGG = 29316,
|
|
||||||
CREATURE_CYANIGOSA = 31134,
|
|
||||||
CREATURE_SINCLARI = 30658
|
|
||||||
};
|
|
||||||
enum GameObjects
|
enum GameObjects
|
||||||
{
|
{
|
||||||
GO_MAIN_DOOR = 191723,
|
GO_MAIN_DOOR = 191723,
|
||||||
@@ -43,6 +30,10 @@ enum GameObjects
|
|||||||
GO_INTRO_ACTIVATION_CRYSTAL = 193615,
|
GO_INTRO_ACTIVATION_CRYSTAL = 193615,
|
||||||
GO_ACTIVATION_CRYSTAL = 193611
|
GO_ACTIVATION_CRYSTAL = 193611
|
||||||
};
|
};
|
||||||
|
enum Spells
|
||||||
|
{
|
||||||
|
SPELL_PORTAL_CHANNEL = 58012
|
||||||
|
};
|
||||||
struct Location
|
struct Location
|
||||||
{
|
{
|
||||||
float x,y,z,orientation;
|
float x,y,z,orientation;
|
||||||
@@ -259,10 +250,17 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
||||||
if (pSinclari)
|
if (pSinclari)
|
||||||
{
|
{
|
||||||
pSinclari->SummonCreature(CREATURE_TELEPORTATION_PORTAL,PortalLocation[uiLocation].x,PortalLocation[uiLocation].y,
|
if (Creature *pPortal = pSinclari->SummonCreature(CREATURE_TELEPORTATION_PORTAL,PortalLocation[uiLocation].x,PortalLocation[uiLocation].y,
|
||||||
PortalLocation[uiLocation].z,PortalLocation[uiLocation].orientation,
|
PortalLocation[uiLocation].z,PortalLocation[uiLocation].orientation,
|
||||||
TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000);
|
TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000))
|
||||||
uiLocation = (++uiLocation)%3;
|
{
|
||||||
|
uint32 entry = urand(0, 1) ? CREATURE_PORTAL_GUARDIAN : CREATURE_PORTAL_KEEPER;
|
||||||
|
if (Creature *pPortalKeeper = pPortal->SummonCreature(entry,PortalLocation[uiLocation].x, PortalLocation[uiLocation].y,
|
||||||
|
PortalLocation[uiLocation].z, PortalLocation[uiLocation].orientation,
|
||||||
|
TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000))
|
||||||
|
pPortal->CastSpell(pPortalKeeper, SPELL_PORTAL_CHANNEL,false);
|
||||||
|
uiLocation = (++uiLocation)%3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,18 @@
|
|||||||
|
|
||||||
#define GOSSIP_START_EVENT "[PH]: Start Event"
|
#define GOSSIP_START_EVENT "[PH]: Start Event"
|
||||||
#define NEXT_WAVE_TIME 90000
|
#define NEXT_WAVE_TIME 90000
|
||||||
#define SPAWN_TIME 9000
|
#define SPAWN_TIME 15000
|
||||||
|
|
||||||
enum Creatures
|
enum PortalCreatures
|
||||||
{
|
{
|
||||||
CREATURE_AZURE_INVADER = 30661,
|
CREATURE_AZURE_INVADER = 30661,
|
||||||
CREATURE_AZURE_SPELLBREAKER = 30662,
|
CREATURE_AZURE_SPELLBREAKER = 30662,
|
||||||
CREATURE_AZURE_BINDER = 30663,
|
CREATURE_AZURE_BINDER = 30663,
|
||||||
CREATURE_AZURE_MAGE_SLAYER = 30664,
|
CREATURE_AZURE_MAGE_SLAYER = 30664,
|
||||||
CREATURE_AZURE_CAPTAIN = 30666
|
CREATURE_AZURE_CAPTAIN = 30666,
|
||||||
|
CREATURE_AZURE_SORCEROR = 30667,
|
||||||
|
CREATURE_AZURE_RAIDER = 30668,
|
||||||
|
CREATURE_AZURE_STALKER = 32191
|
||||||
};
|
};
|
||||||
|
|
||||||
bool GossipHello_npc_sinclari(Player* pPlayer, Creature* pCreature)
|
bool GossipHello_npc_sinclari(Player* pPlayer, Creature* pCreature)
|
||||||
@@ -58,15 +61,27 @@ struct TRINITY_DLL_DECL npc_teleportation_portalAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (uiSpawnTimer <= diff)
|
if (uiSpawnTimer <= diff)
|
||||||
{
|
{
|
||||||
if (Creature* pSummon = m_creature->SummonCreature(RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_SPELLBREAKER,
|
for (uint8 i = 0; i < pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 3 : 4; ++i)
|
||||||
CREATURE_AZURE_BINDER,CREATURE_AZURE_MAGE_SLAYER,CREATURE_AZURE_CAPTAIN),
|
{
|
||||||
|
if (Creature* pSummon = m_creature->SummonCreature(RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_RAIDER,CREATURE_AZURE_STALKER,CREATURE_AZURE_SORCEROR),
|
||||||
m_creature->GetPositionX()+urand(0,2), m_creature->GetPositionY()+urand(0,2),
|
m_creature->GetPositionX()+urand(0,2), m_creature->GetPositionY()+urand(0,2),
|
||||||
m_creature->GetPositionZ(),m_creature->GetOrientation(),
|
m_creature->GetPositionZ(),m_creature->GetOrientation(),
|
||||||
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
|
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
|
||||||
pSummon->Attack(pSummon->SelectNearestTarget(100),true);
|
if (Creature* pTarget = GetClosestCreatureWithEntry(m_creature, CREATURE_SINCLARI, 150.0f))
|
||||||
|
{
|
||||||
|
pSummon->Attack(pTarget, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
uiSpawnTimer = SPAWN_TIME;
|
uiSpawnTimer = SPAWN_TIME;
|
||||||
} else uiSpawnTimer -= diff;
|
} else uiSpawnTimer -= diff;
|
||||||
|
|
||||||
|
if (!m_creature->IsNonMeleeSpellCasted(false))
|
||||||
|
{
|
||||||
|
m_creature->Kill(m_creature, false);
|
||||||
|
m_creature->RemoveCorpse();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (uiDespawnTimer <= diff)
|
if (uiDespawnTimer <= diff)
|
||||||
{
|
{
|
||||||
m_creature->Kill(m_creature, false);
|
m_creature->Kill(m_creature, false);
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
#ifndef DEF_VIOLET_HOLD_H
|
#ifndef DEF_VIOLET_HOLD_H
|
||||||
#define DEF_VIOLET_HOLD_H
|
#define DEF_VIOLET_HOLD_H
|
||||||
|
|
||||||
|
enum Creatures
|
||||||
|
{
|
||||||
|
CREATURE_TELEPORTATION_PORTAL = 31011,
|
||||||
|
CREATURE_PORTAL_GUARDIAN = 30660,
|
||||||
|
CREATURE_PORTAL_KEEPER = 30695,
|
||||||
|
CREATURE_XEVOZZ = 29266,
|
||||||
|
CREATURE_LAVANTHOR = 29312,
|
||||||
|
CREATURE_ICHORON = 29313,
|
||||||
|
CREATURE_ZURAMAT = 29314,
|
||||||
|
CREATURE_EREKEM = 29315,
|
||||||
|
CREATURE_EREKEM_GUARD = 29395,
|
||||||
|
CREATURE_MORAGG = 29316,
|
||||||
|
CREATURE_CYANIGOSA = 31134,
|
||||||
|
CREATURE_SINCLARI = 30658
|
||||||
|
};
|
||||||
|
|
||||||
enum Data
|
enum Data
|
||||||
{
|
{
|
||||||
DATA_1ST_BOSS_EVENT,
|
DATA_1ST_BOSS_EVENT,
|
||||||
|
|||||||
Reference in New Issue
Block a user