public void RemoveActiveMegaphone() { _active = false; _activeMega = null; _lastAvatarSent = DateTime.Now; MasterManager.CharacterPool.Broadcast(CPacket.ClearAvatarMegapone()); }
public void BroadcastNextMegaphone() { _active = true; _activeMega = _queue.Dequeue(); _lastAvatarSent = DateTime.Now; MasterManager.CharacterPool.Broadcast(CPacket.SetAvatarMegaphone(_activeMega)); }
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); }