[Zones] Add Max Level Check to Zones. (#2714)

* [Zones] Add Max Level Check to Zones.

# Perl
- Add `$client->CanEnterZone(zone_short_name)`.
- Add `$client->CanEnterZone(zone_short_name, instance_version)`.

# Lua
- Add `client:CanEnterZone(zone_short_name)`.
- Add `client:CanEnterZone(zone_short_name, instance_version)`.

# Notes
- Allows operators to limit zones to a maximum level.
- Allows operators to see if a player can enter a zone before sending them.
- Keeps players from entering via `#peqzone` and `#zone` as well if they do not meet the requirements or are not high enough status to bypass the requirements.

* Cleanup.
This commit is contained in:
Alex King
2023-01-10 20:47:37 -05:00
committed by GitHub
parent 4c8b65ecc6
commit 0d23ffe5e5
13 changed files with 458 additions and 420 deletions
+2 -1
View File
@@ -1352,6 +1352,8 @@ public:
void ClearPendingAdventureDoorClick() { safe_delete(adventure_door_timer); }
void ClearPendingAdventureData();
bool CanEnterZone(std::string zone_short_name = "", int16 instance_version = -1);
int GetAggroCount();
void IncrementAggroCount(bool raid_target = false);
void DecrementAggroCount();
@@ -1861,7 +1863,6 @@ private:
void NPCSpawn(const Seperator* sep);
uint32 GetEXPForLevel(uint16 level);
bool CanBeInZone();
void SendLogoutPackets();
void SendZoneInPackets();
bool AddPacket(const EQApplicationPacket *, bool);