Example #1
0
        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);
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }