public static void CreateCharacter(NetConnection connection, NetIncomingMessage data) { // Se a crição de personagem não estiver ativa, envia mensagem de erro if (!GameSettings.CharacterCreation) { WorldPacket.Message(connection, (int)PacketList.WorldServer_Client_CharacterCreationDisabled); return; } //nome do personagem var charactername = data.ReadString(); //se encontrar nome nao permitido, envia mensagem de erro if (!ProhibitedNames.Compare(charactername)) { WorldPacket.Message(connection, (int)PacketList.WorldServer_Client_CharNameInUse); return; } // Se o nome existir no banco de dados, envia mensagem de erro if (Character_DB.Exist(charactername)) { WorldPacket.Message(connection, (int)PacketList.WorldServer_Client_CharNameInUse); return; } //encontra o usuário para adicionar as informações var pData = Authentication.FindByConnection(connection); var slot = data.ReadByte(); var classe = data.ReadInt32(); var gender = data.ReadByte(); var sprite = data.ReadInt32(); // Se não estiver dentro da sequencia correta, envia mensagem de erro if (slot >= 5) { WorldPacket.Message(connection, (int)PacketList.Error); return; } // Insere o personagem no banco de dados Character_DB.InsertNewCharacter(pData.HexID, gender, classe, charactername, sprite, slot); // Insere os items iniciais //Character_DB.InsertInitialItems(charactername, classe); // Carrega os personagens Character_DB.PreLoad(pData); // Envia o PreLoad WorldPacket.PreLoad(pData); //game state 3 = seleção de personagem WorldPacket.GameState(pData.HexID, 3); }
/// <summary> /// Verifica se o nome é válido. /// </summary> /// <param name="characterName"></param> /// <returns></returns> public CharacterValidationResult ValidateName(string characterName) { if (string.IsNullOrEmpty(characterName)) { return(new CharacterValidationResult() { AlertMessageType = AlertMessageType.Connection, MenuResetType = MenuResetType.Login, Disconnect = true }); } if (ProhibitedNames.Compare(characterName)) { return(new CharacterValidationResult() { AlertMessageType = AlertMessageType.NameIllegal, MenuResetType = MenuResetType.Login, Disconnect = true }); } if (characterName.Length < Constants.MinCharacterNameLength || characterName.Length > Constants.MaxCharacterNameLength) { return(new CharacterValidationResult() { AlertMessageType = AlertMessageType.NameLength, MenuResetType = MenuResetType.Characters, }); } // Adiciona o nome verificado na propriedade. CharacterName = characterName; return(new CharacterValidationResult() { AlertMessageType = AlertMessageType.None, MenuResetType = MenuResetType.None }); }