示例#1
0
 public void SendDatacubeVolume(Datacube datacube)
 {
     player.Session.EnqueueMessageEncrypted(new ServerDatacubeVolumeUpdate
     {
         DatacubeVolumeData = BuildNetworkDatacube(datacube)
     });
 }
示例#2
0
 private NetworkDatacube BuildNetworkDatacube(Datacube datacube)
 {
     return(new NetworkDatacube
     {
         DatacubeId = datacube.Id,
         Progress = datacube.Progress
     });
 }
示例#3
0
        /// <summary>
        /// Create a new <see cref="DatacubeManager"/> from an existing database model.
        /// </summary>
        public DatacubeManager(Player owner, CharacterModel characterModel)
        {
            player = owner;

            foreach (CharacterDatacubeModel model in characterModel.Datacube)
            {
                var  datacube = new Datacube(model);
                uint hash     = DatacubeHash(datacube.Id, datacube.Type);
                datacubes.Add(hash, datacube);
            }
        }
示例#4
0
        /// <summary>
        /// Create a new <see cref="Datacube"/> of type <see cref="DatacubeType.Journal"/> with supplied id and progress.
        /// </summary>
        public void AddDatacubeVolume(ushort id, uint progress)
        {
            if (GameTableManager.Instance.DatacubeVolume.GetEntry(id) == null)
            {
                throw new ArgumentException();
            }

            var datacube = new Datacube(id, DatacubeType.Journal, progress);

            datacubes.Add(DatacubeHash(id, DatacubeType.Journal), datacube);

            SendDatacubeVolume(datacube);
        }
示例#5
0
        public override void OnActivateCast(Player activator)
        {
            uint progress = (uint)(1 << QuestChecklistIdx);

            Creature2Entry entry = GameTableManager.Creature2.GetEntry(CreatureId);

            if (entry.DatacubeId != 0u)
            {
                Datacube datacube = activator.DatacubeManager.GetDatacube((ushort)entry.DatacubeId, DatacubeType.Datacube);
                if (datacube == null)
                {
                    activator.DatacubeManager.AddDatacube((ushort)entry.DatacubeId, progress);
                }
                else
                {
                    datacube.Progress |= progress;
                    activator.DatacubeManager.SendDatacube(datacube);
                }
            }

            if (entry.DatacubeVolumeId != 0u)
            {
                Datacube datacube = activator.DatacubeManager.GetDatacube((ushort)entry.DatacubeVolumeId, DatacubeType.Journal);
                if (datacube == null)
                {
                    activator.DatacubeManager.AddDatacubeVolume((ushort)entry.DatacubeVolumeId, progress);
                }
                else
                {
                    datacube.Progress |= progress;
                    activator.DatacubeManager.SendDatacubeVolume(datacube);
                }
            }

            //TODO: cast "116,Generic Quest Spell - Activating - Activate - Tier 1" by 0x07FD
        }