private void MessageReceived(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { var res = Parse(message); if (res.header.MessageType == ParameterController.countDownPacket)//CountDown { var countDownTime = res.data[36]; var unixTime = BitConverter.ToUInt32(res.data, 24); var nameBytes = new byte[18]; Array.Copy(res.data, 41, nameBytes, 0, 18); var name = Encoding.UTF8.GetString(nameBytes) ?? ""; Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + countDownTime), name)); } if (res.header.MessageType == ParameterController.partyStopPacket || res.header.MessageType == ParameterController.ensembleStopPacket) //Stop { Play?.Invoke(this, new PlayEvent(1, 0, " ")); } if (res.header.MessageType == ParameterController.ensembleStartPacket)//ensemble start { var unixTime = BitConverter.ToUInt32(res.data, 24); ParameterController.GetInstance().isEnsembleSync = true; Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + 6), " ")); } if (res.header.MessageType == ParameterController.ensemblePacket)//ensemble mode { if (ParameterController.GetInstance().isEnsembleSync) { ParameterController.GetInstance().AnalyzeEnsembleNotes(res.data); } ParameterController.GetInstance().isEnsembleSync = false; } }
private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { var res = Parse(message); var item = new PacketEntry { IsVisible = true, ActorControl = -1, Data = message, Message = res.header.MessageType.ToString("X4"), Direction = "C", Category = set.ToString(), Size = res.header.MessageLength.ToString(), Set = set, RouteID = res.header.RouteID.ToString(), PacketUnixTime = res.header.Seconds, Connection = connectionType }; if (res.header.MessageType == 0x0287) //Bard Performance { var length = res.data[32]; var notes = new byte[length]; Array.Copy(res.data, 33, notes, 0, length); //Console.WriteLine("1 packet"); //Log.B(notes, true);//TODO: Time analyze //ParameterController.GetInstance().AnalyzeNotes(notes); } }
private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { var res = Parse(message); var item = new PacketEntry { IsVisible = true, ActorControl = -1, Data = message, Message = res.header.MessageType.ToString("X4"), Direction = "C", Category = set.ToString(), // Timestamp = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"), Size = res.header.MessageLength.ToString(), Set = set, RouteID = res.header.RouteID.ToString(), PacketUnixTime = res.header.Seconds, // SystemMsTime = Millis(), Connection = connectionType }; if (res.header.MessageType == 0x018B) //Bard Performance { var length = res.data[32]; var notes = new byte[length]; Array.Copy(res.data, 33, notes, 0, length); Log.B(notes, true);//TODO: Time analyze ParameterController.GetInstance().AnalyzeNotes(notes); } }
private void MessageReceived(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { var res = Parse(message); if (res.header.MessageType == 0x036B && Log.isBeta)//CountDown { var countDownTime = res.data[36]; var unixTime = BitConverter.ToUInt32(res.data, 24); var nameBytes = new byte[18]; Array.Copy(res.data, 41, nameBytes, 0, 18); var name = Encoding.UTF8.GetString(nameBytes) ?? ""; Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + countDownTime), name)); } //if (res.header.MessageType == 0x011C && Log.isBeta) //party check //{ // Console.WriteLine("get!"); // var nameBytes = new byte[18]; // Array.Copy(res.data, 52, nameBytes, 0, 18); // var name = Encoding.UTF8.GetString(nameBytes) ?? ""; // Play?.Invoke(this, new PlayEvent(1, 0, name)); //} if (res.header.MessageType == 0x0355 && Log.isBeta) //party check { Play?.Invoke(this, new PlayEvent(1, 0, " ")); } }
private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { try { var res = Parse(message); if (res.header.MessageType == 0x02A3) //Bard Performance { string[] instrumentlist = { "妹有乐器", "竖琴", "钢琴", "鲁特琴", "提琴拨弦", "长笛", "双簧管", "单簧管", "横笛", "排箫", "定音鼓", "邦戈鼓", "低音鼓", "小军鼓", "镲", "小号", "长号", "大号", "圆号", "萨克斯管" }; var type = BitConverter.ToUInt16(res.data, 32); if (type == (0x071C)) { byte data = res.data[36]; if (data <= 19) { Play?.Invoke(this, new PlayEvent(2, 0, instrumentlist[data])); Log.overlayLog($"乐器更换:{instrumentlist[data]}"); } } } } catch (Exception e) { Log.overlayLog(e.ToString()); } }
private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { var res = Parse(message); var item = new PacketEntry { IsVisible = true, ActorControl = -1, Data = message, Message = res.header.MessageType.ToString("X4"), Direction = "C", Category = set.ToString(), Timestamp = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"), Size = res.header.MessageLength.ToString(), Set = set, RouteID = res.header.RouteID.ToString(), PacketUnixTime = res.header.Seconds, SystemMsTime = Millis(), Connection = connectionType }; if (_configFlags.HasFlag(ConfigFlags.DontUsePacketTimestamp)) { item.Timestamp = DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm:ss.fff tt"); } _myTab.Dispatcher.Invoke(new Action(() => { _myTab.AddPacketToListView(item); })); }
private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType) { try { var res = Parse(message); if (res.header.MessageType == ParameterController.instruSendingPacket) //Bard Performance { var type = BitConverter.ToUInt16(res.data, 32); if (type == (0x071C)) { byte data = res.data[36]; if (data <= 19) { Play?.Invoke(this, new PlayEvent(2, 0, constStringClass.IDtoString(data))); Log.overlayLog($"乐器更换:{constStringClass.IDtoString(data)}"); } } } } catch (Exception e) { Log.overlayLog(e.ToString()); } }