mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-16 21:20:01 -04:00
Entities/GO: Add forceRespawnTimer support to DespawnOrUnsummon. Use it in SAI.
This commit is contained in:
@@ -411,7 +411,7 @@ void GameObject::Update(uint32 diff)
|
||||
if (m_despawnDelay > diff)
|
||||
m_despawnDelay -= diff;
|
||||
else
|
||||
DespawnOrUnsummon();
|
||||
DespawnOrUnsummon(0ms, m_despawnRespawnTime);
|
||||
}
|
||||
|
||||
switch (m_lootState)
|
||||
@@ -826,17 +826,21 @@ void GameObject::AddUniqueUse(Player* player)
|
||||
m_unique_users.insert(player->GetGUID());
|
||||
}
|
||||
|
||||
void GameObject::DespawnOrUnsummon(Milliseconds const& delay)
|
||||
void GameObject::DespawnOrUnsummon(Milliseconds const& delay, Seconds const& forceRespawnTime)
|
||||
{
|
||||
if (delay > Milliseconds::zero())
|
||||
if (delay > 0ms)
|
||||
{
|
||||
if (!m_despawnDelay || m_despawnDelay > delay.count())
|
||||
{
|
||||
m_despawnDelay = delay.count();
|
||||
m_despawnRespawnTime = forceRespawnTime;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_goData && m_respawnDelayTime)
|
||||
SaveRespawnTime(m_respawnDelayTime);
|
||||
uint32 const respawnDelay = (forceRespawnTime > 0s) ? forceRespawnTime.count() : m_respawnDelayTime;
|
||||
if (m_goData && respawnDelay)
|
||||
SaveRespawnTime(respawnDelay);
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user