aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-02-03 22:20:40 +0100
committerShauren <shauren.trinity@gmail.com>2011-02-03 22:20:40 +0100
commitc2b0bcbd6c8155812857523681cd787059cd9bf9 (patch)
treeb325612ecdddbb1235c676a862435c83374f95cf /src/server/game/Entities
parent7ea8bad07f64ed5886130fcc8016c0c72a32758e (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-xsrc/server/game/Entities/Player/Player.cpp11
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;
}