public void OnRoomPlayersUpdate(PacketCommand data) { if (m_rooms.ContainsKey(data.Command)) { string[] parts = data.Data.Split('|'); string[] eloparts = parts[1].Split(','); string[] players = parts[0].Split(','); List <int> elos = new List <int>(); foreach (string elo in eloparts) { int value = 1200; try { value = int.Parse(elo); } catch { //MessageBox.Show("Error in parsing Elo from:" + eloparts.ToString()); } elos.Add(value); } Invoke(new Action <string, string[], int[]>(InternalRoomPlayersUpdate), data.Command, (object)players, (object)elos.ToArray()); } }
public override void HandleDataPacket(PacketCommand command, ref float t, ref float[] values) { t = BitConverter.ToUInt32(command.PayLoad, 0) / 1000.0F; Int16 a0 = command.PayLoad[4]; Int16 a1 = command.PayLoad[5]; Int16 a2 = command.PayLoad[6]; Int16 a3 = command.PayLoad[7]; a0 += (Int16)(((command.PayLoad[8] >> 0) & 0x3) << 8); a1 += (Int16)(((command.PayLoad[8] >> 2) & 0x3) << 8); a2 += (Int16)(((command.PayLoad[8] >> 4) & 0x3) << 8); a3 += (Int16)(((command.PayLoad[8] >> 6) & 0x3) << 8); byte gains = command.PayLoad[9]; int gain0 = SupportedGains[(gains >> 0) & 3]; int gain1 = SupportedGains[(gains >> 2) & 3]; int gain2 = SupportedGains[(gains >> 4) & 3]; int gain3 = SupportedGains[(gains >> 6) & 3]; values = new float[] { (a0 / MaxADC) * MaxVoltage / gain0, (a1 / MaxADC) * MaxVoltage / gain1, (a2 / MaxADC) * MaxVoltage / gain2, (a3 / MaxADC) * MaxVoltage / gain3 }; OnNewGainValues(0, gain0); OnNewGainValues(1, gain1); OnNewGainValues(2, gain2); OnNewGainValues(3, gain3); }
public static PacketHeader Create(PacketCommand cmd, UInt32 netId) { PacketHeader pktHeader; pktHeader.cmd = (UInt16) cmd; pktHeader.netId = netId; return pktHeader; }
public void OnRoomPlayersUpdate(PacketCommand data) { if (m_rooms.ContainsKey(data.Command)) { Invoke(new Action <string, string[]>(InternalRoomPlayersUpdate), data.Command, ((object)data.Data.Split(','))); } }
public Packet(PacketCommand cmd, [CanBeNull] byte[] payload) { // to pass the buffer to unmanaged code, we need to memcpy it to an unmanaged buffer var length = payload?.Length ?? 0; var buffer = IntPtr.Zero; try { // payload may be null, in which case we pass nullptr to C++ if (payload != null) { buffer = Marshal.AllocHGlobal(length); Marshal.Copy(payload, 0, buffer, length); } m_handle = NativeMethods.wirefox_packet_create((byte)cmd, buffer, new UIntPtr((uint)length)); m_cmd = cmd; m_sender = PeerID.Invalid; m_payload = payload; } finally { if (buffer != IntPtr.Zero) { Marshal.FreeHGlobal(buffer); } } }
public static PacketHeader Create(PacketCommand cmd, UInt32 netId) { PacketHeader pktHeader; pktHeader.cmd = (UInt16)cmd; pktHeader.netId = netId; return(pktHeader); }
public void OnRoomPlayersUpdate(PacketCommand data) { if (m_rooms.ContainsKey(data.Command)) { string[] parts = data.Data.Split('|'); string[] eloparts = parts[1].Split(','); string[] players = parts[0].Split(','); List <int> elos = new List <int>(); foreach (string elo in eloparts) { elos.Add(int.Parse(elo)); } Invoke(new Action <string, string[], int[]>(InternalRoomPlayersUpdate), data.Command, (object)players, (object)elos.ToArray()); } }
public void ParseCommand(PacketCommand command, SerialDataChannel channel) { if (command.PacketID == PhysLoggerPacketCommandID.GetHWSignatures) { var parts = command.PayLoadString.Split(new char[] { '=' }); if (parts[0] == "ver") { if (parts[1] == PhysLoggerHWSignature.PhysLogger1_0.ToString()) { HWProps = new PhysLogger1_0HWProperties(); HWProps.OnNewGainValues += HWProps_OnNewGainValues; new PacketCommand(PhysLoggerPacketCommandID.BeginFire, new byte[] { 1 }).SendCommand(channel); } else { return; } OnSignatureUpdate(this, new EventArgs()); } else { if (HWProps != null) { if (HWProps.UpdateProp(parts)) { OnSignatureUpdate?.Invoke(this, new EventArgs()); } } } } if (HWProps.Signature == PhysLoggerHWSignature.Unknown) { new PacketCommand(PhysLoggerPacketCommandID.GetHWSignatures).SendCommand(channel); return; } if (command.PacketID == PhysLoggerPacketCommandID.DataPacket) { float t = 0; float[] values = null; HWProps.HandleDataPacket(command, ref t, ref values); if (values != null) { NewPointReceived(t, values); } } }
internal Packet(IntPtr handle) { m_handle = handle; m_cmd = (PacketCommand)NativeMethods.wirefox_packet_get_cmd(handle); m_sender = new PeerID(NativeMethods.wirefox_packet_get_sender(handle)); var dataptr = NativeMethods.wirefox_packet_get_data(handle); if (dataptr == IntPtr.Zero) { // nullptr payload is allowed m_payload = new byte[0]; } else { // copy payload of correct length over to managed land m_payload = new byte[NativeMethods.wirefox_packet_get_length(handle).ToUInt32()]; Marshal.Copy(NativeMethods.wirefox_packet_get_data(handle), m_payload, 0, m_payload.Length); } }
public bool Validate(IPacketMap packet) { if (!(packet is T)) { return(false); } if (!PacketCommand.Equals(packet.Command, StringComparison.CurrentCultureIgnoreCase)) { return(false); } if (Validator != null && !Validator((T)packet)) { return(false); } OnFound.SetResult((T)packet); return(true); }
private void HandlePackets(PacketCommand command) { if (InvokeRequired) { Invoke(new Action <PacketCommand>(HandlePackets), command); } else { if (command.Command == "POINTS") { DevPointCount.Text = command.Data; } if (command.Command == "MSG") { MessageBox.Show(command.Data); } if (command.Command == "USERNAME") { Program.ChangeUsername(command.Data); } } }
public virtual void HandleDataPacket(PacketCommand command, ref float f, ref float[] values) { new NotImplementedException(); }
/// <summary> /// Main constructor for server side, the key must be initialized with a value. /// </summary> /// <param name="name_">The name of the emitter. For server side, it will be "root"</param> /// <param name="key_">The value of the Locker key</param> /// <param name="command_">The command associated to <paramref name="data_"/></param> /// <param name="data_">The <see cref="Object"/> which contain the data</param> public Packet(string name_, uint key_, PacketCommand command_, Object data_) { this.Name = name_; this.Key = key_; this.Data = new KeyValuePair <PacketCommand, Object>(command_, data_); }
private bool ServerCommands(Account player, Room room) { try { if (text.StartsWith("(Ghost)")) { text.Replace("(Ghost)", ""); } if (text.StartsWith("(Fantasma)")) { text.Replace("(Fantasma)", ""); } string Command = text.Substring(1); if (!Settings.ChatCommandsActive || !player.HaveGMLevel()) { return(false); } if (!text.StartsWith(".") && text.Contains("help")) { text = "Olha a merda...capoto o corsa. VRUMMMMM PÁH"; return(true); } if (!text.StartsWith(".")) { return(false); } Logger.ChatCommands($" [CHAT] [Commands] PlayerId: {player.playerId} Nick: {player.nickname} Login: {player.login} Ip: {player.ipAddress.ToString()} Text: {text}"); AccessLevelEnum access = player.access; PacketCommand REQ = null; if (Command.StartsWith("HELP") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_HELP_REQ(1); } else if (Command.StartsWith("PCCAFEBASIC ") && access >= AccessLevelEnum.Admin) { REQ = new CMD_GAMEMASTER_REQ(Command, 6); } else if (Command.StartsWith("PCCAFEPLUS ") && access >= AccessLevelEnum.Admin) { REQ = new CMD_GAMEMASTER_REQ(Command, 7); } else if (Command.StartsWith("KICK ") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_KICK_REQ(Command, 1); } else if (Command.StartsWith("KICKALL") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_KICK_REQ(Command, 2); } else if (Command.StartsWith("AFKKICK") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_KICK_REQ(Command, 2); } else if (Command.StartsWith("ONLINE") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_SERVERINFO_REQ(1); } else if (Command.StartsWith("G1 ") && access >= AccessLevelEnum.Moderator) //ALL { REQ = new CMD_ANNOUNCE_REQ(Command, 1); } else if (Command.StartsWith("G2 ") && access >= AccessLevelEnum.Moderator) //ROOM { REQ = new CMD_ANNOUNCE_REQ(Command, 2); } else if (Command.StartsWith("CASH ") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_PLAYERINFO_REQ(Command, 1); } else if (Command.StartsWith("GOLD ") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_PLAYERINFO_REQ(Command, 2); } else if (Command.StartsWith("RANK ") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_GAMEMASTER_REQ(Command, 3); } else if (Command.StartsWith("NICK ") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_GAMEMASTER_REQ(Command, 4); } else if (Command.StartsWith("ADDITEM ") && access >= AccessLevelEnum.GameMaster) { REQ = new CMD_GAMEMASTER_REQ(Command, 5); } else if (Command.StartsWith("GMCOLOR") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_GAMEMASTER_REQ(Command, 1); } else if (Command.StartsWith("ANTIKICK") && access >= AccessLevelEnum.Moderator) { REQ = new CMD_GAMEMASTER_REQ(Command, 2); } else if (Command.StartsWith("END") && access == AccessLevelEnum.Developer) { REQ = new CMD_DEVELOPER_REQ(Command, 1); } else if (Command.StartsWith("ROOMTYPE ") && access == AccessLevelEnum.Developer) { REQ = new CMD_DEVELOPER_REQ(Command, 2); } else if (Command.StartsWith("ROOMSPECIAL ") && access == AccessLevelEnum.Developer) { REQ = new CMD_DEVELOPER_REQ(Command, 3); } else if (Command.StartsWith("ROOMWEAPON ") && access == AccessLevelEnum.Developer) { REQ = new CMD_DEVELOPER_REQ(Command, 4); } else { text = "Não foi possivel encontrar o comando digitado."; } if (REQ != null) { if (REQ.Set(player, room)) { REQ.RunImplement(); } text = REQ.GetResponse(); REQ = null; } return(true); } catch (Exception ex) { text = "Ocorreu um problema ao executar o comando."; Logger.Exception(ex); return(true); } }