void CKnightsManager::CreateKnights(CUser* pUser, Packet & pkt) { if (pUser == nullptr) return; Packet result(WIZ_KNIGHTS_PROCESS, uint8(KNIGHTS_CREATE)); std::string idname; uint8 ret_value = 0; pkt >> idname; if (idname.empty() || idname.size() > MAX_ID_SIZE || !IsAvailableName(idname.c_str())) ret_value = 3; else if (pUser->GetClanID() != 0) ret_value = 5; else if (g_pMain->m_nServerGroup == 2) ret_value = 8; else if (!pUser->GetMap()->canUpdateClan()) ret_value = 9; else if (pUser->GetLevel() < CLAN_LEVEL_REQUIREMENT) ret_value = 2; else if (!pUser->hasCoins(CLAN_COIN_REQUIREMENT)) ret_value = 4; if (ret_value == 0) { uint16 knightindex = GetKnightsIndex(pUser->m_bNation); if (knightindex >= 0) { result << uint8(ClanTypeTraining) << knightindex << pUser->GetNation() << idname << pUser->GetName(); g_pMain->AddDatabaseRequest(result, pUser); return; } ret_value = 6; } result << ret_value; pUser->Send(&result); }
void CKnightsManager::CreateKnights(CUser* pUser, Packet & pkt) { if (pUser == NULL) return; Packet result(WIZ_KNIGHTS_PROCESS, uint8(KNIGHTS_CREATE)); std::string idname; uint8 ret_value = 0; pkt >> idname; if (idname.empty() || idname.size() > MAX_ID_SIZE || !IsAvailableName(idname.c_str())) ret_value = 3; else if (pUser->m_pUserData->m_bKnights != 0) ret_value = 5; else if (g_pMain->m_nServerGroup == 2) ret_value = 8; else if (pUser->GetLevel() < CLAN_LEVEL_REQUIREMENT) ret_value = 2; else if (pUser->m_pUserData->m_iGold < CLAN_COIN_REQUIREMENT) ret_value = 4; if (ret_value == 0) { uint16 knightindex = GetKnightsIndex(pUser->m_pUserData->m_bNation); if (knightindex >= 0) { result << uint8(CLAN_TYPE) << knightindex << pUser->GetNation() << idname << pUser->m_pUserData->m_id; g_pMain->m_LoggerSendQueue.PutData(&result, pUser->GetSocketID()); return; } ret_value = 6; } result << ret_value; pUser->Send(&result); }