diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index a9a6ba4..3bdfb32 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3377,7 +3377,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3377 | if (!remoteClient.IsActive) | 3377 | if (!remoteClient.IsActive) |
3378 | return; | 3378 | return; |
3379 | 3379 | ||
3380 | if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID) | 3380 | if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && p.GodLevel < 200) |
3381 | return; | 3381 | return; |
3382 | 3382 | ||
3383 | 3383 | ||
@@ -3586,7 +3586,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3586 | public void SendAvatarDataToAgent(ScenePresence avatar) | 3586 | public void SendAvatarDataToAgent(ScenePresence avatar) |
3587 | { | 3587 | { |
3588 | //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); | 3588 | //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); |
3589 | if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) | 3589 | if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200) |
3590 | return; | 3590 | return; |
3591 | avatar.ControllingClient.SendAvatarDataImmediate(this); | 3591 | avatar.ControllingClient.SendAvatarDataImmediate(this); |
3592 | Animator.SendAnimPackToClient(avatar.ControllingClient); | 3592 | Animator.SendAnimPackToClient(avatar.ControllingClient); |
@@ -3653,7 +3653,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3653 | { | 3653 | { |
3654 | // m_log.DebugFormat( | 3654 | // m_log.DebugFormat( |
3655 | // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); | 3655 | // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); |
3656 | if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) | 3656 | if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200) |
3657 | return; | 3657 | return; |
3658 | avatar.ControllingClient.SendAppearance( | 3658 | avatar.ControllingClient.SendAppearance( |
3659 | UUID, Appearance.VisualParams, Appearance.Texture.GetBytes()); | 3659 | UUID, Appearance.VisualParams, Appearance.Texture.GetBytes()); |
@@ -3947,6 +3947,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3947 | /// </summary> | 3947 | /// </summary> |
3948 | public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus) | 3948 | public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus) |
3949 | { | 3949 | { |
3950 | int oldgodlevel = GodLevel; | ||
3951 | |||
3950 | if (godStatus) | 3952 | if (godStatus) |
3951 | { | 3953 | { |
3952 | // For now, assign god level 200 to anyone | 3954 | // For now, assign god level 200 to anyone |
@@ -3967,6 +3969,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3967 | } | 3969 | } |
3968 | 3970 | ||
3969 | ControllingClient.SendAdminResponse(token, (uint)GodLevel); | 3971 | ControllingClient.SendAdminResponse(token, (uint)GodLevel); |
3972 | |||
3973 | if(oldgodlevel != GodLevel) // force a visibility check | ||
3974 | ParcelCrossCheck(m_currentParcelUUID, m_previusParcelUUID, | ||
3975 | true, m_previusParcelHide, false, true); | ||
3970 | } | 3976 | } |
3971 | 3977 | ||
3972 | #region Child Agent Updates | 3978 | #region Child Agent Updates |
@@ -5404,7 +5410,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5404 | continue; | 5410 | continue; |
5405 | 5411 | ||
5406 | // those on not on parcel see me | 5412 | // those on not on parcel see me |
5407 | if (currentParcelUUID != p.currentParcelUUID) | 5413 | if (currentParcelUUID != p.currentParcelUUID || p.GodLevel >= 200) |
5408 | { | 5414 | { |
5409 | viewsToSendto.Add(p); // they see me | 5415 | viewsToSendto.Add(p); // they see me |
5410 | } | 5416 | } |
@@ -5419,7 +5425,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5419 | continue; | 5425 | continue; |
5420 | 5426 | ||
5421 | // those not on parcel dont see me | 5427 | // those not on parcel dont see me |
5422 | if (currentParcelUUID != p.currentParcelUUID) | 5428 | if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) |
5423 | { | 5429 | { |
5424 | killsToSendto.Add(p); // they dont see me | 5430 | killsToSendto.Add(p); // they dont see me |
5425 | } | 5431 | } |
@@ -5444,13 +5450,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
5444 | continue; | 5450 | continue; |
5445 | 5451 | ||
5446 | // only those on previus parcel need receive kills | 5452 | // only those on previus parcel need receive kills |
5447 | if (previusParcelUUID == p.currentParcelUUID) | 5453 | if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200) |
5448 | { | 5454 | { |
5449 | killsToSendto.Add(p); // they dont see me | 5455 | killsToSendto.Add(p); // they dont see me |
5450 | killsToSendme.Add(p); // i dont see them | 5456 | killsToSendme.Add(p); // i dont see them |
5451 | } | 5457 | } |
5452 | // only those on new parcel need see | 5458 | // only those on new parcel need see |
5453 | if (currentParcelUUID == p.currentParcelUUID) | 5459 | if (currentParcelUUID == p.currentParcelUUID || p.GodLevel >= 200) |
5454 | { | 5460 | { |
5455 | viewsToSendto.Add(p); // they see me | 5461 | viewsToSendto.Add(p); // they see me |
5456 | viewsToSendme.Add(p); // i see them | 5462 | viewsToSendme.Add(p); // i see them |
@@ -5468,7 +5474,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5468 | continue; | 5474 | continue; |
5469 | 5475 | ||
5470 | // those not on new parcel dont see me | 5476 | // those not on new parcel dont see me |
5471 | if (currentParcelUUID != p.currentParcelUUID) | 5477 | if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) |
5472 | { | 5478 | { |
5473 | killsToSendto.Add(p); // they dont see me | 5479 | killsToSendto.Add(p); // they dont see me |
5474 | } | 5480 | } |
@@ -5494,7 +5500,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5494 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | 5500 | if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) |
5495 | continue; | 5501 | continue; |
5496 | // only those old parcel need receive kills | 5502 | // only those old parcel need receive kills |
5497 | if (previusParcelUUID == p.currentParcelUUID) | 5503 | if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200) |
5498 | { | 5504 | { |
5499 | killsToSendme.Add(p); // i dont see them | 5505 | killsToSendme.Add(p); // i dont see them |
5500 | } | 5506 | } |