Core/Scripts/Ulduar: fix Ulduar Teleporter
- fix ulduar save system - adjust leviathan to use correct savesystem --HG-- branch : trunk
This commit is contained in:
@@ -212,7 +212,6 @@ public:
|
||||
boss_flame_leviathanAI(Creature* pCreature) : BossAI(pCreature, TYPE_LEVIATHAN), vehicle(pCreature->GetVehicleKit())
|
||||
{
|
||||
assert(vehicle);
|
||||
pInstance = me->GetInstanceScript();
|
||||
uiActiveTowers = 4;
|
||||
uiShutdown = 0;
|
||||
ActiveTowers = false;
|
||||
@@ -220,14 +219,13 @@ public:
|
||||
towerOfLife = false;
|
||||
towerOfFlames = false;
|
||||
towerOfFrost = false;
|
||||
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 49560, true); //deathgrip
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_STUNNED);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
InstanceScript* pInstance;
|
||||
|
||||
Vehicle* vehicle;
|
||||
uint8 uiActiveTowers;
|
||||
uint8 uiShutdown;
|
||||
@@ -240,7 +238,6 @@ public:
|
||||
void Reset()
|
||||
{
|
||||
_Reset();
|
||||
pInstance->SetData(TYPE_LEVIATHAN, NOT_STARTED);
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
InstallAdds(true);
|
||||
}
|
||||
@@ -248,7 +245,6 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
pInstance->SetData(TYPE_LEVIATHAN, IN_PROGRESS);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
events.ScheduleEvent(EVENT_PURSUE, 30*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MISSILE, 1500);
|
||||
@@ -347,7 +343,6 @@ public:
|
||||
void JustDied(Unit* /*victim*/)
|
||||
{
|
||||
_JustDied();
|
||||
pInstance->SetData(TYPE_LEVIATHAN, DONE); //_Reset doesnt do this correctly
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (ActiveTowers)
|
||||
@@ -355,13 +350,13 @@ public:
|
||||
switch (uiActiveTowers)
|
||||
{
|
||||
case 4:
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBIT_UARY, ACHIEV_25_ORBIT_UARY));
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBIT_UARY, ACHIEV_25_ORBIT_UARY));
|
||||
case 3:
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_NUKED_FROM_ORBIT, ACHIEV_25_NUKED_FROM_ORBIT));
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_NUKED_FROM_ORBIT, ACHIEV_25_NUKED_FROM_ORBIT));
|
||||
case 2:
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_DEVASTATION, ACHIEV_25_ORBITAL_DEVASTATION));
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_DEVASTATION, ACHIEV_25_ORBITAL_DEVASTATION));
|
||||
case 1:
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_BOMBARDMENT, ACHIEV_25_ORBITAL_BOMBARDMENT));
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_BOMBARDMENT, ACHIEV_25_ORBITAL_BOMBARDMENT));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -751,10 +746,10 @@ public:
|
||||
{
|
||||
boss_flame_leviathan_overload_deviceAI(Creature* pCreature) : PassiveAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceScript();
|
||||
instance = pCreature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript *pInstance;
|
||||
InstanceScript *instance;
|
||||
|
||||
void DoAction(const int32 param)
|
||||
{
|
||||
@@ -922,24 +917,15 @@ public:
|
||||
{
|
||||
npc_colossusAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceScript();
|
||||
instance = pCreature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript *pInstance;
|
||||
InstanceScript *instance;
|
||||
|
||||
void JustDied(Unit* /*Who*/)
|
||||
{
|
||||
if (me->GetHomePosition().IsInDist(Center,50.f))
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(TYPE_COLOSSUS,pInstance->GetData(TYPE_COLOSSUS)+1);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (pInstance->GetData(TYPE_COLOSSUS == 2))
|
||||
pInstance->SetBossState(DATA_PRELEVIATHAN, DONE); // Unlocks the Teleport 2nd Location
|
||||
}
|
||||
}
|
||||
instance->SetData(TYPE_COLOSSUS,instance->GetData(TYPE_COLOSSUS)+1);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 /*diff*/)
|
||||
@@ -1197,14 +1183,14 @@ public:
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
{
|
||||
pPlayer->PlayerTalkClass->ClearMenus();
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
InstanceScript* instance = pCreature->GetInstanceScript();
|
||||
switch(uiAction)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
if (pPlayer)
|
||||
{
|
||||
pPlayer->PrepareGossipMenu(pCreature);
|
||||
pInstance->instance->LoadGrid(364,-16); //make sure leviathan is loaded
|
||||
instance->instance->LoadGrid(364,-16); //make sure leviathan is loaded
|
||||
|
||||
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,GOSSIP_ITEM_2,GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+2);
|
||||
@@ -1215,7 +1201,7 @@ public:
|
||||
if (pPlayer)
|
||||
pPlayer->CLOSE_GOSSIP_MENU();
|
||||
|
||||
if (Creature* pLeviathan = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_LEVIATHAN)))
|
||||
if (Creature* pLeviathan = instance->instance->GetCreature(instance->GetData64(TYPE_LEVIATHAN)))
|
||||
{
|
||||
CAST_AI(boss_flame_leviathan::boss_flame_leviathanAI, (pLeviathan->AI()))->DoAction(0); //enable hard mode activating the 4 additional events spawning additional vehicles
|
||||
pCreature->SetVisibility(VISIBILITY_OFF);
|
||||
@@ -1236,8 +1222,8 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
{
|
||||
InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
if (pInstance && pInstance->GetData(TYPE_LEVIATHAN) !=DONE && pPlayer)
|
||||
InstanceScript* instance = pCreature->GetInstanceScript();
|
||||
if (instance && instance->GetData(TYPE_LEVIATHAN) !=DONE && pPlayer)
|
||||
{
|
||||
pPlayer->PrepareGossipMenu(pCreature);
|
||||
|
||||
@@ -1256,10 +1242,10 @@ public:
|
||||
{
|
||||
npc_lorekeeperAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceScript();
|
||||
instance = pCreature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* pInstance;
|
||||
InstanceScript* instance;
|
||||
|
||||
void DoAction(const int32 uiAction)
|
||||
{
|
||||
@@ -1314,8 +1300,8 @@ public:
|
||||
//}
|
||||
//bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
//{
|
||||
// InstanceScript* pInstance = pCreature->GetInstanceScript();
|
||||
// if (pInstance && pInstance->GetData(TYPE_LEVIATHAN) !=DONE)
|
||||
// InstanceScript* instance = pCreature->GetInstanceScript();
|
||||
// if (instance && instance->GetData(TYPE_LEVIATHAN) !=DONE)
|
||||
// {
|
||||
// pPlayer->PrepareGossipMenu(pCreature);
|
||||
//
|
||||
@@ -1335,22 +1321,22 @@ public:
|
||||
|
||||
void OnDestroyed(Player* /*pPlayer*/, GameObject* pGO, uint32 /*value*/)
|
||||
{
|
||||
InstanceScript* pInstance = pGO->GetInstanceScript();
|
||||
InstanceScript* instance = pGO->GetInstanceScript();
|
||||
if (pGO->GetGOValue()->building.health == 0)
|
||||
{
|
||||
switch(pGO->GetEntry())
|
||||
{
|
||||
case GO_TOWER_OF_STORMS:
|
||||
pInstance->ProcessEvent(pGO, EVENT_TOWER_OF_STORM_DESTROYED);
|
||||
instance->ProcessEvent(pGO, EVENT_TOWER_OF_STORM_DESTROYED);
|
||||
break;
|
||||
case GO_TOWER_OF_FLAMES:
|
||||
pInstance->ProcessEvent(pGO, EVENT_TOWER_OF_FLAMES_DESTROYED);
|
||||
instance->ProcessEvent(pGO, EVENT_TOWER_OF_FLAMES_DESTROYED);
|
||||
break;
|
||||
case GO_TOWER_OF_FROST:
|
||||
pInstance->ProcessEvent(pGO, EVENT_TOWER_OF_FROST_DESTROYED);
|
||||
instance->ProcessEvent(pGO, EVENT_TOWER_OF_FROST_DESTROYED);
|
||||
break;
|
||||
case GO_TOWER_OF_LIFE:
|
||||
pInstance->ProcessEvent(pGO, EVENT_TOWER_OF_LIFE_DESTROYED);
|
||||
instance->ProcessEvent(pGO, EVENT_TOWER_OF_LIFE_DESTROYED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@ public:
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
uiIgnisGUID = 0;
|
||||
uiRazorscaleGUID = 0;
|
||||
uiXT002GUID = 0;
|
||||
@@ -211,7 +212,6 @@ public:
|
||||
switch(uiEventId)
|
||||
{
|
||||
case EVENT_TOWER_OF_STORM_DESTROYED:
|
||||
//pGO->GetInstanceScript()->SetData(DATA_TOWER_STORMS,DESTROYED);
|
||||
pFlameLeviathan->AI()->DoAction(1);
|
||||
break;
|
||||
case EVENT_TOWER_OF_FROST_DESTROYED:
|
||||
@@ -226,21 +226,15 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
switch(type)
|
||||
bool SetBossState(uint32 type, EncounterState state)
|
||||
{
|
||||
/*case TYPE_IGNIS:
|
||||
case TYPE_RAZORSCALE:
|
||||
case TYPE_XT002:
|
||||
case TYPE_ASSEMBLY:
|
||||
case TYPE_AURIAYA:
|
||||
case TYPE_MIMIRON:
|
||||
case TYPE_VEZAX:
|
||||
case TYPE_YOGGSARON:
|
||||
break;*/
|
||||
if (!InstanceScript::SetBossState(type, state))
|
||||
return false;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_LEVIATHAN:
|
||||
if (data == IN_PROGRESS)
|
||||
if (state == IN_PROGRESS)
|
||||
{
|
||||
for (uint8 uiI = 0; uiI < 7; ++uiI)
|
||||
HandleGameObject(uiLeviathanDoor[uiI],false);
|
||||
@@ -251,26 +245,44 @@ public:
|
||||
HandleGameObject(uiLeviathanDoor[uiI],true);
|
||||
}
|
||||
break;
|
||||
case TYPE_IGNIS:
|
||||
case TYPE_RAZORSCALE:
|
||||
case TYPE_XT002:
|
||||
case TYPE_ASSEMBLY:
|
||||
case TYPE_AURIAYA:
|
||||
case TYPE_MIMIRON:
|
||||
case TYPE_VEZAX:
|
||||
case TYPE_YOGGSARON:
|
||||
break;
|
||||
case TYPE_KOLOGARN:
|
||||
if (data == DONE)
|
||||
if (state == DONE)
|
||||
if (GameObject* pGO = instance->GetGameObject(uiKologarnChestGUID))
|
||||
pGO->SetRespawnTime(pGO->GetRespawnDelay());
|
||||
break;
|
||||
case TYPE_HODIR:
|
||||
if (data == DONE)
|
||||
if (state == DONE)
|
||||
if (GameObject* pGO = instance->GetGameObject(uiHodirChestGUID))
|
||||
pGO->SetRespawnTime(pGO->GetRespawnDelay());
|
||||
break;
|
||||
case TYPE_THORIM:
|
||||
if (data == DONE)
|
||||
if (state == DONE)
|
||||
if (GameObject* pGO = instance->GetGameObject(uiThorimChestGUID))
|
||||
pGO->SetRespawnTime(pGO->GetRespawnDelay());
|
||||
break;
|
||||
case TYPE_FREYA:
|
||||
if (data == DONE)
|
||||
if (state == DONE)
|
||||
if (GameObject* pGO = instance->GetGameObject(uiFreyaChestGUID))
|
||||
pGO->SetRespawnTime(pGO->GetRespawnDelay());
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case TYPE_COLOSSUS:
|
||||
uiEncounter[TYPE_COLOSSUS] = data;
|
||||
if (data == 2)
|
||||
@@ -279,14 +291,12 @@ public:
|
||||
pBoss->AI()->DoAction(10);
|
||||
if (GameObject* pGate = instance->GetGameObject(uiLeviathanGateGUID))
|
||||
pGate->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
|
||||
SaveToDB();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data)
|
||||
@@ -320,20 +330,6 @@ public:
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case TYPE_LEVIATHAN:
|
||||
case TYPE_IGNIS:
|
||||
case TYPE_RAZORSCALE:
|
||||
case TYPE_XT002:
|
||||
case TYPE_ASSEMBLY:
|
||||
case TYPE_KOLOGARN:
|
||||
case TYPE_AURIAYA:
|
||||
case TYPE_MIMIRON:
|
||||
case TYPE_HODIR:
|
||||
case TYPE_THORIM:
|
||||
case TYPE_FREYA:
|
||||
case TYPE_VEZAX:
|
||||
case TYPE_YOGGSARON:
|
||||
case TYPE_ALGALON:
|
||||
case TYPE_COLOSSUS:
|
||||
return uiEncounter[type];
|
||||
}
|
||||
@@ -346,15 +342,10 @@ public:
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "U U " << uiEncounter[0] << " " << uiEncounter[1] << " " << uiEncounter[2] << " " << uiEncounter[3]
|
||||
<< " " << uiEncounter[4] << " " << uiEncounter[5] << " " << uiEncounter[6] << " " << uiEncounter[7]
|
||||
<< " " << uiEncounter[8] << " " << uiEncounter[9] << " " << uiEncounter[10] << " " << uiEncounter[11]
|
||||
<< " " << uiEncounter[12] << " " << uiEncounter[13] << " " << uiEncounter[14];
|
||||
|
||||
m_strInstData = saveStream.str();
|
||||
saveStream << "U U " << GetBossSaveData() << " " << uiEncounter[14];
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return m_strInstData;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* strIn)
|
||||
@@ -368,21 +359,21 @@ public:
|
||||
OUT_LOAD_INST_DATA(strIn);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
uint32 data0, data1, data2, data3, data4, data5, data6,
|
||||
data7, data8, data9, data10, data11, data12, data13, data14;
|
||||
uint32 data14;
|
||||
|
||||
std::istringstream loadStream(strIn);
|
||||
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4 >> data5 >> data6
|
||||
>> data7 >> data8 >> data9 >> data10 >> data11 >> data12 >> data13 >> data14;
|
||||
loadStream >> dataHead1 >> dataHead2 >> data14;
|
||||
|
||||
if (dataHead1 == 'U' && dataHead2 == 'U')
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
loadStream >> uiEncounter[i];
|
||||
|
||||
if (uiEncounter[i] == IN_PROGRESS)
|
||||
uiEncounter[i] = NOT_STARTED;
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
loadStream >> uiEncounter[data14]; //colossus pre leviathan
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
|
||||
@@ -43,7 +43,6 @@ enum eTypes
|
||||
DATA_BRUNDIR = 22,
|
||||
DATA_RUNEMASTER_MOLGEIM = 23,
|
||||
DATA_STORMCALLER_BRUNDIR = 24,
|
||||
DATA_PRELEVIATHAN = 25,
|
||||
|
||||
NPC_LEVIATHAN = 33113,
|
||||
NPC_IGNIS = 33118,
|
||||
|
||||
@@ -89,31 +89,24 @@ public:
|
||||
|
||||
bool OnGossipHello(Player *pPlayer, GameObject *pGO)
|
||||
{
|
||||
InstanceScript* pInstance = pGO->GetInstanceScript();
|
||||
if (!pInstance)
|
||||
return false;
|
||||
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Expedition Base Camp", GOSSIP_SENDER_MAIN, BASE_CAMP);
|
||||
if (pInstance->GetBossState(DATA_PRELEVIATHAN) == DONE || pPlayer->isGameMaster())
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Expedition Base Camp", GOSSIP_SENDER_MAIN, BASE_CAMP);
|
||||
if (InstanceScript* pInstance = pGO->GetInstanceScript())
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
|
||||
if (pInstance->GetBossState(TYPE_LEVIATHAN) == DONE || pPlayer->isGameMaster())
|
||||
if (pInstance->GetData(TYPE_COLOSSUS) == 2) //count of 2 collossus death
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
|
||||
if (pInstance->GetBossState(TYPE_LEVIATHAN) == DONE)
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Colossal Forge", GOSSIP_SENDER_MAIN, FORGE);
|
||||
if (pInstance->GetBossState(TYPE_XT002) == DONE)
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Colossal Forge", GOSSIP_SENDER_MAIN, FORGE);
|
||||
if (pInstance->GetBossState(TYPE_XT002) == DONE || pPlayer->isGameMaster())
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Scrapyard", GOSSIP_SENDER_MAIN, SCRAPYARD);
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Antechamber of Ulduar", GOSSIP_SENDER_MAIN, ANTECHAMBER);
|
||||
if (pInstance->GetBossState(TYPE_KOLOGARN) == DONE || pPlayer->isGameMaster())
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Shattered Walkway", GOSSIP_SENDER_MAIN, WALKWAY);
|
||||
if (pInstance->GetBossState(TYPE_AURIAYA) == DONE || pPlayer->isGameMaster())
|
||||
pPlayer->ADD_GOSSIP_ITEM(0, "Teleport to the Conservatory of Life", GOSSIP_SENDER_MAIN, CONSERVATORY);
|
||||
}
|
||||
}
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Scrapyard", GOSSIP_SENDER_MAIN, SCRAPYARD);
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Antechamber of Ulduar", GOSSIP_SENDER_MAIN, ANTECHAMBER);
|
||||
}
|
||||
if (pInstance->GetBossState(TYPE_KOLOGARN) == DONE)
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Shattered Walkway", GOSSIP_SENDER_MAIN, WALKWAY);
|
||||
if (pInstance->GetBossState(TYPE_AURIAYA) == DONE)
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Conservatory of Life", GOSSIP_SENDER_MAIN, CONSERVATORY);
|
||||
}
|
||||
pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pGO->GetGUID());
|
||||
pPlayer->SEND_GOSSIP_MENU(pGO->GetGOInfo()->GetGossipMenuId(), pGO->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user