Core/Scripts: Fixed build of boss_* scripts

This commit is contained in:
Shauren
2014-09-15 22:07:11 +02:00
parent 6ce0a3107d
commit a3d8f1d879
88 changed files with 453 additions and 508 deletions

View File

@@ -202,7 +202,7 @@ class boss_doomrel : public CreatureScript
{
ScriptedAI::EnterEvadeMode();
_instance->SetGuidData(DATA_EVENSTARTER, 0);
_instance->SetGuidData(DATA_EVENSTARTER, ObjectGuid::Empty);
}
void JustDied(Unit* /*killer*/) override

View File

@@ -75,10 +75,10 @@ public:
void Initialize()
{
ResetTimer = 0;
Midnight = 0;
Midnight.Clear();
}
uint64 Midnight;
ObjectGuid Midnight;
uint8 Phase;
uint32 CleaveTimer;
uint32 CurseTimer;
@@ -141,11 +141,11 @@ public:
void Initialize()
{
Phase = 1;
Attumen = 0;
Attumen.Clear();
Mount_Timer = 0;
}
uint64 Attumen;
ObjectGuid Attumen;
uint8 Phase;
uint32 Mount_Timer;
@@ -242,7 +242,7 @@ public:
Mount_Timer = 1000;
}
void SetMidnight(Creature* pAttumen, uint64 value)
void SetMidnight(Creature* pAttumen, ObjectGuid value)
{
ENSURE_AI(boss_attumen::boss_attumenAI, pAttumen->AI())->Midnight = value;
}
@@ -262,7 +262,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)
pMidnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pMidnight->SetVisible(true);
}
Midnight = 0;
Midnight.Clear();
me->SetVisible(false);
me->Kill(me);
} else ResetTimer -= diff;

View File

@@ -107,7 +107,6 @@ public:
{
Initialize();
memset(AddId, 0, sizeof(AddId));
memset(AddGUID, 0, sizeof(AddGUID));
instance = creature->GetInstanceScript();
}
@@ -126,7 +125,7 @@ public:
InstanceScript* instance;
uint64 AddGUID[4];
ObjectGuid AddGUID[4];
uint32 Vanish_Timer;
uint32 Blind_Timer;
@@ -339,13 +338,10 @@ struct boss_moroes_guestAI : public ScriptedAI
{
InstanceScript* instance;
uint64 GuestGUID[4];
ObjectGuid GuestGUID[4];
boss_moroes_guestAI(Creature* creature) : ScriptedAI(creature)
{
for (uint8 i = 0; i < 4; ++i)
GuestGUID[i] = 0;
instance = creature->GetInstanceScript();
}
@@ -358,13 +354,13 @@ struct boss_moroes_guestAI : public ScriptedAI
{
if (Creature* Moroes = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MOROES)))
for (uint8 i = 0; i < 4; ++i)
if (uint64 GUID = ENSURE_AI(boss_moroes::boss_moroesAI, Moroes->AI())->AddGUID[i])
if (ObjectGuid GUID = ENSURE_AI(boss_moroes::boss_moroesAI, Moroes->AI())->AddGUID[i])
GuestGUID[i] = GUID;
}
Unit* SelectGuestTarget()
{
uint64 TempGUID = GuestGUID[rand32() % 4];
ObjectGuid TempGUID = GuestGUID[rand32() % 4];
if (TempGUID)
{
Unit* unit = ObjectAccessor::GetUnit(*me, TempGUID);

View File

@@ -81,13 +81,6 @@ public:
Initialize();
instance = creature->GetInstanceScript();
for (int i=0; i<3; ++i)
{
PortalGUID[i] = 0;
BeamTarget[i] = 0;
BeamerGUID[i] = 0;
}
PortalPhase = false;
PhaseTimer = 0;
EmpowermentTimer = 0;
@@ -112,9 +105,9 @@ public:
uint32 NetherbreathTimer;
uint32 EmpowermentTimer;
uint32 PortalTimer; // timer for beam checking
uint64 PortalGUID[3]; // guid's of portals
uint64 BeamerGUID[3]; // guid's of auxiliary beaming portals
uint64 BeamTarget[3]; // guid's of portals' current targets
ObjectGuid PortalGUID[3]; // guid's of portals
ObjectGuid BeamerGUID[3]; // guid's of auxiliary beaming portals
ObjectGuid BeamTarget[3]; // guid's of portals' current targets
bool IsBetween(WorldObject* u1, WorldObject* target, WorldObject* u2) // the in-line checker
{
@@ -157,7 +150,7 @@ public:
pos[GREEN_PORTAL] = ((r % 2) ? 0 : (r > 1 ? 2 : 1));
pos[BLUE_PORTAL] = (r > 1 ? 1 : 2); // Blue Portal not on the left side (0)
for (int i=0; i<3; ++i)
for (int i = 0; i < 3; ++i)
if (Creature* portal = me->SummonCreature(PortalID[i], PortalCoord[pos[i]][0], PortalCoord[pos[i]][1], PortalCoord[pos[i]][2], 0, TEMPSUMMON_TIMED_DESPAWN, 60000))
{
PortalGUID[i] = portal->GetGUID();
@@ -173,14 +166,14 @@ public:
portal->DisappearAndDie();
if (Creature* portal = ObjectAccessor::GetCreature(*me, BeamerGUID[i]))
portal->DisappearAndDie();
PortalGUID[i] = 0;
BeamTarget[i] = 0;
PortalGUID[i].Clear();
BeamTarget[i].Clear();
}
}
void UpdatePortals() // Here we handle the beams' behavior
{
for (int j=0; j<3; ++j) // j = color
for (int j = 0; j < 3; ++j) // j = color
if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[j]))
{
// the one who's been cast upon before
@@ -198,9 +191,9 @@ public:
Player* p = i->GetSource();
if (p && p->IsAlive() // alive
&& (!target || target->GetDistance2d(portal)>p->GetDistance2d(portal)) // closer than current best
&& !p->HasAura(PlayerDebuff[j], 0) // not exhausted
&& !p->HasAura(PlayerBuff[(j+1)%3], 0) // not on another beam
&& !p->HasAura(PlayerBuff[(j+2)%3], 0)
&& !p->HasAura(PlayerDebuff[j]) // not exhausted
&& !p->HasAura(PlayerBuff[(j + 1) % 3]) // not on another beam
&& !p->HasAura(PlayerBuff[(j + 2) % 3])
&& IsBetween(me, p, portal)) // on the beam
target = p;
}
@@ -220,7 +213,7 @@ public:
{
beamer->CastSpell(target, PortalBeam[j], false);
beamer->DisappearAndDie();
BeamerGUID[j] = 0;
BeamerGUID[j].Clear();
}
// create new one and start beaming on the target
if (Creature* beamer = portal->SummonCreature(PortalID[j], portal->GetPositionX(), portal->GetPositionY(), portal->GetPositionZ(), portal->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 60000))

View File

@@ -110,11 +110,11 @@ public:
struct netherspite_infernalAI : public ScriptedAI
{
netherspite_infernalAI(Creature* creature) : ScriptedAI(creature),
HellfireTimer(0), CleanupTimer(0), malchezaar(0), point(NULL) { }
HellfireTimer(0), CleanupTimer(0), point(NULL) { }
uint32 HellfireTimer;
uint32 CleanupTimer;
uint64 malchezaar;
ObjectGuid malchezaar;
InfernalPoint *point;
void Reset() override { }
@@ -189,7 +189,6 @@ public:
Initialize();
instance = creature->GetInstanceScript();
memset(axes, 0, sizeof(axes));
}
void Initialize()
@@ -208,7 +207,7 @@ public:
for (uint8 i = 0; i < 5; ++i)
{
enfeeble_targets[i] = 0;
enfeeble_targets[i].Clear();
enfeeble_health[i] = 0;
}
}
@@ -225,12 +224,12 @@ public:
uint32 AxesTargetSwitchTimer;
uint32 InfernalCleanupTimer;
std::vector<uint64> infernals;
GuidVector infernals;
std::vector<InfernalPoint*> positions;
uint64 axes[2];
uint64 enfeeble_targets[5];
uint32 enfeeble_health[5];
ObjectGuid axes[2];
ObjectGuid enfeeble_targets[5];
uint64 enfeeble_health[5];
uint32 phase;
@@ -279,7 +278,7 @@ public:
void InfernalCleanup()
{
//Infernal Cleanup
for (std::vector<uint64>::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr)
for (GuidVector::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr)
if (Unit* pInfernal = ObjectAccessor::GetUnit(*me, *itr))
if (pInfernal->IsAlive())
{
@@ -297,7 +296,7 @@ public:
Unit* axe = ObjectAccessor::GetUnit(*me, axes[i]);
if (axe && axe->IsAlive())
axe->Kill(axe);
axes[i] = 0;
axes[i].Clear();
}
}
@@ -350,7 +349,7 @@ public:
Unit* target = ObjectAccessor::GetUnit(*me, enfeeble_targets[i]);
if (target && target->IsAlive())
target->SetHealth(enfeeble_health[i]);
enfeeble_targets[i] = 0;
enfeeble_targets[i].Clear();
enfeeble_health[i] = 0;
}
}
@@ -576,11 +575,13 @@ public:
void Cleanup(Creature* infernal, InfernalPoint *point)
{
for (std::vector<uint64>::iterator itr = infernals.begin(); itr!= infernals.end(); ++itr)
if (*itr == infernal->GetGUID())
for (GuidVector::iterator itr = infernals.begin(); itr!= infernals.end(); ++itr)
{
infernals.erase(itr);
break;
if (*itr == infernal->GetGUID())
{
infernals.erase(itr);
break;
}
}
positions.push_back(point);

View File

@@ -144,10 +144,10 @@ public:
void Initialize()
{
SacrificeGUID = 0;
SacrificeGUID.Clear();
}
uint64 SacrificeGUID;
ObjectGuid SacrificeGUID;
void Reset() override
{
@@ -269,10 +269,8 @@ public:
{
boss_terestianAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
for (uint8 i = 0; i < 2; ++i)
PortalGUID[i] = 0;
instance = creature->GetInstanceScript();
Initialize();
}
void Initialize()
@@ -289,7 +287,7 @@ public:
InstanceScript* instance;
uint64 PortalGUID[2];
ObjectGuid PortalGUID[2];
uint8 PortalsCount;
uint32 SacrificeTimer;
@@ -312,7 +310,7 @@ public:
pPortal->DespawnOrUnsummon();
}
PortalGUID[i] = 0;
PortalGUID[i].Clear();
}
}
@@ -367,7 +365,7 @@ public:
if (Creature* pPortal = ObjectAccessor::GetCreature((*me), PortalGUID[i]))
pPortal->DespawnOrUnsummon();
PortalGUID[i] = 0;
PortalGUID[i].Clear();
}
}

