コード例 #1
0
 public void RemoveActiveMegaphone()
 {
     _active         = false;
     _activeMega     = null;
     _lastAvatarSent = DateTime.Now;
     MasterManager.CharacterPool.Broadcast(CPacket.ClearAvatarMegapone());
 }
コード例 #2
0
 public void BroadcastNextMegaphone()
 {
     _active         = true;
     _activeMega     = _queue.Dequeue();
     _lastAvatarSent = DateTime.Now;
     MasterManager.CharacterPool.Broadcast(CPacket.SetAvatarMegaphone(_activeMega));
 }
コード例 #3
0
        public AvatarMegaphoneResCode TryAddToQueue(AvatarMegaphone item)
        {
            if (IsQueueFull())
            {
                return(AvatarMegaphoneResCode.QueueFull);
            }

            if (_queue.FirstOrDefault(i => i.nCharId == item.nCharId) != null)
            {
                return(AvatarMegaphoneResCode.QueueFull);                // same char cant have several in the queue
            }
            _queue.Enqueue(item);

            item.nInitialQueuePosition = _queue.Count;

            if (!_active)
            {
                Update();
                return(AvatarMegaphoneResCode.Success_Now);
            }

            return(AvatarMegaphoneResCode.Success_Later);
        }