Core/Players: no longer allow Goblins and Worgen to leave their starting zones early and added their according error messages when trying to do so

This commit is contained in:
Ovahlord committed 2022-12-31 17:16:28 +01:00
1 parent 597b4bb62f
commit c72018b1a8
2 files changed
+24 -3

No files matched your search

+16 -3
View File
@@ -1525,10 +1525,23 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
}
else
{
if (getClass() == CLASS_DEATH_KNIGHT && GetMapId() == 609 && !IsGameMaster() && !HasSpell(50977))
if (!IsGameMaster())
{
SendTransferAborted(mapid, TRANSFER_ABORT_UNIQUE_MESSAGE, 1);
return false;
if (getClass() == CLASS_DEATH_KNIGHT && GetMapId() == 609 && !HasSpell(50977))
{
SendTransferAborted(mapid, TRANSFER_ABORT_UNIQUE_MESSAGE, AsUnderlyingType(TransferAbortedUniqueMessageArgs::StillWithinTheLichKingsGrasp));
return false;
}
else if (getRace() == RACE_GOBLIN && GetMapId() == 648 && GetQuestStatus(25265) != QUEST_STATUS_REWARDED)
{
SendTransferAborted(mapid, TRANSFER_ABORT_UNIQUE_MESSAGE, AsUnderlyingType(TransferAbortedUniqueMessageArgs::DestinyOfTheBilgewaterCartelStillUndecided));
return false;
}
else if (getRace() == RACE_WORGEN && GetMapId() == 654 && GetQuestStatus(26706) != QUEST_STATUS_REWARDED)
{
SendTransferAborted(mapid, TRANSFER_ABORT_UNIQUE_MESSAGE, AsUnderlyingType(TransferAbortedUniqueMessageArgs::FateOfGilneasHasNotBeenDecidedYet));
return false;
}
}
// far teleport to another map
+8
View File
@@ -675,6 +675,14 @@ enum TransferAbortReason
TRANSFER_ABORT_ALREADY_COMPLETED_ENCOUNTER = 0x13 // 4.2.2
};
enum class TransferAbortedUniqueMessageArgs : uint8
{
None = 0,
StillWithinTheLichKingsGrasp = 1,
DestinyOfTheBilgewaterCartelStillUndecided = 2,
FateOfGilneasHasNotBeenDecidedYet = 3
};
enum InstanceResetWarningType
{
RAID_INSTANCE_WARNING_HOURS = 1, // WARNING! %s is scheduled to reset in %d hour(s).