Exemplo n.º 1
0
        private void RequestRegionInfoHandler(Packet packet, LLAgent agent)
        {
            RegionInfoPacket info = new RegionInfoPacket();

            info.AgentData.AgentID         = agent.ID;
            info.RegionInfo.SimName        = Utils.StringToBytes(m_scene.Name);
            info.RegionInfo.ParentEstateID = 1; // Hardcoded to what the viewer considers "mainland"
            info.RegionInfo.PricePerMeter  = 1; // Dummy value

            if (m_regionInfo != null)
            {
                // Region settings
                info.RegionInfo.MaxAgents       = (byte)Math.Min(255, m_regionInfo.MaxAgents);
                info.RegionInfo.WaterHeight     = m_regionInfo.WaterHeight;
                info.RegionInfo2.HardMaxAgents  = m_regionInfo.MaxAgents;
                info.RegionInfo2.HardMaxObjects = m_regionInfo.ObjectCapacity;
                info.RegionInfo2.MaxAgents32    = m_regionInfo.MaxAgents;
                info.RegionInfo2.ProductName    = Utils.StringToBytes(PRODUCT_NAME);
                info.RegionInfo2.ProductSKU     = Utils.EmptyBytes;
                info.RegionInfo.UseEstateSun    = m_regionInfo.UseEstateSun;
            }
            else
            {
                info.RegionInfo2.ProductName = Utils.EmptyBytes;
                info.RegionInfo2.ProductSKU  = Utils.EmptyBytes;
            }

            if (m_estate != null)
            {
                info.RegionInfo.RegionFlags       = (uint)m_estate.EstateFlags;
                info.RegionInfo.BillableFactor    = 0f;
                info.RegionInfo.EstateID          = m_estate.ID;
                info.RegionInfo.ObjectBonusFactor = m_estate.ObjectBonusFactor;
                info.RegionInfo.RedirectGridX     = 0; // TODO: What is this?
                info.RegionInfo.RedirectGridY     = 0; //
                info.RegionInfo.SimAccess         = (byte)m_estate.AccessFlags;
                info.RegionInfo.SunHour           = m_estate.SunHour;
                info.RegionInfo.TerrainLowerLimit = m_estate.TerrainLowerLimit;
                info.RegionInfo.TerrainRaiseLimit = m_estate.TerrainRaiseLimit;
            }
            else
            {
                if (m_regionInfo != null)
                {
                    info.RegionInfo.RegionFlags = (uint)m_regionInfo.RegionFlags;
                    info.RegionInfo.SimAccess   = (byte)m_regionInfo.SimAccess;
                }

                info.RegionInfo.TerrainRaiseLimit = 255f;
            }

            m_udp.SendPacket(agent, info, ThrottleCategory.Task, false);
        }
Exemplo n.º 2
0
        private void RequestRegionInfoHandler(Packet packet, LLAgent agent)
        {
            RegionInfoPacket info = new RegionInfoPacket();
            info.AgentData.AgentID = agent.ID;
            info.RegionInfo.SimName = Utils.StringToBytes(m_scene.Name);
            info.RegionInfo.ParentEstateID = 1; // Hardcoded to what the viewer considers "mainland"
            info.RegionInfo.PricePerMeter = 1; // Dummy value

            if (m_regionInfo != null)
            {
                // Region settings
                info.RegionInfo.MaxAgents = (byte)Math.Min(255, m_regionInfo.MaxAgents);
                info.RegionInfo.WaterHeight = m_regionInfo.WaterHeight;
                info.RegionInfo2.HardMaxAgents = m_regionInfo.MaxAgents;
                info.RegionInfo2.HardMaxObjects = m_regionInfo.ObjectCapacity;
                info.RegionInfo2.MaxAgents32 = m_regionInfo.MaxAgents;
                info.RegionInfo2.ProductName = Utils.StringToBytes(PRODUCT_NAME);
                info.RegionInfo2.ProductSKU = Utils.EmptyBytes;
                info.RegionInfo.UseEstateSun = m_regionInfo.UseEstateSun;
            }
            else
            {
                info.RegionInfo2.ProductName = Utils.EmptyBytes;
                info.RegionInfo2.ProductSKU = Utils.EmptyBytes;
            }

            if (m_estate != null)
            {
                info.RegionInfo.RegionFlags = (uint)m_estate.EstateFlags;
                info.RegionInfo.BillableFactor = 0f;
                info.RegionInfo.EstateID = m_estate.ID;
                info.RegionInfo.ObjectBonusFactor = m_estate.ObjectBonusFactor;
                info.RegionInfo.RedirectGridX = 0; // TODO: What is this?
                info.RegionInfo.RedirectGridY = 0; //
                info.RegionInfo.SimAccess = (byte)m_estate.AccessFlags;
                info.RegionInfo.SunHour = m_estate.SunHour;
                info.RegionInfo.TerrainLowerLimit = m_estate.TerrainLowerLimit;
                info.RegionInfo.TerrainRaiseLimit = m_estate.TerrainRaiseLimit;
            }
            else
            {
                if (m_regionInfo != null)
                {
                    info.RegionInfo.RegionFlags = (uint)m_regionInfo.RegionFlags;
                    info.RegionInfo.SimAccess = (byte)m_regionInfo.SimAccess;
                }

                info.RegionInfo.TerrainRaiseLimit = 255f;
            }

            m_udp.SendPacket(agent, info, ThrottleCategory.Task, false);
        }