/// <summary> /// Finds first packet by type. /// </summary> /// <param name="serial">Serial to find by.</param> /// <param name="type">Type to find by.</param> /// <returns>Ultima packet.</returns> public UltimaPacket FindFirstPacket(uint serial, Type type = null) { if (type != null) { foreach (UltimaPacket packet in Packets) { if (!packet.Definition.IsDefault) { IUltimaEntity entity = packet as IUltimaEntity; if (entity != null && entity.Serial == serial && packet.GetType() == type) { return(packet); } } } } else { foreach (UltimaPacket packet in Packets) { if (!packet.Definition.IsDefault) { IUltimaEntity entity = packet as IUltimaEntity; if (entity != null && entity.Serial == serial) { return(packet); } } } } return(null); }
private void SpyHelper_OnPacket(UltimaPacket relative) { if (Packet == null) { return; } IUltimaEntity packet = Packet as IUltimaEntity; IUltimaEntity entity = relative as IUltimaEntity; if (packet != null && entity != null && packet.Serial == entity.Serial) { Relatives.Add(relative); } }
/// <summary> /// Finds all entities with specific serial. /// </summary> /// <param name="serial">Serial to find by.</param> /// <returns>Collection of entities.</returns> public ObservableCollection <UltimaPacket> FindEntities(uint serial) { ObservableCollection <UltimaPacket> packets = new ObservableCollection <UltimaPacket>(); foreach (UltimaPacket packet in Packets) { IUltimaEntity entity = packet as IUltimaEntity; if (entity != null && entity.Serial == serial) { packets.Add(packet); } } return(packets); }
/// <summary> /// Finds packets by type. /// </summary> /// <param name="serial">Serial to find by.</param> /// <param name="type">Type to find by.</param> /// <returns>List of ultima packets.</returns> public List <UltimaPacket> FindPackets(uint serial, Type type = null) { List <UltimaPacket> list = new List <UltimaPacket>(); if (type != null) { foreach (UltimaPacket packet in Packets) { if (packet.Definition != null && !packet.Definition.IsDefault) { IUltimaEntity entity = packet as IUltimaEntity; if (entity.Serial == serial && packet.GetType() == type) { list.Add(packet); } } } } else { foreach (UltimaPacket packet in Packets) { if (packet.Definition != null && !packet.Definition.IsDefault) { IUltimaEntity entity = packet as IUltimaEntity; if (entity.Serial == serial) { list.Add(packet); } } } } return(list); }
private void FindRelatives_Executed(object sender, ExecutedRoutedEventArgs e) { ShowLoading(); try { if (e.Parameter is UltimaPacket && e.Parameter is IUltimaEntity) { IUltimaEntity entity = (IUltimaEntity)e.Parameter; RelativesWindow window = new RelativesWindow(); window.Packet = (UltimaPacket)e.Parameter; window.Relatives = _SpyHelper.FindEntities(entity.Serial); window.WireEvents(_SpyHelper); window.Show(); } } catch (Exception ex) { ShowNotification(NotificationType.Error, ex); } HideLoading(); }