void UseCircuitCodeHandler(Packet packet, Agent agent) { RegionHandshakePacket handshake = new RegionHandshakePacket(); handshake.RegionInfo.BillableFactor = 0f; handshake.RegionInfo.CacheID = UUID.Random(); handshake.RegionInfo.IsEstateManager = false; handshake.RegionInfo.RegionFlags = 1; handshake.RegionInfo.SimOwner = UUID.Random(); handshake.RegionInfo.SimAccess = 1; handshake.RegionInfo.SimName = Utils.StringToBytes("Simian"); handshake.RegionInfo.WaterHeight = 20.0f; handshake.RegionInfo.TerrainBase0 = UUID.Zero; handshake.RegionInfo.TerrainBase1 = UUID.Zero; handshake.RegionInfo.TerrainBase2 = UUID.Zero; handshake.RegionInfo.TerrainBase3 = UUID.Zero; handshake.RegionInfo.TerrainDetail0 = UUID.Zero; handshake.RegionInfo.TerrainDetail1 = UUID.Zero; handshake.RegionInfo.TerrainDetail2 = UUID.Zero; handshake.RegionInfo.TerrainDetail3 = UUID.Zero; handshake.RegionInfo.TerrainHeightRange00 = 0f; handshake.RegionInfo.TerrainHeightRange01 = 20f; handshake.RegionInfo.TerrainHeightRange10 = 0f; handshake.RegionInfo.TerrainHeightRange11 = 20f; handshake.RegionInfo.TerrainStartHeight00 = 0f; handshake.RegionInfo.TerrainStartHeight01 = 40f; handshake.RegionInfo.TerrainStartHeight10 = 0f; handshake.RegionInfo.TerrainStartHeight11 = 40f; handshake.RegionInfo2.RegionID = UUID.Random(); agent.SendPacket(handshake); }
void UseCircuitCodeHandler(Packet packet, Agent agent) { RegionHandshakePacket handshake = new RegionHandshakePacket(); handshake.RegionInfo.BillableFactor = 0f; handshake.RegionInfo.CacheID = UUID.Random(); handshake.RegionInfo.IsEstateManager = false; handshake.RegionInfo.RegionFlags = (uint)(RegionFlags.AllowDirectTeleport | RegionFlags.AllowLandmark | RegionFlags.AllowParcelChanges | RegionFlags.AllowSetHome | RegionFlags.AllowVoice | RegionFlags.PublicAllowed | RegionFlags.Sandbox | RegionFlags.TaxFree); handshake.RegionInfo.SimOwner = UUID.Random(); handshake.RegionInfo.SimAccess = (byte)SimAccess.Min; handshake.RegionInfo.SimName = Utils.StringToBytes("Simian"); handshake.RegionInfo.WaterHeight = server.Scene.WaterHeight; handshake.RegionInfo.TerrainBase0 = UUID.Zero; handshake.RegionInfo.TerrainBase1 = UUID.Zero; handshake.RegionInfo.TerrainBase2 = UUID.Zero; handshake.RegionInfo.TerrainBase3 = UUID.Zero; handshake.RegionInfo.TerrainDetail0 = UUID.Zero; handshake.RegionInfo.TerrainDetail1 = UUID.Zero; handshake.RegionInfo.TerrainDetail2 = UUID.Zero; handshake.RegionInfo.TerrainDetail3 = UUID.Zero; handshake.RegionInfo.TerrainHeightRange00 = 0f; handshake.RegionInfo.TerrainHeightRange01 = 20f; handshake.RegionInfo.TerrainHeightRange10 = 0f; handshake.RegionInfo.TerrainHeightRange11 = 20f; handshake.RegionInfo.TerrainStartHeight00 = 0f; handshake.RegionInfo.TerrainStartHeight01 = 40f; handshake.RegionInfo.TerrainStartHeight10 = 0f; handshake.RegionInfo.TerrainStartHeight11 = 40f; handshake.RegionInfo2.RegionID = UUID.Random(); server.UDP.SendPacket(agent.AgentID, handshake, PacketCategory.Transaction); }
public static void SendRegionHandshake(LLAgent agent, LLUDP udp, IScene scene, RegionInfo regionInfo, LLPermissions permissions) { RegionHandshakePacket handshake = new RegionHandshakePacket(); // If the CacheID changes, the viewer will purge its object cache for this scene. We // just use the sceneID as the cacheID to make sure the viewer retains its object cache handshake.RegionInfo.CacheID = scene.ID; handshake.RegionInfo.SimName = Utils.StringToBytes(scene.Name); handshake.RegionInfo2.RegionID = scene.ID; handshake.RegionInfo.IsEstateManager = (permissions != null) ? permissions.IsEstateManager(agent) : true; handshake.RegionInfo3.ColoName = Utils.EmptyBytes; handshake.RegionInfo3.CPUClassID = 0; handshake.RegionInfo3.CPURatio = 0; if (regionInfo != null) { handshake.RegionInfo3.ProductName = Utils.StringToBytes(PRODUCT_NAME); handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; handshake.RegionInfo.RegionFlags = (uint)regionInfo.RegionFlags; handshake.RegionInfo.SimAccess = (byte)regionInfo.SimAccess; handshake.RegionInfo.SimOwner = regionInfo.OwnerID; handshake.RegionInfo.TerrainBase0 = UUID.Zero; handshake.RegionInfo.TerrainBase1 = UUID.Zero; handshake.RegionInfo.TerrainBase2 = UUID.Zero; handshake.RegionInfo.TerrainBase3 = UUID.Zero; handshake.RegionInfo.TerrainDetail0 = regionInfo.TerrainDetail0; handshake.RegionInfo.TerrainDetail1 = regionInfo.TerrainDetail1; handshake.RegionInfo.TerrainDetail2 = regionInfo.TerrainDetail2; handshake.RegionInfo.TerrainDetail3 = regionInfo.TerrainDetail3; handshake.RegionInfo.TerrainHeightRange00 = regionInfo.TerrainHeightRange00; handshake.RegionInfo.TerrainHeightRange01 = regionInfo.TerrainHeightRange01; handshake.RegionInfo.TerrainHeightRange10 = regionInfo.TerrainHeightRange10; handshake.RegionInfo.TerrainHeightRange11 = regionInfo.TerrainHeightRange11; handshake.RegionInfo.TerrainStartHeight00 = regionInfo.TerrainStartHeight00; handshake.RegionInfo.TerrainStartHeight01 = regionInfo.TerrainStartHeight01; handshake.RegionInfo.TerrainStartHeight10 = regionInfo.TerrainStartHeight10; handshake.RegionInfo.TerrainStartHeight11 = regionInfo.TerrainStartHeight11; handshake.RegionInfo.WaterHeight = regionInfo.WaterHeight; } else { handshake.RegionInfo3.ProductName = Utils.EmptyBytes; handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; handshake.RegionInfo.SimAccess = (byte)SimAccess.PG; } udp.SendPacket(agent, handshake, ThrottleCategory.Task, false); }
public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args) { RegionHandshakePacket handshake = new RegionHandshakePacket(); handshake.RegionInfo = new RegionHandshakePacket.RegionInfoBlock(); handshake.RegionInfo.BillableFactor = args.billableFactor; handshake.RegionInfo.IsEstateManager = args.isEstateManager; handshake.RegionInfo.TerrainHeightRange00 = args.terrainHeightRange0; handshake.RegionInfo.TerrainHeightRange01 = args.terrainHeightRange1; handshake.RegionInfo.TerrainHeightRange10 = args.terrainHeightRange2; handshake.RegionInfo.TerrainHeightRange11 = args.terrainHeightRange3; handshake.RegionInfo.TerrainStartHeight00 = args.terrainStartHeight0; handshake.RegionInfo.TerrainStartHeight01 = args.terrainStartHeight1; handshake.RegionInfo.TerrainStartHeight10 = args.terrainStartHeight2; handshake.RegionInfo.TerrainStartHeight11 = args.terrainStartHeight3; handshake.RegionInfo.SimAccess = args.simAccess; handshake.RegionInfo.WaterHeight = args.waterHeight; handshake.RegionInfo.RegionFlags = args.regionFlags; handshake.RegionInfo.SimName = Util.StringToBytes256(args.regionName); handshake.RegionInfo.SimOwner = args.SimOwner; handshake.RegionInfo.TerrainBase0 = args.terrainBase0; handshake.RegionInfo.TerrainBase1 = args.terrainBase1; handshake.RegionInfo.TerrainBase2 = args.terrainBase2; handshake.RegionInfo.TerrainBase3 = args.terrainBase3; handshake.RegionInfo.TerrainDetail0 = args.terrainDetail0; handshake.RegionInfo.TerrainDetail1 = args.terrainDetail1; handshake.RegionInfo.TerrainDetail2 = args.terrainDetail2; handshake.RegionInfo.TerrainDetail3 = args.terrainDetail3; // I guess this is for the client to remember an old setting? handshake.RegionInfo.CacheID = UUID.Random(); handshake.RegionInfo2 = new RegionHandshakePacket.RegionInfo2Block(); handshake.RegionInfo2.RegionID = regionInfo.RegionID; handshake.RegionInfo3 = new RegionHandshakePacket.RegionInfo3Block(); handshake.RegionInfo3.CPUClassID = 9; handshake.RegionInfo3.CPURatio = 1; handshake.RegionInfo3.ColoName = Utils.EmptyBytes; handshake.RegionInfo3.ProductName = Util.StringToBytes256(regionInfo.RegionType); handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; handshake.RegionInfo4 = new RegionHandshakePacket.RegionInfo4Block[0]; Call("omp.connect.regionHandshake", handshake); }
private void RegionHandshakeHandler(Packet packet, Simulator simulator) { RegionHandshakePacket handshake = (RegionHandshakePacket)packet; simulator.ID = handshake.RegionInfo.CacheID; simulator.IsEstateManager = handshake.RegionInfo.IsEstateManager; simulator.Name = Helpers.FieldToUTF8String(handshake.RegionInfo.SimName); simulator.SimOwner = handshake.RegionInfo.SimOwner; simulator.TerrainBase0 = handshake.RegionInfo.TerrainBase0; simulator.TerrainBase1 = handshake.RegionInfo.TerrainBase1; simulator.TerrainBase2 = handshake.RegionInfo.TerrainBase2; simulator.TerrainBase3 = handshake.RegionInfo.TerrainBase3; simulator.TerrainDetail0 = handshake.RegionInfo.TerrainDetail0; simulator.TerrainDetail1 = handshake.RegionInfo.TerrainDetail1; simulator.TerrainDetail2 = handshake.RegionInfo.TerrainDetail2; simulator.TerrainDetail3 = handshake.RegionInfo.TerrainDetail3; simulator.TerrainHeightRange00 = handshake.RegionInfo.TerrainHeightRange00; simulator.TerrainHeightRange01 = handshake.RegionInfo.TerrainHeightRange01; simulator.TerrainHeightRange10 = handshake.RegionInfo.TerrainHeightRange10; simulator.TerrainHeightRange11 = handshake.RegionInfo.TerrainHeightRange11; simulator.TerrainStartHeight00 = handshake.RegionInfo.TerrainStartHeight00; simulator.TerrainStartHeight01 = handshake.RegionInfo.TerrainStartHeight01; simulator.TerrainStartHeight10 = handshake.RegionInfo.TerrainStartHeight10; simulator.TerrainStartHeight11 = handshake.RegionInfo.TerrainStartHeight11; simulator.WaterHeight = handshake.RegionInfo.WaterHeight; simulator.Flags = (Simulator.RegionFlags)handshake.RegionInfo.RegionFlags; simulator.BillableFactor = handshake.RegionInfo.BillableFactor; simulator.Access = (Simulator.SimAccess)handshake.RegionInfo.SimAccess; Client.Log("Received a region handshake for " + simulator.ToString(), Helpers.LogLevel.Info); // Send a RegionHandshakeReply RegionHandshakeReplyPacket reply = new RegionHandshakeReplyPacket(); reply.AgentData.AgentID = Client.Self.AgentID; reply.AgentData.SessionID = Client.Self.SessionID; reply.RegionInfo.Flags = 0; SendPacket(reply, simulator); // We're officially connected to this sim simulator.connected = true; simulator.ConnectedEvent.Set(); }
//really really should be moved somewhere else (RegionInfo.cs ?) public void SendRegionHandshake(World RegionInfo) { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet"); System.Text.Encoding _enc = System.Text.Encoding.ASCII; RegionHandshakePacket handshake = new RegionHandshakePacket(); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details"); handshake.RegionInfo.BillableFactor = 0; handshake.RegionInfo.IsEstateManager = false; handshake.RegionInfo.TerrainHeightRange00 = 60; handshake.RegionInfo.TerrainHeightRange01 = 60; handshake.RegionInfo.TerrainHeightRange10 = 60; handshake.RegionInfo.TerrainHeightRange11 = 60; handshake.RegionInfo.TerrainStartHeight00 = 10; handshake.RegionInfo.TerrainStartHeight01 = 10; handshake.RegionInfo.TerrainStartHeight10 = 10; handshake.RegionInfo.TerrainStartHeight11 = 10; handshake.RegionInfo.SimAccess = 13; handshake.RegionInfo.WaterHeight = m_regionWaterHeight; uint regionFlags = 72458694; if (this.m_regionTerraform) { regionFlags -= 64; } handshake.RegionInfo.RegionFlags = regionFlags; handshake.RegionInfo.SimName = _enc.GetBytes(m_regionName + "\0"); handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.TerrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975"); handshake.RegionInfo.TerrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3"); handshake.RegionInfo.TerrainBase2 = new LLUUID("179cdabd-398a-9b6b-1391-4dc333ba321f"); handshake.RegionInfo.TerrainBase3 = new LLUUID("beb169c7-11ea-fff2-efe5-0f24dc881df2"); handshake.RegionInfo.TerrainDetail0 = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.TerrainDetail1 = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.TerrainDetail2 = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.TerrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Sending RegionHandshake packet"); this.ControllingClient.OutPacket(handshake); }
private void UseCircuitCodeHandler(Packet packet, LLAgent agent) { RegionHandshakePacket handshake = new RegionHandshakePacket(); handshake.RegionInfo.CacheID = m_scene.ID; handshake.RegionInfo.SimName = Utils.StringToBytes(m_scene.Name); handshake.RegionInfo2.RegionID = m_scene.ID; handshake.RegionInfo.IsEstateManager = (m_permissions != null) ? m_permissions.IsEstateManager(agent) : true; if (m_regionInfo != null) { handshake.RegionInfo3.ColoName = Utils.EmptyBytes; handshake.RegionInfo3.ProductName = Utils.StringToBytes(m_regionInfo.ProductName); handshake.RegionInfo3.ProductSKU = Utils.StringToBytes(m_regionInfo.ProductSKU); handshake.RegionInfo.RegionFlags = (uint)m_regionInfo.RegionFlags; handshake.RegionInfo.SimAccess = (byte)m_regionInfo.SimAccess; handshake.RegionInfo.SimOwner = m_regionInfo.OwnerID; handshake.RegionInfo.TerrainBase0 = m_regionInfo.TerrainBase0; handshake.RegionInfo.TerrainBase1 = m_regionInfo.TerrainBase1; handshake.RegionInfo.TerrainBase2 = m_regionInfo.TerrainBase2; handshake.RegionInfo.TerrainBase3 = m_regionInfo.TerrainBase3; handshake.RegionInfo.TerrainDetail0 = m_regionInfo.TerrainDetail0; handshake.RegionInfo.TerrainDetail1 = m_regionInfo.TerrainDetail1; handshake.RegionInfo.TerrainDetail2 = m_regionInfo.TerrainDetail2; handshake.RegionInfo.TerrainDetail3 = m_regionInfo.TerrainDetail3; handshake.RegionInfo.TerrainHeightRange00 = m_regionInfo.TerrainHeightRange00; handshake.RegionInfo.TerrainHeightRange01 = m_regionInfo.TerrainHeightRange01; handshake.RegionInfo.TerrainHeightRange10 = m_regionInfo.TerrainHeightRange10; handshake.RegionInfo.TerrainHeightRange11 = m_regionInfo.TerrainHeightRange11; handshake.RegionInfo.TerrainStartHeight00 = m_regionInfo.TerrainStartHeight00; handshake.RegionInfo.TerrainStartHeight01 = m_regionInfo.TerrainStartHeight01; handshake.RegionInfo.TerrainStartHeight10 = m_regionInfo.TerrainStartHeight10; handshake.RegionInfo.TerrainStartHeight11 = m_regionInfo.TerrainStartHeight11; handshake.RegionInfo.WaterHeight = m_regionInfo.WaterHeight; } else { handshake.RegionInfo3.ColoName = Utils.EmptyBytes; handshake.RegionInfo3.ProductName = Utils.StringToBytes("Simian"); handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; handshake.RegionInfo.SimAccess = (byte)SimAccess.Min; } // Add the agent to the scene m_scene.EntityAddOrUpdate(this, agent, UpdateFlags.FullUpdate, 0); m_udp.SendPacket(agent, handshake, ThrottleCategory.Task, false); }