diff options
| author | kandera <kanderadev@gmail.com> | 2012-10-03 06:03:27 -0700 |
|---|---|---|
| committer | kandera <kanderadev@gmail.com> | 2012-10-03 06:03:27 -0700 |
| commit | 87de693c35c62617c6a116156a973d27499495c9 (patch) | |
| tree | cf1eabb53a92ca7cf74fcf5118905aa7f4d15493 /src | |
| parent | 880a9d5cdac3b57c224c087edaba1975ba453eae (diff) | |
| parent | c299e8340c659152e20ecf53edf65624c6461d31 (diff) | |
Merge pull request #7957 from Dimitro/master
Now attackers receiving all rewards, when the victim gone offline.
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Server/WorldSession.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 6a2c7e64446..3805f69f927 100755 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -423,10 +423,6 @@ void WorldSession::LogoutPlayer(bool Save) } else if (!_player->getAttackers().empty()) { - _player->CombatStop(); - _player->getHostileRefManager().setOnlineOfflineState(false); - _player->RemoveAllAurasOnDeath(); - // build set of player who attack _player or who have pet attacking of _player std::set<Player*> aset; for (Unit::AttackerSet::const_iterator itr = _player->getAttackers().begin(); itr != _player->getAttackers().end(); ++itr) @@ -438,6 +434,11 @@ void WorldSession::LogoutPlayer(bool Save) aset.insert((Player*)(*itr)); } + // CombatStop() method is removing all attackers from the AttackerSet + // That is why it must be AFTER building current set of attackers + _player->CombatStop(); + _player->getHostileRefManager().setOnlineOfflineState(false); + _player->RemoveAllAurasOnDeath(); _player->SetPvPDeath(!aset.empty()); _player->KillPlayer(); _player->BuildPlayerRepop(); |
