132{
134 if (!entry)
136
139
143
144 Difficulty targetDifficulty, requestedDifficulty;
146
148 if (!mapDiff)
149 {
152 }
153
154
157
159
162
165 {
166
168 {
169
172 LOG_DEBUG(
"maps",
"MAP: Player '{}' must be in a raid group to enter instance '{}'", player->
GetName(), mapName);
174 }
175 }
176
177
178 if (group)
180 if (!
sLFGMgr->inLfgDungeonMap(group->
GetGUID(), mapid, targetDifficulty))
181 {
184 }
185
187 {
189 {
190
192 do
193 {
194 if (corpseMap == mapid)
195 break;
196
198 corpseMap = corpseInstance ? corpseInstance->
Parent : 0;
199 } while (corpseMap);
200
201 if (!corpseMap)
202 {
205 LOG_DEBUG(
"maps",
"MAP: Player '{}' does not have a corpse in instance '{}' and cannot enter.", player->
GetName(), mapName);
207 }
208 LOG_DEBUG(
"maps",
"MAP: Player '{}' has corpse in instance '{}' and can enter.", player->
GetName(), mapName);
209 }
210 else
211 {
212 LOG_DEBUG(
"maps",
"Map::PlayerCannotEnter - player '{}' is dead but does not have a corpse!", player->
GetName());
213 }
214 }
215
216
217 if (!loginCheck)
218 {
220 if (destInstId)
221 if (
Map* boundMap =
sMapMgr->FindMap(mapid, destInstId))
222 if (
Map::EnterState denyReason = boundMap->CannotEnter(player, loginCheck))
223 return denyReason;
224 }
225
226
228 {
229 uint32 instaceIdToCheck = 0;
231 instaceIdToCheck = save->GetInstanceId();
232
233
235 {
238 }
239 }
240
241
243}
#define LOG_DEBUG(filterType__,...)
Definition: Log.h:171
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty)
Definition: DBCStores.cpp:760
#define sLFGMgr
Definition: LFGMgr.h:638
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
Definition: Player.h:780
@ TRANSFER_ABORT_DIFFICULTY
Definition: Player.h:783
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
Definition: Player.h:791
#define sInstanceSaveMgr
Definition: InstanceSaveMgr.h:202
#define sMapMgr
Definition: MapMgr.h:221
@ LANG_INSTANCE_RAID_GROUP_ONLY
Definition: Language.h:1060
#define sScriptMgr
Definition: ScriptMgr.h:2702
@ CONFIG_INSTANCE_IGNORE_RAID
Definition: IWorld.h:89
Difficulty
Definition: DBCEnums.h:271
@ SMSG_CORPSE_NOT_IN_INSTANCE
Definition: Opcodes.h:1316
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
std::string const & GetName() const
Definition: Object.h:446
uint32 GetMapId() const
Definition: Position.h:276
Difficulty GetDifficulty(bool isRaid) const
Definition: Player.h:1870
bool HasCorpse() const
Definition: Player.h:1989
bool CheckInstanceCount(uint32 instanceId) const
Definition: PlayerStorage.cpp:6996
WorldSession * GetSession() const
Definition: Player.h:1948
WorldLocation GetCorpseLocation() const
Definition: Player.h:1990
Group * GetGroup()
Definition: Player.h:2418
bool IsGameMaster() const
Definition: Player.h:1136
bool Satisfy(DungeonProgressionRequirements const *ar, uint32 target_map, bool report=false)
Definition: PlayerStorage.cpp:6727
void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg=0)
Definition: Player.cpp:11612
bool IsAlive() const
Definition: Unit.h:1808
bool isLFGGroup(bool restricted=false) const
Definition: Group.cpp:2204
bool IsLfgRandomInstance() const
Definition: Group.h:312
ObjectGuid GetGUID() const
Definition: Group.cpp:2245
bool isRaidGroup() const
Definition: Group.cpp:2210
Definition: InstanceSaveMgr.h:56
uint32 Parent
Definition: Map.h:274
EnterState
Definition: Map.h:422
@ CANNOT_ENTER_CORPSE_IN_DIFFERENT_INSTANCE
Definition: Map.h:429
@ CANNOT_ENTER_TOO_MANY_INSTANCES
Definition: Map.h:431
@ CAN_ENTER
Definition: Map.h:423
@ CANNOT_ENTER_UNSPECIFIED_REASON
Definition: Map.h:434
@ CANNOT_ENTER_NO_ENTRY
Definition: Map.h:425
@ CANNOT_ENTER_DIFFICULTY_UNAVAILABLE
Definition: Map.h:427
@ CANNOT_ENTER_UNINSTANCED_DUNGEON
Definition: Map.h:426
@ CANNOT_ENTER_NOT_IN_RAID
Definition: Map.h:428
Definition: WorldPacket.h:27
void SendAreaTriggerMessage(const char *Text,...) ATTR_PRINTF(2
Definition: MiscHandler.cpp:714
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
Definition: WorldSession.cpp:207
LocaleConstant GetSessionDbcLocale() const
Definition: WorldSession.h:496
char const * GetAcoreString(uint32 entry) const
Definition: WorldSession.cpp:822
uint32 MapID
Definition: DBCStructure.h:1309
char const * name[16]
Definition: DBCStructure.h:1314
bool IsRaid() const
Definition: DBCStructure.h:1337
Definition: DBCStructure.h:2195