示例#1
0
        public void Process(byte[] buffer, IConnection connection)
        {
            var msg = new ByteBuffer(buffer);

            var userIndex      = msg.ReadInt32();
            var accountID      = msg.ReadInt32();
            var characterIndex = msg.ReadInt32();

            if (accountID > 0 && userIndex > 0)
            {
                var database = new DBGameDatabase();
                var dbError  = database.Open();

                if (dbError.Number > 0)
                {
                    Global.WriteLog(LogType.System, $"Failed to delete character from Account Id: {accountID}", LogColor.Red);
                    Global.WriteLog(LogType.System, $"Error Number: {dbError.Number}", LogColor.Red);
                    Global.WriteLog(LogType.System, $"Error Message: {dbError.Message}", LogColor.Red);
                }
                else
                {
                    database.DeleteCharacter(accountID, characterIndex);

                    var character = Global.FindCharacterByIndexAndAccountId(accountID, characterIndex);
                    if (character != null)
                    {
                        Global.Characters.Remove(character);
                    }

                    var characters = database.GetCharacterList(accountID);
                    new SpCharacterList(userIndex, characters).Send(connection);

                    database.Close();
                }
            }
        }