Scripts/ZG: Fix some code style issues and logic errors

This commit is contained in:
Nay committed 2013-01-21 02:10:01 +00:00
1 parent dd7391660b
commit c6c23d67b8
5 files changed
+108 -106

No files matched your search

@@ -10,7 +10,7 @@ INSERT INTO `spell_dbc` (`Id`,`SchoolMask`,`Dispel`,`Mechanic`,`Attributes`,`Att
UPDATE `creature_template` SET `AIName` = '', `ScriptName`='npc_zulian_prowler' WHERE `entry`=15101;
-- Remove SmartAI
DELETE FROM smart_scripts WHERE entryorguid = 15101;
DELETE FROM `smart_scripts` WHERE `entryorguid`=15101;
-- Add condition for Mark of Arlokk
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=24211;
@@ -96,14 +96,14 @@ class boss_arlokk : public CreatureScript
void Reset()
{
summonCountA = 0;
summonCountB = 0;
_summonCountA = 0;
_summonCountB = 0;
me->RemoveAllAuras();
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER));
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER));
if (instance)
if (_instance)
{
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_FORCEFIELD)))
if (GameObject* gate = me->GetMap()->GetGameObject(_instance->GetData64(GO_FORCEFIELD)))
gate->SetGoState(GO_STATE_READY);
me->SetWalk(false);
me->GetMotionMaster()->MovePoint(0, PosMoveOnSpawn[0]);
@@ -114,23 +114,23 @@ class boss_arlokk : public CreatureScript
{
Talk(SAY_DEATH);
me->RemoveAllAuras();
if (instance)
if (_instance)
{
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_FORCEFIELD)))
if (GameObject* gate = me->GetMap()->GetGameObject(_instance->GetData64(GO_FORCEFIELD)))
gate->SetGoState(GO_STATE_ACTIVE);
instance->SetBossState(DATA_ARLOKK, DONE);
_instance->SetBossState(DATA_ARLOKK, DONE);
}
}
void EnterCombat(Unit* /*who*/)
{
_EnterCombat();
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(7000, 9000), 0, PHASE_ONE);
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
if (instance)
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(9000, 11000), 0, PHASE_ALL);
events.ScheduleEvent(EVENT_TRANSFORM, urand(15000, 20000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(7000, 9000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
if (_instance)
_events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
_events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(9000, 11000), 0, PHASE_ALL);
_events.ScheduleEvent(EVENT_TRANSFORM, urand(15000, 20000), 0, PHASE_ONE);
Talk(SAY_AGGRO);
// Sets up list of Panther spawners to cast on
@@ -146,12 +146,12 @@ class boss_arlokk : public CreatureScript
{
if (trigger->GetPositionY() < -1625.0f)
{
triggersSideAGUID[sideA] = trigger->GetGUID();
_triggersSideAGUID[sideA] = trigger->GetGUID();
++sideA;
}
else
{
triggersSideBGUID[sideB] = trigger->GetGUID();
_triggersSideBGUID[sideB] = trigger->GetGUID();
++sideB;
}
}
@@ -161,23 +161,23 @@ class boss_arlokk : public CreatureScript
void EnterEvadeMode()
{
if (instance)
if (_instance)
{
if (GameObject* object = me->GetMap()->GetGameObject(instance->GetData64(GO_FORCEFIELD)))
if (GameObject* object = me->GetMap()->GetGameObject(_instance->GetData64(GO_FORCEFIELD)))
object->SetGoState(GO_STATE_ACTIVE);
if (GameObject* object = me->GetMap()->GetGameObject(instance->GetData64(GO_GONG_OF_BETHEKK)))
if (GameObject* object = me->GetMap()->GetGameObject(_instance->GetData64(GO_GONG_OF_BETHEKK)))
object->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
instance->SetBossState(DATA_ARLOKK, NOT_STARTED);
_instance->SetBossState(DATA_ARLOKK, NOT_STARTED);
}
me->DespawnOrUnsummon(4000);
}
void SetData(uint32 uiId, uint32 /*uiValue*/)
void SetData(uint32 id, uint32 /*value*/)
{
if (uiId == 1)
--summonCountA;
if (uiId == 2)
--summonCountB;
if (id == 1)
--_summonCountA;
else if (id == 2)
--_summonCountB;
}
void UpdateAI(uint32 const diff)
@@ -185,36 +185,40 @@ class boss_arlokk : public CreatureScript
if (!UpdateVictim())
return;
events.Update(diff);
_events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
while (uint32 eventId = events.ExecuteEvent())
while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_SHADOW_WORD_PAIN:
DoCastVictim(SPELL_SHADOW_WORD_PAIN, true);
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(5000, 7000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(5000, 7000), 0, PHASE_ONE);
break;
case EVENT_GOUGE:
DoCastVictim(SPELL_GOUGE, true);
break;
case EVENT_SUMMON_PROWLERS:
if (summonCountA < MAX_PROWLERS_PER_SIDE)
if (Unit* trigger = me->GetUnit(*me, triggersSideAGUID[urand(0, 4)]))
if (_summonCountA < MAX_PROWLERS_PER_SIDE)
{
if (Unit* trigger = me->GetUnit(*me, _triggersSideAGUID[urand(0, 4)]))
{
trigger->CastSpell(trigger, SPELL_SUMMON_PROWLER);
++summonCountA;
++_summonCountA;
}
if (summonCountB < MAX_PROWLERS_PER_SIDE)
if (Unit* trigger = me->GetUnit(*me, triggersSideBGUID[urand(0, 4)]))
}
if (_summonCountB < MAX_PROWLERS_PER_SIDE)
{
if (Unit* trigger = me->GetUnit(*me, _triggersSideBGUID[urand(0, 4)]))
{
trigger->CastSpell(trigger, SPELL_SUMMON_PROWLER);
++summonCountB;
++_summonCountB;
}
events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
}
_events.ScheduleEvent(EVENT_SUMMON_PROWLERS, 6000, 0, PHASE_ALL);
break;
case EVENT_MARK_OF_ARLOKK:
{
@@ -226,8 +230,8 @@ class boss_arlokk : public CreatureScript
DoCast(target, SPELL_MARK_OF_ARLOKK, true);
Talk(SAY_FEAST_PROWLER, target->GetGUID());
}
_events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(120000, 130000));
break;
events.ScheduleEvent(EVENT_MARK_OF_ARLOKK, urand(120000, 130000));
}
case EVENT_TRANSFORM:
{
@@ -244,20 +248,20 @@ class boss_arlokk : public CreatureScript
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_VANISH_VISUAL);
DoCast(me, SPELL_VANISH);
events.ScheduleEvent(EVENT_VANISH, 1000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_VANISH, 1000, 0, PHASE_ONE);
break;
}
case EVENT_VANISH:
DoCast(me, SPELL_SUPER_INVIS);
me->SetWalk(false);
if (instance)
if (_instance)
me->GetMotionMaster()->MovePoint(0, frand(-11551.0f, -11508.0f), frand(-1638.0f, -1617.0f), me->GetPositionZ());
events.ScheduleEvent(EVENT_VANISH_2, 9000, 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_VANISH_2, 9000, 0, PHASE_ONE);
break;
case EVENT_VANISH_2:
DoCast(me, SPELL_VANISH);
DoCast(me, SPELL_SUPER_INVIS);
events.ScheduleEvent(EVENT_VISIBLE, urand(7000, 10000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_VISIBLE, urand(7000, 10000), 0, PHASE_ONE);
break;
case EVENT_VISIBLE:
me->SetReactState(REACT_AGGRESSIVE);
@@ -266,13 +270,13 @@ class boss_arlokk : public CreatureScript
AttackStart(target);
me->RemoveAura(SPELL_SUPER_INVIS);
me->RemoveAura(SPELL_VANISH);
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
events.ScheduleEvent(EVENT_TRANSFORM_BACK, urand(15000, 18000), 0, PHASE_TWO);
events.SetPhase(PHASE_TWO);
_events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_TRANSFORM_BACK, urand(15000, 18000), 0, PHASE_TWO);
_events.SetPhase(PHASE_TWO);
break;
case EVENT_RAVAGE:
DoCastVictim(SPELL_RAVAGE, true);
events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
_events.ScheduleEvent(EVENT_RAVAGE, urand(10000, 14000), 0, PHASE_TWO);
break;
case EVENT_TRANSFORM_BACK:
{
@@ -284,10 +288,10 @@ class boss_arlokk : public CreatureScript
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg));
me->UpdateDamagePhysical(BASE_ATTACK);
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(4000, 7000), 0, PHASE_ONE);
events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
events.ScheduleEvent(EVENT_TRANSFORM, urand(16000, 20000), 0, PHASE_ONE);
events.SetPhase(PHASE_ONE);
_events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(4000, 7000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_GOUGE, urand(12000, 15000), 0, PHASE_ONE);
_events.ScheduleEvent(EVENT_TRANSFORM, urand(16000, 20000), 0, PHASE_ONE);
_events.SetPhase(PHASE_ONE);
break;
}
default:
@@ -299,10 +303,10 @@ class boss_arlokk : public CreatureScript
}
private:
uint8 summonCountA;
uint8 summonCountB;
uint64 triggersSideAGUID[5];
uint64 triggersSideBGUID[5];
uint8 _summonCountA;
uint8 _summonCountB;
uint64 _triggersSideAGUID[5];
uint64 _triggersSideBGUID[5];
};
CreatureAI* GetAI(Creature* creature) const
@@ -338,22 +342,22 @@ class npc_zulian_prowler : public CreatureScript
struct npc_zulian_prowlerAI : public ScriptedAI
{
npc_zulian_prowlerAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { }
npc_zulian_prowlerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
void Reset()
{
if (me->GetPositionY() < -1625.0f)
sideData = 1;
_sideData = 1;
else
sideData = 2;
_sideData = 2;
DoCast(me, SPELL_SNEAK_RANK_1_1);
DoCast(me, SPELL_SNEAK_RANK_1_2);
if (instance)
if (Unit* arlokk = me->GetUnit(*me, instance->GetData64(NPC_ARLOKK)))
if (_instance)
if (Unit* arlokk = me->GetUnit(*me, _instance->GetData64(NPC_ARLOKK)))
me->GetMotionMaster()->MovePoint(0, arlokk->GetPositionX(), arlokk->GetPositionY(), arlokk->GetPositionZ());
events.ScheduleEvent(EVENT_ATTACK, 6000);
_events.ScheduleEvent(EVENT_ATTACK, 6000);
}
void EnterCombat(Unit* /*who*/)
@@ -366,33 +370,33 @@ class npc_zulian_prowler : public CreatureScript
void SpellHit(Unit* caster, SpellInfo const* spell)
{
if (spell->Id == SPELL_MARK_OF_ARLOKK_TRIGGER) // Should only hit if line of sight
{
me->Attack(caster, true);
}
}
void JustDied(Unit* /*killer*/)
{
if (instance)
if (Unit* arlokk = me->GetUnit(*me, instance->GetData64(NPC_ARLOKK)))
if (arlokk->isAlive())
arlokk->GetAI()->SetData(sideData, 0);
if (_instance)
{
if (Unit* arlokk = me->GetUnit(*me, instance->GetData64(NPC_ARLOKK)))
{
if (arlokk->isAlive())
arlokk->GetAI()->SetData(_sideData, 0);
}
}
me->DespawnOrUnsummon(4000);
}
void UpdateAI(const uint32 diff)
{
if (UpdateVictim())
{
DoMeleeAttackIfReady();
return;
}
events.Update(diff);
_events.Update(diff);
while (uint32 eventId = events.ExecuteEvent())
while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
@@ -407,9 +411,9 @@ class npc_zulian_prowler : public CreatureScript
}
private:
int32 sideData;
EventMap events;
InstanceScript* instance;
int32 _sideData;
EventMap _events;
InstanceScript* _instance;
};
CreatureAI* GetAI(Creature* creature) const
@@ -433,7 +437,7 @@ class go_gong_of_bethekk : public GameObjectScript
bool OnGossipHello(Player* /*player*/, GameObject* go)
{
if (InstanceScript* instance = go->GetInstanceScript())
if (go->GetInstanceScript())
{
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SendCustomAnim(0);
@@ -112,4 +112,3 @@ void AddSC_boss_gahzranka()
{
new boss_gahzranka();
}
@@ -121,4 +121,3 @@ void AddSC_boss_hazzarah()
{
new boss_hazzarah();
}
@@ -40,14 +40,14 @@ class instance_zulgurub : public InstanceMapScript
void Initialize()
{
zealotLorkhanGUID = 0;
zealotZathGUID = 0;
highPriestTekalGUID = 0;
jindoTheHexxerGUID = 0;
vilebranchSpeakerGUID = 0;
arlokkGUID = 0;
go_ForcefieldGUID = 0;
go_GongOfBethekkGUID = 0;
_zealotLorkhanGUID = 0;
_zealotZathGUID = 0;
_highPriestTekalGUID = 0;
_jindoTheHexxerGUID = 0;
_vilebranchSpeakerGUID = 0;
_arlokkGUID = 0;
_goForcefieldGUID = 0;
_goGongOfBethekkGUID = 0;
}
bool IsEncounterInProgress() const
@@ -61,22 +61,22 @@ class instance_zulgurub : public InstanceMapScript
switch (creature->GetEntry())
{
case NPC_ZEALOT_LORKHAN:
zealotLorkhanGUID = creature->GetGUID();
_zealotLorkhanGUID = creature->GetGUID();
break;
case NPC_ZEALOT_ZATH:
zealotZathGUID = creature->GetGUID();
_zealotZathGUID = creature->GetGUID();
break;
case NPC_HIGH_PRIEST_THEKAL:
highPriestTekalGUID = creature->GetGUID();
_highPriestTekalGUID = creature->GetGUID();
break;
case NPC_JINDO_THE_HEXXER:
jindoTheHexxerGUID = creature->GetGUID();
_jindoTheHexxerGUID = creature->GetGUID();
break;
case NPC_VILEBRANCH_SPEAKER:
vilebranchSpeakerGUID = creature->GetGUID();
_vilebranchSpeakerGUID = creature->GetGUID();
break;
case NPC_ARLOKK:
arlokkGUID = creature->GetGUID();
_arlokkGUID = creature->GetGUID();
break;
}
}
@@ -86,13 +86,13 @@ class instance_zulgurub : public InstanceMapScript
switch (go->GetEntry())
{
case GO_FORCEFIELD:
go_ForcefieldGUID = go->GetGUID();
_goForcefieldGUID = go->GetGUID();
break;
case GO_GONG_OF_BETHEKK:
go_GongOfBethekkGUID = go->GetGUID();
_goGongOfBethekkGUID = go->GetGUID();
if (GetBossState(DATA_ARLOKK) == DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
else
else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
default:
@@ -105,25 +105,25 @@ class instance_zulgurub : public InstanceMapScript
switch (uiData)
{
case DATA_LORKHAN:
return zealotLorkhanGUID;
return _zealotLorkhanGUID;
break;
case DATA_ZATH:
return zealotZathGUID;
return _zealotZathGUID;
break;
case DATA_THEKAL:
return highPriestTekalGUID;
return _highPriestTekalGUID;
break;
case DATA_JINDO:
return jindoTheHexxerGUID;
return _jindoTheHexxerGUID;
break;
case NPC_ARLOKK:
return arlokkGUID;
return _arlokkGUID;
break;
case GO_FORCEFIELD:
return go_ForcefieldGUID;
return _goForcefieldGUID;
break;
case GO_GONG_OF_BETHEKK:
return go_GongOfBethekkGUID;
return _goGongOfBethekkGUID;
break;
}
return 0;
@@ -175,14 +175,14 @@ class instance_zulgurub : public InstanceMapScript
//If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too.
//Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too.
uint64 zealotLorkhanGUID;
uint64 zealotZathGUID;
uint64 highPriestTekalGUID;
uint64 jindoTheHexxerGUID;
uint64 vilebranchSpeakerGUID;
uint64 arlokkGUID;
uint64 go_ForcefieldGUID;
uint64 go_GongOfBethekkGUID;
uint64 _zealotLorkhanGUID;
uint64 _zealotZathGUID;
uint64 _highPriestTekalGUID;
uint64 _jindoTheHexxerGUID;
uint64 _vilebranchSpeakerGUID;
uint64 _arlokkGUID;
uint64 _goForcefieldGUID;
uint64 _goGongOfBethekkGUID;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const