mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 10:30:27 +00:00
fix(Scripts/BFD): Fix problem with Aku'mai event being skippable after crash (#9463)
This commit is contained in:
@@ -25,8 +25,9 @@ enum Data
|
||||
TYPE_FIRE2 = 2,
|
||||
TYPE_FIRE3 = 3,
|
||||
TYPE_FIRE4 = 4,
|
||||
TYPE_AKU_MAI = 5,
|
||||
MAX_ENCOUNTERS = 6
|
||||
TYPE_AKU_MAI_EVENT = 5,
|
||||
TYPE_AKU_MAI = 6,
|
||||
MAX_ENCOUNTERS = 7
|
||||
};
|
||||
|
||||
enum CreatureIds
|
||||
|
||||
@@ -52,8 +52,13 @@ public:
|
||||
unit->GetEntry() == NPC_MURKSHALLOW_SOFTSHELL || unit->GetEntry() == NPC_AKU_MAI_SNAPJAW))
|
||||
{
|
||||
if (--_requiredDeaths == 0)
|
||||
if (_encounters[TYPE_FIRE1] == DONE && _encounters[TYPE_FIRE2] == DONE && _encounters[TYPE_FIRE3] == DONE && _encounters[TYPE_FIRE4] == DONE)
|
||||
{
|
||||
if (IsFireEventDone())
|
||||
{
|
||||
HandleGameObject(_akumaiPortalGUID, true);
|
||||
_encounters[TYPE_AKU_MAI_EVENT] = DONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +70,7 @@ public:
|
||||
case GO_FIRE_OF_AKU_MAI_2:
|
||||
case GO_FIRE_OF_AKU_MAI_3:
|
||||
case GO_FIRE_OF_AKU_MAI_4:
|
||||
if (_encounters[gameobject->GetEntry() - GO_FIRE_OF_AKU_MAI_1 + 1] == DONE)
|
||||
if (_encounters[TYPE_AKU_MAI_EVENT] == DONE)
|
||||
{
|
||||
gameobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
gameobject->SetGoState(GO_STATE_ACTIVE);
|
||||
@@ -80,7 +85,7 @@ public:
|
||||
gameobject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_AKU_MAI_DOOR:
|
||||
if (_encounters[TYPE_FIRE1] == DONE && _encounters[TYPE_FIRE2] == DONE && _encounters[TYPE_FIRE3] == DONE && _encounters[TYPE_FIRE4] == DONE)
|
||||
if (IsFireEventDone() && _encounters[TYPE_AKU_MAI_EVENT] == DONE)
|
||||
HandleGameObject(ObjectGuid::Empty, true, gameobject);
|
||||
_akumaiPortalGUID = gameobject->GetGUID();
|
||||
break;
|
||||
@@ -97,6 +102,7 @@ public:
|
||||
case TYPE_FIRE3:
|
||||
case TYPE_FIRE4:
|
||||
case TYPE_AKU_MAI:
|
||||
case TYPE_AKU_MAI_EVENT:
|
||||
_encounters[type] = data;
|
||||
break;
|
||||
}
|
||||
@@ -131,6 +137,11 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
bool IsFireEventDone()
|
||||
{
|
||||
return _encounters[TYPE_FIRE1] == DONE && _encounters[TYPE_FIRE2] == DONE && _encounters[TYPE_FIRE3] == DONE && _encounters[TYPE_FIRE4] == DONE;
|
||||
}
|
||||
|
||||
private:
|
||||
uint32 _encounters[MAX_ENCOUNTERS];
|
||||
ObjectGuid _akumaiPortalGUID;
|
||||
|
||||
Reference in New Issue
Block a user