public static void Broadcast(WorldConnector pConnector, InterPacket pPacket) { int packetlenght; byte[] packet; string charname; if (!pPacket.TryReadString(out charname, 16)) { return; } if (!pPacket.TryReadInt(out packetlenght)) { return; } if (!pPacket.TryReadBytes(packetlenght, out packet)) { return; } var pClient = ClientManager.Instance.GetClientByCharName(charname); if (pClient == null) { return; } using (var ipacket = new InterPacket(InterHeader.SendBroiadCastList)) { var Sender = pClient.Character.Map.GetCharactersBySectors(pClient.Character.MapSector.SurroundingSectors); if (Sender.Count == 0) { return; } ipacket.WriteInt(packetlenght); ipacket.WriteBytes(packet); ipacket.WriteInt(Sender.Count); foreach (var character in Sender) { ipacket.WriteString(character.Name, 16); } pConnector.SendPacket(ipacket); } }
public static void GetList(ZoneConnection pConnection, InterPacket pPacket) { int count, packetlenght; byte[] SendPacket; if (!pPacket.TryReadInt(out packetlenght)) { return; } if (!pPacket.TryReadBytes(packetlenght, out SendPacket)) { return; } if (!pPacket.TryReadInt(out count)) { return; } for (var i = 0; i < count; i++) { string charname; if (!pPacket.TryReadString(out charname, 16)) { return; } var client = ClientManager.Instance.GetClientByCharname(charname); if (client != null) { using (var packet = new Packet()) { packet.WriteBytes(SendPacket); client.SendPacket(packet); Log.WriteLine(LogLevel.Debug, "Send borcast to {0}", charname); } } } }