mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-29 05:11:55 +01:00
Merge commit '40bb5743acc0d117db3a5b0e0b1919793d25c392' into 4.3.4
Conflicts: sql/updates/world/2014_11_05_00_world.sql
This commit is contained in:
@@ -887,7 +887,7 @@ class go_loosely_turned_soil : public GameObjectScript
|
||||
public:
|
||||
go_loosely_turned_soil() : GameObjectScript("go_loosely_turned_soil") { }
|
||||
|
||||
bool OnGossipHello(Player* player, GameObject* go) override
|
||||
bool OnGossipHello(Player* player, GameObject* /*go*/) override
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
if (instance->GetBossState(DATA_HORSEMAN_EVENT) == IN_PROGRESS || player->GetQuestStatus(QUEST_CALL_THE_HEADLESS_HORSEMAN) != QUEST_STATUS_COMPLETE)
|
||||
|
||||
@@ -83,6 +83,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
IsDriveMeCrazyEligible = true;
|
||||
_algalonSummoned = false;
|
||||
_summonAlgalon = false;
|
||||
_CoUAchivePlayerDeathMask = 0;
|
||||
|
||||
memset(_summonObservationRingKeeper, 0, sizeof(_summonObservationRingKeeper));
|
||||
memset(_summonYSKeeper, 0, sizeof(_summonYSKeeper));
|
||||
@@ -592,6 +593,19 @@ class instance_ulduar : public InstanceMapScript
|
||||
|
||||
void OnUnitDeath(Unit* unit) override
|
||||
{
|
||||
// Champion/Conqueror of Ulduar
|
||||
if (unit->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
for (uint8 i = 0; i < BOSS_ALGALON; i++)
|
||||
{
|
||||
if (GetBossState(i) == IN_PROGRESS)
|
||||
{
|
||||
_CoUAchivePlayerDeathMask |= (1 << i);
|
||||
SaveToDB();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Creature* creature = unit->ToCreature();
|
||||
if (!creature)
|
||||
return;
|
||||
@@ -1007,6 +1021,45 @@ class instance_ulduar : public InstanceMapScript
|
||||
case CRITERIA_ALONE_IN_THE_DARKNESS_10:
|
||||
case CRITERIA_ALONE_IN_THE_DARKNESS_25:
|
||||
return keepersCount == 0;
|
||||
case CRITERIA_C_O_U_LEVIATHAN_10:
|
||||
case CRITERIA_C_O_U_LEVIATHAN_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_LEVIATHAN)) == 0;
|
||||
case CRITERIA_C_O_U_IGNIS_10:
|
||||
case CRITERIA_C_O_U_IGNIS_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_IGNIS)) == 0;
|
||||
case CRITERIA_C_O_U_RAZORSCALE_10:
|
||||
case CRITERIA_C_O_U_RAZORSCALE_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_RAZORSCALE)) == 0;
|
||||
case CRITERIA_C_O_U_XT002_10:
|
||||
case CRITERIA_C_O_U_XT002_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_XT002)) == 0;
|
||||
case CRITERIA_C_O_U_IRON_COUNCIL_10:
|
||||
case CRITERIA_C_O_U_IRON_COUNCIL_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_ASSEMBLY_OF_IRON)) == 0;
|
||||
case CRITERIA_C_O_U_KOLOGARN_10:
|
||||
case CRITERIA_C_O_U_KOLOGARN_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_KOLOGARN)) == 0;
|
||||
case CRITERIA_C_O_U_AURIAYA_10:
|
||||
case CRITERIA_C_O_U_AURIAYA_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_AURIAYA)) == 0;
|
||||
case CRITERIA_C_O_U_HODIR_10:
|
||||
case CRITERIA_C_O_U_HODIR_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_HODIR)) == 0;
|
||||
case CRITERIA_C_O_U_THORIM_10:
|
||||
case CRITERIA_C_O_U_THORIM_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_THORIM)) == 0;
|
||||
case CRITERIA_C_O_U_FREYA_10:
|
||||
case CRITERIA_C_O_U_FREYA_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_FREYA)) == 0;
|
||||
case CRITERIA_C_O_U_MIMIRON_10:
|
||||
case CRITERIA_C_O_U_MIMIRON_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_MIMIRON)) == 0;
|
||||
case CRITERIA_C_O_U_VEZAX_10:
|
||||
case CRITERIA_C_O_U_VEZAX_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_VEZAX)) == 0;
|
||||
case CRITERIA_C_O_U_YOGG_SARON_10:
|
||||
case CRITERIA_C_O_U_YOGG_SARON_25:
|
||||
return (_CoUAchivePlayerDeathMask & (1 << BOSS_YOGG_SARON)) == 0;
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -1018,6 +1071,8 @@ class instance_ulduar : public InstanceMapScript
|
||||
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
data << ' ' << uint32(KeeperGUIDs[i] ? 1 : 0);
|
||||
|
||||
data << ' ' << _CoUAchivePlayerDeathMask;
|
||||
}
|
||||
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
@@ -1056,6 +1111,8 @@ class instance_ulduar : public InstanceMapScript
|
||||
_summonObservationRingKeeper[2] = true;
|
||||
if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3])
|
||||
_summonObservationRingKeeper[3] = true;
|
||||
|
||||
data >> _CoUAchivePlayerDeathMask;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
@@ -1095,6 +1152,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
bool _summonYSKeeper[4];
|
||||
uint32 _maxArmorItemLevel;
|
||||
uint32 _maxWeaponItemLevel;
|
||||
uint32 _CoUAchivePlayerDeathMask;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -36,16 +36,16 @@ enum UlduarBosses
|
||||
BOSS_ASSEMBLY_OF_IRON = 4,
|
||||
BOSS_KOLOGARN = 5,
|
||||
BOSS_AURIAYA = 6,
|
||||
BOSS_MIMIRON = 7,
|
||||
BOSS_HODIR = 8,
|
||||
BOSS_THORIM = 9,
|
||||
BOSS_FREYA = 10,
|
||||
BOSS_BRIGHTLEAF = 11,
|
||||
BOSS_IRONBRANCH = 12,
|
||||
BOSS_STONEBARK = 13,
|
||||
BOSS_VEZAX = 14,
|
||||
BOSS_YOGG_SARON = 15,
|
||||
BOSS_ALGALON = 16,
|
||||
BOSS_HODIR = 7,
|
||||
BOSS_THORIM = 8,
|
||||
BOSS_FREYA = 9,
|
||||
BOSS_MIMIRON = 10,
|
||||
BOSS_VEZAX = 11,
|
||||
BOSS_YOGG_SARON = 12,
|
||||
BOSS_ALGALON = 13,
|
||||
BOSS_BRIGHTLEAF = 14,
|
||||
BOSS_IRONBRANCH = 15,
|
||||
BOSS_STONEBARK = 16,
|
||||
};
|
||||
|
||||
enum UlduarNPCs
|
||||
@@ -295,6 +295,35 @@ enum UlduarAchievementCriteriaIds
|
||||
CRITERIA_ALONE_IN_THE_DARKNESS_10 = 10412,
|
||||
CRITERIA_ALONE_IN_THE_DARKNESS_25 = 10417,
|
||||
CRITERIA_HERALD_OF_TITANS = 10678,
|
||||
|
||||
// Champion of Ulduar
|
||||
CRITERIA_C_O_U_LEVIATHAN_10 = 10042,
|
||||
CRITERIA_C_O_U_IGNIS_10 = 10342,
|
||||
CRITERIA_C_O_U_RAZORSCALE_10 = 10340,
|
||||
CRITERIA_C_O_U_XT002_10 = 10341,
|
||||
CRITERIA_C_O_U_IRON_COUNCIL_10 = 10598,
|
||||
CRITERIA_C_O_U_KOLOGARN_10 = 10348,
|
||||
CRITERIA_C_O_U_AURIAYA_10 = 10351,
|
||||
CRITERIA_C_O_U_HODIR_10 = 10439,
|
||||
CRITERIA_C_O_U_THORIM_10 = 10403,
|
||||
CRITERIA_C_O_U_FREYA_10 = 10582,
|
||||
CRITERIA_C_O_U_MIMIRON_10 = 10347,
|
||||
CRITERIA_C_O_U_VEZAX_10 = 10349,
|
||||
CRITERIA_C_O_U_YOGG_SARON_10 = 10350,
|
||||
// Conqueror of Ulduar
|
||||
CRITERIA_C_O_U_LEVIATHAN_25 = 10352,
|
||||
CRITERIA_C_O_U_IGNIS_25 = 10355,
|
||||
CRITERIA_C_O_U_RAZORSCALE_25 = 10353,
|
||||
CRITERIA_C_O_U_XT002_25 = 10354,
|
||||
CRITERIA_C_O_U_IRON_COUNCIL_25 = 10599,
|
||||
CRITERIA_C_O_U_KOLOGARN_25 = 10357,
|
||||
CRITERIA_C_O_U_AURIAYA_25 = 10363,
|
||||
CRITERIA_C_O_U_HODIR_25 = 10719,
|
||||
CRITERIA_C_O_U_THORIM_25 = 10404,
|
||||
CRITERIA_C_O_U_FREYA_25 = 10583,
|
||||
CRITERIA_C_O_U_MIMIRON_25 = 10361,
|
||||
CRITERIA_C_O_U_VEZAX_25 = 10362,
|
||||
CRITERIA_C_O_U_YOGG_SARON_25 = 10364
|
||||
};
|
||||
|
||||
enum UlduarData
|
||||
|
||||
Reference in New Issue
Block a user