/// <summary>
            /// Sends the <see cref="AccountCharacterInfo"/>s for the <see cref="Character"/>s in this account to the
            /// client.
            /// </summary>
            public void SendAccountCharacterInfos()
            {
                var charInfos = new AccountCharacterInfo[CharacterCount];

                for (var i = 0; i < charInfos.Length; i++)
                {
                    var characterID = _characterIDs[i];

                    var v = DbController.GetQuery <SelectAccountCharacterInfoQuery>().Execute(characterID, (byte)i);
                    if (v != null)
                    {
                        var eqBodies = DbController.GetQuery <SelectCharacterEquippedBodiesQuery>().Execute(characterID);
                        if (eqBodies != null)
                        {
                            v.SetEquippedBodies(eqBodies);
                        }

                        charInfos[i] = v;
                    }
                }

                using (var pw = ServerPacket.SendAccountCharacters(charInfos))
                {
                    Socket.Send(pw, ServerMessageType.System);
                }
            }
        public bool TryGetInfo(byte index, out AccountCharacterInfo charInfo)
        {
            if (index < 0 || index >= _charInfos.Length)
            {
                charInfo = null;
                return(false);
            }

            charInfo = _charInfos[index];
            return(true);
        }
        public bool TryGetInfo(byte index, out AccountCharacterInfo charInfo)
        {
            if (index < 0 || index >= _charInfos.Length)
            {
                charInfo = null;
                return false;
            }

            charInfo = _charInfos[index];
            return true;
        }
Esempio n. 4
0
        void RecvSendAccountCharacters(IIPSocket conn, BitStream r)
        {
            var count     = r.ReadByte();
            var charInfos = new AccountCharacterInfo[count];

            for (var i = 0; i < count; i++)
            {
                var charInfo = r.ReadAccountCharacterInfo();
                charInfos[charInfo.Index] = charInfo;
            }

            _accountCharacterInfos.SetInfos(charInfos);
        }
        public void SetInfos(AccountCharacterInfo[] charInfos)
        {
            if (charInfos == null)
            {
                // Shouldn't be null, but we can recover
                Debug.Fail("charInfos parameter is null.");
                charInfos = new AccountCharacterInfo[0];
            }

            _charInfos = charInfos;
            _isLoaded = true;

            if (AccountCharactersLoaded != null)
                AccountCharactersLoaded(this, EventArgs.Empty);
        }
        public void SetInfos(AccountCharacterInfo[] charInfos)
        {
            if (charInfos == null)
            {
                // Shouldn't be null, but we can recover
                Debug.Fail("charInfos parameter is null.");
                charInfos = new AccountCharacterInfo[0];
            }

            _charInfos = charInfos;
            _isLoaded  = true;

            if (AccountCharactersLoaded != null)
            {
                AccountCharactersLoaded(this, EventArgs.Empty);
            }
        }
        public AccountCharacterInfo Execute(CharacterID id, byte accountCharacterIndex)
        {
            AccountCharacterInfo ret;

            using (var r = ExecuteReader(id))
            {
                if (!r.Read())
                {
                    return(null);
                }

                var name   = r.GetString("name");
                var bodyID = r.GetBodyID("body_id");

                Debug.Assert(!string.IsNullOrEmpty(name));
                ret = new AccountCharacterInfo(accountCharacterIndex, name, bodyID);
            }

            return(ret);
        }
Esempio n. 8
0
            /// <summary>
            /// Sends the <see cref="AccountCharacterInfo"/>s for the <see cref="Character"/>s in this account to the
            /// client.
            /// </summary>
            public void SendAccountCharacterInfos()
            {
                var charInfos = new AccountCharacterInfo[CharacterCount];
                for (var i = 0; i < charInfos.Length; i++)
                {
                    var characterID = _characterIDs[i];

                    var v = DbController.GetQuery<SelectAccountCharacterInfoQuery>().Execute(characterID, (byte)i);
                    if (v != null)
                    {
                        var eqBodies = DbController.GetQuery<SelectCharacterEquippedBodiesQuery>().Execute(characterID);
                        if (eqBodies != null)
                            v.SetEquippedBodies(eqBodies);

                        charInfos[i] = v;
                    }
                }

                using (var pw = ServerPacket.SendAccountCharacters(charInfos))
                {
                    Socket.Send(pw, ServerMessageType.System);
                }
            }
Esempio n. 9
0
        public static PacketWriter SendAccountCharacters(AccountCharacterInfo[] charInfos)
        {
            var pw = GetWriter(ServerPacketID.SendAccountCharacters);

            if (charInfos == null || charInfos.Length == 0)
                pw.Write((byte)0);
            else
            {
                pw.Write((byte)charInfos.Length);
                for (var i = 0; i < charInfos.Length; i++)
                {
                    pw.Write(charInfos[i]);
                }
            }

            return pw;
        }
Esempio n. 10
0
        void RecvSendAccountCharacters(IIPSocket conn, BitStream r)
        {
            var count = r.ReadByte();
            var charInfos = new AccountCharacterInfo[count];
            for (var i = 0; i < count; i++)
            {
                var charInfo = r.ReadAccountCharacterInfo();
                charInfos[charInfo.Index] = charInfo;
            }

            _accountCharacterInfos.SetInfos(charInfos);
        }