137{
139 if (!entry)
141
144
148
149 Difficulty targetDifficulty, requestedDifficulty;
151
153 if (!mapDiff)
154 {
157 }
158
159
162
164
167
170 {
171
173 {
174
177 LOG_DEBUG(
"maps",
"MAP: Player '{}' must be in a raid group to enter instance '{}'", player->
GetName(), mapName);
179 }
180 }
181
182
183 if (group)
185 if (!
sLFGMgr->inLfgDungeonMap(group->
GetGUID(), mapid, targetDifficulty))
186 {
189 }
190
192 {
194 {
195
197 do
198 {
199 if (corpseMap == mapid)
200 break;
201
203 corpseMap = corpseInstance ? corpseInstance->
Parent : 0;
204 } while (corpseMap);
205
206 if (!corpseMap)
207 {
210 LOG_DEBUG(
"maps",
"MAP: Player '{}' does not have a corpse in instance '{}' and cannot enter.", player->
GetName(), mapName);
212 }
213 LOG_DEBUG(
"maps",
"MAP: Player '{}' has corpse in instance '{}' and can enter.", player->
GetName(), mapName);
214 }
215 else
216 {
217 LOG_DEBUG(
"maps",
"Map::PlayerCannotEnter - player '{}' is dead but does not have a corpse!", player->
GetName());
219 }
220 }
221
222
223 if (!loginCheck)
224 {
226 if (destInstId)
227 if (
Map* boundMap =
FindMap(mapid, destInstId))
228 if (
Map::EnterState denyReason = boundMap->CannotEnter(player, loginCheck))
229 return denyReason;
230 }
231
232
234 {
235 uint32 instaceIdToCheck = 0;
237 instaceIdToCheck = save->GetInstanceId();
238
239
241 {
244 }
245 }
246
247
249}
Difficulty
Definition DBCEnums.h:266
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty)
Definition DBCStores.cpp:767
#define sInstanceSaveMgr
Definition InstanceSaveMgr.h:233
#define sLFGMgr
Definition LFGMgr.h:665
@ LANG_INSTANCE_RAID_GROUP_ONLY
Definition Language.h:1068
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
Definition Player.h:774
@ TRANSFER_ABORT_DIFFICULTY
Definition Player.h:777
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
Definition Player.h:785
#define sScriptMgr
Definition ScriptMgr.h:743
@ CONFIG_INSTANCE_IGNORE_RAID
Definition WorldConfig.h:41
bool isLFGGroup(bool restricted=false) const
Definition Group.cpp:2471
bool IsLfgRandomInstance() const
Definition Group.h:327
ObjectGuid GetGUID() const
Definition Group.cpp:2512
bool isRaidGroup() const
Definition Group.cpp:2477
Definition InstanceSaveMgr.h:57
Map * FindMap(uint32 mapId, uint32 instanceId) const
Definition MapMgr.cpp:124
EnterState
Definition Map.h:274
@ CANNOT_ENTER_CORPSE_IN_DIFFERENT_INSTANCE
Definition Map.h:281
@ CANNOT_ENTER_TOO_MANY_INSTANCES
Definition Map.h:283
@ CAN_ENTER
Definition Map.h:275
@ CANNOT_ENTER_UNSPECIFIED_REASON
Definition Map.h:286
@ CANNOT_ENTER_NO_ENTRY
Definition Map.h:277
@ CANNOT_ENTER_DIFFICULTY_UNAVAILABLE
Definition Map.h:279
@ CANNOT_ENTER_UNINSTANCED_DUNGEON
Definition Map.h:278
@ CANNOT_ENTER_NOT_IN_RAID
Definition Map.h:280
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
void SendDirectMessage(WorldPacket const *data) const
Definition Player.cpp:5852
Difficulty GetDifficulty(bool isRaid) const
Definition Player.h:1947
bool HasCorpse() const
Definition Player.h:2069
bool CheckInstanceCount(uint32 instanceId) const
Definition PlayerStorage.cpp:7127
WorldSession * GetSession() const
Definition Player.h:2030
WorldLocation GetCorpseLocation() const
Definition Player.h:2070
Group * GetGroup()
Definition Player.h:2516
bool IsGameMaster() const
Definition Player.h:1178
bool Satisfy(DungeonProgressionRequirements const *ar, uint32 target_map, bool report=false)
Definition PlayerStorage.cpp:6852
void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg=0)
Definition Player.cpp:11943
bool IsAlive() const
Definition Unit.h:1793
uint32 GetMapId() const
Definition Position.h:281
std::string const & GetName() const
Definition Object.h:529
Definition WorldPacket.h:26
void SendAreaTriggerMessage(std::string_view str)
Definition WorldSession.cpp:283
LocaleConstant GetSessionDbcLocale() const
Definition WorldSession.h:622
@ SMSG_CORPSE_NOT_IN_INSTANCE
Definition Opcodes.h:1316
uint32 Parent
Definition Map.h:127
Definition DBCStructure.h:2222
bool IsNonRaidDungeon() const
Definition DBCStructure.h:1352
uint32 MapID
Definition DBCStructure.h:1326
char const * name[16]
Definition DBCStructure.h:1331
bool IsRaid() const
Definition DBCStructure.h:1354