feat(core): Ensure that all actions are compared to fixed point in time (#1236) (#1458)

i.e. world update start
This commit is contained in:
Viste(Кирилл)
2019-02-14 21:22:17 +03:00
committed by Francesco Borzì
parent 1b7522ff0e
commit 51b8773528
108 changed files with 933 additions and 509 deletions

View File

@@ -22,6 +22,7 @@
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
#include "Group.h"
#include "GameTime.h"
#include "InstanceScript.h"
#include "LFGMgr.h"
#include "Pet.h"
@@ -2650,12 +2651,12 @@ class spell_gen_turkey_marker : public SpellScriptLoader
{
if (GetStackAmount() > stackAmount)
{
_applyTimes.push_back(World::GetGameTimeMS());
_applyTimes.push_back(GameTime::GetGameTimeMS());
stackAmount++;
}
// pop stack if it expired for us
if (_applyTimes.front() + GetMaxDuration() < World::GetGameTimeMS())
if (_applyTimes.front() + GetMaxDuration() < GameTime::GetGameTimeMS())
{
stackAmount--;
ModStackAmount(-1, AURA_REMOVE_BY_EXPIRE);

View File

@@ -17,6 +17,7 @@
#include "SpellAuraEffects.h"
#include "SkillDiscovery.h"
#include "Battleground.h"
#include "GameTime.h"
class spell_item_massive_seaforium_charge : public SpellScriptLoader
{
@@ -3092,7 +3093,7 @@ class spell_item_crystal_prison_dummy_dnd : public SpellScriptLoader
if (Creature* target = GetHitCreature())
if (target->isDead() && !target->IsPet())
{
GetCaster()->SummonGameObject(OBJECT_IMPRISONED_DOOMGUARD, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), 0, 0, 0, 0, uint32(target->GetRespawnTime()-time(NULL)));
GetCaster()->SummonGameObject(OBJECT_IMPRISONED_DOOMGUARD, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), 0, 0, 0, 0, uint32(target->GetRespawnTime()-GameTime::GetGameTime()));
target->DespawnOrUnsummon();
}
}