示例#1
0
 public void broadcastToMembers(GameServerNetworkPacket pk)
 {
     foreach (L2Player pl in Members)
     {
         pl.sendPacket(pk);
     }
 }
示例#2
0
        public void sendPacket(GameServerNetworkPacket sbp)
        {
            if (IsTerminated)
            {
                return;
            }

            sbp.write();
            byte[] data = sbp.ToByteArray();
            _crypt.encrypt(data);
            List <byte> bytes = new List <byte>();

            bytes.AddRange(BitConverter.GetBytes((short)(data.Length + 2)));
            bytes.AddRange(data);
            TrafficDown += bytes.Count;

            if (sbp is L2dotNET.Game.network.l2send.CharacterSelectionInfo)
            {
                // byte[] st = ToByteArray();
                //foreach (byte s in data)
                //    Console.Write(s.ToString("x2") + " ");
            }

            try
            {
                _stream.Write(bytes.ToArray(), 0, bytes.Count);
                //  _stream.Flush();
            }
            catch
            {
                Console.WriteLine("client " + AccountName + " terminated.");
                termination();
            }
        }
示例#3
0
 private void broadcastToOnline(GameServerNetworkPacket p)
 {
     foreach (ClanMember cm in members)
     {
         if (cm.online == 1)
         {
             cm.Target.sendPacket(p);
         }
     }
 }
示例#4
0
 public void broadcastToMembers(GameServerNetworkPacket pk)
 {
     foreach (ClanMember cm in members)
     {
         if (cm.online == 1)
         {
             cm.Target.sendPacket(pk);
         }
     }
 }
示例#5
0
 public void broadcastToMembers(GameServerNetworkPacket pk, int except)
 {
     foreach (L2Player pl in Members)
     {
         if (pl.ObjID != except)
         {
             pl.sendPacket(pk);
         }
     }
 }
示例#6
0
        public void BroadcastToRegion(int instanceId, int x, int y, GameServerNetworkPacket pck)
        {
            L2WorldRegion reg = GetRegion(x, y);

            if (reg != null)
            {
                reg.broadcastPacket(instanceId, pck, false);
            }
            else
            {
                CLogger.warning("l2world: broadcastRegionPacket error, object on unk territory " + x + " " + y);
            }
        }
示例#7
0
 public void broadcastPacket(GameServerNetworkPacket pk)
 {
     foreach (L2Object obj in ObjectsInside.Values)
     {
         if (obj is L2Player)
         {
             obj.sendPacket(pk);
         }
         else if (obj is L2Summon)
         {
             ((L2Summon)obj).sendPacket(pk);
         }
     }
 }
示例#8
0
        public void BroadcastPacket(GameServerNetworkPacket packet)
        {
            if (_characterList.Count == 0)
            {
                return;
            }

            foreach (L2Character character in _characterList)
            {
                if (character != null && character is L2Player)
                {
                    character.sendPacket(packet);
                }
            }
        }
示例#9
0
        public virtual void broadcastPacket(GameServerNetworkPacket pk, bool excludeYourself)
        {
            if (!excludeYourself)
            {
                sendPacket(pk);
            }

            foreach (L2Object o in knownObjects.Values)
            {
                if (o is L2Player)
                {
                    o.sendPacket(pk);
                }
            }
        }
示例#10
0
        public void sendPacket(GameServerNetworkPacket pk)
        {
            pk.write();

            List <byte> blist = new List <byte>();

            byte[] db = pk.ToByteArray();

            short len = (short)db.Length;

            blist.AddRange(BitConverter.GetBytes(len));
            blist.AddRange(db);

            nstream.Write(blist.ToArray(), 0, blist.Count);
            nstream.Flush();
        }
示例#11
0
        public void addKnownObject(L2Object obj, GameServerNetworkPacket pk, bool pkuse)
        {
            if (knownObjects.ContainsKey(obj.ObjID))
            {
                return;
            }

            knownObjects.Add(obj.ObjID, obj);

            if (!obj.Visible)
            {
                return;
            }

            if (pkuse)
            {
                onAddObject(obj, pk);
            }
        }
示例#12
0
        public void realiseMe(L2Object obj, GameServerNetworkPacket pk, bool pkuse)
        {
            if (_objects.ContainsKey(obj.ObjID))
            {
                Console.WriteLine(getName() + " error, object " + obj.ObjID + " already in here.");
                return;
            }

            _objects.Add(obj.ObjID, obj);

            foreach (L2Object ko in _objects.Values)
            {
                if (ko.ObjID == obj.ObjID)
                {
                    continue;
                }

                ko.addKnownObject(obj, pk, pkuse);
                obj.addKnownObject(ko, pk, pkuse);
            }
        }
示例#13
0
        public void RealiseEntry(L2Object obj, GameServerNetworkPacket pk, bool pkuse)
        {
            if (_allObjects.ContainsKey(obj.ObjID))
            {
                _allObjects.Add(obj.ObjID, obj);

                if (obj is L2Player)
                {
                    _allPlayers.Add(obj.ObjID, (L2Player)obj);
                }

                L2WorldRegion reg = GetRegion(obj.X, obj.Y);
                obj.CurrentRegion = reg.getName();
                if (reg != null)
                {
                    reg.realiseMe(obj, pk, pkuse);
                }
                else
                {
                    CLogger.warning("l2world: realiseEntry error, object on unk territory " + obj.X + " " + obj.Y + " " + obj.Z);
                }
            }
        }
示例#14
0
        public void broadcastPacket(int instanceId, GameServerNetworkPacket pck, bool main)
        {
            foreach (L2Object o in _objects.Values)
            {
                if (o.InstanceID != instanceId)
                {
                    continue;
                }

                if (o is L2Player)
                {
                    o.sendPacket(pck);
                }

                if (main)
                {
                    foreach (L2WorldRegion wrn in _surroundingRegions)
                    {
                        wrn.broadcastPacket(instanceId, pck, false);
                    }
                }
            }
        }
示例#15
0
 public virtual void broadcastPacket(GameServerNetworkPacket pk)
 {
     broadcastPacket(pk, false);
 }
示例#16
0
 public virtual void onAddObject(L2Object obj, GameServerNetworkPacket pk, string msg = null)
 {
 }
示例#17
0
 public virtual void sendPacket(GameServerNetworkPacket pk)
 {
 }