View File

@@ -250,11 +250,11 @@ public:
void Initialize()
{
DorotheeGUID = 0;
DorotheeGUID.Clear();
YipTimer = 10000;
}
uint64 DorotheeGUID;
ObjectGuid DorotheeGUID;
uint32 YipTimer;
void Reset() override
@@ -868,7 +868,7 @@ public:
FearTimer = urand(25000, 35000);
SwipeTimer = 5000;
HoodGUID = 0;
HoodGUID.Clear();
TempThreat = 0;
IsChasing = false;
@@ -880,7 +880,7 @@ public:
uint32 FearTimer;
uint32 SwipeTimer;
uint64 HoodGUID;
ObjectGuid HoodGUID;
float TempThreat;
bool IsChasing;
@@ -947,7 +947,7 @@ public:
if (Unit* target = ObjectAccessor::GetUnit(*me, HoodGUID))
{
HoodGUID = 0;
HoodGUID.Clear();
if (DoGetThreat(target))
DoModifyThreatPercent(target, -100);
me->AddThreat(target, TempThreat);
@@ -1073,7 +1073,7 @@ public:
void Initialize()
{
RomuloGUID = 0;
RomuloGUID.Clear();
Phase = PHASE_JULIANNE;
BlindingPassionTimer = 30000;
@@ -1093,7 +1093,7 @@ public:
uint32 EntryYellTimer;
uint32 AggroYellTimer;
uint64 RomuloGUID;
ObjectGuid RomuloGUID;
uint32 Phase;
@@ -1197,7 +1197,7 @@ public:
void Initialize()
{
JulianneGUID = 0;
JulianneGUID.Clear();
Phase = PHASE_ROMULO;
BackwardLungeTimer = 15000;
@@ -1212,7 +1212,7 @@ public:
InstanceScript* instance;
uint64 JulianneGUID;
ObjectGuid JulianneGUID;
uint32 Phase;
uint32 EntryYellTimer;

View File

@@ -548,7 +548,7 @@ public:
me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->ClearAllReactives();
me->SetTarget(0);
me->SetTarget(ObjectGuid::Empty);
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveIdle();
me->SetStandState(UNIT_STAND_STATE_DEAD);

View File

@@ -360,7 +360,6 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
{
Initialize();
instance = creature->GetInstanceScript();
memset(&m_auiLackeyGUIDs, 0, sizeof(m_auiLackeyGUIDs));
AcquireGUIDs();
}
@@ -377,7 +376,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
InstanceScript* instance;
uint64 m_auiLackeyGUIDs[MAX_ACTIVE_LACKEY];
ObjectGuid m_auiLackeyGUIDs[MAX_ACTIVE_LACKEY];
uint32 ResetThreatTimer;
bool UsedPotion;

View File

@@ -220,7 +220,7 @@ class boss_selin_fireheart : public CreatureScript
if (CrystalChosen && CrystalChosen->IsAlive())
CrystalChosen->Kill(CrystalChosen);
CrystalGUID = 0;
CrystalGUID.Clear();
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveChase(me->GetVictim());

View File

@@ -240,14 +240,14 @@ public:
void Initialize()
{
Phase = 0;
bodyGUID = 0;
bodyGUID.Clear();
die = false;
withbody = true;
wait = 1000;
laugh = urand(15000, 30000);
}
uint64 bodyGUID;
ObjectGuid bodyGUID;
uint32 Phase;
uint32 laugh;
@@ -390,8 +390,6 @@ public:
{
Initialize();
instance = creature->GetInstanceScript();
headGUID = 0;
PlayerGUID = 0;
id = 0;
whirlwind = 0;
wp_reached = false;
@@ -417,8 +415,8 @@ public:
InstanceScript* instance;
uint64 headGUID;
uint64 PlayerGUID;
ObjectGuid headGUID;
ObjectGuid PlayerGUID;
uint32 Phase;
uint32 id;
@@ -446,9 +444,9 @@ public:
if (headGUID)
{
if (Creature* Head = ObjectAccessor::GetCreature((*me), headGUID))
Head->DisappearAndDie();
Head->DespawnOrUnsummon();
headGUID = 0;
headGUID.Clear();
}
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -806,18 +804,17 @@ public:
npc_pulsing_pumpkinAI(Creature* creature) : ScriptedAI(creature)
{
sprouted = false;
debuffGUID = 0;
}
bool sprouted;
uint64 debuffGUID;
ObjectGuid debuffGUID;
void Reset() override
{
float x, y, z;
me->GetPosition(x, y, z); //this visual aura some under ground
me->SetPosition(x, y, z + 0.35f, 0.0f);
debuffGUID = 0;
debuffGUID.Clear();
Despawn();
Creature* debuff = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 14500);
if (debuff)
@@ -857,7 +854,7 @@ public:
if (debuff)
{
debuff->SetVisible(false);
debuffGUID = 0;
debuffGUID.Clear();
}
}

View File

@@ -132,7 +132,7 @@ public:
if (instance->GetData(TYPE_SH_QUEST))
{
if (Player* player = killer->ToPlayer())
player->KilledMonsterCredit(SH_QUEST_CREDIT, 0);
player->KilledMonsterCredit(SH_QUEST_CREDIT);
}
}

View File

@@ -115,7 +115,7 @@ public:
void Initialize()
{
SathGUID = 0;
SathGUID.Clear();
ArcaneBuffetTimer = 8000;
FrostBreathTimer = 15000;
WildMagicTimer = 10000;
@@ -148,7 +148,7 @@ public:
bool isBanished;
bool bJustReset;
uint64 SathGUID;
ObjectGuid SathGUID;
void Reset() override
{
@@ -456,7 +456,7 @@ public:
uint32 YellTimer;
uint32 YellSequence;
uint64 SathGUID;
ObjectGuid SathGUID;
bool isEnraged; // if demon is enraged
@@ -464,7 +464,6 @@ public:
{
Initialize();
instance = creature->GetInstanceScript();
SathGUID = 0;
}
void Initialize()

View File

@@ -742,7 +742,7 @@ public:
for (uint8 z = 0; z < 6; ++z)
{
pRandomPlayer = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (!pRandomPlayer || !pRandomPlayer->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0))
if (!pRandomPlayer || !pRandomPlayer->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT))
break;
}
@@ -835,7 +835,7 @@ public:
for (uint8 z = 0; z < 6; ++z)
{
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0)) break;
if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT)) break;
}
if (target)
{
@@ -962,7 +962,7 @@ public:
return;
// Gain Shadow Infusion at 20% health
if (HealthBelowPct(20) && !me->HasAura(SPELL_SHADOW_INFUSION, 0))
if (HealthBelowPct(20) && !me->HasAura(SPELL_SHADOW_INFUSION))
DoCast(me, SPELL_SHADOW_INFUSION, true);
// Shadow Bolt Volley - Shoots Shadow Bolts at all enemies within 30 yards, for ~2k Shadow damage.

View File

@@ -574,7 +574,7 @@ public:
case 2:
SpellTimer = 400;
NeedForAHack = 3;
me->RemoveAura(SPELL_BLACKHOLE_GROW, 1);
me->RemoveAura(SPELL_BLACKHOLE_GROW);
break;
case 3:
SpellTimer = urand(400, 900);

View File

@@ -298,7 +298,7 @@ class boss_zuljin : public CreatureScript
temp->setDeathState(DEAD);
}
}
SpiritGUID[i] = 0;
SpiritGUID[i].Clear();
}
}
@@ -464,7 +464,7 @@ class boss_zuljin : public CreatureScript
Claw_Rage_Timer = urand(15000, 20000);
me->SetSpeed(MOVE_RUN, 1.2f);
AttackStart(ObjectAccessor::GetUnit(*me, TankGUID));
TankGUID = 0;
TankGUID.Clear();
return;
}
else
@@ -512,7 +512,7 @@ class boss_zuljin : public CreatureScript
Lynx_Rush_Timer = urand(15000, 20000);
me->SetSpeed(MOVE_RUN, 1.2f);
AttackStart(ObjectAccessor::GetUnit(*me, TankGUID));
TankGUID = 0;
TankGUID.Clear();
}
else
AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0));