Scripts: Removed CAST_PET and CAST_INST
This commit is contained in:
@@ -24,13 +24,9 @@
|
|||||||
#include "CreatureAIImpl.h"
|
#include "CreatureAIImpl.h"
|
||||||
#include "InstanceScript.h"
|
#include "InstanceScript.h"
|
||||||
|
|
||||||
#define SCRIPT_CAST_TYPE dynamic_cast
|
#define CAST_PLR(a) (dynamic_cast<Player*>(a))
|
||||||
|
#define CAST_CRE(a) (dynamic_cast<Creature*>(a))
|
||||||
#define CAST_PLR(a) (SCRIPT_CAST_TYPE<Player*>(a))
|
#define CAST_AI(a, b) (dynamic_cast<a*>(b))
|
||||||
#define CAST_CRE(a) (SCRIPT_CAST_TYPE<Creature*>(a))
|
|
||||||
#define CAST_PET(a) (SCRIPT_CAST_TYPE<Pet*>(a))
|
|
||||||
#define CAST_AI(a, b) (SCRIPT_CAST_TYPE<a*>(b))
|
|
||||||
#define CAST_INST(a, b) (SCRIPT_CAST_TYPE<a*>(b))
|
|
||||||
|
|
||||||
#define GET_SPELL(a) (const_cast<SpellEntry*>(GetSpellStore()->LookupEntry(a)))
|
#define GET_SPELL(a) (const_cast<SpellEntry*>(GetSpellStore()->LookupEntry(a)))
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public:
|
|||||||
|
|
||||||
DoCast(me, SPELL_CONVERT_CREDIT);
|
DoCast(me, SPELL_CONVERT_CREDIT);
|
||||||
if (me->isPet())
|
if (me->isPet())
|
||||||
CAST_PET(me)->SetDuration(7500);
|
me->ToPet()->SetDuration(7500);
|
||||||
Credit = true;
|
Credit = true;
|
||||||
} else Timer -= diff;
|
} else Timer -= diff;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ enum Data64
|
|||||||
DATA_MOORABI_STATUE,
|
DATA_MOORABI_STATUE,
|
||||||
DATA_DRAKKARI_COLOSSUS_STATUE,
|
DATA_DRAKKARI_COLOSSUS_STATUE,
|
||||||
DATA_DRAKKARI_COLOSSUS,
|
DATA_DRAKKARI_COLOSSUS,
|
||||||
DATA_RUIN_DWELLER_DIED
|
DATA_RUIN_DWELLER_DIED,
|
||||||
|
DATA_STATUE_ACTIVATE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum mainCreatures
|
enum mainCreatures
|
||||||
|
|||||||
@@ -306,19 +306,31 @@ public:
|
|||||||
void SetData64(uint32 type, uint64 data)
|
void SetData64(uint32 type, uint64 data)
|
||||||
{
|
{
|
||||||
if (type == DATA_RUIN_DWELLER_DIED)
|
if (type == DATA_RUIN_DWELLER_DIED)
|
||||||
DwellerGUIDs.erase(data);
|
DwellerGUIDs.erase(data);
|
||||||
|
else if (type == DATA_STATUE_ACTIVATE)
|
||||||
|
{
|
||||||
|
toActivate = data;
|
||||||
|
timer = 3500;
|
||||||
|
++phase;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 GetData(uint32 type)
|
uint32 GetData(uint32 type)
|
||||||
{
|
{
|
||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case DATA_SLAD_RAN_EVENT: return m_auiEncounter[0];
|
case DATA_SLAD_RAN_EVENT:
|
||||||
case DATA_MOORABI_EVENT: return m_auiEncounter[1];
|
return m_auiEncounter[0];
|
||||||
case DATA_GAL_DARAH_EVENT: return m_auiEncounter[2];
|
case DATA_MOORABI_EVENT:
|
||||||
case DATA_DRAKKARI_COLOSSUS_EVENT: return m_auiEncounter[3];
|
return m_auiEncounter[1];
|
||||||
case DATA_ECK_THE_FEROCIOUS_EVENT: return m_auiEncounter[4];
|
case DATA_GAL_DARAH_EVENT:
|
||||||
case DATA_ALIVE_RUIN_DWELLERS: return DwellerGUIDs.size();
|
return m_auiEncounter[2];
|
||||||
|
case DATA_DRAKKARI_COLOSSUS_EVENT:
|
||||||
|
return m_auiEncounter[3];
|
||||||
|
case DATA_ECK_THE_FEROCIOUS_EVENT:
|
||||||
|
return m_auiEncounter[4];
|
||||||
|
case DATA_ALIVE_RUIN_DWELLERS:
|
||||||
|
return DwellerGUIDs.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -328,13 +340,22 @@ public:
|
|||||||
{
|
{
|
||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case DATA_SLAD_RAN_ALTAR: return uiSladRanAltar;
|
case DATA_SLAD_RAN_ALTAR:
|
||||||
case DATA_MOORABI_ALTAR: return uiMoorabiAltar;
|
return uiSladRanAltar;
|
||||||
case DATA_DRAKKARI_COLOSSUS_ALTAR: return uiDrakkariColossusAltar;
|
case DATA_MOORABI_ALTAR:
|
||||||
case DATA_SLAD_RAN_STATUE: return uiSladRanStatue;
|
return uiMoorabiAltar;
|
||||||
case DATA_MOORABI_STATUE: return uiMoorabiStatue;
|
case DATA_DRAKKARI_COLOSSUS_ALTAR:
|
||||||
case DATA_DRAKKARI_COLOSSUS_STATUE: return uiDrakkariColossusStatue;
|
return uiDrakkariColossusAltar;
|
||||||
case DATA_DRAKKARI_COLOSSUS: return uiDrakkariColossus;
|
case DATA_SLAD_RAN_STATUE:
|
||||||
|
return uiSladRanStatue;
|
||||||
|
case DATA_MOORABI_STATUE:
|
||||||
|
return uiMoorabiStatue;
|
||||||
|
case DATA_DRAKKARI_COLOSSUS_STATUE:
|
||||||
|
return uiDrakkariColossusStatue;
|
||||||
|
case DATA_DRAKKARI_COLOSSUS:
|
||||||
|
return uiDrakkariColossus;
|
||||||
|
case DATA_STATUE_ACTIVATE:
|
||||||
|
return toActivate;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -396,17 +417,6 @@ public:
|
|||||||
OUT_LOAD_INST_DATA_COMPLETE;
|
OUT_LOAD_INST_DATA_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QueueActivation(uint64 guid, uint32 time)
|
|
||||||
{
|
|
||||||
if (timer)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
toActivate = guid;
|
|
||||||
timer = time;
|
|
||||||
phase++;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update(uint32 diff)
|
void Update(uint32 diff)
|
||||||
{
|
{
|
||||||
// Spawn the support for the bridge if necessary
|
// Spawn the support for the bridge if necessary
|
||||||
@@ -426,7 +436,6 @@ public:
|
|||||||
timer = 0;
|
timer = 0;
|
||||||
if (toActivate == uiBridge)
|
if (toActivate == uiBridge)
|
||||||
{
|
{
|
||||||
toActivate = 0;
|
|
||||||
GameObject* pBridge = instance->GetGameObject(uiBridge);
|
GameObject* pBridge = instance->GetGameObject(uiBridge);
|
||||||
GameObject* pCollision = instance->GetGameObject(uiCollision);
|
GameObject* pCollision = instance->GetGameObject(uiCollision);
|
||||||
GameObject* pSladRanStatue = instance->GetGameObject(uiSladRanStatue);
|
GameObject* pSladRanStatue = instance->GetGameObject(uiSladRanStatue);
|
||||||
@@ -456,11 +465,13 @@ public:
|
|||||||
{
|
{
|
||||||
spell = 57071;
|
spell = 57071;
|
||||||
pAltar = instance->GetGameObject(uiSladRanAltar);
|
pAltar = instance->GetGameObject(uiSladRanAltar);
|
||||||
} else if (toActivate == uiMoorabiStatue)
|
}
|
||||||
|
else if (toActivate == uiMoorabiStatue)
|
||||||
{
|
{
|
||||||
spell = 57068;
|
spell = 57068;
|
||||||
pAltar = instance->GetGameObject(uiMoorabiAltar);
|
pAltar = instance->GetGameObject(uiMoorabiAltar);
|
||||||
} else if (toActivate == uiDrakkariColossusStatue)
|
}
|
||||||
|
else if (toActivate == uiDrakkariColossusStatue)
|
||||||
{
|
{
|
||||||
spell = 57072;
|
spell = 57072;
|
||||||
pAltar = instance->GetGameObject(uiDrakkariColossusAltar);
|
pAltar = instance->GetGameObject(uiDrakkariColossusAltar);
|
||||||
@@ -479,14 +490,15 @@ public:
|
|||||||
if (GameObject* statueGO = instance->GetGameObject(toActivate))
|
if (GameObject* statueGO = instance->GetGameObject(toActivate))
|
||||||
statueGO->SetGoState(GO_STATE_READY);
|
statueGO->SetGoState(GO_STATE_READY);
|
||||||
|
|
||||||
toActivate = 0;
|
|
||||||
|
|
||||||
if (phase == 3)
|
if (phase == 3)
|
||||||
QueueActivation(uiBridge, 3000);
|
SetData64(DATA_STATUE_ACTIVATE, uiBridge);
|
||||||
else
|
else
|
||||||
SaveToDB(); // Don't save in between last statue and bridge turning in case of crash leading to stuck instance
|
SaveToDB(); // Don't save in between last statue and bridge turning in case of crash leading to stuck instance
|
||||||
}
|
}
|
||||||
} else timer -= diff;
|
toActivate = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
timer -= diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
GOState GetObjState(uint64 guid)
|
GOState GetObjState(uint64 guid)
|
||||||
@@ -514,14 +526,22 @@ public:
|
|||||||
|
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
{
|
{
|
||||||
switch(pGO->GetEntry())
|
switch (pGO->GetEntry())
|
||||||
{
|
{
|
||||||
case 192518: uiStatue = pInstance->GetData64(DATA_SLAD_RAN_STATUE); break;
|
case 192518:
|
||||||
case 192519: uiStatue = pInstance->GetData64(DATA_MOORABI_STATUE); break;
|
uiStatue = pInstance->GetData64(DATA_SLAD_RAN_STATUE);
|
||||||
case 192520: uiStatue = pInstance->GetData64(DATA_DRAKKARI_COLOSSUS_STATUE); break;
|
break;
|
||||||
|
case 192519:
|
||||||
|
uiStatue = pInstance->GetData64(DATA_MOORABI_STATUE);
|
||||||
|
break;
|
||||||
|
case 192520:
|
||||||
|
uiStatue = pInstance->GetData64(DATA_DRAKKARI_COLOSSUS_STATUE);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (CAST_INST(instance_gundrak::instance_gundrak_InstanceMapScript, pInstance)->QueueActivation(uiStatue, 3500))
|
|
||||||
|
if (!pInstance->GetData64(DATA_STATUE_ACTIVATE))
|
||||||
{
|
{
|
||||||
|
pInstance->SetData64(DATA_STATUE_ACTIVATE, uiStatue);
|
||||||
pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
|
pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
|
||||||
pGO->SetGoState(GO_STATE_ACTIVE);
|
pGO->SetGoState(GO_STATE_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -862,11 +862,11 @@ class instance_icecrown_citadel : public InstanceMapScript
|
|||||||
case CRITERIA_KILL_LANA_THEL_10M:
|
case CRITERIA_KILL_LANA_THEL_10M:
|
||||||
case CRITERIA_ONCE_BITTEN_TWICE_SHY_10N:
|
case CRITERIA_ONCE_BITTEN_TWICE_SHY_10N:
|
||||||
case CRITERIA_ONCE_BITTEN_TWICE_SHY_10V:
|
case CRITERIA_ONCE_BITTEN_TWICE_SHY_10V:
|
||||||
return CAST_INST(InstanceMap, instance)->GetMaxPlayers() == 10;
|
return instance->ToInstanceMap()->GetMaxPlayers() == 10;
|
||||||
case CRITERIA_KILL_LANA_THEL_25M:
|
case CRITERIA_KILL_LANA_THEL_25M:
|
||||||
case CRITERIA_ONCE_BITTEN_TWICE_SHY_25N:
|
case CRITERIA_ONCE_BITTEN_TWICE_SHY_25N:
|
||||||
case CRITERIA_ONCE_BITTEN_TWICE_SHY_25V:
|
case CRITERIA_ONCE_BITTEN_TWICE_SHY_25V:
|
||||||
return CAST_INST(InstanceMap, instance)->GetMaxPlayers() == 25;
|
return instance->ToInstanceMap()->GetMaxPlayers() == 25;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1524,7 +1524,7 @@ public:
|
|||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if (me->isSummon())
|
if (me->isSummon())
|
||||||
if (Unit* pThassarian = me->ToTempSummon()(me)->GetSummoner())
|
if (Unit* pThassarian = me->ToTempSummon()->GetSummoner())
|
||||||
DoScriptText(SAY_THASSARIAN_4, pThassarian);
|
DoScriptText(SAY_THASSARIAN_4, pThassarian);
|
||||||
uiPhaseTimer = 5000;
|
uiPhaseTimer = 5000;
|
||||||
++Phase;
|
++Phase;
|
||||||
|
|||||||
Reference in New Issue
Block a user