1
0

reject char create when world locked

This commit is contained in:
Emagi 2024-12-01 11:28:32 -05:00
parent 1ec930639f
commit a775e90eb3

View File

@ -321,17 +321,23 @@ bool LoginServer::Process() {
int8 resp = 0; int8 resp = 0;
int32 acct_id = 0; int32 acct_id = 0;
int32 char_id = 0; int32 char_id = 0;
// have to load packet to clear the buffer
if(packet && packet->LoadPacketData(pack->pBuffer+sizeof(int16),pack->size - sizeof(int16), version <= 561 ? false : true)){ if(packet && packet->LoadPacketData(pack->pBuffer+sizeof(int16),pack->size - sizeof(int16), version <= 561 ? false : true)){
EQ2_16BitString name = packet->getType_EQ2_16BitString_ByName("name"); if(net.world_locked) {
resp = database.CheckNameFilter(name.data.c_str()); resp = NOSERVERSAVAIL_REPLY; // no new characters when locked
acct_id = packet->getType_int32_ByName("account_id"); }
LogWrite(WORLD__DEBUG, 0, "World", "Response: %i", (int)resp); else {
EQ2_16BitString name = packet->getType_EQ2_16BitString_ByName("name");
resp = database.CheckNameFilter(name.data.c_str());
acct_id = packet->getType_int32_ByName("account_id");
LogWrite(WORLD__DEBUG, 0, "World", "Response: %i", (int)resp);
sint16 lowestStatus = database.GetLowestCharacterAdminStatus(acct_id); sint16 lowestStatus = database.GetLowestCharacterAdminStatus(acct_id);
if(lowestStatus == -2) if(lowestStatus == -2)
resp = UNKNOWNERROR_REPLY2; resp = UNKNOWNERROR_REPLY2;
else if(resp == CREATESUCCESS_REPLY) else if(resp == CREATESUCCESS_REPLY)
char_id = database.SaveCharacter(packet, acct_id); char_id = database.SaveCharacter(packet, acct_id);
}
} }
else{ else{
LogWrite(WORLD__ERROR, 0, "World", "Invalid creation request!"); LogWrite(WORLD__ERROR, 0, "World", "Invalid creation request!");