Scripts/Ulduar: Properly fixed Orbital Bombardment & Orbital Devastation & Nuked From Orbit & Orbit-uary
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
DELETE FROM `disables` WHERE `entry` IN (10056,10057,10058,10059,10060,10061,10218,10219) AND `sourceType`=4;
|
||||||
|
|
||||||
|
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (10056,10057,10058,10059,10060,10061,10218,10219) AND `type`=11;
|
||||||
|
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||||
|
VALUES
|
||||||
|
(10056,11,0,0,'achievement_orbital_bombardment'),
|
||||||
|
(10057,11,0,0,'achievement_orbital_devastation'),
|
||||||
|
(10058,11,0,0,'achievement_nuked_from_orbit'),
|
||||||
|
(10059,11,0,0,'achievement_orbital_bombardment'),
|
||||||
|
(10060,11,0,0,'achievement_orbital_devastation'),
|
||||||
|
(10061,11,0,0,'achievement_nuked_from_orbit'),
|
||||||
|
(10218,11,0,0,'achievement_orbit_uary'),
|
||||||
|
(10219,11,0,0,'achievement_orbit_uary');
|
||||||
@@ -158,20 +158,6 @@ enum Yells
|
|||||||
SAY_OVERLOAD_3 = -1603075,
|
SAY_OVERLOAD_3 = -1603075,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AchievementData
|
|
||||||
{
|
|
||||||
ACHIEV_10_NUKED_FROM_ORBIT = 2915,
|
|
||||||
ACHIEV_25_NUKED_FROM_ORBIT = 2917,
|
|
||||||
ACHIEV_10_ORBITAL_BOMBARDMENT = 2913,
|
|
||||||
ACHIEV_25_ORBITAL_BOMBARDMENT = 2918,
|
|
||||||
ACHIEV_10_ORBITAL_DEVASTATION = 2914,
|
|
||||||
ACHIEV_25_ORBITAL_DEVASTATION = 2916,
|
|
||||||
ACHIEV_10_ORBIT_UARY = 3056,
|
|
||||||
ACHIEV_25_ORBIT_UARY = 3057,
|
|
||||||
ACHIEV_10_SIEGE_OF_ULDUAR = 2886,
|
|
||||||
ACHIEV_25_SIEGE_OF_ULDUAR = 2887,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum actions
|
enum actions
|
||||||
{
|
{
|
||||||
ACTION_TOWER_OF_STORM_DESTROYED = 1,
|
ACTION_TOWER_OF_STORM_DESTROYED = 1,
|
||||||
@@ -212,6 +198,8 @@ Position const PosDemolisher[5] =
|
|||||||
{-798.01f, -227.24f, 429.84f, 1.446f},
|
{-798.01f, -227.24f, 429.84f, 1.446f},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define DATA_ORBIT_ACHIEVEMENTS 1
|
||||||
|
|
||||||
class boss_flame_leviathan : public CreatureScript
|
class boss_flame_leviathan : public CreatureScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -321,21 +309,6 @@ class boss_flame_leviathan : public CreatureScript
|
|||||||
{
|
{
|
||||||
_JustDied();
|
_JustDied();
|
||||||
DoScriptText(SAY_DEATH, me);
|
DoScriptText(SAY_DEATH, me);
|
||||||
|
|
||||||
if (ActiveTowers)
|
|
||||||
{
|
|
||||||
switch (ActiveTowersCount)
|
|
||||||
{
|
|
||||||
case 4:
|
|
||||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBIT_UARY, ACHIEV_25_ORBIT_UARY));
|
|
||||||
case 3:
|
|
||||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_NUKED_FROM_ORBIT, ACHIEV_25_NUKED_FROM_ORBIT));
|
|
||||||
case 2:
|
|
||||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_DEVASTATION, ACHIEV_25_ORBITAL_DEVASTATION));
|
|
||||||
case 1:
|
|
||||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_BOMBARDMENT, ACHIEV_25_ORBITAL_BOMBARDMENT));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellHit(Unit* /*caster*/, SpellEntry const* spell)
|
void SpellHit(Unit* /*caster*/, SpellEntry const* spell)
|
||||||
@@ -358,6 +331,8 @@ class boss_flame_leviathan : public CreatureScript
|
|||||||
return Shutout ? 1 : 0;
|
return Shutout ? 1 : 0;
|
||||||
case DATA_UNBROKEN:
|
case DATA_UNBROKEN:
|
||||||
return Unbroken ? 1 : 0;
|
return Unbroken ? 1 : 0;
|
||||||
|
case DATA_ORBIT_ACHIEVEMENTS:
|
||||||
|
return ActiveTowersCount;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1411,6 +1386,78 @@ class achievement_unbroken : public AchievementCriteriaScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class achievement_orbital_bombardment : public AchievementCriteriaScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
achievement_orbital_bombardment() : AchievementCriteriaScript("achievement_orbital_bombardment") { }
|
||||||
|
|
||||||
|
bool OnCheck(Player* /*source*/, Unit* target)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Creature* Leviathan = target->ToCreature())
|
||||||
|
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class achievement_orbital_devastation : public AchievementCriteriaScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
achievement_orbital_devastation() : AchievementCriteriaScript("achievement_orbital_devastation") { }
|
||||||
|
|
||||||
|
bool OnCheck(Player* /*source*/, Unit* target)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Creature* Leviathan = target->ToCreature())
|
||||||
|
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 2)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class achievement_nuked_from_orbit : public AchievementCriteriaScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
achievement_nuked_from_orbit() : AchievementCriteriaScript("achievement_nuked_from_orbit") { }
|
||||||
|
|
||||||
|
bool OnCheck(Player* /*source*/, Unit* target)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Creature* Leviathan = target->ToCreature())
|
||||||
|
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 3)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class achievement_orbit_uary : public AchievementCriteriaScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
achievement_orbit_uary() : AchievementCriteriaScript("achievement_orbit_uary") { }
|
||||||
|
|
||||||
|
bool OnCheck(Player* /*source*/, Unit* target)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Creature* Leviathan = target->ToCreature())
|
||||||
|
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) == 4)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_boss_flame_leviathan()
|
void AddSC_boss_flame_leviathan()
|
||||||
{
|
{
|
||||||
new boss_flame_leviathan();
|
new boss_flame_leviathan();
|
||||||
@@ -1436,4 +1483,8 @@ void AddSC_boss_flame_leviathan()
|
|||||||
new achievement_three_car_garage_siege();
|
new achievement_three_car_garage_siege();
|
||||||
new achievement_shutout();
|
new achievement_shutout();
|
||||||
new achievement_unbroken();
|
new achievement_unbroken();
|
||||||
|
new achievement_orbital_bombardment();
|
||||||
|
new achievement_orbital_devastation();
|
||||||
|
new achievement_nuked_from_orbit();
|
||||||
|
new achievement_orbit_uary();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user