@@ -0,0 +1,13 @@
|
|||||||
|
SET @Zul = 23863; -- Zul'jin (ZA)
|
||||||
|
UPDATE `creature_template` SET `speed_walk`=2.4,`speed_run`=2.14286 WHERE `entry`=@Zul;
|
||||||
|
UPDATE `creature_model_info` SET `bounding_radius`=1.566,`combat_reach`=3.6,`gender`=0 WHERE `modelid`=21899;
|
||||||
|
DELETE FROM `creature_template_addon` WHERE `entry`=@Zul;
|
||||||
|
INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
|
||||||
|
(@Zul,0,0,1,0, NULL);
|
||||||
|
|
||||||
|
/* should this be set by core script or DB?
|
||||||
|
SET @EquiEntry = XXX; -- (creature_equip_template.entry - need 1)
|
||||||
|
UPDATE `creature_template` SET `equipment_id`=@EquiEntry WHERE `entry`=@Zul;
|
||||||
|
DELETE FROM `creature_equip_template` WHERE `entry`=@EquiEntry;
|
||||||
|
INSERT INTO `creature_equip_template` (`entry`,`equipentry1`,`equipentry2`,`equipentry3`) VALUES
|
||||||
|
(@EquiEntry,33975,0,0);*/
|
||||||
@@ -151,11 +151,11 @@ class boss_zuljin : public CreatureScript
|
|||||||
|
|
||||||
struct boss_zuljinAI : public ScriptedAI
|
struct boss_zuljinAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(me)
|
boss_zuljinAI(Creature* c) : ScriptedAI(c), Summons(me)
|
||||||
{
|
{
|
||||||
pInstance = c->GetInstanceScript();
|
pInstance = c->GetInstanceScript();
|
||||||
}
|
}
|
||||||
InstanceScript *pInstance;
|
InstanceScript* pInstance;
|
||||||
|
|
||||||
uint64 SpiritGUID[4];
|
uint64 SpiritGUID[4];
|
||||||
uint64 ClawTargetGUID;
|
uint64 ClawTargetGUID;
|
||||||
@@ -216,12 +216,12 @@ class boss_zuljin : public CreatureScript
|
|||||||
|
|
||||||
Summons.DespawnAll();
|
Summons.DespawnAll();
|
||||||
|
|
||||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 47174);
|
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 33975);
|
||||||
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 218172674);
|
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 218172674);
|
||||||
//me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
|
//me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnterCombat(Unit * /*who*/)
|
void EnterCombat(Unit* /*who*/)
|
||||||
{
|
{
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
pInstance->SetData(DATA_ZULJINEVENT, IN_PROGRESS);
|
pInstance->SetData(DATA_ZULJINEVENT, IN_PROGRESS);
|
||||||
@@ -261,11 +261,11 @@ class boss_zuljin : public CreatureScript
|
|||||||
DoPlaySoundToSet(me, SOUND_DEATH);
|
DoPlaySoundToSet(me, SOUND_DEATH);
|
||||||
Summons.DespawnEntry(CREATURE_COLUMN_OF_FIRE);
|
Summons.DespawnEntry(CREATURE_COLUMN_OF_FIRE);
|
||||||
|
|
||||||
if (Unit *Temp = Unit::GetUnit(*me, SpiritGUID[3]))
|
if (Unit* Temp = Unit::GetUnit(*me, SpiritGUID[3]))
|
||||||
Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
|
Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AttackStart(Unit *who)
|
void AttackStart(Unit* who)
|
||||||
{
|
{
|
||||||
if (Phase == 2)
|
if (Phase == 2)
|
||||||
AttackStartNoMove(who);
|
AttackStartNoMove(who);
|
||||||
@@ -296,7 +296,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
|
|
||||||
void SpawnAdds()
|
void SpawnAdds()
|
||||||
{
|
{
|
||||||
Creature *pCreature = NULL;
|
Creature* pCreature = NULL;
|
||||||
for (uint8 i = 0; i < 4; ++i)
|
for (uint8 i = 0; i < 4; ++i)
|
||||||
{
|
{
|
||||||
pCreature = me->SummonCreature(SpiritInfo[i].entry, SpiritInfo[i].x, SpiritInfo[i].y, SpiritInfo[i].z, SpiritInfo[i].orient, TEMPSUMMON_DEAD_DESPAWN, 0);
|
pCreature = me->SummonCreature(SpiritInfo[i].entry, SpiritInfo[i].x, SpiritInfo[i].y, SpiritInfo[i].z, SpiritInfo[i].orient, TEMPSUMMON_DEAD_DESPAWN, 0);
|
||||||
@@ -328,12 +328,12 @@ class boss_zuljin : public CreatureScript
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustSummoned(Creature *summon)
|
void JustSummoned(Creature* summon)
|
||||||
{
|
{
|
||||||
Summons.Summon(summon);
|
Summons.Summon(summon);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SummonedCreatureDespawn(Creature *summon)
|
void SummonedCreatureDespawn(Creature* summon)
|
||||||
{
|
{
|
||||||
Summons.Despawn(summon);
|
Summons.Despawn(summon);
|
||||||
}
|
}
|
||||||
@@ -357,10 +357,10 @@ class boss_zuljin : public CreatureScript
|
|||||||
DoPlaySoundToSet(me, Transform[Phase].sound);
|
DoPlaySoundToSet(me, Transform[Phase].sound);
|
||||||
if (Phase > 0)
|
if (Phase > 0)
|
||||||
{
|
{
|
||||||
if (Unit *Temp = Unit::GetUnit(*me, SpiritGUID[Phase - 1]))
|
if (Unit* Temp = Unit::GetUnit(*me, SpiritGUID[Phase - 1]))
|
||||||
Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
|
Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
|
||||||
}
|
}
|
||||||
if (Unit *Temp = Unit::GetUnit(*me, SpiritGUID[NextPhase - 1]))
|
if (Unit* Temp = Unit::GetUnit(*me, SpiritGUID[NextPhase - 1]))
|
||||||
Temp->CastSpell(me, SPELL_SIPHON_SOUL, false); // should m cast on temp
|
Temp->CastSpell(me, SPELL_SIPHON_SOUL, false); // should m cast on temp
|
||||||
if (NextPhase == 2)
|
if (NextPhase == 2)
|
||||||
{
|
{
|
||||||
@@ -435,7 +435,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
|
|
||||||
if (Grievous_Throw_Timer <= diff)
|
if (Grievous_Throw_Timer <= diff)
|
||||||
{
|
{
|
||||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||||
DoCast(pTarget, SPELL_GRIEVOUS_THROW, false);
|
DoCast(pTarget, SPELL_GRIEVOUS_THROW, false);
|
||||||
Grievous_Throw_Timer = 10000;
|
Grievous_Throw_Timer = 10000;
|
||||||
} else Grievous_Throw_Timer -= diff;
|
} else Grievous_Throw_Timer -= diff;
|
||||||
@@ -463,7 +463,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
{
|
{
|
||||||
if (!TankGUID)
|
if (!TankGUID)
|
||||||
{
|
{
|
||||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||||
{
|
{
|
||||||
TankGUID = me->getVictim()->GetGUID();
|
TankGUID = me->getVictim()->GetGUID();
|
||||||
me->SetSpeed(MOVE_RUN, 5.0f);
|
me->SetSpeed(MOVE_RUN, 5.0f);
|
||||||
@@ -477,7 +477,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
{
|
{
|
||||||
if (Claw_Loop_Timer <= diff)
|
if (Claw_Loop_Timer <= diff)
|
||||||
{
|
{
|
||||||
Unit *pTarget = me->getVictim();
|
Unit* pTarget = me->getVictim();
|
||||||
if (!pTarget || !pTarget->isTargetableForAttack()) pTarget = Unit::GetUnit(*me, TankGUID);
|
if (!pTarget || !pTarget->isTargetableForAttack()) pTarget = Unit::GetUnit(*me, TankGUID);
|
||||||
if (!pTarget || !pTarget->isTargetableForAttack()) pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0);
|
if (!pTarget || !pTarget->isTargetableForAttack()) pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0);
|
||||||
if (pTarget)
|
if (pTarget)
|
||||||
@@ -512,7 +512,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
{
|
{
|
||||||
if (!TankGUID)
|
if (!TankGUID)
|
||||||
{
|
{
|
||||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||||
{
|
{
|
||||||
TankGUID = me->getVictim()->GetGUID();
|
TankGUID = me->getVictim()->GetGUID();
|
||||||
me->SetSpeed(MOVE_RUN, 5.0f);
|
me->SetSpeed(MOVE_RUN, 5.0f);
|
||||||
@@ -523,7 +523,7 @@ class boss_zuljin : public CreatureScript
|
|||||||
}
|
}
|
||||||
else if (!Lynx_Rush_Timer)
|
else if (!Lynx_Rush_Timer)
|
||||||
{
|
{
|
||||||
Unit *pTarget = me->getVictim();
|
Unit* pTarget = me->getVictim();
|
||||||
if (!pTarget || !pTarget->isTargetableForAttack())
|
if (!pTarget || !pTarget->isTargetableForAttack())
|
||||||
{
|
{
|
||||||
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0);
|
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0);
|
||||||
@@ -564,14 +564,14 @@ class boss_zuljin : public CreatureScript
|
|||||||
|
|
||||||
if (Pillar_Of_Fire_Timer <= diff)
|
if (Pillar_Of_Fire_Timer <= diff)
|
||||||
{
|
{
|
||||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||||
DoCast(pTarget, SPELL_SUMMON_PILLAR);
|
DoCast(pTarget, SPELL_SUMMON_PILLAR);
|
||||||
Pillar_Of_Fire_Timer = 10000;
|
Pillar_Of_Fire_Timer = 10000;
|
||||||
} else Pillar_Of_Fire_Timer -= diff;
|
} else Pillar_Of_Fire_Timer -= diff;
|
||||||
|
|
||||||
if (Flame_Breath_Timer <= diff)
|
if (Flame_Breath_Timer <= diff)
|
||||||
{
|
{
|
||||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||||
me->SetInFront(pTarget);
|
me->SetInFront(pTarget);
|
||||||
DoCast(me, SPELL_FLAME_BREATH);
|
DoCast(me, SPELL_FLAME_BREATH);
|
||||||
Flame_Breath_Timer = 10000;
|
Flame_Breath_Timer = 10000;
|
||||||
@@ -604,13 +604,13 @@ class mob_zuljin_vortex : public CreatureScript
|
|||||||
|
|
||||||
struct mob_zuljin_vortexAI : public ScriptedAI
|
struct mob_zuljin_vortexAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
mob_zuljin_vortexAI(Creature *c) : ScriptedAI(c) {}
|
mob_zuljin_vortexAI(Creature* c) : ScriptedAI(c) {}
|
||||||
|
|
||||||
void Reset() {}
|
void Reset() {}
|
||||||
|
|
||||||
void EnterCombat(Unit * /*pTarget*/) {}
|
void EnterCombat(Unit* /*pTarget*/) {}
|
||||||
|
|
||||||
void SpellHit(Unit *caster, const SpellEntry *spell)
|
void SpellHit(Unit* caster, const SpellEntry* spell)
|
||||||
{
|
{
|
||||||
if (spell->Id == SPELL_ZAP_INFORM)
|
if (spell->Id == SPELL_ZAP_INFORM)
|
||||||
DoCast(caster, SPELL_ZAP_DAMAGE, true);
|
DoCast(caster, SPELL_ZAP_DAMAGE, true);
|
||||||
|
|||||||
Reference in New Issue
Block a user