mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
[Zone] Implement zone player count sharding (#4536)
* [Zone] Implement zone player count sharding * Update client.cpp * Update database_instances.cpp * You must request a shard change from the zone you are currently in. * // zone sharding * You cannot request a shard change while in combat. * Query adjustment * Use safe coords * Changes * Fixes to instance query * Push * Push * Final push * Update client.cpp * Update eq_packet_structs.h * Remove pick menu * Comment * Update character_data_repository.h * Update zoning.cpp --------- Co-authored-by: Kinglykrab <kinglykrab@gmail.com>
This commit is contained in:
@@ -339,6 +339,7 @@ void MapOpcodes()
|
||||
ConnectedOpcodes[OP_PlayerStateAdd] = &Client::Handle_OP_PlayerStateAdd;
|
||||
ConnectedOpcodes[OP_PlayerStateRemove] = &Client::Handle_OP_PlayerStateRemove;
|
||||
ConnectedOpcodes[OP_PickPocket] = &Client::Handle_OP_PickPocket;
|
||||
ConnectedOpcodes[OP_PickZone] = &Client::Handle_OP_PickZone;
|
||||
ConnectedOpcodes[OP_PopupResponse] = &Client::Handle_OP_PopupResponse;
|
||||
ConnectedOpcodes[OP_PotionBelt] = &Client::Handle_OP_PotionBelt;
|
||||
ConnectedOpcodes[OP_PurchaseLeadershipAA] = &Client::Handle_OP_PurchaseLeadershipAA;
|
||||
@@ -941,6 +942,11 @@ void Client::CompleteConnect()
|
||||
ShowDevToolsMenu();
|
||||
}
|
||||
|
||||
auto z = GetZone(GetZoneID(), GetInstanceVersion());
|
||||
if (z && z->shard_at_player_count > 0 && !RuleB(Zone, ZoneShardQuestMenuOnly)) {
|
||||
ShowZoneShardMenu();
|
||||
}
|
||||
|
||||
// shared tasks memberlist
|
||||
if (RuleB(TaskSystem, EnableTaskSystem) && GetTaskState()->HasActiveSharedTask()) {
|
||||
|
||||
@@ -11839,6 +11845,17 @@ void Client::Handle_OP_PickPocket(const EQApplicationPacket *app)
|
||||
SendPickPocketResponse(victim, 0, PickPocketFailed);
|
||||
}
|
||||
|
||||
void Client::Handle_OP_PickZone(const EQApplicationPacket *app)
|
||||
{
|
||||
if (app->size != sizeof(PickZone_Struct)) {
|
||||
LogDebug("Size mismatch in OP_PickZone expected [{}] got [{}]", sizeof(PickZone_Struct), app->size);
|
||||
DumpPacket(app);
|
||||
return;
|
||||
}
|
||||
|
||||
// handle
|
||||
}
|
||||
|
||||
void Client::Handle_OP_PopupResponse(const EQApplicationPacket *app)
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user