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()
|
void AddSC_boss_cyanigosa()
|
||||||
{
|
{
|
||||||
new boss_cyanigosa();
|
new boss_cyanigosa();
|
||||||
|
new achievement_defenseless();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,15 +93,12 @@ enum Yells
|
|||||||
{
|
{
|
||||||
CYANIGOSA_SAY_SPAWN = -1608005
|
CYANIGOSA_SAY_SPAWN = -1608005
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
CYANIGOSA_SPELL_TRANSFORM = 58668,
|
CYANIGOSA_SPELL_TRANSFORM = 58668,
|
||||||
CYANIGOSA_BLUE_AURA = 47759,
|
CYANIGOSA_BLUE_AURA = 47759,
|
||||||
};
|
};
|
||||||
enum Achievements
|
|
||||||
{
|
|
||||||
ACHIEV_DEFENSELESS = 1816
|
|
||||||
};
|
|
||||||
|
|
||||||
class instance_violet_hold : public InstanceMapScript
|
class instance_violet_hold : public InstanceMapScript
|
||||||
{
|
{
|
||||||
@@ -165,6 +162,7 @@ public:
|
|||||||
bool bWiped;
|
bool bWiped;
|
||||||
bool bIsDoorSpellCasted;
|
bool bIsDoorSpellCasted;
|
||||||
bool bCrystalActivated;
|
bool bCrystalActivated;
|
||||||
|
bool defenseless;
|
||||||
|
|
||||||
std::list<uint8> NpcAtDoorCastingList;
|
std::list<uint8> NpcAtDoorCastingList;
|
||||||
|
|
||||||
@@ -214,6 +212,7 @@ public:
|
|||||||
bActive = false;
|
bActive = false;
|
||||||
bIsDoorSpellCasted = false;
|
bIsDoorSpellCasted = false;
|
||||||
bCrystalActivated = false;
|
bCrystalActivated = false;
|
||||||
|
defenseless = true;
|
||||||
uiMainEventPhase = NOT_STARTED;
|
uiMainEventPhase = NOT_STARTED;
|
||||||
|
|
||||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||||
@@ -334,8 +333,6 @@ public:
|
|||||||
uiMainEventPhase = DONE;
|
uiMainEventPhase = DONE;
|
||||||
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
||||||
pMainDoor->SetGoState(GO_STATE_ACTIVE);
|
pMainDoor->SetGoState(GO_STATE_ACTIVE);
|
||||||
if (!bCrystalActivated && uiDoorIntegrity == 100)
|
|
||||||
DoCompleteAchievement(ACHIEV_DEFENSELESS);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DATA_WAVE_COUNT:
|
case DATA_WAVE_COUNT:
|
||||||
@@ -350,6 +347,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case DATA_DOOR_INTEGRITY:
|
case DATA_DOOR_INTEGRITY:
|
||||||
uiDoorIntegrity = data;
|
uiDoorIntegrity = data;
|
||||||
|
defenseless = false;
|
||||||
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, uiDoorIntegrity);
|
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, uiDoorIntegrity);
|
||||||
break;
|
break;
|
||||||
case DATA_NPC_PRESENCE_AT_DOOR_ADD:
|
case DATA_NPC_PRESENCE_AT_DOOR_ADD:
|
||||||
@@ -432,6 +430,7 @@ public:
|
|||||||
case DATA_FIRST_BOSS: return uiFirstBoss;
|
case DATA_FIRST_BOSS: return uiFirstBoss;
|
||||||
case DATA_SECOND_BOSS: return uiSecondBoss;
|
case DATA_SECOND_BOSS: return uiSecondBoss;
|
||||||
case DATA_MAIN_EVENT_PHASE: return uiMainEventPhase;
|
case DATA_MAIN_EVENT_PHASE: return uiMainEventPhase;
|
||||||
|
case DATA_DEFENSELESS: return defenseless ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ enum Data
|
|||||||
DATA_FIRST_BOSS,
|
DATA_FIRST_BOSS,
|
||||||
DATA_SECOND_BOSS,
|
DATA_SECOND_BOSS,
|
||||||
DATA_ACTIVATE_CRYSTAL,
|
DATA_ACTIVATE_CRYSTAL,
|
||||||
DATA_MAIN_EVENT_PHASE
|
DATA_MAIN_EVENT_PHASE,
|
||||||
|
DATA_DEFENSELESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Data64
|
enum Data64
|
||||||
|
|||||||
Reference in New Issue
Block a user