示例#1
0
 public void SendScreenSpawn(Interfaces.IMapObject obj, bool self)
 {
     foreach (Interfaces.IMapObject _obj in Screen.Objects)
     {
         if (_obj == null)
             continue;
         if (_obj.UID != Entity.UID)
         {
             if (_obj.MapObjType == Game.MapObjectType.Player)
             {
                 GameState client = _obj.Owner as GameState;
                 obj.SendSpawn(client, false);
             }
         }
     }
     if (self)
         obj.SendSpawn(this);
 }
        public void SendScreenSpawn(Interfaces.IMapObject obj, bool self)
        {
            for (int c = 0; c < Objects.Count; c++)
            {
                //For a multi threaded application, while we go through the collection
                //the collection might change. We will make sure that we wont go off
                //the limits with a check.
                if (c >= Objects.Count)
                    break;
                Interfaces.IMapObject _obj = Objects[c];
                if (_obj == null)
                    continue;
                if (_obj.UID != Owner.Entity.UID)
                {
                    if (_obj.MapObjType == Game.MapObjectType.Player)
                    {
                        GameState client = _obj.Owner as GameState;
                        obj.SendSpawn(client, false);
                    }
                }
            }

            if (self)
                obj.SendSpawn(Owner, false);
        }
示例#3
0
        public void SendScreenSpawn(Interfaces.IMapObject _object)
        {
            foreach (Client.GameState client in Program.Values)
            {
                if (client != null)
                {
                    if (client.Entity.UID != ExcludeFromSend)
                    {
                        if (client.Map.ID == Owner.MapID)
                        {
                            if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, Owner.X, Owner.Y) > 25)
                            {
                                continue;
                            }
                            _object.SendSpawn(client, false);

                        }
                    }
                }
            }
        }
        public void SendScreenSpawn(Interfaces.IMapObject obj, bool self)
        {
            try
            {
                foreach (Interfaces.IMapObject _obj in Screen.Objects)
                {
                    if (_obj == null)
                        continue;
                    if (_obj.UID != Entity.UID)
                    {
                        if (_obj.MapObjType == Game.MapObjectType.Player)
                        {
                            byte spawnType = 0;
                            GameState client = _obj.Owner as GameState;
                            obj.SendSpawn(client, false);
                            byte[] array = new byte[Entity.SpawnPacket.Length];
                            Entity.SpawnPacket.CopyTo(array, 0);
                            // array[0x6d] = spawnType;
                            _obj.Owner.Send(array);

                        }
                    }
                }
                if (self)
                    obj.SendSpawn(this);
            }
            catch (Exception e)
            {
                Program.SaveException(e);
            }
        }