public static void SendGetCharacterBroaucast(WorldCharacter pChar, Packet pPacket) { var conn = Program.GetZoneByMap(pChar.Character.PositionInfo.Map); using (var packet = new InterPacket(InterHeader.GetBroadcastList)) { packet.WriteString(pChar.Character.Name, 16); packet.WriteInt(pPacket.ToNormalArray().Length); packet.WriteBytes(pPacket.ToNormalArray()); conn.SendPacket(packet); } }
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); } }