diff options
| author | Shauren <shauren.trinity@gmail.com> | 2011-02-03 22:20:40 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2011-02-03 22:20:40 +0100 |
| commit | c2b0bcbd6c8155812857523681cd787059cd9bf9 (patch) | |
| tree | b325612ecdddbb1235c676a862435c83374f95cf /src/server/game/Entities | |
| parent | 7ea8bad07f64ed5886130fcc8016c0c72a32758e (diff) | |
Core/Instances: Implemented DungeonEncounter.dbc for creating completed encounters mask to use in packets
Core/Dungeon Finder: Implemented new way of giving random dungeon rewards, linked to DungeonEncounter.dbc
Diffstat (limited to 'src/server/game/Entities')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 29d1d136687..a6a8e9a6bb0 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -68,6 +68,7 @@ #include "WeatherMgr.h" #include "LFGMgr.h" #include "CharacterDatabaseCleaner.h" +#include "InstanceScript.h" #include <cmath> #define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS) @@ -17709,6 +17710,10 @@ InstancePlayerBind* Player::BindToInstance(InstanceSave *save, bool permanent, b void Player::BindToInstance() { + // Player left the instance + if (_pendingBind->GetInstanceId() != GetInstanceId()) + return; + WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4); data << uint32(0); GetSession()->SendPacket(&data); @@ -22116,6 +22121,12 @@ bool Player::RewardPlayerAndGroupAtKill(Unit* pVictim) KilledMonster(pVictim->ToCreature()->GetCreatureInfo(), pVictim->GetGUID()); } } + + // Credit encounter in instance + if (pVictim->GetTypeId() == TYPEID_UNIT && GetMap()->IsDungeon()) + if (InstanceScript* instance = pVictim->GetInstanceScript()) + instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, pVictim->GetEntry(), pVictim); + return xp || honored_kill; } |
