From 5893730704689065373cac13220cd0d694331933 Mon Sep 17 00:00:00 2001 From: splose Date: Thu, 22 Apr 2021 23:42:14 -0400 Subject: [PATCH] [Rules] Add rule 'GM:MinStatusToBypassLockedServer' (#1330) * Add rule 'GM:MinStatusToBypassLockedServer' Default Status: 100 Description: Players >= this status can log in to the server even when it is locked * Add rule 'GM:MinStatusToBypassLockedServer' Default Status: 100 Description: Players >= this status can log in to the server even when it is locked --- common/ruletypes.h | 1 + world/login_server.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/common/ruletypes.h b/common/ruletypes.h index 4edda9277..b66061dbd 100644 --- a/common/ruletypes.h +++ b/common/ruletypes.h @@ -209,6 +209,7 @@ RULE_CATEGORY(GM) RULE_INT(GM, MinStatusToSummonItem, 250, "Minimum required status to summon items") RULE_INT(GM, MinStatusToZoneAnywhere, 250, "Minimum required status to zone anywhere") RULE_INT(GM, MinStatusToLevelTarget, 100, "Minimum required status to set the level of a player") +RULE_INT(GM, MinStatusToBypassLockedServer, 100, "Players >= this status can log in to the server even when it is locked") RULE_CATEGORY_END() RULE_CATEGORY(World) diff --git a/world/login_server.cpp b/world/login_server.cpp index 590a3f0db..da649495e 100644 --- a/world/login_server.cpp +++ b/world/login_server.cpp @@ -92,7 +92,7 @@ void LoginServer::ProcessUsertoWorldReqLeg(uint16_t opcode, EQ::Net::Packet &p) utwrs->response = UserToWorldStatusSuccess; if (Config->Locked) { - if (status < 100) { + if (status < (RuleI(GM, MinStatusToBypassLockedServer))) { LogDebug("[ProcessUsertoWorldReqLeg] Server locked and status is not high enough for account_id [{0}]", utwr->lsaccountid); utwrs->response = UserToWorldStatusWorldUnavail; SendPacket(&outpack); @@ -101,7 +101,7 @@ void LoginServer::ProcessUsertoWorldReqLeg(uint16_t opcode, EQ::Net::Packet &p) } int32 x = Config->MaxClients; - if ((int32) numplayers >= x && x != -1 && x != 255 && status < 80) { + if ((int32) numplayers >= x && x != -1 && x != 255 && status < (RuleI(GM, MinStatusToBypassLockedServer))) { LogDebug("[ProcessUsertoWorldReqLeg] World at capacity account_id [{0}]", utwr->lsaccountid); utwrs->response = UserToWorldStatusWorldAtCapacity; SendPacket(&outpack); @@ -170,7 +170,7 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p) utwrs->response = UserToWorldStatusSuccess; if (Config->Locked == true) { - if (status < 100) { + if (status < (RuleI(GM, MinStatusToBypassLockedServer))) { LogDebug("[ProcessUsertoWorldReq] Server locked and status is not high enough for account_id [{0}]", utwr->lsaccountid); utwrs->response = UserToWorldStatusWorldUnavail; SendPacket(&outpack); @@ -179,7 +179,7 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p) } int32 x = Config->MaxClients; - if ((int32) numplayers >= x && x != -1 && x != 255 && status < 80) { + if ((int32) numplayers >= x && x != -1 && x != 255 && status < (RuleI(GM, MinStatusToBypassLockedServer))) { LogDebug("[ProcessUsertoWorldReq] World at capacity account_id [{0}]", utwr->lsaccountid); utwrs->response = UserToWorldStatusWorldAtCapacity; SendPacket(&outpack);