136{
138 if (!entry)
140
143
147
148 Difficulty targetDifficulty, requestedDifficulty;
150
152 if (!mapDiff)
153 {
156 }
157
158
161
163
166
169 {
170
172 {
173
176 LOG_DEBUG(
"maps",
"MAP: Player '{}' must be in a raid group to enter instance '{}'", player->
GetName(), mapName);
178 }
179 }
180
181
182 if (group)
184 if (!
sLFGMgr->inLfgDungeonMap(group->
GetGUID(), mapid, targetDifficulty))
185 {
188 }
189
191 {
193 {
194
196 do
197 {
198 if (corpseMap == mapid)
199 break;
200
202 corpseMap = corpseInstance ? corpseInstance->
Parent : 0;
203 } while (corpseMap);
204
205 if (!corpseMap)
206 {
209 LOG_DEBUG(
"maps",
"MAP: Player '{}' does not have a corpse in instance '{}' and cannot enter.", player->
GetName(), mapName);
211 }
212 LOG_DEBUG(
"maps",
"MAP: Player '{}' has corpse in instance '{}' and can enter.", player->
GetName(), mapName);
213 }
214 else
215 {
216 LOG_DEBUG(
"maps",
"Map::PlayerCannotEnter - player '{}' is dead but does not have a corpse!", player->
GetName());
218 }
219 }
220
221
222 if (!loginCheck)
223 {
225 if (destInstId)
226 if (
Map* boundMap =
FindMap(mapid, destInstId))
227 if (
Map::EnterState denyReason = boundMap->CannotEnter(player, loginCheck))
228 return denyReason;
229 }
230
231
233 {
234 uint32 instaceIdToCheck = 0;
236 instaceIdToCheck = save->GetInstanceId();
237
238
240 {
243 }
244 }
245
246
248}
Difficulty
Definition DBCEnums.h:266
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty)
Definition DBCStores.cpp:767
#define sInstanceSaveMgr
Definition InstanceSaveMgr.h:202
#define sLFGMgr
Definition LFGMgr.h:641
@ LANG_INSTANCE_RAID_GROUP_ONLY
Definition Language.h:1061
#define LOG_DEBUG(filterType__,...)
Definition Log.h:170
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
Definition Player.h:794
@ TRANSFER_ABORT_DIFFICULTY
Definition Player.h:797
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
Definition Player.h:805
#define sScriptMgr
Definition ScriptMgr.h:727
@ CONFIG_INSTANCE_IGNORE_RAID
Definition WorldConfig.h:44
bool isLFGGroup(bool restricted=false) const
Definition Group.cpp:2264
bool IsLfgRandomInstance() const
Definition Group.h:314
ObjectGuid GetGUID() const
Definition Group.cpp:2305
bool isRaidGroup() const
Definition Group.cpp:2270
Definition InstanceSaveMgr.h:56
Map * FindMap(uint32 mapId, uint32 instanceId) const
Definition MapMgr.cpp:123
EnterState
Definition Map.h:265
@ CANNOT_ENTER_CORPSE_IN_DIFFERENT_INSTANCE
Definition Map.h:272
@ CANNOT_ENTER_TOO_MANY_INSTANCES
Definition Map.h:274
@ CAN_ENTER
Definition Map.h:266
@ CANNOT_ENTER_UNSPECIFIED_REASON
Definition Map.h:277
@ CANNOT_ENTER_NO_ENTRY
Definition Map.h:268
@ CANNOT_ENTER_DIFFICULTY_UNAVAILABLE
Definition Map.h:270
@ CANNOT_ENTER_UNINSTANCED_DUNGEON
Definition Map.h:269
@ CANNOT_ENTER_NOT_IN_RAID
Definition Map.h:271
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
Difficulty GetDifficulty(bool isRaid) const
Definition Player.h:1933
bool HasCorpse() const
Definition Player.h:2056
bool CheckInstanceCount(uint32 instanceId) const
Definition PlayerStorage.cpp:6995
WorldSession * GetSession() const
Definition Player.h:2016
WorldLocation GetCorpseLocation() const
Definition Player.h:2057
Group * GetGroup()
Definition Player.h:2487
bool IsGameMaster() const
Definition Player.h:1177
bool Satisfy(DungeonProgressionRequirements const *ar, uint32 target_map, bool report=false)
Definition PlayerStorage.cpp:6720
void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg=0)
Definition Player.cpp:11699
bool IsAlive() const
Definition Unit.h:1707
uint32 GetMapId() const
Definition Position.h:280
std::string const & GetName() const
Definition Object.h:514
Definition WorldPacket.h:26
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
Definition WorldSession.cpp:251
void SendAreaTriggerMessage(std::string_view str)
Definition WorldSession.cpp:231
LocaleConstant GetSessionDbcLocale() const
Definition WorldSession.h:516
@ SMSG_CORPSE_NOT_IN_INSTANCE
Definition Opcodes.h:1316
uint32 Parent
Definition Map.h:120
Definition DBCStructure.h:2223
bool IsNonRaidDungeon() const
Definition DBCStructure.h:1353
uint32 MapID
Definition DBCStructure.h:1327
char const * name[16]
Definition DBCStructure.h:1332
bool IsRaid() const
Definition DBCStructure.h:1355