コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
            }
        }