Scripts/VioletHold: Properly fixed achievement Defenseless
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=6803 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=6803 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(6803,11,0,0,'achievement_defenseless');
|
||||
@@ -159,7 +159,28 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_defenseless : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
InstanceScript* instance = target->GetInstanceScript();
|
||||
if (!instance)
|
||||
return false;
|
||||
|
||||
if (!instance->GetData(DATA_DEFENSELESS))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_cyanigosa()
|
||||
{
|
||||
new boss_cyanigosa();
|
||||
new achievement_defenseless();
|
||||
}
|
||||
|
||||
@@ -93,15 +93,12 @@ enum Yells
|
||||
{
|
||||
CYANIGOSA_SAY_SPAWN = -1608005
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
CYANIGOSA_SPELL_TRANSFORM = 58668,
|
||||
CYANIGOSA_BLUE_AURA = 47759,
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_DEFENSELESS = 1816
|
||||
};
|
||||
|
||||
class instance_violet_hold : public InstanceMapScript
|
||||
{
|
||||
@@ -165,6 +162,7 @@ public:
|
||||
bool bWiped;
|
||||
bool bIsDoorSpellCasted;
|
||||
bool bCrystalActivated;
|
||||
bool defenseless;
|
||||
|
||||
std::list<uint8> NpcAtDoorCastingList;
|
||||
|
||||
@@ -214,6 +212,7 @@ public:
|
||||
bActive = false;
|
||||
bIsDoorSpellCasted = false;
|
||||
bCrystalActivated = false;
|
||||
defenseless = true;
|
||||
uiMainEventPhase = NOT_STARTED;
|
||||
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
@@ -334,8 +333,6 @@ public:
|
||||
uiMainEventPhase = DONE;
|
||||
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
||||
pMainDoor->SetGoState(GO_STATE_ACTIVE);
|
||||
if (!bCrystalActivated && uiDoorIntegrity == 100)
|
||||
DoCompleteAchievement(ACHIEV_DEFENSELESS);
|
||||
}
|
||||
break;
|
||||
case DATA_WAVE_COUNT:
|
||||
@@ -350,6 +347,7 @@ public:
|
||||
break;
|
||||
case DATA_DOOR_INTEGRITY:
|
||||
uiDoorIntegrity = data;
|
||||
defenseless = false;
|
||||
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, uiDoorIntegrity);
|
||||
break;
|
||||
case DATA_NPC_PRESENCE_AT_DOOR_ADD:
|
||||
@@ -432,6 +430,7 @@ public:
|
||||
case DATA_FIRST_BOSS: return uiFirstBoss;
|
||||
case DATA_SECOND_BOSS: return uiSecondBoss;
|
||||
case DATA_MAIN_EVENT_PHASE: return uiMainEventPhase;
|
||||
case DATA_DEFENSELESS: return defenseless ? 1 : 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -52,7 +52,8 @@ enum Data
|
||||
DATA_FIRST_BOSS,
|
||||
DATA_SECOND_BOSS,
|
||||
DATA_ACTIVATE_CRYSTAL,
|
||||
DATA_MAIN_EVENT_PHASE
|
||||
DATA_MAIN_EVENT_PHASE,
|
||||
DATA_DEFENSELESS,
|
||||
};
|
||||
|
||||
enum Data64
|
||||
|
||||
Reference in New Issue
Block a user