diff options
author | Astellar <none@none> | 2010-01-06 20:43:41 +0300 |
---|---|---|
committer | Astellar <none@none> | 2010-01-06 20:43:41 +0300 |
commit | 3c3197ae71efffe723fa4b252f98d6f500d73ce4 (patch) | |
tree | 9ebc48e2aa27c804722d21be493b1c8ab0228efb /src | |
parent | 15618563ef38f06c758d660cf94c9baf02f350c1 (diff) |
Reverted commit ba4294dec1. n0n4m3 asked me to do it.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/InstanceSaveMgr.cpp | 15 | ||||
-rw-r--r-- | src/game/MiscHandler.cpp | 36 | ||||
-rw-r--r-- | src/game/Player.cpp | 2 |
3 files changed, 7 insertions, 46 deletions
diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp index dbb4414949f..eb0368875b6 100644 --- a/src/game/InstanceSaveMgr.cpp +++ b/src/game/InstanceSaveMgr.cpp @@ -535,12 +535,10 @@ void InstanceSaveManager::LoadResetTimes() // schedule the global reset/warning uint8 type = 1; static int tim[4] = {3600, 900, 300, 60}; - for(type; type < 4; type++) + for(; type < 4; type++) if(t - tim[type-1] > now) break; - ScheduleReset(true, t - tim[type-1], InstResetEvent(type, mapid, difficulty, -1)); - for(ResetTimeMapDiffInstances::const_iterator in_itr = mapDiffResetInstances.lower_bound(map_diff_pair); in_itr != mapDiffResetInstances.upper_bound(map_diff_pair); ++in_itr) { @@ -645,8 +643,7 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b if (!mapEntry->Instanceable()) return; - time_t now = time(NULL); - time_t today = (now / DAY) * DAY; + uint64 now = (uint64)time(NULL); if(!warn) { @@ -675,12 +672,10 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b // calculate the next reset time uint32 diff = sWorld.getConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR; - uint32 period = (mapDiff->resetTime / DAY * sWorld.getRate(RATE_INSTANCE_RESET_TIME)) * DAY; - time_t next_reset = today + period + diff; + uint32 period = mapDiff->resetTime * DAY; + uint64 next_reset = ((now + timeLeft + MINUTE) / DAY * DAY) + period + diff; // update it in the DB - CharacterDatabase.PExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%d' AND difficulty = '%d'", (uint64)next_reset, mapid, difficulty); - SetResetTimeFor(mapid,difficulty,(uint64)next_reset); - ScheduleReset(true, next_reset-3600, InstResetEvent(1, mapid, difficulty, -1)); + CharacterDatabase.PExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%d' AND difficulty = '%d'", next_reset, mapid, difficulty); } // note: this isn't fast but it's meant to be executed very rarely diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index b3b847c9e97..bdaa3c2f91c 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -1486,27 +1486,11 @@ void WorldSession::HandleSetDungeonDifficultyOpcode( WorldPacket & recv_data ) if(_player->getLevel() < LEVELREQUIREMENT_HEROIC) return; - Group *pGroup = _player->GetGroup(); - if(pGroup) + + if(Group *pGroup = _player->GetGroup()) { if(pGroup->IsLeader(_player->GetGUID())) { - for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) - { - Player* pGroupGuy = itr->getSource(); - if(!pGroupGuy) - continue; - - if(!pGroupGuy->IsInMap(pGroupGuy)) - return; - - map = pGroupGuy->GetMap(); - if(map && map->IsRaidOrHeroicDungeon()) - { - sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow()); - return; - } - } // the difficulty is set even if the instances can't be reset //_player->SendDungeonDifficulty(true); pGroup->ResetInstances(INSTANCE_RESET_CHANGE_DIFFICULTY, false, _player); @@ -1552,22 +1536,6 @@ void WorldSession::HandleSetRaidDifficultyOpcode( WorldPacket & recv_data ) { if(pGroup->IsLeader(_player->GetGUID())) { - for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) - { - Player* pGroupGuy = itr->getSource(); - if(!pGroupGuy) - continue; - - if(!pGroupGuy->IsInMap(pGroupGuy)) - return; - - map = pGroupGuy->GetMap(); - if(map && map->IsRaidOrHeroicDungeon()) - { - sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow()); - return; - } - } // the difficulty is set even if the instances can't be reset //_player->SendDungeonDifficulty(true); pGroup->ResetInstances(INSTANCE_RESET_CHANGE_DIFFICULTY, true, _player); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ed728429f1e..03078a35b3e 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -19177,7 +19177,6 @@ void Player::UpdateHomebindTime(uint32 time) if (time >= m_HomebindTimer) { // teleport to nearest graveyard - SetPhaseMask(1,true); RepopAtGraveyard(); } else @@ -19193,7 +19192,6 @@ void Player::UpdateHomebindTime(uint32 time) data << uint32(1); GetSession()->SendPacket(&data); sLog.outDebug("PLAYER: Player '%s' (GUID: %u) will be teleported to homebind in 60 seconds", GetName(),GetGUIDLow()); - SetPhaseMask(2,true); } } |