public void RequestWearables(NetworkInfo userInfo) { AgentProfile Agent = this.AgentList[userInfo.User.AgentID]; AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); aw.AgentData.AgentID = userInfo.User.AgentID; aw.AgentData.SerialNum = 0; aw.AgentData.SessionID = userInfo.User.SessionID; aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13]; AgentWearablesUpdatePacket.WearableDataBlock awb = null; awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)0; awb.AssetID = Agent.Avatar.Wearables[0].AssetID; awb.ItemID = Agent.Avatar.Wearables[0].ItemID; aw.WearableData[0] = awb; awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)1; awb.AssetID = Agent.Avatar.Wearables[1].AssetID; awb.ItemID = Agent.Avatar.Wearables[1].ItemID; aw.WearableData[1] = awb; for (int i = 2; i < 13; i++) { awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)i; awb.AssetID = new LLUUID("00000000-0000-0000-0000-000000000000"); awb.ItemID = new LLUUID("00000000-0000-0000-0000-000000000000"); aw.WearableData[i] = awb; } _server.SendPacket(aw, true, userInfo); }
public void SendInitialAppearance() { AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); aw.AgentData.AgentID = this.ControllingClient.AgentID; aw.AgentData.SerialNum = 0; aw.AgentData.SessionID = ControllingClient.SessionID; aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13]; AgentWearablesUpdatePacket.WearableDataBlock awb; for (int i = 0; i < 13; i++) { awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)i; awb.AssetID = this.Wearables[i].AssetID; awb.ItemID = this.Wearables[i].ItemID; aw.WearableData[i] = awb; } ControllingClient.OutPacket(aw); }
public void RequestWearables(NetworkInfo userInfo) { AgentProfile Agent = this.AgentList[userInfo.User.AgentID]; AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); aw.AgentData.AgentID = userInfo.User.AgentID; aw.AgentData.SerialNum = 0; aw.AgentData.SessionID = userInfo.User.SessionID; aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13]; AgentWearablesUpdatePacket.WearableDataBlock awb = null; awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)0; awb.AssetID = Agent.Avatar.Wearables[0].AssetID; awb.ItemID = Agent.Avatar.Wearables[0].ItemID; aw.WearableData[0] = awb; awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType =(byte)1; awb.AssetID = Agent.Avatar.Wearables[1].AssetID; awb.ItemID = Agent.Avatar.Wearables[1].ItemID; aw.WearableData[1] = awb; for(int i=2; i<13; i++) { awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)i; awb.AssetID = new LLUUID("00000000-0000-0000-0000-000000000000"); awb.ItemID = new LLUUID("00000000-0000-0000-0000-000000000000"); aw.WearableData[i] = awb; } _server.SendPacket(aw, true, userInfo); }
Packet WearablesRequestHandler(Packet packet, IPEndPoint endPoint) { Console.WriteLine("[Grider]: WearablesRequestHandler"); AgentWearablesRequestPacket wpack = (AgentWearablesRequestPacket) packet; AgentWearablesUpdatePacket aw = (AgentWearablesUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentWearablesUpdate); aw.AgentData.AgentID = wpack.AgentData.AgentID; aw.AgentData.SerialNum = (uint)Agent.agentCircuitData.Appearance.Serial++; aw.AgentData.SessionID = wpack.AgentData.SessionID; // TODO: don't create new blocks if recycling an old packet aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13]; AgentWearablesUpdatePacket.WearableDataBlock awb; AvatarWearable[] wearables = Agent.agentCircuitData.Appearance.Wearables; Console.WriteLine(" > Size of wearables: " + wearables.Length); for (int i = 0; i < wearables.Length; i++) { awb = new AgentWearablesUpdatePacket.WearableDataBlock(); awb.WearableType = (byte)i; awb.AssetID = wearables[i].AssetID; awb.ItemID = wearables[i].ItemID; aw.WearableData[i] = awb; // m_log.DebugFormat( // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", // awb.ItemID, awb.AssetID, i, Name); } //OutPacket(aw, ThrottleOutPacketType.Task); proxy.InjectPacket(aw, Direction.Incoming); return null; }