Scripts/ToC: Fix doors opening/closing during Dreadscale fight

Fix doors opening/closing during Dreadscale fight by sending a CloseDoor command instead of toggling the door state when Dreadscale resets its movement.
Note that bounding the door state to boss movement makes poor sense and should be changed. Other bosses in ToC have this logic and should be updated if they show the same bug.
This commit is contained in:
jackpoz
2015-05-17 14:50:30 +02:00
parent 9842bb96d2
commit b5cc8c5b17
3 changed files with 22 additions and 2 deletions

View File

@@ -426,7 +426,26 @@ void InstanceScript::DoUseDoorOrButton(ObjectGuid guid, uint32 withRestoreTime /
TC_LOG_ERROR("scripts", "InstanceScript: DoUseDoorOrButton can't use gameobject entry %u, because type is %u.", go->GetEntry(), go->GetGoType());
}
else
TC_LOG_DEBUG("scripts", "InstanceScript: HandleGameObject failed");
TC_LOG_DEBUG("scripts", "InstanceScript: DoUseDoorOrButton failed");
}
void InstanceScript::DoCloseDoorOrButton(ObjectGuid guid)
{
if (!guid)
return;
if (GameObject* go = instance->GetGameObject(guid))
{
if (go->GetGoType() == GAMEOBJECT_TYPE_DOOR || go->GetGoType() == GAMEOBJECT_TYPE_BUTTON)
{
if (go->getLootState() == GO_ACTIVATED)
go->ResetDoorOrButton();
}
else
TC_LOG_ERROR("scripts", "InstanceScript: DoCloseDoorOrButton can't use gameobject entry %u, because type is %u.", go->GetEntry(), go->GetGoType());
}
else
TC_LOG_DEBUG("scripts", "InstanceScript: DoCloseDoorOrButton failed");
}
void InstanceScript::DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn /*= MINUTE*/)