Correct the behaviro of group deeding and llGetOwner() within deeded objects

0.6.6-post-fixes
Melanie Thielker 2009-06-21 19:49:11 +00:00
parent 04444d408f
commit bc1dce071a
2 changed files with 15 additions and 3 deletions

View File

@ -3295,6 +3295,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock();
objPropDB.RequestFlags = RequestFlags; objPropDB.RequestFlags = RequestFlags;
objPropDB.ObjectID = ObjectUUID; objPropDB.ObjectID = ObjectUUID;
if (OwnerID == GroupID)
objPropDB.OwnerID = UUID.Zero;
else
objPropDB.OwnerID = OwnerID; objPropDB.OwnerID = OwnerID;
objPropDB.GroupID = GroupID; objPropDB.GroupID = GroupID;
objPropDB.BaseMask = BaseMask; objPropDB.BaseMask = BaseMask;
@ -3340,6 +3343,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// proper.ObjectData[0].LastOwnerID = UUID.Zero; // proper.ObjectData[0].LastOwnerID = UUID.Zero;
proper.ObjectData[0].ObjectID = ObjectUUID; proper.ObjectData[0].ObjectID = ObjectUUID;
if (OwnerUUID == GroupUUID)
proper.ObjectData[0].OwnerID = UUID.Zero;
else
proper.ObjectData[0].OwnerID = OwnerUUID; proper.ObjectData[0].OwnerID = OwnerUUID;
proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle); proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle);
proper.ObjectData[0].TextureID = TextureID; proper.ObjectData[0].TextureID = TextureID;

View File

@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes
foreach (SceneObjectGroup sog in groups) foreach (SceneObjectGroup sog in groups)
{ {
if (ownerID != null) if (ownerID != UUID.Zero)
{ {
sog.SetOwnerId(ownerID); sog.SetOwnerId(ownerID);
sog.SetGroup(groupID, remoteClient); sog.SetGroup(groupID, remoteClient);
@ -2727,6 +2727,12 @@ namespace OpenSim.Region.Framework.Scenes
sog.ApplyNextOwnerPermissions(); sog.ApplyNextOwnerPermissions();
} }
} }
foreach (uint localID in localIDs)
{
SceneObjectPart part = GetSceneObjectPart(localID);
part.GetProperties(remoteClient);
}
} }
} }
} }