/// <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; }
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); }
/// <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 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; }