diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-06-04 21:47:43 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-06-04 21:47:43 +0200 |
commit | 8aaf750be1ee16a299016cf038bd84bd9b387544 (patch) | |
tree | 593d1044e318ec5d904ffcad4caee8a2a5a2f8d4 /src/server/game/Conditions/ConditionMgr.cpp | |
parent | 9542d221cb359f6dfd67aa1432877e19b942b619 (diff) |
Core/Conditions: Implemented missing PlayerCondition columns - time and weather
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 0a328e20fa6..10717ff302d 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -2855,7 +2855,19 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio return false; } - // TODO: time condition + if (condition->Time[0]) + { + ByteBuffer unpacker; + unpacker << condition->Time[0]; + time_t from = unpacker.ReadPackedTime(); + unpacker.rpos(0); + unpacker.wpos(0); + unpacker << condition->Time[1]; + time_t to = unpacker.ReadPackedTime(); + + if (GameTime::GetGameTime() < from || GameTime::GetGameTime() > to) + return false; + } if (condition->WorldStateExpressionID) { @@ -2867,7 +2879,9 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio return false; } - // TODO: weather condition + if (condition->WeatherID) + if (player->GetMap()->GetZoneWeather(player->GetZoneId()) != WeatherState(condition->WeatherID)) + return false; if (condition->Achievement[0]) { |