/// <summary> /// Get character quest list data. /// </summary> /// <param name="objCharacter">The character.</param> /// <returns>ModelQuestListData.</returns> public static ModelQuestListData GetListdata(Character objCharacter) { //@TODO //Filter quests ModelQuestListData ObjListdata = new ModelQuestListData(); foreach (Quest ObjQuest in Database.Quests.Values) { ModelQuestListNetDataCharacterIds Characterids = new ModelQuestListNetDataCharacterIds(); foreach (ModelQuestPlayersettings Setting in ObjQuest.Playersettings) { Characterids.Characterid.Add(0); } ModelQuestListNetData ObjQuestListNetData = new ModelQuestListNetData { Prereqs = 1, PrereqsInvalidated = 0, Characterids = Characterids, Filename = ObjQuest.Source }; ObjListdata.QuestNetdata.Add(ObjQuestListNetData); } return(ObjListdata); }
/// <summary> /// Sends BResponseQuestListData. /// </summary> /// <param name="s">The session.</param> /// <param name="p">Packet BRequestRetrievePersistentData.</param> public static void SendResponseQuestList(Session s, Package p) { Character ObjCharacter = s.Player.Empire.CurrentCharacter; ModelQuestListData ObjListdata = CharacterHelper.GetListdata(ObjCharacter); if ((ObjListdata.QuestNetdata != null) && (ObjListdata.QuestNetdata.Count > 0)) { PacketBResponseQuestListData ResponseContent = new PacketBResponseQuestListData(ObjListdata.ToXml); Logger.Debug($"{p.Key}::SendResponseQuestList - Execute command: {ResponseContent}"); byte[] Response = ResponseContent.ToByteArray(); Package Package = new Package(p.HeaderXuid, p.HeaderField20, p.HeaderServiceId, p.HeaderField22, PacketTypes.BResponseQuestListData, 0, Response); byte[] ToSend = Package.ToByteArray(); s.Send(ToSend, 0, ToSend.Length); } }